package com.vci.ubcs.omd.feign;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.vci.ubcs.omd.entity.LinkType;
|
import com.vci.ubcs.omd.service.ILinkTypeService;
|
import com.vci.ubcs.omd.vo.LinkTypeVO;
|
import com.vci.ubcs.omd.wrapper.LinkTypeWrapper;
|
import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
|
import com.vci.ubcs.starter.web.pagemodel.PageHelper;
|
import com.vci.ubcs.starter.web.util.VciBaseUtil;
|
import lombok.AllArgsConstructor;
|
import org.springblade.core.mp.support.Condition;
|
import org.springblade.core.mp.support.Query;
|
import org.springblade.core.tool.api.R;
|
import org.springblade.core.tool.utils.BeanUtil;
|
import org.springblade.core.tool.utils.Func;
|
import org.springframework.cglib.beans.BeanMap;
|
import org.springframework.web.bind.annotation.RestController;
|
import springfox.documentation.annotations.ApiIgnore;
|
|
import java.util.*;
|
|
/**
|
* Description: 链接类型Feign实现类
|
*
|
* @author LiHang
|
* @date 2023/6/13
|
*/
|
@ApiIgnore()
|
@RestController
|
@AllArgsConstructor
|
public class LinkTypeClient implements ILinkTypeClient{
|
|
private final ILinkTypeService linkTypeService;
|
|
private final String DOMAIN = "domain";
|
/**
|
* 获取链接类型详情信息
|
*
|
* @param oid 主键
|
* @return 链接类型详情信息
|
*/
|
@Override
|
public R<LinkTypeVO> getDetail(String oid) {
|
LinkTypeVO vo = linkTypeService.getLinkTypeByOid(oid);
|
return R.data(vo);
|
}
|
|
/**
|
* 参照列表查询
|
*
|
* @param baseQueryObject 查询条件对象
|
* @return 查询结果
|
*/
|
@Override
|
public R<Page<LinkTypeVO>> getRefPage(BaseQueryObject baseQueryObject) {
|
Map<String, String> conditionMap = baseQueryObject.getConditionMap();
|
if (conditionMap == null){
|
conditionMap = new HashMap<>(16);
|
}
|
if (!conditionMap.containsKey(DOMAIN)){
|
return R.fail("领域值不能为空");
|
}
|
PageHelper pageHelper = baseQueryObject.getPageHelper();
|
if (pageHelper == null){
|
pageHelper = new PageHelper(-1);
|
}
|
String domainValue = conditionMap.get(DOMAIN);
|
VciBaseUtil.alertNotNull(domainValue,"领域值");
|
conditionMap.remove(DOMAIN);
|
LinkType queryObj = new LinkType();
|
BeanMap.create(queryObj).putAll(conditionMap);
|
Query query = new Query();
|
query.setSize(pageHelper.getLimit());
|
query.setCurrent(pageHelper.getPage());
|
IPage<LinkType> page = linkTypeService.page(Condition.getPage(query), Condition.getQueryWrapper(queryObj).lambda().eq(LinkType::getBizDomain, domainValue).orderByAsc(LinkType::getId));
|
Page<LinkTypeVO> pageVO = new Page<>();
|
BeanUtil.copy(page,pageVO);
|
pageVO.setRecords(LinkTypeWrapper.build().listEntityVO(page.getRecords(),null));
|
R<Page<LinkTypeVO>> r = R.data(pageVO);
|
r.setSuccess(true);
|
return r;
|
}
|
|
/**
|
* 参照列表查询
|
*
|
* @param baseQueryObject 查询条件对象
|
* @return 查询结果
|
*/
|
@Override
|
public R<List<LinkTypeVO>> getRef(BaseQueryObject baseQueryObject) {
|
Map<String, String> conditionMap = baseQueryObject.getConditionMap();
|
if (conditionMap == null){
|
conditionMap = new HashMap<>(16);
|
}
|
if (!conditionMap.containsKey(DOMAIN)){
|
return R.fail("领域值不能为空");
|
}
|
PageHelper pageHelper = baseQueryObject.getPageHelper();
|
if (pageHelper == null){
|
pageHelper = new PageHelper(-1);
|
}
|
String domainValue = conditionMap.get(DOMAIN);
|
VciBaseUtil.alertNotNull(domainValue,"领域值");
|
conditionMap.remove(DOMAIN);
|
LinkType queryObj = new LinkType();
|
BeanMap.create(queryObj).putAll(conditionMap);
|
List<LinkType> doList = linkTypeService.list(Condition.getQueryWrapper(queryObj).lambda().eq(LinkType::getBizDomain, domainValue).orderByAsc(LinkType::getId));
|
return R.data(LinkTypeWrapper.build().listEntityVO(doList,null));
|
}
|
|
/**
|
* 根据英文名称批量查询对象
|
*
|
* @param ids 对象英文名称 但是不能超过1000
|
* @return 业务对象
|
*/
|
@Override
|
public R<List<LinkTypeVO>> selectByIdCollection(List<String> ids) {
|
Func.requireNotNull(ids,"链接类型英文名称");
|
List<LinkTypeVO> voList = LinkTypeWrapper.build().listEntityVO(
|
Optional.ofNullable(linkTypeService.list(
|
Wrappers.<LinkType>query().lambda().in(LinkType::getId, ids)
|
)
|
).orElseGet(ArrayList::new),null
|
);
|
return R.data(voList);
|
}
|
|
/**
|
* 批量根据主键获取链接类型
|
*
|
* @param pkLinkTypeCollection 链接类型主键集合
|
* @return 链接类型列表,如果有不存在的不会返回,全部不存在的则返回空列表
|
*/
|
@Override
|
public R<List<LinkTypeVO>> listLinkTypeByOidCollection(List<String> pkLinkTypeCollection) {
|
Func.requireNotNull(pkLinkTypeCollection,"链接类型主键");
|
List<LinkTypeVO> voList = LinkTypeWrapper.build().listEntityVO(
|
Optional.ofNullable(linkTypeService.list(
|
Wrappers.<LinkType>query().lambda().in(LinkType::getOid, pkLinkTypeCollection)
|
)
|
).orElseGet(ArrayList::new),null
|
);
|
return R.data(voList);
|
}
|
|
/**
|
* 获取链接类型,只有默认字段
|
*
|
* @param linkTypeId 链接类型ID
|
* @return 默认字段属性
|
*/
|
@Override
|
public R<LinkTypeVO> getDefaultAttrByLinkId(String linkTypeId) {
|
return R.data(linkTypeService.getLinkTypeDefaultAttrById(linkTypeId));
|
}
|
|
/**
|
* 获取链接类型,有所有的字段
|
*
|
* @param linkTypeId 链接类型id
|
* @return 所有字段
|
*/
|
@Override
|
public R<LinkTypeVO> getAllAttributeByLinkId(String linkTypeId) {
|
return R.data(linkTypeService.getLinkTypeAllAttrById(linkTypeId));
|
}
|
|
/**
|
* 获取链接类型,有所有的字段
|
*
|
* @param linkTypeOid 链接类型主键
|
* @return 所有字段
|
*/
|
@Override
|
public R<LinkTypeVO> getAllAttributeByLinkOid(String linkTypeOid) {
|
return R.data(linkTypeService.getLinkTypeAllAttrByOid(linkTypeOid));
|
}
|
}
|