ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/RemoteCompanyService.java
@@ -8,6 +8,7 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @@ -15,5 +16,5 @@ public interface RemoteCompanyService { @GetMapping("/front/company/getCompanyByUserId") public R<List<Company>> getCompanyByUserId(Long userId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); public R<List<Company>> getCompanyByUserId(@RequestParam("userId") Long userId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); } ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/factory/RemoteCompanyFallbackFactory.java
@@ -2,7 +2,6 @@ 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; @@ -19,7 +18,7 @@ @Override public R<List<Company>> getCompanyByUserId(Long userId, String source) { return R.fail(); return R.fail(cause.getMessage()); } }; } ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/ApplicationConfig.java
@@ -7,7 +7,9 @@ import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.core.convert.converter.Converter; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.TimeZone; @@ -36,10 +38,52 @@ builder.serializerByType(Long.class, ToStringSerializer.instance); }; } /** * string转localdate */ //@Bean public Converter<String, LocalDate> localDateConverter() { return new Converter<String, LocalDate>() { @Override public LocalDate convert(String source) { if (source.trim().length() == 0) { return null; } try { return LocalDate.parse(source); } catch (Exception e) { return LocalDate.parse(source, DateTimeFormatter.ofPattern(DATE_PATTERN)); } } }; } /** * string转localdatetime */ //@Bean public Converter<String, LocalDateTime> localDateTimeConverter() { return new Converter<String, LocalDateTime>() { @Override public LocalDateTime convert(String source) { if (source.trim().length() == 0) { return null; } // 先尝试ISO格式: 2019-07-15T16:00:00 try { return LocalDateTime.parse(source); } catch (Exception e) { return LocalDateTime.parse(source, DateTimeFormatter.ofPattern(DATE_TIME_PATTERN)); } } }; } /** * 统一配置 */ @Bean //@Bean public Jackson2ObjectMapperBuilderCustomizer jsonCustomizer() { JavaTimeModule module = new JavaTimeModule(); LocalDateTimeDeserializer localDateTimeDeserializer = new LocalDateTimeDeserializer( ruoyi-common/ruoyi-common-sensitive/src/main/java/com/ruoyi/common/sensitive/config/SensitiveJsonSerializer.java
@@ -1,7 +1,5 @@ package com.ruoyi.common.sensitive.config; import java.io.IOException; import java.util.Objects; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.BeanProperty; import com.fasterxml.jackson.databind.JsonMappingException; @@ -12,6 +10,9 @@ import com.ruoyi.common.sensitive.annotation.Sensitive; import com.ruoyi.common.sensitive.enums.DesensitizedType; import com.ruoyi.system.api.model.LoginUser; import java.io.IOException; import java.util.Objects; /** * 数据脱敏序列化过滤 @@ -25,14 +26,15 @@ @Override public void serialize(String value, JsonGenerator gen, SerializerProvider serializers) throws IOException { if (desensitization()) gen.writeString(desensitizedType.desensitizer().apply(value)); /* if (desensitization()) { gen.writeString(desensitizedType.desensitizer().apply(value)); } else { gen.writeString(value); } }*/ } @Override ruoyi-common/ruoyi-common-sensitive/src/main/java/com/ruoyi/common/sensitive/enums/DesensitizedType.java
@@ -1,7 +1,8 @@ package com.ruoyi.common.sensitive.enums; import java.util.function.Function; import com.ruoyi.common.sensitive.utils.DesensitizedUtil; import java.util.function.Function; /** * 脱敏类型 @@ -31,6 +32,11 @@ PHONE(s -> s.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2")), /** * 统一社会信用代码 中间6位字符替换为星号 */ SOCIAL_CODE(s -> s.replaceAll("^(\\w{6})\\w{6}(\\w{6})$", "$1******$2")), /** * 电子邮箱,仅显示第一个字母和@后面的地址显示,其他星号替换 */ EMAIL(s -> s.replaceAll("(^.)[^@]*(@.*$)", "$1****$2")), ruoyi-modules/ruoyi-company/pom.xml
@@ -83,6 +83,12 @@ <artifactId>ruoyi-common-swagger</artifactId> </dependency> <!--RuoYi Common Sensitive--> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-common-sensitive</artifactId> </dependency> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-company</artifactId> @@ -96,6 +102,12 @@ <dependency> <groupId>cn.idev.excel</groupId> <artifactId>fastexcel</artifactId> <exclusions> <exclusion> <artifactId>poi</artifactId> <groupId>org.apache.poi</groupId> </exclusion> </exclusions> </dependency> <dependency> ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/RuoYiCompanyApplication.java
@@ -13,7 +13,7 @@ public static void main(String[] args) { SpringApplication.run(RuoYiCompanyApplication.class, args); System.out.println("(♥◠‿◠)ノ゙ 系统模块启动成功 ლ(´ڡ`ლ)゙ \n" + System.out.println("(♥◠‿◠)ノ゙ 企业模块启动成功 ლ(´ڡ`ლ)゙ \n" + " .-------. ____ __ \n" + " | _ _ \\ \\ \\ / / \n" + " | ( ' ) | \\ _. / ' \n" + ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/CompanyController.java
@@ -2,17 +2,19 @@ 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.common.security.utils.SecurityUtils; import com.ruoyi.company.api.domain.Company; import com.ruoyi.company.api.domain.dto.MgtCompanyDTO; import com.ruoyi.company.service.CompanyService; import io.swagger.v3.oas.annotations.Operation; 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.web.bind.annotation.*; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @@ -23,7 +25,6 @@ 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>() ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/management/MgtCompanyController.java
@@ -4,7 +4,8 @@ import com.ruoyi.common.core.page.PageDTO; import com.ruoyi.company.api.domain.dto.MgtCompanyDTO; import com.ruoyi.company.api.domain.query.MgtCompanyQuery; import com.ruoyi.company.api.domain.vo.MgtCompanyVO; import com.ruoyi.company.domain.vo.MgtCompanyDetailVO; import com.ruoyi.company.domain.vo.MgtCompanyVO; import com.ruoyi.company.service.CompanyService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -42,7 +43,7 @@ } @Operation(summary = "获取企业详情") @GetMapping("/{id}") public R<MgtCompanyVO> queryCompanyDetail(@Parameter(name = "id",description = "企业id",required = true) @PathVariable Long id) { public R<MgtCompanyDetailVO> queryCompanyDetail(@Parameter(name = "id",description = "企业id",required = true) @PathVariable Long id) { return R.ok(companyService.queryCompanyDetail(id)); } @Operation(summary = "新增企业") ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/domain/vo/MgtCompanyDetailVO.java
File was renamed from ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/domain/vo/MgtCompanyVO.java @@ -1,4 +1,4 @@ package com.ruoyi.company.api.domain.vo; package com.ruoyi.company.domain.vo; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; @@ -12,7 +12,7 @@ */ @Data @Schema(name = "管理端企业信息",description = "管理端企业信息") public class MgtCompanyVO { public class MgtCompanyDetailVO { /** 主键 */ @Schema(description = "主键", example = "1") private Long id; ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/domain/vo/MgtCompanyVO.javacopy from ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/domain/vo/MgtCompanyVO.java copy to ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/domain/vo/MgtCompanyVO.java
File was copied from ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/domain/vo/MgtCompanyVO.java @@ -1,6 +1,8 @@ package com.ruoyi.company.api.domain.vo; package com.ruoyi.company.domain.vo; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.sensitive.annotation.Sensitive; import com.ruoyi.common.sensitive.enums.DesensitizedType; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -23,6 +25,7 @@ /** 统一社会信用代码 */ @Schema(description = "统一社会信用代码", example = "913100000000123") @Sensitive(desensitizedType = DesensitizedType.SOCIAL_CODE) private String socialCode; /** 省份代码 */ @@ -78,6 +81,7 @@ /** 联系人手机号 */ @Schema(description = "联系人手机号", example = "13800138000") @Sensitive(desensitizedType = DesensitizedType.PHONE) private String contactPhone; /** 联系人邮箱 */ ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/CompanyService.java
@@ -5,10 +5,10 @@ import com.ruoyi.company.api.domain.Company; import com.ruoyi.company.api.domain.dto.MgtCompanyDTO; import com.ruoyi.company.api.domain.query.MgtCompanyQuery; import com.ruoyi.company.api.domain.vo.MgtCompanyVO; import com.ruoyi.company.domain.vo.MgtCompanyDetailVO; import com.ruoyi.company.domain.vo.MgtCompanyVO; import java.io.IOException; import java.io.UnsupportedEncodingException; public interface CompanyService extends IService<Company> { /** @@ -23,7 +23,7 @@ * @param id * @return */ MgtCompanyVO queryCompanyDetail(Long id); MgtCompanyDetailVO queryCompanyDetail(Long id); /** * 新增企业 ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/CompanyServiceImpl.java
@@ -13,7 +13,8 @@ import com.ruoyi.company.api.domain.dto.MgtCompanyDTO; import com.ruoyi.company.api.domain.excel.MgtCompanyExcel; import com.ruoyi.company.api.domain.query.MgtCompanyQuery; import com.ruoyi.company.api.domain.vo.MgtCompanyVO; import com.ruoyi.company.domain.vo.MgtCompanyDetailVO; import com.ruoyi.company.domain.vo.MgtCompanyVO; import com.ruoyi.company.mapper.CompanyMapper; import com.ruoyi.company.service.CompanyService; import com.ruoyi.company.service.UserService; @@ -72,11 +73,11 @@ * @return */ @Override public MgtCompanyVO queryCompanyDetail(Long id) { public MgtCompanyDetailVO queryCompanyDetail(Long id) { Company company = this.getById(id); MgtCompanyVO mgtCompanyVO = BeanUtils.copyBean(company, MgtCompanyVO.class); MgtCompanyDetailVO mgtCompanyVO = BeanUtils.copyBean(company, MgtCompanyDetailVO.class); if (Objects.isNull(mgtCompanyVO)) { mgtCompanyVO = new MgtCompanyVO(); mgtCompanyVO = new MgtCompanyDetailVO(); return mgtCompanyVO; } User user = userService.getById(company.getUserId()); @@ -109,9 +110,9 @@ Company company = BeanUtils.copyBean(dto, Company.class); company.setUserId(user.getUserId()); //根据公司名称查询数据库 Long count = this.lambdaQuery().eq(Company::getCompanyName, company.getCompanyName()).count(); Long count = this.lambdaQuery().eq(Company::getCompanyName, company.getCompanyName()).eq(Company::getSocialCode, dto.getSocialCode()).count(); if (count > 0) { throw new ServiceException("该公司账号已存在"); throw new ServiceException("该企业已存在"); } //身份证二要素校验 Boolean res = aliyunCloudAuthUtil.verifyIdCard(dto.getLegalPersonName(), dto.getIdCardNumber()); @@ -157,10 +158,11 @@ if (StringUtils.isNotBlank(company.getCompanyName())){ Long count = this.lambdaQuery() .ne(Company::getId, dto.getId()) .eq(Company::getCompanyName, company.getCompanyName()) .eq(Company::getSocialCode, company.getSocialCode()) .eq(Company::getCompanyName, dto.getCompanyName()) .count(); if (count > 0) { throw new ServiceException("该公司账号已存在"); throw new ServiceException("该企业已存在"); } } //身份证二要素校验 ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/utils/AliyunCloudAuthUtil.java
@@ -71,9 +71,6 @@ // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 // 错误 message System.out.println(error.getMessage()); // 诊断地址 System.out.println(error.getData().get("Recommend")); com.aliyun.teautil.Common.assertAsString(error.message); } return false; } ruoyi-modules/ruoyi-company/src/main/resources/bootstrap.yml
@@ -15,7 +15,7 @@ discovery: # 服务注册地址 server-addr: 192.168.110.111:8848 ip: 192.168.110.111 ip: 192.168.110.188 config: # 配置中心地址 server-addr: 192.168.110.111:8848 @@ -23,4 +23,6 @@ file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} jackson: date-format: yyyy-MM-dd HH:mm:ss