Browse Source

零售订单数+1

shish 5 năm trước cách đây
mục cha
commit
06917b931d

+ 10 - 12
app-hd/controllers/ConsoleController.php

@@ -47,19 +47,16 @@ class ConsoleController extends BaseController
             }
         }
 
-        //今天访客数
-        $todayVisit = StatVisitService::getTodayVisitNum($this->sjId);
-        //今天客户与粉丝数
-        $userData = StatUserService::getTodayNum($this->sjId);
-        $todayFansNum = isset($userData['riseFansNum']) ? $userData['riseFansNum'] : 0;
-        $todayUserNum = isset($userData['riseUserNum']) ? $userData['riseUserNum'] : 0;
-        //今天订单数
-        $orderData = StatOrderService::getTodayNum($this->sjId);
+        //今天访客
+        $todayVisit = StatVisitService::getTodayVisitNum($this->shopId);
+        //今天开单
+        $orderData = StatOrderService::getTodayNum($this->shopId);
         $todayOrder = isset($orderData['riseNum']) ? $orderData['riseNum'] : 0;
         //今天收入
-        $incomeData = StatIncomeService::getTodayNum($this->sjId);
+        $incomeData = StatIncomeService::getTodayNum($this->shopId);
         $todayIncome = isset($incomeData['amount']) ? $incomeData['amount'] : 0;
-        $todayData = ['visit' => $todayVisit, 'fans' => $todayFansNum, 'user' => $todayUserNum, 'income' => $todayIncome, 'order' => $todayOrder];
+        //今日概况
+        $todayData = ['visit' => $todayVisit, 'income' => $todayIncome, 'order' => $todayOrder, 'newStudent' => 1];
 
         $incomeStat = [];
         if (httpUtil::isMiniProgram() == false) {
@@ -81,10 +78,11 @@ class ConsoleController extends BaseController
             'week' => 999,
             'list' => ['7.1' => 100, '7.2' => 200, '7.3' => 300, '7.4' => 400, '7.5' => 500],
         ];
-        $asset = isset($this->shop) && !empty($this->shop) ? $this->shop->attributes : [];
+
+        $shop = isset($this->shop) && !empty($this->shop) ? $this->shop->attributes : [];
 
         util::success([
-            'asset' => $asset,
+            'asset' => $shop,
             'notice' => $notice,
             'todayData' => $todayData,
             'visitStat' => $visitStat,

+ 7 - 0
biz-hd/order/classes/OrderClass.php

@@ -11,6 +11,8 @@ use biz\shop\models\Shop;
 use biz\stat\classes\StatOrderCountClass;
 use bizGhs\stat\classes\StatYjClass;
 use bizGhs\ws\services\WsService;
+use bizHd\stat\classes\StatIncomeClass;
+use bizHd\stat\classes\StatOrderClass;
 use bizHd\user\classes\UserClass;
 use common\components\dict;
 use common\components\miniUtil;
@@ -239,9 +241,14 @@ class OrderClass extends BaseClass
             'shopId' => $shopId,
             'shopAdminId' => $shopAdminId,
             'shopAdminName' => $shopAdminName,
+            'amount' => $actPrice,
         ];
         ShopCapitalClass::addCapital($capital);
 
+        //每天和每月收入增加
+        StatIncomeClass::updateOrInsert($shop, $actPrice);
+        //今日订单+1
+        StatOrderClass::updateOrInsert($shop);
 
         //二维码收款订单存在没有商品的情况
         if (!empty($orderGoods)) {

+ 0 - 3
biz-hd/purchase/classes/PurchaseClass.php

@@ -117,9 +117,6 @@ class PurchaseClass extends BaseClass
 
             $prePrice = bcadd($prePrice, $sellPrice, 2);
 
-            //先不加库存,等支付完成后再加
-            //ProductClass::addStockByItemNum($hdProductId, $itemNum);
-
         }
         $data['itemPrice'] = $prePrice;
         $sendCost = $data['sendCost'] ?? 0.00;

+ 7 - 0
biz-hd/purchase/services/PurchaseService.php

@@ -7,6 +7,7 @@ use biz\ghs\models\Ghs;
 use biz\shop\classes\ShopClass;
 use biz\shop\classes\ShopCouponClass;
 use biz\shop\models\Shop;
+use biz\stat\classes\StatOutClass;
 use bizGhs\custom\classes\CustomClass;
 use bizGhs\order\classes\OrderClass;
 use bizGhs\order\services\OrderService;
@@ -241,10 +242,16 @@ class PurchaseService extends BaseService
             ShopClass::purchaseReduceBalance($shop, $actPrice, $info);
         }
         $shop->totalPurchase = bcadd($shop->totalPurchase, $actPrice, 2);
+        $shop->totalPurchaseOrder += 1;
+        $currentExpend = bcadd($shop->totalExpend, $actPrice, 2);
+        $shop->totalExpend = $currentExpend;
         $shop->cgUnPay -= 1;
         $shop->cgUnSend += 1;
         $shop->save();
 
+        //当天和当月支出统计
+        StatOutClass::updateOrInsert($info->merchantId, $info->shopId, $info->actPrice);
+
         //使用优惠券
         $couponId = $info->couponId;
         if (!empty($couponId)) {

+ 2 - 1
biz-hd/stat/classes/StatIncomeClass.php

@@ -27,6 +27,7 @@ class StatIncomeClass extends BaseClass
         if (empty($model)) {
             $data = [
                 'shopId' => $shopId,
+                'merchantId' => $shop->merchantId,
                 'time' => $time,
                 'amount' => 0,
                 'totalAmount' => $shop->totalIncome,
@@ -38,7 +39,7 @@ class StatIncomeClass extends BaseClass
         //查id行级锁
         $stat = StatIncomeClass::getLockById($id);
         $stat->amount = bcadd($amount, $stat->amount, 2);
-        $stat->totalAmount = bcadd($amount, $shop->totalIncome, 2);
+        $stat->totalAmount = $shop->totalIncome;
         $stat->save();
         //每月
         StatIncomeMonthClass::updateOrInsert($shop, $amount);

+ 6 - 5
biz-hd/stat/classes/StatIncomeMonthClass.php

@@ -23,6 +23,7 @@ class StatIncomeMonthClass extends BaseClass
         if (empty($model)) {
             $data = [
                 'shopId' => $shopId,
+                'merchantId' => $shop->merchantId,
                 'time' => $time,
                 'amount' => 0,
                 'totalAmount' => $shop->totalIncome,
@@ -32,9 +33,9 @@ class StatIncomeMonthClass extends BaseClass
         }
         $id = $model->id;
         //查id行级锁
-        $stat = StatIncomeMonth::findBySql('select * from ' . StatIncomeMonth::tableName() . ' where id = :id for update', ['id' => $id])->one();
+        $stat = StatIncomeMonthClass::getLockById($id);
         $stat->amount = bcadd($amount, $stat->amount, 2);
-        $stat->totalAmount = bcadd($amount, $shop->totalIncome, 2);
+        $stat->totalAmount = $shop->totalIncome;
         $stat->save();
     }
 
@@ -42,12 +43,12 @@ class StatIncomeMonthClass extends BaseClass
     public static function getAmountMonth($shopId)
     {
         $time = date('Ym');
-        $res = self::getDetail($shopId,$time);
-        return $res['amount']??0;
+        $res = self::getDetail($shopId, $time);
+        return $res['amount'] ?? 0;
     }
 
     //查询某一个月的信息
-    public static function getDetail($shopId,$time)
+    public static function getDetail($shopId, $time)
     {
         $where = [
             'shopId' => $shopId,

+ 153 - 144
biz-hd/stat/services/StatVisitService.php

@@ -2,156 +2,165 @@
 
 namespace bizHd\stat\services;
 
+use biz\shop\classes\ShopClass;
 use bizHd\base\services\BaseService;
-use biz\sj\services\MerchantAssetService;
 use bizHd\stat\classes\StatViewClass;
 use bizHd\stat\classes\StatVisitClass;
+use common\components\util;
 use Yii;
 use common\components\stringUtil;
 
 class StatVisitService extends BaseService
 {
-	
-	public static $baseFile = '\bizHd\stat\classes\StatVisitClass';
-	
-	/**
-	 * 收集访问次数和访问IP
-	 */
-	public static function gatherVisit($merchantId)
-	{
-		//收集访问次数
-		$wholeSiteView = StatVisitClass::getKeyName($merchantId, 'whole_site_view');
-		Yii::$app->redis->executeCommand('INCRBY', [$wholeSiteView, 1]);//记录当天访问人数
-		//收集访问客数
-		$ip = Yii::$app->request->userIP;
-		$wholeSiteVisit = StatVisitClass::getKeyName($merchantId, 'whole_site_visit');
-		$exists = Yii::$app->redis->executeCommand('SISMEMBER', [$wholeSiteVisit, $ip]);
-		if (empty($exists)) {
-			//记录当天的IP
-			Yii::$app->redis->executeCommand('SADD', [$wholeSiteVisit, $ip]);
-		}
-	}
-	
-	/**
-	 * 将昨天的保存入库
-	 */
-	public static function saveYesterdayNum($merchantId)
-	{
-		$yesTime = date("Ymd", strtotime("-1 day"));
-		$resource = self::getByCondition(['merchantId' => $merchantId, 'time' => $yesTime]);
-		//有数据表示已经保存过了
-		if (!empty($resource)) {
-			return [];
-		}
-		$wholeSiteView = StatVisitClass::getKeyName($merchantId, 'whole_site_view', $yesTime);
-		//获取访问次数
-		$viewNum = Yii::$app->redis->executeCommand('GET', [$wholeSiteView]);
-		
-		//获取访问客户数
-		$wholeSiteVisit = StatVisitClass::getKeyName($merchantId, 'whole_site_visit', $yesTime);
-		$visitNum = Yii::$app->redis->executeCommand('SCARD', [$wholeSiteVisit]);
-		
-		$asset = MerchantAssetService::getByMerchantId($merchantId);
-		$totalVisit = $asset['totalVisit'];
-		$totalView = $asset['totalView'];
-		$totalVisit = stringUtil::calcAdd($totalVisit, $visitNum);
-		$totalView = stringUtil::calcAdd($totalView, $viewNum);
-		//保存访客数
-		$data = ['time' => $yesTime, 'totalNum' => $totalVisit, 'riseNum' => $visitNum, 'merchantId' => $merchantId, 'createTime' => date("Y-m-d H:i:s")];
-		self::add($data);
-		//保存访问量
-		$data = ['time' => $yesTime, 'totalNum' => $totalView, 'riseNum' => $viewNum, 'merchantId' => $merchantId, 'addTime' => time()];
-		StatViewClass::add($data);
-		
-		//保存累计访问量
-		MerchantAssetService::updateByCondition(['merchantId' => $merchantId], ['totalView' => $totalView, 'totalVisit' => $totalVisit]);
-		self::clearYesNum($merchantId);
-	}
-	
-	/**
-	 * 清空昨天的缓存
-	 */
-	public static function clearYesNum($merchantId)
-	{
-		$yesTime = date("Ymd", strtotime("-1 day"));
-		//访问量清零
-		$wholeSiteView = StatVisitClass::getKeyName($merchantId, 'whole_site_view', $yesTime);
-		Yii::$app->redis->executeCommand('DEL', [$wholeSiteView]);
-		//访客数清零
-		$wholeSiteVisit = StatVisitClass::getKeyName($merchantId, 'whole_site_visit', $yesTime);
-		Yii::$app->redis->executeCommand('DEL', [$wholeSiteVisit]);
-	}
-	
-	//获取今天的访问量
-	public static function getTodayViewNum($merchantId)
-	{
-		$wholeSiteView = StatVisitClass::getKeyName($merchantId, 'whole_site_view');
-		$nowNum = Yii::$app->redis->executeCommand('GET', [$wholeSiteView]);
-		$nowNum = !empty($nowNum) ? $nowNum : 0;
-		return $nowNum;
-	}
-	
-	//获取今天的访客数 ssh 2020.2.2
-	public static function getTodayVisitNum($merchantId)
-	{
-		$wholeSiteVisit = StatVisitClass::getKeyName($merchantId, 'whole_site_visit');
-		$num = Yii::$app->redis->executeCommand('SCARD', [$wholeSiteVisit]);
-		return !empty($num) ? $num : 0;
-	}
-
-	/**
-	 * 获取总访客数
-	 */
-	public static function getTotalVisit($merchantId)
-	{
-		$todayNum = self::getTodayVisitNum($merchantId);
-		$asset = MerchantAssetService::getByMerchantId($merchantId);
-		$totalVisit = $asset['totalVisit'];
-		$newTotalVisit = stringUtil::calcAdd($totalVisit, $todayNum);
-		return $newTotalVisit;
-	}
-	
-	/**
-	 * 模拟创建昨天的访问IP与数据
-	 */
-	public static function randYesNum($merchantId)
-	{
-		$count = rand(10, 30);
-		$yesTime = date("Ymd", strtotime("-1 day"));
-		echo "\n开始创建昨天的访问量…\n";
-		for ($i = 0; $i < $count; $i++) {
-			$ip = stringUtil::randIP();
-			$wholeSiteVisit = StatVisitClass::getKeyName($merchantId, 'whole_site_visit', $yesTime);
-			$exists = Yii::$app->redis->executeCommand('SISMEMBER', [$wholeSiteVisit, $ip]);
-			if (!empty($exists)) {
-				return;
-			}
-			echo $wholeSiteVisit . "\n";
-			Yii::$app->redis->executeCommand('SADD', [$wholeSiteVisit, $ip]);//记录访问过网站的IP
-			$wholeSiteView = StatVisitClass::getKeyName($merchantId, 'whole_site_view', $yesTime);
-			Yii::$app->redis->executeCommand('INCRBY', [$wholeSiteView, 1]);//记录访问网站人数
-		}
-		echo "\n创建完成\n";
-		self::getYesNum($merchantId);
-	}
-	
-	/**
-	 * 获取昨天的访问IP和数据
-	 */
-	public static function getYesNum($merchantId)
-	{
-		$yesTime = date("Ymd", strtotime("-1 day"));
-		$wholeSiteView = StatVisitClass::getKeyName($merchantId, 'whole_site_view', $yesTime);
-		$yesterdayVisitNum = Yii::$app->redis->executeCommand('GET', [$wholeSiteView]);
-		echo '<pre>';
-		echo '昨天的访问总量:' . $yesterdayVisitNum . '<br />';
-		$wholeSiteVisit = StatVisitClass::getKeyName($merchantId, 'whole_site_visit', $yesTime);
-		echo 'ipList的Key:' . $wholeSiteVisit . '<br />';
-		$list = Yii::$app->redis->executeCommand('SMEMBERS', [$wholeSiteVisit]);
-		echo 'ipList:<br />';
-		print_r($list);
-		$num = Yii::$app->redis->executeCommand('SCARD', [$wholeSiteVisit]);
-		echo 'ipList里的访问数量统计:' . $num;
-	}
-	
+
+    public static $baseFile = '\bizHd\stat\classes\StatVisitClass';
+
+    /**
+     * 收集访问次数和访问IP
+     */
+    public static function gatherVisit($shopId)
+    {
+        //收集访问次数
+        $wholeSiteView = StatVisitClass::getKeyName($shopId, 'whole_site_view');
+        Yii::$app->redis->executeCommand('INCRBY', [$wholeSiteView, 1]);//记录当天访问人数
+        //收集访问客数
+        $ip = Yii::$app->request->userIP;
+        $wholeSiteVisit = StatVisitClass::getKeyName($shopId, 'whole_site_visit');
+        $exists = Yii::$app->redis->executeCommand('SISMEMBER', [$wholeSiteVisit, $ip]);
+        if (empty($exists)) {
+            //记录当天的IP
+            Yii::$app->redis->executeCommand('SADD', [$wholeSiteVisit, $ip]);
+        }
+    }
+
+    /**
+     * 将昨天的保存入库
+     */
+    public static function saveYesterdayNum($shopId)
+    {
+        $yesTime = date("Ymd", strtotime("-1 day"));
+        $resource = self::getByCondition(['shopId' => $shopId, 'time' => $yesTime]);
+        //有数据表示已经保存过了
+        if (!empty($resource)) {
+            return [];
+        }
+        $wholeSiteView = StatVisitClass::getKeyName($shopId, 'whole_site_view', $yesTime);
+        //获取访问次数
+        $viewNum = Yii::$app->redis->executeCommand('GET', [$wholeSiteView]);
+
+        //获取访问客户数
+        $wholeSiteVisit = StatVisitClass::getKeyName($shopId, 'whole_site_visit', $yesTime);
+        $visitNum = Yii::$app->redis->executeCommand('SCARD', [$wholeSiteVisit]);
+
+        $shop = ShopClass::getById($shopId, true);
+        if (empty($shop)) {
+            util::fail('没有找到门店');
+        }
+        $sjId = $shop->merchantId ?? 0;
+        $currentTotalVisit = $shop->totalVisit;
+        $currentTotalView = $shop->totalView;
+        $currentTotalVisit = stringUtil::calcAdd($currentTotalVisit, $visitNum);
+        $currentTotalView = stringUtil::calcAdd($currentTotalView, $viewNum);
+        //保存累计访问量
+        $shop->totalVisit = $currentTotalVisit;
+        $shop->totalView = $currentTotalView;
+        $shop->save();
+
+        //保存访客数
+        $data = ['time' => $yesTime, 'totalNum' => $currentTotalVisit, 'riseNum' => $visitNum, 'shopId' => $shopId, 'merchantId' => $sjId, 'createTime' => date("Y-m-d H:i:s")];
+        self::add($data);
+
+        //保存访问量
+        $data = ['time' => $yesTime, 'totalNum' => $currentTotalView, 'riseNum' => $viewNum, 'shopId' => $shopId, 'merchantId' => $sjId, 'addTime' => time()];
+        StatViewClass::add($data);
+
+        self::clearYesNum($shopId);
+    }
+
+    /**
+     * 清空昨天的缓存
+     */
+    public static function clearYesNum($shopId)
+    {
+        $yesTime = date("Ymd", strtotime("-1 day"));
+        //访问量清零
+        $wholeSiteView = StatVisitClass::getKeyName($shopId, 'whole_site_view', $yesTime);
+        Yii::$app->redis->executeCommand('DEL', [$wholeSiteView]);
+        //访客数清零
+        $wholeSiteVisit = StatVisitClass::getKeyName($shopId, 'whole_site_visit', $yesTime);
+        Yii::$app->redis->executeCommand('DEL', [$wholeSiteVisit]);
+    }
+
+    //获取今天的访问量
+    public static function getTodayViewNum($shopId)
+    {
+        $wholeSiteView = StatVisitClass::getKeyName($shopId, 'whole_site_view');
+        $nowNum = Yii::$app->redis->executeCommand('GET', [$wholeSiteView]);
+        $nowNum = !empty($nowNum) ? $nowNum : 0;
+        return $nowNum;
+    }
+
+    //获取今天的访客数 ssh 2020.2.2
+    public static function getTodayVisitNum($shopId)
+    {
+        $wholeSiteVisit = StatVisitClass::getKeyName($shopId, 'whole_site_visit');
+        $num = Yii::$app->redis->executeCommand('SCARD', [$wholeSiteVisit]);
+        return !empty($num) ? $num : 0;
+    }
+
+    /**
+     * 获取总访客数
+     */
+    public static function getTotalVisit($shopId)
+    {
+        $todayNum = self::getTodayVisitNum($shopId);
+        $shop = ShopClass::getById($shopId);
+        $currentTotalVisit = $shop->totalVisit;
+        $newTotalVisit = stringUtil::calcAdd($currentTotalVisit, $todayNum);
+        return $newTotalVisit;
+    }
+
+    /**
+     * 模拟创建昨天的访问IP与数据
+     */
+    public static function randYesNum($shopId)
+    {
+        $count = rand(10, 30);
+        $yesTime = date("Ymd", strtotime("-1 day"));
+        echo "\n开始创建昨天的访问量…\n";
+        for ($i = 0; $i < $count; $i++) {
+            $ip = stringUtil::randIP();
+            $wholeSiteVisit = StatVisitClass::getKeyName($shopId, 'whole_site_visit', $yesTime);
+            $exists = Yii::$app->redis->executeCommand('SISMEMBER', [$wholeSiteVisit, $ip]);
+            if (!empty($exists)) {
+                return;
+            }
+            echo $wholeSiteVisit . "\n";
+            Yii::$app->redis->executeCommand('SADD', [$wholeSiteVisit, $ip]);//记录访问过网站的IP
+            $wholeSiteView = StatVisitClass::getKeyName($shopId, 'whole_site_view', $yesTime);
+            Yii::$app->redis->executeCommand('INCRBY', [$wholeSiteView, 1]);//记录访问网站人数
+        }
+        echo "\n创建完成\n";
+        self::getYesNum($shopId);
+    }
+
+    /**
+     * 获取昨天的访问IP和数据
+     */
+    public static function getYesNum($shopId)
+    {
+        $yesTime = date("Ymd", strtotime("-1 day"));
+        $wholeSiteView = StatVisitClass::getKeyName($shopId, 'whole_site_view', $yesTime);
+        $yesterdayVisitNum = Yii::$app->redis->executeCommand('GET', [$wholeSiteView]);
+        echo '<pre>';
+        echo '昨天的访问总量:' . $yesterdayVisitNum . '<br />';
+        $wholeSiteVisit = StatVisitClass::getKeyName($shopId, 'whole_site_visit', $yesTime);
+        echo 'ipList的Key:' . $wholeSiteVisit . '<br />';
+        $list = Yii::$app->redis->executeCommand('SMEMBERS', [$wholeSiteVisit]);
+        echo 'ipList:<br />';
+        print_r($list);
+        $num = Yii::$app->redis->executeCommand('SCARD', [$wholeSiteVisit]);
+        echo 'ipList里的访问数量统计:' . $num;
+    }
+
 }