From 7601f9c5a5556fa7f7310996819a01d9c9405d78 Mon Sep 17 00:00:00 2001 From: zk Date: Fri, 17 Jul 2026 14:54:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9F=A5=E8=AF=A2=E5=85=AC?= =?UTF-8?q?=E5=8F=B8=E7=B1=BB=E5=9E=8B=E5=88=97=E8=A1=A8=20=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CompanyController.java | 29 ++++++++++++++++ .../org/jiayunet/service/CompanyService.java | 33 +++++++++++++++++++ .../org/jiayunet/mapper/CompanyMapper.java | 8 +++++ 3 files changed, 70 insertions(+) create mode 100644 client-api/src/main/java/org/jiayunet/controller/CompanyController.java create mode 100644 client-api/src/main/java/org/jiayunet/service/CompanyService.java diff --git a/client-api/src/main/java/org/jiayunet/controller/CompanyController.java b/client-api/src/main/java/org/jiayunet/controller/CompanyController.java new file mode 100644 index 0000000..162e996 --- /dev/null +++ b/client-api/src/main/java/org/jiayunet/controller/CompanyController.java @@ -0,0 +1,29 @@ +package org.jiayunet.controller; + +import org.jiayunet.service.CompanyService; +import org.springframework.beans.factory.annotation.Autowired; +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; + +/** + * 公司接口 + * + * @author zk + */ +@RestController +@RequestMapping("/company") +public class CompanyController { + @Autowired + private CompanyService companyService; + + /** + * 查询公司类型列表 + */ + @GetMapping("/types") + public List listCompanyTypes() { + return companyService.listCompanyTypes(); + } +} diff --git a/client-api/src/main/java/org/jiayunet/service/CompanyService.java b/client-api/src/main/java/org/jiayunet/service/CompanyService.java new file mode 100644 index 0000000..15d9b7c --- /dev/null +++ b/client-api/src/main/java/org/jiayunet/service/CompanyService.java @@ -0,0 +1,33 @@ +package org.jiayunet.service; + +import org.jiayunet.mapper.CompanyMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * 公司服务 + *

主要功能:公司信息查询

+ *

依赖服务:无

+ *

使用的表:bg_company

+ * + * @author zk + */ +@Service +public class CompanyService { + @Autowired + private CompanyMapper companyMapper; + + /** + * 查询已完善公司(status=1)去重后的公司类型列表 + *

Service层再次过滤NULL和空白值,兜底脏数据

+ */ + public List listCompanyTypes() { + return companyMapper.selectDistinctCompanyTypes().stream() + .filter(StringUtils::hasText) + .collect(Collectors.toList()); + } +} diff --git a/manager/src/main/java/org/jiayunet/mapper/CompanyMapper.java b/manager/src/main/java/org/jiayunet/mapper/CompanyMapper.java index 6a62238..85a768f 100644 --- a/manager/src/main/java/org/jiayunet/mapper/CompanyMapper.java +++ b/manager/src/main/java/org/jiayunet/mapper/CompanyMapper.java @@ -21,4 +21,12 @@ public interface CompanyMapper extends CommonMapper { */ @Select("SELECT * FROM bg_company WHERE status = 0 LIMIT #{limit} FOR UPDATE") List selectForUpdate(@Param("limit") int limit); + + /** + * 查询已完善公司(status=1)去重后的公司类型 + *

依赖复合索引 idx_status_type(status, company_type) 走松散索引扫描 + 覆盖索引,不回表

+ *

NULL/空值的清洗交由 Service 层处理,SQL 只做分组去重

+ */ + @Select("SELECT company_type FROM bg_company WHERE status = 1 GROUP BY company_type") + List selectDistinctCompanyTypes(); }