Quellcode durchsuchen

sms修改,报名接口

wwl vor 4 Jahren
Ursprung
Commit
353e1aa0e7
19 geänderte Dateien mit 811 neuen und 56 gelöschten Zeilen
  1. 47 0
      hzgzpt-admin/src/main/java/com/miaxis/app/controller/user/UserInfoController.java
  2. 11 2
      hzgzpt-common/src/main/java/com/miaxis/common/constant/Constants.java
  3. 7 2
      hzgzpt-common/src/main/java/com/miaxis/common/constant/SmsTemplateConstants.java
  4. 1 0
      hzgzpt-framework/src/main/java/com/miaxis/framework/security/filter/JwtAuthenticationTokenFilter.java
  5. 4 3
      hzgzpt-service-app/src/main/java/com/miaxis/app/sms/ISmsService.java
  6. 25 45
      hzgzpt-service-app/src/main/java/com/miaxis/app/sms/impl/SmsServiceImpl.java
  7. 53 0
      hzgzpt-service-app/src/main/java/com/miaxis/app/user/domain/UserImages.java
  8. 2 2
      hzgzpt-service-app/src/main/java/com/miaxis/app/user/domain/UserInfo.java
  9. 58 0
      hzgzpt-service-app/src/main/java/com/miaxis/app/user/domain/UserRegister.java
  10. 73 0
      hzgzpt-service-app/src/main/java/com/miaxis/app/user/domain/dto/UserDto.java
  11. 15 0
      hzgzpt-service-app/src/main/java/com/miaxis/app/user/mapper/UserImagesMapper.java
  12. 63 0
      hzgzpt-service-app/src/main/java/com/miaxis/app/user/mapper/UserRegisterMapper.java
  13. 15 0
      hzgzpt-service-app/src/main/java/com/miaxis/app/user/service/IUserImagesService.java
  14. 25 0
      hzgzpt-service-app/src/main/java/com/miaxis/app/user/service/IUserInfoService.java
  15. 63 0
      hzgzpt-service-app/src/main/java/com/miaxis/app/user/service/IUserRegisterService.java
  16. 22 0
      hzgzpt-service-app/src/main/java/com/miaxis/app/user/service/impl/UserImagesServiceImpl.java
  17. 145 2
      hzgzpt-service-app/src/main/java/com/miaxis/app/user/service/impl/UserInfoServiceImpl.java
  18. 95 0
      hzgzpt-service-app/src/main/java/com/miaxis/app/user/service/impl/UserRegisterServiceImpl.java
  19. 87 0
      hzgzpt-service-app/src/main/resources/mapper/user/UserRegisterMapper.xml

+ 47 - 0
hzgzpt-admin/src/main/java/com/miaxis/app/controller/user/UserInfoController.java

@@ -10,6 +10,7 @@ import com.miaxis.common.constant.Constants;
 import com.miaxis.common.core.controller.BaseController;
 import com.miaxis.common.core.domain.Response;
 import com.miaxis.common.core.domain.entity.SysUser;
+import com.miaxis.common.core.domain.model.LoginUser;
 import com.miaxis.common.core.page.ResponsePageInfo;
 import com.miaxis.common.enums.BusinessTypeEnum;
 import com.miaxis.common.utils.SecurityUtils;
@@ -147,6 +148,52 @@ public class UserInfoController extends BaseController{
         return Response.success();
     }
 
+    /**
+     * 保存用户报名信息
+     * uploadIdCardAndHeadPicture
+     */
+    @Log(title = "用户信息", businessType = BusinessTypeEnum.INSERT)
+    @PostMapping("/saveUserInformation")
+    @ApiOperation("保存用户报名信息")
+    public Response saveUserInformation(UserDto userDto) {
+        try {
+            return userInfoService.saveUserInformation(userDto);
+        }catch (Exception e){
+            return Response.error();
+        }
+    }
+
+    /**
+     * 注册报名获取短信验证码
+     * @return
+     */
+    @ApiOperation("注册报名获取短信验证码")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "type",value = "login:用户登录验证码、modify:修改手机验证码、signUp:注册报名验证码" ,dataType = "String",required = true),
+            @ApiImplicitParam(name = "phone", value = "手机号码", required = true, dataType = "String")
+    })
+    @PostMapping(value = "/sendSignUpVerificationCode")
+    public Response sendSignUpVerificationCode(String type,String phone){
+
+        return userInfoService.sendSignUpVerificationCode(type,phone);
+    }
+
+    /**
+     * 修改手机号获取短信验证码
+     * @return
+     */
+    @ApiOperation("修改手机号获取短信验证码")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "type",value = "login:用户登录验证码、modify:修改手机验证码、signUp:注册报名验证码" ,dataType = "String",required = true),
+            @ApiImplicitParam(name = "phone", value = "手机号码", required = true, dataType = "String")
+    })
+    @PostMapping(value = "/sendVerificationCode")
+    public Response sendVerificationCode(String type,String phone){
+        //获取当前用户
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+
+        return userInfoService.sendModifyVerificationCode(user,type,phone);
+    }
 
 
     /**

+ 11 - 2
hzgzpt-common/src/main/java/com/miaxis/common/constant/Constants.java

@@ -69,11 +69,20 @@ public class Constants
     /**
      * 登录短信验证码 redis key
      */
-    public static final String SMS_LOGIN_CODE = "sms;login;code:";
+    public static final String SMS_LOGIN_CODE = "sms:login:code:";
     /**
      * 登录短信验证码次数 redis key
      */
-    public static final String SMS_LOGIN_CODE_COUNT = "sms;login;code:count:";
+    public static final String SMS_LOGIN_CODE_COUNT = "sms:login:code:count:";
+
+    /**
+     * 报名手机号验证码 redis key
+     */
+    public static final String SMS_SIGNUP_CODE = "sms:signUp:code:";
+    /**
+     * 报名手机号验证码次数 redis key
+     */
+    public static final String SMS_SIGNUP_CODE_COUNT = "sms:signUp:code:count:";
 
     /**
      * 登录用户 redis key

+ 7 - 2
hzgzpt-common/src/main/java/com/miaxis/common/constant/SmsTemplateConstants.java

@@ -12,7 +12,7 @@ public class SmsTemplateConstants {
     /**
      * 短信模板类型(可拓展)
      */
-    public static final String[] smsTemplateType = {"login","modify"};
+    public static final String[] smsTemplateType = {"login","modify","signUp"};
 
     /**
      * 登录短信模板
@@ -22,7 +22,12 @@ public class SmsTemplateConstants {
     /**
      * 修改手机号短信模板
      */
-    public static final String modify = "本次验证码:code,验证码两分钟内有效";
+    public static final String modify = "修改手机号验证码:code,验证码两分钟内有效";
+
+    /**
+     * 注册报名短信模板
+     */
+    public static final String signUp = "报名手机验证码:code,验证码两分钟内有效";
 
 
 }

+ 1 - 0
hzgzpt-framework/src/main/java/com/miaxis/framework/security/filter/JwtAuthenticationTokenFilter.java

@@ -40,6 +40,7 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter
             authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
             SecurityContextHolder.getContext().setAuthentication(authenticationToken);
         }
+        //将请求转发给过滤器链下一个filter
         chain.doFilter(request, response);
     }
 }

+ 4 - 3
hzgzpt-service-app/src/main/java/com/miaxis/app/sms/ISmsService.java

@@ -3,6 +3,8 @@ package com.miaxis.app.sms;
 import com.miaxis.common.core.domain.Response;
 import com.miaxis.common.core.domain.entity.SysUser;
 
+import java.util.Map;
+
 /**
  * 短信服务层接口
  * @Author wwl
@@ -13,9 +15,8 @@ public interface ISmsService {
 
     /**
      * 发送短信验证码
-     * @param type
-     * @param phone
+     * @param map
      * @return
      */
-    Response sendVerificationCode(String type, String phone);
+    Response sendVerificationCode(Map map);
 }

+ 25 - 45
hzgzpt-service-app/src/main/java/com/miaxis/app/sms/impl/SmsServiceImpl.java

@@ -44,59 +44,37 @@ public class SmsServiceImpl implements ISmsService {
 
     /**
      * 发送短信验证码
-     * @param type
-     * @param phone
+     * @param map
      * @return
      */
     @Override
-    public Response sendVerificationCode(String type, String phone) {
+    public Response sendVerificationCode(Map map) {
         //字符编码
         String charset = "UTF-8";
 
         //type验证
         List<String> collect = Arrays.stream(SmsTemplateConstants.smsTemplateType)
                 .parallel()
-                .filter(str -> str.equals(type))
+                .filter(str -> str.equals(map.get("type")))
                 .collect(Collectors.toList());
         if (collect.size()==0){
             return Response.error(500,"参数{type}类型错误");
         }
 
-
         //手机号格式验证
-        if(phone.length() != 11){
+        if(map.get("phone").toString().length() != 11){
             return Response.error(500,"手机格式错误");
         } else {
             Pattern pattern = Pattern.compile(MOBILE_REGEX);
-            Matcher matcher = pattern.matcher(phone);
+            Matcher matcher = pattern.matcher(map.get("phone").toString());
             if(!matcher.matches()) {
                 return Response.error(500,"手机号格式错误");
             }
         }
         try{
 
-            //短信模板
-            String smsTemplateStr = "";
-
-            /**
-             * login:登录验证  modify;修改验证
-             * keyPrefix : 缓存key前缀
-             * verificationCount : 验证次数
-             */
-            Map<String, String> map = new HashMap<>();
-            if (type.equals("login")){
-                map.put("keyPrefix", Constants.SMS_LOGIN_CODE);
-                map.put("verificationCount",Constants.SMS_LOGIN_CODE_COUNT);
-                smsTemplateStr = SmsTemplateConstants.login;
-            }
-            if (type.equals("modify")){
-                map.put("keyPrefix",Constants.SMS_MODIFY_CODE);
-                map.put("verificationCount",Constants.SMS_MODIFY_CODE_COUNT);
-                smsTemplateStr = SmsTemplateConstants.modify;
-            }
-
             //验证手机号
-            Response resultJson = validateMobile(phone,map);
+            Response resultJson = validateMobile(map);
             if("500".equals(resultJson.getCode().toString())) {
                 return resultJson;
             }
@@ -106,13 +84,13 @@ public class SmsServiceImpl implements ISmsService {
             for (int i=0;i<6;i++){
                 code += new Random().nextInt(10);
             }
-            String content = smsTemplateStr.replace("code",code);
+            String content = map.get("smsTemplateConstants").toString().replace("code",code);
 
             // 调用发送接口
             Client client = new Client(smsUserName, smsPassword);
             String content1 = URLEncoder.encode(content, charset);
             String ecodeContent = URLEncoder.encode(content1, charset);
-            String result = client.mtData(ecodeContent, phone, "", "", "", charset);
+            String result = client.mtData(ecodeContent, map.get("phone").toString(), "", "", "", charset);
             String strCode = result.split("\n")[0];
             long codenum = 0;
             codenum = Long.valueOf(strCode);
@@ -120,7 +98,7 @@ public class SmsServiceImpl implements ISmsService {
             if (codenum > 0) {//成功提交
                 Info = "发送成功";
                 // 写入缓存中
-                writeCache(phone, code,map);
+                writeCache(code,map);
                 return Response.success(Info);
 
             } else if (codenum == 0) {
@@ -159,19 +137,21 @@ public class SmsServiceImpl implements ISmsService {
 
     /**
      * 手机号验证
-     * @param mobile
+     * keyPrefix : 缓存key前缀
+     * verificationCount : 验证次数
+     * @param map
      * @return
      */
-    private Response validateMobile(final String mobile,Map map){
+    private Response validateMobile(Map map){
 
-        if(redisTemplate.hasKey(map.get("verificationCount") + mobile)){
+        if(redisTemplate.hasKey(map.get("verificationCount") + map.get("phone").toString())){
             // 验证发送时间
-            if (redisTemplate.hasKey(map.get("keyPrefix") + mobile)){
+            if (redisTemplate.hasKey(map.get("keyPrefix") + map.get("phone").toString())){
                 return Response.error(500,"验证码还未过期,不能重新发送!");
             }
 
             // 验证发送次数
-            Integer count = Integer.valueOf(redisTemplate.opsForValue().get(map.get("verificationCount") + mobile).toString());
+            Integer count = Integer.valueOf(redisTemplate.opsForValue().get(map.get("verificationCount") + map.get("phone").toString()).toString());
             if(count >= MAX_COUNT) {
                 return Response.error(500,"当前手机号发送验证码次数过多!");
             }
@@ -182,31 +162,31 @@ public class SmsServiceImpl implements ISmsService {
 
     /**
      * 写入缓存
-     * @param mobile
+     * @param map
      * @param code
      */
-    private void writeCache(String mobile, String code,Map map){
+    private void writeCache(String code,Map map){
 
         //该手机号首次获取验证码
-        if(!redisTemplate.hasKey(map.get("keyPrefix") + mobile) && !redisTemplate.hasKey(map.get("verificationCount") + mobile)){
+        if(!redisTemplate.hasKey(map.get("keyPrefix") + map.get("phone").toString()) && !redisTemplate.hasKey(map.get("verificationCount") + map.get("phone").toString())){
             synchronized(this){
                 //设置该手机号验证码 两分钟过期
-                redisTemplate.opsForValue().set(map.get("keyPrefix") + mobile , code, SEND_INTERVAL, TimeUnit.MINUTES);
+                redisTemplate.opsForValue().set(map.get("keyPrefix") + map.get("phone").toString() , code, SEND_INTERVAL, TimeUnit.MINUTES);
                 //设置该手机号验证次数 一天过期
-                redisTemplate.opsForValue().set(map.get("verificationCount") + mobile , "1",1,TimeUnit.DAYS);
+                redisTemplate.opsForValue().set(map.get("verificationCount") + map.get("phone").toString() , "1",1,TimeUnit.DAYS);
             }
         }
 
         //多次获取验证码
-        if (redisTemplate.hasKey(map.get("verificationCount") + mobile) && !redisTemplate.hasKey(map.get("keyPrefix") + mobile)){
+        if (redisTemplate.hasKey(map.get("verificationCount") + map.get("phone").toString()) && !redisTemplate.hasKey(map.get("keyPrefix") + map.get("phone").toString())){
             //判断该手机验证次数
-            Integer count = Integer.valueOf(redisTemplate.opsForValue().get(map.get("verificationCount") + mobile).toString());
+            Integer count = Integer.valueOf(redisTemplate.opsForValue().get(map.get("verificationCount") + map.get("phone").toString()).toString());
             if (count < MAX_COUNT){
                 synchronized(this){
                     //该手机号验证次数+1 一天过期
-                    redisTemplate.opsForValue().set(map.get("verificationCount") + mobile,String.valueOf(count+1),1,TimeUnit.DAYS);
+                    redisTemplate.opsForValue().set(map.get("verificationCount") + map.get("phone").toString(),String.valueOf(count+1),1,TimeUnit.DAYS);
                     //设置该手机号验证码 两分钟过期
-                    redisTemplate.opsForValue().set(map.get("keyPrefix") + mobile , code, SEND_INTERVAL, TimeUnit.MINUTES);
+                    redisTemplate.opsForValue().set(map.get("keyPrefix") + map.get("phone").toString() , code, SEND_INTERVAL, TimeUnit.MINUTES);
                 }
             }
         }

+ 53 - 0
hzgzpt-service-app/src/main/java/com/miaxis/app/user/domain/UserImages.java

@@ -0,0 +1,53 @@
+package com.miaxis.app.user.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.miaxis.common.annotation.Excel;
+import com.miaxis.common.core.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+/**
+ * 用户照片对象 user_images
+ *
+ * @author miaxis
+ * @date 2020-12-25
+ */
+@Data
+@TableName("user_images")
+@ApiModel(value = "UserImages", description = "用户照片对象 user_images")
+public class UserImages extends BaseBusinessEntity {
+    private static final long serialVersionUID = 1L;
+
+    /** 照片id */
+    @TableId(value = "id")
+    @ApiModelProperty(value = "照片id")
+    private Long id;
+
+    /** 用户表id */
+    @Excel(name = "用户表id")
+    @TableField("user_id")
+    @ApiModelProperty(value = "用户表id")
+    private Long userId;
+
+    /** 照片url(访问地址) */
+    @Excel(name = "照片url(访问地址)")
+    @TableField("file_url")
+    @ApiModelProperty(value = "照片url(访问地址)")
+    private String fileUrl;
+
+    /** 文件路径 */
+    @Excel(name = "文件路径")
+    @TableField("file_path")
+    @ApiModelProperty(value = "文件路径")
+    private String filePath;
+
+    /** 1:身份证正面 2:身份证反面 3:人脸比对模板(采集人像图) */
+    @Excel(name = "1:身份证正面 2:身份证反面 3:人脸比对模板(采集人像图)")
+    @TableField("image_type")
+    @ApiModelProperty(value = "1:身份证正面 2:身份证反面 3:人脸比对模板(采集人像图)")
+    private Long imageType;
+
+
+}

+ 2 - 2
hzgzpt-service-app/src/main/java/com/miaxis/app/user/domain/UserInfo.java

@@ -49,7 +49,7 @@ public class UserInfo extends BaseBusinessEntity {
 
     /** 身份证明号码 */
     @Excel(name = "身份证明号码")
-    @TableField("id_card")
+    @TableField(value ="id_card")
     @ApiModelProperty(value = "身份证明号码")
     private String idCard;
 
@@ -99,7 +99,7 @@ public class UserInfo extends BaseBusinessEntity {
 
     /** 驾校班型Id */
     @Excel(name = "驾校班型Id")
-    @TableField("school_class_type_id")
+    @TableField(value ="school_class_type_id")
     @ApiModelProperty(value = "驾校班型Id")
     private Long schoolClassTypeId;
 

+ 58 - 0
hzgzpt-service-app/src/main/java/com/miaxis/app/user/domain/UserRegister.java

@@ -0,0 +1,58 @@
+package com.miaxis.app.user.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.miaxis.common.annotation.Excel;
+import com.miaxis.common.core.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+/**
+ * 用户报名信息对象 user_register
+ *
+ * @author miaxis
+ * @date 2020-12-25
+ */
+@Data
+@TableName("user_register")
+@ApiModel(value = "UserRegister", description = "用户报名信息对象 user_register")
+public class UserRegister extends BaseBusinessEntity {
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @TableId(value = "id")
+    @ApiModelProperty(value = "$column.columnComment")
+    private Long id;
+
+    /** 用户id(user_info表id) */
+    @Excel(name = "用户id(user_info表id)")
+    @TableField("user_id")
+    @ApiModelProperty(value = "用户id(user_info表id)")
+    private Long userId;
+
+    /** 报名驾校 */
+    @Excel(name = "报名驾校")
+    @TableField("inscode")
+    @ApiModelProperty(value = "报名驾校")
+    private String inscode;
+
+    /** 报名车型 */
+    @Excel(name = "报名车型")
+    @TableField("bmcx")
+    @ApiModelProperty(value = "报名车型")
+    private String bmcx;
+
+    /** 教练全国统一编号 */
+    @Excel(name = "教练全国统一编号")
+    @TableField("coachnum")
+    @ApiModelProperty(value = "教练全国统一编号")
+    private String coachnum;
+
+    /** 报名班类id */
+    @Excel(name = "报名班类id")
+    @TableField("class_id")
+    @ApiModelProperty(value = "报名班类id")
+    private Long classId;
+
+}

+ 73 - 0
hzgzpt-service-app/src/main/java/com/miaxis/app/user/domain/dto/UserDto.java

@@ -0,0 +1,73 @@
+package com.miaxis.app.user.domain.dto;
+
+import com.miaxis.common.core.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @Author wwl
+ * @Date 2020/12/24
+ * @Version 1.0
+ */
+@Data
+public class UserDto extends BaseBusinessEntity {
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "性别")
+    private Long sex;
+
+    @ApiModelProperty(value = "身份证明号码 1:身份证号,2:警官证,3:军官证,4:护照等")
+    private Long sfzmlx;
+
+    @ApiModelProperty(value = "身份证明号码")
+    private String idCard;
+
+    @ApiModelProperty(value = "出生日期")
+    private Date birthday;
+
+    @ApiModelProperty(value = "手机号码")
+    private String mobile;
+
+    @ApiModelProperty(value = "登录密码 MD5加密")
+    private String password;
+
+    @ApiModelProperty(value = "微信号码")
+    private String wechar;
+
+    @ApiModelProperty(value = "微信openid")
+    private String openid;
+
+    @ApiModelProperty(value = "驾校全国统一编号")
+    private String inscode;
+
+    @ApiModelProperty(value = "培训车型")
+    private String pxcx;
+
+    @ApiModelProperty(value = "驾校班型Id")
+    private Long schoolClassTypeId;
+
+    @ApiModelProperty(value = "教练全国统一编号")
+    private String coachnum;
+
+    @ApiModelProperty(value = "身份证正面图片地址")
+    private String idCardFrontUrl;
+    @ApiModelProperty(value = "身份证正面图片路径")
+    private String idCardFrontPath;
+
+    @ApiModelProperty(value = "身份证反面图片地址")
+    private String idCardReverseUrl;
+    @ApiModelProperty(value = "身份证反面图片路径")
+    private String idCardReversePath;
+
+    @ApiModelProperty(value = "人像图片地址")
+    private String facesUrl;
+    @ApiModelProperty(value = "人像图片路径")
+    private String facesPath;
+
+    @ApiModelProperty(value = "短信验证码")
+    private String verificationCode;
+}

+ 15 - 0
hzgzpt-service-app/src/main/java/com/miaxis/app/user/mapper/UserImagesMapper.java

@@ -0,0 +1,15 @@
+package com.miaxis.app.user.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.miaxis.app.user.domain.UserImages;
+
+/**
+ * 用户照片Mapper接口
+ *
+ * @author miaxis
+ * @date 2020-12-25
+ */
+public interface UserImagesMapper extends BaseMapper<UserImages> {
+
+}

+ 63 - 0
hzgzpt-service-app/src/main/java/com/miaxis/app/user/mapper/UserRegisterMapper.java

@@ -0,0 +1,63 @@
+package com.miaxis.app.user.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.miaxis.app.user.domain.UserRegister;
+
+import java.util.List;
+
+/**
+ * 用户报名信息Mapper接口
+ *
+ * @author miaxis
+ * @date 2020-12-25
+ */
+public interface UserRegisterMapper extends BaseMapper<UserRegister> {
+    /**
+     * 查询用户报名信息
+     *
+     * @param id 用户报名信息ID
+     * @return 用户报名信息
+     */
+    public UserRegister selectUserRegisterById(Long id);
+
+    /**
+     * 查询用户报名信息列表
+     *
+     * @param userRegister 用户报名信息
+     * @return 用户报名信息集合
+     */
+    public List<UserRegister> selectUserRegisterList(UserRegister userRegister);
+
+    /**
+     * 新增用户报名信息
+     *
+     * @param userRegister 用户报名信息
+     * @return 结果
+     */
+    public int insertUserRegister(UserRegister userRegister);
+
+    /**
+     * 修改用户报名信息
+     *
+     * @param userRegister 用户报名信息
+     * @return 结果
+     */
+    public int updateUserRegister(UserRegister userRegister);
+
+    /**
+     * 删除用户报名信息
+     *
+     * @param id 用户报名信息ID
+     * @return 结果
+     */
+    public int deleteUserRegisterById(Long id);
+
+    /**
+     * 批量删除用户报名信息
+     *
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteUserRegisterByIds(Long[] ids);
+}

+ 15 - 0
hzgzpt-service-app/src/main/java/com/miaxis/app/user/service/IUserImagesService.java

@@ -0,0 +1,15 @@
+package com.miaxis.app.user.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.miaxis.app.user.domain.UserImages;
+
+/**
+ * 用户照片Service接口
+ * 
+ * @author miaxis
+ * @date 2020-12-25
+ */
+public interface IUserImagesService extends IService<UserImages> {
+
+}

+ 25 - 0
hzgzpt-service-app/src/main/java/com/miaxis/app/user/service/IUserInfoService.java

@@ -70,4 +70,29 @@ public interface IUserInfoService extends IService<UserInfo>{
      */
     Response modifyPhoneNumber(String phone, String verificationCode,SysUser user);
 
+    /**
+     * 保存用户报名信息
+     * @param userDto
+     * @return
+     */
+    Response saveUserInformation(UserDto userDto);
+
+    /**
+     * 注册报名获取短信验证码
+     * @param type
+     * @param phone
+     * @return
+     */
+    Response sendSignUpVerificationCode(String type, String phone);
+
+    /**
+     * 修改手机号获取短信验证码
+     * @param user
+     * @param type
+     * @param phone
+     * @return
+     */
+    Response sendModifyVerificationCode(SysUser user, String type, String phone);
+
+
 }

+ 63 - 0
hzgzpt-service-app/src/main/java/com/miaxis/app/user/service/IUserRegisterService.java

@@ -0,0 +1,63 @@
+package com.miaxis.app.user.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.miaxis.app.user.domain.UserRegister;
+
+import java.util.List;
+
+/**
+ * 用户报名信息Service接口
+ * 
+ * @author miaxis
+ * @date 2020-12-25
+ */
+public interface IUserRegisterService extends IService<UserRegister> {
+    /**
+     * 查询用户报名信息
+     * 
+     * @param id 用户报名信息ID
+     * @return 用户报名信息
+     */
+    public UserRegister selectUserRegisterById(Long id);
+
+    /**
+     * 查询用户报名信息列表
+     * 
+     * @param userRegister 用户报名信息
+     * @return 用户报名信息集合
+     */
+    public List<UserRegister> selectUserRegisterList(UserRegister userRegister);
+
+    /**
+     * 新增用户报名信息
+     * 
+     * @param userRegister 用户报名信息
+     * @return 结果
+     */
+    public int insertUserRegister(UserRegister userRegister);
+
+    /**
+     * 修改用户报名信息
+     * 
+     * @param userRegister 用户报名信息
+     * @return 结果
+     */
+    public int updateUserRegister(UserRegister userRegister);
+
+    /**
+     * 批量删除用户报名信息
+     * 
+     * @param ids 需要删除的用户报名信息ID
+     * @return 结果
+     */
+    public int deleteUserRegisterByIds(Long[] ids);
+
+    /**
+     * 删除用户报名信息信息
+     * 
+     * @param id 用户报名信息ID
+     * @return 结果
+     */
+    public int deleteUserRegisterById(Long id);
+}

+ 22 - 0
hzgzpt-service-app/src/main/java/com/miaxis/app/user/service/impl/UserImagesServiceImpl.java

@@ -0,0 +1,22 @@
+package com.miaxis.app.user.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.miaxis.app.user.domain.UserImages;
+import com.miaxis.app.user.mapper.UserImagesMapper;
+import com.miaxis.app.user.service.IUserImagesService;
+import org.springframework.stereotype.Service;
+
+
+
+/**
+ * 用户照片Service业务层处理
+ *
+ * @author miaxis
+ * @date 2020-12-25
+ */
+@Service
+public class UserImagesServiceImpl extends ServiceImpl<UserImagesMapper, UserImages> implements IUserImagesService {
+
+
+}

+ 145 - 2
hzgzpt-service-app/src/main/java/com/miaxis/app/user/service/impl/UserInfoServiceImpl.java

@@ -1,9 +1,17 @@
 package com.miaxis.app.user.service.impl;
 
-import java.util.List;
+import java.util.*;
+
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.miaxis.app.sms.ISmsService;
+import com.miaxis.app.user.domain.UserImages;
+import com.miaxis.app.user.domain.UserRegister;
 import com.miaxis.app.user.domain.dto.UserDto;
+import com.miaxis.app.user.mapper.UserImagesMapper;
+import com.miaxis.app.user.mapper.UserRegisterMapper;
+import com.miaxis.app.user.service.IUserImagesService;
 import com.miaxis.common.constant.Constants;
+import com.miaxis.common.constant.SmsTemplateConstants;
 import com.miaxis.common.core.domain.Response;
 import com.miaxis.common.core.domain.entity.SysUser;
 import com.miaxis.common.utils.DateUtils;
@@ -25,8 +33,18 @@ import javax.annotation.Resource;
  */
 @Service
 public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo> implements IUserInfoService {
+
+    @Resource
+    private UserInfoMapper userInfoMapper;//用户信息
+
+    @Resource
+    private UserRegisterMapper userRegisterMapper;//用户报名信息
+
+    @Resource
+    private IUserImagesService userImagesService;//用户图片信息
+
     @Autowired
-    private UserInfoMapper userInfoMapper;
+    private ISmsService smsService;//短信服务
 
     @Autowired
     private RedisTemplate redisTemplate;
@@ -127,4 +145,129 @@ public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo> i
 
         return Response.success();
     }
+
+    /**
+     * 保存用户报名信息
+     * @param userDto
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Response saveUserInformation(UserDto userDto) {
+        try {
+
+            //查看验证码是否过期
+            if (redisTemplate.hasKey(Constants.SMS_SIGNUP_CODE_COUNT + userDto.getMobile()) &&
+                    !redisTemplate.hasKey(Constants.SMS_SIGNUP_CODE + userDto.getMobile())){
+                return Response.error(500,"验证码已过期,请重新验证!");
+            }
+            //比对缓存中的验证码
+            String smsCodeValue = redisTemplate.opsForValue().get(Constants.SMS_SIGNUP_CODE + userDto.getMobile()).toString();
+            if (!userDto.getVerificationCode().equals(smsCodeValue)){
+                return Response.error(500,"验证码错误,请重新输入");
+            }
+
+            UserInfo userInfo = new UserInfo();
+            UserRegister userRegister = new UserRegister();
+            //用户信息表
+            userInfo.setName(userDto.getName());
+            userInfo.setSex(userDto.getSex());
+            userInfo.setSfzmlx(1l);
+            userInfo.setIdCard(userDto.getIdCard());
+            userInfo.setMobile(userDto.getMobile());
+            userInfo.setInscode(userDto.getInscode());
+            userInfo.setPxcx(userDto.getPxcx());
+            userInfo.setSchoolClassTypeId(userDto.getSchoolClassTypeId());
+            userInfo.setCoachnum(userDto.getCoachnum());
+            userInfo.setStatus(0);
+            userInfoMapper.insert(userInfo);
+
+
+            //用户报名信息表
+            userRegister.setUserId(userInfo.getId());
+            userRegister.setInscode(userDto.getInscode());
+            userRegister.setBmcx(userDto.getPxcx());
+            userRegister.setCoachnum(userDto.getCoachnum());
+            userRegister.setClassId(userDto.getSchoolClassTypeId());
+            userRegisterMapper.insert(userRegister);
+
+            //用户图片信息
+            List<UserImages> userImagesList = new ArrayList<>();
+            for (int i = 0; i < 3; i++) {
+                UserImages userImages = new UserImages();
+                userImages.setUserId(userInfo.getId());
+                switch(i){
+                    case 0 :
+                        userImages.setFileUrl(userDto.getIdCardFrontUrl());
+                        userImages.setFilePath(userDto.getIdCardFrontPath());
+                        userImages.setImageType(1l);
+                        userImagesList.add(userImages);
+                        break;
+                    case 1 :
+                        userImages.setFileUrl(userDto.getIdCardReverseUrl());
+                        userImages.setFilePath(userDto.getIdCardReversePath());
+                        userImages.setImageType(2l);
+                        userImagesList.add(userImages);
+                        break;
+                    case 2 :
+                        userImages.setFileUrl(userDto.getFacesUrl());
+                        userImages.setFilePath(userDto.getFacesPath());
+                        userImages.setImageType(3l);
+                        userImagesList.add(userImages);
+                        break;
+                    default :
+                        break;
+                }
+            }
+            userImagesService.saveBatch(userImagesList);
+            return Response.success();
+        }catch (Exception e){
+            throw new RuntimeException(e);
+        }
+
+    }
+
+    /**
+     * 注册报名获取短信验证码
+     * @param type
+     * @param phone
+     * @return
+     */
+    @Override
+    public Response sendSignUpVerificationCode(String type, String phone) {
+        Map<String, String> map = new HashMap<>();
+        map.put("phone",phone);
+        map.put("type",type);
+        map.put("keyPrefix", Constants.SMS_SIGNUP_CODE);
+        map.put("verificationCount",Constants.SMS_SIGNUP_CODE_COUNT);
+        map.put("smsTemplateConstants",SmsTemplateConstants.signUp);
+        return smsService.sendVerificationCode(map);
+    }
+
+
+    /**
+     * 修改手机号获取短信验证码
+     * @param user
+     * @param type
+     * @param phone
+     * @return
+     */
+    @Override
+    public Response sendModifyVerificationCode(SysUser user, String type, String phone) {
+        if (user.getPhonenumber().equals(phone)){
+            return Response.error(500,"该手机号与当前绑定的手机号相同");
+        }
+
+        Map<String, String> map = new HashMap<>();
+        map.put("phone",phone);
+        map.put("type",type);
+        map.put("keyPrefix", Constants.SMS_LOGIN_CODE);
+        map.put("verificationCount",Constants.SMS_LOGIN_CODE_COUNT);
+        map.put("smsTemplateConstants",SmsTemplateConstants.login);
+
+        return smsService.sendVerificationCode(map);
+    }
+
+
+
 }

+ 95 - 0
hzgzpt-service-app/src/main/java/com/miaxis/app/user/service/impl/UserRegisterServiceImpl.java

@@ -0,0 +1,95 @@
+package com.miaxis.app.user.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.miaxis.app.user.domain.UserRegister;
+import com.miaxis.app.user.mapper.UserRegisterMapper;
+import com.miaxis.app.user.service.IUserRegisterService;
+import com.miaxis.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+/**
+ * 用户报名信息Service业务层处理
+ *
+ * @author miaxis
+ * @date 2020-12-25
+ */
+@Service
+public class UserRegisterServiceImpl extends ServiceImpl<UserRegisterMapper, UserRegister> implements IUserRegisterService {
+
+    @Resource
+    private UserRegisterMapper userRegisterMapper;
+
+    /**
+     * 查询用户报名信息
+     *
+     * @param id 用户报名信息ID
+     * @return 用户报名信息
+     */
+    @Override
+    public UserRegister selectUserRegisterById(Long id){
+        return userRegisterMapper.selectUserRegisterById(id);
+    }
+
+    /**
+     * 查询用户报名信息列表
+     *
+     * @param userRegister 用户报名信息
+     * @return 用户报名信息
+     */
+    @Override
+    public List<UserRegister> selectUserRegisterList(UserRegister userRegister){
+        return userRegisterMapper.selectUserRegisterList(userRegister);
+    }
+
+    /**
+     * 新增用户报名信息
+     *
+     * @param userRegister 用户报名信息
+     * @return 结果
+     */
+    @Override
+    public int insertUserRegister(UserRegister userRegister){
+        userRegister.setCreateTime(DateUtils.getNowDate());
+        return userRegisterMapper.insertUserRegister(userRegister);
+    }
+
+    /**
+     * 修改用户报名信息
+     *
+     * @param userRegister 用户报名信息
+     * @return 结果
+     */
+    @Override
+    public int updateUserRegister(UserRegister userRegister){
+        userRegister.setUpdateTime(DateUtils.getNowDate());
+        return userRegisterMapper.updateUserRegister(userRegister);
+    }
+
+    /**
+     * 批量删除用户报名信息
+     *
+     * @param ids 需要删除的用户报名信息ID
+     * @return 结果
+     */
+    @Override
+    public int deleteUserRegisterByIds(Long[] ids){
+        return userRegisterMapper.deleteUserRegisterByIds(ids);
+    }
+
+    /**
+     * 删除用户报名信息信息
+     *
+     * @param id 用户报名信息ID
+     * @return 结果
+     */
+    @Override
+    public int deleteUserRegisterById(Long id){
+        return userRegisterMapper.deleteUserRegisterById(id);
+    }
+}

+ 87 - 0
hzgzpt-service-app/src/main/resources/mapper/user/UserRegisterMapper.xml

@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.miaxis.system.mapper.UserRegisterMapper">
+    
+    <resultMap type="UserRegister" id="UserRegisterResult">
+        <result property="id"    column="id"    />
+        <result property="userId"    column="user_id"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="inscode"    column="inscode"    />
+        <result property="bmcx"    column="bmcx"    />
+        <result property="coachnum"    column="coachnum"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="classId"    column="class_id"    />
+    </resultMap>
+
+    <sql id="selectUserRegisterVo">
+        select id, user_id, create_time, inscode, bmcx, coachnum, update_time, class_id from user_register
+    </sql>
+
+    <select id="selectUserRegisterList" parameterType="UserRegister" resultMap="UserRegisterResult">
+        <include refid="selectUserRegisterVo"/>
+        <where>  
+            <if test="userId != null "> and user_id = #{userId}</if>
+            <if test="inscode != null  and inscode != ''"> and inscode = #{inscode}</if>
+            <if test="bmcx != null  and bmcx != ''"> and bmcx = #{bmcx}</if>
+            <if test="coachnum != null  and coachnum != ''"> and coachnum = #{coachnum}</if>
+            <if test="classId != null "> and class_id = #{classId}</if>
+        </where>
+    </select>
+    
+    <select id="selectUserRegisterById" parameterType="Long" resultMap="UserRegisterResult">
+        <include refid="selectUserRegisterVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertUserRegister" parameterType="UserRegister">
+        insert into user_register
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="userId != null">user_id,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="inscode != null">inscode,</if>
+            <if test="bmcx != null">bmcx,</if>
+            <if test="coachnum != null">coachnum,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="classId != null">class_id,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="userId != null">#{userId},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="inscode != null">#{inscode},</if>
+            <if test="bmcx != null">#{bmcx},</if>
+            <if test="coachnum != null">#{coachnum},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="classId != null">#{classId},</if>
+         </trim>
+    </insert>
+
+    <update id="updateUserRegister" parameterType="UserRegister">
+        update user_register
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="userId != null">user_id = #{userId},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="inscode != null">inscode = #{inscode},</if>
+            <if test="bmcx != null">bmcx = #{bmcx},</if>
+            <if test="coachnum != null">coachnum = #{coachnum},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="classId != null">class_id = #{classId},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteUserRegisterById" parameterType="Long">
+        delete from user_register where id = #{id}
+    </delete>
+
+    <delete id="deleteUserRegisterByIds" parameterType="String">
+        delete from user_register where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+    
+</mapper>