diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasCommonDictApi.java b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasCommonDictApi.java new file mode 100644 index 00000000..6bcc4ae7 --- /dev/null +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasCommonDictApi.java @@ -0,0 +1,23 @@ +package cn.axzo.tyr.client.feign; + +import cn.axzo.framework.domain.web.result.ApiResult; +import cn.axzo.tyr.client.model.req.CommonDictQueryReq; +import cn.axzo.tyr.client.model.res.CommonDictResp; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +/** + * @author: chenwenjian + * @date: 2023/9/6 15:33 + * @description: 企业字典api + * @modifiedBy: + * @version: 1.0 + */ +@FeignClient(name = "tyr", url = "${axzo.service.tyr:http://tyr:8080}") +public interface SaasCommonDictApi { + + @PostMapping("/api/commonDict/query") + ApiResult query(@RequestBody CommonDictQueryReq req); + +} diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/CommonDictQueryReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/CommonDictQueryReq.java new file mode 100644 index 00000000..99d1c607 --- /dev/null +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/CommonDictQueryReq.java @@ -0,0 +1,26 @@ +package cn.axzo.tyr.client.model.req; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 通用字典查询请求参数 + * + * @version V1.0 + * @author: ZhanSiHu + * @date: 2024/3/26 17:03 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class CommonDictQueryReq { + + private String scope; + + private List keys; +} diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/CommonDictResp.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/CommonDictResp.java new file mode 100644 index 00000000..a1d1c0b9 --- /dev/null +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/CommonDictResp.java @@ -0,0 +1,20 @@ +package cn.axzo.tyr.client.model.res; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 通用字典响应 + * + * @version V1.0 + * @author: ZhanSiHu + * @date: 2024/3/26 17:04 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class CommonDictResp { +} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/dict/SaasCommonDictController.java b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/dict/SaasCommonDictController.java new file mode 100644 index 00000000..f10f636d --- /dev/null +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/dict/SaasCommonDictController.java @@ -0,0 +1,30 @@ +package cn.axzo.tyr.server.controller.dict; + +import cn.axzo.framework.domain.web.result.ApiResult; +import cn.axzo.tyr.client.feign.SaasCommonDictApi; +import cn.axzo.tyr.client.model.req.CommonDictQueryReq; +import cn.axzo.tyr.client.model.res.CommonDictResp; +import cn.axzo.tyr.server.service.SaasCommonDictService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RestController; + +/** + * 同用字典服务接口 + * + * @version V1.0 + * @author: ZhanSiHu + * @date: 2024/3/26 17:37 + */ +@Slf4j +@RestController +@RequiredArgsConstructor +public class SaasCommonDictController implements SaasCommonDictApi { + + private final SaasCommonDictService commonDictService; + + @Override + public ApiResult query(CommonDictQueryReq req) { + return ApiResult.ok(commonDictService.query(req)); + } +} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/dao/SaasCommonDictDao.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/dao/SaasCommonDictDao.java new file mode 100644 index 00000000..a182946d --- /dev/null +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/dao/SaasCommonDictDao.java @@ -0,0 +1,19 @@ +package cn.axzo.tyr.server.repository.dao; + +import cn.axzo.tyr.server.repository.entity.SaasCommonDict; +import cn.axzo.tyr.server.repository.mapper.SaasCommonDictMapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 通用字典表 服务实现类 + *

+ * + * @author ZhanSiHu + * @since 2024-03-26 + */ +@Service +public class SaasCommonDictDao extends ServiceImpl { + +} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/SaasCommonDict.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/SaasCommonDict.java new file mode 100644 index 00000000..35e8136d --- /dev/null +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/SaasCommonDict.java @@ -0,0 +1,41 @@ +package cn.axzo.tyr.server.repository.entity; + +import cn.axzo.pokonyan.config.mybatisplus.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 通用字典表 + *

+ * + * @author ZhanSiHu + * @since 2024-03-26 + */ +@Getter +@Setter +@TableName("saas_common_dict") +public class SaasCommonDict extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 业务域 + */ + private String scope; + + /** + * 字典编码 + */ + private String dictCode; + + /** + * 字典值 + */ + private String dictValue; + + +} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/mapper/SaasCommonDictMapper.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/mapper/SaasCommonDictMapper.java new file mode 100644 index 00000000..2fc186d0 --- /dev/null +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/mapper/SaasCommonDictMapper.java @@ -0,0 +1,16 @@ +package cn.axzo.tyr.server.repository.mapper; + +import cn.axzo.tyr.server.repository.entity.SaasCommonDict; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 通用字典表 Mapper 接口 + *

+ * + * @author ZhanSiHu + * @since 2024-03-26 + */ +public interface SaasCommonDictMapper extends BaseMapper { + +} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasCommonDictService.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasCommonDictService.java new file mode 100644 index 00000000..63e433e9 --- /dev/null +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasCommonDictService.java @@ -0,0 +1,17 @@ +package cn.axzo.tyr.server.service; + +import cn.axzo.tyr.client.model.req.CommonDictQueryReq; +import cn.axzo.tyr.client.model.res.CommonDictResp; + +import java.util.List; + +/** + * 通用字典服务 + * + * @version V1.0 + * @author: ZhanSiHu + * @date: 2024/3/26 17:40 + */ +public interface SaasCommonDictService { + List query(CommonDictQueryReq req); +} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasCommonDictServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasCommonDictServiceImpl.java new file mode 100644 index 00000000..e42dac9f --- /dev/null +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasCommonDictServiceImpl.java @@ -0,0 +1,41 @@ +package cn.axzo.tyr.server.service.impl; + +import cn.axzo.basics.common.BeanMapper; +import cn.axzo.tyr.client.model.req.CommonDictQueryReq; +import cn.axzo.tyr.client.model.res.CommonDictResp; +import cn.axzo.tyr.server.repository.dao.SaasCommonDictDao; +import cn.axzo.tyr.server.repository.entity.SaasCommonDict; +import cn.axzo.tyr.server.service.SaasCommonDictService; +import cn.hutool.core.collection.CollectionUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; + +/** + * 通用字典服务实现 + * + * @version V1.0 + * @author: ZhanSiHu + * @date: 2024/3/26 17:40 + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class SaasCommonDictServiceImpl implements SaasCommonDictService { + + private final SaasCommonDictDao commonDictDao; + + @Override + public List query(CommonDictQueryReq req) { + + List list = commonDictDao.lambdaQuery() + .list(); + if (CollectionUtil.isEmpty(list)) { + return Collections.emptyList(); + } + return BeanMapper.copyList(list, CommonDictResp.class); + } +}