leftJoin('good b', 'b.id=a.good_id AND b.is_del=' . CommonModel::$del_normal) ->leftJoin('group c', 'c.id=a.group_id AND c.is_del=' . CommonModel::$del_normal) ->leftJoin('company d', 'd.id=c.company_id AND d.is_del=' . CommonModel::$del_normal) ->leftJoin('card e', 'e.id=c.card_id AND e.is_del=' . CommonModel::$del_normal) ->leftJoin('unit f', 'f.id=b.unit_id AND f.is_del=' . CommonModel::$del_normal) ->where(['a.is_del' => CommonModel::$del_normal]); if ($data['group_id'] != '') $db->where('a.group_id', $data['group_id']); if ($data['good_name'] != '') $db->whereLike('b.good_name', '%' . $data['good_name'] . '%'); if ($data['good_code'] != '') $db->whereLike('b.good_code', '%' . $data['good_code'] . '%'); if ($data['status'] != '') $db->where('a.status', $data['status']); if ($data['type'] != '') $db->where('b.type', $data['type']); $count = $db->count('a.id'); $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.type,b.step,f.unit,b.price,a.status,a.creater,a.addtime') ->page($data['page'], $data['size']) ->order(['a.is_top' => 'desc', 'a.weight' => 'desc', 'a.id' => 'desc']) ->select() ->toArray(); return json_show(CommonModel::$success, '获取公司商品列表成功', ['count' => $count, 'list' => $list]); } //添加 public static function add(array $data = []): Json { Db::startTrans(); try { $rs = GroupModel::field('id') ->where(['id' => $data['group_id'], 'is_del' => CommonModel::$del_normal]) ->findOrEmpty() ->isEmpty(); if ($rs) throw new Exception('该分组不存在'); $data['good_id'] = GoodModel::where('is_del', CommonModel::$del_normal) ->whereIn('id', $data['good_id']) ->column('id'); if (empty($data['good_id'])) throw new Exception('该商品不存在'); $rs = CompanyGoodModel::field('a.id,a.good_id,b.good_name,b.good_code') ->alias('a') ->leftJoin('good b', 'b.id=a.good_id AND b.is_del=' . CommonModel::$del_normal) ->where(['a.is_del' => CommonModel::$del_normal, 'a.group_id' => $data['group_id']]) ->whereIn('a.good_id', $data['good_id']) ->findOrEmpty() ->toArray(); if (!empty($rs)) throw new Exception("【{$rs['good_code']}】【{$rs['good_name']}】该商品重复添加"); $insert = []; $date = date('Y-m-d H:i:s'); foreach ($data['good_id'] as $good_id) { $insert[] = [ 'group_id' => $data['group_id'], 'code' => make_no('CG'), 'good_id' => $good_id, 'is_del' => CommonModel::$del_normal, 'status' => CommonModel::$status_normal, 'is_top' => CommonModel::$top_no, 'weight' => 0, 'creater' => self::$uname, 'createrid' => self::$uid, 'addtime' => $date, 'updater' => self::$uname, 'updaterid' => self::$uid, 'updatetime' => $date, ]; } $res = Db::name('company_good')->insertAll($insert); Db::commit(); if ($res) return json_show(CommonModel::$success, '添加公司商品成功'); else throw new Exception(); } catch (Exception $exception) { Db::rollback(); return json_show(CommonModel::$error_param, '添加公司商品失败,' . $exception->getMessage()); } } //获取详情 public static function read(int $id = 0): Json { $res = CompanyGoodModel::field(true) ->where(['id' => $id, 'is_del' => CommonModel::$del_normal]) ->findOrEmpty() ->toArray(); return empty($res) ? json_show(CommonModel::$error_param, '该公司商品为空') : json_show(CommonModel::$success, '获取公司商品详情成功', $res); } //编辑 public static function edit(array $data = []): Json { $rs = CompanyGoodModel::field('id') ->where(['is_del' => CommonModel::$del_normal, 'id' => $data['id']]) ->findOrEmpty() ->isEmpty(); if ($rs) return json_show(CommonModel::$error_param, '该公司商品不存在'); $rs = GroupModel::field('id') ->where(['id' => $data['group_id'], 'is_del' => CommonModel::$del_normal]) ->findOrEmpty() ->isEmpty(); if ($rs) return json_show(CommonModel::$error_param, '该分组不存在'); $rs = GoodModel::field('id') ->where(['id' => $data['good_id'], 'is_del' => CommonModel::$del_normal]) ->findOrEmpty() ->isEmpty(); if ($rs) return json_show(CommonModel::$error_param, '该商品不存在'); $rs = CompanyGoodModel::field('id') ->where(['is_del' => CommonModel::$del_normal, 'group_id' => $data['group_id'], 'good_id' => $data['good_id']]) ->where('id', '<>', $data['id']) ->findOrEmpty() ->isEmpty(); if (!$rs) return json_show(CommonModel::$error_param, '该公司商品已存在'); $res = CompanyGoodModel::where('id', $data['id'])->save((array_merge($data, [ 'updater' => self::$uname, 'updaterid' => self::$uid, 'updatetime' => date('Y-m-d H:i:s'), ]))); return $res ? json_show(CommonModel::$success, '编辑公司商品成功') : json_show(CommonModel::$error_param, '编辑公司商品失败'); } //删除 public static function delete(array $ids = []): Json { $res = CompanyGoodModel::whereIn('id', $ids) ->where('is_del', CommonModel::$del_normal) ->update([ 'is_del' => CommonModel::$del_deleted, 'updatetime' => date('Y-m-d H:i:s'), 'updaterid' => self::$uid, 'updater' => self::$uname ]); return $res ? json_show(CommonModel::$success, '删除成功') : json_show(CommonModel::$error_param, '删除失败,该公司商品不存在'); } //置顶 public static function top(array $data = []): Json { $res = CompanyGoodModel::where(['id' => $data['id'], 'is_del' => CommonModel::$del_normal]) ->where('is_top', '<>', $data['is_top']) ->update([ 'is_top' => $data['is_top'], 'updaterid' => self::$uid, 'updater' => self::$uname, 'updatetime' => date('Y-m-d H:i:s') ]); return $res ? json_show(CommonModel::$success, '操作成功') : json_show(CommonModel::$error_param, '操作失败,该公司商品不存在或重复操作'); } //启禁用 public static function status(array $data = []): Json { $res = CompanyGoodModel::where(['id' => $data['id'], 'is_del' => CommonModel::$del_normal]) ->where('status', '<>', $data['status']) ->update([ 'status' => $data['status'], 'updaterid' => self::$uid, 'updater' => self::$uname, 'updatetime' => date('Y-m-d H:i:s') ]); return $res ? json_show(CommonModel::$success, '操作成功') : json_show(CommonModel::$error_param, '操作失败,该公司商品不存在或重复操作'); } }