WIN-2308041133\Administrator 3 месяцев назад
Родитель
Сommit
9f18b77f46

+ 50 - 0
app/common/dao/user/AwardIntegralPriceDayDao.php

@@ -0,0 +1,50 @@
+<?php
+
+// +----------------------------------------------------------------------
+// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
+// +----------------------------------------------------------------------
+// | Copyright (c) 2016~2024 https://www.crmeb.com All rights reserved.
+// +----------------------------------------------------------------------
+// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
+// +----------------------------------------------------------------------
+// | Author: CRMEB Team <admin@crmeb.com>
+// +----------------------------------------------------------------------
+
+
+namespace app\common\dao\user;
+
+
+use app\common\dao\BaseDao;
+use app\common\model\BaseModel;
+use app\common\model\user\AwardIntegralPrice;
+
+/**
+ * Class UserLabelDao
+ * @package app\common\dao\user
+ * @author xaboy
+ * @day 2020-05-07
+ */
+class AwardIntegralPriceDayDao extends BaseDao
+{
+
+    /**
+     * @return BaseModel
+     * @author xaboy
+     * @day 2020-03-30
+     */
+    protected function getModel(): string
+    {
+        return AwardIntegralPrice::class;
+    }
+
+    public function search($where)
+    {
+//        return $this->getModel()::getDB()->where($where);
+        $query = $this->getModel()::getDB()
+            ->when(isset($where['day']) && $where['day'] !== '',function($query) use($where){
+                $query->where('day','>=',$where['day']);
+            });
+        return $query;
+    }
+
+}

+ 18 - 0
app/common/model/user/AwardIntegralPriceDay.php

@@ -0,0 +1,18 @@
+<?php
+
+namespace app\common\model\user;
+
+use app\common\model\BaseModel;
+
+class AwardIntegralPriceDay extends BaseModel
+{
+    public static function tablePk(): ?string
+    {
+        return 'id';
+    }
+
+    public static function tableName(): string
+    {
+        return 'award_integral_price_day';
+    }
+}

+ 16 - 7
app/common/repositories/user/AwardIntegralPriceRepository.php

@@ -15,6 +15,7 @@ namespace app\common\repositories\user;
 
 
 use app\common\dao\user\AwardIntegralPriceDao;
+use app\common\dao\user\AwardIntegralPriceDayDao;
 use app\common\dao\user\AwardLakeDao;
 use app\common\dao\user\AwardLakeLogDao;
 use app\common\model\store\order\StoreOrder;
@@ -65,7 +66,7 @@ class AwardIntegralPriceRepository extends BaseRepository
             ->where('status', '>=', 0)
             ->sum('total_price');
         @file_put_contents('yesterday.txt', StoreOrder::getLastSql() . PHP_EOL, FILE_APPEND);
-        $achievement = bcmul((string)$achievement, '0.05', 6);
+        $achievement = bcmul((string)$achievement, '0.1', 6);  //从总业绩的5%上涨到10%
         /** @var UserExtractRepository $extractRepositories */
         $extractRepositories = app()->make(UserExtractRepository::class);
         $commission = $extractRepositories->search(['status' => 1])->whereBetween('check_time', [$time_start, $time_end])->sum('commission');
@@ -73,18 +74,26 @@ class AwardIntegralPriceRepository extends BaseRepository
         $userService = app()->make(UserRepository::class);
         $num = $userService->search(['status' => 1])->sum('award_integral');
         $sum_achievement = bcadd((string)$commission, (string)$achievement, 6);
-
         $rise = $num > 0 ? bcdiv($sum_achievement, $num, 6) : 0;
-        $price = bcadd($rise, $basePrice, 6);
-
+        if ($rise >0){
+            //       增长值分成25份
+            $add_price = bcdiv($rise, 25, 6);
+            /** @var AwardIntegralPriceDayDao $AwardIntegralPriceDayDao */
+            $AwardIntegralPriceDayDao = app()->make(AwardIntegralPriceDayDao::class);
+            $AwardIntegralPriceDayDao->create(['day' => strtotime('-25 day'), 'price' => $rise,'add_price'=>$add_price]);  //保存今天增长的总价格和每日增长价格
+            $day_25 =strtotime('-25 day');
+            $day_25_rise = $AwardIntegralPriceDayDao->search(['day' => $day])->sum('price');
+        }
+        $price = bcadd($day_25_rise, $basePrice, 6);
 
-        return compact('basePrice', 'price', 'rise', 'achievement', 'commission', 'num');
+        @file_put_contents('quanju4.txt', time()."-正常获取走的到这里吗\r\n",8);
+        return compact('basePrice', 'price', 'rise', 'achievement', 'commission', 'num','add_price');
     }
 
-    public function setPrice($day, $price, $commission, $achievement, $num)
+    public function setPrice($day, $price, $commission, $achievement, $num,$add_price)
     {
         $add_time = time();
-        return $this->dao->create(compact('day', 'price', 'commission', 'achievement', 'num', 'add_time'));
+        return $this->dao->create(compact('day', 'price', 'commission', 'achievement', 'num', 'add_time','add_price'));
     }
     /**
      *  列表搜索

+ 1 - 1
crmeb/listens/AutoSavePriceListen.php

@@ -34,7 +34,7 @@ class AutoSavePriceListen extends TimerService implements ListenerInterface
             if (!isset($yesterday['basePrice'])) {
                 return;
             }
-            $service->setPrice($day, $yesterday['price'], $yesterday['commission'], $yesterday['achievement'], $yesterday['num']);
+            $service->setPrice($day, $yesterday['price'], $yesterday['commission'], $yesterday['achievement'], $yesterday['num'],$yesterday['add_price']);
         });
     }
 }