Commit 3f2af6ff by zhuht

[chg]合同列表返回值增加关联的项目名;项目查询支持名称模糊搜索和返回条数限制;

1 parent 7a04d0d6
package vion.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.github.linpeilie.Converter;
import lombok.RequiredArgsConstructor;
......@@ -35,29 +36,31 @@ public class StoreController {
@GetMapping("/stores")
@SaCheckPermission(value = "store:list", orRole="admin")
@SaCheckPermission(value = "store:list", orRole = "admin")
public Page<StoreVO> getStoreList(StoreDTO data) {
return storeService.getStoreList(data);
}
@GetMapping("/store")
@SaCheckPermission(value = "store:query", orRole="admin")
@SaCheckPermission(value = "store:query", orRole = "admin")
public StoreVO getStoreById(@RequestParam Integer id) {
Store store = storeService.getById(id);
return converter.convert(store, StoreVO.class);
}
@GetMapping("/storeList")
@SaCheckPermission(value = "store:list1", orRole="admin")
public List<StoreVO> getStoreList(Integer accountId) {
@SaCheckPermission(value = "store:list1", orRole = "admin")
public List<StoreVO> getStoreList(Integer accountId, String name, Integer limit) {
List<Store> storeList = storeService.lambdaQuery()
.eq(accountId != null, Store::getAccountId, accountId)
.like(StringUtils.isNotBlank(name), Store::getName, name)
.last(limit != null, "limit " + limit)
.list();
return converter.convert(storeList, StoreVO.class);
}
@PostMapping("/stores")
@SaCheckPermission(value = "store:editAndSave", orRole="admin")
@SaCheckPermission(value = "store:editAndSave", orRole = "admin")
public String saveOrUpdate(@RequestBody StoreDTO data, @RequestHeader String token) {
UserVO user = Global.USERNAME_MAP.get(token);
......@@ -71,14 +74,14 @@ public class StoreController {
}
@PostMapping("/updateStoreStatus")
@SaCheckPermission(value = "store:editStatus", orRole="admin")
@SaCheckPermission(value = "store:editStatus", orRole = "admin")
public Object updateStoreStage(StatusDTO statusDTO, @RequestHeader String token) {
return storeService.updateStoreStage(statusDTO, token);
}
// 未用到
// @GetMapping("/store/contract/{id}")
@SaCheckPermission(value = "store:contract", orRole="admin")
@SaCheckPermission(value = "store:contract", orRole = "admin")
public List<ContractVO> listContractById(@PathVariable Long id) {
List<RContractStore> contractStoreList = contractStoreService.lambdaQuery().eq(RContractStore::getStoreId, id).list();
List<Long> contractIdList = contractStoreList.stream().map(RContractStore::getContractId).collect(Collectors.toList());
......
......@@ -18,9 +18,11 @@ import org.springframework.stereotype.Service;
import vion.dto.ContractDTO;
import vion.mapper.ContractMapper;
import vion.mapper.RContractStoreMapper;
import vion.mapper.StoreMapper;
import vion.model.Contract;
import vion.model.FileInfo;
import vion.model.RContractStore;
import vion.model.Store;
import vion.service.IContractPaymentService;
import vion.service.IContractService;
import vion.service.IFileService;
......@@ -32,6 +34,7 @@ import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
......@@ -46,6 +49,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
private final IContractPaymentService contractPaymentService;
private final Converter converter;
private final RContractStoreMapper rContractStoreMapper;
private final StoreMapper storeMapper;
@Value("${fileUrl:}")
private String fileUrl;
......@@ -70,9 +74,33 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
.like(StringUtils.isNotBlank(name), Contract::getName, name)
.page(Page.of(dto.getPageNum(), dto.getPageSize()));
List<ContractVO> contractVOList = converter.convert(contractList.getRecords(), ContractVO.class);
// 查出合同关联的项目名
completeStoreName(contractVOList);
return Page.<ContractVO>of(contractList.getCurrent(), contractList.getSize(), contractList.getTotal()).setRecords(contractVOList);
}
private void completeStoreName(List<ContractVO> contractVOList) {
if (CollectionUtils.isNotEmpty(contractVOList)) {
List<Long> contractIds = contractVOList.stream().map(ContractVO::getId).collect(Collectors.toList());
Map<Long, List<Long>> contractStoreIdsMap = rContractStoreMapper.selectList(Wrappers.lambdaQuery(RContractStore.class)
.in(RContractStore::getContractId, contractIds))
.stream().collect(Collectors.groupingBy(RContractStore::getContractId, Collectors.mapping(RContractStore::getStoreId, Collectors.toList())));
if (!contractStoreIdsMap.isEmpty()) {
List<Long> storeIds = contractStoreIdsMap.values().stream().flatMap(List::stream).collect(Collectors.toList());
Map<Long, String> storeIdNameMap = storeMapper.selectBatchIds(storeIds).stream().collect(Collectors.toMap(Store::getId, Store::getName));
if (!storeIdNameMap.isEmpty()) {
contractVOList.forEach(contractVO -> {
if (contractStoreIdsMap.containsKey(contractVO.getId())) {
contractVO.setStoreNames(contractStoreIdsMap.get(contractVO.getId()).stream().map(storeIdNameMap::get).collect(Collectors.toList()));
}
});
}
}
}
}
@Override
public String updateById(Long id, ContractDTO dto) {
Contract exitContract = this.getById(id);
......
......@@ -7,6 +7,7 @@ import lombok.Setter;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Getter
@Setter
......@@ -118,4 +119,9 @@ public class ContractVO {
* 合同质保周期(月)
*/
private Integer warrantyPeriod;
/**
* 合同关联的项目名
*/
private List<String> storeNames;
}
\ No newline at end of file
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!