提交 99379019 authored 作者: songchuancai's avatar songchuancai

增加服务市场列表

上级 77421f1c
package com.hisense.dataservice.controller;
import com.hisense.dataservice.library.model.Result;
import com.hisense.dataservice.library.model.page.PageData;
import com.hisense.dataservice.library.model.page.PageLink;
import com.hisense.dataservice.service.DataMarketService;
import com.hisense.dataservice.vo.DataApiModelItemVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @author : scc
* @date : 2023/03/22
**/
@Api(tags = "数据api服务-服务市场")
@RestController
@RequestMapping("/api/v1/dataService/market")
public class DataServiceMarketController extends BaseController{
@Autowired
private DataMarketService dataMarketService;
@ApiOperation(value = "数据服务市场-服务列表")
@ApiImplicitParams({
@ApiImplicitParam(name = "environment", value = "环境", required = true),
@ApiImplicitParam(name = "serviceName", value = "服务名", required = false),
@ApiImplicitParam(name = "systemName", value = "发布系统名", required = false),
@ApiImplicitParam(name = "publisher", value = "发布者", required = false),
@ApiImplicitParam(name = "pageSize", value = "指定返回结果中每页显示的记录数量", defaultValue = "10", required = false),
@ApiImplicitParam(name = "page", value = "指定显示返回结果中的第几页", defaultValue = "1", required = false),
@ApiImplicitParam(name = "sortProperty", value = "根据哪个字段排序", required = false, allowableValues = "id,createdTime,updatedTime"),
@ApiImplicitParam(name = "sortOrder", value = "排序方向", required = false, allowableValues = "ASC,DESC")
})
@GetMapping("/{environment}")
public Result<PageData<DataApiModelItemVo>> getPublishDataApiList(@PathVariable String environment,
@RequestParam(value = "serviceName") String serviceName,
@RequestParam(value = "systemName") String systemName,
@RequestParam(value = "publisher") String publisher,
@RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize,
@RequestParam(value = "page", required = false, defaultValue = "1") Integer page,
@RequestParam(value = "sortProperty", required = false, defaultValue = "id") String sortProperty,
@RequestParam(value = "sortOrder", required = false, defaultValue = "ASC") String sortOrder) {
PageLink pageLink = createPageLink(pageSize, page, "", sortProperty, sortOrder);
return dataMarketService.queryDataServiceList(environment, serviceName, systemName, publisher, pageLink);
}
}
package com.hisense.dataservice.service;
import com.hisense.dataservice.library.model.Result;
import com.hisense.dataservice.library.model.page.PageData;
import com.hisense.dataservice.library.model.page.PageLink;
import com.hisense.dataservice.vo.DataApiModelItemVo;
/**
* @author : scc
* @date : 2023/03/22
**/
public interface DataMarketService extends BaseService{
Result<PageData<DataApiModelItemVo>> queryDataServiceList(String environment, String serviceName, String systemName, String publisher, PageLink pageLink);
}
package com.hisense.dataservice.service.impl;
import com.hisense.dataservice.entity.DataApiModel;
import com.hisense.dataservice.enums.SystemEnv;
import com.hisense.dataservice.library.model.Result;
import com.hisense.dataservice.library.model.page.PageData;
import com.hisense.dataservice.library.model.page.PageLink;
import com.hisense.dataservice.repository.DataApiModelRepository;
import com.hisense.dataservice.service.DataMarketService;
import com.hisense.dataservice.vo.DataApiModelItemVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import javax.persistence.criteria.Predicate;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
/**
* @author : scc
* @date : 2023/03/22
**/
@Service
public class DataMarketServiceImpl implements DataMarketService {
@Autowired
private DataApiModelRepository dataApiModelRepository;
@Override
public Result<PageData<DataApiModelItemVo>> queryDataServiceList(String environment, String serviceName, String systemName, String publisher, PageLink pageLink) {
Specification<DataApiModel> spec = (root, query, builder) -> {
List<Predicate> andList = new LinkedList<>();
if(!StringUtils.isEmpty(serviceName)){
andList.add(builder.equal((root.get("name").as(Integer.class)), serviceName));
}
if(!StringUtils.isEmpty(systemName)){
andList.add(builder.equal((root.get("publishSystemName").as(Integer.class)), systemName));
}
if(!StringUtils.isEmpty(publisher)){
andList.add(builder.equal((root.get("creator").as(Integer.class)), publisher));
}
andList.add(builder.equal((root.get("deleted").as(Boolean.class)), Boolean.FALSE));
andList.add(builder.equal((root.get("systemEnv").as(SystemEnv.class)), SystemEnv.valueOf(environment.toUpperCase())));
andList.add(builder.equal((root.get("status").as(Integer.class)), new Integer(1)));
return builder.and(andList.toArray(new Predicate[0]));
};
Page<DataApiModel> dataApiModelPage = dataApiModelRepository.findAll(spec, toPageable(pageLink));
PageData<DataApiModelItemVo> result = pageToPageData(dataApiModelPage);
List<DataApiModelItemVo> dataSourceVos = new ArrayList<>();
for (DataApiModel dataApiModel : dataApiModelPage.getContent()) {
dataSourceVos.add(dataApiModel.toItem());
}
result.setData(dataSourceVos);
return success(result);
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论