From 687a62cae5e8d7f7af57dae2c44a19c8ad8a3843 Mon Sep 17 00:00:00 2001 From: caojianbin <1910336823> Date: Wed, 25 Dec 2024 11:21:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BF=AE=E6=94=B9=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/controller/UserController.java | 49 ++++++++++++++++++++-- .../app/entity/dto/ChangePasswordDto.java | 30 +++++++++++++ .../src/main/resources/i18n/messages.properties | 5 ++- .../src/main/resources/i18n/messages_ru.properties | 3 +- .../main/resources/i18n/messages_zh_CN.properties | 3 +- .../common/system/constant/FieldConstant.java | 2 + .../service/impl/FactoryLogInfoServiceImpl.java | 3 +- 7 files changed, 86 insertions(+), 9 deletions(-) create mode 100644 ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/entity/dto/ChangePasswordDto.java diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/controller/UserController.java b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/controller/UserController.java index baa7a1a..736827d 100644 --- a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/controller/UserController.java +++ b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/controller/UserController.java @@ -3,10 +3,7 @@ package com.ecell.internationalize.app.controller; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ecell.internationalize.app.entity.UserVo; -import com.ecell.internationalize.app.entity.dto.DeviceUnbindDto; -import com.ecell.internationalize.app.entity.dto.UpdateUserDto; -import com.ecell.internationalize.app.entity.dto.UserDto; -import com.ecell.internationalize.app.entity.dto.UserLoginDto; +import com.ecell.internationalize.app.entity.dto.*; import com.ecell.internationalize.app.service.BindingDevice; import com.ecell.internationalize.app.service.UserDeviceBindService; import com.ecell.internationalize.app.service.UserService; @@ -15,6 +12,7 @@ import com.ecell.internationalize.app.util.I18nUtil; import com.ecell.internationalize.app.util.UserAgentUtil; import com.ecell.internationalize.common.core.context.SecurityContextHolder; import com.ecell.internationalize.common.core.entity.Rest; +import com.ecell.internationalize.common.core.utils.StringUtils; import com.ecell.internationalize.common.issue.constant.CommonConstant; import com.ecell.internationalize.common.issue.mqtt.dto.AccountMessage; import com.ecell.internationalize.common.issue.mqtt.dto.AccountMessageChild; @@ -238,6 +236,49 @@ public class UserController { userService.updateById(user); return Rest.ok(I18nUtil.getMessage(FieldConstant.MESSAGES_SUCCESS,request.getHeader("Accept-Language"))); } + + /** + * 忘记密码功能 + * @param userDto 邮箱 + */ + @ApiOperation("修改密码功能") + @PostMapping("send/editPwd") + public Rest ChangePassword(@RequestBody ChangePasswordDto userDto, HttpServletRequest request){ + + if (StringUtils.isEmpty(userDto.getEmail())){ + userDto.setEmail(SecurityContextHolder.getUserName()); + } + logger.info("修改密码邮箱===:"+userDto.getEmail()); + //1.根据email查询当前登陆用户 + LambdaQueryWrapper lambdaQueryWrapper=new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(User::getUserEmail,userDto.getEmail()); + + User user = userService.getBaseMapper().selectOne(lambdaQueryWrapper); + + //2.判断当前用户是否存在 + if (null == user){ + return Rest.fail(I18nUtil.getMessage(FieldConstant.EMAIL_LOGIN_EXIT,request.getHeader("Accept-Language"))); + } + + //2.判断旧密码是否匹配 + if (!SecurityUtils.matchesPassword(userDto.getOldPassword(),user.getPassword())){ + return Rest.fail(I18nUtil.getMessage(FieldConstant.OLD_PASSWORD_ERROR,request.getHeader("Accept-Language"))); + } + + + + + //对新密码进行加密 + String encryptPassword = SecurityUtils.encryptPassword(userDto.getPassword()); + user.setPassword(encryptPassword); + //调用新增接口 + userService.updateById(user); + return Rest.ok(I18nUtil.getMessage(FieldConstant.MESSAGES_SUCCESS,request.getHeader("Accept-Language"))); + } + + + + /** * 查看个人资料 */ diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/entity/dto/ChangePasswordDto.java b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/entity/dto/ChangePasswordDto.java new file mode 100644 index 0000000..b02466c --- /dev/null +++ b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/entity/dto/ChangePasswordDto.java @@ -0,0 +1,30 @@ +package com.ecell.internationalize.app.entity.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class ChangePasswordDto { + /** + * 邮箱 + */ + @ApiModelProperty(example = "邮箱账号") + private String email; + + /** + * 旧密码 + */ + @ApiModelProperty(example = "旧密码") + private String OldPassword; + + /** + * 密码 + */ + @ApiModelProperty(example = "新密码") + private String password; + /** + * APP信息相关 + */ + @ApiModelProperty(hidden = true) + private String userAgent; +} diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages.properties b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages.properties index 1638485..20ad866 100644 --- a/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages.properties +++ b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages.properties @@ -18,5 +18,6 @@ messages.imei.isNull=\u6B64imei\u5728\u540E\u53F0\u7CFB\u7EDF\u4E2D\u4E0D\u5B58\ messages.imei.notAudit=\u6B64imei\u5728\u540E\u53F0\u7CFB\u7EDF\u4E2D\u672A\u901A\u8FC7\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458 messages.maximum.limit.exceeded=\u60A8\u5DF2\u7ECF\u6DFB\u52A0\u7533\u8BF7\u4E866\u4E2A\u8BBE\u5907\u4E0D\u80FD\u5728\u6DFB\u52A0\u5176\u5B83\u8BBE\u5907 messages.device.phone=\u8BBE\u5907\u624B\u673A\u53F7\u4E0D\u80FD\u4E3A\u7A7A -messages.bad.request=不被允许的操作 -messages.user.hasLogin=您的账号已在其他设备登录 \ No newline at end of file +messages.bad.request=\u4E0D\u88AB\u5141\u8BB8\u7684\u64CD\u4F5C +messages.user.hasLogin=\u60A8\u7684\u8D26\u53F7\u5DF2\u5728\u5176\u4ED6\u8BBE\u5907\u767B\u5F55 +messages.password.error=\u65E7\u5BC6\u7801\u9519\u8BEF \ No newline at end of file diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_ru.properties b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_ru.properties index cea0bfe..52d28cc 100644 --- a/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_ru.properties +++ b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_ru.properties @@ -78,4 +78,5 @@ message.chant.video=\u041D\u0435\u0431\u043E\u043B\u044C\u0448\u043E\u0439 \u044 messages.title=\u0418\u043D\u0442\u0435\u0440\u043D\u0430\u0446\u0438\u043E\u043D\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u043A\u0438\u0442\u0430\u0439\u0441\u043A\u043E\u0433\u043E \u044F\u0437\u044B\u043A\u0430 messages.apply.device.model.error=Unable to find the device model, unable to follow messages.whether.apply.error=The device application requires administrator review -messages.apply.bind.error=This device has already been bound, cannot be bound again \ No newline at end of file +messages.apply.bind.error=This device has already been bound, cannot be bound again +messages.password.error=Old password incorrect \ No newline at end of file diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_zh_CN.properties b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_zh_CN.properties index 66e9e0f..d8e8272 100644 --- a/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_zh_CN.properties +++ b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_zh_CN.properties @@ -79,4 +79,5 @@ phone.has.exit=\u624B\u673A\u53F7\u5DF2\u88AB\u4F7F\u7528,\u8BF7\u91CD\u65B0\u8F messages.apply.device.model.error=\u6CA1\u6709\u627E\u5230\u8BE5\u8BBE\u5907\u6A21\u578B\uFF0C\u4E0D\u80FD\u5173\u6CE8 messages.whether.apply.error=\u8BE5\u8BBE\u5907\u7533\u8BF7\u9700\u8981\u7BA1\u7406\u5458\u5BA1\u6838 messages.apply.bind.error=\u5DF2\u7ECF\u7ED1\u5B9A\u8FC7\u8BE5\u8BBE\u5907,\u4E0D\u80FD\u91CD\u590D\u7ED1\u5B9A -messages.ios.automaticApproval=\u7528\u6237\uFF08%s\uFF09\u52A0\u5165\u7FA4\u7EC4 \ No newline at end of file +messages.ios.automaticApproval=\u7528\u6237\uFF08%s\uFF09\u52A0\u5165\u7FA4\u7EC4 +messages.password.error=\u65E7\u5BC6\u7801\u9519\u8BEF \ No newline at end of file diff --git a/ecell-internationalize/ecell-internationalize-common/ecell-internationalize-common-system/src/main/java/com/ecell/internationalize/common/system/constant/FieldConstant.java b/ecell-internationalize/ecell-internationalize-common/ecell-internationalize-common-system/src/main/java/com/ecell/internationalize/common/system/constant/FieldConstant.java index 78b8927..ef18f07 100644 --- a/ecell-internationalize/ecell-internationalize-common/ecell-internationalize-common-system/src/main/java/com/ecell/internationalize/common/system/constant/FieldConstant.java +++ b/ecell-internationalize/ecell-internationalize-common/ecell-internationalize-common-system/src/main/java/com/ecell/internationalize/common/system/constant/FieldConstant.java @@ -221,6 +221,8 @@ public class FieldConstant { public static final String EMAIL_REGISTER_EXIT="messages.email.register.exit"; /** 登录用户不存在*/ public static final String EMAIL_LOGIN_EXIT="messages.login.not.exit"; + /** 旧密码有误*/ + public static final String OLD_PASSWORD_ERROR="messages.password.error"; /** 用户已被停用*/ public static final String EMAIL_STOP="messages.email.stop"; /** 用户密码错误*/ diff --git a/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/service/impl/FactoryLogInfoServiceImpl.java b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/service/impl/FactoryLogInfoServiceImpl.java index d726a11..5e603ed 100644 --- a/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/service/impl/FactoryLogInfoServiceImpl.java +++ b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/service/impl/FactoryLogInfoServiceImpl.java @@ -10,6 +10,7 @@ import com.ecell.internationalize.system.entity.FactoryLogInfo; import com.ecell.internationalize.system.entity.dto.ImeiLogPageDTO; import com.ecell.internationalize.system.mapper.FactoryLogInfoMapper; import com.ecell.internationalize.system.service.FactoryLogInfoService; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; @@ -53,7 +54,7 @@ public class FactoryLogInfoServiceImpl extends ServiceImpl