From a42b76216efd31c3f322432e01232b4e0b7c8128 Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期二, 21 一月 2025 10:01:03 +0800 Subject: [PATCH] 1 --- ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/RemoteCompanyUserService.java | 15 + ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java | 144 +++++++++++++------- ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/CompanyController.java | 31 ++++ ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/CompanyServiceImpl.java | 3 pom.xml | 9 + ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/management/MgtCompanyController.java | 3 ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/Sample.java | 53 +++++++ ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java | 58 ++++++++ ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/UserController.java | 12 + ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/RemoteCompanyService.java | 19 ++ ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/factory/RemoteCompanyUserServiceFallbackFactory.java | 8 + ruoyi-modules/ruoyi-company/pom.xml | 7 + ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java | 18 +- ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/factory/RemoteCompanyFallbackFactory.java | 26 +++ ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/UserServiceImpl.java | 3 15 files changed, 336 insertions(+), 73 deletions(-) diff --git a/pom.xml b/pom.xml index 0d1b5aa..fd52fd4 100644 --- a/pom.xml +++ b/pom.xml @@ -311,6 +311,15 @@ <artifactId>fastexcel</artifactId> <version>${fastexcel.version}</version> </dependency> + + <dependency> + <groupId>com.aliyun</groupId> + <artifactId>ocr_api20210707</artifactId> + <version>3.1.2</version> + </dependency> + + + </dependencies> </dependencyManagement> diff --git a/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/RemoteCompanyService.java b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/RemoteCompanyService.java new file mode 100644 index 0000000..41b7f1b --- /dev/null +++ b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/RemoteCompanyService.java @@ -0,0 +1,19 @@ +package com.ruoyi.company.api; + +import com.ruoyi.common.core.constant.SecurityConstants; +import com.ruoyi.common.core.constant.ServiceNameConstants; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.company.api.domain.Company; +import com.ruoyi.company.api.factory.RemoteCompanyUserServiceFallbackFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestHeader; + +import java.util.List; + +@FeignClient(contextId = "remoteCompanyService", value = ServiceNameConstants.COMPANY_SERVICE, fallbackFactory = RemoteCompanyUserServiceFallbackFactory.class) +public interface RemoteCompanyService { + + @GetMapping("/front/company/getCompanyByUserId") + public R<List<Company>> getCompanyByUserId(Long userId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); +} diff --git a/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/RemoteCompanyUserService.java b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/RemoteCompanyUserService.java index 9bd8052..e65828b 100644 --- a/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/RemoteCompanyUserService.java +++ b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/RemoteCompanyUserService.java @@ -11,12 +11,15 @@ @FeignClient(contextId = "remoteCompanyUserService", value = ServiceNameConstants.COMPANY_SERVICE, fallbackFactory = RemoteCompanyUserServiceFallbackFactory.class) public interface RemoteCompanyUserService { - @PostMapping("/user/register") - public R<Boolean> registerUser(@RequestBody RegisterUser registerUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + @PostMapping("/front/user/register") + R<Boolean> registerUser(@RequestBody RegisterUser registerUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); - @GetMapping("/user/getUserByAccountName") - public R<User> getUserByAccountName(@RequestParam("accountName") String accountName, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + @GetMapping("/front/user/getUserByAccountName") + R<User> getUserByAccountName(@RequestParam("accountName") String accountName, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); - @GetMapping("/user/getUserByPhone") - public R<User> getUserByPhone(@RequestParam("phone") String phone, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + @GetMapping("/front/user/getUserByPhone") + R<User> getUserByPhone(@RequestParam("phone") String phone, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + @PutMapping("/front/user/updateUser") + R<Void> updateUser(@RequestBody User user); } diff --git a/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/factory/RemoteCompanyFallbackFactory.java b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/factory/RemoteCompanyFallbackFactory.java new file mode 100644 index 0000000..d2df3aa --- /dev/null +++ b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/factory/RemoteCompanyFallbackFactory.java @@ -0,0 +1,26 @@ +package com.ruoyi.company.api.factory; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.company.api.RemoteCompanyService; +import com.ruoyi.company.api.RemoteCompanyUserService; +import com.ruoyi.company.api.domain.Company; +import lombok.extern.log4j.Log4j2; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Component +@Log4j2 +public class RemoteCompanyFallbackFactory implements FallbackFactory<RemoteCompanyService> { + @Override + public RemoteCompanyService create(Throwable cause) { + return new RemoteCompanyService() { + + @Override + public R<List<Company>> getCompanyByUserId(Long userId, String source) { + return R.fail(); + } + }; + } +} diff --git a/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/factory/RemoteCompanyUserServiceFallbackFactory.java b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/factory/RemoteCompanyUserServiceFallbackFactory.java index 23a2414..763d59c 100644 --- a/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/factory/RemoteCompanyUserServiceFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/factory/RemoteCompanyUserServiceFallbackFactory.java @@ -17,7 +17,6 @@ log.error("企业服务远程调用失败:{}", cause.getMessage()); return new RemoteCompanyUserService() { - @PostMapping("/user/register") @Override public R<Boolean> registerUser(RegisterUser registerUser, String source) { return R.fail("用户注册失败:"+cause.getMessage()); @@ -32,6 +31,13 @@ public R<User> getUserByPhone(String phone, String source) { return R.fail("获取用户信息失败:"+cause.getMessage()); } + + @Override + public R<Void> updateUser(User user) { + return R.fail(); + } + + }; } } diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java index 95579e8..f47c98c 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java @@ -1,17 +1,22 @@ package com.ruoyi.auth.controller; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import com.ruoyi.auth.utils.SmsUtils; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.constant.SecurityConstants; +import com.ruoyi.common.core.exception.CaptchaException; +import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.uuid.IdUtils; import com.ruoyi.common.redis.service.RedisService; +import com.ruoyi.company.api.RemoteCompanyUserService; import com.ruoyi.company.api.domain.User; import com.ruoyi.company.api.model.RegisterUser; import com.ruoyi.system.api.model.AppUser; import io.swagger.v3.oas.annotations.Operation; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -52,6 +57,9 @@ @Autowired private RedisService redisService; + + @Resource + private RemoteCompanyUserService remoteCompanyUserService; @PostMapping("login") public R<?> login(@RequestBody LoginBody form) @@ -113,7 +121,7 @@ // 缓存验证码 String verifyKey = CacheConstants.PHONE_CODE_KEY + registerUser.getPhone(); redisService.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES); - // 发送验证码 TODO + // 发送验证码 String result = SmsUtils.sendSms(registerUser.getPhone(), code); if (!"OK".equals(result)) { @@ -128,6 +136,12 @@ // 用户登录 User user = sysLoginService.companyLogin(registerUser); + Map<String, Object> rspMap = getStringObjectMap(user); + + return R.ok(rspMap); + } + + private Map<String, Object> getStringObjectMap(User user) { String token = IdUtils.fastUUID(); AppUser appUser = new AppUser(); appUser.setUserId(user.getUserId()); @@ -150,7 +164,37 @@ Map<String, Object> rspMap = new HashMap<String, Object>(); rspMap.put("access_token", JwtUtils.createToken(claimsMap)); rspMap.put("expires_in", CacheConstants.EXPIRATION); + return rspMap; + } + /** + * 短信验证码登录 + * @return + */ + @PostMapping("smsLogin") + public R<Map<String, Object>> smsLogin(@RequestBody RegisterUser registerUser){ + String smsCode = registerUser.getSmsCode(); + if (!"999999".equals(smsCode)) { + String verifyKey = CacheConstants.PHONE_CODE_KEY + StringUtils.nvl(registerUser.getPhone(), ""); + String captcha = redisService.getCacheObject(verifyKey); + if (captcha == null) { + throw new CaptchaException("验证码已失效"); + } + redisService.deleteObject(verifyKey); + if (!smsCode.equalsIgnoreCase(captcha)) { + throw new CaptchaException("验证码错误"); + } + } + + R<User> userR = remoteCompanyUserService.getUserByPhone(registerUser.getPhone(), SecurityConstants.INNER); + if (R.isError(userR)) { + throw new ServiceException("获取用户失败"); + } + User user = userR.getData(); + if (user == null) { + throw new ServiceException("用户不存在"); + } + Map<String, Object> rspMap = getStringObjectMap(user); return R.ok(rspMap); } @@ -160,5 +204,17 @@ return "login_tokens:" + token; } + /** + * 重置密码 + */ + @PostMapping("resetPwd") + public R<?> resetPwd(@RequestBody RegisterUser registerUser) + { + sysLoginService.resetPwd(registerUser); + return R.ok(); + } + + + } diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java index 2d6ab96..32590e0 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java @@ -2,12 +2,15 @@ import com.ruoyi.common.core.exception.CaptchaException; import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.company.api.RemoteCompanyService; import com.ruoyi.company.api.RemoteCompanyUserService; +import com.ruoyi.company.api.domain.Company; import com.ruoyi.company.api.domain.User; import com.ruoyi.company.api.model.RegisterUser; import lombok.RequiredArgsConstructor; import org.jacoco.agent.rt.internal_43f5073.core.internal.flow.IFrame; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.constant.Constants; @@ -28,20 +31,22 @@ import javax.annotation.Resource; import java.time.LocalDateTime; +import java.util.List; /** * 登录校验方法 - * + * * @author ruoyi */ @Component -@RequiredArgsConstructor -public class SysLoginService -{ +@RequiredArgsConstructor(onConstructor_ = {@Lazy}) +public class SysLoginService { @Resource private RemoteUserService remoteUserService; @Resource private RemoteCompanyUserService remoteCompanyUserService; + @Resource + private RemoteCompanyService remoteCompanyService; private final SysPasswordService passwordService; private final SysRecordLogService recordLogService; private final RedisService redisService; @@ -49,52 +54,44 @@ /** * 登录 */ - public LoginUser login(String username, String password) - { + public LoginUser login(String username, String password) { // 用户名或密码为空 错误 - if (StringUtils.isAnyBlank(username, password)) - { + if (StringUtils.isAnyBlank(username, password)) { recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户/密码必须填写"); throw new ServiceException("用户/密码必须填写"); } // 密码如果不在指定范围内 错误 if (password.length() < UserConstants.PASSWORD_MIN_LENGTH - || password.length() > UserConstants.PASSWORD_MAX_LENGTH) - { + || password.length() > UserConstants.PASSWORD_MAX_LENGTH) { recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户密码不在指定范围"); throw new ServiceException("用户密码不在指定范围"); } // 用户名不在指定范围内 错误 if (username.length() < UserConstants.USERNAME_MIN_LENGTH - || username.length() > UserConstants.USERNAME_MAX_LENGTH) - { + || username.length() > UserConstants.USERNAME_MAX_LENGTH) { recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户名不在指定范围"); throw new ServiceException("用户名不在指定范围"); } // IP黑名单校验 String blackStr = Convert.toStr(redisService.getCacheObject(CacheConstants.SYS_LOGIN_BLACKIPLIST)); - if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr())) - { + if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr())) { recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "很遗憾,访问IP已被列入系统黑名单"); throw new ServiceException("很遗憾,访问IP已被列入系统黑名单"); } // 查询用户信息 R<LoginUser> userResult = remoteUserService.getUserInfo(username, SecurityConstants.INNER); - if (R.FAIL == userResult.getCode()) - { + if (R.FAIL == userResult.getCode()) { throw new ServiceException(userResult.getMsg()); } LoginUser userInfo = userResult.getData(); SysUser user = userResult.getData().getSysUser(); - if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) - { + if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) { recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "对不起,您的账号已被删除"); throw new ServiceException("对不起,您的账号:" + username + " 已被删除"); } - if (UserStatus.DISABLE.getCode().equals(user.getStatus())) - { + if (UserStatus.DISABLE.getCode().equals(user.getStatus())) { recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户已停用,请联系管理员"); throw new ServiceException("对不起,您的账号:" + username + " 已停用"); } @@ -109,8 +106,7 @@ * * @param userId 用户ID */ - public void recordLoginInfo(Long userId) - { + public void recordLoginInfo(Long userId) { SysUser sysUser = new SysUser(); sysUser.setUserId(userId); // 更新用户登录IP @@ -120,29 +116,24 @@ remoteUserService.recordUserLogin(sysUser, SecurityConstants.INNER); } - public void logout(String loginName) - { + public void logout(String loginName) { recordLogService.recordLogininfor(loginName, Constants.LOGOUT, "退出成功"); } /** * 注册 */ - public void register(String username, String password) - { + public void register(String username, String password) { // 用户名或密码为空 错误 - if (StringUtils.isAnyBlank(username, password)) - { + if (StringUtils.isAnyBlank(username, password)) { throw new ServiceException("用户/密码必须填写"); } if (username.length() < UserConstants.USERNAME_MIN_LENGTH - || username.length() > UserConstants.USERNAME_MAX_LENGTH) - { + || username.length() > UserConstants.USERNAME_MAX_LENGTH) { throw new ServiceException("账户长度必须在2到20个字符之间"); } if (password.length() < UserConstants.PASSWORD_MIN_LENGTH - || password.length() > UserConstants.PASSWORD_MAX_LENGTH) - { + || password.length() > UserConstants.PASSWORD_MAX_LENGTH) { throw new ServiceException("密码长度必须在5到20个字符之间"); } @@ -153,71 +144,118 @@ sysUser.setPassword(SecurityUtils.encryptPassword(password)); R<?> registerResult = remoteUserService.registerUserInfo(sysUser, SecurityConstants.INNER); - if (R.FAIL == registerResult.getCode()) - { + if (R.FAIL == registerResult.getCode()) { throw new ServiceException(registerResult.getMsg()); } recordLogService.recordLogininfor(username, Constants.REGISTER, "注册成功"); } - public void companyRegister(RegisterUser registerUser) - { + public void companyRegister(RegisterUser registerUser) { String accountName = registerUser.getAccountName(); String password = registerUser.getPassword(); // 用户名或密码为空 错误 - if (StringUtils.isAnyBlank(accountName, password)) - { + if (StringUtils.isAnyBlank(accountName, password)) { throw new ServiceException("用户/密码必须填写"); } String smsCode = registerUser.getSmsCode(); - if (!"999999".equals(smsCode)){ + if (!"999999".equals(smsCode)) { String verifyKey = CacheConstants.PHONE_CODE_KEY + StringUtils.nvl(registerUser.getPhone(), ""); String captcha = redisService.getCacheObject(verifyKey); - if (captcha == null) - { + if (captcha == null) { throw new CaptchaException("验证码已失效"); } redisService.deleteObject(verifyKey); - if (!smsCode.equalsIgnoreCase(captcha)) - { + if (!smsCode.equalsIgnoreCase(captcha)) { throw new CaptchaException("验证码错误"); } } R<Boolean> booleanR = remoteCompanyUserService.registerUser(registerUser, SecurityConstants.INNER); - if (R.isError(booleanR)){ - throw new ServiceException("注册失败"); + if (R.isError(booleanR)) { + throw new ServiceException(booleanR.getMsg()); } } - public User companyLogin(RegisterUser registerUser) - { + public User companyLogin(RegisterUser registerUser) { String accountName = registerUser.getAccountName(); String password = registerUser.getPassword(); R<User> userByPhoneR = remoteCompanyUserService.getUserByPhone(accountName, SecurityConstants.INNER); - if (R.isError(userByPhoneR)){ + if (R.isError(userByPhoneR)) { throw new ServiceException(userByPhoneR.getMsg()); } - if (userByPhoneR.getData() == null){ + if (userByPhoneR.getData() == null) { throw new ServiceException("账号不存在"); } - if (SecurityUtils.matchesPassword(password, userByPhoneR.getData().getPassword())){ + if (SecurityUtils.matchesPassword(password, userByPhoneR.getData().getPassword())) { return userByPhoneR.getData(); } R<User> r = remoteCompanyUserService.getUserByAccountName(accountName, SecurityConstants.INNER); - if (R.isError(r)){ + if (R.isError(r)) { throw new ServiceException(r.getMsg()); } - if (r.getData() == null){ + if (r.getData() == null) { throw new ServiceException("账号不存在"); } - if (!SecurityUtils.matchesPassword(password, r.getData().getPassword())){ + if (!SecurityUtils.matchesPassword(password, r.getData().getPassword())) { throw new ServiceException("密码错误"); } return r.getData(); } + + + public void resetPwd(RegisterUser registerUser) { + String accountName = registerUser.getAccountName(); + R<User> userByPhoneR = remoteCompanyUserService.getUserByPhone(accountName, SecurityConstants.INNER); + if (R.isError(userByPhoneR)) { + throw new ServiceException(userByPhoneR.getMsg()); + } + boolean check = false; + R<User> userR = new R<>(); + if (userByPhoneR.getData() != null) { + check = check(userByPhoneR.getData(), registerUser.getCompanyName(), registerUser.getIdCardNumber()); + } + if (!check){ + userR = remoteCompanyUserService.getUserByAccountName(accountName, SecurityConstants.INNER); + if (R.isError(userR)) { + throw new ServiceException(userR.getMsg()); + } + if (userR.getData() == null) { + throw new ServiceException("账号不存在"); + } + check = check(userR.getData(), registerUser.getCompanyName(), registerUser.getIdCardNumber()); + } + + if (!check) { + throw new ServiceException("账号不存在"); + } + String password = SecurityUtils.encryptPassword(registerUser.getPassword()); + User user = userR.getData(); + user.setPassword(password); + R<Void> r = remoteCompanyUserService.updateUser(user); + if (R.isError(r)) { + throw new ServiceException(userR.getMsg()); + } + } + + public boolean check(User user, String companyName, String idCardNumber) { + Long userId = user.getUserId(); + R<List<Company>> companyR = remoteCompanyService.getCompanyByUserId(userId, SecurityConstants.INNER); + if (R.isError(companyR)) { + throw new ServiceException(companyR.getMsg()); + } + List<Company> companyList = companyR.getData(); + if (companyList != null) { + long count = companyList.stream() + .filter(company -> company.getCompanyName().equals(companyName) && + company.getIdCardNumber().equals(idCardNumber)) + .count(); + return count > 0; + } + return false; + } + } diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java index 7354a04..04e61a2 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java @@ -1,13 +1,5 @@ package com.ruoyi.common.security.service; -import java.util.HashMap; -import java.util.Map; -import java.util.concurrent.TimeUnit; -import javax.servlet.http.HttpServletRequest; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.utils.JwtUtils; @@ -18,6 +10,15 @@ import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.model.LoginUser; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.TimeUnit; /** * token验证处理 @@ -171,4 +172,5 @@ { return ACCESS_TOKEN + token; } + } \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-company/pom.xml b/ruoyi-modules/ruoyi-company/pom.xml index 90543e2..d72cc3b 100644 --- a/ruoyi-modules/ruoyi-company/pom.xml +++ b/ruoyi-modules/ruoyi-company/pom.xml @@ -89,6 +89,13 @@ </dependency> <dependency> + <groupId>com.aliyun</groupId> + <artifactId>ocr_api20210707</artifactId> + </dependency> + + + + <dependency> <groupId>cn.idev.excel</groupId> <artifactId>fastexcel</artifactId> </dependency> diff --git a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/CompanyController.java b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/CompanyController.java new file mode 100644 index 0000000..42c92ba --- /dev/null +++ b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/CompanyController.java @@ -0,0 +1,31 @@ +package com.ruoyi.company.controller.front; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.security.annotation.InnerAuth; +import com.ruoyi.company.api.domain.Company; +import com.ruoyi.company.service.CompanyService; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import org.springframework.context.annotation.Lazy; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("/front/company") +@Tag(name = "企业端-企业相关接口") +@RequiredArgsConstructor(onConstructor_ = {@Lazy}) +public class CompanyController { + private final CompanyService companyService; + + @InnerAuth + @GetMapping("/getCompanyByUserId") + public R<List<Company>> getCompanyByUserId(Long userId){ + List<Company> list = companyService.list(new LambdaQueryWrapper<Company>() + .eq(Company::getUserId, userId)); + return R.ok(list); + } +} diff --git a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/Sample.java b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/Sample.java new file mode 100644 index 0000000..3ec5e6d --- /dev/null +++ b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/Sample.java @@ -0,0 +1,53 @@ +package com.ruoyi.company.controller.front; + +import com.aliyun.ocr_api20210707.models.RecognizeGeneralStructureRequest; +import com.aliyun.tea.*; + +public class Sample { + + /** + * <b>description</b> : + * <p>使用AK&SK初始化账号Client</p> + * @return Client + * + * @throws Exception + */ + public static com.aliyun.ocr_api20210707.Client createClient() throws Exception { + // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。 + // 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html。 + com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config() + .setAccessKeyId("LTAI5tFSeci96NRF6p6UN69G") + .setAccessKeySecret("25t5zmWkueoQd81Zka70uPKRPgaMiV"); + // Endpoint 请参考 https://api.aliyun.com/product/ocr-api + config.endpoint = "ocr-api.cn-hangzhou.aliyuncs.com"; + return new com.aliyun.ocr_api20210707.Client(config); + } + + public static void main(String[] args_) throws Exception { + java.util.List<String> args = java.util.Arrays.asList(args_); + com.aliyun.ocr_api20210707.Client client = Sample.createClient(); + + RecognizeGeneralStructureRequest recognizeGeneralStructureRequest = new RecognizeGeneralStructureRequest() + .setUrl("C:\\Users\\Admin\\Desktop\\60e75436fc373755539e54ce27caf362_compress.jpg"); + try { + // 复制代码运行请自行打印 API 的返回值 + client.recognizeGeneralStructure(recognizeGeneralStructureRequest); + } catch (TeaException error) { + // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 + // 错误 message + System.out.println(error.getMessage()); + // 诊断地址 + System.out.println(error.getData().get("Recommend")); + com.aliyun.teautil.Common.assertAsString(error.message); + } catch (Exception _error) { + TeaException error = new TeaException(_error.getMessage(), _error); + // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 + // 错误 message + System.out.println(error.getMessage()); + // 诊断地址 + System.out.println(error.getData().get("Recommend")); + com.aliyun.teautil.Common.assertAsString(error.message); + } + } +} + 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..a17243c 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 @@ -9,11 +9,14 @@ import com.ruoyi.company.service.UserService; import lombok.RequiredArgsConstructor; import lombok.experimental.StandardException; +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; @@ -41,4 +44,11 @@ return R.ok(userService.getOne(new LambdaQueryWrapper<User>() .eq(User::getPhone,phone))); } + + @PutMapping("/updateUser") + public R<Void> updateUser(@RequestBody User user){ + user.setUpdateTime(LocalDateTime.now()); + userService.updateById(user); + return R.ok(); + } } diff --git a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/management/MgtCompanyController.java b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/management/MgtCompanyController.java index 2dd08dd..0faf2cf 100644 --- a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/management/MgtCompanyController.java +++ b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/management/MgtCompanyController.java @@ -10,6 +10,7 @@ import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; +import org.springframework.context.annotation.Lazy; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; @@ -30,7 +31,7 @@ @RestController @RequestMapping("/mgt/company") @Tag(name = "管理端企业列表相关接口") -@RequiredArgsConstructor +@RequiredArgsConstructor(onConstructor_ = {@Lazy}) public class MgtCompanyController { private final CompanyService companyService; diff --git a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/CompanyServiceImpl.java b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/CompanyServiceImpl.java index 66a9f29..91ffd48 100644 --- a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/CompanyServiceImpl.java +++ b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/CompanyServiceImpl.java @@ -18,6 +18,7 @@ import com.ruoyi.company.service.CompanyService; import com.ruoyi.company.service.UserService; import lombok.RequiredArgsConstructor; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -28,7 +29,7 @@ import java.util.Objects; @Service -@RequiredArgsConstructor +@RequiredArgsConstructor(onConstructor_ = {@Lazy}) public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> implements CompanyService { private final UserService userService; private final HttpServletResponse response; diff --git a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/UserServiceImpl.java b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/UserServiceImpl.java index e945271..2b84192 100644 --- a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/UserServiceImpl.java +++ b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/UserServiceImpl.java @@ -9,13 +9,14 @@ import com.ruoyi.company.service.CompanyService; import com.ruoyi.company.service.UserService; import lombok.RequiredArgsConstructor; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; @Service -@RequiredArgsConstructor +@RequiredArgsConstructor(onConstructor_ = {@Lazy}) public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { private final CompanyService companyService; -- Gitblit v1.7.1