From f981c1f30461ef9a40a39338aa77e511ffc24d1f Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期二, 21 一月 2025 16:56:39 +0800 Subject: [PATCH] 1 --- ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/UserController.java | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 101 insertions(+), 5 deletions(-) diff --git a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/UserController.java b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/UserController.java index ce70eb6..e44e2e9 100644 --- a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/UserController.java +++ b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/UserController.java @@ -1,31 +1,58 @@ package com.ruoyi.company.controller.front; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.exception.CaptchaException; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.bean.BeanUtils; +import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.annotation.InnerAuth; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.company.api.domain.Company; import com.ruoyi.company.api.domain.User; +import com.ruoyi.company.api.domain.dto.MgtCompanyDTO; import com.ruoyi.company.api.model.RegisterUser; +import com.ruoyi.company.api.model.UpdatePassword; +import com.ruoyi.company.api.model.UpdatePhone; import com.ruoyi.company.api.model.UserDetail; +import com.ruoyi.company.service.CompanyService; import com.ruoyi.company.service.UserService; +import com.ruoyi.system.api.model.AppUser; +import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; import lombok.experimental.StandardException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.web.bind.annotation.*; + +import java.time.LocalDateTime; @RestController @RequestMapping("/front/user") -@RequiredArgsConstructor +@RequiredArgsConstructor(onConstructor_ = {@Lazy}) public class UserController { private final UserService userService; + private final CompanyService companyService; + private final RedisService redisService; @PostMapping("/register") - public R register(@RequestBody RegisterUser registerUser) { - userService.register(registerUser); + public R register(@RequestBody MgtCompanyDTO mgtCompanyDTO) { + companyService.saveCompany(mgtCompanyDTO); return R.ok(); } @GetMapping("/getUserDetail") - public R<UserDetail> getUserDetail(Long userId) { - return R.ok(new UserDetail()); + @Operation(summary = "获取用户详情",tags = {"企业端"}) + public R<UserDetail> getUserDetail() { + AppUser appLoginUser = SecurityUtils.getAppLoginUser(); + User user = userService.getById(appLoginUser.getUserId()); + Company company = companyService.getOne(new LambdaQueryWrapper<Company>() + .eq(Company::getUserId, user.getUserId())); + UserDetail userDetail = new UserDetail(); + BeanUtils.copyProperties(user, userDetail); + BeanUtils.copyProperties(company, userDetail); + return R.ok(userDetail); } @GetMapping("/getUserByAccountName") @@ -41,4 +68,73 @@ return R.ok(userService.getOne(new LambdaQueryWrapper<User>() .eq(User::getPhone,phone))); } + + @PutMapping("/updateUser") + @InnerAuth + public R<Void> updateUser(@RequestBody User user){ + user.setUpdateTime(LocalDateTime.now()); + userService.updateById(user); + return R.ok(); + } + + /** + * 编辑联系人信息 + */ + @PutMapping("/updateUserDetail") + @Operation(summary = "编辑联系人信息",tags = {"企业端"}) + public R<Void> updateUserDetail(@RequestBody UserDetail userDetail) { + User user = userService.getById(userDetail.getUserId()); + BeanUtils.copyProperties(userDetail, user); + userService.updateById(user); + return R.ok(); + } + + /** + * 修改手机号 + */ + @PutMapping("/updatePhone") + @Operation(summary = "修改手机号",tags = {"企业端"}) + public R<Void> updatePhone(@RequestBody UpdatePhone updatePhone) { + AppUser appLoginUser = SecurityUtils.getAppLoginUser(); + User user = userService.getById(appLoginUser.getUserId()); + if (!user.getPhone().equals(updatePhone.getOldPhone())) { + return R.fail("旧手机号错误"); + } + String verifyKey = CacheConstants.PHONE_CODE_KEY + StringUtils.nvl(user.getPhone(), ""); + String captcha = redisService.getCacheObject(verifyKey); + if (captcha == null) { + throw new CaptchaException("验证码已失效"); + } + redisService.deleteObject(verifyKey); + if (!updatePhone.getCode().equalsIgnoreCase(captcha)) { + throw new CaptchaException("验证码错误"); + } + + String password = SecurityUtils.encryptPassword(updatePhone.getPassword()); + if (!user.getPassword().equals(password)) { + return R.fail("密码错误"); + } + user.setPhone(updatePhone.getNewPhone()); + userService.updateById(user); + return R.ok(); + } + + /** + * 修改密码 + */ + @PutMapping("/updatePassword") + @Operation(summary = "修改密码",tags = {"企业端"}) + public R<Void> updatePassword(@RequestBody UpdatePassword updatePassword) { + AppUser appLoginUser = SecurityUtils.getAppLoginUser(); + User user = userService.getById(appLoginUser.getUserId()); + if (!SecurityUtils.matchesPassword(updatePassword.getOldPassword(), user.getPassword())) { + return R.fail("旧密码错误"); + } + if (!updatePassword.getNewPassword().equals(updatePassword.getConfirmPassword())){ + return R.fail("两次密码不一致"); + } + user.setPassword(SecurityUtils.encryptPassword(updatePassword.getNewPassword())); + userService.updateById(user); + return R.ok(); + } } -- Gitblit v1.7.1