shish 5 лет назад
Родитель
Сommit
c3d52ecb2b

+ 7 - 2
biz-ghs/order/services/OrderService.php

@@ -6,6 +6,7 @@ use biz\ghs\classes\GhsClass;
 use biz\shop\classes\ShopAdminClass;
 use biz\shop\classes\ShopCapitalClass;
 use biz\shop\classes\ShopClass;
+use biz\stat\classes\StatSaleClass;
 use biz\wx\classes\WxMessageClass;
 use bizGhs\base\services\BaseService;
 use bizGhs\custom\classes\CustomClass;
@@ -547,6 +548,8 @@ class OrderService extends BaseService
         $shop->totalOrderNum += 1;
         $currentTotalIncome = bcadd($shop->totalIncome, $amount, 2);
         $shop->totalIncome = $currentTotalIncome;
+        $totalSale = bcadd($shop->totalSale, $amount, 2);
+        $shop->totalSale = $totalSale;
         if ($payWay == dict::getDict('payWay', 'debtPay')) {
             //客户欠款支付会增加【应收客户款】
             $currentGathering = bcadd($shop->mayGathering, $realPrice, 2);
@@ -633,10 +636,12 @@ class OrderService extends BaseService
         $custom->buyAmount = bcadd($custom->buyAmount, $amount, 2);
         $custom->save();
 
-        //每天和每月收入
-        StatIncomeClass::updateOrInsert($shop, $order->actPrice);
+        //收入统计
+        StatIncomeClass::updateOrInsert($shop, $amount);
         //今日订单+1
         StatOrderClass::updateOrInsert($shop);
+        //销售统计
+        StatSaleClass::replace($shop, $amount);
 
         //显示已下单流程
         $time = date("Y-m-d H:i:s");

+ 32 - 0
biz/stat/classes/StatSaleClass.php

@@ -0,0 +1,32 @@
+<?php
+
+namespace biz\stat\classes;
+
+use biz\base\classes\BaseClass;
+
+class StatSaleClass extends BaseClass
+{
+
+    public static $baseFile = '\biz\stat\models\StatSale';
+
+    //销售统计 shish 20210827
+    public static function replace($shop, $amount, $date = null)
+    {
+        $sjId = $shop->sjId ?? 0;
+        $shopId = $shop->id ?? 0;
+        $time = $date == null ? date('Ymd') : $date;
+        $stat = self::getByCondition(['sjId' => $sjId, 'shopId' => $shopId, 'time' => $time], true);
+        if (empty($stat)) {
+            $stat = self::add(['shopId' => $shopId, 'sjId' => $sjId, 'time' => $time, 'num' => 0], true);
+        }
+        $id = $stat->id;
+        $unique = self::getLockById($id);
+        $currentAmount = bcadd($unique->amount, $amount, 2);
+        $unique->amount = $currentAmount;
+        $unique->totalAmount = $shop->totalSale;
+        $unique->num += 1;
+        $unique->save();
+        StatSaleMonthClass::replace($shop, $amount, $time);
+    }
+
+}

+ 41 - 0
biz/stat/classes/StatSaleMonthClass.php

@@ -0,0 +1,41 @@
+<?php
+
+namespace biz\stat\classes;
+
+use biz\base\classes\BaseClass;
+use common\components\util;
+
+class StatSaleMonthClass extends BaseClass
+{
+
+    public static $baseFile = '\biz\stat\models\StatSaleMonth';
+
+    //销售统计 shish 20210827
+    public static function replace($shop, $amount, $date = null)
+    {
+        if ($date == null) {
+            $time = date('Ym');
+            $year = date('Y');
+            $month = date('m');
+        } else {
+            $timestamp = strtotime($date);
+            $time = date('Ym', $timestamp);
+            $year = date('Y', $timestamp);
+            $month = date('m', $timestamp);
+        }
+        $sjId = $shop->sjId;
+        $shopId = $shop->id;
+        $stat = self::getByCondition(['sjId' => $sjId, 'shopId' => $shopId, 'time' => $time], true);
+        if (empty($stat)) {
+            $stat = self::add(['shopId' => $shopId, 'sjId' => $sjId, 'time' => $time, 'year' => $year, 'month' => $month, 'num' => 1], true);
+        }
+        $id = $stat->id;
+        $unique = self::getLockById($id);
+        $currentAmount = bcadd($unique->amount, $amount, 2);
+        $unique->amount = $currentAmount;
+        $unique->totalAmount = $shop->totalSale;
+        $unique->num += 1;
+        $unique->save();
+    }
+
+}

+ 13 - 0
biz/stat/models/StatSale.php

@@ -0,0 +1,13 @@
+<?php
+
+namespace biz\stat\models;
+
+use biz\base\models\Base;
+
+class StatSale extends Base
+{
+    public static function tableName()
+    {
+        return 'xhStatSale';
+    }
+}

+ 15 - 0
biz/stat/models/StatSaleMonth.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace biz\stat\models;
+
+use biz\base\models\Base;
+
+class StatSaleMonth extends Base
+{
+
+    public static function tableName()
+    {
+        return 'xhStatSaleMonth';
+    }
+
+}