Browse Source

居民端-居民注册根据手机号获取验证码

dev
sunyuchao 5 years ago
parent
commit
649e06d16a
  1. 8
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/EpmetUserFeignClient.java
  2. 10
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/fallback/EpmetUserFeignClientFallBack.java
  3. 12
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/resiregister/controller/ResiRegisterController.java
  4. 10
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/resiregister/service/ResiRegisterService.java
  5. 10
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/resiregister/service/impl/ResiRegisterServiceImpl.java
  6. 33
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VerificationCodeFormDTO.java
  7. 15
      epmet-user/epmet-user-server/src/main/java/com/epmet/constant/UserResiRegisterConstant.java
  8. 14
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserResiInfoController.java
  9. 9
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserResiInfoDao.java
  10. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserResiRegisterVisitDao.java
  11. 9
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserResiInfoService.java
  12. 12
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserResiRegisterVisitService.java
  13. 54
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java
  14. 25
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiRegisterVisitServiceImpl.java
  15. 28
      epmet-user/epmet-user-server/src/main/resources/mapper/UserResiInfoDao.xml

8
epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/EpmetUserFeignClient.java

@ -4,6 +4,7 @@ import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.UserResiInfoDTO;
import com.epmet.dto.form.ResiRegisterFormDTO;
import com.epmet.dto.form.VerificationCodeFormDTO;
import com.epmet.dto.result.LatestGridInfoResultDTO;
import com.epmet.dto.result.ResiRegisterResultDTO;
import com.epmet.modules.feign.fallback.EpmetUserFeignClientFallBack;
@ -43,4 +44,11 @@ public interface EpmetUserFeignClient {
**/
@PostMapping(value = "epmetuser/userresiinfo/submit")
Result submit(UserResiInfoDTO userResiInfoDTO);
/**
* @Author sun
* @Description 居民端-居民注册根据手机号获取验证码
**/
@PostMapping(value = "epmetuser/userresiinfo/getverificationcode")
Result getVerificationCode(VerificationCodeFormDTO formDTO);
}

10
epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/fallback/EpmetUserFeignClientFallBack.java

@ -5,6 +5,7 @@ import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.UserResiInfoDTO;
import com.epmet.dto.form.ResiRegisterFormDTO;
import com.epmet.dto.form.VerificationCodeFormDTO;
import com.epmet.dto.result.LatestGridInfoResultDTO;
import com.epmet.dto.result.ResiRegisterResultDTO;
import com.epmet.modules.feign.EpmetUserFeignClient;
@ -51,5 +52,14 @@ public class EpmetUserFeignClientFallBack implements EpmetUserFeignClient {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "submit", userResiInfoDTO);
}
/**
* @Author sun
* @Description 居民端-居民注册根据手机号获取验证码
**/
@Override
public Result getVerificationCode(VerificationCodeFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getVerificationCode", formDTO);
}
}

12
epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/resiregister/controller/ResiRegisterController.java

@ -5,9 +5,9 @@ import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.UserResiInfoDTO;
import com.epmet.dto.form.ResiRegisterFormDTO;
import com.epmet.dto.form.VerificationCodeFormDTO;
import com.epmet.dto.result.ResiRegisterResultDTO;
import com.epmet.modules.resiregister.service.ResiRegisterService;
import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedSubmitFormDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -47,5 +47,15 @@ public class ResiRegisterController {
return resiRegisterService.submit(tokenDTO, userResiInfoDTO);
}
/**
* @param
* @Author sun
* @Description 居民端-居民注册根据手机号获取验证码
**/
@PostMapping("getverificationcode")
public Result getVerificationCode(@LoginUser TokenDto tokenDTO, @RequestBody VerificationCodeFormDTO formDTO) {
return resiRegisterService.getVerificationCode(tokenDTO, formDTO);
}
}

10
epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/resiregister/service/ResiRegisterService.java

@ -4,6 +4,7 @@ import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.UserResiInfoDTO;
import com.epmet.dto.form.ResiRegisterFormDTO;
import com.epmet.dto.form.VerificationCodeFormDTO;
import com.epmet.dto.result.ResiRegisterResultDTO;
/**
@ -32,4 +33,13 @@ public interface ResiRegisterService {
*/
Result submit(TokenDto tokenDTO, UserResiInfoDTO userResiInfoDTO);
/**
* 居民端-居民注册根据手机号获取验证码
*
* @param
* @return void
* @author sun
*/
Result getVerificationCode(TokenDto tokenDTO, VerificationCodeFormDTO formDTO);
}

10
epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/resiregister/service/impl/ResiRegisterServiceImpl.java

@ -4,6 +4,7 @@ import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.UserResiInfoDTO;
import com.epmet.dto.form.ResiRegisterFormDTO;
import com.epmet.dto.form.VerificationCodeFormDTO;
import com.epmet.dto.result.ResiRegisterResultDTO;
import com.epmet.modules.feign.EpmetUserFeignClient;
import com.epmet.modules.resiregister.service.ResiRegisterService;
@ -40,4 +41,13 @@ public class ResiRegisterServiceImpl implements ResiRegisterService {
userResiInfoDTO.setUserId(tokenDTO.getUserId());
return epmetUserFeignClient.submit(userResiInfoDTO);
}
@Override
public Result getVerificationCode(TokenDto tokenDTO, VerificationCodeFormDTO formDTO) {
if (null == tokenDTO || StringUtils.isBlank(tokenDTO.getUserId())) {
return new Result().error(ModuleConstant.USER_NOT_NULL);
}
formDTO.setUserId(tokenDTO.getUserId());
return epmetUserFeignClient.getVerificationCode(formDTO);
}
}

33
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VerificationCodeFormDTO.java

@ -0,0 +1,33 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 居民注册根据手机号获取获取验证码
* @Author sun
*/
@Data
public class VerificationCodeFormDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 手机号(注册手机号)
*/
private String mobile;
/**
* 居民注册行为记录表Id resi_visit.id
*/
private String resiVisitId;
/**
* 用户ID
*/
private String userId;
}

15
epmet-user/epmet-user-server/src/main/java/com/epmet/constant/UserResiRegisterConstant.java

@ -39,4 +39,19 @@ public interface UserResiRegisterConstant {
* 最后一次操作行为-提交失败
*/
String MOBILECODE_EXCEPTION="手机验证码输入错误!";
/**
* 参数错误
*/
String PARAMETER_ERROR="参数错误!";
/**
* 数据更新异常
*/
String UPDATE_EXCEPTION="用户居民注册访问记录表更新数据失败!";
/**
* 手机号已存在
*/
String MOBILE_EXIST="该手机号已注册居民!";
}

14
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserResiInfoController.java

@ -23,10 +23,11 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.AssertUtils;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.UserResiInfoDTO;
import com.epmet.dto.form.UserResiInfoFormDTO;
import com.epmet.dto.form.VerificationCodeFormDTO;
import com.epmet.excel.UserResiInfoExcel;
import com.epmet.service.UserResiInfoService;
import org.springframework.beans.factory.annotation.Autowired;
@ -114,4 +115,15 @@ public class UserResiInfoController {
public Result submit(@RequestBody UserResiInfoDTO userResiInfoDTO) {
return userResiInfoService.submit(userResiInfoDTO);
}
/**
* @param formDTO
* @Author sun
* @Description 居民端-居民注册根据手机号获取验证码
**/
@PostMapping("getverificationcode")
public Result getVerificationCode(@RequestBody VerificationCodeFormDTO formDTO) {
return userResiInfoService.getVerificationCode(formDTO);
}
}

9
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserResiInfoDao.java

@ -23,6 +23,8 @@ import com.epmet.dto.form.UserResiInfoFormDTO;
import com.epmet.entity.UserResiInfoEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 用户居民端注册信息表 用户在居民端完善的个人信息
*
@ -46,4 +48,11 @@ public interface UserResiInfoDao extends BaseDao<UserResiInfoEntity> {
* @Description 用户居民端注册信息表新增数据
**/
void saveUserResiInfo(UserResiInfoDTO userResiInfoDTO);
/**
* @Author sun
* @Description 根据手机号查询居民注册信息(user_resi_info)表数据
**/
List<UserResiInfoDTO> selectResiInfoByMobile(String regMobile);
}

2
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserResiRegisterVisitDao.java

@ -37,5 +37,5 @@ public interface UserResiRegisterVisitDao extends BaseDao<UserResiRegisterVisitE
List<UserResiRegisterVisitDTO> selectUserResiRegisterVisit(UserResiRegisterVisitDTO userResiRegisterVisitDTO);
void updateResiRegisterVisit(UserResiRegisterVisitDTO userResiRegisterVisitDTO);
boolean updateResiRegisterVisit(UserResiRegisterVisitDTO userResiRegisterVisitDTO);
}

9
epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserResiInfoService.java

@ -22,6 +22,7 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.UserResiInfoDTO;
import com.epmet.dto.form.UserResiInfoFormDTO;
import com.epmet.dto.form.VerificationCodeFormDTO;
import com.epmet.entity.UserResiInfoEntity;
import java.util.List;
@ -112,4 +113,12 @@ public interface UserResiInfoService extends BaseService<UserResiInfoEntity> {
* @author sun
*/
Result submit(UserResiInfoDTO userResiInfoDTO);
/**
* 居民端-居民注册根据手机号获取验证码
*
* @param formDTO
* @author sun
*/
Result getVerificationCode(VerificationCodeFormDTO formDTO);
}

12
epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserResiRegisterVisitService.java

@ -25,6 +25,7 @@ import com.epmet.dto.UserResiInfoDTO;
import com.epmet.dto.UserResiRegisterVisitDTO;
import com.epmet.dto.form.ResiRegisterFormDTO;
import com.epmet.dto.form.UserResiInfoFormDTO;
import com.epmet.dto.form.VerificationCodeFormDTO;
import com.epmet.dto.result.ResiRegisterResultDTO;
import com.epmet.entity.UserResiRegisterVisitEntity;
@ -112,8 +113,15 @@ public interface UserResiRegisterVisitService extends BaseService<UserResiRegist
* 居民端-居民注册信息提交-更新访问行为记录表数据
*
* @param bl userResiInfoDTO
* @return void
* @author sun
*/
Result updateResiRegisterVisit(boolean bl, UserResiInfoDTO userResiInfoDTO);
void updateResiRegisterVisit(boolean bl, UserResiInfoDTO userResiInfoDTO);
/**
* 居民端-居民注册根据手机号获取验证码-更新访问记录表数据
*
* @param formDTO
* @author sun
*/
void updateResiVisitOperate(VerificationCodeFormDTO formDTO);
}

54
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java

@ -21,21 +21,24 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.UserResiRegisterConstant;
import com.epmet.dao.UserResiInfoDao;
import com.epmet.dto.UserResiInfoDTO;
import com.epmet.dto.form.UserResiInfoFormDTO;
import com.epmet.dto.form.VerificationCodeFormDTO;
import com.epmet.entity.UserResiInfoEntity;
import com.epmet.redis.UserResiInfoRedis;
import com.epmet.service.RegisterRelationService;
import com.epmet.service.UserResiInfoService;
import com.epmet.service.UserResiRegisterVisitService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -54,6 +57,7 @@ import java.util.Map;
@Service
public class UserResiInfoServiceImpl extends BaseServiceImpl<UserResiInfoDao, UserResiInfoEntity> implements UserResiInfoService {
private static final Logger log = LoggerFactory.getLogger(UserResiInfoServiceImpl.class);
@Autowired
private UserResiInfoRedis userResiInfoRedis;
@Autowired
@ -140,14 +144,15 @@ public class UserResiInfoServiceImpl extends BaseServiceImpl<UserResiInfoDao, Us
//2:验证码校验失败则更新行为记录表数据 返回前台结果
if (false) {
userResiRegisterVisitService.updateResiRegisterVisit(false, userResiInfoDTO);
result.error(UserResiRegisterConstant.PARAMETER_ERROR);
result.setMsg(UserResiRegisterConstant.MOBILECODE_EXCEPTION);
return result;
}
//3:校验成功 数据存入居民注册表 更新行为记录表数据
saveUserResiInfo(userResiInfoDTO);
result = userResiRegisterVisitService.updateResiRegisterVisit(true, userResiInfoDTO);
userResiRegisterVisitService.updateResiRegisterVisit(true, userResiInfoDTO);
//4:居民注册关系表新增数据 首次注册数加一 注册数加一 参与数加一
result = registerRelationService.saveRegisterRelation(userResiInfoDTO);
registerRelationService.saveRegisterRelation(userResiInfoDTO);
return result;
}
@ -170,4 +175,47 @@ public class UserResiInfoServiceImpl extends BaseServiceImpl<UserResiInfoDao, Us
userResiInfoDao.saveUserResiInfo(userResiInfoDTO);
}
/**
* @param verificationCodeFormDTO
* @Author sun
* @Description 居民端-居民注册根据手机号获取验证码
**/
@Override
public Result getVerificationCode(VerificationCodeFormDTO verificationCodeFormDTO) {
Result result = new Result();
//1:更新居民注册访问记录表数据
userResiRegisterVisitService.updateResiVisitOperate(verificationCodeFormDTO);
//2:判断手机号是否可用
if (!getResiInfoByMobile(verificationCodeFormDTO.getMobile())) {
result.error(UserResiRegisterConstant.PARAMETER_ERROR);
result.setMsg(UserResiRegisterConstant.MOBILE_EXIST);
return result;
}
//3:调用短信服务 生成验证码发送短信 TODO
//4:将验证码存入redis TODO
return result;
}
/**
* 判断手机号是否可用-根据手机号查询居民注册信息(user_resi_info)表数据
*
* @param mobile
* @return
* @Author sun
*/
private Boolean getResiInfoByMobile(String mobile) {
Boolean bl = true;
if (StringUtils.isBlank(mobile)) {
log.error(UserResiRegisterConstant.PARAMETER_ERROR);
return bl;
}
List<UserResiInfoDTO> list = userResiInfoDao.selectResiInfoByMobile(mobile);
if (list.size() > 0) {
bl = false;
}
return bl;
}
}

25
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiRegisterVisitServiceImpl.java

@ -31,12 +31,14 @@ import com.epmet.dao.UserResiRegisterVisitDao;
import com.epmet.dto.UserResiInfoDTO;
import com.epmet.dto.UserResiRegisterVisitDTO;
import com.epmet.dto.form.ResiRegisterFormDTO;
import com.epmet.dto.form.UserResiInfoFormDTO;
import com.epmet.dto.form.VerificationCodeFormDTO;
import com.epmet.dto.result.ResiRegisterResultDTO;
import com.epmet.entity.UserResiRegisterVisitEntity;
import com.epmet.redis.UserResiRegisterVisitRedis;
import com.epmet.service.UserResiRegisterVisitService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -55,6 +57,7 @@ import java.util.Map;
@Service
public class UserResiRegisterVisitServiceImpl extends BaseServiceImpl<UserResiRegisterVisitDao, UserResiRegisterVisitEntity> implements UserResiRegisterVisitService {
private static final Logger log = LoggerFactory.getLogger(UserResiRegisterVisitServiceImpl.class);
@Autowired
private UserResiRegisterVisitRedis userResiRegisterVisitRedis;
@Autowired
@ -140,7 +143,7 @@ public class UserResiRegisterVisitServiceImpl extends BaseServiceImpl<UserResiRe
@Override
@Transactional(rollbackFor = Exception.class)
public Result updateResiRegisterVisit(boolean bl, UserResiInfoDTO userResiInfoDTO) {
public void updateResiRegisterVisit(boolean bl, UserResiInfoDTO userResiInfoDTO) {
UserResiRegisterVisitDTO userResiRegisterVisitDTO = new UserResiRegisterVisitDTO();
if (bl) {
//最后一次操作行为-提交成功
@ -152,8 +155,22 @@ public class UserResiRegisterVisitServiceImpl extends BaseServiceImpl<UserResiRe
userResiRegisterVisitDTO.setId(userResiInfoDTO.getResiVisitId());
userResiRegisterVisitDTO.setUpdatedBy(userResiInfoDTO.getUserId());
userResiRegisterVisitDTO.setUpdatedTime(new Date());
userResiRegisterVisitDao.updateResiRegisterVisit(userResiRegisterVisitDTO);
return new Result();
if(!userResiRegisterVisitDao.updateResiRegisterVisit(userResiRegisterVisitDTO)){
log.warn(UserResiRegisterConstant.UPDATE_EXCEPTION);
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateResiVisitOperate(VerificationCodeFormDTO verificationCodeFormDTO) {
UserResiRegisterVisitDTO userResiRegisterVisitDTO = new UserResiRegisterVisitDTO();
userResiRegisterVisitDTO.setLastOperateVisit(UserResiRegisterConstant.SMS_CODE);
userResiRegisterVisitDTO.setId(verificationCodeFormDTO.getResiVisitId());
userResiRegisterVisitDTO.setUpdatedBy(verificationCodeFormDTO.getUserId());
userResiRegisterVisitDTO.setUpdatedTime(new Date());
if(!userResiRegisterVisitDao.updateResiRegisterVisit(userResiRegisterVisitDTO)){
log.warn(UserResiRegisterConstant.UPDATE_EXCEPTION);
}
}
}

28
epmet-user/epmet-user-server/src/main/resources/mapper/UserResiInfoDao.xml

@ -19,6 +19,25 @@
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<sql id="sql">
uri.id AS "id",
uri.user_id AS "userId",
uri.reg_mobile AS "regMobile",
uri.surname AS "surname",
uri.`name` AS "name",
uri.street AS "street",
uri.district AS "district",
uri.building_address AS "buildingAddress",
uri.resi_visit_id AS "resiVisitId",
uri.del_flag AS "delflag",
uri.revision AS "revision",
uri.created_by AS "createdby",
uri.created_time AS "createdtime",
uri.updated_by AS "updatedby",
uri.updated_time AS "updatedtime"
</sql>
<insert id="saveUserResiInfo" parameterType="com.epmet.dto.UserResiInfoDTO">
INSERT INTO user_resi_info (
id,
@ -80,4 +99,13 @@
AND uc.USER_ID = #{userId}
</select>
<select id="selectResiInfoByMobile" parameterType="string"
resultType="com.epmet.dto.UserResiInfoDTO">
SELECT
<include refid="sql"></include>
FROM user_resi_info uri
WHERE uri.del_flag = '0'
AND uri.reg_mobile = #{regMobile}
</select>
</mapper>

Loading…
Cancel
Save