| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- <?php
- namespace app\jobs\integral;
- use app\services\user\UserAwardIntegralServices;
- use crmeb\basic\BaseJobs;
- use crmeb\traits\QueueTrait;
- use think\facade\Log;
- /**
- * 订单消息队列
- * Class OrderJob
- * @package app\jobs
- */
- class IntegralJob extends BaseJobs
- {
- use QueueTrait;
- public function dealOrderIntegral($order)
- {
- /** @var UserAwardIntegralServices $awardIntegralService */
- $awardIntegralService = app()->make(UserAwardIntegralServices::class);
- $integral_price = $awardIntegralService->getPrice($order['id']);
- $total_price = $order['total_price'];
- try {
- //添加静态积分
- $static_integral_ratio = sys_config('static_integral_ratio', 0);
- $give_static_integral = bcdiv(bcmul($total_price, $static_integral_ratio), 100, 2);
- if ($give_static_integral > 0) {
- $rate = sys_config('static_integral_rate', 3);
- $extract_sum = bcmul($total_price, $rate, 2);
- $mark = '购买商品,获得静态积分';
- $awardIntegralService->incIntegral($order['uid'], $integral_price, $give_static_integral, $total_price, 0, $extract_sum, $order['id'], $mark);
- }
- //添加奖池
- $lake_ratio = sys_config('lake_ratio', 0);
- $add_lake = bcdiv(bcmul($total_price, $lake_ratio), 100, 2);
- if ($add_lake > 0) {
- $mark = '用户' . $order['uid'] . '购买商品,添加资金池';
- $awardIntegralService->addLake($add_lake, $order['id'], $mark);
- }
- //TODO 加动态积分
- } catch (\Throwable $e) {
- Log::error('处理积分奖池失败,失败原因:' . $e->getMessage());
- }
- }
- /**
- * 减积分
- * @param int $uid 用户
- * @param float $static 静态积分
- * @param float $action 动态积分
- * @param float $cash 资金池
- * @param int $link_id 关联ID
- * @param string $mark 备注
- */
- public function decIntegral(int $uid, float $static, float $action, float $cash, int $link_id = 0, string $mark = '')
- {
- }
- }
|