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.BtmType;
|
import com.vci.ubcs.omd.service.IBtmTypeService;
|
import com.vci.ubcs.omd.vo.BtmTypeVO;
|
import com.vci.ubcs.omd.wrapper.BtmTypeWrapper;
|
import lombok.AllArgsConstructor;
|
import org.springblade.core.mp.support.Condition;
|
import org.springblade.core.mp.support.Query;
|
import org.springblade.core.tenant.annotation.NonDS;
|
import org.springblade.core.tool.api.R;
|
import org.springblade.core.tool.utils.BeanUtil;
|
import org.springblade.core.tool.utils.Func;
|
import org.springframework.web.bind.annotation.RestController;
|
import springfox.documentation.annotations.ApiIgnore;
|
|
import java.util.*;
|
|
/**
|
* Description: 业务类型服务Feign实现类
|
*
|
* @author LiHang
|
* @date 2023/4/24
|
*/
|
@NonDS
|
@ApiIgnore
|
@RestController
|
@AllArgsConstructor
|
public class BtmTypeClient implements IBtmTypeClient {
|
|
private final IBtmTypeService btmTypeService;
|
|
|
/**
|
* 参照获取业务类型详情信息
|
*
|
* @param oid 主键
|
* @return 业务类型详情信息
|
*/
|
@Override
|
public R<BtmTypeVO> getDetail(String oid) {
|
return R.data(btmTypeService.getBtmTypeByOid(oid));
|
}
|
|
/**
|
* 参照列表查询
|
*
|
* @param condition 查询条件
|
* @param query 分页条件
|
* @param domain 领域值
|
* @return 查询结果
|
*/
|
@Override
|
public R<IPage<BtmTypeVO>> getRefPage(Map<String, Object> condition, Query query, String domain) {
|
Func.requireNotNull(domain,"领域值");
|
IPage<BtmType> page = btmTypeService.page(Condition.getPage(query), Condition.getQueryWrapper(condition, BtmType.class).lambda().eq(BtmType::getDomain, domain).orderByAsc(BtmType::getId));
|
IPage<BtmTypeVO> pageVO = new Page<>();
|
BeanUtil.copy(page,pageVO);
|
pageVO.setRecords(BtmTypeWrapper.build().listEntityVO(page.getRecords()));
|
R<IPage<BtmTypeVO>> r = R.data(pageVO);
|
r.setSuccess(true);
|
return r;
|
}
|
|
/**
|
* 参照列表查询
|
*
|
* @param condition 查询条件
|
* @param domain 领域值
|
* @return 查询结果
|
*/
|
@Override
|
public R<List<BtmTypeVO>> getRef(Map<String, Object> condition, String domain) {
|
Func.requireNotNull(domain,"领域值");
|
List<BtmType> list = btmTypeService.list(Condition.getQueryWrapper(condition, BtmType.class).lambda().eq(BtmType::getDomain, domain).orderByAsc(BtmType::getId));
|
return R.data(BtmTypeWrapper.build().listEntityVO(list));
|
}
|
|
/**
|
* 根据英文名称批量查询对象
|
*
|
* @param ids 对象英文名称 但是不能超过1000
|
* @return 业务对象
|
*/
|
@Override
|
public R<List<BtmTypeVO>> selectByIdCollection(List<String> ids) {
|
Func.requireNotNull(ids,"业务类型英文名称");
|
List<BtmTypeVO> voList = BtmTypeWrapper.build().listEntityVO(
|
Optional.ofNullable(btmTypeService.list(
|
Wrappers.<BtmType>query().lambda().in(BtmType::getId, ids)
|
)
|
).orElseGet(ArrayList::new)
|
);
|
return R.data(voList);
|
}
|
|
/**
|
* 批量根据主键获取业务类型
|
*
|
* @param pkBtmTypeCollection 业务类型主键集合
|
* @return 业务类型列表,如果有不存在的不会返回,全部不存在的则返回空列表
|
*/
|
@Override
|
public R<List<BtmTypeVO>> listBtmTypeByOidCollection(Collection<String> pkBtmTypeCollection) {
|
Func.requireNotNull(pkBtmTypeCollection,"业务类型主键");
|
List<BtmTypeVO> voList = BtmTypeWrapper.build().listEntityVO(
|
Optional.ofNullable(btmTypeService.list(
|
Wrappers.<BtmType>query().lambda().in(BtmType::getOid, pkBtmTypeCollection)
|
)
|
).orElseGet(ArrayList::new)
|
);
|
return R.data(voList);
|
}
|
}
|