diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java index e864c6b743..a90b358be5 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java +++ b/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,"获取验证码失败"), MESSAGE_SMS_SEND_ERROR(8105, "短信发送失败"), NOT_DEL_GRID(8106,"该网格存在工作人员,不允许删除"), + THE_MOBILE_HAS_BEEN_USED(8101, "该手机号已注册,请更换手机号"), ORG_IS_NOT_NULL(8107,"党组织关系不能为空"), CANNOT_DELETE_PARTY_BRANCH(8108,"当前支部存在党员,不允许删除"), diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/controller/PersonalCenterController.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/controller/PersonalCenterController.java index 61c538fbdc..e71b28101f 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/controller/PersonalCenterController.java +++ b/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.utils.Result; 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.resi.mine.dto.result.InitInfoResultDTO; import lombok.extern.slf4j.Slf4j; @@ -52,4 +54,32 @@ public class PersonalCenterController { personalCenterService.editInfo(tokenDto, formDTO); 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(); + } } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/service/PersonalCenterService.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/service/PersonalCenterService.java index 219edb8c86..7113c26539 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/service/PersonalCenterService.java +++ b/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.dto.form.EditInfoFormDTO; +import com.epmet.dto.form.EditMobileFormDTO; +import com.epmet.dto.form.SendCodeFormDTO; import com.epmet.resi.mine.dto.result.InitInfoResultDTO; /** @@ -13,5 +15,33 @@ public interface PersonalCenterService { InitInfoResultDTO initInfo(TokenDto tokenDto); + /** + * 修改信息 + * @author zhaoqifeng + * @date 2020/11/11 9:28 + * @param tokenDto + * @param formDTO + * @return void + */ 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); } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/service/impl/PersonalCenterServiceImpl.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/service/impl/PersonalCenterServiceImpl.java index 142d82d6dd..f758bf53b4 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/service/impl/PersonalCenterServiceImpl.java +++ b/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.utils.Result; 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.feign.EpmetUserOpenFeignClient; import com.epmet.modules.mine.service.PersonalCenterService; @@ -48,4 +50,40 @@ public class PersonalCenterServiceImpl implements PersonalCenterService { 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()); + } + } } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/EditMobileFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/EditMobileFormDTO.java new file mode 100644 index 0000000000..681a70b391 --- /dev/null +++ b/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; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/SendCodeFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/SendCodeFormDTO.java new file mode 100644 index 0000000000..e456507a0b --- /dev/null +++ b/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; + +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java index 4d311d5a30..4014a322fb 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java @@ -339,6 +339,26 @@ public interface EpmetUserOpenFeignClient { @PostMapping("/epmetuser/userresiinfo/edituserinfo") 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 查询已经点亮的徽章 * @Param userBadgeListFormDTO diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java index 55bbfcd18f..bca2a3c2c3 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java +++ b/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 java.util.List; +import java.util.Map; /** * 本服务对外开放的API,其他服务通过引用此client调用该服务 @@ -226,6 +227,32 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien 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 public Result> selectBadgeList(UserBadgeListFormDTO userBadgeListFormDTO) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "selectBadgeList", userBadgeListFormDTO); @@ -250,4 +277,28 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien public Result getStaffBasicInfo(StaffBasicInfoFromDTO fromDTO) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getStaffBasicInfo", fromDTO); } + + /** + * @param map pageSize,pageNo + * @return com.epmet.commons.tools.utils.Result + * @Description 个人中心-我的建议列表 + * @Author liushaowen + * @Date 2020/11/11 10:35 + */ + @Override + public Result myAdviceList(Map 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); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserResiInfoController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserResiInfoController.java index 68aea3d580..604c8ac22b 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserResiInfoController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserResiInfoController.java @@ -173,4 +173,29 @@ public class UserResiInfoController { 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(); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserResiInfoService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserResiInfoService.java index 11fff3816b..f0281dae5c 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserResiInfoService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserResiInfoService.java @@ -157,4 +157,22 @@ public interface UserResiInfoService extends BaseService { * @return void */ 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); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java index c86ed47eaf..e8efe9816d 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java +++ b/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.NumConstant; 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.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; @@ -343,4 +344,56 @@ public class UserResiInfoServiceImpl extends BaseServiceImpl 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); + } + }