|
@@ -61,78 +61,6 @@ class PublicController extends BaseController
|
|
|
|
|
|
public function test()
|
|
|
{
|
|
|
- $list = UserIntegral::where('add_time', 'between', [1705766400, 1705852800])->where('extract_sum_real', null)->where('type', 0)
|
|
|
- ->select()->toArray();
|
|
|
-
|
|
|
- foreach ($list as $v) {
|
|
|
-
|
|
|
- $this->dealOrderIntegral(StoreOrder::where('id', $v['link_id'])->find(), $v['price'], $v['add_time']);
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- public function dealOrderIntegral($order, $price, $time)
|
|
|
- {
|
|
|
- /** @var UserAwardIntegralServices $awardIntegralService */
|
|
|
- $awardIntegralService = app()->make(UserAwardIntegralServices::class);
|
|
|
- /** @var UserServices $userService */
|
|
|
- $userService = app()->make(UserServices::class);
|
|
|
- /** @var UserLevelServices $levelServices */
|
|
|
- $levelServices = app()->make(UserLevelServices::class);
|
|
|
- $user = $userService->getUserInfo($order['uid']);
|
|
|
- $integral_price = $price;
|
|
|
- $total_price = $order['total_price'];
|
|
|
- return $awardIntegralService->transaction(function () use ($time, $levelServices, $awardIntegralService, $userService, $user, $integral_price, $total_price, $order) {
|
|
|
- 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->incIntegralAdmin($order['uid'], $integral_price, $give_static_integral, $total_price, 0, $extract_sum, $order['id'], $mark, $time);
|
|
|
-// }
|
|
|
- //TODO 加动态积分
|
|
|
- //推荐奖
|
|
|
- $rate = sys_config('action_integral_rate', 3);
|
|
|
- $spread = $userService->getUserInfo($user['spread_uid']);
|
|
|
- if ($spread) {
|
|
|
- if ($awardIntegralService->getPaySum($spread['uid']) >= 1000) {
|
|
|
- $award_ratio = sys_config('recommend_integral', 0);
|
|
|
- $give_action_integral = bcdiv(bcmul($total_price, $award_ratio), 100, 2);
|
|
|
- if ($give_action_integral > 0) {
|
|
|
- $extract_sum = bcmul($give_action_integral, $rate, 2);
|
|
|
- $mark = '推荐用户' . $user['nickname'] . "({$user['uid']})" . '购买商品,获得推荐积分';
|
|
|
- $awardIntegralService->incIntegralAdmin($spread['uid'], $integral_price, $give_action_integral, $total_price, 1, $extract_sum, $order['id'], $mark, $time);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- $pass = [$user['uid']];
|
|
|
- $send = 0;
|
|
|
- while ($spread && !in_array($spread['uid'], $pass)) {
|
|
|
- //先发奖,再结算等级
|
|
|
- $level = $levelServices->getUserLevelBefore($spread['uid'], $time);
|
|
|
- $ratio = $level['levelInfo']['group_award'] ?? 0;
|
|
|
- $give_action_integral = bcdiv(bcmul($total_price, $ratio), 100, 2);
|
|
|
- if ($give_action_integral > $send) {
|
|
|
- $real_send = bcsub($give_action_integral, $send, 2);
|
|
|
-// if ($awardIntegralService->getHourExtractPaySum($spread['uid'], 24) > 0) {
|
|
|
- $extract_sum = bcmul($real_send, $rate, 2);
|
|
|
- $mark = '团队用户' . $user['nickname'] . "({$user['uid']})" . '购买商品,获得团队级差积分';
|
|
|
- $awardIntegralService->incIntegralAdmin($spread['uid'], $integral_price, $real_send, $total_price, 1, $extract_sum, $order['id'], $mark, $time);
|
|
|
-// }
|
|
|
- $send = $give_action_integral;
|
|
|
- }
|
|
|
- $pass[] = $spread['uid'];
|
|
|
- $spread = $userService->getUserInfo($spread['spread_uid']);
|
|
|
- }
|
|
|
- app()->make(IntegralJob::class)->autoExtract($awardIntegralService->getPrice());
|
|
|
- return true;
|
|
|
- } catch (\Throwable $e) {
|
|
|
- return false;
|
|
|
- }
|
|
|
- });
|
|
|
|
|
|
}
|
|
|
|