From ab347de4f1d2d5f874ffdd6f0aca1cc5683362ab Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Fri, 29 Nov 2024 19:53:15 +0800 Subject: [PATCH 1/7] =?UTF-8?q?refactor(api):=20=E9=87=8D=E6=9E=84=20Index?= =?UTF-8?q?Controller=20=E4=B8=AD=E7=9A=84=E6=95=B0=E6=8D=AE=E5=A4=84?= =?UTF-8?q?=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 优化了数据查询和处理的代码结构 - 提高了代码的可读性和维护性 - 新增 wps_product 方法用于处理采购商品下载 --- app/api/controller/IndexController.php | 74 ++++++++++++++++++-------- 1 file changed, 53 insertions(+), 21 deletions(-) diff --git a/app/api/controller/IndexController.php b/app/api/controller/IndexController.php index 4220e9b9c..c93c80459 100644 --- a/app/api/controller/IndexController.php +++ b/app/api/controller/IndexController.php @@ -58,7 +58,7 @@ class IndexController extends BaseApiController public function index() { d(1); - $arr=Db::name('ceshi_copy')->select(); + $arr = Db::name('ceshi_copy')->select(); foreach ($arr as $k => $v) { $data = [ @@ -74,9 +74,9 @@ class IndexController extends BaseApiController if ($rose_price > 0) { //利润除于零售 $price_div = bcdiv($rose_price, $v['price'], 2); - $rose=bcmul($price_div, 100, 2); + $rose = bcmul($price_div, 100, 2); } - $data['rose']=$rose; + $data['rose'] = $rose; StoreProduct::update($data, ['id' => $v['product_id']]); //修改 StoreBranchProduct::where('product_id', $v['product_id'])->whereNotIn('store_id', [17, 18])->update([ @@ -89,16 +89,16 @@ class IndexController extends BaseApiController ]); } d(11); - $pay_price=StoreOrder::where('store_id',3)->where('id','>=',1867)->where('id','<=',4826)->where('paid',1)->sum('pay_price'); - $refund_price=StoreOrder::where('store_id',3)->where('id','>=',1867)->where('id','<=',4826)->where('paid',1)->sum('refund_price'); - d($pay_price,$refund_price); - $arr=StoreOrder::where('store_id',3)->where('id','>',551)->where('paid',1)->field('id,pay_price,deduction_price,refund_price')->select()->toArray(); - $data=[]; + $pay_price = StoreOrder::where('store_id', 3)->where('id', '>=', 1867)->where('id', '<=', 4826)->where('paid', 1)->sum('pay_price'); + $refund_price = StoreOrder::where('store_id', 3)->where('id', '>=', 1867)->where('id', '<=', 4826)->where('paid', 1)->sum('refund_price'); + d($pay_price, $refund_price); + $arr = StoreOrder::where('store_id', 3)->where('id', '>', 551)->where('paid', 1)->field('id,pay_price,deduction_price,refund_price')->select()->toArray(); + $data = []; foreach ($arr as $k => $v) { - $total_price=StoreOrderCartInfo::where('oid', $v['id'])->sum('total_price'); - if($total_price != $v['pay_price']){ - $s=$v; - $s['total_price']=$total_price; + $total_price = StoreOrderCartInfo::where('oid', $v['id'])->sum('total_price'); + if ($total_price != $v['pay_price']) { + $s = $v; + $s['total_price'] = $total_price; $data[] = $s; } } @@ -259,13 +259,13 @@ class IndexController extends BaseApiController */ public function purchase_product_offer() { - $date=$this->request->get('date'); - if($date){ - $this->request->setGet(['date'=>$date,'export'=>2]); - $lists=new PurchaseProductOfferListsTwo(); + $date = $this->request->get('date'); + if ($date) { + $this->request->setGet(['date' => $date, 'export' => 2]); + $lists = new PurchaseProductOfferListsTwo(); $exportDownloadUrl = $lists->createExcel($lists->setExcelFields(), $lists->lists()); - $fileKey=explode('?file=',$exportDownloadUrl)[1]; - //通过文件缓存的key获取文件储存的路径 + $fileKey = explode('?file=', $exportDownloadUrl)[1]; + //通过文件缓存的key获取文件储存的路径 $exportCache = new ExportCache(); $fileInfo = $exportCache->getFile($fileKey); if (empty($fileInfo)) { @@ -273,10 +273,42 @@ class IndexController extends BaseApiController } //下载前删除缓存 Cache::delete($fileKey); - return response()->download($fileInfo['src'] . $fileInfo['name'],$fileInfo['name']); - }else{ + return response()->download($fileInfo['src'] . $fileInfo['name'], $fileInfo['name']); + } else { + return $this->fail('时间不能为空'); + } + } + + /** + * @notes 采购商品下载 + */ + public function wps_product() + { + $data = $this->request->post(); + if ($data) { + if ($data['product_id'] > 0) { + $find = Db::name('wps_product')->where('product_id', $data['product_id'])->find(); + $arr = []; + if ($data['purchase'] > 0) { + $arr['purchase'] = $data['purchase']; + } + if ($data['cost'] > 0) { + $arr['cost'] = $data['cost']; + } + if ($data['price'] > 0) { + $arr['price'] = $data['price']; + } + if ($find) { + Db::name('wps_product')->where('id', $find['id'])->update($arr); + } else { + $arr['product_id']=$data['product_id']; + $arr['name']=$data['name']; + Db::name('wps_product')->insert($arr); + } + } + return $this->success('ok'); + } else { return $this->fail('时间不能为空'); } } - } From c6906f36e5fd212317f97c35e8391409d306b564 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Fri, 29 Nov 2024 19:56:01 +0800 Subject: [PATCH 2/7] =?UTF-8?q?feat(api):=20=E6=B7=BB=E5=8A=A0=20wps=5Fpro?= =?UTF-8?q?duct=20=E6=8E=A5=E5=8F=A3=E6=97=A0=E9=9C=80=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E8=AE=BF=E9=97=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在 IndexController 中的 notNeedLogin 数组中添加了 'wps_product',使该接口可以无需登录直接访问。 --- app/api/controller/IndexController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/api/controller/IndexController.php b/app/api/controller/IndexController.php index c93c80459..250a8d0a4 100644 --- a/app/api/controller/IndexController.php +++ b/app/api/controller/IndexController.php @@ -53,7 +53,7 @@ use PhpOffice\PhpWord\Style\Font; class IndexController extends BaseApiController { - public $notNeedLogin = ['index', 'app_update', 'express_list', 'province', 'city', 'area', 'street', 'village', 'brigade', 'config', 'push', 'purchase_product_offer']; + public $notNeedLogin = ['index', 'app_update', 'express_list', 'province', 'city', 'area', 'street', 'village', 'brigade', 'config', 'push', 'purchase_product_offer','wps_product']; public function index() { From 834532a24db771ff265303ad3de77ff2b76c508e Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Fri, 29 Nov 2024 20:10:58 +0800 Subject: [PATCH 3/7] =?UTF-8?q?refactor(api):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E4=BA=A7=E5=93=81=E6=95=B0=E6=8D=AE=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 IndexController 中添加数据解码步骤 - 使用 json_decode 将请求数据转换为关联数组 - 优化产品 ID 的验证逻辑 --- app/api/controller/IndexController.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/api/controller/IndexController.php b/app/api/controller/IndexController.php index 250a8d0a4..defda52d1 100644 --- a/app/api/controller/IndexController.php +++ b/app/api/controller/IndexController.php @@ -286,6 +286,7 @@ class IndexController extends BaseApiController { $data = $this->request->post(); if ($data) { + $data=json_decode($data,true); if ($data['product_id'] > 0) { $find = Db::name('wps_product')->where('product_id', $data['product_id'])->find(); $arr = []; From adfc2935682e9e289714bea33451f991858d6c53 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Fri, 29 Nov 2024 20:12:42 +0800 Subject: [PATCH 4/7] =?UTF-8?q?test(api):=20=E6=B5=8B=E8=AF=95=E4=BA=A7?= =?UTF-8?q?=E5=93=81=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 wps_product 方法中添加了测试代码,直接返回接收到的数据 - 用于验证接口是否正确接收到产品信息 --- app/api/controller/IndexController.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/api/controller/IndexController.php b/app/api/controller/IndexController.php index defda52d1..3b72c497a 100644 --- a/app/api/controller/IndexController.php +++ b/app/api/controller/IndexController.php @@ -285,6 +285,8 @@ class IndexController extends BaseApiController public function wps_product() { $data = $this->request->post(); + return $this->success('ok',$data); + if ($data) { $data=json_decode($data,true); if ($data['product_id'] > 0) { From cb2187c0ff3a2c72df67425ac509c8820994b8d3 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Fri, 29 Nov 2024 20:48:39 +0800 Subject: [PATCH 5/7] =?UTF-8?q?refactor(api):=20=E4=BC=98=E5=8C=96=20wps?= =?UTF-8?q?=5Fproduct=20=E6=8E=A5=E5=8F=A3=E5=A4=84=E7=90=86=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增获取 post 数据的第一个键并解码 - 重构了原始的直接解码整个数据的逻辑 --- app/api/controller/IndexController.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/api/controller/IndexController.php b/app/api/controller/IndexController.php index 3b72c497a..0b2652957 100644 --- a/app/api/controller/IndexController.php +++ b/app/api/controller/IndexController.php @@ -285,10 +285,11 @@ class IndexController extends BaseApiController public function wps_product() { $data = $this->request->post(); - return $this->success('ok',$data); - + if ($data) { - $data=json_decode($data,true); + $keys = array_keys($data); // 获取所有键 + $firstKey = $keys[0]; // 获取第一个键 + $data=json_decode($firstKey,true); if ($data['product_id'] > 0) { $find = Db::name('wps_product')->where('product_id', $data['product_id'])->find(); $arr = []; From 91877cd4a3d59ccf1fcb39829dd85b72eaaf0a60 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Fri, 29 Nov 2024 20:58:15 +0800 Subject: [PATCH 6/7] =?UTF-8?q?refactor(api):=20=E4=BC=98=E5=8C=96=20wps?= =?UTF-8?q?=5Fproduct=20=E6=8E=A5=E5=8F=A3=E5=B9=B6=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E6=9C=AA=E4=BD=BF=E7=94=A8=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除了 notNeedLogin 数组中的 'wps_product' 方法 - 优化了 wps_product 方法的逻辑,移除了不必要的解码和重新编码过程 - 删除了未使用的返回语句 --- app/api/controller/IndexController.php | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/app/api/controller/IndexController.php b/app/api/controller/IndexController.php index 0b2652957..86b30def6 100644 --- a/app/api/controller/IndexController.php +++ b/app/api/controller/IndexController.php @@ -53,7 +53,7 @@ use PhpOffice\PhpWord\Style\Font; class IndexController extends BaseApiController { - public $notNeedLogin = ['index', 'app_update', 'express_list', 'province', 'city', 'area', 'street', 'village', 'brigade', 'config', 'push', 'purchase_product_offer','wps_product']; + public $notNeedLogin = ['index', 'app_update', 'express_list', 'province', 'city', 'area', 'street', 'village', 'brigade', 'config', 'push', 'purchase_product_offer']; public function index() { @@ -285,11 +285,7 @@ class IndexController extends BaseApiController public function wps_product() { $data = $this->request->post(); - if ($data) { - $keys = array_keys($data); // 获取所有键 - $firstKey = $keys[0]; // 获取第一个键 - $data=json_decode($firstKey,true); if ($data['product_id'] > 0) { $find = Db::name('wps_product')->where('product_id', $data['product_id'])->find(); $arr = []; @@ -310,7 +306,6 @@ class IndexController extends BaseApiController Db::name('wps_product')->insert($arr); } } - return $this->success('ok'); } else { return $this->fail('时间不能为空'); } From 35c39f40da06e19ea0187ef8dbc3f0eee63913ae Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Sat, 30 Nov 2024 15:12:46 +0800 Subject: [PATCH 7/7] =?UTF-8?q?feat(admin):=20=E5=A2=9E=E5=8A=A0=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E5=87=BA=E5=BA=93=E9=87=91=E9=A2=9D=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E5=8F=8A=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../beforehand_order/BeforehandOrderLists.php | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/app/admin/lists/beforehand_order/BeforehandOrderLists.php b/app/admin/lists/beforehand_order/BeforehandOrderLists.php index 0dbb9c97b..c49ee3872 100644 --- a/app/admin/lists/beforehand_order/BeforehandOrderLists.php +++ b/app/admin/lists/beforehand_order/BeforehandOrderLists.php @@ -145,6 +145,8 @@ class BeforehandOrderLists extends BaseAdminDataLists implements ListsSearchInte $address = ''; $arrival_time = ''; $pay_price = ''; + $warehousing_price=''; + $outbound_price=''; if($export==2){ if($item['order_sn']!=''){ $find=StoreOrder::where('order_id',$item['order_sn'])->field('paid,pay_type,pay_price')->find(); @@ -179,10 +181,18 @@ class BeforehandOrderLists extends BaseAdminDataLists implements ListsSearchInte } } if($item['warehousing_id']>0){ - $order_rk=WarehouseOrder::where('id',$item['warehousing_id'])->value('code'); + $warehouseOrder=WarehouseOrder::where('id',$item['warehousing_id'])->field('code,total_price')->find(); + if($warehouseOrder){ + $order_rk=$warehouseOrder['code']; + $warehousing_price=$warehouseOrder['total_price']; + } } if($item['outbound_id']>0){ - $order_ck=WarehouseOrder::where('id',$item['outbound_id'])->value('code'); + $warehouseOrder=WarehouseOrder::where('id',$item['outbound_id'])->field('code,total_price')->find(); + if($warehouseOrder){ + $order_ck=$warehouseOrder['code']; + $outbound_price=$warehouseOrder['total_price']; + } } $nickname = $item->other_data?->nickname??''; $phone = $item->other_data?->phone??''; @@ -193,6 +203,8 @@ class BeforehandOrderLists extends BaseAdminDataLists implements ListsSearchInte $item['pay_type_name'] = $pay_type_name; $item['order_ck'] = $order_ck; $item['order_rk'] = $order_rk; + $item['warehousing_price']=$warehousing_price; + $item['outbound_price']=$outbound_price; $item['nickname'] = $nickname; $item['phone'] = $phone; $item['address'] = $address; @@ -245,7 +257,9 @@ class BeforehandOrderLists extends BaseAdminDataLists implements ListsSearchInte 'system_store' => '门店', 'admin_name' => '门店', 'warehousing' => '入库', + 'warehousing_price' => '入库金额', 'outbound' => '出库', + 'outbound_price' => '出库金额', 'total_price' => '总价', 'admin_name' => '用户', 'mark' => '备注',