Эх сурвалжийг харах

特殊渠道规格价格处理

zoujiajian 2 жил өмнө
parent
commit
e8fc0f0ef6

+ 10 - 0
netflix-common/src/main/java/com/cyksj/common/constant/Constant.java

@@ -345,4 +345,14 @@ public interface Constant {
 
 	//英文
 	String EN_US = "en_US";
+
+	/**
+	 * MJ特殊价格规格
+	 */
+	String MJ_SPECIAL_SKU_PRICE_KEY = "mj_special_sku_price_key";
+
+	/**
+	 * 特殊价格规格ids
+	 */
+	List<Long> SPECIAL_PRICE_SKU_IDS = List.of(409l);
 }

+ 21 - 0
netflix-dao/src/main/java/com/cyksj/model/dto/GoodsDonPriceDto.java

@@ -0,0 +1,21 @@
+package com.cyksj.model.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: GoodsDonPriceDto
+ * 创建者: JavaZou
+ * 创建时间:2024/7/22 10:30
+ */
+@Getter
+@Setter
+public class GoodsDonPriceDto {
+	private BigDecimal price;
+
+	private List<Long> sharedId;
+}

+ 19 - 0
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -451,6 +451,25 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 		if (sku != null && payRequest.getDonMoney().compareTo(sku.getPrice()) < 0 && !isSpecificPrice) {
 			log.info("规格:{}支付金额:{}异常,调整用户userId:{}支付金额为:{}", sku.getSpecVal(), payRequest.getDonMoney(), user.getId(), sku.getPrice());
 			payRequest.setDonMoney(sku.getPrice());
+			//如 mj标准6人月付 价格特殊处理
+			if (Constant.SPECIAL_PRICE_SKU_IDS.contains(sku.getId())) {
+				UserDistributeShared distributeShared = userDistributeSharedMapper.selectOne(Wrappers.lambdaQuery(UserDistributeShared.class)
+						.eq(UserDistributeShared::getUserId, userId)
+						.last("limit 1"));
+				if (distributeShared != null) {
+					SysConfig one = sysConfigService.getOne(Wrappers.lambdaQuery(SysConfig.class)
+							.eq(SysConfig::getSysKey, Constant.MJ_SPECIAL_SKU_PRICE_KEY)
+							.last("limit 1"));
+					if (one != null && StrUtil.isNotBlank(one.getSysValue())) {
+						GoodsDonPriceDto goodsDonPriceDto = Jsons.parseObject(one.getSysValue(), GoodsDonPriceDto.class);
+						Long sharedId = distributeShared.getSharedId();
+						List<Long> sharedIdList = goodsDonPriceDto.getSharedId();
+						if (CollUtil.isNotEmpty(sharedIdList) && sharedIdList.contains(sharedId)) {
+							payRequest.setDonMoney(goodsDonPriceDto.getPrice());
+						}
+					}
+				}
+			}
 		}
 
 		//租赁商品

+ 16 - 0
netflix-web/src/main/java/com/cyksj/web/controller/goods/GoodsDonController.java

@@ -20,6 +20,7 @@ import com.cyksj.mapper.OrderDonMapper;
 import com.cyksj.mapper.RegisterOrderDonMapper;
 import com.cyksj.mapper.shop.YhShopGoodsSkuMapper;
 import com.cyksj.mapper.sys.SysConfigMapper;
+import com.cyksj.model.dto.GoodsDonPriceDto;
 import com.cyksj.model.entity.*;
 import com.cyksj.model.request.ClickRecordReq;
 import com.cyksj.model.views.*;
@@ -419,6 +420,21 @@ public class GoodsDonController {
 					}
 				}
 			}
+			if (dsUserId.get() != 0 && Constant.SPECIAL_PRICE_SKU_IDS.contains(sku.getId())) {
+				Optional.ofNullable(sysConfigMapper.selectOne(Wrappers.lambdaQuery(SysConfig.class)
+						.eq(SysConfig::getSysValue, Constant.MJ_SPECIAL_SKU_PRICE_KEY)
+						.last("limit 1"))).ifPresent(sysConfig -> {
+					if (StrUtil.isNotBlank(sysConfig.getSysValue())) {
+						try {
+							GoodsDonPriceDto goodsDonPriceDto = Jsons.parseObject(sysConfig.getSysValue(), GoodsDonPriceDto.class);
+							if (CollUtil.isNotEmpty(goodsDonPriceDto.getSharedId()) && goodsDonPriceDto.getSharedId().contains(dsUserId)) {
+								sku.setPrice(goodsDonPriceDto.getPrice());
+							}
+						} catch (Exception e) {
+						}
+					}
+				});
+			}
 			return true;
 		}).collect(Collectors.toList()));
 		return GatewayResponse.SUCCESS.newBuilder().toResult(views);