|
@@ -3,16 +3,22 @@ package cn.kdan.pdf.backend.core.service.impl;
|
|
import cn.kdan.pdf.backend.core.constant.AuthConstant;
|
|
import cn.kdan.pdf.backend.core.constant.AuthConstant;
|
|
import cn.kdan.pdf.backend.core.constant.MembersConstant;
|
|
import cn.kdan.pdf.backend.core.constant.MembersConstant;
|
|
import cn.kdan.pdf.backend.core.enums.CaptchaActionEnum;
|
|
import cn.kdan.pdf.backend.core.enums.CaptchaActionEnum;
|
|
|
|
+import cn.kdan.pdf.backend.core.enums.ProviderEnum;
|
|
import cn.kdan.pdf.backend.core.enums.SubscriberTypeEnum;
|
|
import cn.kdan.pdf.backend.core.enums.SubscriberTypeEnum;
|
|
import cn.kdan.pdf.backend.core.enums.VerifyTypeEnum;
|
|
import cn.kdan.pdf.backend.core.enums.VerifyTypeEnum;
|
|
import cn.kdan.pdf.backend.core.mapper.*;
|
|
import cn.kdan.pdf.backend.core.mapper.*;
|
|
import cn.kdan.pdf.backend.core.mapper.ext.ExtMembersMapper;
|
|
import cn.kdan.pdf.backend.core.mapper.ext.ExtMembersMapper;
|
|
import cn.kdan.pdf.backend.core.model.*;
|
|
import cn.kdan.pdf.backend.core.model.*;
|
|
import cn.kdan.pdf.backend.core.model.member.*;
|
|
import cn.kdan.pdf.backend.core.model.member.*;
|
|
|
|
+import cn.kdan.pdf.backend.core.params.BindAccountParam;
|
|
import cn.kdan.pdf.backend.core.params.UserResetPwdParams;
|
|
import cn.kdan.pdf.backend.core.params.UserResetPwdParams;
|
|
|
|
+import cn.kdan.pdf.backend.core.pojo.app.BindAccountVo;
|
|
|
|
+import cn.kdan.pdf.backend.core.pojo.app.MemberVo;
|
|
|
|
+import cn.kdan.pdf.backend.core.pojo.app.SocialAccountVo;
|
|
import cn.kdan.pdf.backend.core.service.AuthService;
|
|
import cn.kdan.pdf.backend.core.service.AuthService;
|
|
import cn.kdan.pdf.backend.core.service.MemberService;
|
|
import cn.kdan.pdf.backend.core.service.MemberService;
|
|
import cn.kdan.pdf.backend.core.service.SocialAccountService;
|
|
import cn.kdan.pdf.backend.core.service.SocialAccountService;
|
|
|
|
+import cn.kdan.pdf.backend.core.service.UserService;
|
|
import constant.CommonConstant;
|
|
import constant.CommonConstant;
|
|
import enums.CommonEnum;
|
|
import enums.CommonEnum;
|
|
import exception.BackendRuntimeException;
|
|
import exception.BackendRuntimeException;
|
|
@@ -60,6 +66,8 @@ public class MemberServiceImpl implements MemberService {
|
|
private ExtMembersMapper extMembersMapper;
|
|
private ExtMembersMapper extMembersMapper;
|
|
@Autowired
|
|
@Autowired
|
|
private SocialAccountService socialAccountService;
|
|
private SocialAccountService socialAccountService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private UserService userService;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 默认时区
|
|
* 默认时区
|
|
@@ -392,7 +400,7 @@ public class MemberServiceImpl implements MemberService {
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- @Transactional
|
|
|
|
|
|
+ @Transactional(rollbackFor = BackendRuntimeException.class)
|
|
public boolean resetPassword(UserResetPwdParams params) {
|
|
public boolean resetPassword(UserResetPwdParams params) {
|
|
MembersExample example = new MembersExample();
|
|
MembersExample example = new MembersExample();
|
|
//如果是手机方式
|
|
//如果是手机方式
|
|
@@ -469,10 +477,75 @@ public class MemberServiceImpl implements MemberService {
|
|
Members currentUser = getCurrentUser();
|
|
Members currentUser = getCurrentUser();
|
|
String memberId = currentUser.getId();
|
|
String memberId = currentUser.getId();
|
|
//删除社交账号socialAccount表+用户members表数据
|
|
//删除社交账号socialAccount表+用户members表数据
|
|
- if(!StringUtils.isEmpty(memberId) && currentUser.getTotalPoints() == 10){
|
|
|
|
|
|
+ //判断用户是否是空数据类型(未充值过券和会员服务)
|
|
|
|
+ if(!StringUtils.isEmpty(memberId) && currentUser.getTotalPoints() == 10
|
|
|
|
+ && SubscriberTypeEnum.no.value().equals(currentUser.getSubscriberType())){
|
|
socialAccountService.deleteByMemberId(memberId);
|
|
socialAccountService.deleteByMemberId(memberId);
|
|
membersMapper.deleteByPrimaryKey(memberId);
|
|
membersMapper.deleteByPrimaryKey(memberId);
|
|
}
|
|
}
|
|
return memberId;
|
|
return memberId;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ //todo 先做绑定第三方账号
|
|
|
|
+ @Override
|
|
|
|
+ @Transactional(rollbackFor = BackendRuntimeException.class)
|
|
|
|
+ public BindAccountVo bindAccount(BindAccountParam param) {
|
|
|
|
+ BindAccountVo bindAccountVo = new BindAccountVo();
|
|
|
|
+ SocialAccountVo socialAccountVo = new SocialAccountVo();
|
|
|
|
+ MemberVo memberVo = new MemberVo();
|
|
|
|
+ Members currentUser = getCurrentUser();
|
|
|
|
+ BeanUtils.copyProperties(currentUser,memberVo);
|
|
|
|
+ memberVo.setStatus("verified");
|
|
|
|
+ String provider = param.getProvider();
|
|
|
|
+ if("phone".equals(provider)){
|
|
|
|
+ String phone = param.getPhone();
|
|
|
|
+ if(StringUtils.isEmpty(phone)){
|
|
|
|
+ throw new BackendRuntimeException("手机号不能为空");
|
|
|
|
+ }
|
|
|
|
+ Members member = userService.getByAccount(phone);
|
|
|
|
+ if(member != null){
|
|
|
|
+ //不允许绑定自己
|
|
|
|
+ if(member.getId().equals(currentUser.getId())) {
|
|
|
|
+ throw new BackendRuntimeException("不允许绑定自己");
|
|
|
|
+ }else{
|
|
|
|
+ if(member.getTotalPoints() <= 10 && SubscriberTypeEnum.no.value().equals(member.getSubscriberType())){
|
|
|
|
+ //删除该手机的账号数据,然后更新手机到当前用户
|
|
|
|
+ membersMapper.deleteByPrimaryKey(member.getId());
|
|
|
|
+ //更新当前账号的手机号为phone参数
|
|
|
|
+ if(!StringUtils.isEmpty(param.getPhoneZone())){
|
|
|
|
+ currentUser.setPhoneZone(param.getPhoneZone());
|
|
|
|
+ }
|
|
|
|
+ currentUser.setPhone(phone);
|
|
|
|
+ currentUser.setUpdatedAt(new Date());
|
|
|
|
+ update(currentUser);
|
|
|
|
+ }else{
|
|
|
|
+ throw new BackendRuntimeException("不允许绑定该账号,因为充过钱了!");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ //直接更新当前账号的手机号为phone参数
|
|
|
|
+ if(!StringUtils.isEmpty(param.getPhoneZone())){
|
|
|
|
+ currentUser.setPhoneZone(param.getPhoneZone());
|
|
|
|
+ }
|
|
|
|
+ currentUser.setPhone(phone);
|
|
|
|
+ currentUser.setUpdatedAt(new Date());
|
|
|
|
+ update(currentUser);
|
|
|
|
+ }
|
|
|
|
+ } else{
|
|
|
|
+ //绑定第三方账号
|
|
|
|
+ String accountId = socialAccountService.bindSocialAccount(currentUser,param);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ SocialAccounts socialAccounts = socialAccountService.selectByMemberId(currentUser.getId(), ProviderEnum.getCodeByName(provider));
|
|
|
|
+ BeanUtils.copyProperties(socialAccounts,socialAccountVo);
|
|
|
|
+
|
|
|
|
+ bindAccountVo.setMember(memberVo);
|
|
|
|
+ bindAccountVo.setSocialAccount(socialAccountVo);
|
|
|
|
+ return bindAccountVo;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public BindAccountVo unbindAccount(BindAccountParam param) {
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
}
|
|
}
|