| | |
| | | import com.mzl.flower.constant.Constants; |
| | | import com.mzl.flower.dto.request.BindWechatDTO; |
| | | import com.mzl.flower.dto.request.CreateWechatUserDTO; |
| | | import com.mzl.flower.dto.request.UserLoginDTO; |
| | | import com.mzl.flower.dto.request.UserPhoneLoginDTO; |
| | | import com.mzl.flower.dto.request.customer.UpdateCustomerDTO; |
| | | import com.mzl.flower.dto.request.system.*; |
| | | import com.mzl.flower.dto.response.current.CurrentUserDTO; |
| | |
| | | // 获取锁,最多等待 10 秒,锁自动释放时间 30 秒 |
| | | if (lock.tryLock(10, 30, TimeUnit.SECONDS)) { |
| | | try{ |
| | | // 其次查找当前loginName是prephonenume的,userType是customer的用户存在不存在 |
| | | if (StringUtils.isEmpty(dto.getPurePhoneNumber()) && StringUtils.isEmpty(dto.getPhoneNumber())) { |
| | | throw new ValidationException("微信获取的电话号码为空!无法注册"); |
| | | } |
| | | // 1:查看用户存在不存在 |
| | | List<String> userTypes = new ArrayList<>(); |
| | | userTypes.add(dto.getUserType()); |
| | | User user = findByLoginName(dto.getPurePhoneNumber(), userTypes); |
| | | if (ObjectUtils.isEmpty(user)) { |
| | | // 是新用户,需要注册 |
| | | user = new User(); |
| | | user.setId(UUIDGenerator.getUUID()); |
| | | user.setLoginName(dto.getPurePhoneNumber()); |
| | | user.setTel(dto.getPurePhoneNumber()); |
| | | user.setNickName(dto.getPurePhoneNumber()); |
| | | user.setPassword(passwordEncoder.encode("12345678")); |
| | | user.setType(dto.getUserType()); |
| | | user.setStatus(Constants.STATUS_ACTIVE); |
| | | user.setIsSys(Constants.N); |
| | | user.create(); |
| | | userMapper.insert(user); |
| | | |
| | | // 注册商户信息 |
| | | UpdateCustomerDTO updateCustomerDTO = new UpdateCustomerDTO(); |
| | | updateCustomerDTO.setUserId(user.getId()); |
| | | if (StringUtils.isNotBlank(dto.getPurePhoneNumber())) { |
| | | updateCustomerDTO.setName("花满芫-" + dto.getPurePhoneNumber().substring(dto.getPurePhoneNumber().length() - 4)); |
| | | |
| | | // 其次查找当前loginName是prephonenume的,userType是customer的用户存在不存在 |
| | | if (StringUtils.isEmpty(dto.getPurePhoneNumber()) && StringUtils.isEmpty(dto.getPhoneNumber())) { |
| | | throw new ValidationException("微信获取的电话号码为空!无法注册"); |
| | | } |
| | | customerService.addOrUpdateCustomer(updateCustomerDTO); |
| | | } |
| | | // 1:查看用户存在不存在 |
| | | List<String> userTypes = new ArrayList<>(); |
| | | userTypes.add(dto.getUserType()); |
| | | User user = findByLoginName(dto.getPurePhoneNumber(), userTypes); |
| | | if (ObjectUtils.isEmpty(user)) { |
| | | // 是新用户,需要注册 |
| | | user = new User(); |
| | | user.setId(UUIDGenerator.getUUID()); |
| | | user.setLoginName(dto.getPurePhoneNumber()); |
| | | user.setTel(dto.getPurePhoneNumber()); |
| | | user.setNickName(dto.getPurePhoneNumber()); |
| | | user.setPassword(passwordEncoder.encode("12345678")); |
| | | user.setType(dto.getUserType()); |
| | | user.setStatus(Constants.STATUS_ACTIVE); |
| | | user.setIsSys(Constants.N); |
| | | user.create(); |
| | | userMapper.insert(user); |
| | | |
| | | BindWechatDTO wechatDTO = new BindWechatDTO(); |
| | | wechatDTO.setRealName(dto.getPurePhoneNumber()); |
| | | bindWechat(user.getId(), dto.getOpenId(), dto.getUnionId(), dto.getSessionKey(), wechatDTO); |
| | | // 注册商户信息 |
| | | UpdateCustomerDTO updateCustomerDTO = new UpdateCustomerDTO(); |
| | | updateCustomerDTO.setUserId(user.getId()); |
| | | if (StringUtils.isNotBlank(dto.getPurePhoneNumber())) { |
| | | updateCustomerDTO.setName("花满芫-" + dto.getPurePhoneNumber().substring(dto.getPurePhoneNumber().length() - 4)); |
| | | |
| | | } |
| | | customerService.addOrUpdateCustomer(updateCustomerDTO); |
| | | } |
| | | |
| | | BindWechatDTO wechatDTO = new BindWechatDTO(); |
| | | wechatDTO.setRealName(dto.getPurePhoneNumber()); |
| | | bindWechat(user.getId(), dto.getOpenId(), dto.getUnionId(), dto.getSessionKey(), wechatDTO); |
| | | }finally { |
| | | lock.unlock(); |
| | | } |
| | |
| | | } |
| | | |
| | | |
| | | public User registPhoneUser(UserPhoneLoginDTO dto) { |
| | | String RETISTER_KEY = "%s_%s"; |
| | | RLock lock = redissonClient.getLock(String.format(RETISTER_KEY, dto.getUsername(), dto.getUserType())); |
| | | try { |
| | | // 获取锁,最多等待 10 秒,锁自动释放时间 30 秒 |
| | | if (lock.tryLock(10, 30, TimeUnit.SECONDS)) { |
| | | try { |
| | | // 其次查找当前loginName是prephonenume的,userType是customer的用户存在不存在 |
| | | if (StringUtils.isEmpty(dto.getUsername()) && StringUtils.isEmpty(dto.getUsername())) { |
| | | throw new ValidationException("电话号码为空!无法注册"); |
| | | } |
| | | // 1:查看用户存在不存在 |
| | | List<String> userTypes = new ArrayList<>(); |
| | | userTypes.add(dto.getUserType()); |
| | | User user = findByLoginName(dto.getUsername(), userTypes); |
| | | if (ObjectUtils.isEmpty(user)) { |
| | | // 是新用户,需要注册 |
| | | user = new User(); |
| | | user.setId(UUIDGenerator.getUUID()); |
| | | user.setLoginName(dto.getUsername()); |
| | | user.setTel(dto.getUsername()); |
| | | user.setNickName(dto.getUsername()); |
| | | user.setPassword(passwordEncoder.encode("12345678")); |
| | | user.setType(dto.getUserType()); |
| | | user.setStatus(Constants.STATUS_ACTIVE); |
| | | user.setIsSys(Constants.N); |
| | | user.create(); |
| | | userMapper.insert(user); |
| | | |
| | | // 注册商户信息 |
| | | UpdateCustomerDTO updateCustomerDTO = new UpdateCustomerDTO(); |
| | | updateCustomerDTO.setUserId(user.getId()); |
| | | if (StringUtils.isNotBlank(dto.getUsername())) { |
| | | updateCustomerDTO.setName("智信-" + dto.getUsername().substring(dto.getUsername().length() - 4)); |
| | | |
| | | } |
| | | customerService.addOrUpdateCustomer(updateCustomerDTO); |
| | | |
| | | return user; |
| | | } |
| | | } finally { |
| | | lock.unlock(); |
| | | } |
| | | } |
| | | } catch (InterruptedException e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | } |