|
|
@@ -112,6 +112,8 @@ import java.util.concurrent.TimeUnit;
|
|
|
import java.util.stream.Collectors;
|
|
|
import java.util.stream.Stream;
|
|
|
|
|
|
+import static cn.hutool.core.util.IdcardUtil.getGenderByIdCard;
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 用户Service业务层处理
|
|
|
@@ -2350,41 +2352,53 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public Map<String, Object> liveAccount_login(UserAppAccountLoginBo bo) {
|
|
|
- if(Validator.isEmpty(bo.getAccount())){
|
|
|
+ public Map<String, Object> liveAccount_login(UserExamActivityBo bo) {
|
|
|
+ if(Validator.isEmpty(bo.getUserCard())){
|
|
|
throw new CustomException("账号不能为空");
|
|
|
}
|
|
|
- LambdaQueryWrapper<User> queryWrapper =new LambdaQueryWrapper<User>();
|
|
|
- queryWrapper.and(wq -> wq
|
|
|
- .eq(User::getTelphone,EncryptHandler.encrypt(bo.getAccount()))
|
|
|
- .or()
|
|
|
- .eq(User::getIdCard,EncryptHandler.encrypt(bo.getAccount())));
|
|
|
- User user = getOne(queryWrapper);
|
|
|
- if(Validator.isEmpty(user)){
|
|
|
- iUserLoginErrorService.saveErrorLog(bo.getAccount());
|
|
|
- throw new CustomException("登录信息错误");
|
|
|
- } else if (UserStatus.DISABLE.getCode().equals(user.getStatus())) {
|
|
|
- throw new CustomException("对不起,您的账号:已停用");
|
|
|
- }
|
|
|
-
|
|
|
- String password = null;
|
|
|
- if(bo.getPwd().length()>20){
|
|
|
- String rsaPrivate = null;
|
|
|
- try {
|
|
|
- InputStream certStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("config/pri.key");
|
|
|
- rsaPrivate = AES.getStringByInputStream_1(certStream);
|
|
|
- certStream.close();
|
|
|
- password = AES.decrypt(bo.getPwd(),rsaPrivate);
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
+ //根据身份证查询账号
|
|
|
+ User user = getOne(new LambdaQueryWrapper<User>()
|
|
|
+ .eq(User::getIdCard, EncryptHandler.encrypt(bo.getUserCard())).eq(User::getStatus, 1).last("limit 1"));
|
|
|
+ if (ObjectUtils.isNull(user)){
|
|
|
+ //新增
|
|
|
+ //检测手机号是否重复
|
|
|
+ User user1 = getOne(new LambdaQueryWrapper<User>()
|
|
|
+ .eq(User::getTelphone, EncryptHandler.encrypt(bo.getUserPhone())).eq(User::getStatus, 1).last("limit 1"));
|
|
|
+ if (ObjectUtils.isNotNull(user1)){
|
|
|
+ //手机号码重复
|
|
|
+ bo.setUserPhone(TelPhoneUtils.createMobile());
|
|
|
}
|
|
|
- }else{
|
|
|
- password = bo.getPwd();
|
|
|
- }
|
|
|
-
|
|
|
- if (!SecurityUtils.matchesPassword(password,user.getPassword())) {
|
|
|
- iUserLoginErrorService.saveErrorLog(bo.getAccount());
|
|
|
- throw new CustomException("登录信息错误");
|
|
|
+ User inertData = new User();
|
|
|
+ inertData.setTelphone(bo.getUserPhone());
|
|
|
+ //隐藏手机号作为初始昵称
|
|
|
+ inertData.setNickname(TelPhoneUtils.hideTelPhone(bo.getUserPhone()));
|
|
|
+ //雪花算法产生账号ID
|
|
|
+ SnowflakeIdUtils idWorker = new SnowflakeIdUtils(3, 1);
|
|
|
+ inertData.setUserAccount(String.valueOf(idWorker.nextId()));
|
|
|
+ inertData.setSex(1);
|
|
|
+ inertData.setEduLevel("本科");
|
|
|
+ inertData.setSex(getGenderByIdCard(bo.getUserCard()));
|
|
|
+ inertData.setIdCard(bo.getUserCard());
|
|
|
+ inertData.setRealname(bo.getUserName());
|
|
|
+ inertData.setStatus(1);
|
|
|
+ inertData.setRegisterPlat("6");
|
|
|
+ inertData.setAvatar(Constants.DEFAULT_AVATAR);
|
|
|
+ inertData.setLastLoginIp(IpUtils.getIpAddr(ServletUtils.getRequest()));
|
|
|
+ inertData.setLastLoginTime(DateUtils.getNowTime());
|
|
|
+ inertData.setCreateTime(DateUtils.getNowTime());
|
|
|
+ inertData.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ String pwd = "";
|
|
|
+ if (ObjectUtils.isNotNull(bo.getUserCard())){
|
|
|
+ pwd = bo.getUserCard().substring(bo.getUserCard().length() - 6);
|
|
|
+ }else {
|
|
|
+ pwd = bo.getUserPhone().substring(bo.getUserPhone().length() - 6);
|
|
|
+ }
|
|
|
+ inertData.setPasswordAes(EncryptHandler.encrypt(pwd));
|
|
|
+ inertData.setPassword(SecurityUtils.encryptPassword(pwd));
|
|
|
+ if(!save(inertData)){
|
|
|
+ throw new CustomException("注册失败");
|
|
|
+ }
|
|
|
+ user = inertData;
|
|
|
}
|
|
|
|
|
|
//是否领取直播课程
|