Jelajahi Sumber

fix 默认分销比例

zoujiajian 1 tahun lalu
induk
melakukan
c1ef35da23

+ 38 - 0
netflix-web/src/main/java/com/cyksj/web/controller/cps/CpsPopularizeController.java

@@ -79,6 +79,10 @@ public class CpsPopularizeController {
 
 	private final UserBindRelationService userBindRelationService;
 
+	private final BusinessDistributeDefaultRateConfigMapper businessDistributeDefaultRateConfigMapper;
+
+	private final BusinessDistributeDefaultSkuRateConfigMapper businessDistributeDefaultSkuRateConfigMapper;
+
 	/**
 	 * 渠道推广链接列表
 	 */
@@ -114,6 +118,13 @@ public class CpsPopularizeController {
 						.last("limit 1"));
 				if (userPlatDistributeRate != null) {
 					data.setRate(userPlatDistributeRate.getRate());
+				} else {
+					BusinessDistributeDefaultRateConfig businessDistributeDefaultRateConfig = businessDistributeDefaultRateConfigMapper.selectOne(Wrappers.lambdaQuery(BusinessDistributeDefaultRateConfig.class)
+							.eq(BusinessDistributeDefaultRateConfig::getGoodsId, data.getGoodsId())
+							.last("limit 1"));
+					if (businessDistributeDefaultRateConfig != null) {
+						data.setRate(businessDistributeDefaultRateConfig.getRate());
+					}
 				}
 				if (goods.getIsSkuDistribute()) {
 					UserPlatSkuDistributeRate userPlatSkuDistributeRate = userPlatSkuDistributeRateMapper.selectOne(Wrappers.lambdaQuery(UserPlatSkuDistributeRate.class)
@@ -126,6 +137,16 @@ public class CpsPopularizeController {
 							.last("limit 1"));
 					if (userPlatSkuDistributeRate != null) {
 						data.setRate(userPlatSkuDistributeRate.getRate());
+					} else {
+						BusinessDistributeDefaultSkuRateConfig businessDistributeDefaultSkuRateConfig = businessDistributeDefaultSkuRateConfigMapper.selectOne(Wrappers.lambdaQuery(BusinessDistributeDefaultSkuRateConfig.class)
+								.eq(BusinessDistributeDefaultSkuRateConfig::getGoodsId, data.getGoodsId())
+								.gt(BusinessDistributeDefaultSkuRateConfig::getRate, 0)
+								.apply("exists (select 1 from goods_don_sku sku where sku.id = sku_id and sku.status is true limit 1)")
+								.orderByAsc(BusinessDistributeDefaultSkuRateConfig::getRate)
+								.last("limit 1"));
+						if (businessDistributeDefaultSkuRateConfig != null) {
+							data.setRate(businessDistributeDefaultSkuRateConfig.getRate());
+						}
 					}
 				}
 			});
@@ -261,6 +282,13 @@ public class CpsPopularizeController {
 						.last("limit 1"));
 				if (userPlatDistributeRate != null) {
 					e.setRate(userPlatDistributeRate.getRate());
+				} else {
+					BusinessDistributeDefaultRateConfig businessDistributeDefaultRateConfig = businessDistributeDefaultRateConfigMapper.selectOne(Wrappers.lambdaQuery(BusinessDistributeDefaultRateConfig.class)
+							.eq(BusinessDistributeDefaultRateConfig::getGoodsId, e.getGoodsId())
+							.last("limit 1"));
+					if (businessDistributeDefaultRateConfig != null) {
+						e.setRate(businessDistributeDefaultRateConfig.getRate());
+					}
 				}
 			}
 			if (e.getIsSkuRate()) {
@@ -292,6 +320,16 @@ public class CpsPopularizeController {
 							e.setRate(userPlatSkuDistributeRate.getRate());
 							sku = skuMapper.selectById(userPlatSkuDistributeRate.getSkuId());
 							e.setPrice(sku.getPrice());
+						} else {
+							BusinessDistributeDefaultSkuRateConfig businessDistributeDefaultSkuRateConfig = businessDistributeDefaultSkuRateConfigMapper.selectOne(Wrappers.lambdaQuery(BusinessDistributeDefaultSkuRateConfig.class)
+									.eq(BusinessDistributeDefaultSkuRateConfig::getGoodsId, e.getGoodsId())
+									.gt(BusinessDistributeDefaultSkuRateConfig::getRate, 0)
+									.apply("exists (select 1 from goods_don_sku sku where sku.id = sku_id and sku.status is true limit 1)")
+									.orderByAsc(BusinessDistributeDefaultSkuRateConfig::getRate)
+									.last("limit 1"));
+							if (businessDistributeDefaultSkuRateConfig != null) {
+								e.setRate(businessDistributeDefaultSkuRateConfig.getRate());
+							}
 						}
 					}
 				} else {

+ 21 - 0
netflix-web/src/main/java/com/cyksj/web/controller/user/UserController.java

@@ -95,6 +95,10 @@ public class UserController {
 
     private final UserIpRecordMapper userIpRecordMapper;
 
+    private final BusinessDistributeDefaultRateConfigMapper businessDistributeDefaultRateConfigMapper;
+
+    private final BusinessDistributeDefaultSkuRateConfigMapper businessDistributeDefaultSkuRateConfigMapper;
+
     @GetMapping(value = "/wx/whoami")
     public Result<UserWhoami> whoami() {
         long userId = StpUserUtil.getLoginIdAsLong();
@@ -469,6 +473,13 @@ public class UserController {
                         .last("limit 1"));
                 if (userPlatDistributeRate != null) {
                     e.setRate(userPlatDistributeRate.getRate());
+                } else {
+                    BusinessDistributeDefaultRateConfig businessDistributeDefaultRateConfig = businessDistributeDefaultRateConfigMapper.selectOne(Wrappers.lambdaQuery(BusinessDistributeDefaultRateConfig.class)
+                            .eq(BusinessDistributeDefaultRateConfig::getGoodsId, e.getGoodsId())
+                            .last("limit 1"));
+                    if (businessDistributeDefaultRateConfig != null) {
+                        e.setRate(businessDistributeDefaultRateConfig.getRate());
+                    }
                 }
             }
             if (e.getIsSkuRate()) {
@@ -500,6 +511,16 @@ public class UserController {
                             e.setRate(userPlatSkuDistributeRate.getRate());
                             sku = skuMapper.selectById(userPlatSkuDistributeRate.getSkuId());
                             e.setPrice(sku.getPrice());
+                        } else {
+                            BusinessDistributeDefaultSkuRateConfig businessDistributeDefaultSkuRateConfig = businessDistributeDefaultSkuRateConfigMapper.selectOne(Wrappers.lambdaQuery(BusinessDistributeDefaultSkuRateConfig.class)
+                                    .eq(BusinessDistributeDefaultSkuRateConfig::getGoodsId, e.getGoodsId())
+                                    .gt(BusinessDistributeDefaultSkuRateConfig::getRate, 0)
+                                    .apply("exists (select 1 from goods_don_sku sku where sku.id = sku_id and sku.status is true limit 1)")
+                                    .orderByAsc(BusinessDistributeDefaultSkuRateConfig::getRate)
+                                    .last("limit 1"));
+                            if (businessDistributeDefaultSkuRateConfig != null) {
+                                e.setRate(businessDistributeDefaultSkuRateConfig.getRate());
+                            }
                         }
                     }
                 } else {