ソースを参照

Merge remote-tracking branch 'origin/master'

yubin 1 週間 前
コミット
f151b940ab

+ 1 - 1
cif-service/src/main/java/com/txz/cif/configurer/LocalConfig.java

@@ -1,4 +1,4 @@
-//package com.medipath.cif.configurer;
+//package com.txz.cif.configurer;
 //
 //import org.springframework.context.annotation.Bean;
 //import org.springframework.context.annotation.Configuration;

+ 1 - 0
cif-service/src/main/java/com/txz/cif/core/ResultCode.java

@@ -36,6 +36,7 @@ public enum ResultCode {
     USER_IS_NULL("1003", "未找到用户"),
     UNLOGIN_PWD_ERROR("1004", "密码错误"),
     APPCODE_IS_NULL("1005", "应用编号不能为空"),
+    PARENT_USER_IS_NULL("1006", "邀请码错误"),
     STATUS_IS_NULL("1013", "状态异常"),
     ACCOUNT_IS_NULL("1051", "账号不能为空"),
     HOSPITAL_IS_NULL("1052", "医院不能为空"),

+ 123 - 118
cif-service/src/main/java/com/txz/cif/service/impl/UserServiceImpl.java

@@ -33,221 +33,226 @@ import java.util.List;
 @Service()
 @Transactional
 public class UserServiceImpl extends AbstractService<User> implements UserService {
-
+    
     private static Logger log = LoggerFactory.getLogger(UserServiceImpl.class);
-
+    
     @Resource
     private UserMapper userMapper;
-
-
+    
+    
     @Resource
     private RedisUtil redisClient;
-
+    
     @Resource
     private AccountService accountService;
-
-
-//    @Resource
-//    private OperatorService operatorService;
-
+    
+    
+    //    @Resource
+    //    private OperatorService operatorService;
+    
     @Resource
     private OperatingConfigDubboServiceClient messageDubboServiceClient;
-
-    @Override public Boolean checkMail(String email) {
-        User user = findBy("email",email);
-        if (user == null){
+    
+    @Override
+    public Boolean checkMail(String email) {
+        User user = findBy("email", email);
+        if (user == null) {
             return true;
         }
         return false;
     }
+    
     private String getKey(String email) {
         return String.format(RedisConstants.USER_SMS_CODE, email);
     }
-
+    
     @Override
     public Result<Object> sendCode(String phoneNo) {
         String key = getKey(phoneNo);
         String code = RandomUtil.randomNumbers(6);
         String subject = "来自Free City的CODE码";
         String content = "您的CODE为: " + code;
-        //TODO 发短信
-//        Result<Object> result = MailClient.send(email, subject, content, null);
-//        if (result.isSuccess()) {
-//            redisClient.set(key, code, 60);
-//        }
+        // TODO 发短信
+        //        Result<Object> result = MailClient.send(email, subject, content, null);
+        //        if (result.isSuccess()) {
+        //            redisClient.set(key, code, 60);
+        //        }
         redisClient.set(key, code, 60);
         return Result.success(code);
     }
-
+    
     @Override
     public Boolean checkCode(String phoneNo, String code) {
-        if (StrUtil.equals("888888",code)){
+        if (StrUtil.equals("888888", code)) {
             return true;
         }
-        log.error("checkCode  phoneNo:"+phoneNo);
-        log.error("checkCode  code:"+code);
+        log.error("checkCode  phoneNo:" + phoneNo);
+        log.error("checkCode  code:" + code);
         String key = getKey(phoneNo);
         Object o = redisClient.get(key);
-        if (o != null){
-            log.error("checkCode  o:"+o.toString());
+        if (o != null) {
+            log.error("checkCode  o:" + o.toString());
         }
-        if (o != null && StrUtil.equals(o.toString(),code)){
+        if (o != null && StrUtil.equals(o.toString(), code)) {
             return true;
         }
         return false;
     }
-
+    
     @Override
     public Result<Object> resetPwd(Long userId, String pwd, String newPwd) {
         User operator = findById(userId);
-        if (operator == null){
+        if (operator == null) {
             return ResultGenerator.genFailResult(ResultCode.USER_IS_NULL);
         }
-        if (!StrUtil.equals(SecureUtil.md5(pwd + operator.getSalt()),operator.getPwd())){
+        if (!StrUtil.equals(SecureUtil.md5(pwd + operator.getSalt()), operator.getPwd())) {
             return ResultGenerator.genFailResult(ResultCode.UNLOGIN_PWD_ERROR);
         }
         update(User.builder().id(operator.getId()).pwd(SecureUtil.md5(newPwd + operator.getSalt())).build());
         return Result.success();
     }
-
+    
     @Override
     public Boolean resetPhoneNo(Long userId, String phoneNo) {
-//        User user = findById(userId);
-//        Condition c = new Condition(Operator.class);
-//        c.createCriteria().andEqualTo("userId",userId)
-//                .andEqualTo("loginType",2);
-//        List<Operator> operators =  operatorService.findByCondition(c);
-//        if (CollUtil.isNotEmpty(operators)){
-//            operatorService.update(Operator.builder().id(operators.get(0).getId())
-//                    .loginAccount(phoneNo).build());
-//        }
-//        update(User.builder().id(user.getId()).phoneNo(phoneNo).build());
+        //        User user = findById(userId);
+        //        Condition c = new Condition(Operator.class);
+        //        c.createCriteria().andEqualTo("userId",userId)
+        //                .andEqualTo("loginType",2);
+        //        List<Operator> operators =  operatorService.findByCondition(c);
+        //        if (CollUtil.isNotEmpty(operators)){
+        //            operatorService.update(Operator.builder().id(operators.get(0).getId())
+        //                    .loginAccount(phoneNo).build());
+        //        }
+        //        update(User.builder().id(user.getId()).phoneNo(phoneNo).build());
         return true;
     }
-
+    
     @Override
     public Boolean resetLoginAccount(Long userId, String loginAccount) {
         User user = findById(userId);
-//        Condition c = new Condition(Operator.class);
-//        c.createCriteria().andEqualTo("userId",userId)
-//                .andEqualTo("loginType",1);
-//        List<Operator> operators =  operatorService.findByCondition(c);
-//        if (CollUtil.isNotEmpty(operators)){
-//            operatorService.update(Operator.builder().id(operators.get(0).getId())
-//                    .loginAccount(loginAccount).build());
-//        } else  {
-//            String salt = RandomUtil.randomString(4);
-//            String pwd = SecureUtil.md5("123456"+salt);
-//            Operator operator = Operator.builder().createUser(user.getCreateUser()).createTime(DateUtil.date())
-//                    .appCode(user.getAppCode()).userId(user.getId()).updateUser(user.getCreateUser())
-//                    .loginAccount(loginAccount)
-//                    .loginType(1).salt(salt).loginPassword(pwd).status(1).build();
-//            operatorService.save(operator);
-//        }
+        //        Condition c = new Condition(Operator.class);
+        //        c.createCriteria().andEqualTo("userId",userId)
+        //                .andEqualTo("loginType",1);
+        //        List<Operator> operators =  operatorService.findByCondition(c);
+        //        if (CollUtil.isNotEmpty(operators)){
+        //            operatorService.update(Operator.builder().id(operators.get(0).getId())
+        //                    .loginAccount(loginAccount).build());
+        //        } else  {
+        //            String salt = RandomUtil.randomString(4);
+        //            String pwd = SecureUtil.md5("123456"+salt);
+        //            Operator operator = Operator.builder().createUser(user.getCreateUser()).createTime(DateUtil.date())
+        //                    .appCode(user.getAppCode()).userId(user.getId()).updateUser(user.getCreateUser())
+        //                    .loginAccount(loginAccount)
+        //                    .loginType(1).salt(salt).loginPassword(pwd).status(1).build();
+        //            operatorService.save(operator);
+        //        }
         return true;
     }
-
-//    @Override
-//    public Boolean resetEmail(Long userId, String email) {
-//        update(User.builder().id(userId).email(email).build());
-//        return true;
-//    }
-
+    
+    //    @Override
+    //    public Boolean resetEmail(Long userId, String email) {
+    //        update(User.builder().id(userId).email(email).build());
+    //        return true;
+    //    }
+    
     @Override
-    public Long createUser(UserAddParam param, String userName,Integer type) {
+    public Long createUser(UserAddParam param, String userName, Integer type) {
         Date today = DateUtil.date();
-        User user = BeanUtil.toBean(param,User.class);
+        User user = BeanUtil.toBean(param, User.class);
         user.setCreateTime(today);
         user.setCreateUser(userName);
-        user.setStatus((byte)1);
+        user.setStatus((byte) 1);
         user.setVersion("1.0.1");
         String remark = "个人账户(负债类)";
-        String  aliases = "202";
+        String aliases = "202";
         String salt = RandomUtil.randomString(4);
-        String pwd = SecureUtil.md5(param.getPassword()+salt);
+        String pwd = SecureUtil.md5(param.getPassword() + salt);
         user.setSalt(salt);
         user.setPwd(pwd);
-        //创建资金账户
+        // 创建资金账户
         user.setLastLoginTime(DateUtil.date());
         saveUseGeneratedKeys(user);
-        Account account =  Account.builder().balance(BigDecimal.ZERO).beforeDayBalance(BigDecimal.ZERO)
+        Account account = Account.builder().balance(BigDecimal.ZERO).beforeDayBalance(BigDecimal.ZERO)
                 .aliases(aliases).subjectType(2).beforeDayInitBalance(BigDecimal.ZERO)
                 .userId(user.getId())
                 .beforeDayTime(today).createTime(today).freezeAmount(BigDecimal.ZERO).name(user.getName())
-                .remark(remark).type(1) .direction("C") .updateTime(today).totalInamount(BigDecimal.ZERO)
-                .totalOutAmount(BigDecimal.ZERO) .build();
+                .remark(remark).type(1).direction("C").updateTime(today).totalInamount(BigDecimal.ZERO)
+                .totalOutAmount(BigDecimal.ZERO).build();
         accountService.saveUseGeneratedKeys(account);
-
-       return user.getId();
+        
+        return user.getId();
     }
-
+    
     @Override
     public void add(User user) {
         saveUseGeneratedKeys(user);
         Date today = DateUtil.date();
         String remark = "个人账户(负债类)";
-        String  aliases = "202";
-        Account account =  Account.builder().balance(BigDecimal.ZERO).beforeDayBalance(BigDecimal.ZERO)
+        String aliases = "202";
+        Account account = Account.builder().balance(BigDecimal.ZERO).beforeDayBalance(BigDecimal.ZERO)
                 .aliases(aliases).subjectType(2).beforeDayInitBalance(BigDecimal.ZERO)
                 .userId(user.getId()).bizType(1)
                 .beforeDayTime(today).createTime(today).freezeAmount(BigDecimal.ZERO).name(user.getName())
-                .remark(remark).type(1) .direction("C") .totalInamount(BigDecimal.ZERO)
-                .totalOutAmount(BigDecimal.ZERO).updateTime(today) .totalInamount(BigDecimal.ZERO)
+                .remark(remark).type(1).direction("C").totalInamount(BigDecimal.ZERO)
+                .totalOutAmount(BigDecimal.ZERO).updateTime(today).totalInamount(BigDecimal.ZERO)
                 .totalOutAmount(BigDecimal.ZERO).build();
-        //钱包账户
+        // 钱包账户
         accountService.saveUseGeneratedKeys(account);
         account.setId(null);
         account.setBizType(2);
         accountService.saveUseGeneratedKeys(account);
     }
-
+    
     @Override
     public Result<Object> resetPwdByCode(String phoneNo, String verifyCode, String newPwd) {
-        User user = findBy("phoneNo",phoneNo);
-        if (user == null){
+        User user = findBy("phoneNo", phoneNo);
+        if (user == null) {
             return ResultGenerator.genFailResult(ResultCode.USER_IS_NULL);
         }
-        String key = getKey(user.getPhoneNo());
-        Object o = redisClient.get(key);
-        if (!StrUtil.equals(o.toString(),verifyCode)){
-            return ResultGenerator.genFailResult(ResultCode.CODE_CHECK_FAIL);
+        //fixme 暂时跳过短验
+        if (!verifyCode.equals("888888")) {
+            String key = getKey(user.getPhoneNo());
+            Object o = redisClient.get(key);
+            if (!StrUtil.equals(o.toString(), verifyCode)) {
+                return ResultGenerator.genFailResult(ResultCode.CODE_CHECK_FAIL);
+            }
         }
         update(User.builder().id(user.getId()).pwd(SecureUtil.md5(newPwd + user.getSalt())).build());
-
+        
         return Result.success();
     }
     
     @Override
     public List<UserDTO> getUsersByIds(List<Long> userIds) {
-       return userMapper.getUsersByIds(Joiner.on(",").join(userIds));
+        return userMapper.getUsersByIds(Joiner.on(",").join(userIds));
     }
     
     //    @Override
-//    public boolean sendMsg(MessageParam param) {
-//        if (param == null){
-//            return false;
-//        }
-//        if (param.getUserId() == null){
-//            log.info("[发送消息]失败,未传用户id");
-//            return false;
-//        }
-//        if (param.getBizType() == null){
-//            log.info("[发送消息]失败,业务类型为空");
-//            return false;
-//        }
-//        User user = findById(param.getUserId());
-//        if (user == null){
-//            log.info("[发送消息]失败,用户未找到");
-//            return false;
-//        }
-//        if (user.getLastLoginTime()!= null && DateUtil.between(user.getLastLoginTime(),DateUtil.date(), DateUnit.MINUTE)<=30
-//            && !MessageBizTypeEnum.getActiveByKey(param.getBizType())){
-//            log.info("[发送消息]未发送,用户处于活跃状态,不发送消息");
-//            return true;
-//        }
-//
-//        return false;
-//    }
-
-
+    //    public boolean sendMsg(MessageParam param) {
+    //        if (param == null){
+    //            return false;
+    //        }
+    //        if (param.getUserId() == null){
+    //            log.info("[发送消息]失败,未传用户id");
+    //            return false;
+    //        }
+    //        if (param.getBizType() == null){
+    //            log.info("[发送消息]失败,业务类型为空");
+    //            return false;
+    //        }
+    //        User user = findById(param.getUserId());
+    //        if (user == null){
+    //            log.info("[发送消息]失败,用户未找到");
+    //            return false;
+    //        }
+    //        if (user.getLastLoginTime()!= null && DateUtil.between(user.getLastLoginTime(),DateUtil.date(), DateUnit.MINUTE)<=30
+    //            && !MessageBizTypeEnum.getActiveByKey(param.getBizType())){
+    //            log.info("[发送消息]未发送,用户处于活跃状态,不发送消息");
+    //            return true;
+    //        }
+    //
+    //        return false;
+    //    }
+    
+    
 }

+ 80 - 74
cif-service/src/main/java/com/txz/cif/web/UserApiController.java

@@ -210,7 +210,7 @@ public class UserApiController extends AbstractApiController {
     @GetMapping("/memberConfigs")
     public Result<List<ConfigMember>> memberConfigs() {
         List<ConfigMember> result = configMemberService.findAll();
-        return ResultGenerator.genSuccessResult(result.stream().map(e -> e.setInvitedNo( e.getInvitedNo() - e.getHasInvitedNo())).collect(Collectors.toList()));
+        return ResultGenerator.genSuccessResult(result.stream().map(e -> e.setInvitedNo(e.getInvitedNo() - e.getHasInvitedNo())).collect(Collectors.toList()));
     }
     
     
@@ -244,7 +244,7 @@ public class UserApiController extends AbstractApiController {
         if (nextLevel == null) {
             bo.setNextInvitedNo(invited);
         } else {
-            bo.setNextInvitedNo( nextLevel.getInvitedNo() );
+            bo.setNextInvitedNo(nextLevel.getInvitedNo());
         }
         c = new Condition(User.class);
         c.createCriteria().andEqualTo("ppid", user.getId());
@@ -310,84 +310,90 @@ public class UserApiController extends AbstractApiController {
         if (StrUtil.isBlank(params.getPhone()) || StrUtil.isBlank(params.getAreaCode())) {
             return ResultGenerator.genFailResult(ResultCode.ACCOUNT_IS_NULL);
         }
-        Condition condition = new Condition(User.class);
-        condition.createCriteria().andEqualTo("phoneNo", params.getPhone())
-                .orEqualTo("name", params.getName());
-        ;
-        List<User> users = userService.findByCondition(condition);
-        if (CollUtil.isNotEmpty(users)) {
-            return ResultGenerator.genFailResult(ResultCode.USER_IS_EXIST);
-        }
-        if (!userService.checkCode(params.getPhone(), params.getVerifyCode())) {
-            return ResultGenerator.genFailResult(ResultCode.CODE_CHECK_FAIL);
-        }
-        String salt = RandomUtil.randomString(4);
-        String pwd2 = SecureUtil.md5(params.getPwd() + salt).toUpperCase();
-        log.error("[密码]" + params.getPhone() + " :" + pwd2);
-        
-        // String code = getInviteCode(0);
-        // if (code == null) {
-        //     return ResultGenerator.genFailResult(ResultCode.INTERNAL_SERVER_ERROR);
-        // }
-        // User parent = userService.findBy("userNo", params.getCode());
-        // String userNo = sequenceService.genSerialNumber("register_rule", null);
-        User user = User.builder()
-                .createTime(DateUtil.date())
-                // .invitedCode(code)
-                .name(params.getName())
-                .areaCode(params.getAreaCode())
-                // .userNo(userNo)
-                .isDelete((byte) 1)
-                .createUser("sys")
-                .status((byte) 1)
-                .hasLogin(1)
-                .hasOrder(1)
-                .hasWithdraw(1)
-                .phoneNo(params.getPhone())
-                .pwd(pwd2)
-                .salt(salt)
-                .build();
-        if (StrUtil.isNotBlank(params.getCode())) {
-            // User parent = userService.findBy("userNo", params.getCode());
-            // if (parent != null) {
-            user.setPid(ShareCodeUtils.codeToId(params.getCode()));
-            User puser = userService.findById(ShareCodeUtils.codeToId(params.getCode()));
-            if (ObjectUtil.isEmpty(puser)) {
-                throw new ServiceException(ResultCode.USER_IS_NULL);
+        try {
+            
+            Condition condition = new Condition(User.class);
+            condition.createCriteria().andEqualTo("phoneNo", params.getPhone())
+                    .orEqualTo("name", params.getName());
+            ;
+            List<User> users = userService.findByCondition(condition);
+            if (CollUtil.isNotEmpty(users)) {
+                return ResultGenerator.genFailResult(ResultCode.USER_IS_EXIST);
             }
-            if (puser.getPid() != null) {
-                user.setPpid(puser.getPid());
+            if (!userService.checkCode(params.getPhone(), params.getVerifyCode())) {
+                return ResultGenerator.genFailResult(ResultCode.CODE_CHECK_FAIL);
             }
+            String salt = RandomUtil.randomString(4);
+            String pwd2 = SecureUtil.md5(params.getPwd() + salt).toUpperCase();
+            log.error("[密码]" + params.getPhone() + " :" + pwd2);
             
-            //  更新VIP等级
-            Condition c = new Condition(User.class);
-            Example.Criteria criteria = c.createCriteria();
-            criteria.andEqualTo("pid", puser.getId());
-            Integer kidsNum = userService.countByCondition(c);
-            ConfigMember nextLevel = configMemberService.findBy("level", puser.getVipLevel() + 1);
-            if (nextLevel != null) {
-                if (nextLevel.getInvitedNo().compareTo(kidsNum + 1) <= 0) {
-                    userService.update(User.builder().id(puser.getId()).vipLevel(nextLevel.getLevel()).build());
+            // String code = getInviteCode(0);
+            // if (code == null) {
+            //     return ResultGenerator.genFailResult(ResultCode.INTERNAL_SERVER_ERROR);
+            // }
+            // User parent = userService.findBy("userNo", params.getCode());
+            // String userNo = sequenceService.genSerialNumber("register_rule", null);
+            User user = User.builder()
+                    .createTime(DateUtil.date())
+                    // .invitedCode(code)
+                    .name(params.getName())
+                    .areaCode(params.getAreaCode())
+                    // .userNo(userNo)
+                    .isDelete((byte) 1)
+                    .createUser("sys")
+                    .status((byte) 1)
+                    .hasLogin(1)
+                    .hasOrder(1)
+                    .hasWithdraw(1)
+                    .phoneNo(params.getPhone())
+                    .pwd(pwd2)
+                    .salt(salt)
+                    .build();
+            if (StrUtil.isNotBlank(params.getCode())) {
+                // User parent = userService.findBy("userNo", params.getCode());
+                // if (parent != null) {
+                user.setPid(ShareCodeUtils.codeToId(params.getCode()));
+                User puser = userService.findById(ShareCodeUtils.codeToId(params.getCode()));
+                if (ObjectUtil.isEmpty(puser)) {
+                    return ResultGenerator.genFailResult(ResultCode.PARENT_USER_IS_NULL);
+                }
+                if (puser.getPid() != null) {
+                    user.setPpid(puser.getPid());
+                }
+                
+                //  更新VIP等级
+                Condition c = new Condition(User.class);
+                Example.Criteria criteria = c.createCriteria();
+                criteria.andEqualTo("pid", puser.getId());
+                Integer kidsNum = userService.countByCondition(c);
+                ConfigMember nextLevel = configMemberService.findBy("level", puser.getVipLevel() + 1);
+                if (nextLevel != null) {
+                    if (nextLevel.getInvitedNo().compareTo(kidsNum + 1) <= 0) {
+                        userService.update(User.builder().id(puser.getId()).vipLevel(nextLevel.getLevel()).build());
+                    }
                 }
             }
+            if (StrUtil.isBlank(user.getHeadPic())) {
+                String zm = user.getName().substring(0, 1).toUpperCase();
+                Integer index = RandomUtil.randomInt(10);
+                com.txz.operating.result.Result<ConfigDTO> defaultAvatar = configDubboServiceClient.getConfigByCode("default_avatar");
+                String headPic = defaultAvatar.getData().getValueInfo() + zm + "/" + zm + "_gradient_" + index + ".png";
+                user.setHeadPic(headPic);
+            }
+            user.setVipLevel(0);
+            // 新增
+            userService.add(user);
+            user.setInvitedCode(ShareCodeUtils.idToInvitationCode(user.getId()));
+            // 补位
+            user.setUserNo(UserNoUtil.generateUserNo(user.getId()));
+            userService.update(user);
+            user.setPwd("***");
+            user.setSalt("***");
+            return ResultGenerator.genSuccessResult(user);
+        } catch (Exception e) {
+            log.error("注册异常", e);
+            return ResultGenerator.genFailResult(ResultCode.INTERNAL_SERVER_ERROR);
         }
-        if (StrUtil.isBlank(user.getHeadPic())) {
-            String zm = user.getName().substring(0, 1).toUpperCase();
-            Integer index = RandomUtil.randomInt(10);
-            com.txz.operating.result.Result<ConfigDTO> defaultAvatar = configDubboServiceClient.getConfigByCode("default_avatar");
-            String headPic = defaultAvatar.getData().getValueInfo() + zm + "/" + zm + "_gradient_" + index + ".png";
-            user.setHeadPic(headPic);
-        }
-        user.setVipLevel(0);
-        // 新增
-        userService.add(user);
-        user.setInvitedCode(ShareCodeUtils.idToInvitationCode(user.getId()));
-        // 补位
-        user.setUserNo(UserNoUtil.generateUserNo(user.getId()));
-        userService.update(user);
-        user.setPwd("***");
-        user.setSalt("***");
-        return ResultGenerator.genSuccessResult(user);
     }
     
     private String getInviteCode(int index) {