| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- <?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\repositories\user;
- use app\common\dao\user\AwardIntegralPriceDao;
- use app\common\model\store\order\StoreOrder;
- use app\common\model\user\AwardIntegralPrice;
- use app\common\repositories\BaseRepository;
- class AwardIntegralPriceRepository extends BaseRepository
- {
- /**
- * @var AwardIntegralPriceDao
- */
- protected $dao;
- /**
- * UserSignRepository constructor.
- * @param AwardIntegralPriceDao $dao
- */
- public function __construct(AwardIntegralPriceDao $dao)
- {
- $this->dao = $dao;
- }
- public function awardIntegralPrice($day = '')
- {
- if (!$day) {
- $day = date('Y-m-d');
- }
- if ($info = $this->dao->search(['day' => $day])->find()) {
- return $info->toArray();
- }
- @file_put_contents('yesterday.txt', AwardIntegralPrice::getLastSql() . PHP_EOL, FILE_APPEND);
- $yesterday_price = $this->dao->search(['day' => date('Y-m-d', strtotime('-1 day', strtotime($day)))])->find();
- if ($yesterday_price) {
- $basePrice = $yesterday_price->price;
- } else {
- $basePrice = systemConfig('award_integral_price', 0.1);
- }
- //todo 业绩
- $achievement = StoreOrder::where('paid', 1)->whereTime('add_time', $day)->where('refund_status', 0)
- ->where('is_del', 0)->where('is_system_del', 0)
- ->where('status', '>=', 0)
- ->sum('total_price');
- $achievement = bcmul((string)$achievement, '0.05', 2);
- /** @var UserExtractRepository $extractRepositories */
- $extractRepositories = app()->make(UserExtractRepository::class);
- $commission = $extractRepositories->search(['status' => 1])->whereTime('check_time', $day)->sum('commission');
- $userService = app()->make(UserRepository::class);
- $num = $userService->search(['status' => 1])->sum('award_integral');
- $sum_achievement = bcadd((string)$commission, (string)$achievement, 2);
- $rise = $num > 0 ? bcdiv($sum_achievement, $num, 3) : 0;
- $price = bcadd($rise, $basePrice, 3);
- return compact('basePrice', 'price', 'rise', 'achievement', 'commission', 'num');
- }
- public function setPrice($day, $price, $commission, $achievement, $num)
- {
- $add_time = time();
- return $this->dao->create(compact('day', 'price', 'commission', 'achievement', 'num', 'add_time'));
- }
- }
|