|
|
@@ -22,6 +22,7 @@ import com.kxs.common.core.util.R;
|
|
|
import com.kxs.common.core.util.SpringContextHolder;
|
|
|
import com.kxs.common.security.util.SecurityUtils;
|
|
|
import com.kxs.product.api.feign.RemoteKxsProductService;
|
|
|
+import com.kxs.product.api.model.KxsMerchant;
|
|
|
import com.kxs.product.api.vo.kxsapp.excel.ExistPayPwdVO;
|
|
|
import com.kxs.store.api.feign.RemoteKxsStoreService;
|
|
|
import com.kxs.store.api.model.KxsWarehouseLimit;
|
|
|
@@ -30,6 +31,7 @@ import com.kxs.system.api.model.KxsUserMsg;
|
|
|
import com.kxs.system.api.util.MsgTemplateUtil;
|
|
|
import com.kxs.user.api.dto.kxsapp.ConcealParentDTO;
|
|
|
import com.kxs.user.api.dto.kxsapp.app.ForgetPwdDTO;
|
|
|
+import com.kxs.user.api.dto.kxsapp.app.MchRegisterDTO;
|
|
|
import com.kxs.user.api.dto.kxsapp.app.RegisterDTO;
|
|
|
import com.kxs.user.api.dto.kxsapp.user.*;
|
|
|
import com.kxs.user.api.model.*;
|
|
|
@@ -103,12 +105,9 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
|
|
|
private static final PasswordEncoder ENCODER = new BCryptPasswordEncoder();
|
|
|
|
|
|
@Override
|
|
|
- @GlobalTransactional
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
+ @GlobalTransactional(rollbackFor = Exception.class)
|
|
|
public R register(RegisterDTO registerDTO) {
|
|
|
|
|
|
- AssertUtil.isPhone(registerDTO.getPhone());
|
|
|
-
|
|
|
//验证码校验
|
|
|
checkValidateCode(registerDTO.getPhone(), registerDTO.getCode());
|
|
|
|
|
|
@@ -130,9 +129,7 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
|
|
|
//查询上级用户
|
|
|
KxsUser inviteUser = baseMapper.selectOne(Wrappers.<KxsUser>lambdaQuery().eq(KxsUser::getUserCode, registerDTO.getUserCode()));
|
|
|
if(inviteUser == null){
|
|
|
- inviteUser = new KxsUser();
|
|
|
- inviteUser.setId(0);
|
|
|
-// return R.failed(UserErrorTypeEnum.PARENT_IS_NULL.getDescription());
|
|
|
+ return R.failed(UserErrorTypeEnum.PARENT_IS_NULL.getDescription());
|
|
|
}
|
|
|
|
|
|
kxsUser.setPid(inviteUser.getId());
|
|
|
@@ -145,7 +142,7 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
|
|
|
baseMapper.insert(kxsUser);
|
|
|
|
|
|
//会员序号/推荐码
|
|
|
- String number = String.format("%08d", kxsUser.getId());
|
|
|
+ String number = String.format("%07d", kxsUser.getId());
|
|
|
kxsUser.setUserCode(CommonConstants.KXS_USER_NUMBER_PREFIX + number);
|
|
|
|
|
|
if (CharSequenceUtil.isBlank(inviteUser.getPidPath())){
|
|
|
@@ -180,6 +177,90 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
|
|
|
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @GlobalTransactional(rollbackFor = Exception.class)
|
|
|
+ public R mchRegister(MchRegisterDTO registerDTO) {
|
|
|
+
|
|
|
+ //验证码校验
|
|
|
+ checkValidateCode(registerDTO.getPhone(), registerDTO.getCode());
|
|
|
+
|
|
|
+ //查询是否注销
|
|
|
+ KxsUser isRemove = baseMapper.selectOne(Wrappers.<KxsUser>lambdaQuery().eq(KxsUser::getPhone, registerDTO.getPhone() + "d"));
|
|
|
+ if(isRemove != null && isRemove.getUpdateTime() != null && LocalDateTime.now().isBefore(isRemove.getUpdateTime().plusDays(30))){
|
|
|
+ return R.failed(UserErrorTypeEnum.USER_REMOVE.getDescription());
|
|
|
+ }
|
|
|
+ KxsUser exUser = baseMapper.selectOne(Wrappers.<KxsUser>lambdaQuery().eq(KxsUser::getPhone, registerDTO.getPhone()));
|
|
|
+ if(exUser != null){
|
|
|
+ return R.failed(UserErrorTypeEnum.PHONE_IS_EX.getDescription());
|
|
|
+ }
|
|
|
+
|
|
|
+ KxsUser kxsUser = new KxsUser();
|
|
|
+ BeanUtils.copyProperties(registerDTO, kxsUser);
|
|
|
+ kxsUser.setUserCode(null);
|
|
|
+ kxsUser.setStatus(UserStatusEnum.NORMAL.getCode());
|
|
|
+
|
|
|
+ //查询上级用户
|
|
|
+ KxsUser inviteUser = baseMapper.selectOne(Wrappers.<KxsUser>lambdaQuery().eq(KxsUser::getUserCode, registerDTO.getUserCode()));
|
|
|
+ if(inviteUser == null){
|
|
|
+ return R.failed(UserErrorTypeEnum.PARENT_IS_NULL.getDescription());
|
|
|
+ }
|
|
|
+
|
|
|
+ kxsUser.setPid(inviteUser.getId());
|
|
|
+ //加盐
|
|
|
+ String salt = UUID.randomUUID().toString();
|
|
|
+ kxsUser.setSalt(salt);
|
|
|
+ //登陆密码
|
|
|
+ kxsUser.setPassword(ENCODER.encode(registerDTO.getPassword() + salt));
|
|
|
+ kxsUser.setIsMerchantMaker(CommonConstants.SUCCESS);
|
|
|
+ //保存用户注册信息
|
|
|
+ baseMapper.insert(kxsUser);
|
|
|
+
|
|
|
+ //会员序号/推荐码
|
|
|
+ String number = String.format("%07d", kxsUser.getId());
|
|
|
+ kxsUser.setUserCode(CommonConstants.KXS_USER_NUMBER_PREFIX + number);
|
|
|
+
|
|
|
+ if (CharSequenceUtil.isBlank(inviteUser.getPidPath())){
|
|
|
+ kxsUser.setPidPath("0");
|
|
|
+ } else {
|
|
|
+ // 拼接上级推荐人的用户ID字符串;如:0,1,2,3,4,5,...用英文逗号隔开
|
|
|
+ String superIdTree = (inviteUser.getPidPath().length() == 1 ? inviteUser.getPidPath() + "," : inviteUser.getPidPath()) + inviteUser.getId() + ",";
|
|
|
+ kxsUser.setPidPath(superIdTree);
|
|
|
+ }
|
|
|
+ //更新
|
|
|
+ baseMapper.updateById(kxsUser);
|
|
|
+
|
|
|
+ //添加用户账户表
|
|
|
+ KxsUserAmount kxsUserAmount = new KxsUserAmount();
|
|
|
+ kxsUserAmount.setUserId(kxsUser.getId());
|
|
|
+ kxsUserAmount.setId(kxsUser.getId());
|
|
|
+ userAmountMapper.insert(kxsUserAmount);
|
|
|
+
|
|
|
+ //初始化用户预发额度表
|
|
|
+ KxsWarehouseLimit kxsWarehouseLimit = new KxsWarehouseLimit();
|
|
|
+ kxsWarehouseLimit.setUserId(kxsUser.getId());
|
|
|
+ R<Boolean> booleanR = remoteKxsStoreService.addUserAdvanceLimit(kxsWarehouseLimit, SecurityConstants.FROM_IN);
|
|
|
+ if(booleanR.getStatus() != CommonConstants.SUCCESS || !booleanR.getData()){
|
|
|
+ throw new GlobalCustomerException(UserErrorTypeEnum.USER_LIMIT_ERROR.getDescription());
|
|
|
+ }
|
|
|
+
|
|
|
+ //发送个人消息
|
|
|
+ KxsUserMsg kxsUserMsg = MsgTemplateUtil.newUserPush(inviteUser.getId());
|
|
|
+ remoteUserMsgService.pushUserMsg(kxsUserMsg, SecurityConstants.FROM_IN);
|
|
|
+
|
|
|
+ //给商户添加创客标识,并把商户切换为商户型创客
|
|
|
+ KxsMerchant kxsMerchant = new KxsMerchant();
|
|
|
+ kxsMerchant.setId(registerDTO.getMchId());
|
|
|
+ kxsMerchant.setMakerUserId(kxsUser.getId());
|
|
|
+ R res = remoteKxsProductService.changeToMchUser(kxsMerchant, SecurityConstants.FROM_IN);
|
|
|
+
|
|
|
+ if(res.getStatus() != CommonConstants.SUCCESS){
|
|
|
+ throw new GlobalCustomerException(res.getMsg());
|
|
|
+ }
|
|
|
+
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public Boolean sendCode(String mobile) {
|
|
|
|
|
|
@@ -476,6 +557,7 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
|
|
|
}
|
|
|
|
|
|
|
|
|
+
|
|
|
@Override
|
|
|
public R updatePwd(UserUpdatePwdDTO param) {
|
|
|
|