CompanyGoodLogic.php 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  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. $rs = GoodModel::field('id')
  45. ->where(['id' => $data['good_id'], 'is_del' => CommonModel::$del_normal])
  46. ->findOrEmpty()
  47. ->isEmpty();
  48. if ($rs) return json_show(CommonModel::$error_param, '该商品不存在');
  49. $rs = CompanyGoodModel::field('id')
  50. ->where(['is_del' => CommonModel::$del_normal, 'group_id' => $data['group_id'], 'good_id' => $data['good_id']])
  51. ->findOrEmpty()
  52. ->isEmpty();
  53. if (!$rs) return json_show(CommonModel::$error_param, '该公司商品已存在');
  54. $res = CompanyGoodModel::create((array_merge($data, [
  55. 'code' => makeNo('CG'),
  56. 'is_del' => CommonModel::$del_normal,
  57. 'status' => CommonModel::$status_normal,
  58. 'creater' => self::$uname,
  59. 'createrid' => self::$uid,
  60. 'addtime' => date('Y-m-d H:i:s'),
  61. 'updater' => self::$uname,
  62. 'updaterid' => self::$uid,
  63. 'updatetime' => date('Y-m-d H:i:s'),
  64. ])));
  65. return $res ? json_show(CommonModel::$success, '添加公司商品成功') : json_show(CommonModel::$success, '添加公司商品失败');
  66. }
  67. //获取详情
  68. public static function read(int $id = 0): Json
  69. {
  70. $res = CompanyGoodModel::field(true)
  71. ->where(['id' => $id, 'is_del' => CommonModel::$del_normal])
  72. ->findOrEmpty()
  73. ->toArray();
  74. return empty($res) ? json_show(CommonModel::$error_param, '该公司商品为空') : json_show(CommonModel::$success, '获取公司商品详情成功', $res);
  75. }
  76. //编辑
  77. public static function edit(array $data = []): Json
  78. {
  79. $rs = CompanyGoodModel::field('id')
  80. ->where(['is_del' => CommonModel::$del_normal, 'id' => $data['id']])
  81. ->findOrEmpty()
  82. ->isEmpty();
  83. if ($rs) return json_show(CommonModel::$error_param, '该公司商品不存在');
  84. $rs = GroupModel::field('id')
  85. ->where(['id' => $data['group_id'], 'is_del' => CommonModel::$del_normal])
  86. ->findOrEmpty()
  87. ->isEmpty();
  88. if ($rs) return json_show(CommonModel::$error_param, '该分组不存在');
  89. $rs = GoodModel::field('id')
  90. ->where(['id' => $data['good_id'], 'is_del' => CommonModel::$del_normal])
  91. ->findOrEmpty()
  92. ->isEmpty();
  93. if ($rs) return json_show(CommonModel::$error_param, '该商品不存在');
  94. $rs = CompanyGoodModel::field('id')
  95. ->where(['is_del' => CommonModel::$del_normal, 'group_id' => $data['group_id'], 'good_id' => $data['good_id']])
  96. ->where('id', '<>', $data['id'])
  97. ->findOrEmpty()
  98. ->isEmpty();
  99. if (!$rs) return json_show(CommonModel::$error_param, '该公司商品已存在');
  100. $res = CompanyGoodModel::where('id', $data['id'])->save((array_merge($data, [
  101. 'updater' => self::$uname,
  102. 'updaterid' => self::$uid,
  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 delete(array $ids = []): Json
  109. {
  110. $res = CompanyGoodModel::whereIn('id', $ids)
  111. ->where('is_del', CommonModel::$del_normal)
  112. ->update([
  113. 'is_del' => CommonModel::$del_deleted,
  114. 'updatetime' => date('Y-m-d H:i:s'),
  115. 'updaterid' => self::$uid,
  116. 'updater' => self::$uname
  117. ]);
  118. return $res ? json_show(CommonModel::$success, '删除成功') : json_show(CommonModel::$error_param, '删除失败,该公司商品不存在');
  119. }
  120. //置顶
  121. public static function top(array $data = []): Json
  122. {
  123. $res = CompanyGoodModel::where(['id' => $data['id'], 'is_del' => CommonModel::$del_normal])
  124. ->where('is_top', '<>', $data['is_top'])
  125. ->update([
  126. 'is_top' => $data['is_top'],
  127. 'updaterid' => self::$uid,
  128. 'updater' => self::$uname,
  129. 'updatetime' => date('Y-m-d H:i:s')
  130. ]);
  131. return $res ? json_show(CommonModel::$success, '操作成功') : json_show(CommonModel::$error_param, '操作失败,该公司商品不存在或重复操作');
  132. }
  133. //启禁用
  134. public static function status(array $data = []): Json
  135. {
  136. $res = CompanyGoodModel::where(['id' => $data['id'], 'is_del' => CommonModel::$del_normal])
  137. ->where('status', '<>', $data['status'])
  138. ->update([
  139. 'status' => $data['status'],
  140. 'updaterid' => self::$uid,
  141. 'updater' => self::$uname,
  142. 'updatetime' => date('Y-m-d H:i:s')
  143. ]);
  144. return $res ? json_show(CommonModel::$success, '操作成功') : json_show(CommonModel::$error_param, '操作失败,该公司商品不存在或重复操作');
  145. }
  146. }