提交修改

This commit is contained in:
quyixiao 2025-08-25 09:13:53 +08:00
parent 5bc6f98ce4
commit 8785d3f680
6 changed files with 119 additions and 24 deletions

View File

@ -78,4 +78,9 @@ public interface VvProductDao extends BaseMapper<VvProductEntity> {
@IF @OrderBy(VvProductEntity.create_timestamp) String createTimestampSort); @IF @OrderBy(VvProductEntity.create_timestamp) String createTimestampSort);
List<VvProductEntity> selectVvProductByProductIds(@IN List<Long> id); List<VvProductEntity> selectVvProductByProductIds(@IN List<Long> id);
int updateShowSaleCountAndSaleCount(@Plus Integer showSaleCount,@Plus Integer realSaleCount,@By Long id);
} }

View File

@ -10,8 +10,7 @@ package com.heyu.api.data.dao.vv;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.heyu.api.data.entity.vv.VvSkuEntity; import com.heyu.api.data.entity.vv.VvSkuEntity;
import com.lz.mybatis.plugin.annotations.IN; import com.lz.mybatis.plugin.annotations.*;
import com.lz.mybatis.plugin.annotations.Realy;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -46,4 +45,9 @@ public interface VvSkuDao extends BaseMapper<VvSkuEntity> {
List<VvSkuEntity> selectVvSkuBySkuIds(@IN List<Long> id); List<VvSkuEntity> selectVvSkuBySkuIds(@IN List<Long> id);
int updateVvSkuStockSaleCountById(@Sub Integer stock, @Plus Integer realSaleCount,@Plus Integer showSaleCount, @By Long skuId);
} }

View File

@ -10,7 +10,7 @@ import java.util.Date;import java.util.Date;
/** /**
*sku详描 *sku详描
* @author quyixiao * @author quyixiao
* @since 2025-08-24 * @since 2025-08-25
*/ */
@Data @Data
@ -29,6 +29,9 @@ private static final long serialVersionUID = 1L;
public final static String sale_price = CLASS_NAME + "sale_price"; // 销售价 public final static String sale_price = CLASS_NAME + "sale_price"; // 销售价
public final static String origin_price = CLASS_NAME + "origin_price"; // 原价 public final static String origin_price = CLASS_NAME + "origin_price"; // 原价
public final static String product_id = CLASS_NAME + "product_id"; // 商品id public final static String product_id = CLASS_NAME + "product_id"; // 商品id
public final static String stock_ = CLASS_NAME + "stock"; // 库存
public final static String real_sale_count = CLASS_NAME + "real_sale_count"; // 真实销售数量
public final static String show_sale_count = CLASS_NAME + "show_sale_count"; // 展示销售数量
// //
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Long id; private Long id;
@ -46,6 +49,12 @@ private static final long serialVersionUID = 1L;
private BigDecimal originPrice; private BigDecimal originPrice;
//商品id //商品id
private Long productId; private Long productId;
//库存
private Integer stock;
//真实销售数量
private Integer realSaleCount;
//展示销售数量
private Integer showSaleCount;
/** /**
* *
* @return * @return
@ -166,6 +175,51 @@ private static final long serialVersionUID = 1L;
this.productId = productId; this.productId = productId;
} }
/**
* 库存
* @return
*/
public Integer getStock() {
return stock;
}
/**
* 库存
* @param stock
*/
public void setStock(Integer stock) {
this.stock = stock;
}
/**
* 真实销售数量
* @return
*/
public Integer getRealSaleCount() {
return realSaleCount;
}
/**
* 真实销售数量
* @param realSaleCount
*/
public void setRealSaleCount(Integer realSaleCount) {
this.realSaleCount = realSaleCount;
}
/**
* 展示销售数量
* @return
*/
public Integer getShowSaleCount() {
return showSaleCount;
}
/**
* 展示销售数量
* @param showSaleCount
*/
public void setShowSaleCount(Integer showSaleCount) {
this.showSaleCount = showSaleCount;
}
@Override @Override
public String toString() { public String toString() {
return "VvSkuEntity{" + return "VvSkuEntity{" +
@ -177,6 +231,9 @@ private static final long serialVersionUID = 1L;
",salePrice=" + salePrice + ",salePrice=" + salePrice +
",originPrice=" + originPrice + ",originPrice=" + originPrice +
",productId=" + productId + ",productId=" + productId +
",stock=" + stock +
",realSaleCount=" + realSaleCount +
",showSaleCount=" + showSaleCount +
"}"; "}";
} }
} }

View File

@ -49,7 +49,7 @@ public class MysqlMain_update {
List<TablesBean> list = new ArrayList<TablesBean>(); List<TablesBean> list = new ArrayList<TablesBean>();
String a = "vv_product"; String a = "vv_sku";
for (String s : a.split(",")) { for (String s : a.split(",")) {
list.add(new TablesBean(s)); list.add(new TablesBean(s));
} }

View File

@ -0,0 +1,12 @@
package com.heyu.api.alibaba.request.mm.order.resp;
import lombok.Data;
@Data
public class OrderSkuDTO {
private Long skuId;
private String message;
}

View File

@ -78,6 +78,7 @@ public class AppOrderController {
vvOrderRequest.setOrderIds(orderIds); vvOrderRequest.setOrderIds(orderIds);
} }
PPageUtils pageUtils = PPageUtils.startPage(vvOrderRequest.getPageNum(), vvOrderRequest.getPageSize()) PPageUtils pageUtils = PPageUtils.startPage(vvOrderRequest.getPageNum(), vvOrderRequest.getPageSize())
.doSelect(new ISelect() { .doSelect(new ISelect() {
@Override @Override
@ -93,7 +94,6 @@ public class AppOrderController {
} }
}); });
List<VvTradeOrderEntity> vvTradeOrderEntities = pageUtils.getRows(); List<VvTradeOrderEntity> vvTradeOrderEntities = pageUtils.getRows();
List<Long> tradeOrderIds = new ArrayList<>(); List<Long> tradeOrderIds = new ArrayList<>();
for (VvTradeOrderEntity vvTradeOrderEntity : vvTradeOrderEntities) { for (VvTradeOrderEntity vvTradeOrderEntity : vvTradeOrderEntities) {
@ -102,7 +102,6 @@ public class AppOrderController {
List<VvTradeOrderLineEntity> list = vvTradeOrderLineDao.selectVvTradeOrderLineByTradeOrderIds(tradeOrderIds); List<VvTradeOrderLineEntity> list = vvTradeOrderLineDao.selectVvTradeOrderLineByTradeOrderIds(tradeOrderIds);
List<String> trackNumbers = new ArrayList<>(); List<String> trackNumbers = new ArrayList<>();
for (VvTradeOrderLineEntity vvTradeOrderLineEntity : list) { for (VvTradeOrderLineEntity vvTradeOrderLineEntity : list) {
trackNumbers.add(vvTradeOrderLineEntity.getTrackNumber()); trackNumbers.add(vvTradeOrderLineEntity.getTrackNumber());
@ -126,7 +125,6 @@ public class AppOrderController {
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = new ArrayList<>(); List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = new ArrayList<>();
for (VvTradeOrderLineEntity tradeOrderLineEntity : list) { for (VvTradeOrderLineEntity tradeOrderLineEntity : list) {
if (vvTradeOrderEntity.getId().equals(tradeOrderLineEntity.getTradeOrderId())) { if (vvTradeOrderEntity.getId().equals(tradeOrderLineEntity.getTradeOrderId())) {
vvTradeOrderLineEntityList.add(tradeOrderLineEntity); vvTradeOrderLineEntityList.add(tradeOrderLineEntity);
@ -142,13 +140,11 @@ public class AppOrderController {
for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) { for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) {
if (StringUtils.isNotBlank(tradeOrderLineEntity.getTrackNumber())) { if (StringUtils.isNotBlank(tradeOrderLineEntity.getTrackNumber())) {
PackageDTO packageDTO = packageDTOMap.get(tradeOrderLineEntity.getTrackNumber()); PackageDTO packageDTO = packageDTOMap.get(tradeOrderLineEntity.getTrackNumber());
if (packageDTO == null) { if (packageDTO == null) {
VvPackageEntity vvPackage = vvPackageEntityMap.get(tradeOrderLineEntity.getTrackNumber()); VvPackageEntity vvPackage = vvPackageEntityMap.get(tradeOrderLineEntity.getTrackNumber());
packageDTO = new PackageDTO(); packageDTO = new PackageDTO();
BeanUtils.copyProperties(vvPackage, packageDTO); BeanUtils.copyProperties(vvPackage, packageDTO);
} }
List<VvTradeOrderLineEntity> vvTradeOrderLineEntitys = packageDTO.getVvTradeOrderLineEntityList(); List<VvTradeOrderLineEntity> vvTradeOrderLineEntitys = packageDTO.getVvTradeOrderLineEntityList();
if (vvTradeOrderLineEntitys == null) { if (vvTradeOrderLineEntitys == null) {
vvTradeOrderLineEntitys.add(tradeOrderLineEntity); vvTradeOrderLineEntitys.add(tradeOrderLineEntity);
@ -167,10 +163,8 @@ public class AppOrderController {
packageList.add(entry.getValue()); packageList.add(entry.getValue());
} }
vvOrderListResp.setVvTradeOrderLineList(vvTradeOrderLineList); vvOrderListResp.setVvTradeOrderLineList(vvTradeOrderLineList);
vvOrderListResp.setPackageList(packageList); vvOrderListResp.setPackageList(packageList);
vvOrderListResps.add(vvOrderListResp); vvOrderListResps.add(vvOrderListResp);
} }
return R.ok().setData(vvOrderListResps); return R.ok().setData(vvOrderListResps);
@ -183,11 +177,9 @@ public class AppOrderController {
@RequestMapping("/add") @RequestMapping("/add")
public R add(@RequestBody VvTradeOrderDTO vvOrderRequest) { public R add(@RequestBody VvTradeOrderDTO vvOrderRequest) {
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = new ArrayList<>(); List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = new ArrayList<>();
BigDecimal allPrice = BigDecimal.ZERO; BigDecimal allPrice = BigDecimal.ZERO;
int allNum = 0; int allNum = 0;
List<Long> skuIds = new ArrayList<>(); List<Long> skuIds = new ArrayList<>();
for (VvTradeOrderLineDTO vvTradeOrderLineDTO : vvOrderRequest.getVvTradeOrderLineDTOList()) { for (VvTradeOrderLineDTO vvTradeOrderLineDTO : vvOrderRequest.getVvTradeOrderLineDTOList()) {
skuIds.add(vvTradeOrderLineDTO.getSkuId()); skuIds.add(vvTradeOrderLineDTO.getSkuId());
@ -205,12 +197,18 @@ public class AppOrderController {
vvSkuPropertyValueMap.put(vvSkuPropertyValueEntity.getSkuId(), vvSkuPropertyValueEntities); vvSkuPropertyValueMap.put(vvSkuPropertyValueEntity.getSkuId(), vvSkuPropertyValueEntities);
productIds.add(vvSkuPropertyValueEntity.getProductId()); productIds.add(vvSkuPropertyValueEntity.getProductId());
} }
Map<Long, VvSkuEntity> skuEntityMap = new HashMap<>(); Map<Long, VvSkuEntity> skuEntityMap = new HashMap<>();
List<VvSkuEntity> vvSkuEntities = vvSkuDao.selectVvSkuBySkuIds(skuIds); List<VvSkuEntity> vvSkuEntities = vvSkuDao.selectVvSkuBySkuIds(skuIds);
for (VvSkuEntity vvSkuEntity : vvSkuEntities) { for (VvSkuEntity vvSkuEntity : vvSkuEntities) {
skuEntityMap.put(vvSkuEntity.getId(), vvSkuEntity); skuEntityMap.put(vvSkuEntity.getId(), vvSkuEntity);
// 如果库存少于 0 则显示库存不足
if (vvSkuEntity.getStock() <= 0) {
OrderSkuDTO orderSkuDTO = new OrderSkuDTO();
orderSkuDTO.setSkuId(vvSkuEntity.getId());
orderSkuDTO.setMessage("库存不足");
return R.error().setData(orderSkuDTO);
}
} }
List<Long> productIdList = new ArrayList<>(); List<Long> productIdList = new ArrayList<>();
@ -222,9 +220,21 @@ public class AppOrderController {
vvProductMap.put(vvProductEntity.getId(), vvProductEntity); vvProductMap.put(vvProductEntity.getId(), vvProductEntity);
} }
Map<Long, Integer> productNumMap = new HashMap<>();
for (VvTradeOrderLineDTO vvTradeOrderLineDTO : vvOrderRequest.getVvTradeOrderLineDTOList()) { for (VvTradeOrderLineDTO vvTradeOrderLineDTO : vvOrderRequest.getVvTradeOrderLineDTOList()) {
VvSkuEntity vvSkuEntity = skuEntityMap.get(vvTradeOrderLineDTO.getSkuId()); VvSkuEntity vvSkuEntity = skuEntityMap.get(vvTradeOrderLineDTO.getSkuId());
Integer saleCount = productNumMap.get(vvSkuEntity.getProductId());
if (saleCount == null) {
saleCount = 0;
}
saleCount = saleCount + vvTradeOrderLineDTO.getNum();
productNumMap.put(vvSkuEntity.getProductId(), saleCount);
allNum = allNum + vvTradeOrderLineDTO.getNum(); allNum = allNum + vvTradeOrderLineDTO.getNum();
allPrice = BigDecimalUtil.add(BigDecimalUtil.multiply(vvSkuEntity.getSalePrice(), new BigDecimal(vvTradeOrderLineDTO.getNum())), allPrice); allPrice = BigDecimalUtil.add(BigDecimalUtil.multiply(vvSkuEntity.getSalePrice(), new BigDecimal(vvTradeOrderLineDTO.getNum())), allPrice);
List<VvSkuPropertyValueEntity> vvSkuPropertyValueEntities = vvSkuPropertyValueMap.get(vvTradeOrderLineDTO.getSkuId()); List<VvSkuPropertyValueEntity> vvSkuPropertyValueEntities = vvSkuPropertyValueMap.get(vvTradeOrderLineDTO.getSkuId());
@ -283,7 +293,14 @@ public class AppOrderController {
vvTradeOrderLineDao.insertOrUpdateVvTradeOrderLine(tradeOrderLineEntity); vvTradeOrderLineDao.insertOrUpdateVvTradeOrderLine(tradeOrderLineEntity);
} }
return R.ok(); for (VvTradeOrderLineDTO vvTradeOrderLineDTO : vvOrderRequest.getVvTradeOrderLineDTOList()) {
vvSkuDao.updateVvSkuStockSaleCountById(vvTradeOrderLineDTO.getNum(), vvTradeOrderLineDTO.getNum(), vvTradeOrderLineDTO.getNum(), vvTradeOrderLineDTO.getSkuId());
}
for (Map.Entry<Long, Integer> map : productNumMap.entrySet()) {
vvProductDao.updateShowSaleCountAndSaleCount(map.getValue(), map.getValue(), map.getKey());
}
return R.ok("订单创建成功");
} }
@RequestMapping("/delete") @RequestMapping("/delete")