Преглед на файлове

Merge branch 'recharge_c'

zoujiajian преди 10 месеца
родител
ревизия
9c1872a8b0

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/GptRechargeCardKey.java

@@ -18,6 +18,11 @@ public class GptRechargeCardKey extends BaseEntity{
 
 	private Boolean status;
 
+	/**
+	 * 卡密支持类型 0月付 1.季、年付
+	 */
+	private Integer type;
+
 	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Long orderId;
 

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/request/GptRechargeCardKeyReq.java

@@ -14,5 +14,10 @@ import java.util.List;
 @Getter
 @Setter
 public class GptRechargeCardKeyReq {
+	/**
+	 * 卡密类型 默认0月付 1.季、年付
+	 */
+	private Integer type = 0;
+
 	private List<String> cardKey;
 }

+ 15 - 0
netflix-service/src/main/java/com/cyksj/server/recharge/impl/GptProxyRechargeServiceImpl.java

@@ -204,6 +204,7 @@ public class GptProxyRechargeServiceImpl implements GptProxyRechargeService {
 //		if (sku.getGoodsId() != Constant.GPT_RECHARGE_GOODS_ID) {
 //			throw BusinessRuntimeException.getInstance("车票类型错误");
 //		}
+		Integer rechargeNum = relation.getRechargeNum();
 		Integer rechargeRemainNum = relation.getRechargeRemainNum();
 		if (rechargeRemainNum == null || rechargeRemainNum <= 0) {
 			throw BusinessRuntimeException.getInstance("剩余可代充次数为0");
@@ -252,9 +253,23 @@ public class GptProxyRechargeServiceImpl implements GptProxyRechargeService {
 			relation.setGptToken(accessToken);
 			relation.setAccount(rechargeAccount);
 			//获取GPT代充key
+			//代充卡密类型
+			Integer gptRechargeCardKeyType = 0;
+			//若是季、年付 且首月代充
+			if (sku.getMonths() > 1 && rechargeNum == rechargeRemainNum) {
+				gptRechargeCardKeyType = 1;
+			}
 			GptRechargeCardKey gptRechargeCardKey = gptRechargeCardKeyMapper.selectOne(Wrappers.lambdaQuery(GptRechargeCardKey.class)
+					.eq(GptRechargeCardKey::getType, gptRechargeCardKeyType)
 					.eq(GptRechargeCardKey::getStatus, Boolean.FALSE)
 					.last("order by rand() limit 1"));
+			//季、年付卡密不存在 从月付代充卡密中获取
+			if (gptRechargeCardKey == null && gptRechargeCardKeyType == 1) {
+				gptRechargeCardKey = gptRechargeCardKeyMapper.selectOne(Wrappers.lambdaQuery(GptRechargeCardKey.class)
+						.eq(GptRechargeCardKey::getType, 0)
+						.eq(GptRechargeCardKey::getStatus, Boolean.FALSE)
+						.last("order by rand() limit 1"));
+			}
 			if (gptRechargeCardKey == null) {
 				setRechargeRelationStatusAutoError(relation);
 				throw BusinessRuntimeException.getInstance("充值失败,请联系客服开通");

+ 15 - 0
netflix-service/src/main/java/com/cyksj/service/mange/gpt/impl/GptRechargeServiceImpl.java

@@ -127,6 +127,7 @@ public class GptRechargeServiceImpl implements GptRechargeService {
 //		if (sku.getGoodsId() != Constant.GPT_RECHARGE_GOODS_ID) {
 //			throw BusinessRuntimeException.getInstance("车票类型错误");
 //		}
+		Integer rechargeNum = relation.getRechargeNum();
 		Integer rechargeRemainNum = relation.getRechargeRemainNum();
 		if (rechargeRemainNum == null || rechargeRemainNum <= 0) {
 			throw BusinessRuntimeException.getInstance("剩余可代充次数为0");
@@ -168,9 +169,23 @@ public class GptRechargeServiceImpl implements GptRechargeService {
 			relation.setGptToken(accessToken);
 			relation.setAccount(rechargeAccount);
 			//获取GPT代充key
+			//代充卡密类型
+			Integer gptRechargeCardKeyType = 0;
+			//若是季、年付 且首月代充
+			if (sku.getMonths() > 1 && rechargeNum == rechargeRemainNum) {
+				gptRechargeCardKeyType = 1;
+			}
 			GptRechargeCardKey gptRechargeCardKey = gptRechargeCardKeyMapper.selectOne(Wrappers.lambdaQuery(GptRechargeCardKey.class)
 					.eq(GptRechargeCardKey::getStatus, Boolean.FALSE)
+					.eq(GptRechargeCardKey::getType, gptRechargeCardKeyType)
 					.last("order by rand() limit 1"));
+			//季、年付卡密不存在 从月付代充卡密中获取
+			if (gptRechargeCardKey == null && gptRechargeCardKeyType == 1) {
+				gptRechargeCardKey = gptRechargeCardKeyMapper.selectOne(Wrappers.lambdaQuery(GptRechargeCardKey.class)
+						.eq(GptRechargeCardKey::getType, 0)
+						.eq(GptRechargeCardKey::getStatus, Boolean.FALSE)
+						.last("order by rand() limit 1"));
+			}
 			if (gptRechargeCardKey == null) {
 				throw BusinessRuntimeException.getInstance("无可用卡密");
 			}

+ 2 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/group/CmsGroupRelationController.java

@@ -433,11 +433,13 @@ public class CmsGroupRelationController {
      */
     @PostMapping("/post/gpt/cardKey")
     public Result<String> postGptCardKey(@RequestBody GptRechargeCardKeyReq req) {
+        Integer type = req.getType();
         List<String> cardKey = req.getCardKey();
         cardKey.forEach(key -> {
             try {
                 GptRechargeCardKey gptRechargeCardKey = new GptRechargeCardKey();
                 gptRechargeCardKey.setCardKey(key);
+                gptRechargeCardKey.setType(type);
                 gptRechargeCardKeyMapper.insert(gptRechargeCardKey);
             } catch (DuplicateKeyException e) {