123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- <?php
- namespace app\admin\logic;
- use app\model\AccountModel;
- use app\model\CommonModel;
- use app\model\GoodModel;
- use app\model\InventoryShoppingModel;
- use think\Exception;
- use think\exception\ValidateException;
- use think\facade\Db;
- use think\response\Json;
- class InventoryShoppingLogic extends BaseLogic
- {
- //获取商城商品库存列表
- public static function list(array $data = []): Json
- {
- $db = new InventoryShoppingModel();
- if ($data['good_name'] != '') $db = $db->whereLike('good_name', '%' . $data['good_name'] . '%');
- if (($data['inventory_start'] != '') && ($data['inventory_end'] != '')) {
- $db = $db->whereBetween('inventory', [$data['inventory_start'], $data['inventory_end']]);
- }
- $count = $db->count('id');
- $list = $db->field(true)
- ->page($data['page'], $data['size'])
- ->order(['id' => 'desc'])
- ->select()
- ->toArray();
- return json_show(CommonModel::$success, '获取商城商品库存列表成功', ['count' => $count, 'list' => $list]);
- }
- //添加商城商品库存
- public static function add(array $data = []): Json
- {
- Db::startTrans();
- try {
- $rs = InventoryShoppingModel::field('id')
- ->where('good_id', $data['good_id'])
- ->findOrEmpty()
- ->isEmpty();
- if (!$rs) throw new Exception('该账号下的商城商品库存已存在,不能重复添加');
- $good = GoodModel::field('id,good_code,good_name')
- ->where(['id' => $data['good_id'], 'is_del' => CommonModel::$del_normal])
- ->findOrEmpty();
- if ($good->isEmpty()) throw new Exception('该商品不存在');
- $date = date('Y-m-d H:i:s');
- $inventory_shopping_id = Db::name('inventory_shopping')
- ->insertGetId(array_merge($data, [
- 'good_code' => $good->good_code,
- 'good_name' => $good->good_name,
- 'addtime' => $date,
- 'updatetime' => $date,
- ]));
- Db::name('inventory_shopping_log')->insert([
- 'inventory_shopping_id' => $inventory_shopping_id,
- 'before_inventory' => 0,
- 'after_inventory' => $data['inventory'],
- 'good_id' => $data['good_id'],
- 'good_code' => $good->good_code,
- 'good_name' => $good->good_name,
- 'source' => CommonModel::$source_admin,
- 'createrid' => self::$uid,
- 'creater' => self::$uname,
- 'addtime' => $date,
- ]);
- Db::commit();
- return json_show(CommonModel::$success, '添加商城商品库存成功');
- } catch (Exception $exception) {
- Db::rollback();
- return json_show(CommonModel::$error_param, '添加商城商品库存失败,' . $exception->getMessage());
- }
- }
- //获取商城商品库存详情
- public static function read(int $id = 0): Json
- {
- $res = InventoryShoppingModel::field(true)
- ->where('id', $id)
- ->findOrEmpty()
- ->toArray();
- if (empty($res)) throw new ValidateException('该商城商品库存为空');
- return json_show(CommonModel::$success, '获取商城商品库存详情成功', $res);
- }
- //编辑商城商品库存
- public static function edit(array $data = []): Json
- {
- Db::startTrans();
- try {
- $rs = InventoryShoppingModel::field(true)
- ->lock(true)
- ->where(['id' => $data['id']])
- ->findOrEmpty();
- if ($rs->isEmpty()) throw new Exception('该商城商品库存不存在');
- $date = date('Y-m-d H:i:s');
- if ($rs->inventory != $data['inventory']) {
- Db::name('inventory_shopping_log')->insert([
- 'inventory_shopping_id' => $data['id'],
- 'before_inventory' => $rs->inventory,
- 'after_inventory' => $data['inventory'],
- 'good_id' => $rs->good_id,
- 'good_code' => $rs->good_code,
- 'good_name' => $rs->good_name,
- 'source' => CommonModel::$source_admin,
- 'createrid' => self::$uid,
- 'creater' => self::$uname,
- 'addtime' => $date,
- ]);
- }
- InventoryShoppingModel::where('id', $data['id'])->save(array_merge($data, ['updatetime' => $date]));
- Db::commit();
- return json_show(CommonModel::$success, '编辑商城商品库存成功');
- } catch (Exception $exception) {
- Db::rollback();
- return json_show(CommonModel::$error_param, '编辑商城商品库存失败,' . $exception->getMessage());
- }
- }
- //商城商品库存变动记录
- public static function log(array $data = []): Json
- {
- $count = Db::name('inventory_shopping_log')
- ->where('inventory_shopping_id', $data['id'])
- ->count('id');
- $res = Db::name('inventory_shopping_log')
- ->field(true)
- ->where('inventory_shopping_id', $data['id'])
- ->order('id', 'desc')
- ->page($data['page'], $data['size'])
- ->select()
- ->toArray();
- return json_show(CommonModel::$success, '获取商城商品库存变动记录', ['count' => $count, 'list' => $res]);
- }
- }
|