1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
 
namespace app\job\model\user;
 
use app\api\model\plus\coupon\UserCoupon as UserCouponModel;
use app\common\model\user\User as UserModel;
use app\job\model\user\GradeLog as GradeLogModel;
use app\common\enum\user\grade\ChangeTypeEnum;
 
/**
 * 用户模型
 */
class User extends UserModel
{
    /**
     * 批量设置会员等级
     */
    public function upgradeGrade($user, $upgradeGrade)
    {
        if($user['business_card_time']>time()){
            $business_card_time=strtotime('+'.$upgradeGrade['business_card_time'].' month',$user['business_card_time']);
        }else{
            $business_card_time=strtotime('+'.$upgradeGrade['business_card_time'].' month');
        }
        //赠送优惠券
        if ($upgradeGrade['open_coupon'] && $upgradeGrade['open_coupons']) {
            (new UserCouponModel)->addUserCardCoupon($upgradeGrade['open_coupons'], $user,0);
        }
        // 更新会员等级的数据
        $this->where('user_id', '=', $user['user_id'])
            ->update([
                'grade_id' => $upgradeGrade['grade_id'],
                'business_card_time' => $business_card_time
            ]);
 
        (new GradeLogModel)->save([
            'old_grade_id' => $user['grade_id'],
            'new_grade_id' => $upgradeGrade['grade_id'],
            'change_type' => ChangeTypeEnum::AUTO_UPGRADE,
            'user_id' => $user['user_id'],
            'app_id' => $user['app_id']
        ]);
        return true;
    }
 
}