Explorar el Código

fix 邀请人未购买实物无权益

zoujiajian hace 3 años
padre
commit
2e53092759

+ 36 - 0
netflix-dao/src/main/java/com/cyksj/model/manage/views/RealGoodsOrderDonView.java

@@ -0,0 +1,36 @@
+package com.cyksj.model.manage.views;
+
+import com.cyksj.model.entity.OrderDon;
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+/*
+ *项目名: netflix
+ *文件名: RealGoodsOrderDonView
+ *创建者: JavaZou
+ *创建时间:2023/3/2 17:31
+ */
+@SearchBean(tables = "order_don od left join goods_don g on g.id = od.goods_id")
+@Getter
+@Setter
+public class RealGoodsOrderDonView {
+	@DbField("od.id")
+	private Long orderId;
+
+	@DbField("od.user_id")
+	private Long userId;
+
+	@DbField("g.title")
+	private String title;
+
+	@DbField("g.id")
+	private Long goodsId;
+
+	@DbField("g.type")
+	private Integer type;
+
+	@DbField("od.status")
+	private OrderDon.Status status;
+}

+ 16 - 0
netflix-service/src/main/java/com/cyksj/service/distribute/equipment/impl/EquipmentDistributeServiceImpl.java

@@ -14,11 +14,15 @@ import com.cyksj.mapper.manage.distribute.equipment.EquipmentUserDistributeInvit
 import com.cyksj.mapper.manage.distribute.equipment.EquipmentUserReceiveBenefitsRecordMapper;
 import com.cyksj.model.dto.EquipmentConfigDto;
 import com.cyksj.model.entity.*;
+import com.cyksj.model.manage.views.RealGoodsOrderDonView;
 import com.cyksj.redis.RedisService;
 import com.cyksj.service.distribute.equipment.EquipmentDistributeService;
 import com.cyksj.service.mange.coupon.CouponCommonService;
 import com.cyksj.service.relation.GroupRelationClearService;
 import com.cyksj.service.sys.SysConfigService;
+import com.ejlchina.searcher.BeanSearcher;
+import com.ejlchina.searcher.param.Operator;
+import com.ejlchina.searcher.util.MapUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.dao.DuplicateKeyException;
@@ -58,11 +62,23 @@ public class EquipmentDistributeServiceImpl implements EquipmentDistributeServic
 
 	private final OrderDonMapper orderDonMapper;
 
+	private final BeanSearcher beanSearcher;
+
 	@Override
 	public void saveDistributionInvitation(Long sharedId, Boolean isNewUser, Long userId) {
 		if (sharedId.equals(userId)) {
 			return;
 		}
+		//邀请人是否购买了实物
+		RealGoodsOrderDonView realGoodsOrderDonView = beanSearcher.searchFirst(RealGoodsOrderDonView.class, MapUtils.builder()
+				.field(RealGoodsOrderDonView::getStatus, Constant.noOrderAllStatus).op(Operator.NotIn)
+				.field(RealGoodsOrderDonView::getType, 2)
+				.field(RealGoodsOrderDonView::getUserId, sharedId)
+				.build());
+		if (realGoodsOrderDonView == null) {
+			log.info("userid:{},购买硬件设备之后才可拥有分享权益", sharedId);
+			return;
+		}
 		EquipmentUserDistributeInviteRecord exists = inviteRecordMapper.selectOne(Wrappers.lambdaQuery(EquipmentUserDistributeInviteRecord.class)
 				.eq(EquipmentUserDistributeInviteRecord::getUserId, userId).last("limit 1"));
 		if (exists == null) {

+ 1 - 1
netflix-web/src/main/java/com/cyksj/web/controller/distribute/EquipmentDistributeController.java

@@ -211,7 +211,7 @@ public class EquipmentDistributeController {
 		Integer dsType = req.getDsType();
 		//新旧用户都可实物分销
 		if (sharedId != null && dsType != null && dsType == 2) {
-			equipDistributeService.saveDistributionInvitation(sharedId, isNewUser, user.getId());
+			equipDistributeService.saveDistributionInvitation(sharedId, isNewUser, userId);
 		}
 		return GatewayResponse.SUCCESS.newBuilder().toResult();
 	}