feat: (feature/REQ-3167) 提供terminalInfo的查询,为了兼容以前的逻辑

This commit is contained in:
李龙 2024-11-28 15:16:02 +08:00
parent 691340ad88
commit 7ac8b298e3
3 changed files with 62 additions and 0 deletions

View File

@ -1,9 +1,11 @@
package cn.axzo.tyr.client.feign;
import cn.axzo.framework.auth.domain.TerminalInfo;
import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.tyr.client.model.req.CloneTerminalReq;
import cn.axzo.tyr.client.model.req.CreateTerminalReq;
import cn.axzo.tyr.client.model.req.DeleteTerminalReq;
import cn.axzo.tyr.client.model.req.GetTerminalInfoReq;
import cn.axzo.tyr.client.model.req.ListTerminalReq;
import cn.axzo.tyr.client.model.req.UpdateTerminalReq;
import cn.axzo.tyr.client.model.res.TerminalConfigRes;
@ -32,6 +34,14 @@ public interface TerminalApi {
@PostMapping("/api/terminal/list")
ApiResult<List<TerminalRes>> list(@RequestBody ListTerminalReq req);
/**
* 组装以前的端的信息为了兼容以前TerminalInfo的地方方便动态使用
* @param req
* @return
*/
@PostMapping("/api/terminalInfo/get")
ApiResult<TerminalInfo> getTerminalInfo(@RequestBody @Validated GetTerminalInfoReq req);
/**
* 新增端
* @param req

View File

@ -0,0 +1,21 @@
package cn.axzo.tyr.client.model.req;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class GetTerminalInfoReq {
/**
* 端的code
*/
@NotBlank(message = "terminalCode不能为空")
private String terminalCode;
}

View File

@ -2,6 +2,7 @@ package cn.axzo.tyr.server.controller.terminal;
import cn.axzo.foundation.dao.support.mysql.MybatisPlusOperatorProcessor;
import cn.axzo.foundation.dao.support.wrapper.Operator;
import cn.axzo.framework.auth.domain.TerminalInfo;
import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.tyr.client.common.enums.FeatureResourceType;
import cn.axzo.tyr.client.feign.TerminalApi;
@ -11,6 +12,7 @@ import cn.axzo.tyr.client.model.req.CreateTerminalReq;
import cn.axzo.tyr.client.model.req.DeleteFeatureResourceReq;
import cn.axzo.tyr.client.model.req.DeleteTerminalReq;
import cn.axzo.tyr.client.model.req.FeatureResourceTreeSaveReq;
import cn.axzo.tyr.client.model.req.GetTerminalInfoReq;
import cn.axzo.tyr.client.model.req.ListTerminalReq;
import cn.axzo.tyr.client.model.req.PageSaasFeatureResourceReq;
import cn.axzo.tyr.client.model.req.UpdateTerminalReq;
@ -19,6 +21,7 @@ import cn.axzo.tyr.client.model.res.TerminalConfigRes;
import cn.axzo.tyr.client.model.res.TerminalRes;
import cn.axzo.tyr.server.service.SaasFeatureResourceService;
import cn.axzo.tyr.server.service.TerminalService;
import cn.hutool.json.JSONObject;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
@ -27,6 +30,7 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.function.Function;
import java.util.stream.Collectors;
@ -41,6 +45,8 @@ public class TerminalController implements TerminalApi {
@Autowired
private TerminalService terminalService;
private static final String GOV_BIZ_TYPE = "GOV";
@Override
public ApiResult<TerminalConfigRes> getConfig() {
return ApiResult.ok(terminalService.getConfig());
@ -161,4 +167,29 @@ public class TerminalController implements TerminalApi {
featureResourceService.clone(req);
return ApiResult.ok();
}
@Override
public ApiResult<TerminalInfo> getTerminalInfo(GetTerminalInfoReq req) {
List<TerminalRes> terminalRes = this.list(ListTerminalReq.builder()
.terminalCode(req.getTerminalCode())
.build())
.getData();
// 找不到端有可能是以前的旧端设置的为了兼容直接使用原来的new TerminalInfo方式返回
if (CollectionUtils.isEmpty(terminalRes)) {
return ApiResult.ok(new TerminalInfo(req.getTerminalCode()));
}
if (terminalRes.size() > 1) {
log.warn("重复的端信息,{}", req.getTerminalCode());
}
return ApiResult.ok(terminalRes.stream()
.map(e -> TerminalInfo.builder()
.rawTerminalString(req.getTerminalCode())
.newTerminalString(req.getTerminalCode())
.bizData(new JSONObject().putOpt("isGov", Objects.equals(e.getTerminalBizType(), GOV_BIZ_TYPE)))
.build())
.findFirst()
.orElse(null));
}
}