From 30cbd5eafe1bf35cdbad7d483a669afe06ecae3a Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Fri, 28 Jun 2024 15:03:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=E4=BA=86=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=95=86=E5=93=81=E5=AD=98=E5=82=A8=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E5=92=8C=E6=94=AF=E4=BB=98=E9=80=9A=E7=9F=A5=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UserProductStorageLists.php | 6 ++- app/api/controller/user/UserController.php | 2 +- app/common/logic/PayNotifyLogic.php | 7 ++- app/common/logic/StoreFinanceFlowLogic.php | 5 ++ .../UserProductStorageLogic.php | 34 +++++++++++++- .../UserProductStorageController.php | 46 +++++++++++++++++++ app/store/logic/WorkbenchLogic.php | 4 ++ 7 files changed, 96 insertions(+), 8 deletions(-) create mode 100644 app/store/controller/user_product_storage/UserProductStorageController.php diff --git a/app/admin/lists/user_product_storage/UserProductStorageLists.php b/app/admin/lists/user_product_storage/UserProductStorageLists.php index e95554246..8a8c7ffe9 100644 --- a/app/admin/lists/user_product_storage/UserProductStorageLists.php +++ b/app/admin/lists/user_product_storage/UserProductStorageLists.php @@ -52,8 +52,10 @@ class UserProductStorageLists extends BaseAdminDataLists implements ListsSearchI ->select()->each(function($item){ $user=User::where('id',$item['uid'])->field('nickname,real_name')->find(); $item['nickname']=$user['real_name']?$user['real_name'].'|'.$item['uid']:$user['nickname'].'|'.$item['uid']; - $item['store_name']=StoreProduct::where('id',$item['product_id'])->value('store_name'); - $item['system_store_name']=SystemStore::where('id',$item['store_id'])->value('name'); + $find=StoreProduct::where('id',$item['product_id'])->field('store_name,image,price')->find(); + $item['store_name']=$find['store_name']; + $item['image']=$find['image']; + $item['price']=$find['price']; if($item['status']==1){ $item['status_name']='正常'; }else{ diff --git a/app/api/controller/user/UserController.php b/app/api/controller/user/UserController.php index 2074f4f88..f476f8c34 100644 --- a/app/api/controller/user/UserController.php +++ b/app/api/controller/user/UserController.php @@ -251,7 +251,7 @@ class UserController extends BaseApiController public function other_user_info(){ $mobile=$this->request->get('mobile'); if($mobile){ - $user=User::where('mobile',$mobile)->field('id,avatar,real_name,nickname,mobile,user_ship,purchase_funds')->find(); + $user=User::where('mobile',$mobile)->field('id,avatar,real_name,nickname,mobile,user_ship,purchase_funds,label_id')->find(); if($user){ $user['address_info']=UserAddress::where('uid',$user['id'])->where('is_default',1)->find(); } diff --git a/app/common/logic/PayNotifyLogic.php b/app/common/logic/PayNotifyLogic.php index 83af6e9f7..1acae8c26 100644 --- a/app/common/logic/PayNotifyLogic.php +++ b/app/common/logic/PayNotifyLogic.php @@ -99,7 +99,6 @@ class PayNotifyLogic extends BaseLogic // self::descStock($order['id']); // } self::afterPay($order); - UserProductStorageLogic::add($order); if ($extra && $extra['store_id']) { $params = [ 'verify_code' => $order['verify_code'], @@ -200,7 +199,6 @@ class PayNotifyLogic extends BaseLogic // } // self::addUserSing($order); self::afterPay($order); - UserProductStorageLogic::add($order); if ($extra && $extra['store_id']) { $params = [ 'verify_code' => $order['verify_code'], @@ -403,7 +401,6 @@ class PayNotifyLogic extends BaseLogic } $order->save(); self::afterPay($order, $extra['transaction_id']); - UserProductStorageLogic::add($order); // self::addUserSing($order); self::dealProductLog($order); if ($order['shipping_type'] == 3) { @@ -705,7 +702,9 @@ class PayNotifyLogic extends BaseLogic throw new \Exception('订单保存出错'); } self::afterPay($order); - UserProductStorageLogic::add($order); + if($order['is_storage']==1){ + UserProductStorageLogic::add($order); + } $cashFlowLogic = new CashFlowLogic(); $cashFlowLogic->insert($order['store_id'], $order['pay_price']); self::dealProductLog($order); diff --git a/app/common/logic/StoreFinanceFlowLogic.php b/app/common/logic/StoreFinanceFlowLogic.php index f5bb794f9..534ce5091 100644 --- a/app/common/logic/StoreFinanceFlowLogic.php +++ b/app/common/logic/StoreFinanceFlowLogic.php @@ -150,6 +150,11 @@ class StoreFinanceFlowLogic extends BaseLogic if($deposit){ SystemStore::where('id', $store_id)->inc('paid_deposit', $deposit)->update(); } + $find=StoreFinanceFlow::where(['order_id'=>$order_id,'financial_pm'=>1,'financial_type'=>16])->find(); + if($find){ + $find->update(['status' => 1]); + SystemStore::where('id', $store_id)->inc('attrition', $find['number'])->update(); + } } } diff --git a/app/common/logic/user_product_storage/UserProductStorageLogic.php b/app/common/logic/user_product_storage/UserProductStorageLogic.php index 3d17314d4..4125c73c4 100644 --- a/app/common/logic/user_product_storage/UserProductStorageLogic.php +++ b/app/common/logic/user_product_storage/UserProductStorageLogic.php @@ -6,7 +6,7 @@ use app\common\logic\BaseLogic; use app\common\model\store_order_cart_info\StoreOrderCartInfo; use app\common\model\user_product_storage\UserProductStorage; use app\common\model\user_product_storage_log\UserProductStorageLog; -use think\Exception; +use think\facade\Db; /** * 用户商品储存逻辑 @@ -36,4 +36,36 @@ class UserProductStorageLogic extends BaseLogic } } + /** + * 出库 + */ + public static function supply($data,$uid,$store_id){ + Db::startTrans(); + try { + $data_log=[]; + foreach ($data as $k=>$v){ + $find=UserProductStorage::where('uid',$uid)->where('product_id',$v['product_id'])->find(); + if($find){ + if($find['nums']<$v['nums']){ + self::setError('库存不足'); + return false; + } + $find->nums=bcsub($find['nums'],$v['nums']); + $find->saver(); + $data_log[$k]['uid']=$uid; + $data_log[$k]['oid']=$find['oid']; + $data_log[$k]['product_id']=$find['product_id']; + $data_log[$k]['store_id']=$store_id; + $data_log[$k]['financial_pm']=0; + $data_log[$k]['nums']=$v['nums']; + } + } + (new UserProductStorageLog())->saveAll($data_log); + Db::commit(); + } catch (\Exception $e) { + Db::rollback(); + self::setError($e->getMessage()); + return false; + } + } } \ No newline at end of file diff --git a/app/store/controller/user_product_storage/UserProductStorageController.php b/app/store/controller/user_product_storage/UserProductStorageController.php new file mode 100644 index 000000000..60b159433 --- /dev/null +++ b/app/store/controller/user_product_storage/UserProductStorageController.php @@ -0,0 +1,46 @@ +dataLists(new UserProductStorageLists()); + } + + /** + * 出库 + */ + public function supply(){ + + $params=$this->request->post(); + $info=$params['info']; + $uid=$params['uid']; + $store_id=$this->adminInfo['store_id']; + d($params); + UserProductStorageLogic::supply($info,$uid,$store_id); + if(UserProductStorageLogic::hasError()){ + return $this->fail(UserProductStorageLogic::getError()); + } + return $this->success('操作成功'); + } +} \ No newline at end of file diff --git a/app/store/logic/WorkbenchLogic.php b/app/store/logic/WorkbenchLogic.php index 748df2080..21929fbe5 100644 --- a/app/store/logic/WorkbenchLogic.php +++ b/app/store/logic/WorkbenchLogic.php @@ -58,12 +58,14 @@ class WorkbenchLogic extends BaseLogic $cashFinanceWhere = []; $storeFinanceWhere = ['financial_type'=>2,'financial_pm'=>1]; $storeFinanceWhereTwo = ['financial_type'=>11,'financial_pm'=>0]; + $attritionWhere=[]; if ($params['store_id'] != 0) { $where['store_id'] = $params['store_id']; $userRechargeWhere['store_id'] = $params['store_id']; $cashFinanceWhere = ['store_id' => $params['store_id']]; $storeFinanceWhere['store_id'] = $params['store_id']; $storeFinanceWhereTwo['store_id'] = $params['store_id']; + $attritionWhere['store_id'] = $params['store_id']; } $orderLogic = new StoreOrderLogic(); //订单总金额 @@ -89,6 +91,8 @@ class WorkbenchLogic extends BaseLogic // $data['receipt_amount'] = UserRecharge::where($userRechargeWhere)->whereBetweenTime('create_time', $startTime, $endTime)->sum('price'); //保证金金额 $data['deposit_amount'] = StoreFinanceFlow::where($storeFinanceWhereTwo)->whereBetweenTime('create_time', $startTime, $endTime)->sum('number'); + /**门店损耗金 */ + $data['attrition_amount'] = SystemStore::where($attritionWhere)->sum('attrition'); //门店成交用户数 $data['user_number'] = StoreOrder::where($where) ->whereBetweenTime('pay_time', $startTime, $endTime)