he2802 3 سال پیش
والد
کامیت
256996e8e2

+ 3 - 6
zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/UserController.java

@@ -4,10 +4,7 @@ import java.util.List;
 import java.util.Arrays;
 
 import com.zhongzheng.common.core.domain.entity.SysUser;
-import com.zhongzheng.modules.user.bo.UserAddBo;
-import com.zhongzheng.modules.user.bo.UserEditBo;
-import com.zhongzheng.modules.user.bo.UserQueryBo;
-import com.zhongzheng.modules.user.bo.UserStudyRecordQueryBo;
+import com.zhongzheng.modules.user.bo.*;
 import com.zhongzheng.modules.user.service.IUserService;
 import com.zhongzheng.modules.user.vo.UserStudyRecordVo;
 import com.zhongzheng.modules.user.vo.UserVo;
@@ -87,8 +84,8 @@ public class UserController extends BaseController {
     @PreAuthorize("@ss.hasPermi('app:user:add')")
     @Log(title = "客户端用户", businessType = BusinessType.INSERT)
     @PostMapping()
-    public AjaxResult<Void> add(@RequestBody UserAddBo bo) {
-        return toAjax(iUserService.insertByAddBo(bo) ? 1 : 0);
+    public AjaxResult<Long> add(@RequestBody UserSystemRegisterBo bo) {
+        return AjaxResult.success(iUserService.systemRegisterUser(bo));
     }
 
     /**

+ 1 - 0
zhongzheng-admin/src/main/resources/application.yml

@@ -264,5 +264,6 @@ aliyun:
     registerTemplateCode: SMS_228670004
     loginTemplateCode: SMS_228670005
     forgetTemplateCode: SMS_228685033
+    pwdTemplateCode: SMS_230220381
     accessKeyId: LTAIgC8O2WUXvXuR
     accessKeySecret: 1yyCazuT1M6MruBXzgFjP0p9gdMlwX

+ 56 - 2
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/UserServiceImpl.java

@@ -17,6 +17,7 @@ import com.zhongzheng.common.exception.BaseException;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.*;
 import com.zhongzheng.common.utils.ip.IpUtils;
+import com.zhongzheng.modules.alisms.service.IAliSmsService;
 import com.zhongzheng.modules.collect.domain.CollectBank;
 import com.zhongzheng.modules.collect.domain.CollectCourse;
 import com.zhongzheng.modules.collect.domain.CollectNote;
@@ -77,7 +78,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
     @Autowired
     private IUserService userService;
 
-
+    @Autowired
+    private IAliSmsService iSmsService;
 
     @Autowired
     private UserMapper userMapper;
@@ -227,7 +229,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
     @Transactional(rollbackFor = Exception.class)
     public Boolean updateByEditBo(UserEditBo bo) throws IllegalAccessException {
         User update = BeanUtil.toBean(bo, User.class);
-        validEntityBeforeSave(update);
+        validEntityBeforeUpdate(update);
         update.setUpdateTime(DateUtils.getNowTime());
 
         //增加客户端信息进行添加积分
@@ -253,6 +255,11 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
      */
     private void validEntityBeforeSave(User entity) {
         //TODO 做一些数据校验,如唯一约束
+
+    }
+
+    private void validEntityBeforeUpdate(User entity) {
+        //TODO 做一些数据校验,如唯一约束
     }
 
     public Integer  countUser(UserEditBo userVo) throws IllegalAccessException {
@@ -417,6 +424,53 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
         return baseMapper.selectLookNum(userId);
     }
 
+    @Override
+    public Long systemRegisterUser(UserSystemRegisterBo bo) {
+        if(bo.getTel()==null){
+            throw new CustomException("手机号不能为空");
+        }
+        if(bo.getIdCard()==null){
+            throw new CustomException("身份证不能为空");
+        }
+        if(bo.getRealname()==null){
+            throw new CustomException("真实姓名不能为空");
+        }
+        User user = getOne(new LambdaQueryWrapper<User>()
+                .eq(User::getTelphone,bo.getTel()).last("limit 1"));
+        if(Validator.isNotNull(user)){
+            throw new CustomException("该手机号已注册");
+        }
+        User user2 = getOne(new LambdaQueryWrapper<User>()
+                .eq(User::getIdCard,bo.getIdCard()).last("limit 1"));
+        if(Validator.isNotNull(user2)){
+            throw new CustomException("该身份证已被使用");
+        }
+        User inertData = new User();
+        inertData.setTelphone(bo.getTel());
+        //隐藏手机号作为初始昵称
+        inertData.setNickname(TelPhoneUtils.hideTelPhone(bo.getTel()));
+        //雪花算法产生账号ID
+        SnowflakeIdUtils idWorker = new SnowflakeIdUtils(3, 1);
+        inertData.setUserAccount(String.valueOf(idWorker.nextId()));
+        inertData.setSex(1);
+        inertData.setIdCard(bo.getIdCard());
+        inertData.setRealname(bo.getRealname());
+        inertData.setStatus(1);
+        inertData.setRegisterPlat("3");
+        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 =  ToolsUtils.getSmsCode(); // 随机密码
+        inertData.setPassword(SecurityUtils.encryptPassword(pwd));
+        if(!save(inertData)){
+            throw new CustomException("注册失败");
+        }
+        iSmsService.sendPwdSms(bo.getTel(),pwd);
+        return inertData.getUserId();
+    }
+
     @Override
     public Boolean registerUser(UserAppRegisterBo bo) {
         if(bo.getTel()==null){

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/alisms/service/IAliSmsService.java

@@ -13,4 +13,6 @@ public interface IAliSmsService {
     Boolean sendForgetSms(String tel);
 
     Boolean sendLoginSms(String tel);
+
+    Boolean sendPwdSms(String tel,String code);
 }

+ 23 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/alisms/service/impl/AliSmsServiceImpl.java

@@ -45,6 +45,8 @@ public class AliSmsServiceImpl implements IAliSmsService {
     private String LOGINTEMPLATECODE;
     @Value("${aliyun.sms.forgetTemplateCode}")
     private String FORGETTEMPLATECODE;
+    @Value("${aliyun.sms.pwdTemplateCode}")
+    private String PWDTEMPLATECODE;
 
     @Autowired
     private IUserService iUserService;
@@ -164,4 +166,25 @@ public class AliSmsServiceImpl implements IAliSmsService {
         }
         return false;
     }
+
+    @Override
+    public Boolean sendPwdSms(String tel,String code) {
+        try{
+            Map<String,Object> param = new HashMap<>();
+            param.put("code",code);
+            SmsAddBo smsAddBo = new SmsAddBo();
+            smsAddBo.setCode(code);
+            smsAddBo.setTel(tel);
+            smsAddBo.setType(4L);
+            smsAddBo.setIp(IpUtils.getIpAddr(ServletUtils.getRequest()));
+            iSmsService.insertByAddBo(smsAddBo);
+            SendSmsResponse response = SmsUtils.sendSms(tel,SIGNNAME,PWDTEMPLATECODE, JSON.toJSONString(param),ACCESSKEYID,ACCESSKEYSECRET);
+            if(response.getBody().getMessage().equals("OK")){
+                return true;
+            }
+        }catch (Exception e){
+            throw new CustomException(e.getMessage());
+        }
+        return false;
+    }
 }

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/bo/SmsAddBo.java

@@ -25,7 +25,7 @@ public class SmsAddBo {
     @ApiModelProperty("验证码")
     private String code;
     /** 业务短信类型 1注册 2忘记 3登录 */
-    @ApiModelProperty("业务短信类型 1注册 2忘记 3登录")
+    @ApiModelProperty("业务短信类型 1注册 2忘记 3登录  4随机密码")
     private Long type;
     /** 创建时间 */
     @ApiModelProperty("创建时间")

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/bo/SmsEditBo.java

@@ -30,7 +30,7 @@ public class SmsEditBo {
     private String code;
 
     /** 业务短信类型 1注册 2忘记 3登录 */
-    @ApiModelProperty("业务短信类型 1注册 2忘记 3登录")
+    @ApiModelProperty("业务短信类型 1注册 2忘记 3登录  4随机密码")
     private Long type;
 
     /** 修改时间 */

+ 26 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserSystemRegisterBo.java

@@ -0,0 +1,26 @@
+package com.zhongzheng.modules.user.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * 客户端用户编辑对象 user
+ *
+ * @author hjl
+ * @date 2021-06-08
+ */
+@Data
+@ApiModel("后台系统用户注册对象")
+public class UserSystemRegisterBo {
+    @ApiModelProperty("手机号")
+    private String tel;
+    /** 身份证号 */
+    @ApiModelProperty("身份证号")
+    private String idCard;
+    /** 真实姓名 */
+    @ApiModelProperty("真实姓名")
+    private String realname;
+
+}

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserService.java

@@ -75,6 +75,8 @@ public interface IUserService extends IService<User> {
 
     Integer getLookNum(Long userId);
 
+	Long systemRegisterUser(UserSystemRegisterBo bo);
+
 	Boolean registerUser(UserAppRegisterBo bo);
 
 	Boolean forgetUser(UserAppForgetBo bo);