Merge branch 'ww' into test
This commit is contained in:
@@ -5,6 +5,8 @@ import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @website https://eladmin.vip
|
||||
* @author admin
|
||||
@@ -23,5 +25,6 @@ public interface TbProskuConRepository extends JpaRepository<TbProskuCon, Intege
|
||||
@Query(value = "select * from tb_prosku_con where con_info_id=?1 and product_sku_id=?2 and shop_id=?3 and product_id=?4",nativeQuery = true)
|
||||
TbProskuCon selectByConInfoIdAndProductSkuIdAndShopId(Integer conInfoId,Integer productSkuId,Integer shopId,Integer productId);
|
||||
|
||||
List<TbProskuCon> searchAllByProductId(Integer productId);
|
||||
|
||||
}
|
||||
@@ -56,6 +56,22 @@ public class TbProskuConController {
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping("V2")
|
||||
@Log("新增商品耗材绑定关系")
|
||||
@ApiOperation("新增商品耗材绑定关系")
|
||||
public ResponseEntity<Object> upV2(@Validated @RequestBody List<TbProskuCon> resources) throws Exception {
|
||||
try {
|
||||
tbProskuConService.upV2(resources);
|
||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
} catch (BadRequestException be) {
|
||||
throw new Exception(be.getMessage());
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
throw new Exception("相同商品耗材信息不允许添加");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@PutMapping
|
||||
@Log("修改商品规格耗材信息")
|
||||
@ApiOperation("修改商品规格耗材信息")
|
||||
|
||||
@@ -44,6 +44,7 @@ public interface TbProskuConService {
|
||||
* @return TbProskuConDto
|
||||
*/
|
||||
TbProskuConDto create(List<ProskuInfo> resources) throws Exception;
|
||||
void upV2(List<TbProskuCon> resources) throws Exception;
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
|
||||
@@ -19,14 +19,17 @@ import cn.ysk.cashier.cons.service.dto.TbProskuConDto;
|
||||
import cn.ysk.cashier.cons.service.dto.TbProskuConQueryCriteria;
|
||||
import cn.ysk.cashier.cons.service.mapstruct.TbProskuConMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
import java.util.stream.Collectors;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
/**
|
||||
@@ -154,6 +157,61 @@ public class TbProskuConServiceImpl implements TbProskuConService {
|
||||
return new TbProskuConDto();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void upV2(List<TbProskuCon> resources) {
|
||||
List<TbProskuCon> newCons=new ArrayList<>();
|
||||
Map<Integer, List<TbProskuCon>> conMap = resources.stream()
|
||||
.collect(Collectors.groupingBy(TbProskuCon::getProductId));
|
||||
for (Integer proId : conMap.keySet()) {
|
||||
TbProduct product= tbProductRepository.getById(proId);
|
||||
if(Objects.isNull(product)){
|
||||
throw new BadRequestException("对应的商品信息不存在");
|
||||
}
|
||||
List<TbProskuCon> cons = conMap.get(proId);
|
||||
List<Integer> collect = cons.stream().map(TbProskuCon::getId).collect(Collectors.toList());
|
||||
//现有的
|
||||
List<TbProskuCon> tbProskuCons = tbProskuConRepository.searchAllByProductId(proId);
|
||||
List<Integer> delIds = new ArrayList<>();
|
||||
for (TbProskuCon tbProskuCon : tbProskuCons) {
|
||||
if (!collect.contains(tbProskuCon.getId())) {
|
||||
delIds.add(tbProskuCon.getId());
|
||||
}
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(delIds)) {
|
||||
tbProskuConRepository.deleteAllById(delIds);
|
||||
}
|
||||
//判断
|
||||
for (TbProskuCon resource : cons) {
|
||||
TbConsInfo tbConsInfo = tbConsInfoRepository.findById(resource.getConInfoId()).orElseGet(TbConsInfo::new);
|
||||
if (ObjectUtil.isNull(tbConsInfo) || ObjectUtil.isNull(tbConsInfo.getId())) {
|
||||
throw new BadRequestException("对应的耗材信息不存在");
|
||||
}
|
||||
TbProductSku sku = new TbProductSku();
|
||||
if (resource.getProductSkuId() != 0) {
|
||||
sku = tbProductSkuRepository.findById(resource.getProductSkuId()).orElseGet(TbProductSku::new);
|
||||
if (ObjectUtil.isNull(sku) || ObjectUtil.isNull(sku.getId())) {
|
||||
throw new BadRequestException("规格信息不存在");
|
||||
}
|
||||
}
|
||||
int count = tbProskuConRepository.countByConInfoIdAndProductSkuIdAndShopId(resource.getConInfoId(), resource.getProductSkuId(), resource.getShopId(), resource.getProductId());
|
||||
if (count <= 0) {
|
||||
newCons.add(resource);
|
||||
} else {
|
||||
if (resource.getProductSkuId() != 0) {
|
||||
throw new BadRequestException(StringUtils.isNotBlank(sku.getSpecSnap()) ? sku.getSpecSnap() : "".concat(" 对应的耗材").concat(tbConsInfo.getConName()).concat("关系已存在"));
|
||||
} else {
|
||||
throw new BadRequestException(" 对应的耗材".concat(tbConsInfo.getConName()).concat("关系已存在"));
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!CollectionUtils.isEmpty(newCons)){
|
||||
tbProskuConRepository.saveAll(newCons);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void update(TbProskuCon resources) throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user