mitao
2024-09-21 f44e4d609e7efaed9eac545137970b1e334f8106
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsGroupPurchaseController.java
@@ -1,14 +1,29 @@
package com.ruoyi.goods.controller.inner;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.security.annotation.InnerAuth;
import com.ruoyi.system.api.domain.GoodsGroupPurchase;
import com.ruoyi.goods.mapper.GoodsSkuMapper;
import com.ruoyi.goods.service.IGoodsGroupPurchaseService;
import com.ruoyi.goods.service.impl.GoodsGroupPurchaseInfoServiceImpl;
import com.ruoyi.system.api.domain.GoodsGroupPurchase;
import com.ruoyi.system.api.domain.GoodsGroupPurchaseInfo;
import com.ruoyi.system.api.domain.GoodsSku;
import com.ruoyi.system.api.feignClient.OrderClient;
import java.util.List;
import java.util.Set;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * <p>
@@ -26,13 +41,156 @@
    private final IGoodsGroupPurchaseService goodsGroupPurchaseService;
    private final GoodsGroupPurchaseInfoServiceImpl goodsGroupPurchaseInfoServiceImpl;
    private final OrderClient orderClient;
    private final GoodsSkuMapper goodsSkuMapper;
    @InnerAuth
    @PostMapping("/getGoodsSeckiGoodsGroupPurchaseOne")
    @ResponseBody
    public R<GoodsGroupPurchase> getGoodsSeckiGoodsGroupPurchaseOne(@RequestBody Long goodsSkuId) {
        GoodsGroupPurchase GoodsSeckillOne = goodsGroupPurchaseService.getById(goodsSkuId);
        return R.ok(GoodsSeckillOne);
    }
    @InnerAuth
    @PostMapping("/getGoodsSeckiGoodsGroupPurchaseInfo")
    public R<GoodsGroupPurchaseInfo> getGoodsSeckiGoodsGroupPurchaseInfo(@RequestBody Long goodsSkuId) {
        LambdaQueryWrapper<GoodsGroupPurchaseInfo> wrapper6= Wrappers.lambdaQuery();
        wrapper6.eq(GoodsGroupPurchaseInfo::getDelFlag,0);
        wrapper6.eq(GoodsGroupPurchaseInfo::getGroupStatus,0);
        wrapper6.eq(GoodsGroupPurchaseInfo::getGroupPurchaseId,goodsSkuId);
        GoodsGroupPurchaseInfo one1 = goodsGroupPurchaseInfoServiceImpl.getOne(wrapper6);
        return R.ok(one1);
    }
    @InnerAuth
    @PostMapping("/getGoodsSeckiGoodsGroupPurchaseInfo2")
    public R<GoodsGroupPurchaseInfo> getGoodsSeckiGoodsGroupPurchaseInfo2(@RequestBody String goodsSkuId) {
        LambdaQueryWrapper<GoodsGroupPurchaseInfo> wrapper6= Wrappers.lambdaQuery();
        wrapper6.eq(GoodsGroupPurchaseInfo::getDelFlag,0);
        wrapper6.eq(GoodsGroupPurchaseInfo::getMubre,goodsSkuId);
        GoodsGroupPurchaseInfo one1 = goodsGroupPurchaseInfoServiceImpl.getOne(wrapper6);
        return R.ok(one1);
    }
    @InnerAuth
    @PostMapping("/updgoodsGroupPurchaseInfo1")
    public R<GoodsGroupPurchaseInfo> updgoodsGroupPurchaseInfo1(@RequestBody GoodsGroupPurchaseInfo goodsGroupPurchaseInfo) {
        LambdaQueryWrapper<GoodsGroupPurchaseInfo> wrapper6= Wrappers.lambdaQuery();
        wrapper6.eq(GoodsGroupPurchaseInfo::getDelFlag,0);
        wrapper6.eq(GoodsGroupPurchaseInfo::getMubre,goodsGroupPurchaseInfo.getMubre());
        GoodsGroupPurchaseInfo one1 = goodsGroupPurchaseInfoServiceImpl.getOne(wrapper6);
       int i=one1.getCurrentNumber()-1;
       if (one1.getIsPurchase()==0){
           if (i==0){
               GoodsGroupPurchase byId = goodsGroupPurchaseService.getById(one1.getGroupPurchaseId());
               // int i1 = byId.getLimitNumber() * goodsGroupPurchaseInfo.getGroupSize();
               int i1 = one1.getPurchaseNum();
               GoodsSku goodsSku = goodsSkuMapper.selectById(byId.getGoodsSkuId());
               int i2 = i1 + goodsSku.getStock();
               goodsSku.setStock(i2);
               goodsSkuMapper.updateById(goodsSku);
       /*        goodsGroupPurchaseInfoServiceImpl.removeById(one1);*/
           }
           one1.setCurrentNumber(i);
           one1.setPurchaseNum(0);
           goodsGroupPurchaseInfoServiceImpl.updateById(one1);
       }else{
           if (i==0){
               GoodsGroupPurchase byId = goodsGroupPurchaseService.getById(one1.getGroupPurchaseId());
               GoodsSku goodsSku = goodsSkuMapper.selectById(byId.getGoodsSkuId());
               int i2 = goodsGroupPurchaseInfo.getPurchaseNum() + goodsSku.getStock();
               goodsSku.setStock(i2);
               goodsSkuMapper.updateById(goodsSku);
            /*   goodsGroupPurchaseInfoServiceImpl.removeById(one1);*/
           }else{
               one1.setCurrentNumber(i);
               if (one1.getGroupSize()>one1.getCurrentNumber()){
                   one1.setGroupStatus(0);
               }
               Integer i3= one1.getPurchaseNum()-goodsGroupPurchaseInfo.getPurchaseNum();
               one1.setPurchaseNum(i3);
               goodsGroupPurchaseInfoServiceImpl.updateById(one1);
               GoodsGroupPurchase byId = goodsGroupPurchaseService.getById(one1.getGroupPurchaseId());
               GoodsSku goodsSku = goodsSkuMapper.selectById(byId.getGoodsSkuId());
               int i2 = goodsGroupPurchaseInfo.getPurchaseNum() + goodsSku.getStock();
               goodsSku.setStock(i2);
               goodsSkuMapper.updateById(goodsSku);
             /*  goodsGroupPurchaseInfoServiceImpl.removeById(one1);*/
               // goodsGroupPurchaseInfoServiceImpl.updateById(one1);
           }
       }
        return R.ok(one1);
    }
    @InnerAuth
    @PostMapping("/updgoodsGroupPurchaseInfo")
    public R getGoodsSeckiGoodsGroupPurchaseInfo(@RequestBody GoodsGroupPurchaseInfo goodsGroupPurchaseInfo) {
        log.info("getGoodsSeckiGoodsGroupPurchaseInfo==============》{}", goodsGroupPurchaseInfo);
             if (goodsGroupPurchaseInfo.getId()!=null){
                 log.info("========================已有待成团========================");
                 GoodsGroupPurchaseInfo byId = goodsGroupPurchaseInfoServiceImpl.getById(goodsGroupPurchaseInfo.getId());
                 Integer num= byId.getCurrentNumber()+1;
                 byId.setCurrentNumber(num);
                 byId.setPurchaseNum(goodsGroupPurchaseInfo.getPurchaseNum());
                 goodsGroupPurchaseInfoServiceImpl.updateById(byId);
                 if (num==byId.getGroupSize()){
                     byId.setGroupStatus(1);
                     byId.setIsPurchase(1);
                     goodsGroupPurchaseInfoServiceImpl.updateById(byId);
                     orderClient.updateOrderStatusByMubres1(byId.getMubre(), SecurityConstants.INNER);
                     GoodsGroupPurchaseInfo byIds = goodsGroupPurchaseInfoServiceImpl.getById(goodsGroupPurchaseInfo.getId());
                     GoodsGroupPurchase byId1 = goodsGroupPurchaseService.getById(byId.getGroupPurchaseId());
                     int i1 = byId1.getLimitNumber() * byId.getGroupSize();
                     if (byIds.getPurchaseNum()<i1){
                         int i3=i1-byIds.getPurchaseNum();
                         GoodsSku goodsSku = goodsSkuMapper.selectById(byId1.getGoodsSkuId());
                         int i2 = i3 + goodsSku.getStock();
                         goodsSku.setStock(i2);
                         goodsSkuMapper.updateById(goodsSku);
                     }
                 }
             }else{
                 log.info("===================没有待成团的团购===================");
                 if (goodsGroupPurchaseInfo.getCurrentNumber()==goodsGroupPurchaseInfo.getGroupSize()){
                     goodsGroupPurchaseInfo.setGroupStatus(1);
                     goodsGroupPurchaseInfo.setIsPurchase(1);
                     orderClient.updateOrderStatusByMubres1(goodsGroupPurchaseInfo.getMubre(), SecurityConstants.INNER);
                 }
                 goodsGroupPurchaseInfoServiceImpl.save(goodsGroupPurchaseInfo);
                 if (goodsGroupPurchaseInfo.getCurrentNumber()==goodsGroupPurchaseInfo.getGroupSize()) {
                     GoodsGroupPurchase byId1 = goodsGroupPurchaseService.getById(goodsGroupPurchaseInfo.getGroupPurchaseId());
                     int i1 = byId1.getLimitNumber() * goodsGroupPurchaseInfo.getGroupSize();
                     if (goodsGroupPurchaseInfo.getPurchaseNum() < i1) {
                         int i3 = i1 - goodsGroupPurchaseInfo.getPurchaseNum();
                         GoodsSku goodsSku = goodsSkuMapper.selectById(byId1.getGoodsSkuId());
                         int i2 = i3 + goodsSku.getStock();
                         goodsSku.setStock(i2);
                         goodsSkuMapper.updateById(goodsSku);
                     }
                 }
             }
        return R.ok();
    }
    /**
     * 团购商品开始团购
@@ -51,6 +209,37 @@
        return R.ok();
    }
    @InnerAuth
    @GetMapping("/num/{groupPurchaseId}")
    R<?> GroupPurchaseNum(@PathVariable("groupPurchaseId") Long groupPurchaseId) {
        try {
            GoodsGroupPurchase byId = goodsGroupPurchaseService.getById(groupPurchaseId);
           Integer m= byId.getCurrentNumber()+1;
            byId.setCurrentNumber(m);
            goodsGroupPurchaseService.updateById(byId);
        } catch (Exception e) {
            log.error("团购商品开始团购失败", e);
            return R.fail("团购商品开始团购失败");
        }
        return R.ok();
    }
    @InnerAuth
    @GetMapping("/num1/{groupPurchaseId}")
    R<?> GroupPurchaseNum1(@PathVariable("groupPurchaseId") Long groupPurchaseId) {
        try {
            GoodsGroupPurchase byId = goodsGroupPurchaseService.getById(groupPurchaseId);
            Integer m= byId.getCurrentNumber()-1;
            byId.setCurrentNumber(m);
            goodsGroupPurchaseService.updateById(byId);
        } catch (Exception e) {
            log.error("团购商品开始团购失败", e);
            return R.fail("团购商品开始团购失败");
        }
        return R.ok();
    }
    /**
     * 团购商品结束团购
     *
@@ -67,4 +256,16 @@
        }
        return R.ok();
    }
    /**
     * 根据团购商品id集合查询商品sku信息
     *
     * @param groupPurchaseIdSet
     * @return
     */
    @InnerAuth
    @PostMapping("/getGoodsSkuByGroupPurchaseIdSet")
    R<List<GoodsSku>> getGoodsSkuByGroupPurchaseIdSet(@RequestBody Set<Long> groupPurchaseIdSet) {
        return R.ok(goodsGroupPurchaseService.getGoodsSkuByGroupPurchaseIdSet(groupPurchaseIdSet));
    }
}