feat(2227-commonDict): 通用字典查询

This commit is contained in:
zhansihu 2024-03-26 17:53:29 +08:00
parent 08c42f04da
commit f09a13e316
9 changed files with 233 additions and 0 deletions

View File

@ -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<CommonDictResp> query(@RequestBody CommonDictQueryReq req);
}

View File

@ -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<String> keys;
}

View File

@ -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 {
}

View File

@ -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<CommonDictResp> query(CommonDictQueryReq req) {
return ApiResult.ok(commonDictService.query(req));
}
}

View File

@ -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;
/**
* <p>
* 通用字典表 服务实现类
* </p>
*
* @author ZhanSiHu
* @since 2024-03-26
*/
@Service
public class SaasCommonDictDao extends ServiceImpl<SaasCommonDictMapper, SaasCommonDict> {
}

View File

@ -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;
/**
* <p>
* 通用字典表
* </p>
*
* @author ZhanSiHu
* @since 2024-03-26
*/
@Getter
@Setter
@TableName("saas_common_dict")
public class SaasCommonDict extends BaseEntity<SaasCommonDict> implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 业务域
*/
private String scope;
/**
* 字典编码
*/
private String dictCode;
/**
* 字典值
*/
private String dictValue;
}

View File

@ -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;
/**
* <p>
* 通用字典表 Mapper 接口
* </p>
*
* @author ZhanSiHu
* @since 2024-03-26
*/
public interface SaasCommonDictMapper extends BaseMapper<SaasCommonDict> {
}

View File

@ -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<CommonDictResp> query(CommonDictQueryReq req);
}

View File

@ -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<CommonDictResp> query(CommonDictQueryReq req) {
List<SaasCommonDict> list = commonDictDao.lambdaQuery()
.list();
if (CollectionUtil.isEmpty(list)) {
return Collections.emptyList();
}
return BeanMapper.copyList(list, CommonDictResp.class);
}
}