|
|
@@ -5,16 +5,15 @@ import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.cyksj.common.exception.BusinessRuntimeException;
|
|
|
+import com.cyksj.common.util.Jsons;
|
|
|
import com.cyksj.mapper.ChatgptUserMapper;
|
|
|
import com.cyksj.mapper.GoodsDiscountPlusPurchaseRelationMapper;
|
|
|
import com.cyksj.mapper.GoodsDonSkuMapper;
|
|
|
+import com.cyksj.mapper.UpgradePackageMapper;
|
|
|
import com.cyksj.mapper.shop.YhShopGoodsRateMapper;
|
|
|
import com.cyksj.mapper.shop.YhShopGoodsSkuMapper;
|
|
|
import com.cyksj.mapper.shop.YhShopSkuSysTakeDownRecordMapper;
|
|
|
-import com.cyksj.model.entity.GoodsDiscountPlusPurchaseRelation;
|
|
|
-import com.cyksj.model.entity.GoodsDonSku;
|
|
|
-import com.cyksj.model.entity.YhShopGoodsRate;
|
|
|
-import com.cyksj.model.entity.YhShopGoodsSku;
|
|
|
+import com.cyksj.model.entity.*;
|
|
|
import com.cyksj.service.mange.CmsGoodsDonSkuService;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
@@ -47,6 +46,8 @@ public class CmsGoodsDonSkuServiceImpl extends ServiceImpl<GoodsDonSkuMapper,Goo
|
|
|
|
|
|
private final YhShopSkuSysTakeDownRecordMapper yhShopSkuSysTakeDownRecordMapper;
|
|
|
|
|
|
+ private final UpgradePackageMapper upgradePackageMapper;
|
|
|
+
|
|
|
@Override
|
|
|
public void handleDiscountPurchaseGoods(GoodsDonSku sku, List<GoodsDiscountPlusPurchaseRelation> discountPlusPurchaseGoods) {
|
|
|
Long skuId = sku.getId();
|
|
|
@@ -144,6 +145,58 @@ public class CmsGoodsDonSkuServiceImpl extends ServiceImpl<GoodsDonSkuMapper,Goo
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void handleGptPackageSku(GoodsDonSku dbSku, GoodsDonSku sku) throws Exception {
|
|
|
+ Long gptLimitTime = dbSku.getGptLimitTime();
|
|
|
+ Integer gptLimitNum = dbSku.getGptLimitNum();
|
|
|
+ BigDecimal price = dbSku.getPrice();
|
|
|
+ BigDecimal newPrice = sku.getPrice();
|
|
|
+ //GPT镜像套餐包关联
|
|
|
+ if (sku.getGoodsId() == 18 && sku.getIsMirror()) {
|
|
|
+ //同步升级规格的价格
|
|
|
+ if (gptLimitNum != sku.getGptLimitNum() || gptLimitTime != sku.getGptLimitTime() || price.compareTo(newPrice) != 0) {
|
|
|
+ if (price.compareTo(newPrice) != 0) {
|
|
|
+ //本身是需升级的规格 同步套餐价格
|
|
|
+ UpgradePackage upgradePackageSelfBind = upgradePackageMapper.selectOne(Wrappers.lambdaQuery(UpgradePackage.class).apply("JSON_CONTAINS(sku_ids,'\"" + sku.getId() + "\"')")
|
|
|
+ .eq(UpgradePackage::getStatus, Boolean.TRUE)
|
|
|
+ .eq(UpgradePackage::getGptType, 0)
|
|
|
+ .eq(UpgradePackage::getDeleted, Boolean.TRUE)
|
|
|
+ .last("limit 1"));
|
|
|
+ if (upgradePackageSelfBind != null) {
|
|
|
+ Long upgradeSkuId = upgradePackageSelfBind.getUpgradeSkuId();
|
|
|
+ GoodsDonSku upgradeSku = skuMapper.selectById(upgradeSkuId);
|
|
|
+ if (upgradeSku != null && upgradeSku.getPrice().compareTo(sku.getPrice()) > 0) {
|
|
|
+ upgradePackageSelfBind.setPrice(upgradeSku.getPrice().subtract(sku.getPrice()));
|
|
|
+ upgradePackageMapper.updateById(upgradePackageSelfBind);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //被绑定升级套餐
|
|
|
+ UpgradePackage toUpgradePackage = upgradePackageMapper.selectOne(Wrappers.lambdaQuery(UpgradePackage.class)
|
|
|
+ .eq(UpgradePackage::getUpgradeSkuId, sku.getId())
|
|
|
+ .last("limit 1"));
|
|
|
+ if (toUpgradePackage != null) {
|
|
|
+ if (price.compareTo(sku.getPrice()) != 0) {
|
|
|
+ Long skuId = Jsons.parseList(toUpgradePackage.getSkuIds(), Long.class).get(0);
|
|
|
+ //需升级的规格
|
|
|
+ GoodsDonSku oriSku = skuMapper.selectById(skuId);
|
|
|
+ if (oriSku == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ BigDecimal differ = sku.getPrice().subtract(oriSku.getPrice());
|
|
|
+ if (differ.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
+ toUpgradePackage.setPrice(differ);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ toUpgradePackage.setTime(sku.getGptLimitTime());
|
|
|
+ toUpgradePackage.setNum(sku.getGptLimitNum());
|
|
|
+ upgradePackageMapper.updateById(toUpgradePackage);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
public void checkPurchaseParamsAndSaveOrUpdate(Long goodsId, Long skuId, GoodsDiscountPlusPurchaseRelation discountGoods) {
|
|
|
Long disSid = discountGoods.getDisSid();
|
|
|
if (disSid == null) {
|