CompanyGoodLogic.php 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <?php
  2. namespace app\admin\logic;
  3. use app\model\CommonModel;
  4. use app\model\CompanyGoodModel;
  5. use app\model\GroupModel;
  6. use app\model\GoodModel;
  7. use app\model\VideoModel;
  8. use think\Exception;
  9. use think\exception\ValidateException;
  10. use think\facade\Db;
  11. use think\response\Json;
  12. class CompanyGoodLogic extends BaseLogic
  13. {
  14. //列表
  15. public static function list(array $data = []): Json
  16. {
  17. $db = CompanyGoodModel::alias('a')
  18. ->leftJoin('good b', 'b.id=a.good_id AND b.is_del=' . CommonModel::$del_normal)
  19. ->leftJoin('group c', 'c.id=a.group_id AND c.is_del=' . CommonModel::$del_normal)
  20. ->leftJoin('company d', 'd.id=c.company_id AND d.is_del=' . CommonModel::$del_normal)
  21. ->leftJoin('card e', 'e.id=c.card_id AND e.is_del=' . CommonModel::$del_normal)
  22. ->leftJoin('unit f', 'f.id=b.unit_id AND f.is_del=' . CommonModel::$del_normal)
  23. ->where(['a.is_del' => CommonModel::$del_normal]);
  24. if ($data['group_id'] != '') $db->where('a.group_id', $data['group_id']);
  25. if ($data['good_name'] != '') $db->whereLike('b.good_name', '%' . $data['good_name'] . '%');
  26. if ($data['good_code'] != '') $db->whereLike('b.good_code', '%' . $data['good_code'] . '%');
  27. if ($data['status'] != '') $db->where('a.status', $data['status']);
  28. $count = $db->count('a.id');
  29. $list = $db->field('a.id,d.title company_title,e.title card_title,a.code,b.good_code,b.good_name,b.good_cover_img,b.moq,b.step,f.unit,b.price,a.status,a.creater,a.addtime')
  30. ->page($data['page'], $data['size'])
  31. ->order(['a.is_top' => 'desc', 'a.weight' => 'desc', 'a.id' => 'desc'])
  32. ->select()
  33. ->toArray();
  34. return json_show(CommonModel::$success, '获取公司商品列表成功', ['count' => $count, 'list' => $list]);
  35. }
  36. //添加
  37. public static function add(array $data = []): Json
  38. {
  39. $rs = GroupModel::field('id')
  40. ->where(['id' => $data['group_id'], 'is_del' => CommonModel::$del_normal])
  41. ->findOrEmpty()
  42. ->isEmpty();
  43. if ($rs) return json_show(CommonModel::$error_param, '该分组不存在');
  44. $data['good_id'] = GoodModel::where('is_del', CommonModel::$del_normal)
  45. ->whereIn('id', $data['good_id'])
  46. ->column('id');
  47. if (empty($data['good_id'])) return json_show(CommonModel::$error_param, '该商品不存在');
  48. $rs = CompanyGoodModel::field('a.id,a.good_id,b.good_name,b.good_code')
  49. ->alias('a')
  50. ->leftJoin('good b', 'b.id=a.good_id AND b.is_del=' . CommonModel::$del_normal)
  51. ->where(['a.is_del' => CommonModel::$del_normal, 'a.group_id' => $data['group_id']])
  52. ->whereIn('a.good_id', $data['good_id'])
  53. ->findOrEmpty()
  54. ->toArray();
  55. if (empty($rs)) return json_show(CommonModel::$error_layer, "【{$rs['good_code']}】【{$rs['good_name']}】该商品重复添加");
  56. $res = CompanyGoodModel::create((array_merge($data, [
  57. 'code' => make_no('CG'),
  58. 'is_del' => CommonModel::$del_normal,
  59. 'status' => CommonModel::$status_normal,
  60. 'is_top' => CommonModel::$top_no,
  61. 'weight' => 0,
  62. 'creater' => self::$uname,
  63. 'createrid' => self::$uid,
  64. 'addtime' => date('Y-m-d H:i:s'),
  65. 'updater' => self::$uname,
  66. 'updaterid' => self::$uid,
  67. 'updatetime' => date('Y-m-d H:i:s'),
  68. ])));
  69. return $res ? json_show(CommonModel::$success, '添加公司商品成功') : json_show(CommonModel::$success, '添加公司商品失败');
  70. }
  71. //获取详情
  72. public static function read(int $id = 0): Json
  73. {
  74. $res = CompanyGoodModel::field(true)
  75. ->where(['id' => $id, 'is_del' => CommonModel::$del_normal])
  76. ->findOrEmpty()
  77. ->toArray();
  78. return empty($res) ? json_show(CommonModel::$error_param, '该公司商品为空') : json_show(CommonModel::$success, '获取公司商品详情成功', $res);
  79. }
  80. //编辑
  81. public static function edit(array $data = []): Json
  82. {
  83. $rs = CompanyGoodModel::field('id')
  84. ->where(['is_del' => CommonModel::$del_normal, 'id' => $data['id']])
  85. ->findOrEmpty()
  86. ->isEmpty();
  87. if ($rs) return json_show(CommonModel::$error_param, '该公司商品不存在');
  88. $rs = GroupModel::field('id')
  89. ->where(['id' => $data['group_id'], 'is_del' => CommonModel::$del_normal])
  90. ->findOrEmpty()
  91. ->isEmpty();
  92. if ($rs) return json_show(CommonModel::$error_param, '该分组不存在');
  93. $rs = GoodModel::field('id')
  94. ->where(['id' => $data['good_id'], 'is_del' => CommonModel::$del_normal])
  95. ->findOrEmpty()
  96. ->isEmpty();
  97. if ($rs) return json_show(CommonModel::$error_param, '该商品不存在');
  98. $rs = CompanyGoodModel::field('id')
  99. ->where(['is_del' => CommonModel::$del_normal, 'group_id' => $data['group_id'], 'good_id' => $data['good_id']])
  100. ->where('id', '<>', $data['id'])
  101. ->findOrEmpty()
  102. ->isEmpty();
  103. if (!$rs) return json_show(CommonModel::$error_param, '该公司商品已存在');
  104. $res = CompanyGoodModel::where('id', $data['id'])->save((array_merge($data, [
  105. 'updater' => self::$uname,
  106. 'updaterid' => self::$uid,
  107. 'updatetime' => date('Y-m-d H:i:s'),
  108. ])));
  109. return $res ? json_show(CommonModel::$success, '编辑公司商品成功') : json_show(CommonModel::$error_param, '编辑公司商品失败');
  110. }
  111. //删除
  112. public static function delete(array $ids = []): Json
  113. {
  114. $res = CompanyGoodModel::whereIn('id', $ids)
  115. ->where('is_del', CommonModel::$del_normal)
  116. ->update([
  117. 'is_del' => CommonModel::$del_deleted,
  118. 'updatetime' => date('Y-m-d H:i:s'),
  119. 'updaterid' => self::$uid,
  120. 'updater' => self::$uname
  121. ]);
  122. return $res ? json_show(CommonModel::$success, '删除成功') : json_show(CommonModel::$error_param, '删除失败,该公司商品不存在');
  123. }
  124. //置顶
  125. public static function top(array $data = []): Json
  126. {
  127. $res = CompanyGoodModel::where(['id' => $data['id'], 'is_del' => CommonModel::$del_normal])
  128. ->where('is_top', '<>', $data['is_top'])
  129. ->update([
  130. 'is_top' => $data['is_top'],
  131. 'updaterid' => self::$uid,
  132. 'updater' => self::$uname,
  133. 'updatetime' => date('Y-m-d H:i:s')
  134. ]);
  135. return $res ? json_show(CommonModel::$success, '操作成功') : json_show(CommonModel::$error_param, '操作失败,该公司商品不存在或重复操作');
  136. }
  137. //启禁用
  138. public static function status(array $data = []): Json
  139. {
  140. $res = CompanyGoodModel::where(['id' => $data['id'], 'is_del' => CommonModel::$del_normal])
  141. ->where('status', '<>', $data['status'])
  142. ->update([
  143. 'status' => $data['status'],
  144. 'updaterid' => self::$uid,
  145. 'updater' => self::$uname,
  146. 'updatetime' => date('Y-m-d H:i:s')
  147. ]);
  148. return $res ? json_show(CommonModel::$success, '操作成功') : json_show(CommonModel::$error_param, '操作失败,该公司商品不存在或重复操作');
  149. }
  150. }