Selaa lähdekoodia

fix 未配置比例平台提示接口

zoujiajian 2 vuotta sitten
vanhempi
sitoutus
28139ca382

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/mapper/DistributeGoodsSkuAlertMapper.java

@@ -2,6 +2,7 @@ package com.cyksj.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.cyksj.model.entity.DistributeGoodsSkuAlert;
+import org.apache.ibatis.annotations.Select;
 
 /**
  * 项目名: yhlxj
@@ -10,4 +11,8 @@ import com.cyksj.model.entity.DistributeGoodsSkuAlert;
  * 创建时间:2023/11/8 14:10
  */
 public interface DistributeGoodsSkuAlertMapper extends BaseMapper<DistributeGoodsSkuAlert> {
+
+	@Select("select count(*) from distribute_goods_sku_alert da inner join goods_don_sku sku on sku.id = da.sku_id and sku.status is true" +
+			" inner join goods_don g on g.id = da.goods_id and g.status is true and g.deleted is true and g.is_distribute is true")
+	Integer selectCountByCondition();
 }

+ 1 - 1
netflix-dao/src/main/java/com/cyksj/model/views/UserDistributeBusinessRateRecordView.java

@@ -16,7 +16,7 @@ import lombok.Setter;
 @Setter
 @SearchBean(tables = "goods_don g left join goods_don_sku gdk on gdk.goods_id = g.id" +
 		" left join user_distribute_business_rate ur on ur.sku_id = gdk.id :business_id:",
-		where = "g.deleted is true and g.status is true and g.is_distribute is true")
+		where = "g.deleted is true and g.status is true and g.is_distribute is true and gdk.status is true")
 public class UserDistributeBusinessRateRecordView {
 	@DbField("ur.id")
 	private Long id;

+ 9 - 0
netflix-service/src/main/java/com/cyksj/service/mange/goods/CmsGoodsDonSpecServiceImpl.java

@@ -7,9 +7,11 @@ 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.DistributeGoodsSkuAlertMapper;
 import com.cyksj.mapper.GoodsDonMapper;
 import com.cyksj.mapper.GoodsDonSkuMapper;
 import com.cyksj.mapper.GoodsDonSpecMapper;
+import com.cyksj.model.entity.DistributeGoodsSkuAlert;
 import com.cyksj.model.entity.GoodsDon;
 import com.cyksj.model.entity.GoodsDonSku;
 import com.cyksj.model.entity.GoodsDonSpec;
@@ -43,6 +45,8 @@ public class CmsGoodsDonSpecServiceImpl extends ServiceImpl<GoodsDonSpecMapper,
 
 	private final GoodsDonSkuMapper goodsDonSkuMapper;
 
+	private final DistributeGoodsSkuAlertMapper distributeGoodsSkuAlertMapper;
+
 	@Override
 	@Transactional(rollbackFor = Throwable.class)
 	public void insertOrUpdateSkuSpec(ReqGoodsSkuInsert insert, Boolean isUpdate) throws Exception {
@@ -254,6 +258,11 @@ public class CmsGoodsDonSpecServiceImpl extends ServiceImpl<GoodsDonSpecMapper,
 				}
 			}
 			goodsDonSkuMapper.insert(goodsDonSku);
+
+			DistributeGoodsSkuAlert distributeGoodsSkuAlert = new DistributeGoodsSkuAlert();
+			distributeGoodsSkuAlert.setGoodsId(goods.getId());
+			distributeGoodsSkuAlert.setSkuId(goodsDonSku.getId());
+			distributeGoodsSkuAlertMapper.insert(distributeGoodsSkuAlert);
 		}
 	}
 

+ 26 - 2
netflix-web/src/main/java/com/cyksj/web/controller/manage/distribute/DistributeController.java

@@ -3,8 +3,8 @@ package com.cyksj.web.controller.manage.distribute;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.date.BetweenFormater;
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.BetweenFormater;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
@@ -16,6 +16,7 @@ import com.cyksj.common.util.StringUtil;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.BusinessType;
 import com.cyksj.enums.GatewayResponse;
+import com.cyksj.mapper.DistributeGoodsSkuAlertMapper;
 import com.cyksj.mapper.GoodsDonMapper;
 import com.cyksj.mapper.GoodsDonSkuMapper;
 import com.cyksj.mapper.UserMapper;
@@ -102,6 +103,8 @@ public class DistributeController {
 
 	private final RedisService redisService;
 
+	private final DistributeGoodsSkuAlertMapper distributeGoodsSkuAlertMapper;
+
 	private final UserDistributeRuleOrderRecordMapper userDistributeRuleOrderRecordMapper;
 
 	/**
@@ -558,6 +561,11 @@ public class DistributeController {
 			if (businessRate.getId() == null) {
 				try {
 					userDistributeBusinessRateMapper.insert(businessRate);
+
+					//删除存在告警的平台规格
+					distributeGoodsSkuAlertMapper.delete(Wrappers.lambdaQuery(DistributeGoodsSkuAlert.class)
+							.in(DistributeGoodsSkuAlert::getSkuId, businessRate.getSkuId()));
+
 				} catch (DuplicateKeyException e) {
 				}
 			} else {
@@ -655,7 +663,14 @@ public class DistributeController {
 					userPlatDistributeRate.setSecondRate(secondRate);
 					save.add(userPlatDistributeRate);
 				});
-				Lists.partition(save, 100).forEach(part -> userDistributeBusinessRateMapper.batchInsertDistributePlatRate(part));
+				Lists.partition(save, 100).forEach(part -> {
+					List<Long> goodsIds = part.stream().map(UserPlatDistributeRate::getGoodsId).collect(Collectors.toList());
+					//删除存在告警的平台
+					distributeGoodsSkuAlertMapper.delete(Wrappers.lambdaQuery(DistributeGoodsSkuAlert.class)
+							.in(DistributeGoodsSkuAlert::getGoodsId, goodsIds));
+
+					userDistributeBusinessRateMapper.batchInsertDistributePlatRate(part);
+				});
 			}
 			businessDefaultRateConfigMapper.updateById(config);
 		});
@@ -903,4 +918,13 @@ public class DistributeController {
 		List<BusinessDistributesMonthlyDataView> collect = businessDistributesDataViews.stream().sorted(Comparator.comparing(BusinessDistributesMonthlyDataView::getBusinessId).thenComparing(BusinessDistributesMonthlyDataView::getType)).collect(Collectors.toList());
 		return GatewayResponse.SUCCESS.newBuilder().toResult(collect);
 	}
+
+	/**
+	 * 是否有未配置比例的规格
+	 */
+	@GetMapping("/get/goodsSku/alert")
+	public Result<Boolean> getGoodsSkuAlert() {
+		Integer count = distributeGoodsSkuAlertMapper.selectCountByCondition();
+		return GatewayResponse.SUCCESS.newBuilder().toResult(count > 0 ? true : false);
+	}
 }