GoodGroupLogic.php 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <?php
  2. namespace app\admin\logic;
  3. use app\model\CommonModel;
  4. use app\model\GoodGroupModel;
  5. use think\Exception;
  6. use think\exception\ValidateException;
  7. use think\facade\Db;
  8. use think\response\Json;
  9. class GoodGroupLogic extends BaseLogic
  10. {
  11. //获取商品分组列表
  12. public static function list(array $data = []): Json
  13. {
  14. $db = GoodGroupModel::alias('a')
  15. ->leftJoin('company b', 'b.id=a.company_id')
  16. ->leftJoin('card c', 'c.id=a.card_id')
  17. ->where('a.is_del', CommonModel::$del_normal);
  18. if ($data['status'] != '') $db->where('a.status', $data['status']);
  19. if ($data['company_title'] != '') $db->whereLike('b.title', '%' . $data['company_title'] . '%');
  20. if ($data['card_title'] != '') $db->whereLike('c.title', '%' . $data['card_title'] . '%');
  21. $count = $db->count('a.id');
  22. $list = $db->field('a.id,b.title company_title,c.title card_title,a.num,a.status,a.addtime')
  23. ->page($data['page'], $data['size'])
  24. ->order(['a.id' => 'desc'])
  25. ->select()
  26. ->toArray();
  27. return json_show(CommonModel::$success, '获取商品分组列表成功', ['count' => $count, 'list' => $list]);
  28. }
  29. //添加商品分组
  30. public static function add(array $data = []): Json
  31. {
  32. $rs = GoodGroupModel::field('id')
  33. ->where([
  34. 'is_del' => CommonModel::$del_normal,
  35. 'company_id' => $data['company_id'],
  36. 'card_id' => $data['card_id']
  37. ])
  38. ->findOrEmpty()
  39. ->isEmpty();
  40. if (!$rs) return json_show(CommonModel::$error_param, '该商品分组已存在');
  41. $date = date('Y-m-d H:i:s');
  42. $res = GoodGroupModel::create(array_merge($data, [
  43. 'num' => 0,
  44. 'status' => CommonModel::$status_normal,
  45. 'is_del' => CommonModel::$del_normal,
  46. 'createrid' => self::$uid,
  47. 'creater' => self::$uname,
  48. 'addtime' => $date,
  49. 'updaterid' => self::$uid,
  50. 'updater' => self::$uname,
  51. 'updatetime' => $date,
  52. ]))->save();
  53. return $res ? json_show(CommonModel::$success, '添加商品分组成功') : json_show(CommonModel::$error_param, '添加商品分组失败');
  54. }
  55. //获取商品分组详情
  56. public static function read(int $id = 0): Json
  57. {
  58. $res = GoodGroupModel::field(true)
  59. ->where(['id' => $id, 'is_del' => CommonModel::$del_normal])
  60. ->findOrEmpty()
  61. ->toArray();
  62. return empty($res) ? json_show(CommonModel::$error_param, '该商品分组为空') : json_show(CommonModel::$success, '获取商品分组详情成功', $res);
  63. }
  64. //编辑商品分组
  65. public static function edit(array $data = []): Json
  66. {
  67. $rs = GoodGroupModel::field('id,company_id,card_id')
  68. ->where([
  69. 'id' => $data['id'],
  70. 'is_del' => CommonModel::$del_normal
  71. ])
  72. ->findOrEmpty();
  73. if ($rs->isEmpty()) return json_show(CommonModel::$error_param, '该商品分组不存在');
  74. if (($rs->company_id != $data['company_id']) || ($rs->card_id != $data['card_id'])) {
  75. $temp = GoodGroupModel::field('id')
  76. ->where([
  77. 'is_del' => CommonModel::$del_normal,
  78. 'company_id' => $data['company_id'],
  79. 'card_id' => $data['card_id']
  80. ])
  81. ->findOrEmpty()
  82. ->isEmpty();
  83. if (!$temp) return json_show(CommonModel::$error_param, '该分组已存在');
  84. }
  85. $date = date('Y-m-d H:i:s');
  86. $res = GoodGroupModel::where(['id' => $data['id'], 'is_del' => CommonModel::$del_normal])
  87. ->save(array_merge($data, ['updatetime' => $date, 'updaterid' => self::$uid, 'updater' => self::$uid]));
  88. return $res ? json_show(CommonModel::$success, '编辑商品分组成功') : json_show(CommonModel::$success, '编辑商品分组失败');
  89. }
  90. //商品分组启禁用
  91. public static function status(array $data = []): Json
  92. {
  93. $res = GoodGroupModel::where('id', $data['id'])
  94. ->where('status', '<>', $data['status'])
  95. ->save([
  96. 'status' => $data['status'],
  97. 'updatetime' => date('Y-m-d H:i:s'),
  98. 'updaterid' => self::$uid,
  99. 'updater' => self::$uid
  100. ]);
  101. return $res ? json_show(CommonModel::$success, '操作成功') : json_show(CommonModel::$success, '操作失败');
  102. }
  103. //删除商品分组
  104. public static function delete(array $ids = []): Json
  105. {
  106. Db::startTrans();
  107. try {
  108. $res = GoodGroupModel::whereIn('id', $ids)
  109. ->where('is_del', CommonModel::$del_normal)
  110. ->save([
  111. 'is_del' => CommonModel::$del_deleted,
  112. 'updatetime' => date('Y-m-d H:i:s'),
  113. 'updaterid' => self::$uid,
  114. 'updater' => self::$uid
  115. ]);
  116. if (!$res) throw new Exception('该商品分组不存在');
  117. Db::name('good_group_item')
  118. ->whereIn('good_group_id', $ids)
  119. ->where('is_del', CommonModel::$del_normal)
  120. ->update([
  121. 'is_del' => CommonModel::$del_deleted,
  122. 'updatetime' => date('Y-m-d H:i:s')
  123. ]);
  124. Db::commit();
  125. return json_show(CommonModel::$success, '删除成功');
  126. } catch (Exception $exception) {
  127. Db::rollback();
  128. return json_show(CommonModel::$error_param, '删除失败,' . $exception->getMessage());
  129. }
  130. }
  131. }