Browse Source

账号安全-修改手机号

dev_shibei_match
zhaoqifeng 5 years ago
parent
commit
c803be8cb6
  1. 1
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java
  2. 30
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/controller/PersonalCenterController.java
  3. 30
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/service/PersonalCenterService.java
  4. 38
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/service/impl/PersonalCenterServiceImpl.java
  5. 21
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/EditMobileFormDTO.java
  6. 22
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/SendCodeFormDTO.java
  7. 20
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java
  8. 51
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java
  9. 25
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserResiInfoController.java
  10. 18
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserResiInfoService.java
  11. 53
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java

1
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java

@ -41,6 +41,7 @@ public enum EpmetErrorCode {
MOBILE_GET_CODE_ERROR(8104,"获取验证码失败"), MOBILE_GET_CODE_ERROR(8104,"获取验证码失败"),
MESSAGE_SMS_SEND_ERROR(8105, "短信发送失败"), MESSAGE_SMS_SEND_ERROR(8105, "短信发送失败"),
NOT_DEL_GRID(8106,"该网格存在工作人员,不允许删除"), NOT_DEL_GRID(8106,"该网格存在工作人员,不允许删除"),
THE_MOBILE_HAS_BEEN_USED(8101, "该手机号已注册,请更换手机号"),
ORG_IS_NOT_NULL(8107,"党组织关系不能为空"), ORG_IS_NOT_NULL(8107,"党组织关系不能为空"),
CANNOT_DELETE_PARTY_BRANCH(8108,"当前支部存在党员,不允许删除"), CANNOT_DELETE_PARTY_BRANCH(8108,"当前支部存在党员,不允许删除"),

30
epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/controller/PersonalCenterController.java

@ -4,6 +4,8 @@ import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.EditInfoFormDTO; import com.epmet.dto.form.EditInfoFormDTO;
import com.epmet.dto.form.EditMobileFormDTO;
import com.epmet.dto.form.SendCodeFormDTO;
import com.epmet.modules.mine.service.PersonalCenterService; import com.epmet.modules.mine.service.PersonalCenterService;
import com.epmet.resi.mine.dto.result.InitInfoResultDTO; import com.epmet.resi.mine.dto.result.InitInfoResultDTO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -52,4 +54,32 @@ public class PersonalCenterController {
personalCenterService.editInfo(tokenDto, formDTO); personalCenterService.editInfo(tokenDto, formDTO);
return new Result(); return new Result();
} }
/**
* 修改手机号-获取验证码
* @author zhaoqifeng
* @date 2020/11/11 9:28
* @param tokenDto
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
*/
@PostMapping("sendcode")
public Result sendCode(@LoginUser TokenDto tokenDto, @RequestBody SendCodeFormDTO formDTO) {
personalCenterService.sendCode(tokenDto, formDTO);
return new Result();
}
/**
* 修改手机号
* @author zhaoqifeng
* @date 2020/11/11 8:59
* @param tokenDto
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
*/
@PostMapping("editmobile")
public Result editMobile(@LoginUser TokenDto tokenDto, @RequestBody EditMobileFormDTO formDTO) {
personalCenterService.editMobile(tokenDto, formDTO);
return new Result();
}
} }

30
epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/service/PersonalCenterService.java

@ -2,6 +2,8 @@ package com.epmet.modules.mine.service;
import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dto.form.EditInfoFormDTO; import com.epmet.dto.form.EditInfoFormDTO;
import com.epmet.dto.form.EditMobileFormDTO;
import com.epmet.dto.form.SendCodeFormDTO;
import com.epmet.resi.mine.dto.result.InitInfoResultDTO; import com.epmet.resi.mine.dto.result.InitInfoResultDTO;
/** /**
@ -13,5 +15,33 @@ public interface PersonalCenterService {
InitInfoResultDTO initInfo(TokenDto tokenDto); InitInfoResultDTO initInfo(TokenDto tokenDto);
/**
* 修改信息
* @author zhaoqifeng
* @date 2020/11/11 9:28
* @param tokenDto
* @param formDTO
* @return void
*/
void editInfo(TokenDto tokenDto, EditInfoFormDTO formDTO); void editInfo(TokenDto tokenDto, EditInfoFormDTO formDTO);
/**
* 获取验证码
* @author zhaoqifeng
* @date 2020/11/10 10:50
* @param tokenDto
* @param formDTO
* @return void
*/
void sendCode(TokenDto tokenDto, SendCodeFormDTO formDTO);
/**
* 修改手机号
* @author zhaoqifeng
* @date 2020/11/11 8:59
* @param tokenDto
* @param formDTO
* @return void
*/
void editMobile(TokenDto tokenDto, EditMobileFormDTO formDTO);
} }

38
epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/service/impl/PersonalCenterServiceImpl.java

@ -4,6 +4,8 @@ import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.EditInfoFormDTO; import com.epmet.dto.form.EditInfoFormDTO;
import com.epmet.dto.form.EditMobileFormDTO;
import com.epmet.dto.form.SendCodeFormDTO;
import com.epmet.dto.result.ResiUserBaseInfoResultDTO; import com.epmet.dto.result.ResiUserBaseInfoResultDTO;
import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.modules.mine.service.PersonalCenterService; import com.epmet.modules.mine.service.PersonalCenterService;
@ -48,4 +50,40 @@ public class PersonalCenterServiceImpl implements PersonalCenterService {
throw new RenException(result.getCode(), result.getMsg()); throw new RenException(result.getCode(), result.getMsg());
} }
} }
/**
* 获取验证码
*
* @param tokenDto
* @param formDTO
* @return void
* @author zhaoqifeng
* @date 2020/11/10 10:50
*/
@Override
public void sendCode(TokenDto tokenDto, SendCodeFormDTO formDTO) {
formDTO.setUserId(tokenDto.getUserId());
Result result = epmetUserOpenFeignClient.sendCode(formDTO);
if (!result.success()) {
throw new RenException(result.getCode(), result.getMsg());
}
}
/**
* 修改手机号
*
* @param tokenDto
* @param formDTO
* @return void
* @author zhaoqifeng
* @date 2020/11/11 8:59
*/
@Override
public void editMobile(TokenDto tokenDto, EditMobileFormDTO formDTO) {
formDTO.setUserId(tokenDto.getUserId());
Result result = epmetUserOpenFeignClient.editMobile(formDTO);
if (!result.success()) {
throw new RenException(result.getCode(), result.getMsg());
}
}
} }

21
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/EditMobileFormDTO.java

@ -0,0 +1,21 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/11/11 8:56
*/
@Data
public class EditMobileFormDTO implements Serializable {
private static final long serialVersionUID = -6414713675159933915L;
@NotBlank(message = "手机号不能为空")
private String mobile;
@NotBlank(message = "验证码不能为空")
private String code;
private String userId;
}

22
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/SendCodeFormDTO.java

@ -0,0 +1,22 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/11/10 10:44
*/
@Data
public class SendCodeFormDTO implements Serializable {
private static final long serialVersionUID = -2098912419326588536L;
@NotBlank(message = "客户ID不能为空")
private String customerId;
@NotBlank(message = "手机号不能为空")
private String mobile;
private String userId;
}

20
epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java

@ -339,6 +339,26 @@ public interface EpmetUserOpenFeignClient {
@PostMapping("/epmetuser/userresiinfo/edituserinfo") @PostMapping("/epmetuser/userresiinfo/edituserinfo")
Result editUserInfo(@RequestBody EditInfoFormDTO formDTO); Result editUserInfo(@RequestBody EditInfoFormDTO formDTO);
/**
* 修改手机号-获取验证码
* @author zhaoqifeng
* @date 2020/11/10 10:51
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
*/
@PostMapping("/epmetuser/userresiinfo/sendcode")
Result sendCode(@RequestBody SendCodeFormDTO formDTO);
/**
* 修改手机号
* @author zhaoqifeng
* @date 2020/11/11 8:59
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
*/
@PostMapping("/epmetuser/userresiinfo/editmobile")
Result editMobile(@RequestBody EditMobileFormDTO formDTO);
/** /**
* @Description 查询已经点亮的徽章 * @Description 查询已经点亮的徽章
* @Param userBadgeListFormDTO * @Param userBadgeListFormDTO

51
epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java

@ -11,6 +11,7 @@ import com.epmet.feign.EpmetUserOpenFeignClient;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 本服务对外开放的API,其他服务通过引用此client调用该服务 * 本服务对外开放的API,其他服务通过引用此client调用该服务
@ -226,6 +227,32 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "editUserInfo", formDTO); return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "editUserInfo", formDTO);
} }
/**
* 修改手机号-获取验证码
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @author zhaoqifeng
* @date 2020/11/10 10:51
*/
@Override
public Result sendCode(SendCodeFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "sendCode", formDTO);
}
/**
* 修改手机号
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @author zhaoqifeng
* @date 2020/11/11 8:59
*/
@Override
public Result editMobile(EditMobileFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "editMobile", formDTO);
}
@Override @Override
public Result<List<UserBadgeListResultDTO>> selectBadgeList(UserBadgeListFormDTO userBadgeListFormDTO) { public Result<List<UserBadgeListResultDTO>> selectBadgeList(UserBadgeListFormDTO userBadgeListFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "selectBadgeList", userBadgeListFormDTO); return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "selectBadgeList", userBadgeListFormDTO);
@ -250,4 +277,28 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien
public Result<BasicInfoResultDTO> getStaffBasicInfo(StaffBasicInfoFromDTO fromDTO) { public Result<BasicInfoResultDTO> getStaffBasicInfo(StaffBasicInfoFromDTO fromDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getStaffBasicInfo", fromDTO); return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getStaffBasicInfo", fromDTO);
} }
/**
* @param map pageSize,pageNo
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.MyAdviceListResultDTO>
* @Description 个人中心-我的建议列表
* @Author liushaowen
* @Date 2020/11/11 10:35
*/
@Override
public Result<MyAdviceListResultDTO> myAdviceList(Map<String, Integer> map) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "myAdviceList", map);
}
/**
* @param dto
* @return com.epmet.commons.tools.utils.Result
* @Description 个人中心-提交建议
* @Author liushaowen
* @Date 2020/11/11 10:36
*/
@Override
public Result submitAdvice(SubmitAdviceFormDTO dto) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "submitAdvice", dto);
}
} }

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

@ -173,4 +173,29 @@ public class UserResiInfoController {
return new Result(); return new Result();
} }
/**
* 修改手机号-获取验证码
* @author zhaoqifeng
* @date 2020/11/10 10:51
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
*/
@PostMapping("sendcode")
public Result sendCode(@RequestBody SendCodeFormDTO formDTO) {
userResiInfoService.sendCode(formDTO);
return new Result();
}
/**
* 修改手机号
* @author zhaoqifeng
* @date 2020/11/11 8:59
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
*/
@PostMapping("editmobile")
public Result editMobile(@RequestBody EditMobileFormDTO formDTO) {
userResiInfoService.editMobile(formDTO);
return new Result();
}
} }

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

@ -157,4 +157,22 @@ public interface UserResiInfoService extends BaseService<UserResiInfoEntity> {
* @return void * @return void
*/ */
void editUserInfo(EditInfoFormDTO formDTO); void editUserInfo(EditInfoFormDTO formDTO);
/**
* 获取验证码
* @author zhaoqifeng
* @date 2020/11/10 10:50
* @param formDTO
* @return void
*/
void sendCode(SendCodeFormDTO formDTO);
/**
* 修改手机号
* @author zhaoqifeng
* @date 2020/11/11 8:59
* @param formDTO
* @return void
*/
void editMobile(EditMobileFormDTO formDTO);
} }

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

@ -26,6 +26,7 @@ import com.epmet.commons.tools.constant.EpmetRoleKeyConstant;
import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
@ -343,4 +344,56 @@ public class UserResiInfoServiceImpl extends BaseServiceImpl<UserResiInfoDao, Us
userBaseInfoService.insertOrUpdate(baseInfo); userBaseInfoService.insertOrUpdate(baseInfo);
} }
/**
* 获取验证码
*
* @param formDTO
* @return void
* @author zhaoqifeng
* @date 2020/11/10 10:50
*/
@Override
public void sendCode(SendCodeFormDTO formDTO) {
//1:判断手机号是否可用
if (!getResiInfoByMobile(formDTO.getMobile(), formDTO.getCustomerId())) {
throw new RenException(EpmetErrorCode.THE_MOBILE_HAS_BEEN_USED.getCode());
}
//2:调用短信服务 生成验证码发送短信
SendVerificationCodeFormDTO sendVerificationCodeFormDTO = new SendVerificationCodeFormDTO();
sendVerificationCodeFormDTO.setMobile(formDTO.getMobile());
sendVerificationCodeFormDTO.setAliyunTemplateCode(SmsTemplateConstant.USER_REGISTER);
Result<SendVerificationCodeResultDTO> result = epmetMessageOpenFeignClient.sendVerificationCode(sendVerificationCodeFormDTO);
if (!result.success() || null == result.getData() || StringUtils.isBlank(result.getData().getCode())) {
throw new RenException(EpmetErrorCode.MOBILE_GET_CODE_ERROR.getCode());
}
//3:删除缓存中可能存在的旧验证码
userResiInfoRedis.deleteOldUserMobileCode(formDTO.getUserId(), formDTO.getMobile());
//4:将验证码存入redis
userResiInfoRedis.setUserResiMobileCode(formDTO.getUserId(),formDTO.getMobile(),result.getData().getCode());
}
/**
* 修改手机号
*
* @param formDTO
* @return void
* @author zhaoqifeng
* @date 2020/11/11 8:59
*/
@Override
public void editMobile(EditMobileFormDTO formDTO) {
//手机验证码数据校验
String verificationCode = userResiInfoRedis.getUserResiMobileCode(formDTO.getUserId(), formDTO.getMobile(), formDTO.getCode());
if (null == verificationCode || StringUtils.isBlank(verificationCode)) {
throw new RenException(EpmetErrorCode.MOBILE_GET_CODE_ERROR.getCode());
}
//更新手机号
UserResiInfoDTO dto = baseDao.selectByUserId(formDTO.getUserId());
dto.setRegMobile(formDTO.getMobile());
update(dto);
//更新baseInfo
UserBaseInfoEntity baseInfo = ConvertUtils.sourceToTarget(formDTO, UserBaseInfoEntity.class);
userBaseInfoService.insertOrUpdate(baseInfo);
}
} }

Loading…
Cancel
Save