From ae9657838a49d99968eeaa35f6f747c5fa2f8ddb Mon Sep 17 00:00:00 2001 From: gongfuxiang Date: Sat, 11 Dec 2021 21:46:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=93=E5=BA=93=E7=BC=96=E8=BE=91=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E5=BA=93=E5=AD=98=E5=90=8C=E6=AD=A5=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/service/WarehouseService.php | 65 ++++++++++++++++++++------------ 1 file changed, 41 insertions(+), 24 deletions(-) diff --git a/app/service/WarehouseService.php b/app/service/WarehouseService.php index 38a48ee4b..71ab4c915 100644 --- a/app/service/WarehouseService.php +++ b/app/service/WarehouseService.php @@ -214,38 +214,55 @@ class WarehouseService 'lng' => isset($params['lng']) ? floatval($params['lng']) : 0, 'lat' => isset($params['lat']) ? floatval($params['lat']) : 0, 'is_default' => $is_default, + 'is_enable' => isset($params['is_enable']) ? intval($params['is_enable']) : 0, ]; + // 启动事务 Db::startTrans(); - // 默认地址处理 - if($is_default == 1) - { - Db::name('Warehouse')->where(['is_default'=>1])->update(['is_default'=>0]); - } + // 捕获异常 + try { + // 默认地址处理 + if($is_default == 1) + { + Db::name('Warehouse')->where(['is_default'=>1])->update(['is_default'=>0]); + } - // 添加/更新数据 - if(empty($params['id'])) - { - $data['add_time'] = time(); - if(Db::name('Warehouse')->insertGetId($data) > 0) + // 获取仓库数据 + $info = empty($params['id']) ? [] : Db::name('Warehouse')->where(['id'=>intval($params['id'])])->find(); + + // 添加/更新数据 + if(empty($info)) { - Db::commit(); - return DataReturn('新增成功', 0); + $data['add_time'] = time(); + if(Db::name('Warehouse')->insertGetId($data) <= 0) + { + throw new \Exception('新增失败'); + } } else { - Db::rollback(); - return DataReturn('新增失败'); - } - } else { - $data['upd_time'] = time(); - if(Db::name('Warehouse')->where(['id'=>intval($params['id'])])->update($data)) - { - Db::commit(); - return DataReturn('更新成功', 0); - } else { - Db::rollback(); - return DataReturn('更新失败'); + $data['upd_time'] = time(); + if(!Db::name('Warehouse')->where(['id'=>intval($params['id'])])->update($data)) + { + throw new \Exception('更新失败'); + } + + // 同步处理 + if($info['is_enable'] != $data['is_enable']) + { + $ret = self::WarehouseGoodsInventorySync($info['id']); + if($ret['code'] != 0) + { + throw new \Exception($ret['msg']); + } + } } + + // 完成 + Db::commit(); + return DataReturn('操作成功', 0); + } catch(\Exception $e) { + Db::rollback(); + return DataReturn($e->getMessage(), -1); } }