package com.vci.ubcs.omd.feign; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.vci.ubcs.omd.entity.Status; import com.vci.ubcs.omd.service.IStatusService; import com.vci.ubcs.omd.vo.StatusVO; import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject; import com.vci.ubcs.starter.web.util.VciBaseUtil; import lombok.AllArgsConstructor; 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.springblade.core.tool.utils.StringUtil; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Description: 状态池的Feign * * @author LiHang * @date 2023/5/23 */ @NonDS @ApiIgnore @RestController @AllArgsConstructor public class StatusClient implements IStatusClient{ private final IStatusService service; /** * 参照列表查询 * * @param baseQueryObject 查询条件对象 * @return 执行结果 */ @Override public R> getRefPage(BaseQueryObject baseQueryObject) { Map conditionMap = baseQueryObject.getConditionMap(); if (conditionMap == null) { conditionMap = new HashMap<>(16); } Map condition = new HashMap<>(); BeanUtil.copy(conditionMap,condition); Query query = new Query(); query.setCurrent(baseQueryObject.getPage()); query.setSize(baseQueryObject.getLimit()); return R.data(service.listStatus(condition,query)); } /** * 参照查询 * * @param baseQueryObject 查询条件对象 * @return 执行结果 */ @Override public R> getRef(BaseQueryObject baseQueryObject) { return R.data(service.listStatusNoPage(baseQueryObject.getConditionMap())); } /** * 英文查询中文名称 * * @param ids 英文 * @return 查询结果 */ @Override public R> getNameByIds(String ids) { VciBaseUtil.alertNotNull(ids,"英文名称"); List idList = Func.toStrList(",", ids); List list = service.list(Wrappers.query().lambda().in(Status::getId, idList)); Map map = new HashMap<>(16); list.stream().peek(s -> { String key = idList.stream().filter(id -> StringUtil.equals(id, s.getId())).findFirst().get(); map.put(key,s.getName()); }); return R.data(map); } }