|
@@ -1,8 +1,10 @@
|
|
|
package com.zanxiang.game.module.sdk.service.impl;
|
|
|
|
|
|
+import com.alibaba.fastjson2.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.zanxiang.game.back.base.pojo.enums.OrderStatusEnum;
|
|
|
+import com.zanxiang.game.module.base.pojo.enums.GameCategoryEnum;
|
|
|
import com.zanxiang.game.module.mybatis.entity.*;
|
|
|
import com.zanxiang.game.module.mybatis.mapper.OrderMapper;
|
|
|
import com.zanxiang.game.module.sdk.enums.KafkaEventTrackEnum;
|
|
@@ -64,7 +66,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
//游戏信息
|
|
|
Game game = gameService.getById(gameId);
|
|
|
if (Objects.equals(game.getRechargeCloseSwitch(), Boolean.TRUE)) {
|
|
|
- throw new BaseException("游戏已经关闭充值, 禁止操作");
|
|
|
+ this.rechargeCloseCheck(game, user);
|
|
|
}
|
|
|
//玩家信息
|
|
|
GameUser gameUser = gameUserService.getOne(new LambdaQueryWrapper<GameUser>()
|
|
@@ -96,6 +98,18 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
return Boolean.TRUE;
|
|
|
}
|
|
|
|
|
|
+ private void rechargeCloseCheck(Game game, User user){
|
|
|
+ //暗影防线禁止充值
|
|
|
+ if (Objects.equals(game.getId(), 2L)){
|
|
|
+ throw new BaseException("游戏已经关闭充值, 禁止操作");
|
|
|
+ }
|
|
|
+ //仙剑APP导量玩家禁止充值, 直接APP注册的玩家正常充值
|
|
|
+ if (Objects.equals(game.getSuperGameId(), 12L) && user.getRelationUserId() != null
|
|
|
+ && Objects.equals(game.getCategory(), GameCategoryEnum.CATEGORY_APP.getId())) {
|
|
|
+ throw new BaseException("APP专注畅快游戏体验,充值请回小程序享受完整服务");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private Order transform(UserData userData, String orderNum, ProductPayParam payParam, User user, GameUser gameUser,
|
|
|
Game game, GameUserRole gameUserRole, GamePayWayDTO gamePayWayDTO) {
|
|
|
Order order = Order.builder()
|
|
@@ -141,6 +155,19 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
&& !Objects.equals(order.getCpOrderId(), order.getExt())) {
|
|
|
order.setCpOrderId(order.getExt());
|
|
|
}
|
|
|
+ //仙剑安卓APP端CP订单id修正, ext字段中包含了订单id
|
|
|
+ if (Objects.equals(gameSupper.getId(), 12L) && Strings.isNotBlank(order.getExt())
|
|
|
+ && Objects.equals(game.getCategory(), GameCategoryEnum.CATEGORY_APP.getId())) {
|
|
|
+ //解析订单id, 若订单中的CP订单id不对, 则修正
|
|
|
+ String cpOrderId = null;
|
|
|
+ try {
|
|
|
+ cpOrderId = JSONObject.parse(order.getExt()).getString("orderId");
|
|
|
+ } catch (Exception ignored) {
|
|
|
+ }
|
|
|
+ if (Strings.isNotBlank(cpOrderId) && !Objects.equals(cpOrderId, order.getCpOrderId())) {
|
|
|
+ order.setCpOrderId(cpOrderId);
|
|
|
+ }
|
|
|
+ }
|
|
|
return order;
|
|
|
}
|
|
|
|