Merge branch 'ww' into test
This commit is contained in:
commit
f8ac16b457
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -285,7 +285,7 @@ public class TbProductServiceImpl implements TbProductService {
|
|||
Threads.call(tbProductSkus, tbProductSpec);
|
||||
//组装
|
||||
TbProductVo tbProductVo = new TbProductVo();
|
||||
tbProductVo.setStockNumber(tbProduct.getStockNumber() == null ? 0.00 : tbProduct.getStockNumber());
|
||||
// tbProductVo.setStockNumber(tbProduct.getStockNumber() == null ? 0.00 : tbProduct.getStockNumber());
|
||||
tbProductVo.setCategoryId(StringUtils.isNotBlank(tbProduct.getCategoryId())?Integer.valueOf(tbProduct.getCategoryId()):null);
|
||||
//单位
|
||||
// if (tbProduct.getUnitId() == null) {
|
||||
|
|
@ -318,6 +318,14 @@ public class TbProductServiceImpl implements TbProductService {
|
|||
} else {
|
||||
tbProductVo.setSkuList(tbProductSkus.get());
|
||||
}
|
||||
|
||||
ViewConSku viewConSku=new ViewConSku();
|
||||
viewConSku.setShopId(Integer.valueOf(tbProduct.getShopId()));
|
||||
viewConSku.setProductId(tbProduct.getId());
|
||||
Example<ViewConSku> query = Example.of(viewConSku);
|
||||
List<ViewConSku> skuCons = viewConSkuRepository.findAll(query);
|
||||
tbProductVo.setConInfos(skuCons);
|
||||
|
||||
if ("sku".equals(tbProductVo.getTypeEnum())) {
|
||||
Optional<TbProductSkuResult> skuResult = tbProductSkuResultRepository.findById(tbProductVo.getId());
|
||||
tbProductVo.setSkuSnap(skuResult.get().getTagSnap());
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package cn.ysk.cashier.vo;
|
||||
|
||||
import cn.ysk.cashier.cons.domain.ViewConSku;
|
||||
import cn.ysk.cashier.dto.TbPlatformDictDto;
|
||||
import cn.ysk.cashier.dto.shop.TbCouponCategoryDto;
|
||||
import cn.ysk.cashier.pojo.shop.TbPurchaseNotice;
|
||||
|
|
@ -221,6 +222,8 @@ public class TbProductVo {
|
|||
|
||||
private BigDecimal maxPrice;
|
||||
|
||||
private List<ViewConSku> conInfos;
|
||||
|
||||
private TbPurchaseNotice notices=new TbPurchaseNotice();
|
||||
private List<TbCouponCategoryDto> groupCategoryId = new ArrayList<>();
|
||||
private List<TbPlatformDictDto> tags = new ArrayList<>();
|
||||
|
|
|
|||
Loading…
Reference in New Issue