ソースを参照

特殊渠道规格价格处理

zoujiajian 2 年 前
コミット
296788c529

+ 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;
+}

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

@@ -453,6 +453,26 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			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());
+					}
+				}
+			}
+		}
+
 		//租赁商品
 		if (goodsDon.getType() == 4) {
 			//是否已实名认证过

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

@@ -18,8 +18,10 @@ import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.GoodsDonSkuMapper;
 import com.cyksj.mapper.OrderDonMapper;
 import com.cyksj.mapper.RegisterOrderDonMapper;
+import com.cyksj.mapper.manage.distribute.UserDistributeSharedMapper;
 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.*;
@@ -80,6 +82,8 @@ public class GoodsDonController {
 
 	private final UserService userService;
 
+	private final UserDistributeSharedMapper userDistributeSharedMapper;
+
 	private final GoodsDonFrontService goodsDonFrontService;
 
 	private final UserBindRelationService userBindRelationService;
@@ -419,6 +423,26 @@ public class GoodsDonController {
 					}
 				}
 			}
+			if (fUid != null && Constant.SPECIAL_PRICE_SKU_IDS.contains(sku.getId())) {
+				UserDistributeShared distributeShared = userDistributeSharedMapper.selectOne(Wrappers.lambdaQuery(UserDistributeShared.class)
+						.eq(UserDistributeShared::getUserId, fUid)
+						.last("limit 1"));
+				if (distributeShared != null) {
+					Optional.ofNullable(sysConfigMapper.selectOne(Wrappers.lambdaQuery(SysConfig.class)
+							.eq(SysConfig::getSysKey, 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(distributeShared.getSharedId())) {
+									sku.setPrice(goodsDonPriceDto.getPrice());
+								}
+							} catch (Exception e) {
+							}
+						}
+					});
+				}
+			}
 			return true;
 		}).collect(Collectors.toList()));
 		return GatewayResponse.SUCCESS.newBuilder().toResult(views);

+ 1 - 1
netflix-web/src/main/java/com/cyksj/web/controller/payment/OrderController.java

@@ -143,7 +143,7 @@ public class OrderController {
         String ip = ServletUtil.getClientIP(request);
         String address = StringUtil.getNewInternalAddressByIp(ip);
         //address.contains("柬埔寨") ||
-        if (address.contains("缅甸")) {
+        if (address == null || address.contains("缅甸")) {
             throw BusinessRuntimeException.getInstance("用户系统异常");
         }
         payRequest.setIp(ip);