gorden преди 5 месеца
родител
ревизия
bea81d1fc3

+ 17 - 7
app/admin/controller/finance/GoodsSalesController.php

@@ -16,7 +16,7 @@ class GoodsSalesController
     {
         $page = $request->get('page', 1);
         $pageSize = $request->get('pageSize', 20);
-        $days = $request->get('days', []);
+        $days = $request->get('days', [date('Y-m-01 00:00:00'), date('Y-m-t 23:59:59')]);
         $classify = $request->get('classify', '');
         $categoryId = $request->get('category_id', '');
         $goodsName = $request->get('goods_name', '');
@@ -41,7 +41,7 @@ class GoodsSalesController
             }
             $searchCategoryIds = SysCategory::where('category_super_path', 'like', $categorySuperPath . '%')->pluck('category_id')->toArray();
             $searchCategoryIds[] = $categoryId;
-            // 按产品类筛出来的ID
+            // 按产品类筛出来的ID
             $oldSearchGoodsIds = $searchGoodsIds;
 
             $searchGoodsIds = Goods::whereIn('join_goods_category_id', $searchCategoryIds)->pluck('goods_id')->toArray();
@@ -49,14 +49,21 @@ class GoodsSalesController
                 $searchGoodsIds = array_intersect($searchGoodsIds, $oldSearchGoodsIds);
             }
         }
+        if (!empty($goodsName)) {
+            // 按产品类型和分类筛出来的ID
+            $oldSearchGoodsIds = $searchGoodsIds;
+            $searchGoodsIds = Goods::where('goods_name', 'like', '%' . $goodsName . '%')->pluck("goods_id")->toArray();
+            if (!empty($oldSearchGoodsIds)) {
+                $searchGoodsIds = array_intersect($searchGoodsIds, $oldSearchGoodsIds);
+            }
+        }
 
         $dataInOuts = DataInout::where('data_inout_status', 'VALID')
             ->where('data_inout_classify', 'IN')
-            ->whereBetween('data_inout_addtimes', $days)
-            ->when(!empty($payType), function ($query) use ($payType) {
+            ->when(!empty($days), function ($query) use ($days) {
+                $query->whereBetween('data_inout_addtimes', $days);
+            })->when(!empty($payType), function ($query) use ($payType) {
                 $query->where('data_inout_pay_type', $payType);
-            })->when(!empty($goodsName), function ($query) use ($goodsName) {
-                $query->where('join_data_inout_object_json', 'like', "%" . $goodsName . "%");
             })->select('join_data_inout_object_json')
             ->get()
             ->toArray();
@@ -92,6 +99,9 @@ class GoodsSalesController
                     continue;
                 }
                 foreach ($order['goods'] as $good) {
+                    if ((!empty($classify) || !empty($categoryId) || !empty($goodsName)) && !in_array($good['goods_id'], $searchGoodsIds)) {
+                        continue;
+                    }
                     $goodKey = $good['goods_id'];
                     if (!empty($good['goods_sku_id'])) {
                         $goodKey .= '_' . $good['goods_sku_id'];
@@ -219,7 +229,7 @@ class GoodsSalesController
                 if (!empty($sku['goods_sku_storage_json']) && !in_array($goods['goods_classify'], ['MEALS', 'PACKAGE'])) {
                     $storageJson = json_decode($sku['goods_sku_storage_json'], true);
                     $sku['storage'] = $storageJson['storage'];
-                }else{
+                } else {
                     $sku['storage'] = !empty($goods['running']) ? $goods['running']['goods_running_storage'] : 0;
                 }
             }

+ 1 - 1
app/admin/controller/notify/RechargeController.php

@@ -158,7 +158,7 @@ class RechargeController
 
                     // 入收支明细表
                     $params['orderId'] = $payObjectJson['order_id'];
-                    $params['inout_category'] = '会员充值';
+                    $params['inout_category'] = '会员充值订单';
                     Event::dispatch('statistics.inout.in', $params);
                 }
             }

+ 2 - 2
app/admin/controller/order/RechargeController.php

@@ -312,8 +312,8 @@ class RechargeController extends Curd
             Db::commit();
             if ($params['order_status_payment'] == 'SUCCESS') {
                 // 入收支明细表
-                $params['inout_category'] = '会员充值订单';
-                Event::dispatch('statistics.inout.in', $params);
+//                $params['inout_category'] = '会员充值订单';
+//                Event::dispatch('statistics.inout.in', $params);
 
                 // 充值回调
                 (new \app\admin\controller\notify\RechargeController)->disposePaySuccess($payId);

+ 8 - 4
app/admin/controller/order/StatisticsController.php

@@ -92,10 +92,14 @@ class StatisticsController
                                                                        group by order_id) count");
         $statistics['monthRevenueOrderNbr'] = $monthRevenueOrderNbrModel[0]->total;
         // 累计收入
-//        $statistics['totalRevenue'] = PayDetail::where('pay_status', 'SUCCESS')
-//            ->whereIn('pay_category', $orderCategory)
-//            ->sum('pay_amount');
-
+        $statistics['totalRevenue'] = PayDetail::where('pay_status', 'SUCCESS')
+            ->whereIn('pay_category', $orderCategory)
+            ->sum('pay_amount');
+        $totalRevenueOrderNbrModel = Db::select("select count(1) as total from (select JSON_EXTRACT(join_pay_object_json,'$.order_id') as order_id from app_pay_detail where 
+                                                                        pay_status = 'SUCCESS' 
+                                                                        and pay_category in ({$orderCategoryStr}) {$where}
+                                                                       group by order_id) count");
+        $statistics['totalRevenueOrderNbr'] = $totalRevenueOrderNbrModel[0]->total;
         // 今日退款
         $todayRefundItem = Db::select("select SUM(d2.pay_amount) as amount,count(1) as total from app_pay_detail d1 
             inner join app_pay_detail d2 ON d1.join_pay_order_id=d2.join_pay_order_id and d2.pay_category='REFUND'