Просмотр исходного кода

360 渠道无登录状态支付.

chenbiao 3 лет назад
Родитель
Сommit
29fa394a0d

+ 10 - 0
netflix-common/src/main/java/com/cyksj/common/constant/Constant.java

@@ -134,4 +134,14 @@ public interface Constant {
 	 * 特殊格式平台邮箱
 	 * 特殊格式平台邮箱
 	 */
 	 */
 	String SPECIAL_GOODS_ACCOUNT_IMPORT_KEY = "special_goods_account_import_key";
 	String SPECIAL_GOODS_ACCOUNT_IMPORT_KEY = "special_goods_account_import_key";
+
+	/**
+	 * 360渠道名称
+	 */
+	String CHANNEL_NAME_360 = "360";
+
+	/**
+	 * 360渠道折扣
+	 */
+	String CHANNEL_360_DISCOUNT = "channel_360_discount";
 }
 }

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/model/manage/views/OrderDonSearchView.java

@@ -152,4 +152,10 @@ public class OrderDonSearchView {
 
 
 	@DbIgnore
 	@DbIgnore
 	private List<GoodsDonSkuView> benefitsViews;
 	private List<GoodsDonSkuView> benefitsViews;
+
+	/**
+	 * 关联兑换码
+	 */
+	@DbField("o.ex_code")
+	private String exCode;
 }
 }

+ 19 - 0
netflix-service/src/main/java/com/cyksj/service/exchange/impl/ExchangeCodeServiceImpl.java

@@ -16,6 +16,7 @@ import com.cyksj.dto.RedisKey;
 import com.cyksj.dto.Result;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.*;
 import com.cyksj.mapper.*;
+import com.cyksj.mapper.channel.ChannelPopularizeMapper;
 import com.cyksj.mapper.manage.exchange.ExchangeCodeMapper;
 import com.cyksj.mapper.manage.exchange.ExchangeCodeMapper;
 import com.cyksj.mapper.market.draw.LuckyDrawRecordMapper;
 import com.cyksj.mapper.market.draw.LuckyDrawRecordMapper;
 import com.cyksj.model.entity.*;
 import com.cyksj.model.entity.*;
@@ -81,6 +82,8 @@ public class ExchangeCodeServiceImpl extends ServiceImpl<ExchangeCodeMapper, Exc
 
 
 	private final GroupRelationFrontService groupRelationFrontService;
 	private final GroupRelationFrontService groupRelationFrontService;
 
 
+	private final ChannelPopularizeMapper channelPopularizeMapper;
+
 	@Override
 	@Override
 	@Transactional(rollbackFor = Throwable.class)
 	@Transactional(rollbackFor = Throwable.class)
 	public List<ExcelExchangeCodeData> createExchangeCode(ExchangeCodeReq exchangeCodeReq) {
 	public List<ExcelExchangeCodeData> createExchangeCode(ExchangeCodeReq exchangeCodeReq) {
@@ -153,6 +156,22 @@ public class ExchangeCodeServiceImpl extends ServiceImpl<ExchangeCodeMapper, Exc
 				.eq(OrderDon::getExCode, exchangeCode.getCode())
 				.eq(OrderDon::getExCode, exchangeCode.getCode())
 				.notIn(OrderDon::getStatus, Constant.noOrderStatus)
 				.notIn(OrderDon::getStatus, Constant.noOrderStatus)
 				.last("limit 1"));
 				.last("limit 1"));
+		Long popularizeId = orderDon.getPopularizeId();
+
+		//360 渠道兑换规则验证.
+		if(popularizeId != null && popularizeId != 0){
+			String channel = channelPopularizeMapper.selectChannelByPid(popularizeId);
+			if (Constant.CHANNEL_NAME_360.equals(channel)) {
+				//查询该用户之前是否存在订单.
+				Integer count = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
+						.eq(OrderDon::getUserId, userId)
+						.notIn(OrderDon::getStatus, Constant.noOrderStatus));
+				if (count > 0) {
+					throw new BusinessRuntimeException("您不符合360活动条件.");
+				}
+			}
+		}
+
 		if (orderDon != null && orderDon.getStatus() == OrderDon.Status.refund) {
 		if (orderDon != null && orderDon.getStatus() == OrderDon.Status.refund) {
 			throw BusinessRuntimeException.getInstance("您的订单已退款,无法使用该兑换码");
 			throw BusinessRuntimeException.getInstance("您的订单已退款,无法使用该兑换码");
 		}
 		}

+ 14 - 0
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -36,6 +36,7 @@ import com.cyksj.config.zfb.ZfbProductCode;
 import com.cyksj.dto.RedisKey;
 import com.cyksj.dto.RedisKey;
 import com.cyksj.enums.GatewayApiCode;
 import com.cyksj.enums.GatewayApiCode;
 import com.cyksj.mapper.*;
 import com.cyksj.mapper.*;
+import com.cyksj.mapper.channel.ChannelPopularizeMapper;
 import com.cyksj.mapper.channel.ShopConfigMapper;
 import com.cyksj.mapper.channel.ShopConfigMapper;
 import com.cyksj.mapper.manage.coupon.CouponDistributePopularizeMapper;
 import com.cyksj.mapper.manage.coupon.CouponDistributePopularizeMapper;
 import com.cyksj.mapper.manage.coupon.CouponMapper;
 import com.cyksj.mapper.manage.coupon.CouponMapper;
@@ -203,6 +204,8 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 
 
 	private final OrderDiscountPlusPurchaseSkuRelationMapper orderDiscountPlusPurchaseSkuRelationMapper;
 	private final OrderDiscountPlusPurchaseSkuRelationMapper orderDiscountPlusPurchaseSkuRelationMapper;
 
 
+	private final ChannelPopularizeMapper channelPopularizeMapper;
+
 	private final List<String> noChekGoodsTemp = List.of("Apple One", "Youtube", "Spotify");
 	private final List<String> noChekGoodsTemp = List.of("Apple One", "Youtube", "Spotify");
 
 
 	@Transactional(rollbackFor = Throwable.class)
 	@Transactional(rollbackFor = Throwable.class)
@@ -1992,6 +1995,17 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			if (success != 1) throw BusinessRuntimeException.getInstance("您的余额不足!");
 			if (success != 1) throw BusinessRuntimeException.getInstance("您的余额不足!");
 			orderDon.setBalance(balance);
 			orderDon.setBalance(balance);
 		}
 		}
+		//特殊渠道推广优惠. 360
+		if(orderDon.getPopularizeId() != null && orderDon.getPopularizeId() != 0L){
+			String name = channelPopularizeMapper.selectChannelByPid(orderDon.getPopularizeId());
+			if (Constant.CHANNEL_NAME_360.equals(name)) {
+				SysConfig sysConfig = sysConfigService.getBaseMapper().selectOne(Wrappers.lambdaQuery(SysConfig.class).eq(SysConfig::getSysKey, Constant.CHANNEL_360_DISCOUNT));
+				if (sysConfig != null) {
+					BigDecimal discountMoney = orderDon.getMoney().multiply(BigDecimal.valueOf(Integer.parseInt(sysConfig.getSysValue())));
+					orderDon.setMoney(discountMoney);
+				}
+			}
+		}
 	}
 	}
 
 
 	/**
 	/**