Merge branch 'refs/heads/dev'

# Conflicts:
#	eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbMShopUserMapper.java
#	eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbShopUserFlowMapper.java
This commit is contained in:
GYJ
2024-07-10 17:46:14 +08:00
19 changed files with 216 additions and 151 deletions

View File

@@ -5,6 +5,7 @@ import cn.ysk.cashier.cons.domain.TbProskuCon;
import cn.ysk.cashier.cons.service.TbProskuConService;
import cn.ysk.cashier.cons.service.dto.ProskuInfo;
import cn.ysk.cashier.cons.service.dto.TbProskuConQueryCriteria;
import cn.ysk.cashier.exception.BadRequestException;
import org.springframework.data.domain.Pageable;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
@@ -13,6 +14,7 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.*;
import java.io.IOException;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
/**
@@ -44,8 +46,14 @@ public class TbProskuConController {
@PostMapping
@Log("新增商品规格耗材信息")
@ApiOperation("新增商品规格耗材信息")
public ResponseEntity<Object> createTbProskuCon(@Validated @RequestBody ProskuInfo resources) throws Exception {
return new ResponseEntity<>(tbProskuConService.create(resources),HttpStatus.CREATED);
public ResponseEntity<Object> createTbProskuCon(@Validated @RequestBody List<ProskuInfo> resources) throws Exception {
try {
return new ResponseEntity<>(tbProskuConService.create(resources),HttpStatus.CREATED);
} catch (BadRequestException be) {
throw new Exception(be.getMessage());
}catch (Exception e){
throw new Exception("系统异常");
}
}
@PutMapping

View File

@@ -43,7 +43,7 @@ public interface TbProskuConService {
* @param resources /
* @return TbProskuConDto
*/
TbProskuConDto create(ProskuInfo resources) throws Exception;
TbProskuConDto create(List<ProskuInfo> resources) throws Exception;
/**
* 编辑

View File

@@ -6,20 +6,19 @@ import cn.ysk.cashier.cons.domain.TbConsSuppFlow;
import cn.ysk.cashier.cons.domain.TbProskuCon;
import cn.ysk.cashier.cons.repository.TbConsInfoRepository;
import cn.ysk.cashier.cons.service.dto.ProskuInfo;
import cn.ysk.cashier.exception.BadRequestException;
import cn.ysk.cashier.pojo.product.TbProduct;
import cn.ysk.cashier.pojo.product.TbProductSku;
import cn.ysk.cashier.repository.product.TbProductRepository;
import cn.ysk.cashier.repository.product.TbProductSkuRepository;
import cn.ysk.cashier.utils.FileUtil;
import cn.ysk.cashier.utils.PageUtil;
import cn.ysk.cashier.utils.QueryHelp;
import cn.ysk.cashier.utils.ValidationUtil;
import cn.ysk.cashier.utils.*;
import lombok.RequiredArgsConstructor;
import cn.ysk.cashier.cons.repository.TbProskuConRepository;
import cn.ysk.cashier.cons.service.TbProskuConService;
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.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.data.domain.Page;
@@ -38,6 +37,7 @@ import javax.servlet.http.HttpServletResponse;
**/
@Service
@RequiredArgsConstructor
@Slf4j
public class TbProskuConServiceImpl implements TbProskuConService {
private final TbProskuConRepository tbProskuConRepository;
@@ -70,65 +70,85 @@ public class TbProskuConServiceImpl implements TbProskuConService {
@Override
@Transactional(rollbackFor = Exception.class)
public TbProskuConDto create(ProskuInfo resources) throws Exception {
public TbProskuConDto create(List<ProskuInfo> resources) throws BadRequestException,Exception {
for (ProskuInfo resource : resources) {
TbProduct product= tbProductRepository.getById(resource.getProductId());
if(Objects.isNull(product)){
throw new BadRequestException("对应的商品信息不存在");
}
List<TbProskuCon> list=new ArrayList<>();
if(product.getIsDistribute().intValue()==1){
TbProduct product= tbProductRepository.getById(resources.getProductId());
if(Objects.isNull(product)){
throw new Exception("对应的商品信息不存在");
}
TbConsInfo tbConsInfo= tbConsInfoRepository.findById(resource.getConsInfoId()).orElseGet(TbConsInfo::new);
TbConsInfo tbConsInfo= tbConsInfoRepository.getById(resources.getConsInfoId());
if(Objects.isNull(tbConsInfo)){
throw new Exception("对应的耗材信息不存在");
}
log.info("product.getIsDistribute().intValue():{}", JSONUtil.toJSONString(tbConsInfo));
if(ObjectUtil.isNull(tbConsInfo)||ObjectUtil.isNull(tbConsInfo.getId())){
throw new BadRequestException("对应的耗材信息不存在");
}
List<TbProskuCon> list=new ArrayList<>();
if(product.getIsDistribute().intValue()==1){
//查询商品对应的所有规格
List<TbProductSku> skuList= tbProductSkuRepository.searchSku(product.getId().toString());
if(Objects.nonNull(skuList)&&skuList.size()>0){
for (TbProductSku tbProductSku : skuList) {
int count=tbProskuConRepository.countByConInfoIdAndProductSkuIdAndShopId(resources.getConsInfoId(), tbProductSku.getId(), Integer.valueOf(tbProductSku.getShopId()), Integer.valueOf(tbProductSku.getProductId()));
//查询商品对应的所有规格
List<TbProductSku> skuList= tbProductSkuRepository.searchSku(product.getId().toString());
if(Objects.nonNull(skuList)&&skuList.size()>0){
for (TbProductSku tbProductSku : skuList) {
int count=tbProskuConRepository.countByConInfoIdAndProductSkuIdAndShopId(resource.getConsInfoId(), tbProductSku.getId(), Integer.valueOf(tbProductSku.getShopId()), Integer.valueOf(tbProductSku.getProductId()));
if(count<=0){
TbProskuCon tbProskuCon=new TbProskuCon();
tbProskuCon.setShopId(Integer.valueOf(tbProductSku.getShopId()));
tbProskuCon.setConInfoId(tbConsInfo.getId());
tbProskuCon.setProductId(Integer.valueOf(tbProductSku.getProductId()));
tbProskuCon.setProductSkuId(tbProductSku.getId());
tbProskuCon.setSurplusStock(resource.getSurplusStock());
tbProskuCon.setStatus("1");
tbProskuCon.setCreateTime(new Timestamp(System.currentTimeMillis()));
list.add(tbProskuCon);
}else {
throw new BadRequestException(product.getName().concat("对应的耗材信息已存在"));
}
}
}
}else {
for (ProskuInfo.SkuInfo skuInfo : resource.getSkuInfos()) {
TbConsInfo tbConsInfo= tbConsInfoRepository.findById(skuInfo.getConInfoId()).orElseGet(TbConsInfo::new);
log.info("skuInfo:{}", JSONUtil.toJSONString(tbConsInfo));
if(ObjectUtil.isNull(tbConsInfo)||ObjectUtil.isNull(tbConsInfo.getId())){
throw new BadRequestException("对应的耗材信息不存在");
}
TbProductSku tbProductSku= tbProductSkuRepository.findById(skuInfo.getSkuId()).orElseGet(TbProductSku::new);
if(ObjectUtil.isNull(tbProductSku)||ObjectUtil.isNull(tbProductSku.getId())){
throw new BadRequestException("规格信息不存在");
}
int count=tbProskuConRepository.countByConInfoIdAndProductSkuIdAndShopId(resource.getConsInfoId(), skuInfo.getSkuId(), skuInfo.getShopId(), resource.getProductId());
if(count<=0){
TbProskuCon tbProskuCon=new TbProskuCon();
tbProskuCon.setShopId(Integer.valueOf(tbProductSku.getShopId()));
tbProskuCon.setConInfoId(resources.getConsInfoId());
tbProskuCon.setProductId(Integer.valueOf(tbProductSku.getProductId()));
tbProskuCon.setProductSkuId(tbProductSku.getId());
tbProskuCon.setSurplusStock(resources.getSurplusStock());
tbProskuCon.setShopId(Integer.valueOf(skuInfo.getShopId()));
tbProskuCon.setConInfoId(tbConsInfo.getId());
tbProskuCon.setProductId(resource.getProductId());
tbProskuCon.setProductSkuId(skuInfo.getSkuId());
tbProskuCon.setSurplusStock(skuInfo.getSurplusStock());
tbProskuCon.setStatus("1");
tbProskuCon.setCreateTime(new Timestamp(System.currentTimeMillis()));
list.add(tbProskuCon);
}else {
throw new Exception(product.getName().concat("对应的耗材信息已存在"));
TbProductSku sku= tbProductSkuRepository.getById(skuInfo.getSkuId());
throw new BadRequestException(product.getName().concat("商品对应的").concat(Objects.nonNull(sku.getSpecSnap())?sku.getSpecSnap():"").concat("规格已存在"));
}
}
}
}else {
for (ProskuInfo.SkuInfo skuInfo : resources.getSkuInfos()) {
int count=tbProskuConRepository.countByConInfoIdAndProductSkuIdAndShopId(resources.getConsInfoId(), skuInfo.getSkuId(), skuInfo.getShopId(), resources.getProductId());
if(count<=0){
TbProskuCon tbProskuCon=new TbProskuCon();
tbProskuCon.setShopId(Integer.valueOf(skuInfo.getShopId()));
tbProskuCon.setConInfoId(skuInfo.getConInfoId());
tbProskuCon.setProductId(resources.getProductId());
tbProskuCon.setProductSkuId(skuInfo.getSkuId());
tbProskuCon.setSurplusStock(skuInfo.getSurplusStock());
tbProskuCon.setStatus("1");
tbProskuCon.setCreateTime(new Timestamp(System.currentTimeMillis()));
list.add(tbProskuCon);
}else {
TbProductSku sku= tbProductSkuRepository.getById(skuInfo.getSkuId());
throw new Exception(product.getName().concat("商品对应的").concat(Objects.nonNull(sku.getSpecSnap())?sku.getSpecSnap():"").concat("规格已存在"));
}
}
if(Objects.nonNull(list)&&list.size()>0){
tbProskuConRepository.saveAll(list);
}
}
}
if(Objects.nonNull(list)&&list.size()>0){
tbProskuConRepository.saveAll(list);
}
return new TbProskuConDto();
}