zoujiajian 3 년 전
부모
커밋
4066a508be

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/model/dto/EquipmentConfigDto.java

@@ -4,6 +4,7 @@ import com.cyksj.model.entity.GoodsDonSku;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Set;
 
@@ -25,4 +26,9 @@ public class EquipmentConfigDto {
 	 * 车票时长权益配置
 	 */
 	private List<GoodsDonSku> skuList;
+
+	/**
+	 * 余额
+	 */
+	private BigDecimal balance;
 }

+ 34 - 11
netflix-service/src/main/java/com/cyksj/service/distribute/equipment/impl/EquipmentDistributeServiceImpl.java

@@ -1,5 +1,6 @@
 package com.cyksj.service.distribute.equipment.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
@@ -109,13 +110,6 @@ public class EquipmentDistributeServiceImpl implements EquipmentDistributeServic
 		if (record != null) {
 			Long sharId = record.getShareId();
 			if (saveInviteRecord(sharId, userId, orderId, EquipmentUserChanceRecord.Status.hasPayment)) {
-				SysConfig config = sysConfigService.getOne(Wrappers.lambdaQuery(SysConfig.class)
-						.eq(SysConfig::getSysKey, Constant.EQUIPMENT_DISTRIBUTE_KEY).last("limit 1"));
-				String sysValue = config.getSysValue();
-				//未配置车票权益 不增加次数
-				if (StrUtil.isEmpty(sysValue)) {
-					return;
-				}
 				EquipmentUserChance chance = equipmentUserChanceMapper.selectOne(Wrappers.lambdaQuery(EquipmentUserChance.class)
 						.eq(EquipmentUserChance::getUserId, sharId)
 						.last("limit 1"));
@@ -162,6 +156,33 @@ public class EquipmentDistributeServiceImpl implements EquipmentDistributeServic
 	}
 
 	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"));
+			String sysValue = config.getSysValue();
+			//未配置车票权益 不增加次数
+			if (StrUtil.isEmpty(sysValue)) {
+				return false;
+			}
+			try {
+				EquipmentConfigDto equipmentConfigDto = Jsons.parseObject(sysValue, EquipmentConfigDto.class);
+				if (equipmentConfigDto == null || CollUtil.isEmpty(equipmentConfigDto.getSkuList())) {
+					return false;
+				}
+			} catch (Exception e) {
+			}
+		}
+		if (status == EquipmentUserChanceRecord.Status.refund) {
+			EquipmentUserChanceRecord record = equipmentUserChanceRecordMapper.selectOne(Wrappers.lambdaQuery(EquipmentUserChanceRecord.class)
+					.eq(EquipmentUserChanceRecord::getUserId, userId)
+					.eq(EquipmentUserChanceRecord::getStatus, EquipmentUserChanceRecord.Status.hasPayment)
+					.eq(EquipmentUserChanceRecord::getOrderId, orderId)
+					.last("limit 1"));
+			if (record == null) {
+				return false;
+			}
+		}
 		EquipmentUserChanceRecord record = equipmentUserChanceRecordMapper.selectOne(Wrappers.lambdaQuery(EquipmentUserChanceRecord.class)
 				.eq(EquipmentUserChanceRecord::getUserId, userId)
 				.eq(EquipmentUserChanceRecord::getStatus, status)
@@ -233,10 +254,12 @@ public class EquipmentDistributeServiceImpl implements EquipmentDistributeServic
 			EquipmentConfigDto equipmentConfigDto = null;
 			try {
 				equipmentConfigDto = Jsons.parseObject(config.getSysValue(), EquipmentConfigDto.class);
-				equipmentConfigDto.getCouponIds().forEach(couponId->{
-					couponCommonService.sendCouponToUser(userId, couponId, null, null, null, CouponUser.Channel.equipment);
-				});
-				redisService.set(RedisService.key.EQUIPMENT_DISTRIBUTE_COUPON_KEY.getNameFormat(userId), userId, RedisService.key.EQUIPMENT_DISTRIBUTE_COUPON_KEY.getTimeout());
+				if (equipmentConfigDto != null && CollUtil.isNotEmpty(equipmentConfigDto.getCouponIds())) {
+					equipmentConfigDto.getCouponIds().forEach(couponId -> {
+						couponCommonService.sendCouponToUser(userId, couponId, null, null, null, CouponUser.Channel.equipment);
+					});
+					redisService.set(RedisService.key.EQUIPMENT_DISTRIBUTE_COUPON_KEY.getNameFormat(userId), userId, RedisService.key.EQUIPMENT_DISTRIBUTE_COUPON_KEY.getTimeout());
+				}
 			} catch (Exception e) {
 			}
 		});