|
|
@@ -4,6 +4,7 @@ import cn.dev33.satoken.stp.StpUtil;
|
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
import com.github.yulichang.base.MPJBaseServiceImpl;
|
|
|
import com.kym.common.R;
|
|
|
@@ -19,23 +20,25 @@ import com.kym.entity.admin.queryParams.CommonQueryParam;
|
|
|
import com.kym.entity.admin.vo.ActivityVo;
|
|
|
import com.kym.entity.admin.vo.CustomUserVo;
|
|
|
import com.kym.entity.common.PageBean;
|
|
|
-import com.kym.entity.miniapp.Account;
|
|
|
-import com.kym.entity.miniapp.Cars;
|
|
|
-import com.kym.entity.miniapp.RefundLog;
|
|
|
-import com.kym.entity.miniapp.User;
|
|
|
+import com.kym.entity.miniapp.*;
|
|
|
import com.kym.entity.miniapp.queryParams.WxLoginParams;
|
|
|
import com.kym.entity.miniapp.vo.UserVo;
|
|
|
import com.kym.entity.wechat.WxPhoneNum;
|
|
|
+import com.kym.mapper.miniapp.MpRelationMapper;
|
|
|
import com.kym.mapper.miniapp.UserMapper;
|
|
|
import com.kym.service.admin.ActivityService;
|
|
|
import com.kym.service.admin.BannerService;
|
|
|
import com.kym.service.admin.RechargeRightsService;
|
|
|
-import com.kym.service.miniapp.*;
|
|
|
+import com.kym.service.miniapp.AccountService;
|
|
|
+import com.kym.service.miniapp.CarsService;
|
|
|
+import com.kym.service.miniapp.RefundLogService;
|
|
|
+import com.kym.service.miniapp.UserService;
|
|
|
import lombok.SneakyThrows;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.context.annotation.Lazy;
|
|
|
+import org.springframework.scheduling.annotation.Async;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
@@ -62,26 +65,24 @@ public class UserServiceImpl extends MPJBaseServiceImpl<UserMapper, User> implem
|
|
|
private final AccountService accountService;
|
|
|
private final RefundLogService refundLogService;
|
|
|
private final CarsService carsService;
|
|
|
- private final UserRechargeRightsService userRechargeRightsService;
|
|
|
private final RechargeRightsService rechargeRightsService;
|
|
|
private final ActivityService activityService;
|
|
|
private final BannerService bannerService;
|
|
|
|
|
|
- private final UserCouponService userCouponService;
|
|
|
+ private final MpRelationMapper mpRelationMapper;
|
|
|
+
|
|
|
|
|
|
public UserServiceImpl(WxConfig wxConfig, @Lazy AccountService accountService, RefundLogService refundLogService,
|
|
|
- CarsService carsService, UserRechargeRightsService userRechargeRightsService,
|
|
|
- RechargeRightsService rechargeRightsService, @Lazy ActivityService activityService,
|
|
|
- BannerService bannerService, @Lazy UserCouponService userCouponService) {
|
|
|
+ CarsService carsService, RechargeRightsService rechargeRightsService, @Lazy ActivityService activityService,
|
|
|
+ BannerService bannerService, MpRelationMapper mpRelationMapper) {
|
|
|
this.wxConfig = wxConfig;
|
|
|
this.accountService = accountService;
|
|
|
this.refundLogService = refundLogService;
|
|
|
this.carsService = carsService;
|
|
|
- this.userRechargeRightsService = userRechargeRightsService;
|
|
|
this.rechargeRightsService = rechargeRightsService;
|
|
|
this.activityService = activityService;
|
|
|
this.bannerService = bannerService;
|
|
|
- this.userCouponService = userCouponService;
|
|
|
+ this.mpRelationMapper = mpRelationMapper;
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -105,7 +106,7 @@ public class UserServiceImpl extends MPJBaseServiceImpl<UserMapper, User> implem
|
|
|
var user = baseMapper.selectOne(new QueryWrapper<User>().eq("openid", openid));
|
|
|
if (user != null) {
|
|
|
// 登录逻辑
|
|
|
- if(CommUtil.isNotEmptyAndNull(unionid) && CommUtil.isEmptyOrNull(user.getUnionid())){
|
|
|
+ if (CommUtil.isNotEmptyAndNull(unionid) && CommUtil.isEmptyOrNull(user.getUnionid())) {
|
|
|
user.setUnionid(unionid);
|
|
|
}
|
|
|
return handleLogin(user);
|
|
|
@@ -192,9 +193,20 @@ public class UserServiceImpl extends MPJBaseServiceImpl<UserMapper, User> implem
|
|
|
user.setLastLoginTime(LocalDateTime.now());
|
|
|
updateById(user);
|
|
|
LOGGER.info("用户:{}/{}登录成功,tokenName:{},tokenValue:{}", user.getMobilePhone(), user.getId(), StpUtil.getTokenName(), StpUtil.getTokenValue());
|
|
|
+ updateUnionid();
|
|
|
return R.success(of("userId", user.getId(), "satoken", StpUtil.getTokenValue()));
|
|
|
}
|
|
|
|
|
|
+ @Async
|
|
|
+ protected void updateUnionid() {
|
|
|
+ var unionid = StpUtil.getSession().getString("unionid");
|
|
|
+ if (CommUtil.isNotEmptyAndNull(unionid)) {
|
|
|
+ // 匹配公众号用户
|
|
|
+ var wrapper = new LambdaUpdateWrapper<MpRelation>().eq(MpRelation::getUnionid, unionid).set(MpRelation::getUserId, StpUtil.getLoginIdAsLong()).set(MpRelation::getOpenid, StpUtil.getSession().getString("openid"));
|
|
|
+ mpRelationMapper.update(null, wrapper);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|