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.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.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>
|
* 商品团购表 前端控制器
|
* </p>
|
*
|
* @author mitao
|
* @since 2024-05-16
|
*/
|
@Slf4j
|
@RestController
|
@RequiredArgsConstructor
|
@RequestMapping("/goods-group-purchase")
|
public class GoodsGroupPurchaseController {
|
|
private final IGoodsGroupPurchaseService goodsGroupPurchaseService;
|
|
private final GoodsGroupPurchaseInfoServiceImpl goodsGroupPurchaseInfoServiceImpl;
|
|
private final OrderClient orderClient;
|
|
private final GoodsSkuMapper goodsSkuMapper;
|
|
@InnerAuth
|
@PostMapping("/getGoodsSeckiGoodsGroupPurchaseOne")
|
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();
|
}
|
|
|
/**
|
* 团购商品开始团购
|
*
|
* @param groupPurchaseId 团购商品id
|
*/
|
@InnerAuth
|
@GetMapping("/start/{groupPurchaseId}")
|
R<?> startGroupPurchase(@PathVariable("groupPurchaseId") Long groupPurchaseId) {
|
try {
|
goodsGroupPurchaseService.startGroupPurchase(groupPurchaseId);
|
} catch (JsonProcessingException e) {
|
log.error("团购商品开始团购失败", e);
|
return R.fail("团购商品开始团购失败");
|
}
|
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();
|
}
|
|
|
/**
|
* 团购商品结束团购
|
*
|
* @param groupPurchaseId 团购商品id
|
*/
|
@InnerAuth
|
@GetMapping("/end/{groupPurchaseId}")
|
R<?> endGroupPurchase(@PathVariable("groupPurchaseId") Long groupPurchaseId) {
|
try {
|
goodsGroupPurchaseService.endGroupPurchase(groupPurchaseId);
|
} catch (JsonProcessingException e) {
|
log.error("团购商品开始团购失败", e);
|
return R.fail("团购商品结束团购失败");
|
}
|
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));
|
}
|
}
|