0 && isset($return['nextOpenId']) && !empty($return['nextOpenId'])) { $nextOpenId = $return['nextOpenId']; $return = UserClass::syncWxUser($sjId, $nextOpenId); } return ['total' => $return['total']]; } //更新微信头像 ssh 2020.1.12 public static function syncAvatar($sjId, $nextOpenId = '') { set_time_limit(0); $merchant = xhMerchantService::getById($sjId); //一次拉取调用最多拉取10000个关注者的OpenID $result = wxUtil::getSubscribeUserList($merchant, $nextOpenId); $total = isset($result['total']) ? $result['total'] : 0; $next_openid = isset($result['next_openid']) ? $result['next_openid'] : ''; $count = isset($result['count']) ? $result['count'] : 0; $openIdList = isset($result['data']['openid']) ? $result['data']['openid'] : []; if ($count == 0) { util::stop("完成更新\n"); } $total = count($openIdList); $totalPage = $total > 100 ? ceil($total / 100) : 1; for ($m = 1; $m <= $totalPage; $m++) { $offset = ($m - 1) * 100; $subIdList = array_slice($openIdList, $offset, 100); $info = wxUtil::batchGetUserInfo($merchant, $subIdList); if (empty($info) || isset($info['user_info_list']) == false || empty($info['user_info_list'])) { continue; } $user_info_list = $info['user_info_list']; foreach ($user_info_list as $val) { $headImgUrl = $val['headimgurl']; $openId = $val['openid']; $img = ImageService::generateAvatar($sjId, $headImgUrl); if (!empty($img)) { UserClass::updateByCondition(['openId' => $openId], ['avatar' => $img]); } } } echo "更新成功\n"; } /** * 更新用户的访问时间 */ public static function updateVisitTime($sjId, $userId) { $date = date("Ymd"); if (empty($userId)) { return false; } //每5分钟更新一次访问时间 $key = 'UserVisitTime_' . $date . '_' . $sjId . '_' . $userId; $respond = Yii::$app->redis->executeCommand('GET', [$key]); //每过5分钟更新访问时间 if (empty($respond)) { Yii::$app->redis->executeCommand('SET', [$key, $date]); Yii::$app->redis->executeCommand('EXPIRE', [$key, 300]); $time = time(); self::updateById($userId, ['visitTime' => $time]); } } //注册成为普通会员(非VIP),并更新用户相关信息 ssh 2019.9.7 public static function becomeMember($user, $merchant, $data) { //合并店长后台添加的客户 $sjId = $merchant['id']; $mobile = isset($data['mobile']) ? $data['mobile'] : ''; if (!empty($mobile)) { $hasUser = UserClass::getByCondition(['sjId' => $sjId, 'mobile' => $mobile]); $userSource = UserClass::$userSourceId; $systemId = $userSource['system']['id']; Yii::info($hasUser['sourceType'] . ' -- ' . $systemId); if (!empty($hasUser) && $hasUser['sourceType'] == $systemId) { UserClass::mergeUser($hasUser, $user); } } //合并之后再更新信息 $userId = $user['id']; UserClass::updateById($userId, $data); //注意成为会员和关注公众号时要去检查是否符合发优惠券条件 $userAsset = UserAssetClass::getByUserId($userId); $user['mobile'] = $mobile; CouponAssetClass::giveCoupon($user, $merchant, $userAsset); //增加会员数 MerchantAssetService::addMemberNum($sjId); } //取消关注 ssh 2019.9.8 public static function unFocus($userId) { self::updateById($userId, ['subscribe' => 0, 'hasSubscribe' => 1]); } //关注公众号的后续 ssh 2020.5.5 public static function focus($user, $merchant) { $userId = $user['id']; UserClass::updateById($userId, ['subscribe' => 1]); $userAsset = UserAssetClass::getByUserId($userId); CouponAssetClass::giveCoupon($user, $merchant, $userAsset); } //批量获取用户信息,图片等信息处理好了 ssh 2019.11.28 public static function getUserByIds($ids) { return UserClass::getUserByIds($ids); } //验证支付密码是否正确 ssh 2019.12.6 public static function validPayPassword($password, $user) { if (isset($user['hasPayPwd']) == false || $user['hasPayPwd'] == 0) { util::fail('您还没有设置支付密码'); } $payPassword = $user['payPassword']; if (password_verify($password, $payPassword) == false) { util::fail('密码错误'); } } //验证用户权限 public static function valid($info, $sjId) { return UserClass::valid($info, $sjId); } //根据消费次数和有没领优惠券来判断是不是新人 public static function newUser($userInfo) { return UserClass::newUser($userInfo); } //添加新客户 ssh 2020.1.10 public static function addUser($data) { //sjId $source $realName $member $growth $balance $mobile //必传参数 validate::easyCheck(['sjId', 'mobile'], $data); $sjId = $data['sjId']; $source = 'system'; $mobile = $data['mobile']; $realName = isset($data['realName']) ? $data['realName'] : $mobile; $member = isset($data['member']) ? $data['member'] : -1; $balance = isset($data['balance']) ? $data['balance'] : 0; $growth = isset($data['growth']) ? $data['growth'] : 0; $originalInfo = []; $originalInfo['sjId'] = $sjId; $originalInfo['mobile'] = $mobile; $originalInfo['realName'] = $realName; $originalInfo['userName'] = $realName; $user = UserClass::replaceUser($originalInfo, $source, $sjId); $extend = MerchantExtendService::getBySjId($sjId); //等级 if ($member > 0) { $gradeList = xhMerchantExtendService::getGradeList($extend, 'desc'); $growth = isset($gradeList[$member]['growth']) ? $gradeList[$member]['growth'] : 0; } //余额成长值更新 $userId = $user['id']; $data = []; $data['growth'] = $growth; $data['balance'] = $balance > 0 ? $balance : 0; UserAssetService::updateByUserId($userId, $data); //会员升级 UserIntegralService::increaseToUpgrade(0, $growth, 0, $userId, $sjId, $extend); return $user; } //合并用户 ssh 2020.5.12 public static function mergeUser($delUser, $retainUser) { return UserClass::mergeUser($delUser, $retainUser); } }