소스 검색

fix 分享有礼权益

zoujiajian 3 년 전
부모
커밋
411b6d11df

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/mapper/manage/distribute/equipment/EquipmentUserPayRecordMapper.java

@@ -0,0 +1,13 @@
+package com.cyksj.mapper.manage.distribute.equipment;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.EquipmentUserPayRecord;
+
+/*
+ *项目名: netflix
+ *文件名: EquipmentUserPayRecordMapper
+ *创建者: JavaZou
+ *创建时间:2023/8/9 18:27
+ */
+public interface EquipmentUserPayRecordMapper extends BaseMapper<EquipmentUserPayRecord> {
+}

+ 0 - 23
netflix-dao/src/main/java/com/cyksj/model/entity/EquipmentUserChanceRecord.java

@@ -1,14 +1,8 @@
 package com.cyksj.model.entity;
 package com.cyksj.model.entity;
 
 
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.ejlchina.searcher.bean.DbField;
-import com.ejlchina.searcher.bean.DbIgnore;
-import com.ejlchina.searcher.bean.SearchBean;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
-import java.util.Date;
-
 /*
 /*
  *项目名: netflix
  *项目名: netflix
  *文件名: EquipmentUserChanceRecord
  *文件名: EquipmentUserChanceRecord
@@ -17,38 +11,21 @@ import java.util.Date;
  */
  */
 @Getter
 @Getter
 @Setter
 @Setter
-@SearchBean(tables = "equipment_user_chance_record er")
 public class EquipmentUserChanceRecord extends BaseEntity{
 public class EquipmentUserChanceRecord extends BaseEntity{
 	/**
 	/**
 	 * 受益人id
 	 * 受益人id
 	 */
 	 */
-	@DbField("er.share_id")
 	private Long shareId;
 	private Long shareId;
 
 
 	/**
 	/**
 	 * 被邀请人id
 	 * 被邀请人id
 	 */
 	 */
-	@DbField("er.user_id")
 	private Long userId;
 	private Long userId;
 
 
-	@DbField("er.order_id")
 	private Long orderId;
 	private Long orderId;
 
 
-	@DbField("er.status")
 	private Status status;
 	private Status status;
 
 
-	@DbIgnore
-	@TableField(exist = false)
-	private String nickname;
-
-	@DbIgnore
-	@TableField(exist = false)
-	private Date payTime;
-
-	@DbIgnore
-	@TableField(exist = false)
-	private String headImg;
-
 
 
 	@Getter
 	@Getter
 	public enum Status {
 	public enum Status {

+ 65 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/EquipmentUserPayRecord.java

@@ -0,0 +1,65 @@
+package com.cyksj.model.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.DbIgnore;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/*
+ *项目名: netflix
+ *文件名: EquipmentUserPayRecord
+ *创建者: JavaZou
+ *创建时间:2023/8/9 18:25
+ */
+@Getter
+@Setter
+@SearchBean(tables = "equipment_user_pay_record er")
+public class EquipmentUserPayRecord {
+	/**
+	 * 受益人id
+	 */
+	@DbField("er.share_id")
+	private Long shareId;
+
+	/**
+	 * 被邀请人id
+	 */
+	@DbField("er.user_id")
+	private Long userId;
+
+	@DbField("er.order_id")
+	private Long orderId;
+
+	@DbField("er.status")
+	private Status status;
+
+	@DbIgnore
+	@TableField(exist = false)
+	private String nickname;
+
+	@DbIgnore
+	@TableField(exist = false)
+	private Date payTime;
+
+	@DbIgnore
+	@TableField(exist = false)
+	private String headImg;
+
+
+	@Getter
+	public enum Status {
+		hasPayment("已购买"),
+		waiting("待到账"),
+		refund("已退款"),
+		;
+		String msg;
+
+		Status(String msg) {
+			this.msg = msg;
+		}
+	}
+}

+ 93 - 79
netflix-service/src/main/java/com/cyksj/service/distribute/equipment/impl/EquipmentDistributeServiceImpl.java

@@ -66,6 +66,8 @@ public class EquipmentDistributeServiceImpl implements EquipmentDistributeServic
 
 
 	private final EquipmentUserDistributeTransportBenefitsMapper transportBenefitsMapper;
 	private final EquipmentUserDistributeTransportBenefitsMapper transportBenefitsMapper;
 
 
+	private final EquipmentUserPayRecordMapper equipmentUserPayRecordMapper;
+
 	@Override
 	@Override
 	public void saveDistributionInvitation(Long sharedId, Boolean isNewUser, Long userId) {
 	public void saveDistributionInvitation(Long sharedId, Boolean isNewUser, Long userId) {
 		if (sharedId.equals(userId)) {
 		if (sharedId.equals(userId)) {
@@ -108,23 +110,7 @@ public class EquipmentDistributeServiceImpl implements EquipmentDistributeServic
 		EquipmentUserDistributeInviteRecord record = getDistributeRecord(userId);
 		EquipmentUserDistributeInviteRecord record = getDistributeRecord(userId);
 		if (record != null) {
 		if (record != null) {
 			Long sharId = record.getShareId();
 			Long sharId = record.getShareId();
-			if (saveInviteRecord(sharId, userId, orderId, EquipmentUserChanceRecord.Status.hasPayment)) {
-				EquipmentUserChance chance = equipmentUserChanceMapper.selectOne(Wrappers.lambdaQuery(EquipmentUserChance.class)
-						.eq(EquipmentUserChance::getUserId, sharId)
-						.last("limit 1"));
-				if (chance == null) {
-					try {
-						chance = new EquipmentUserChance();
-						chance.setUserId(sharId);
-						chance.setNum(1);
-						equipmentUserChanceMapper.insert(chance);
-					} catch (DuplicateKeyException e) {
-						equipmentUserChanceMapper.addUserChance(sharId);
-					}
-				} else {
-					equipmentUserChanceMapper.addUserChance(sharId);
-				}
-			}
+			saveInviteRecord(sharId, userId, orderId, 1);
 		}
 		}
 	}
 	}
 
 
@@ -133,13 +119,7 @@ public class EquipmentDistributeServiceImpl implements EquipmentDistributeServic
 		EquipmentUserDistributeInviteRecord record = getDistributeRecord(userId);
 		EquipmentUserDistributeInviteRecord record = getDistributeRecord(userId);
 		if (record != null) {
 		if (record != null) {
 			Long sharId = record.getShareId();
 			Long sharId = record.getShareId();
-			if (saveInviteRecord(sharId, userId, orderId, EquipmentUserChanceRecord.Status.refund)) {
-				Integer update = equipmentUserChanceMapper.subUserChance(sharId);
-				if (update == 0) {
-					//扣除权益
-					deductUserBenefits(sharId, orderId);
-				}
-			}
+			saveInviteRecord(sharId, userId, orderId, 2);
 		}
 		}
 	}
 	}
 
 
@@ -154,43 +134,25 @@ public class EquipmentDistributeServiceImpl implements EquipmentDistributeServic
 		return record;
 		return record;
 	}
 	}
 
 
-	public Boolean saveInviteRecord(Long sharId, Long userId, Long orderId, EquipmentUserChanceRecord.Status status) {
-		if (status == EquipmentUserChanceRecord.Status.hasPayment) {
-			//是否有配置车票权益
-			SysConfig config = sysConfigService.getOne(Wrappers.lambdaQuery(SysConfig.class)
-					.eq(SysConfig::getSysKey, Constant.EQUIPMENT_DISTRIBUTE_KEY).last("limit 1"));
-			if (config == null) {
-				return false;
+	public void saveInviteRecord(Long sharId, Long userId, Long orderId, Integer type) {
+		EquipmentConfigDto equipmentConfigDto = checkEquipmentConfigDto();
+		if (equipmentConfigDto != null && type == 1) {
+			//已配置余额  实物发货 发送余额
+			if (equipmentConfigDto.getBalance() != null && equipmentConfigDto.getBalance().compareTo(BigDecimal.ZERO) > 0) {
+				addBalanceBenefits(sharId, orderId, equipmentConfigDto.getBalance(), EquipmentUserDistributeTransportBenefits.Status.hasPayment);
 			}
 			}
-			String sysValue = config.getSysValue();
-			//未配置权益
-			if (StrUtil.isEmpty(sysValue)) {
-				return false;
-			}
-			try {
-				EquipmentConfigDto equipmentConfigDto = Jsons.parseObject(sysValue, EquipmentConfigDto.class);
-				if (equipmentConfigDto == null) {
-					return false;
-				}
-				//已配置余额  实物发货 发送余额
-				if (equipmentConfigDto.getBalance() != null && equipmentConfigDto.getBalance().compareTo(BigDecimal.ZERO) > 0) {
-					log.info("分销人:{}记录分享有礼实物订单:{}余额权益,待发货后发送", sharId, orderId);
-					EquipmentUserDistributeTransportBenefits transportBenefits = new EquipmentUserDistributeTransportBenefits();
-					transportBenefits.setShareId(sharId);
-					transportBenefits.setOrderId(orderId);
-					transportBenefits.setStatus(EquipmentUserDistributeTransportBenefits.Status.hasPayment);
-					transportBenefits.setBalance(equipmentConfigDto.getBalance());
-					transportBenefitsMapper.insert(transportBenefits);
-				}
-				//未配置车票权益
-				if (CollUtil.isEmpty(equipmentConfigDto.getSkuList())) {
-					return false;
-				}
-			} catch (Exception e) {
-				return false;
+			//未配置车票权益
+			if (CollUtil.isNotEmpty(equipmentConfigDto.getSkuList())) {
+				addTicketBenefitsChance(sharId, userId, orderId, EquipmentUserChanceRecord.Status.hasPayment);
 			}
 			}
+			EquipmentUserPayRecord record = new EquipmentUserPayRecord();
+			record.setShareId(sharId);
+			record.setUserId(userId);
+			record.setStatus(EquipmentUserPayRecord.Status.hasPayment);
+			record.setOrderId(orderId);
+			equipmentUserPayRecordMapper.insert(record);
 		}
 		}
-		if (status == EquipmentUserChanceRecord.Status.refund) {
+		if (type == 2) {
 			//是否有余额权益
 			//是否有余额权益
 			EquipmentUserDistributeTransportBenefits transportBenefits = transportBenefitsMapper.selectOne(Wrappers.lambdaQuery(EquipmentUserDistributeTransportBenefits.class)
 			EquipmentUserDistributeTransportBenefits transportBenefits = transportBenefitsMapper.selectOne(Wrappers.lambdaQuery(EquipmentUserDistributeTransportBenefits.class)
 					.eq(EquipmentUserDistributeTransportBenefits::getOrderId, orderId).last("limit 1"));
 					.eq(EquipmentUserDistributeTransportBenefits::getOrderId, orderId).last("limit 1"));
@@ -198,30 +160,23 @@ public class EquipmentDistributeServiceImpl implements EquipmentDistributeServic
 				transportBenefits.setStatus(EquipmentUserDistributeTransportBenefits.Status.refund);
 				transportBenefits.setStatus(EquipmentUserDistributeTransportBenefits.Status.refund);
 				transportBenefitsMapper.updateById(transportBenefits);
 				transportBenefitsMapper.updateById(transportBenefits);
 			}
 			}
-			EquipmentUserChanceRecord record = equipmentUserChanceRecordMapper.selectOne(Wrappers.lambdaQuery(EquipmentUserChanceRecord.class)
-					.eq(EquipmentUserChanceRecord::getUserId, userId)
-					.eq(EquipmentUserChanceRecord::getStatus, EquipmentUserChanceRecord.Status.hasPayment)
+			//是否有车票权益
+			int update = equipmentUserChanceRecordMapper.update(null, Wrappers.lambdaUpdate(EquipmentUserChanceRecord.class)
+					.set(EquipmentUserChanceRecord::getStatus, EquipmentUserChanceRecord.Status.refund)
 					.eq(EquipmentUserChanceRecord::getOrderId, orderId)
 					.eq(EquipmentUserChanceRecord::getOrderId, orderId)
-					.last("limit 1"));
-			if (record == null) {
-				return false;
+					.eq(EquipmentUserChanceRecord::getStatus, EquipmentUserChanceRecord.Status.hasPayment));
+			if (update > 0) {
+				update = equipmentUserChanceMapper.subUserChance(sharId);
+				if (update == 0) {
+					//扣除权益
+					deductUserBenefits(sharId, orderId);
+				}
 			}
 			}
+			equipmentUserPayRecordMapper.update(null, Wrappers.lambdaUpdate(EquipmentUserPayRecord.class)
+					.set(EquipmentUserPayRecord::getStatus, EquipmentUserPayRecord.Status.refund)
+					.eq(EquipmentUserPayRecord::getOrderId, orderId)
+					.ne(EquipmentUserPayRecord::getStatus, EquipmentUserChanceRecord.Status.refund));
 		}
 		}
-		EquipmentUserChanceRecord record = equipmentUserChanceRecordMapper.selectOne(Wrappers.lambdaQuery(EquipmentUserChanceRecord.class)
-				.eq(EquipmentUserChanceRecord::getUserId, userId)
-				.eq(EquipmentUserChanceRecord::getStatus, status)
-				.eq(EquipmentUserChanceRecord::getOrderId, orderId)
-				.last("limit 1"));
-		if (record != null) {
-			return false;
-		}
-		record = new EquipmentUserChanceRecord();
-		record.setShareId(sharId);
-		record.setUserId(userId);
-		record.setStatus(status);
-		record.setOrderId(orderId);
-		equipmentUserChanceRecordMapper.insert(record);
-		return true;
 	}
 	}
 
 
 	public void deductUserBenefits(Long userId, Long orderId) {
 	public void deductUserBenefits(Long userId, Long orderId) {
@@ -288,4 +243,63 @@ public class EquipmentDistributeServiceImpl implements EquipmentDistributeServic
 			}
 			}
 		});
 		});
 	}
 	}
+
+	public EquipmentConfigDto checkEquipmentConfigDto() {
+		//是否有配置车票权益
+		SysConfig config = sysConfigService.getOne(Wrappers.lambdaQuery(SysConfig.class)
+				.eq(SysConfig::getSysKey, Constant.EQUIPMENT_DISTRIBUTE_KEY).last("limit 1"));
+		if (config == null) {
+			return null;
+		}
+		String sysValue = config.getSysValue();
+		//未配置权益
+		if (StrUtil.isEmpty(sysValue)) {
+			return null;
+		}
+		EquipmentConfigDto equipmentConfigDto = null;
+		try {
+			equipmentConfigDto = Jsons.parseObject(sysValue, EquipmentConfigDto.class);
+		} catch (Exception e) {
+			return null;
+		}
+		return equipmentConfigDto;
+	}
+
+	public void addBalanceBenefits(Long sharId, Long orderId, BigDecimal balance, EquipmentUserDistributeTransportBenefits.Status status) {
+		log.info("分销人:{}记录分享有礼实物订单:{}余额权益,待发货后发送", sharId, orderId);
+		EquipmentUserDistributeTransportBenefits transportBenefits = new EquipmentUserDistributeTransportBenefits();
+		transportBenefits.setShareId(sharId);
+		transportBenefits.setOrderId(orderId);
+		transportBenefits.setStatus(status);
+		transportBenefits.setBalance(balance);
+		transportBenefitsMapper.insert(transportBenefits);
+	}
+
+	public void addTicketBenefitsChance(Long sharId, Long userId, Long orderId, EquipmentUserChanceRecord.Status status) {
+		try {
+			EquipmentUserChanceRecord record = new EquipmentUserChanceRecord();
+			record.setShareId(sharId);
+			record.setUserId(userId);
+			record.setStatus(status);
+			record.setOrderId(orderId);
+			equipmentUserChanceRecordMapper.insert(record);
+
+			EquipmentUserChance chance = equipmentUserChanceMapper.selectOne(Wrappers.lambdaQuery(EquipmentUserChance.class)
+					.eq(EquipmentUserChance::getUserId, sharId)
+					.last("limit 1"));
+			if (chance == null) {
+				try {
+					chance = new EquipmentUserChance();
+					chance.setUserId(sharId);
+					chance.setNum(1);
+					equipmentUserChanceMapper.insert(chance);
+				} catch (DuplicateKeyException e) {
+					equipmentUserChanceMapper.addUserChance(sharId);
+				}
+			} else {
+				equipmentUserChanceMapper.addUserChance(sharId);
+			}
+		} catch (DuplicateKeyException e) {
+		}
+	}
 }
 }

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

@@ -98,10 +98,10 @@ public class EquipmentDistributeController {
 	 * 邀请好友明细
 	 * 邀请好友明细
 	 */
 	 */
 	@GetMapping("/get/invite/record")
 	@GetMapping("/get/invite/record")
-	public Result<SearchResult<EquipmentUserChanceRecord>> getInviteRecord() {
+	public Result<SearchResult<EquipmentUserPayRecord>> getInviteRecord() {
 		Long userId = StpUserUtil.getLoginIdAsLong();
 		Long userId = StpUserUtil.getLoginIdAsLong();
-		SearchResult<EquipmentUserChanceRecord> search = beanSearcher.search(EquipmentUserChanceRecord.class, MapUtils.flatBuilder(request.getParameterMap())
-				.field(EquipmentUserChanceRecord::getShareId, userId)
+		SearchResult<EquipmentUserPayRecord> search = beanSearcher.search(EquipmentUserPayRecord.class, MapUtils.flatBuilder(request.getParameterMap())
+				.field(EquipmentUserPayRecord::getShareId, userId)
 				.build());
 				.build());
 		search.getDataList().forEach(data -> {
 		search.getDataList().forEach(data -> {
 			Optional.ofNullable(userMapper.selectById(data.getUserId())).ifPresent(user -> {
 			Optional.ofNullable(userMapper.selectById(data.getUserId())).ifPresent(user -> {

+ 5 - 5
netflix-web/src/main/java/com/cyksj/web/controller/manage/distribute/EquipmentController.java

@@ -6,8 +6,8 @@ import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.GoodsDonSkuMapper;
 import com.cyksj.mapper.GoodsDonSkuMapper;
 import com.cyksj.mapper.UserMapper;
 import com.cyksj.mapper.UserMapper;
 import com.cyksj.mapper.manage.coupon.CouponMapper;
 import com.cyksj.mapper.manage.coupon.CouponMapper;
-import com.cyksj.mapper.manage.distribute.equipment.EquipmentUserChanceRecordMapper;
-import com.cyksj.model.entity.EquipmentUserChanceRecord;
+import com.cyksj.mapper.manage.distribute.equipment.EquipmentUserPayRecordMapper;
+import com.cyksj.model.entity.EquipmentUserPayRecord;
 import com.cyksj.model.entity.GoodsDonSku;
 import com.cyksj.model.entity.GoodsDonSku;
 import com.cyksj.model.entity.User;
 import com.cyksj.model.entity.User;
 import com.cyksj.model.views.EquipmentBenefitsView;
 import com.cyksj.model.views.EquipmentBenefitsView;
@@ -43,7 +43,7 @@ public class EquipmentController {
 
 
 	private final CouponMapper couponMapper;
 	private final CouponMapper couponMapper;
 
 
-	private final EquipmentUserChanceRecordMapper equipmentUserChanceRecordMapper;
+	private final EquipmentUserPayRecordMapper payRecordMapper;
 
 
 	private final GoodsDonSkuMapper goodsDonSkuMapper;
 	private final GoodsDonSkuMapper goodsDonSkuMapper;
 
 
@@ -56,8 +56,8 @@ public class EquipmentController {
 		search.getDataList().forEach(data -> {
 		search.getDataList().forEach(data -> {
 			User user = userMapper.selectById(data.getShareId());
 			User user = userMapper.selectById(data.getShareId());
 			Optional.ofNullable(user).ifPresent(u -> data.setNickname(u.getNickname()));
 			Optional.ofNullable(user).ifPresent(u -> data.setNickname(u.getNickname()));
-			data.setRecordNum(equipmentUserChanceRecordMapper.selectCount(Wrappers.lambdaQuery(EquipmentUserChanceRecord.class)
-					.eq(EquipmentUserChanceRecord::getShareId, data.getShareId())));
+			data.setRecordNum(payRecordMapper.selectCount(Wrappers.lambdaQuery(EquipmentUserPayRecord.class)
+					.eq(EquipmentUserPayRecord::getShareId, data.getShareId())));
 			data.setBenefitsViews(beanSearcher.searchAll(EquipmentBenefitsView.class, MapUtils.builder().field(EquipmentBenefitsView::getSharId, data.getShareId()).build()));
 			data.setBenefitsViews(beanSearcher.searchAll(EquipmentBenefitsView.class, MapUtils.builder().field(EquipmentBenefitsView::getSharId, data.getShareId()).build()));
 		});
 		});
 		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
 		return GatewayResponse.SUCCESS.newBuilder().toResult(search);