|
@@ -72,9 +72,16 @@ class PublicController extends BaseController
|
|
|
|
|
|
public function test()
|
|
|
{
|
|
|
- $service = app()->make(UserAwardIntegralServices::class);
|
|
|
- $list = $service->getIntegralList(['type' => 0, 'status' => 0]);
|
|
|
- echo '原消费分共' . $list['count'] . '条';
|
|
|
+ $list = UserIntegral::where('type', 0)->where('status', 0)->order('add_time', 'asc')->select();
|
|
|
+ echo '原消费分共' . count($list) . '条';
|
|
|
+ $last_time = 0;
|
|
|
+ $service = app()->make(AwardIntegralServices::class);
|
|
|
+ foreach ($list as $v) {
|
|
|
+ if (date('Y-m-d', $v['add_time']) != date('Y-m-d', $v['add_time'])) {
|
|
|
+ $service->daySend(true);
|
|
|
+ }
|
|
|
+ $this->dealOrderIntegral($v['link_id'], $v['uid'], $v['order_price'], $v['add_time']);
|
|
|
+ }
|
|
|
// $main_orders = $service->getIntegralList(['uid' => 1, 'link_id' => 0, 'order_price_elt' => 2500, 'valid' => 2]);//满足复投条件的主单
|
|
|
// var_dump($main_orders);
|
|
|
// var_dump(AwardIntegral::getLastSql());
|
|
@@ -82,6 +89,50 @@ class PublicController extends BaseController
|
|
|
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ public function dealOrderIntegral($order_id, $uid, $order_price, $add_time)
|
|
|
+ {
|
|
|
+ Log::debug(date('Y-m-d H:i:s') . '开始处理' . $order_id . '积分');
|
|
|
+ /** @var AwardIntegralServices $awardIntegralService */
|
|
|
+ $awardIntegralService = app()->make(AwardIntegralServices::class);
|
|
|
+ /** @var UserServices $userService */
|
|
|
+ $userService = app()->make(UserServices::class);
|
|
|
+ $user = $userService->getUserInfo($uid);
|
|
|
+ $total_price = $order_price;
|
|
|
+ return $awardIntegralService->transaction(function () use ($awardIntegralService, $userService, $user, $total_price, $order_id, $add_time) {
|
|
|
+ try {
|
|
|
+ $rate = sys_config('static_integral_rate', 3);
|
|
|
+ $give_static_integral = bcmul($total_price, $rate);
|
|
|
+ if ($give_static_integral > 0) {
|
|
|
+ $mark = '购买商品,获得参考分';
|
|
|
+ $integral_info = $awardIntegralService->incIntegral($user['uid'], $give_static_integral, $total_price, $order_id, $mark, $add_time);
|
|
|
+ }
|
|
|
+ //TODO 加动态积分
|
|
|
+ //推荐奖
|
|
|
+ $spread = $userService->getUserInfo($user['spread_uid']);
|
|
|
+ if ($spread && $spread['is_promoter']) {
|
|
|
+ if ($awardIntegralService->getPaySum($spread['uid']) > 0) {
|
|
|
+ $award_ratio = sys_config('recommend_speed_integral', 0);
|
|
|
+ $give_action_integral = bcdiv(bcmul($total_price, $award_ratio), 100, 2);
|
|
|
+ if ($give_action_integral > 0) {
|
|
|
+ $first = $awardIntegralService->getFirstStaticIntegral($spread['uid']);
|
|
|
+ if ($first) {
|
|
|
+ $awardIntegralService->upSpeedIntegral($first['id'], $give_action_integral);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Log::debug(date('Y-m-d H:i:s') . '结束处理' . $order_id . '积分');
|
|
|
+ return true;
|
|
|
+ } catch (\Throwable $e) {
|
|
|
+ Log::error('处理积分奖池失败,失败原因:' . $e->getMessage());
|
|
|
+ Log::debug(date('Y-m-d H:i:s') . '结束处理' . $order_id . '积分');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
public function send_test()
|
|
|
{
|
|
|
$service = app()->make(AwardIntegralServices::class);
|