From 9a1002367c3f9936aaf7866a6192e1c470732d7c Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Fri, 16 Aug 2024 14:42:23 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=8F=90=E7=8E=B0API=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E8=BA=AB=E4=BB=BD=E8=AE=A4=E8=AF=81=E5=92=8C=E6=8F=90=E7=8E=B0?= =?UTF-8?q?=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/controller/user/UserController.php | 11 +++++++---- app/api/validate/UserValidate.php | 9 +++++++++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/app/api/controller/user/UserController.php b/app/api/controller/user/UserController.php index 00bb2b9fb..f9d82253b 100644 --- a/app/api/controller/user/UserController.php +++ b/app/api/controller/user/UserController.php @@ -293,7 +293,7 @@ class UserController extends BaseApiController */ public function cash_info() { - $info = User::where('id', $this->userId)->field('id,now_money,id_card')->find(); + $info = User::where('id', $this->userId)->field('id,real_name,mobile,now_money,id_card')->find(); $info['notes'] = '提现金额需大于1元,提现到微信零钱,并财务审核,审核通过后,提现金额将自动到账'; $info['extract_price'] =StoreExtract::where('uid',$this->userId)->sum('extract_price'); return $this->data($info); @@ -312,6 +312,9 @@ class UserController extends BaseApiController if ($money < 1) { return $this->fail('提现金额不能小于1元'); } + if ($find['id_card']=='') { + return $this->fail('请先完成身份认证'); + } $data['uid'] = $this->userId; $data['create_time'] = time(); $data['status'] = 0; @@ -358,9 +361,9 @@ class UserController extends BaseApiController * 更新身份证号 */ public function update_id_card(){ - $id_card = $this->request->post('id_card'); - if($id_card){ - User::where('id',$this->userId)->update(['id_card'=>$id_card]); + $data= (new UserValidate())->post()->goCheck('card'); + if($data){ + User::where('id',$this->userId)->update(['id_card'=>$data['id_card'],'real_name'=>$data['real_name'],'nickname'=>$data['real_name']]); return $this->success('设置成功'); } return $this->fail('请输入身份证号'); diff --git a/app/api/validate/UserValidate.php b/app/api/validate/UserValidate.php index 29d3e3a5c..188c131d8 100644 --- a/app/api/validate/UserValidate.php +++ b/app/api/validate/UserValidate.php @@ -24,6 +24,8 @@ class UserValidate extends BaseValidate 'rePassword' => 'require|requireWith:password|confirm:password', 'type' => 'require', 'account' => 'require', + 'real_name' => 'require', + 'id_card' => 'require|idCard', ]; @@ -36,6 +38,8 @@ class UserValidate extends BaseValidate 'password.require' => '密码缺失', 'rePassword.require' => '确认密码缺失', 'type' => '查询类型', + 'id_card' => '身份证格式错误', + 'real_name' => '姓名不能为空', ]; @@ -49,6 +53,11 @@ class UserValidate extends BaseValidate { return $this->only(['type']); + } + public function sceneCard() + { + return $this->only(['id_card','real_name']); + } //设置/更新密码 From c46295832508aed0bd939b42cdeab85a0814c63e Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Fri, 16 Aug 2024 17:51:38 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=96=B0?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=90=88=E5=B9=B6=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PurchaseOrderController.php | 43 ++++++++---- .../PurchaseProductOfferLists.php | 3 +- .../lists/store_order/StoreOrderLists.php | 7 +- .../purchase_order/PurchaseOrderLogic.php | 67 ++++++++++++++++--- app/api/controller/user/UserController.php | 2 +- .../model/purchase_order/PurchaseOrder.php | 2 +- 6 files changed, 98 insertions(+), 26 deletions(-) diff --git a/app/admin/controller/purchase_order/PurchaseOrderController.php b/app/admin/controller/purchase_order/PurchaseOrderController.php index 390727d2a..9fec61fc9 100644 --- a/app/admin/controller/purchase_order/PurchaseOrderController.php +++ b/app/admin/controller/purchase_order/PurchaseOrderController.php @@ -1,11 +1,16 @@ -dataLists(new PurchaseOrderInfoLists()); } + public function order_lists() + { + $id = $this->request->get('id'); + $order_arr = PurchaseOrder::where('id', $id)->value('order_arr'); + $this->request->__set('order_arr', $order_arr); + return $this->dataLists(new StoreOrderLists); + } /** * 合并今日商户订单 */ - public function add(){ - PurchaseOrderLogic::StoreTodayOrder(); + public function add() + { + $data = $this->request->post(); + PurchaseOrderLogic::mergeOrder($data); + if (PurchaseOrderLogic::hasError()) { + return $this->fail(PurchaseOrderLogic::getError()); + } return $this->success('合并成功'); } - /** + /** * 合并今日平台订单 */ - public function platform(){ + public function platform() + { PurchaseOrderLogic::platformTodayOrder(); return $this->success('合并成功'); } - /** + /** * 详情 */ - public function detail(){ - $id=$this->request->get('id'); - $res=PurchaseOrderLogic::detail($id); + public function detail() + { + $id = $this->request->get('id'); + $res = PurchaseOrderLogic::detail($id); return $this->data($res); - } -} \ No newline at end of file + } +} diff --git a/app/admin/lists/purchase_product_offer/PurchaseProductOfferLists.php b/app/admin/lists/purchase_product_offer/PurchaseProductOfferLists.php index f40058918..565a3c411 100644 --- a/app/admin/lists/purchase_product_offer/PurchaseProductOfferLists.php +++ b/app/admin/lists/purchase_product_offer/PurchaseProductOfferLists.php @@ -28,7 +28,7 @@ class PurchaseProductOfferLists extends BaseAdminDataLists implements ListsSearc public function setSearch(): array { return [ - '=' => [], + '=' => ['order_id'], ]; } @@ -51,6 +51,7 @@ class PurchaseProductOfferLists extends BaseAdminDataLists implements ListsSearc ->select()->each(function($item){ $find=StoreProduct::where('id',$item->product_id)->find(); $item->store_name=$find->store_name; + $item->store_info=$find->store_info; $item->image=$find->image; $item->unit_name=StoreProductUnit::where('id',$item->unit)->value('name'); if($item->is_buyer==1){ diff --git a/app/admin/lists/store_order/StoreOrderLists.php b/app/admin/lists/store_order/StoreOrderLists.php index 6e4f589d3..257f776a7 100644 --- a/app/admin/lists/store_order/StoreOrderLists.php +++ b/app/admin/lists/store_order/StoreOrderLists.php @@ -30,7 +30,7 @@ class StoreOrderLists extends BaseAdminDataLists implements ListsSearchInterface public function setSearch(): array { return [ - '=' => ['order_id','store_id', 'pay_type', 'staff_id', 'shipping_type', 'delivery_id','paid', 'status', 'is_writeoff'], + '=' => ['order_id','store_id', 'pay_type', 'staff_id', 'shipping_type', 'delivery_id','paid', 'status', 'is_writeoff','is_merge'], 'between_time' => 'create_time' ]; } @@ -50,6 +50,9 @@ class StoreOrderLists extends BaseAdminDataLists implements ListsSearchInterface if($this->request->get('is_delivery')>=1){ $this->searchWhere[]=['delivery_uid','>',0]; } + if($this->request->__get('order_arr')){ + $this->searchWhere[]=['id','in',$this->request->__get('order_arr')]; + } return StoreOrder::with(['staff','store'])->where($this->searchWhere) ->when(!empty($this->request->adminInfo['store_id']), function ($query) { $query->where('store_id', $this->request->adminInfo['store_id']); @@ -62,7 +65,7 @@ class StoreOrderLists extends BaseAdminDataLists implements ListsSearchInterface $query->whereIn('status', $status); } }) - ->field(['id', 'store_id', 'staff_id', 'order_id', 'paid', 'pay_price', 'pay_time', 'pay_type', 'status', 'uid','refund_status','create_time','delivery_name','delivery_id']) + ->field(['id', 'store_id', 'staff_id', 'order_id', 'paid', 'pay_price','total_price', 'pay_time', 'pay_type', 'status', 'uid','refund_status','create_time','delivery_name','delivery_id']) ->limit($this->limitOffset, $this->limitLength) ->order(['id' => 'desc']) ->select()->each(function ($item) { diff --git a/app/admin/logic/purchase_order/PurchaseOrderLogic.php b/app/admin/logic/purchase_order/PurchaseOrderLogic.php index cab700969..83f97290e 100644 --- a/app/admin/logic/purchase_order/PurchaseOrderLogic.php +++ b/app/admin/logic/purchase_order/PurchaseOrderLogic.php @@ -6,8 +6,10 @@ namespace app\admin\logic\purchase_order; use app\common\model\purchase_order\PurchaseOrder; use app\common\logic\BaseLogic; use app\common\model\purchase_order_info\PurchaseOrderInfo; +use app\common\model\purchase_product_offer\PurchaseProductOffer; use app\common\model\store_order\StoreOrder; use app\common\model\store_order_cart_info\StoreOrderCartInfo; +use app\common\model\store_product\StoreProduct; use app\common\model\system_store\SystemStore; use think\facade\Db; @@ -20,6 +22,54 @@ use think\facade\Db; class PurchaseOrderLogic extends BaseLogic { + public static function mergeOrder($params) + { + $oid_arr = []; + $store_arr = []; + foreach ($params as $k => $v) { + $oid_arr[] = $v['oid']; + $store_arr[] = $v['store_id']; + } + $store_arr = array_unique($store_arr); + Db::startTrans(); + try { + $price = StoreOrder::whereIn('id', $oid_arr)->field('SUM(pay_price) as pay_price,SUM(total_price) as total_price')->find(); + $data = [ + 'store_id' => 0, + 'store_arr' => json_encode($store_arr), + 'order_arr' => json_encode($oid_arr), + 'order_id' => getNewOrderId('PT'), + 'total' => $price['total_price'], + 'actual' => $price['pay_price'], + 'money' => $price['pay_price'], + 'paid' => 1, + 'is_mer' => 2, + 'create_time' => time(), + 'update_time' => time(), + ]; + $res = PurchaseOrder::create($data); + $info = StoreOrderCartInfo::where('oid', 'in', $oid_arr)->field('store_id, product_id,price,SUM(total_price) as total_price, SUM(cart_num) as cart_num')->group('product_id')->select(); + $purchase_order_info = []; + foreach ($info as $item) { + $arr['order_id'] = $res['id']; + $arr['product_id'] = $item['product_id']; + $arr['price'] = $item['price']; + $arr['total_price'] = $item['total_price']; + $arr['need_num'] = $item['cart_num']; + $arr['unit'] = StoreProduct::where('id',$item['product_id'])->value('unit'); + $purchase_order_info[] = $arr; + } + $purchaseOrderInfo = new PurchaseProductOffer(); + $purchaseOrderInfo->saveAll($purchase_order_info); + StoreOrder::whereIn('id', $oid_arr)->update(['is_merge' => 1]); + Db::commit(); + return true; + } catch (\Throwable $e) { + Db::rollback(); + self::setError($e->getMessage()); + return false; + } + } /** * @notes 合并今日商户订单 @@ -85,8 +135,8 @@ class PurchaseOrderLogic extends BaseLogic Db::startTrans(); try { $purchaseOrderInfo = new PurchaseOrderInfo(); - $purchase_order_info=[]; - $order_arr = PurchaseOrder::whereDay('create_time')->where('is_mer',1)->column('id'); + $purchase_order_info = []; + $order_arr = PurchaseOrder::whereDay('create_time')->where('is_mer', 1)->column('id'); $price = PurchaseOrder::whereDay('create_time')->field('SUM(actual) as pay_price,SUM(total) as total_price')->find(); $data = [ 'store_id' => 0, @@ -118,7 +168,6 @@ class PurchaseOrderLogic extends BaseLogic return true; } catch (\Exception $e) { Db::rollback(); - d($e); self::setError($e->getMessage()); return false; } @@ -146,12 +195,12 @@ class PurchaseOrderLogic extends BaseLogic */ public static function detail($id): array { - $data= PurchaseOrder::findOrEmpty($id)->toArray(); - if($data){ - if($data['store_id']){ - $data['system_store']=SystemStore::where('id',$data['store_id'])->value('name'); - }else{ - $data['system_store']='平台'; + $data = PurchaseOrder::findOrEmpty($id)->toArray(); + if ($data) { + if ($data['store_id']) { + $data['system_store'] = SystemStore::where('id', $data['store_id'])->value('name'); + } else { + $data['system_store'] = '平台'; } switch ($data['storage']) { case 0: diff --git a/app/api/controller/user/UserController.php b/app/api/controller/user/UserController.php index f9d82253b..389a01ecf 100644 --- a/app/api/controller/user/UserController.php +++ b/app/api/controller/user/UserController.php @@ -294,7 +294,7 @@ class UserController extends BaseApiController public function cash_info() { $info = User::where('id', $this->userId)->field('id,real_name,mobile,now_money,id_card')->find(); - $info['notes'] = '提现金额需大于1元,提现到微信零钱,并财务审核,审核通过后,提现金额将自动到账'; + $info['notes'] = '提现金额需大于1元,提现到微信零钱,并财务审核,审核通过后,提现金额将自动到账。若本月提现超过800元,将产生个人所得税款,具体税率及金额根据《中华人民共和国个人所得税法》第二条、第三条、第六条规定扣缴。'; $info['extract_price'] =StoreExtract::where('uid',$this->userId)->sum('extract_price'); return $this->data($info); } diff --git a/app/common/model/purchase_order/PurchaseOrder.php b/app/common/model/purchase_order/PurchaseOrder.php index f05cb3081..b0bb36cb1 100644 --- a/app/common/model/purchase_order/PurchaseOrder.php +++ b/app/common/model/purchase_order/PurchaseOrder.php @@ -17,6 +17,6 @@ class PurchaseOrder extends BaseModel use SoftDelete; protected $name = 'purchase_order'; protected $deleteTime = 'delete_time'; - protected $json = ['order_arr']; + protected $json = ['order_arr','store_arr']; } \ No newline at end of file From d5a716c2bdc0e9b82aba076c73fc8f14f80f9dd1 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Sat, 17 Aug 2024 14:44:20 +0800 Subject: [PATCH 3/3] =?UTF-8?q?feat(purchase=5Forder):=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95=E9=80=BB=E8=BE=91?= =?UTF-8?q?=EF=BC=8C=E4=BC=98=E5=8C=96=E6=9F=A5=E8=AF=A2=E5=92=8C=E5=90=88?= =?UTF-8?q?=E5=B9=B6=E8=AE=A2=E5=8D=95=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PurchaseOrderController.php | 7 - .../lists/store_order/StoreOrderLists.php | 3 - .../purchase_order/PurchaseOrderLogic.php | 125 +++++++++++++----- 3 files changed, 94 insertions(+), 41 deletions(-) diff --git a/app/admin/controller/purchase_order/PurchaseOrderController.php b/app/admin/controller/purchase_order/PurchaseOrderController.php index 9fec61fc9..f2521330d 100644 --- a/app/admin/controller/purchase_order/PurchaseOrderController.php +++ b/app/admin/controller/purchase_order/PurchaseOrderController.php @@ -20,13 +20,6 @@ class PurchaseOrderController extends BaseAdminController { return $this->dataLists(new PurchaseOrderInfoLists()); } - public function order_lists() - { - $id = $this->request->get('id'); - $order_arr = PurchaseOrder::where('id', $id)->value('order_arr'); - $this->request->__set('order_arr', $order_arr); - return $this->dataLists(new StoreOrderLists); - } /** * 合并今日商户订单 */ diff --git a/app/admin/lists/store_order/StoreOrderLists.php b/app/admin/lists/store_order/StoreOrderLists.php index 257f776a7..d083b379e 100644 --- a/app/admin/lists/store_order/StoreOrderLists.php +++ b/app/admin/lists/store_order/StoreOrderLists.php @@ -50,9 +50,6 @@ class StoreOrderLists extends BaseAdminDataLists implements ListsSearchInterface if($this->request->get('is_delivery')>=1){ $this->searchWhere[]=['delivery_uid','>',0]; } - if($this->request->__get('order_arr')){ - $this->searchWhere[]=['id','in',$this->request->__get('order_arr')]; - } return StoreOrder::with(['staff','store'])->where($this->searchWhere) ->when(!empty($this->request->adminInfo['store_id']), function ($query) { $query->where('store_id', $this->request->adminInfo['store_id']); diff --git a/app/admin/logic/purchase_order/PurchaseOrderLogic.php b/app/admin/logic/purchase_order/PurchaseOrderLogic.php index 83f97290e..5e76b1133 100644 --- a/app/admin/logic/purchase_order/PurchaseOrderLogic.php +++ b/app/admin/logic/purchase_order/PurchaseOrderLogic.php @@ -26,49 +26,112 @@ class PurchaseOrderLogic extends BaseLogic { $oid_arr = []; $store_arr = []; + $purchaseOrderInfo = new PurchaseOrderInfo(); + foreach ($params as $k => $v) { $oid_arr[] = $v['oid']; $store_arr[] = $v['store_id']; } $store_arr = array_unique($store_arr); - Db::startTrans(); - try { - $price = StoreOrder::whereIn('id', $oid_arr)->field('SUM(pay_price) as pay_price,SUM(total_price) as total_price')->find(); + + // Db::startTrans(); + // try { + $price = StoreOrder::whereIn('id', $oid_arr)->whereIn('store_id', $store_arr)->group('store_id')->field('store_id,SUM(pay_price) as pay_price,SUM(total_price) as total_price')->select()->toArray(); + $purchase_arr = []; + $order_arr = []; + $total_price = 0; + $pay_price = 0; + foreach ($price as $k => $v) { + foreach($params as $key => $value){ + if($value['store_id']==$v['store_id']){ + $order_arr[] = $value['oid']; + } + } + + $total_price += $v['total_price']; + $pay_price += $v['pay_price']; $data = [ - 'store_id' => 0, - 'store_arr' => json_encode($store_arr), - 'order_arr' => json_encode($oid_arr), - 'order_id' => getNewOrderId('PT'), - 'total' => $price['total_price'], - 'actual' => $price['pay_price'], - 'money' => $price['pay_price'], + 'store_id' => $v['store_id'], + 'order_arr' => json_encode($order_arr), + 'order_id' => getNewOrderId('CG'), + 'total' => $v['total_price'], + 'actual' => $v['pay_price'], + 'money' => $v['pay_price'], 'paid' => 1, - 'is_mer' => 2, + 'is_mer' => 1, 'create_time' => time(), 'update_time' => time(), ]; + //创建门店合计订单 $res = PurchaseOrder::create($data); - $info = StoreOrderCartInfo::where('oid', 'in', $oid_arr)->field('store_id, product_id,price,SUM(total_price) as total_price, SUM(cart_num) as cart_num')->group('product_id')->select(); - $purchase_order_info = []; - foreach ($info as $item) { - $arr['order_id'] = $res['id']; - $arr['product_id'] = $item['product_id']; - $arr['price'] = $item['price']; - $arr['total_price'] = $item['total_price']; - $arr['need_num'] = $item['cart_num']; - $arr['unit'] = StoreProduct::where('id',$item['product_id'])->value('unit'); - $purchase_order_info[] = $arr; - } - $purchaseOrderInfo = new PurchaseProductOffer(); - $purchaseOrderInfo->saveAll($purchase_order_info); - StoreOrder::whereIn('id', $oid_arr)->update(['is_merge' => 1]); - Db::commit(); - return true; - } catch (\Throwable $e) { - Db::rollback(); - self::setError($e->getMessage()); - return false; + $purchase_arr[] = ['id'=>$res['id'],'store_id'=>$v['store_id']]; + $purchase_id[] =$res['id']; } + $info = StoreOrderCartInfo::where('oid', 'in', $order_arr)->field('store_id, product_id,price,SUM(total_price) as total_price, SUM(cart_num) as cart_num')->group('store_id, product_id')->select()->toArray(); + //创建门店合计商品 + foreach($purchase_arr as $k=>$v){ + foreach ($info as $item) { + if($v['store_id']==$item['store_id']){ + $arr['oid'] = $v['id']; + $arr['store_id'] = $item['store_id']; + $arr['product_id'] = $item['product_id']; + $arr['price'] = $item['price']; + $arr['total_price'] = $item['total_price']; + $arr['cart_num'] = $item['cart_num']; + $arr['status'] = 1; + $purchase_order_info[] = $arr; + } + } + } + $purchaseOrderInfo->saveAll($purchase_order_info); + //---------------生成平台订单----------------- + $data = [ + 'store_id' => 0, + 'store_arr' => json_encode($store_arr), + 'order_arr' => json_encode($purchase_id), + 'order_id' => getNewOrderId('PT'), + 'total' => $total_price, + 'actual' => $pay_price, + 'money' => $pay_price, + 'paid' => 1, + 'is_mer' => 2, + 'create_time' => time(), + 'update_time' => time(), + ]; + $res = PurchaseOrder::create($data); + $info = PurchaseOrderInfo::where('oid', 'in', $purchase_id)->field('store_id, product_id,price,SUM(total_price) as total_price, SUM(cart_num) as cart_num')->group('store_id, product_id')->select(); + $purchase_order_info_two=[]; + foreach ($info as $item) { + $arr['oid'] = $res['id']; + $arr['store_id'] = $item['store_id']; + $arr['product_id'] = $item['product_id']; + $arr['price'] = $item['price']; + $arr['total_price'] = $item['total_price']; + $arr['cart_num'] = $item['cart_num']; + $arr['status'] = 1; + $purchase_order_info_two[] = $arr; + } + $purchaseOrderInfo->saveAll($purchase_order_info_two); + $productOffer = []; + foreach ($info as $item) { + $arr['order_id'] = $res['id']; + $arr['product_id'] = $item['product_id']; + $arr['price'] = $item['price']; + $arr['total_price'] = $item['total_price']; + $arr['need_num'] = $item['cart_num']; + $arr['unit'] = StoreProduct::where('id', $item['product_id'])->value('unit'); + $productOffer[] = $arr; + } + $purchaseProductOffer = new PurchaseProductOffer(); + $purchaseProductOffer->saveAll($productOffer); + // StoreOrder::whereIn('id', $oid_arr)->update(['is_merge' => 1]); + // Db::commit(); + // return true; + // } catch (\Throwable $e) { + // Db::rollback(); + // self::setError($e->getMessage()); + // return false; + // } } /**