GoodLogic.php 5.8 KB

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