GoodLogic.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. <?php
  2. namespace app\admin\logic;
  3. use app\model\CommonModel;
  4. use app\model\GoodModel;
  5. use think\exception\ValidateException;
  6. use think\response\Json;
  7. class GoodLogic extends BaseLogic
  8. {
  9. //获取商品列表
  10. public static function list(array $data = []): Json
  11. {
  12. $db = GoodModel::where('is_del', CommonModel::$del_normal);
  13. if ($data['good_code'] !== '') $db->whereLike('good_code', '%' . $data['good_code'] . '%');
  14. if ($data['good_name']) $db->whereLike('good_name', '%' . $data['good_name'] . '%');
  15. if ($data['status'] != '') $db->where('status', $data['status']);
  16. $count = $db->count('id');
  17. $list = $db
  18. ->field('id,good_cover_img,good_code,good_name,status,creater,addtime')
  19. ->page($data['page'], $data['size'])
  20. ->order('addtime desc')
  21. ->select()
  22. ->toArray();
  23. return json_show(CommonModel::$success, '获取商品列表成功', ['list' => $list, 'count' => $count]);
  24. }
  25. //添加商品
  26. public static function add(array $data = []): Json
  27. {
  28. $rs = GoodModel::field('id')
  29. ->where(['is_del' => CommonModel::$del_normal, 'good_name' => $data['good_name']])
  30. ->findOrEmpty()
  31. ->isEmpty();
  32. if (!$rs) throw new ValidateException('该商品名称已存在');
  33. $good_code = makeNo("SP");
  34. $res = GoodModel::create([
  35. 'good_cover_img' => $data['good_cover_img'],
  36. 'good_code' => $good_code,
  37. 'good_name' => $data['good_name'],
  38. 'moq' => $data['moq'],
  39. 'step' => $data['step'],
  40. 'good_banner_img' => implode(',', $data['good_banner_img']),
  41. 'good_img' => implode(',', $data['good_img']),
  42. 'good_param' => json_encode($data['good_param'], JSON_UNESCAPED_UNICODE),
  43. 'good_remark' => $data['good_remark'],
  44. 'unit_id' => $data['unit_id'],
  45. 'is_del' => CommonModel::$del_normal,
  46. 'status' => CommonModel::$status_normal,
  47. 'createrid' => self::$uid,
  48. 'creater' => self::$uname,
  49. 'addtime' => date("Y-m-d H:i:s"),
  50. 'updaterid' => self::$uid,
  51. 'updater' => self::$uname,
  52. 'updatetime' => date("Y-m-d H:i:s"),
  53. ])->save();
  54. return $res ? json_show(CommonModel::$success, '新建商品成功') : json_show(CommonModel::$error_param, '新建商品失败');
  55. }
  56. //读取商品详情
  57. public static function read(int $id = 0): Json
  58. {
  59. $rs = GoodModel::field(true)
  60. ->where(['id' => $id, 'is_del' => CommonModel::$del_normal])
  61. ->withAttr('good_banner_img', function ($val) {
  62. return explode(',', $val);
  63. })->withAttr('good_img', function ($val) {
  64. return explode(',', $val);
  65. })->withAttr('good_param', function ($val) {
  66. return json_decode($val);
  67. })
  68. ->findOrEmpty()
  69. ->toArray();
  70. return json_show(CommonModel::$success, '获取商品详情成功', $rs);
  71. }
  72. //编辑商品
  73. public static function edit(array $data = []): Json
  74. {
  75. $rs = GoodModel::field('id,good_name')
  76. ->where(['id' => $data['id'], 'is_del' => CommonModel::$del_normal])
  77. ->findOrEmpty();
  78. if ($rs->isEmpty()) throw new ValidateException('该商品不存在');
  79. //修改了商品名称,检查商品名称是否重复
  80. if ($rs->good_name != $data['good_name']) {
  81. $temp = GoodModel::field('id')
  82. ->where(['is_del' => CommonModel::$del_normal, 'good_name' => $data['good_name']])
  83. ->findOrEmpty()
  84. ->isEmpty();
  85. if (!$temp) throw new ValidateException('该商品名称重复');
  86. }
  87. $res = GoodModel::where(['id' => $data['id']])->save([
  88. 'good_cover_img' => $data['good_cover_img'],
  89. 'good_name' => $data['good_name'],
  90. 'moq' => $data['moq'],
  91. 'step' => $data['step'],
  92. 'good_banner_img' => implode(',', $data['good_banner_img']),
  93. 'good_img' => implode(',', $data['good_img']),
  94. 'good_param' => json_encode($data['good_param'], JSON_UNESCAPED_UNICODE),
  95. 'good_remark' => $data['good_remark'],
  96. 'unit_id' => $data['unit_id'],
  97. 'updaterid' => self::$uid,
  98. 'updater' => self::$uname,
  99. 'updatetime' => date("Y-m-d H:i:s"),
  100. ]);
  101. return $res ? json_show(CommonModel::$success, '编辑商品成功') : json_show(CommonModel::$error_param, '编辑商品失败');
  102. }
  103. //商品启禁用
  104. public static function status(array $data = []): Json
  105. {
  106. $where = [
  107. ['id', '=', $data['id']],
  108. ['is_del', '=', CommonModel::$del_normal],
  109. ['status', '<>', $data['status']],
  110. ];
  111. $rs = GoodModel::field('id,status')
  112. ->where($where)
  113. ->findOrEmpty()
  114. ->isEmpty();
  115. if ($rs) throw new ValidateException('该商品不存在或重复操作');
  116. $res = GoodModel::where($where)->save($data);
  117. return $res ? json_show(CommonModel::$success, '操作成功') : json_show(CommonModel::$error_param, '操作失败');
  118. }
  119. //删除商品
  120. public static function delete(int $id = 0): Json
  121. {
  122. $rs = GoodModel::where(['id' => $id, 'is_del' => CommonModel::$del_normal])
  123. ->save(['is_del' => CommonModel::$del_deleted]);
  124. return $rs ? json_show(CommonModel::$success, '商品删除成功') : json_show(CommonModel::$error_param, '商品不存在或重复删除');
  125. }
  126. }