From ee44a74a7f3674b1f019c823f3f459a2b08c8bd6 Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期一, 20 一月 2025 16:02:52 +0800 Subject: [PATCH] 1 --- ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/UserService.java | 4 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java | 5 ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml | 4 ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/RemoteCompanyUserService.java | 17 + ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/CompanyServiceImpl.java | 11 pom.xml | 6 ruoyi-common/ruoyi-common-security/pom.xml | 5 ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/SpringDocAutoConfiguration.java | 17 ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/domain/Company.java | 73 ++++ ruoyi-api/ruoyi-api-company/pom.xml | 36 ++ ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/model/RegisterUser.java | 86 +++++ ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/aspect/SpringTxAspect.java | 102 ++++++ ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/ResourcesConfig.java | 13 ruoyi-modules/ruoyi-system/pom.xml | 13 ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/UserController.java | 25 + ruoyi-api/ruoyi-api-company/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports | 1 ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/mapper/CompanyMapper.java | 7 ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java | 57 ++ ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/CacheConstants.java | 5 ruoyi-gateway/src/main/resources/bootstrap.yml | 8 ruoyi-auth/pom.xml | 12 ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/mapper/UserMapper.java | 2 ruoyi-ui/vue.config.js | 2 ruoyi-auth/src/main/resources/bootstrap.yml | 4 ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/utils/ObsUploadUtil.java | 91 +++++ ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/domain/User.java | 10 ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/model/UserDetail.java | 46 ++ /dev/null | 38 -- ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java | 46 ++ ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/factory/RemoteCompanyUserServiceFallbackFactory.java | 26 + ruoyi-modules/ruoyi-company/pom.xml | 5 ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/RouterFunctionConfiguration.java | 69 +++ ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml | 4 ruoyi-api/pom.xml | 1 ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/CompanyService.java | 7 ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/UserServiceImpl.java | 47 ++ ruoyi-api/ruoyi-api-system/pom.xml | 5 ruoyi-modules/ruoyi-company/src/main/resources/bootstrap.yml | 4 38 files changed, 825 insertions(+), 89 deletions(-) diff --git a/pom.xml b/pom.xml index 4ddb815..94822a2 100644 --- a/pom.xml +++ b/pom.xml @@ -282,6 +282,12 @@ <version>${ruoyi.version}</version> </dependency> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-api-company</artifactId> + <version>${ruoyi.version}</version> + </dependency> + </dependencies> </dependencyManagement> diff --git a/ruoyi-api/pom.xml b/ruoyi-api/pom.xml index d60796c..cfd9354 100644 --- a/ruoyi-api/pom.xml +++ b/ruoyi-api/pom.xml @@ -10,6 +10,7 @@ <modules> <module>ruoyi-api-system</module> + <module>ruoyi-api-company</module> </modules> <artifactId>ruoyi-api</artifactId> diff --git a/ruoyi-api/ruoyi-api-company/pom.xml b/ruoyi-api/ruoyi-api-company/pom.xml new file mode 100644 index 0000000..c32bcc8 --- /dev/null +++ b/ruoyi-api/ruoyi-api-company/pom.xml @@ -0,0 +1,36 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-api</artifactId> + <version>3.6.5</version> + </parent> + <modelVersion>4.0.0</modelVersion> + + <artifactId>ruoyi-api-company</artifactId> + + <description> + ruoyi-api-company企业模块 + </description> + + <dependencies> + + <!-- RuoYi Common Core--> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-common-core</artifactId> + </dependency> + + <!--lombok--> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + </dependency> + + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-common-swagger</artifactId> + </dependency> + + </dependencies> +</project> 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 new file mode 100644 index 0000000..7f7221d --- /dev/null +++ b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/RemoteCompanyUserService.java @@ -0,0 +1,17 @@ +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.factory.RemoteCompanyUserServiceFallbackFactory; +import com.ruoyi.company.api.model.RegisterUser; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestHeader; + +@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); +} diff --git a/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/domain/Company.java b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/domain/Company.java new file mode 100644 index 0000000..a0c113f --- /dev/null +++ b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/domain/Company.java @@ -0,0 +1,73 @@ +package com.ruoyi.company.api.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +@TableName("t_company") +public class Company { + + /** 主键 */ + @TableId + private Long id; + + /** 公司名称 */ + private String companyName; + + /** 统一社会信用代码 */ + private String socialCode; + + /** 省份代码 */ + private String provinceCode; + + /** 城市代码 */ + private String cityCode; + + /** 区域代码 */ + private String districtCode; + + /** 经营地址 */ + private String businessAddress; + + /** 身份证正面照片 */ + private String idCardFrontUrl; + + /** 身份证反面照片 */ + private String idCardBackUrl; + + /** 法人姓名 */ + private String legalPersonName; + + /** 身份证号码 */ + private String idCardNumber; + + /** 营业执照照片 */ + private String businessLicenseUrl; + + /** 资质类目:1-再生资源回收备案资质 2-家电拆解资质 3-报废机动车回收拆解资质 4-危险废物经营许可证 0-其他证书 */ + private Integer category; + + /** 拆解企业资质证书图片地址 */ + private String certificateUrl; + + /** 联系人姓名 */ + private String contactName; + + /** 联系人手机号 */ + private String contactPhone; + + /** 联系人邮箱 */ + private String email; + + /** 创建时间 */ + private LocalDateTime createTime; + + /** 更新时间 */ + private LocalDateTime updateTime; + + /** 是否删除 */ + private Boolean isDelete; +} diff --git a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/domain/User.java b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/domain/User.java similarity index 70% rename from ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/domain/User.java rename to ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/domain/User.java index f052baf..da29d4c 100644 --- a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/domain/User.java +++ b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/domain/User.java @@ -1,4 +1,4 @@ -package com.ruoyi.company.domain; +package com.ruoyi.company.api.domain; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; @@ -11,20 +11,28 @@ @Data public class User { @TableId + /** 用户id */ private Long userId; + /** 账号 */ private String accountName; + /** 密码 */ private String password; + /** 手机号 */ private String phone; + /** 状态:1-激活 2-禁用 */ private Integer status; + /** 创建时间 */ private LocalDateTime createTime; + /** 更新时间 */ private LocalDateTime updateTime; + /** 是否删除 */ @TableLogic private Boolean isDelete; } 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 new file mode 100644 index 0000000..8c1b9e7 --- /dev/null +++ b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/factory/RemoteCompanyUserServiceFallbackFactory.java @@ -0,0 +1,26 @@ +package com.ruoyi.company.api.factory; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.company.api.RemoteCompanyUserService; +import com.ruoyi.company.api.model.RegisterUser; +import lombok.extern.log4j.Log4j2; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.PostMapping; + +@Component +@Log4j2 +public class RemoteCompanyUserServiceFallbackFactory implements FallbackFactory<RemoteCompanyUserService> { + @Override + public RemoteCompanyUserService create(Throwable cause) { + log.error("企业服务远程调用失败:{}", cause.getMessage()); + return new RemoteCompanyUserService() { + + @PostMapping("/user/register") + @Override + public R<Boolean> registerUser(RegisterUser registerUser, String source) { + return R.fail("用户注册失败:"+cause.getMessage()); + } + }; + } +} diff --git a/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/model/RegisterUser.java b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/model/RegisterUser.java new file mode 100644 index 0000000..f40b755 --- /dev/null +++ b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/model/RegisterUser.java @@ -0,0 +1,86 @@ +package com.ruoyi.company.api.model; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data + +public class RegisterUser { + @Schema(description = "账号名称") + private String accountName; + + @Schema(description = "密码") + private String password; + + @Schema(description = "手机号") + private String phone; + + @Schema(description = "短信验证码") + private String smsCode; + + /** 公司名称 */ + @Schema(description = "公司名称") + private String companyName; + + /** 统一社会信用代码 */ + @Schema(description = "统一社会信用代码") + private String socialCode; + + /** 省份代码 */ + @Schema(description = "省份代码") + private String provinceCode; + + /** 城市代码 */ + @Schema(description = "城市代码") + private String cityCode; + + /** 区域代码 */ + @Schema(description = "区域代码") + private String districtCode; + + /** 经营地址 */ + @Schema(description = "经营地址") + private String businessAddress; + + /** 身份证正面照片 */ + @Schema(description = "身份证正面照片") + private String idCardFrontUrl; + + /** 身份证反面照片 */ + @Schema(description = "身份证反面照片") + private String idCardBackUrl; + + /** 法人姓名 */ + @Schema(description = "法人姓名") + private String legalPersonName; + + /** 身份证号码 */ + @Schema(description = "身份证号码") + private String idCardNumber; + + /** 营业执照照片 */ + @Schema(description = "营业执照照片") + private String businessLicenseUrl; + + /** 资质类目:1-再生资源回收备案资质 2-家电拆解资质 3-报废机动车回收拆解资质 4-危险废物经营许可证 0-其他证书 */ + @Schema(description = "资质类目:1-再生资源回收备案资质 2-家电拆解资质 3-报废机动车回收拆解资质 4-危险废物经营许可证 0-其他证书") + private Integer category; + + /** 拆解企业资质证书图片地址 */ + @Schema(description = "拆解企业资质证书图片地址") + private String certificateUrl; + + /** 联系人姓名 */ + @Schema(description = "联系人姓名") + private String contactName; + + /** 联系人手机号 */ + @Schema(description = "联系人手机号") + private String contactPhone; + + /** 联系人邮箱 */ + @Schema(description = "联系人邮箱") + private String email; + + +} diff --git a/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/model/UserDetail.java b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/model/UserDetail.java new file mode 100644 index 0000000..3e38675 --- /dev/null +++ b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/model/UserDetail.java @@ -0,0 +1,46 @@ +package com.ruoyi.company.api.model; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class UserDetail { + + private Long userId; + + @Schema(description = "公司名称") + private String companyName; + + /** 统一社会信用代码 */ + private String socialCode; + + /** 联系人姓名 */ + private String contactName; + + /** 联系人手机号 */ + private String contactPhone; + + /** 联系人邮箱 */ + private String email; + + /** 账号 */ + private String accountName; + + /** 用户名称 */ + private String userName; + + /** 注册时间 */ + private LocalDateTime registerTime; + + /** 绑定手机号 */ + private String phone; + + /** 账号ID */ + private Long accountId; + + /** 登录密码 */ + private String password; + +} diff --git a/ruoyi-api/ruoyi-api-company/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-api/ruoyi-api-company/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..859acba --- /dev/null +++ b/ruoyi-api/ruoyi-api-company/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +com.ruoyi.company.api.factory.RemoteCompanyUserServiceFallbackFactory \ No newline at end of file diff --git a/ruoyi-api/ruoyi-api-system/pom.xml b/ruoyi-api/ruoyi-api-system/pom.xml index b9e9123..4f5d5a7 100644 --- a/ruoyi-api/ruoyi-api-system/pom.xml +++ b/ruoyi-api/ruoyi-api-system/pom.xml @@ -22,6 +22,11 @@ <groupId>com.ruoyi</groupId> <artifactId>ruoyi-common-core</artifactId> </dependency> + + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-common-swagger</artifactId> + </dependency> </dependencies> diff --git a/ruoyi-auth/pom.xml b/ruoyi-auth/pom.xml index 912b1c8..da69cb9 100644 --- a/ruoyi-auth/pom.xml +++ b/ruoyi-auth/pom.xml @@ -51,6 +51,18 @@ <groupId>com.ruoyi</groupId> <artifactId>ruoyi-common-security</artifactId> </dependency> + + <!--lombok--> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + </dependency> + + <!-- RuoYi Common Swagger --> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-common-swagger</artifactId> + </dependency> </dependencies> 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 9738e47..53e7f52 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,6 +1,12 @@ package com.ruoyi.auth.controller; import javax.servlet.http.HttpServletRequest; + +import com.ruoyi.common.core.constant.CacheConstants; +import com.ruoyi.common.core.constant.Constants; +import com.ruoyi.common.redis.service.RedisService; +import com.ruoyi.company.api.model.RegisterUser; +import io.swagger.v3.oas.annotations.Operation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -17,6 +23,8 @@ import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.model.LoginUser; +import java.util.concurrent.TimeUnit; + /** * token 控制 * @@ -30,6 +38,10 @@ @Autowired private SysLoginService sysLoginService; + + + @Autowired + private RedisService redisService; @PostMapping("login") public R<?> login(@RequestBody LoginBody form) @@ -68,11 +80,39 @@ return R.ok(); } - @PostMapping("register") - public R<?> register(@RequestBody RegisterBody registerBody) + + + @PostMapping("companyRegister") + @Operation(summary = "用户注册接口",description = "用户注册接口") + public R<?> companyRegister(@RequestBody RegisterUser registerUser) { // 用户注册 - sysLoginService.register(registerBody.getUsername(), registerBody.getPassword()); + sysLoginService.companyRegister(registerUser); return R.ok(); } + + /** + * 发送短信验证码 + */ + @PostMapping("sendSms") + public R<?> sendSms(@RequestBody RegisterUser registerUser) + { + // 验证码生成 + String code = String.valueOf(Math.random()).substring(2, 6); + // 缓存验证码 + String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + registerUser.getPhone(); + redisService.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES); + // 发送验证码 TODO + + return R.ok(code); + } + + @PostMapping("companyLogin") + public R<?> companyLogin(@RequestBody RegisterUser registerUser) + { + // 用户登录 + LoginUser userInfo = sysLoginService.login(registerUser.getPhone(), registerUser.getSmsCode()); + // 获取登录token + return R.ok(tokenService.createToken(userInfo)); + } } 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 ffd79e1..8a0b657 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 @@ -1,5 +1,11 @@ package com.ruoyi.auth.service; +import com.ruoyi.common.core.exception.CaptchaException; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.company.api.RemoteCompanyUserService; +import com.ruoyi.company.api.domain.User; +import com.ruoyi.company.api.model.RegisterUser; +import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.ruoyi.common.core.constant.CacheConstants; @@ -19,25 +25,25 @@ import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.model.LoginUser; +import javax.annotation.Resource; +import java.time.LocalDateTime; + /** * 登录校验方法 * * @author ruoyi */ @Component +@RequiredArgsConstructor public class SysLoginService { - @Autowired + @Resource private RemoteUserService remoteUserService; - - @Autowired - private SysPasswordService passwordService; - - @Autowired - private SysRecordLogService recordLogService; - - @Autowired - private RedisService redisService; + @Resource + private RemoteCompanyUserService remoteCompanyUserService; + private final SysPasswordService passwordService; + private final SysRecordLogService recordLogService; + private final RedisService redisService; /** * 登录 @@ -152,4 +158,35 @@ } recordLogService.recordLogininfor(username, Constants.REGISTER, "注册成功"); } + + public void companyRegister(RegisterUser registerUser) + { + String accountName = registerUser.getAccountName(); + String password = registerUser.getPassword(); + // 用户名或密码为空 错误 + if (StringUtils.isAnyBlank(accountName, password)) + { + throw new ServiceException("用户/密码必须填写"); + } + 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("验证码错误"); + } + } + remoteCompanyUserService.registerUser(registerUser, SecurityConstants.INNER); + } + + + public void companyLogin(RegisterUser registerUser) + { + } } diff --git a/ruoyi-auth/src/main/resources/bootstrap.yml b/ruoyi-auth/src/main/resources/bootstrap.yml index 43c2e63..574d331 100644 --- a/ruoyi-auth/src/main/resources/bootstrap.yml +++ b/ruoyi-auth/src/main/resources/bootstrap.yml @@ -14,10 +14,10 @@ nacos: discovery: # 服务注册地址 - server-addr: 127.0.0.1:8848 + server-addr: 192.168.110.111:8848 config: # 配置中心地址 - server-addr: 127.0.0.1:8848 + server-addr: 192.168.110.111:8848 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/aspect/SpringTxAspect.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/aspect/SpringTxAspect.java new file mode 100644 index 0000000..089eb9c --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/aspect/SpringTxAspect.java @@ -0,0 +1,102 @@ +package com.ruoyi.common.core.aspect; + + +import org.aspectj.lang.annotation.Aspect; +import org.springframework.aop.Advisor; +import org.springframework.aop.aspectj.AspectJExpressionPointcut; +import org.springframework.aop.support.DefaultPointcutAdvisor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.TransactionDefinition; +import org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource; +import org.springframework.transaction.interceptor.RollbackRuleAttribute; +import org.springframework.transaction.interceptor.RuleBasedTransactionAttribute; +import org.springframework.transaction.interceptor.TransactionInterceptor; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + +/** + * 全局事务切面配置 + */ +@Aspect +@Configuration +public class SpringTxAspect { + + /** + * 切面,根据自己的项目定义不同的表达式execution + **/ + private static final String AOP_POINTCUT_EXPRESSION = "execution(* com.ruoyi.*.service..*.*(..))"; + @Resource + private PlatformTransactionManager transactionManager; + + /** + * 增强(事务)的属性的配置 + * + * @param + * @return TransactionInterceptor + * @title: txAdvice + * @author luofl 2025-1-20 + * @Description: 配置 + */ + @SuppressWarnings({"unchecked", "rawtypes"}) + @Bean + public TransactionInterceptor txAdvice() { + NameMatchTransactionAttributeSource txAttributeS = new NameMatchTransactionAttributeSource(); + RuleBasedTransactionAttribute requiredAttr = new RuleBasedTransactionAttribute(); + // PROPAGATION_REQUIRED:如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中 + requiredAttr.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); + // 抛出异常后执行切点回滚 + requiredAttr.setRollbackRules(Collections.singletonList(new RollbackRuleAttribute(Exception.class))); + // + RuleBasedTransactionAttribute supportsAttr = new RuleBasedTransactionAttribute(); + // PROPAGATION_SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行 + supportsAttr.setPropagationBehavior(TransactionDefinition.PROPAGATION_SUPPORTS); + // 只读事务,不做更新操作 + supportsAttr.setReadOnly(true); + + // 注意:方法名称来自类匹配的到方法【save*, “*”表示匹配任意個字符】 + Map txMethod = new HashMap(); + txMethod.put("save*", requiredAttr); + txMethod.put("insert*", requiredAttr); + txMethod.put("add*", requiredAttr); + txMethod.put("update*", requiredAttr); + txMethod.put("modify*", requiredAttr); + txMethod.put("remove*", requiredAttr); + txMethod.put("delete*", requiredAttr); + txMethod.put("bind*", requiredAttr); + txMethod.put("unbind*", requiredAttr); + txMethod.put("create*", requiredAttr); + txMethod.put("change*", requiredAttr); + txMethod.put("register*", requiredAttr); + // readOnly = true + txMethod.put("select*", supportsAttr); + txMethod.put("get*", supportsAttr); + txMethod.put("find*", supportsAttr); + txMethod.put("query*", supportsAttr); + txMethod.put("read*", supportsAttr); + txMethod.put("check*", supportsAttr); + // + txAttributeS.setNameMap(txMethod); + TransactionInterceptor txAdvice = new TransactionInterceptor(transactionManager, txAttributeS); + return txAdvice; + } + + /** + * AOP配置定义切面和切点的信息 + * + * @return Advisor + * @title: txAdviceAdvisor + * @author luofl 2025-1-20 + * @Description: AdvisorBean + */ + @Bean + public Advisor txAdviceAdvisor() { + AspectJExpressionPointcut pointcut = new AspectJExpressionPointcut(); + pointcut.setExpression(AOP_POINTCUT_EXPRESSION); + return new DefaultPointcutAdvisor(pointcut, txAdvice()); + } +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/CacheConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/CacheConstants.java index 1d2510e..ff161d4 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/CacheConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/CacheConstants.java @@ -38,6 +38,11 @@ public static final String CAPTCHA_CODE_KEY = "captcha_codes:"; /** + * 手机验证码 redis key + */ + public static final String PHONE_CODE_KEY = "phone_codes:"; + + /** * 参数管理 cache key */ public static final String SYS_CONFIG_KEY = "sys_config:"; diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java index 421a322..33600e6 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java @@ -18,6 +18,11 @@ public static final String SYSTEM_SERVICE = "ruoyi-system"; /** + * 企业模块的serviceid + */ + public static final String COMPANY_SERVICE = "ruoyi-company"; + + /** * 文件服务的serviceid */ public static final String FILE_SERVICE = "ruoyi-file"; diff --git a/ruoyi-common/ruoyi-common-security/pom.xml b/ruoyi-common/ruoyi-common-security/pom.xml index 487a130..fc15b5b 100644 --- a/ruoyi-common/ruoyi-common-security/pom.xml +++ b/ruoyi-common/ruoyi-common-security/pom.xml @@ -28,6 +28,11 @@ <artifactId>ruoyi-api-system</artifactId> </dependency> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-api-company</artifactId> + </dependency> + <!-- RuoYi Common Redis--> <dependency> <groupId>com.ruoyi</groupId> diff --git a/ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/SpringDocAutoConfiguration.java b/ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/SpringDocAutoConfiguration.java index 77b6ee6..3fddaba 100644 --- a/ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/SpringDocAutoConfiguration.java +++ b/ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/SpringDocAutoConfiguration.java @@ -2,6 +2,9 @@ import java.util.ArrayList; import java.util.List; + +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; @@ -27,12 +30,13 @@ @ConditionalOnMissingBean(OpenAPI.class) public OpenAPI openApi(SpringDocProperties properties) { - return new OpenAPI().components(new Components() - // 设置认证的请求头 - .addSecuritySchemes("apikey", securityScheme())) - .addSecurityItem(new SecurityRequirement().addList("apikey")) - .info(convertInfo(properties.getInfo())) - .servers(servers(properties.getGatewayUrl())); + OpenAPI servers = new OpenAPI().components(new Components() + // 设置认证的请求头 + .addSecuritySchemes("apikey", securityScheme())) + .addSecurityItem(new SecurityRequirement().addList("apikey")) + .info(convertInfo(properties.getInfo())) + .servers(servers(properties.getGatewayUrl())); + return servers; } public SecurityScheme securityScheme() @@ -42,7 +46,6 @@ .in(SecurityScheme.In.HEADER) .scheme("Bearer"); } - private Info convertInfo(SpringDocProperties.InfoProperties infoProperties) { Info info = new Info(); diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/RouterFunctionConfiguration.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/RouterFunctionConfiguration.java index db3c94e..72648bd 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/RouterFunctionConfiguration.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/RouterFunctionConfiguration.java @@ -1,13 +1,23 @@ package com.ruoyi.gateway.config; +import com.ruoyi.gateway.handler.ValidateCodeHandler; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; +import org.springframework.http.server.reactive.ServerHttpRequest; +import org.springframework.http.server.reactive.ServerHttpResponse; +import org.springframework.web.cors.reactive.CorsUtils; import org.springframework.web.reactive.function.server.RequestPredicates; import org.springframework.web.reactive.function.server.RouterFunction; import org.springframework.web.reactive.function.server.RouterFunctions; -import com.ruoyi.gateway.handler.ValidateCodeHandler; +import org.springframework.web.server.ServerWebExchange; +import org.springframework.web.server.WebFilter; +import org.springframework.web.server.WebFilterChain; +import reactor.core.publisher.Mono; /** * 路由配置信息 @@ -15,17 +25,50 @@ * @author ruoyi */ @Configuration -public class RouterFunctionConfiguration -{ - @Autowired - private ValidateCodeHandler validateCodeHandler; +public class RouterFunctionConfiguration { - @SuppressWarnings("rawtypes") - @Bean - public RouterFunction routerFunction() - { - return RouterFunctions.route( - RequestPredicates.GET("/code").and(RequestPredicates.accept(MediaType.TEXT_PLAIN)), - validateCodeHandler); - } + /** + * 这里为支持的请求头,如果有自定义的header字段请自己添加 + */ + private static final String ALLOWED_HEADERS = "X-Requested-With, Content-Type, Authorization, credential, X-XSRF-TOKEN, token, username, client, request-origion, sign, nonce_str, timestamp"; + private static final String ALLOWED_METHODS = "GET,POST,PUT,DELETE,OPTIONS,HEAD"; + private static final String ALLOWED_ORIGIN = "*"; + private static final String ALLOWED_EXPOSE = "*"; + private static final String MAX_AGE = "18000L"; + + @Autowired + private ValidateCodeHandler validateCodeHandler; + + @SuppressWarnings("rawtypes") + @Bean + public RouterFunction routerFunction() { + return RouterFunctions.route( + RequestPredicates.GET("/code").and(RequestPredicates.accept(MediaType.TEXT_PLAIN)), + validateCodeHandler); + } + + /** + * 跨域配置 + */ + @Bean + public WebFilter corsFilter() { + return (ServerWebExchange ctx, WebFilterChain chain) -> { + ServerHttpRequest request = ctx.getRequest(); + if (CorsUtils.isCorsRequest(request)) { + ServerHttpResponse response = ctx.getResponse(); + HttpHeaders headers = response.getHeaders(); + headers.add("Access-Control-Allow-Headers", ALLOWED_HEADERS); + headers.add("Access-Control-Allow-Methods", ALLOWED_METHODS); + headers.add("Access-Control-Allow-Origin", ALLOWED_ORIGIN); + headers.add("Access-Control-Expose-Headers", ALLOWED_EXPOSE); + headers.add("Access-Control-Max-Age", MAX_AGE); + headers.add("Access-Control-Allow-Credentials", "true"); + if (request.getMethod() == HttpMethod.OPTIONS) { + response.setStatusCode(HttpStatus.OK); + return Mono.empty(); + } + } + return chain.filter(ctx); + }; + } } diff --git a/ruoyi-gateway/src/main/resources/bootstrap.yml b/ruoyi-gateway/src/main/resources/bootstrap.yml index 052f3d9..ed0993a 100644 --- a/ruoyi-gateway/src/main/resources/bootstrap.yml +++ b/ruoyi-gateway/src/main/resources/bootstrap.yml @@ -14,10 +14,10 @@ nacos: discovery: # 服务注册地址 - server-addr: 127.0.0.1:8848 + server-addr: 192.168.110.111:8848 config: # 配置中心地址 - server-addr: 127.0.0.1:8848 + server-addr: 192.168.110.111:8848 # 配置文件格式 file-extension: yml # 共享配置 @@ -28,12 +28,12 @@ eager: true transport: # 控制台地址 - dashboard: 127.0.0.1:8718 + dashboard: 192.168.110.111:8718 # nacos配置持久化 datasource: ds1: nacos: - server-addr: 127.0.0.1:8848 + server-addr: 192.168.110.111:8848 dataId: sentinel-ruoyi-gateway groupId: DEFAULT_GROUP data-type: json diff --git a/ruoyi-modules/ruoyi-company/pom.xml b/ruoyi-modules/ruoyi-company/pom.xml index 187c0a4..58dac60 100644 --- a/ruoyi-modules/ruoyi-company/pom.xml +++ b/ruoyi-modules/ruoyi-company/pom.xml @@ -83,6 +83,11 @@ <artifactId>ruoyi-common-swagger</artifactId> </dependency> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-api-company</artifactId> + </dependency> + </dependencies> <build> diff --git a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/UserController.java b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/UserController.java index 9ac4529..f6c8c92 100644 --- a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/UserController.java +++ b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/UserController.java @@ -1,9 +1,34 @@ package com.ruoyi.company.controller; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.company.api.domain.User; +import com.ruoyi.company.api.model.RegisterUser; +import com.ruoyi.company.api.model.UserDetail; +import com.ruoyi.company.service.UserService; +import io.swagger.v3.oas.annotations.Operation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.time.LocalDateTime; + @RestController @RequestMapping("/user") +@RequiredArgsConstructor public class UserController { + private final UserService userService; + + @PostMapping("/register") + public R register(RegisterUser registerUser) { + userService.register(registerUser); + return R.ok(); + } + + @GetMapping("/getUserDetail") + public R<UserDetail> getUserDetail(Long userId) { + return R.ok(new UserDetail()); + } } diff --git a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/mapper/CompanyMapper.java b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/mapper/CompanyMapper.java new file mode 100644 index 0000000..c781d60 --- /dev/null +++ b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/mapper/CompanyMapper.java @@ -0,0 +1,7 @@ +package com.ruoyi.company.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.company.api.domain.Company; + +public interface CompanyMapper extends BaseMapper<Company> { +} diff --git a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/mapper/UserMapper.java b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/mapper/UserMapper.java index dac80cd..b58ad43 100644 --- a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/mapper/UserMapper.java +++ b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/mapper/UserMapper.java @@ -1,7 +1,7 @@ package com.ruoyi.company.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.ruoyi.company.domain.User; +import com.ruoyi.company.api.domain.User; public interface UserMapper extends BaseMapper<User> { } diff --git a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/CompanyService.java b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/CompanyService.java new file mode 100644 index 0000000..566af85 --- /dev/null +++ b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/CompanyService.java @@ -0,0 +1,7 @@ +package com.ruoyi.company.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.company.api.domain.Company; + +public interface CompanyService extends IService<Company> { +} diff --git a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/UserService.java b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/UserService.java index 0becc3d..586e3eb 100644 --- a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/UserService.java +++ b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/UserService.java @@ -1,7 +1,9 @@ package com.ruoyi.company.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.ruoyi.company.domain.User; +import com.ruoyi.company.api.domain.User; +import com.ruoyi.company.api.model.RegisterUser; public interface UserService extends IService<User> { + void register(RegisterUser registerUser); } 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 new file mode 100644 index 0000000..8addf56 --- /dev/null +++ b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/CompanyServiceImpl.java @@ -0,0 +1,11 @@ +package com.ruoyi.company.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.company.api.domain.Company; +import com.ruoyi.company.mapper.CompanyMapper; +import com.ruoyi.company.service.CompanyService; +import org.springframework.stereotype.Service; + +@Service +public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> implements CompanyService { +} 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 82e3ec4..947cf87 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 @@ -1,11 +1,56 @@ package com.ruoyi.company.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.company.domain.User; +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.model.RegisterUser; import com.ruoyi.company.mapper.UserMapper; +import com.ruoyi.company.service.CompanyService; import com.ruoyi.company.service.UserService; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.time.LocalDateTime; + @Service +@RequiredArgsConstructor public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { + private final CompanyService companyService; + + @Override + public void register(RegisterUser registerUser) { + String accountName = registerUser.getAccountName(); + String password = registerUser.getPassword(); + User user = new User(); + user.setAccountName(accountName); + user.setPassword(SecurityUtils.encryptPassword(password)); + user.setPhone(registerUser.getPhone()); + user.setStatus(1); + user.setCreateTime(LocalDateTime.now()); + user.setUpdateTime(LocalDateTime.now()); + user.setIsDelete(false); + this.save(user); + Company company = new Company(); + company.setCompanyName(registerUser.getCompanyName()); + company.setSocialCode(registerUser.getSocialCode()); + company.setProvinceCode(registerUser.getProvinceCode()); + company.setCityCode(registerUser.getCityCode()); + company.setDistrictCode(registerUser.getDistrictCode()); + company.setBusinessAddress(registerUser.getBusinessAddress()); + company.setIdCardFrontUrl(registerUser.getIdCardFrontUrl()); + company.setIdCardBackUrl(registerUser.getIdCardBackUrl()); + company.setLegalPersonName(registerUser.getLegalPersonName()); + company.setIdCardNumber(registerUser.getIdCardNumber()); + company.setBusinessLicenseUrl(registerUser.getBusinessLicenseUrl()); + company.setCategory(registerUser.getCategory()); + company.setCertificateUrl(registerUser.getCertificateUrl()); + company.setContactName(registerUser.getContactName()); + company.setContactPhone(registerUser.getContactPhone()); + company.setEmail(registerUser.getEmail()); + company.setCreateTime(LocalDateTime.now()); + company.setUpdateTime(LocalDateTime.now()); + company.setIsDelete(false); + companyService.save(company); + } } diff --git a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/utils/ObsUploadUtil.java b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/utils/ObsUploadUtil.java new file mode 100644 index 0000000..184bad1 --- /dev/null +++ b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/utils/ObsUploadUtil.java @@ -0,0 +1,91 @@ +//package com.ruoyi.company.utils; +// +//import com.obs.services.ObsClient; +//import com.obs.services.model.ObjectMetadata; +//import com.obs.services.model.PutObjectResult; +//import org.springframework.web.multipart.MultipartFile; +// +//import java.io.IOException; +//import java.io.InputStream; +//import java.util.UUID; +// +//public class ObsUploadUtil { +// //OBS图片访问域名 +// public static String endPoint = "obs.cn-southwest-2.myhuaweicloud.com"; +// public static String accessKeyId = "F95RSIZQ1B77MGRTPWSU"; +// public static String accessKeySecret = "rMhmXnuDGPwI5ptq0jGCZ6QwaoUDQ5ZJm3RFrZuy"; +// public static String bucketName = "qijishenghuiyuan"; +// public static String oss_domain = "http://qijishenghuiyuan.obs.cn-southwest-2.myhuaweicloud.com/"; +// +// +// // 创建ObsClient实例 +// public static ObsClient obsClient = new ObsClient(accessKeyId, accessKeySecret, endPoint); +// +// public static String obsUpload(MultipartFile file) throws IOException{ +// String fileName = ""; +// if(file!=null && !"".equals(file.getOriginalFilename()) && file.getOriginalFilename()!=null){ +// InputStream content = file.getInputStream();//获得指定文件的输入流 +// ObjectMetadata meta = new ObjectMetadata();// 创建上传Object的Metadata +// meta.setContentLength(file.getSize()); // 必须设置ContentLength +// String originalFilename = file.getOriginalFilename(); +// fileName = UUID.randomUUID().toString().replaceAll("-","") + originalFilename.subSequence(originalFilename.lastIndexOf("."), originalFilename.length()); +// obsClient.putObject(bucketName,"admin/"+fileName,content,meta); +// if(fileName != null && !"".equals(fileName)){ +// System.out.println(fileName); +// fileName = oss_domain+"admin/"+fileName; +// } +// } +// return fileName; +// } +// +// +// +// public static String obsUpload(String suffix, InputStream content){ +// String fileName = UUID.randomUUID().toString().replaceAll("-","") + "." + suffix; +// try { +// PutObjectResult putObjectResult = obsClient.putObject(bucketName, "admin/" + fileName, content); +// String objectUrl = putObjectResult.getObjectUrl(); +// return oss_domain+"admin/"+fileName; +// }catch (Exception e){ +// e.printStackTrace(); +// } +// return ""; +// } +// +// +// +// /** +// * 删除某个Object +// * +// * @param bucketUrl +// * @return +// */ +// public static boolean deleteObject(String bucketUrl) { +// try { +// bucketUrl=bucketUrl.replace(oss_domain+"web",""); +// // 删除Object. +// obsClient.deleteObject(bucketName, bucketUrl); +// } catch (Exception e) { +// e.printStackTrace(); +// return false; +// } finally { +// //ossClient.shutdown(); +// } +// return true; +// } +// +//// public static void createBucket(String bucketName) +//// { +//// //初始化 OSSClient +////// ossClient = new OssClient(endPoint, accessKeyId, accessKeySecret); +//// +//// // 新建一个Bucket +//// Bucket bucket = ossClient.createBucket(bucketName); +//// System.out.println(bucket.getName()); +//// System.out.println(bucket.getCreationDate()); +//// } +//// +//// public static void main(String[] args) { +//// OssUploadUtil.createBucket("ssfdfsd"); +//// } +//} diff --git a/ruoyi-modules/ruoyi-company/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-company/src/main/resources/bootstrap.yml index 6e07551..ddb5d57 100644 --- a/ruoyi-modules/ruoyi-company/src/main/resources/bootstrap.yml +++ b/ruoyi-modules/ruoyi-company/src/main/resources/bootstrap.yml @@ -14,10 +14,10 @@ nacos: discovery: # 服务注册地址 - server-addr: 127.0.0.1:8848 + server-addr: 192.168.110.111:8848 config: # 配置中心地址 - server-addr: 127.0.0.1:8848 + server-addr: 192.168.110.111:8848 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/ruoyi-modules/ruoyi-company/src/test/java/com/ruoyi/AppTest.java b/ruoyi-modules/ruoyi-company/src/test/java/com/ruoyi/AppTest.java deleted file mode 100644 index 5d55f51..0000000 --- a/ruoyi-modules/ruoyi-company/src/test/java/com/ruoyi/AppTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.ruoyi; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -/** - * Unit test for simple App. - */ -public class AppTest - extends TestCase -{ - /** - * Create the test case - * - * @param testName name of the test case - */ - public AppTest( String testName ) - { - super( testName ); - } - - /** - * @return the suite of tests being tested - */ - public static Test suite() - { - return new TestSuite( AppTest.class ); - } - - /** - * Rigourous Test :-) - */ - public void testApp() - { - assertTrue( true ); - } -} diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/ResourcesConfig.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/ResourcesConfig.java index 8003670..7ea9eed 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/ResourcesConfig.java +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/ResourcesConfig.java @@ -2,7 +2,15 @@ import java.io.File; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.http.HttpHeaders; +import org.springframework.http.server.reactive.ServerHttpRequest; +import org.springframework.http.server.reactive.ServerHttpResponse; +import org.springframework.web.cors.CorsUtils; +import org.springframework.web.server.ServerWebExchange; +import org.springframework.web.server.WebFilter; +import org.springframework.web.server.WebFilterChain; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @@ -45,6 +53,9 @@ // 设置允许跨域请求的域名 .allowedOrigins("*") // 设置允许的方法 - .allowedMethods("GET"); + .allowedMethods("GET") + .allowedMethods("POST") + .allowedMethods("DELETE") + .allowedMethods("PUT"); } } \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml index c73fb0e..c11657c 100644 --- a/ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml +++ b/ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml @@ -14,10 +14,10 @@ nacos: discovery: # 服务注册地址 - server-addr: 127.0.0.1:8848 + server-addr: 192.168.110.111:8848 config: # 配置中心地址 - server-addr: 127.0.0.1:8848 + server-addr: 192.168.110.111:8848 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/ruoyi-modules/ruoyi-system/pom.xml b/ruoyi-modules/ruoyi-system/pom.xml index d4bffdc..31e4bac 100644 --- a/ruoyi-modules/ruoyi-system/pom.xml +++ b/ruoyi-modules/ruoyi-system/pom.xml @@ -71,6 +71,19 @@ <artifactId>ruoyi-common-swagger</artifactId> </dependency> + <!-- Pagehelper --> + <dependency> + <groupId>com.github.pagehelper</groupId> + <artifactId>pagehelper-spring-boot-starter</artifactId> + <version>1.4.6</version> <!-- 使用最新版本 --> + </dependency> + + <!-- mybatis-plus 增强CRUD --> + <dependency> + <groupId>com.baomidou</groupId> + <artifactId>mybatis-plus-boot-starter</artifactId> + </dependency> + </dependencies> <build> diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml index ca94b42..b170917 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml @@ -14,10 +14,10 @@ nacos: discovery: # 服务注册地址 - server-addr: 127.0.0.1:8848 + server-addr: 192.168.110.111:8848 config: # 配置中心地址 - server-addr: 127.0.0.1:8848 + server-addr: 192.168.110.111:8848 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/ruoyi-ui/vue.config.js b/ruoyi-ui/vue.config.js index 8afb50b..3451af1 100644 --- a/ruoyi-ui/vue.config.js +++ b/ruoyi-ui/vue.config.js @@ -36,7 +36,7 @@ proxy: { // detail: https://cli.vuejs.org/config/#devserver-proxy [process.env.VUE_APP_BASE_API]: { - target: `http://localhost:8080`, + target: `http://localhost:9000`, changeOrigin: true, pathRewrite: { ['^' + process.env.VUE_APP_BASE_API]: '' -- Gitblit v1.7.1