提交修改

This commit is contained in:
quyixiao 2025-08-25 08:51:43 +08:00
parent 7dadc9d88e
commit 5bc6f98ce4
4 changed files with 63 additions and 37 deletions

View File

@ -76,4 +76,6 @@ public interface VvProductDao extends BaseMapper<VvProductEntity> {
@IF @OrderBy(VvProductEntity.show_sale_price) String salePriceSort, @IF @OrderBy(VvProductEntity.show_sale_price) String salePriceSort,
@IF @OrderBy(VvProductEntity.show_sale_count) String saleCountSort, @IF @OrderBy(VvProductEntity.show_sale_count) String saleCountSort,
@IF @OrderBy(VvProductEntity.create_timestamp) String createTimestampSort); @IF @OrderBy(VvProductEntity.create_timestamp) String createTimestampSort);
List<VvProductEntity> selectVvProductByProductIds(@IN List<Long> id);
} }

View File

@ -10,6 +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.Realy; 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;
@ -42,4 +43,7 @@ public interface VvSkuDao extends BaseMapper<VvSkuEntity> {
@Realy @Realy
int deleteVvSkuByRealId(Long id); int deleteVvSkuByRealId(Long id);
List<VvSkuEntity> selectVvSkuBySkuIds(@IN List<Long> id);
} }

View File

@ -9,6 +9,7 @@ package com.heyu.api.data.dao.vv;
*/ */
import com.heyu.api.data.entity.vv.VvSkuPropertyValueEntity; import com.heyu.api.data.entity.vv.VvSkuPropertyValueEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lz.mybatis.plugin.annotations.IN;
import com.lz.mybatis.plugin.annotations.Realy; 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;
@ -49,5 +50,9 @@ public interface VvSkuPropertyValueDao extends BaseMapper<VvSkuPropertyValueEnti
@Realy @Realy
int deleteVvSkuPropertyValueRealById(Long id); int deleteVvSkuPropertyValueRealById(Long id);
List<VvSkuPropertyValueEntity> selectVvSkuPropertyValueBySkuIds(@IN List<Long> skuId);
} }

View File

@ -92,8 +92,6 @@ public class AppOrderController {
); );
} }
}); });
List<VvTradeOrderEntity> vvTradeOrderEntities = pageUtils.getRows(); List<VvTradeOrderEntity> vvTradeOrderEntities = pageUtils.getRows();
List<Long> tradeOrderIds = new ArrayList<>(); List<Long> tradeOrderIds = new ArrayList<>();
@ -189,55 +187,76 @@ public class AppOrderController {
BigDecimal allPrice = BigDecimal.ZERO; BigDecimal allPrice = BigDecimal.ZERO;
int allNum = 0; int allNum = 0;
List<Long> skuIds = new ArrayList<>();
for (VvTradeOrderLineDTO vvTradeOrderLineDTO : vvOrderRequest.getVvTradeOrderLineDTOList()) { for (VvTradeOrderLineDTO vvTradeOrderLineDTO : vvOrderRequest.getVvTradeOrderLineDTOList()) {
VvTradeOrderLineEntity vvTradeOrderLineEntity = new VvTradeOrderLineEntity(); skuIds.add(vvTradeOrderLineDTO.getSkuId());
}
vvTradeOrderLineEntity.setSkuId(vvTradeOrderLineDTO.getSkuId()); Set<Long> productIds = new HashSet<>();
vvTradeOrderLineEntity.setNum(vvTradeOrderLineDTO.getNum()); List<VvSkuPropertyValueEntity> vvSkuPropertyValueList = vvSkuPropertyValueDao.selectVvSkuPropertyValueBySkuIds(skuIds);
Map<Long, List<VvSkuPropertyValueEntity>> vvSkuPropertyValueMap = new HashMap<>();
for (VvSkuPropertyValueEntity vvSkuPropertyValueEntity : vvSkuPropertyValueList) {
List<VvSkuPropertyValueEntity> vvSkuPropertyValueEntities = vvSkuPropertyValueMap.get(vvSkuPropertyValueEntity.getSkuId());
if (vvSkuPropertyValueEntities == null) {
vvSkuPropertyValueEntities = new ArrayList<>();
}
vvSkuPropertyValueEntities.add(vvSkuPropertyValueEntity);
vvSkuPropertyValueMap.put(vvSkuPropertyValueEntity.getSkuId(), vvSkuPropertyValueEntities);
productIds.add(vvSkuPropertyValueEntity.getProductId());
}
vvTradeOrderLineEntity.setCreateTime(new Date()); Map<Long, VvSkuEntity> skuEntityMap = new HashMap<>();
vvTradeOrderLineEntity.setModifyTime(new Date()); List<VvSkuEntity> vvSkuEntities = vvSkuDao.selectVvSkuBySkuIds(skuIds);
allNum =allNum + vvTradeOrderLineEntity.getNum(); for (VvSkuEntity vvSkuEntity : vvSkuEntities) {
skuEntityMap.put(vvSkuEntity.getId(), vvSkuEntity);
}
VvSkuEntity vvSkuEntity = vvSkuDao.selectVvSkuById(vvTradeOrderLineDTO.getSkuId()); List<Long> productIdList = new ArrayList<>();
productIdList.addAll(productIds);
List<VvProductEntity> vvProductList = vvProductDao.selectVvProductByProductIds(productIdList);
vvTradeOrderLineEntity.setSinglePrice(vvSkuEntity.getSalePrice()); Map<Long, VvProductEntity> vvProductMap = new HashMap<>();
vvTradeOrderLineEntity.setSkuImageUrl(vvSkuEntity.getImageUrl()); for (VvProductEntity vvProductEntity : vvProductList) {
vvProductMap.put(vvProductEntity.getId(), vvProductEntity);
}
BigDecimal tradeOrderLineAllPrice = BigDecimalUtil.multiply(vvSkuEntity.getSalePrice(), new BigDecimal(vvTradeOrderLineDTO.getNum())); for (VvTradeOrderLineDTO vvTradeOrderLineDTO : vvOrderRequest.getVvTradeOrderLineDTOList()) {
VvSkuEntity vvSkuEntity = skuEntityMap.get(vvTradeOrderLineDTO.getSkuId());
allNum = allNum + vvTradeOrderLineDTO.getNum();
allPrice = BigDecimalUtil.add(BigDecimalUtil.multiply(vvSkuEntity.getSalePrice(), new BigDecimal(vvTradeOrderLineDTO.getNum())), allPrice);
vvTradeOrderLineEntity.setAllPrice(tradeOrderLineAllPrice); List<VvSkuPropertyValueEntity> vvSkuPropertyValueEntities = vvSkuPropertyValueMap.get(vvTradeOrderLineDTO.getSkuId());
allPrice = BigDecimalUtil.add(tradeOrderLineAllPrice, allPrice); VvProductEntity vvProduct = vvProductMap.get(vvSkuEntity.getProductId());
vvTradeOrderLineEntity.setStatus(OrderStatusEnums.wait_pay.getStatus());
vvTradeOrderLineEntity.setProductId(vvSkuEntity.getProductId());
VvProductEntity vvProduct = vvProductDao.selectVvProductById(vvSkuEntity.getProductId());
vvTradeOrderLineEntity.setProductName(vvProduct.getTitle());
vvTradeOrderLineEntity.setProductMainImageUrl(vvProduct.getMainImageUrl());
List<VvSkuPropertyValueEntity> vvSkuPropertyValueEntities = vvSkuPropertyValueDao.selectVvSkuPropertyValueBySkuId(vvTradeOrderLineDTO.getSkuId());
List<PropertyNameValue> propertyNameValues = new ArrayList<>(); List<PropertyNameValue> propertyNameValues = new ArrayList<>();
for (VvSkuPropertyValueEntity vvSkuPropertyValueEntity : vvSkuPropertyValueEntities) { for (VvSkuPropertyValueEntity vvSkuPropertyValueEntity : vvSkuPropertyValueEntities) {
PropertyNameValue propertyNameValue = new PropertyNameValue(); PropertyNameValue propertyNameValue = new PropertyNameValue();
propertyNameValue.setPropertyName(vvSkuPropertyValueEntity.getProductPropertyName()); propertyNameValue.setPropertyName(vvSkuPropertyValueEntity.getProductPropertyName());
propertyNameValue.setPropertyValue(vvSkuPropertyValueEntity.getProductPropertyValue()); propertyNameValue.setPropertyValue(vvSkuPropertyValueEntity.getProductPropertyValue());
propertyNameValues.add(propertyNameValue); propertyNameValues.add(propertyNameValue);
} }
for (int i = 0; i < vvTradeOrderLineDTO.getNum(); i++) {
vvTradeOrderLineEntity.setSkuInfo(JSON.toJSONString(propertyNameValues)); VvTradeOrderLineEntity vvTradeOrderLineEntity = new VvTradeOrderLineEntity();
vvTradeOrderLineEntityList.add(vvTradeOrderLineEntity); vvTradeOrderLineEntity.setSkuId(vvTradeOrderLineDTO.getSkuId());
vvTradeOrderLineEntity.setNum(1); // 拆成最细粒度的单
vvTradeOrderLineEntity.setCreateTime(new Date());
vvTradeOrderLineEntity.setModifyTime(new Date());
vvTradeOrderLineEntity.setSinglePrice(vvSkuEntity.getSalePrice());
vvTradeOrderLineEntity.setSkuImageUrl(vvSkuEntity.getImageUrl());
vvTradeOrderLineEntity.setAllPrice(vvSkuEntity.getSalePrice());
vvTradeOrderLineEntity.setStatus(OrderStatusEnums.wait_pay.getStatus());
vvTradeOrderLineEntity.setProductId(vvSkuEntity.getProductId());
vvTradeOrderLineEntity.setProductName(vvProduct.getTitle());
vvTradeOrderLineEntity.setProductMainImageUrl(vvProduct.getMainImageUrl());
vvTradeOrderLineEntity.setSkuInfo(JSON.toJSONString(propertyNameValues));
vvTradeOrderLineEntityList.add(vvTradeOrderLineEntity);
}
} }
VvTradeOrderEntity vvTradeOrderEntity = new VvTradeOrderEntity(); VvTradeOrderEntity vvTradeOrderEntity = new VvTradeOrderEntity();
VvBuyerEntity vvBuyerEntity = vvBuyerDao.selectVvBuyerById(vvOrderRequest.getBuyerId()); VvBuyerEntity vvBuyerEntity = vvBuyerDao.selectVvBuyerById(vvOrderRequest.getBuyerId());
//创建时间 //创建时间
vvTradeOrderEntity.setCreateTime(new Date()); vvTradeOrderEntity.setCreateTime(new Date());
@ -248,8 +267,6 @@ public class AppOrderController {
vvTradeOrderEntity.setBuyerWeixin(vvBuyerEntity.getBuyerWeixin()); vvTradeOrderEntity.setBuyerWeixin(vvBuyerEntity.getBuyerWeixin());
VvBuyerAddressEntity vvBuyerAddress = vvBuyerAddressDao.selectVvBuyerAddressById(vvOrderRequest.getBuyerAddressId()); VvBuyerAddressEntity vvBuyerAddress = vvBuyerAddressDao.selectVvBuyerAddressById(vvOrderRequest.getBuyerAddressId());
vvTradeOrderEntity.setContry(vvBuyerAddress.getContry()); vvTradeOrderEntity.setContry(vvBuyerAddress.getContry());
vvTradeOrderEntity.setProvince(vvBuyerAddress.getProvince()); vvTradeOrderEntity.setProvince(vvBuyerAddress.getProvince());
vvTradeOrderEntity.setCity(vvBuyerAddress.getCity()); vvTradeOrderEntity.setCity(vvBuyerAddress.getCity());
@ -261,19 +278,17 @@ public class AppOrderController {
vvTradeOrderEntity.setCreateTimestamp(System.currentTimeMillis()); vvTradeOrderEntity.setCreateTimestamp(System.currentTimeMillis());
vvTradeOrderEntity.setModifyTimestamp(System.currentTimeMillis()); vvTradeOrderEntity.setModifyTimestamp(System.currentTimeMillis());
vvTradeOrderDao.insertVvTradeOrder(vvTradeOrderEntity); vvTradeOrderDao.insertVvTradeOrder(vvTradeOrderEntity);
for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) { for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) {
tradeOrderLineEntity.setTradeOrderId(vvTradeOrderEntity.getId()); tradeOrderLineEntity.setTradeOrderId(vvTradeOrderEntity.getId());
vvTradeOrderLineDao.insertOrUpdateVvTradeOrderLine(tradeOrderLineEntity); vvTradeOrderLineDao.insertOrUpdateVvTradeOrderLine(tradeOrderLineEntity);
} }
return R.ok(); return R.ok();
} }
@RequestMapping("/delete") @RequestMapping("/delete")
public R add(@RequestBody VvTradeOrderDeleteDTO vvOrderRequest) { public R add(@RequestBody VvTradeOrderDeleteDTO vvOrderRequest) {
vvTradeOrderDao.updateByBuerIdAndIds(OrderStatusEnums.delete.getStatus(),vvOrderRequest.getBuyerId(), vvOrderRequest.getIds()); vvTradeOrderDao.updateByBuerIdAndIds(OrderStatusEnums.delete.getStatus(), vvOrderRequest.getBuyerId(), vvOrderRequest.getIds());
return R.ok(); return R.ok();
} }
} }