Quellcode durchsuchen

feat : 订单创建逻辑修改, 订单表修改

bilingfeng vor 2 Jahren
Ursprung
Commit
d3731670ed

+ 1 - 1
game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/OrderServiceImpl.java

@@ -241,7 +241,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
     private LambdaQueryWrapper<Order> getListWrapper(OrderParam param, List<Long> agentIdList, String select) {
         return new QueryWrapper<Order>().select(select).lambda()
-                .eq(Strings.isNotBlank(param.getOrderId()), Order::getId, param.getOrderId())
+                .eq(Strings.isNotBlank(param.getOrderId()), Order::getOrderId, param.getOrderId())
                 .eq(Strings.isNotBlank(param.getCpOrderId()), Order::getCpOrderId, param.getCpOrderId())
                 .eq(Strings.isNotBlank(param.getMerchantOrderNo()), Order::getMerchantOrderNo, param.getMerchantOrderNo())
                 .eq(Strings.isNotBlank(param.getUserId()), Order::getUserId, param.getUserId())

+ 2 - 2
game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/entity/GamePayWay.java

@@ -26,7 +26,7 @@ public class GamePayWay {
      * 主键id
      */
     @TableId(value = "id", type = IdType.AUTO)
-    private String id;
+    private Long id;
 
     /**
      * 游戏id
@@ -36,7 +36,7 @@ public class GamePayWay {
     /**
      * 支付方式id
      */
-    private Integer payWayId;
+    private Long payWayId;
 
     /**
      * 支付code

+ 8 - 8
game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/entity/Order.java

@@ -25,8 +25,13 @@ public class Order {
     /**
      * 自增ID
      */
-    @TableId(value = "id", type = IdType.ASSIGN_ID)
-    private String id;
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 订单id
+     */
+    private String orderId;
 
     /**
      * 充值渠道id
@@ -146,7 +151,7 @@ public class Order {
     /**
      * 支付配置id
      */
-    private String gamePaywayId;
+    private Long gamePaywayId;
 
     /**
      * 支付时间
@@ -219,11 +224,6 @@ public class Order {
      */
     private Integer isFirstRecharge;
 
-    /**
-     * 操作系统
-     */
-    private String fromDevice;
-
     /**
      * 支付类型, 1:PC, 2: h5支付, 3: App支付, 4: 小程序支付, 5: 米大师支付
      */

+ 6 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/bo/PlatformOrderBO.java

@@ -8,7 +8,12 @@ import java.time.LocalDateTime;
 @Data
 public class PlatformOrderBO {
 
-    private String id;
+    private Long id;
+
+    /**
+     * 订单id
+     */
+    private String orderId;
 
     /**
      * 充值渠道id

+ 6 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/dto/PlatformOrderDTO.java

@@ -17,7 +17,12 @@ public class PlatformOrderDTO {
     /**
      * 自增ID
      */
-    private String id;
+    private Long id;
+
+    /**
+     * 订单id
+     */
+    private String orderId;
 
     /**
      * 充值渠道id

+ 4 - 4
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/CallBackServiceImpl.java

@@ -95,10 +95,10 @@ public class CallBackServiceImpl implements CallBackService {
         if (orderInfo == null) {
             return;
         }
-        log.error("用户注册回传, orderId : {}", orderInfo.getId());
+        log.error("用户注册回传, orderId : {}", orderInfo.getOrderId());
         AppOrderRpcDTO dto = AppOrderRpcDTO.builder()
                 .appKey(String.valueOf(orderInfo.getGameId()))
-                .orderId(orderInfo.getId())
+                .orderId(orderInfo.getOrderId())
                 .userId(String.valueOf(orderInfo.getUserId()))
                 .amount(orderInfo.getAmount().multiply(new BigDecimal("100")).longValue())
                 .realAmount(orderInfo.getRealAmount().multiply(new BigDecimal("100")).longValue())
@@ -116,14 +116,14 @@ public class CallBackServiceImpl implements CallBackService {
             log.error("订单回传上报异常, orderInfo : {}, e : {}", JsonUtil.toString(orderInfo), e.getMessage());
             return;
         }
-        log.error("订单回传结果, orderId : {}, result : {}", orderInfo.getId(), JsonUtil.toString(result));
+        log.error("订单回传结果, orderId : {}, result : {}", orderInfo.getOrderId(), JsonUtil.toString(result));
         String adId = "AD_ID";
         //成功
         if (result.isSuccess() && result.getData() != null && result.getData().getAid() != null) {
             adId = result.getData().getAid().toString();
         }
         //更新数据库
-        orderService.update(new LambdaUpdateWrapper<Order>().set(Order::getAdId, adId).eq(Order::getId, orderInfo.getId()));
+        orderService.update(new LambdaUpdateWrapper<Order>().set(Order::getAdId, adId).eq(Order::getOrderId, orderInfo.getOrderId()));
     }
 
 }

+ 5 - 46
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/OrderPayServiceImpl.java

@@ -1,19 +1,17 @@
 package com.zanxiang.sdk.service.Impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.zanxiang.common.domain.ResultMap;
 import com.zanxiang.common.enums.OrderStateEnum;
 import com.zanxiang.common.exception.BaseException;
 import com.zanxiang.common.utils.SpringUtils;
-import com.zanxiang.mybatis.entity.Game;
-import com.zanxiang.mybatis.entity.GameUser;
 import com.zanxiang.mybatis.entity.Order;
-import com.zanxiang.sdk.domain.bo.PlatformOrderBO;
 import com.zanxiang.sdk.domain.bo.ProductPayParamBO;
 import com.zanxiang.sdk.domain.params.ProductPayParam;
 import com.zanxiang.sdk.domain.params.UserData;
 import com.zanxiang.sdk.enums.PayTypeEnum;
-import com.zanxiang.sdk.service.*;
+import com.zanxiang.sdk.service.GamePayWayService;
+import com.zanxiang.sdk.service.OrderPayService;
+import com.zanxiang.sdk.service.OrderService;
 import com.zanxiang.sdk.service.pay.PayBaseService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,7 +20,6 @@ import org.springframework.stereotype.Service;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
-import java.time.LocalDateTime;
 import java.util.Objects;
 
 /**
@@ -40,52 +37,14 @@ public class OrderPayServiceImpl implements OrderPayService {
     @Autowired
     public GamePayWayService gamePayWayService;
 
-    @Autowired
-    private GameService gameService;
-
-    @Autowired
-    private GameUserService gameUserService;
-
-    @Autowired
-    private PromoChannelService promoChannelService;
-
     @Override
     public ResultMap payCreate(ProductPayParam product, UserData userData) {
-        Long userId = userData.getUserId();
-        Game game = gameService.getById(userData.getGameId());
-        if (game == null) {
-            throw new BaseException("参数错误, 游戏信息不存在");
-        }
-        GameUser gameUser = gameUserService.getOne(new LambdaQueryWrapper<GameUser>()
-                .eq(GameUser::getUserId, userData.getUserId()));
-        if (gameUser == null) {
-            throw new BaseException("参数错误, 玩家信息不存在");
-        }
         //创建订单
-        PlatformOrderBO orderBO = new PlatformOrderBO();
-        orderBO.setAgentId(promoChannelService.getAgentIdByChannel(userData.getChannel()));
-        orderBO.setCpId(game.getCpId());
-        orderBO.setUserId(userData.getUserId());
-        orderBO.setMgUserId(gameUser.getId());
-        orderBO.setRoleId(product.getRoleId());
-        orderBO.setRoleName(product.getRoleName());
-        orderBO.setServerId(product.getServerId());
-        orderBO.setServerName(product.getServerName());
-        orderBO.setGameId(userData.getGameId());
-        orderBO.setAmount(product.getAmount());
-        orderBO.setProductId(product.getProductId());
-        orderBO.setProductName(product.getProductName());
-        orderBO.setCpOrderId(product.getOrderId());
-        orderBO.setFromDevice(userData.getDeviceSystem());
-        orderBO.setPayDevice(userData.getDeviceType());
-        orderBO.setExt(product.getExtension());
-        orderBO.setPayTime(LocalDateTime.now());
-        String orderId = orderService.create(orderBO);
-        product.setOrderId(orderId);
+        orderService.createOrder(product, userData);
         //创建支付参数
         ProductPayParamBO bo = new ProductPayParamBO();
         bo.setGameId(userData.getGameId().toString());
-        bo.setUserId(userId);
+        bo.setUserId(userData.getUserId());
         bo.setPayDevice(product.getPayDevice() == null ? userData.getDeviceType() : product.getPayDevice());
         bo.setDeviceSystem(userData.getDeviceSystem());
         bo.setSpbillCreateIp(userData.getIp());

+ 127 - 15
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/OrderServiceImpl.java

@@ -5,19 +5,23 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zanxiang.common.enums.OrderStateEnum;
 import com.zanxiang.common.exception.BaseException;
 import com.zanxiang.common.utils.bean.BeanUtils;
-import com.zanxiang.mybatis.entity.Order;
+import com.zanxiang.mybatis.entity.*;
 import com.zanxiang.mybatis.mapper.OrderMapper;
 import com.zanxiang.sdk.domain.bo.PlatformOrderBO;
 import com.zanxiang.sdk.domain.dto.PlatformOrderDTO;
+import com.zanxiang.sdk.domain.params.ProductPayParam;
+import com.zanxiang.sdk.domain.params.UserData;
 import com.zanxiang.sdk.listener.OrderPaySuccessEvent;
-import com.zanxiang.sdk.service.OrderService;
+import com.zanxiang.sdk.service.*;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.RandomStringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.ApplicationContext;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 
 /**
  * 平台订单逻辑开发
@@ -30,20 +34,128 @@ import java.time.LocalDateTime;
 @Transactional(rollbackFor = {Exception.class, RuntimeException.class})
 public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements OrderService {
 
+    @Autowired
+    private PromoChannelService promoChannelService;
+
+    @Autowired
+    private GameService gameService;
+
+    @Autowired
+    private UserService userService;
+
+    @Autowired
+    private GameUserService gameUserService;
+
+    @Autowired
+    private GameUserRoleService gameUserRoleService;
+
     @Autowired
     private ApplicationContext applicationContext;
 
+    @Autowired
+    private GamePayWayService gamePayWayService;
+
+    /**
+     * 创建订单
+     *
+     * @param payParam 支付参数
+     * @param userData 用户数据
+     * @return {@link Boolean}
+     */
     @Override
-    @Transactional(rollbackFor = Exception.class)
-    public String create(PlatformOrderBO platformOrderBO) {
-        try {
-            log.info("生成订单请求参数 platformOrderBO:{}", platformOrderBO);
-            Order data = BeanUtils.copy(platformOrderBO, Order.class);
-            super.save(data);
-        } catch (Exception e) {
-            log.error("生成订单失败 platformOrderBO:{}, error:{}", platformOrderBO, e);
+    public Boolean createOrder(ProductPayParam payParam, UserData userData) {
+        //用户id
+        Long userId = userData.getUserId();
+        //游戏id
+        Long gameId = userData.getGameId();
+        //游戏信息
+        Game game = gameService.getById(userData.getGameId());
+        if (game == null) {
+            throw new BaseException("参数错误, 游戏信息不存在");
+        }
+        //用户信息
+        User user = userService.getById(userId);
+        if (user == null) {
+            throw new BaseException("参数错误, 用户信息不存在");
+        }
+        //玩家信息
+        GameUser gameUser = gameUserService.getOne(new LambdaQueryWrapper<GameUser>()
+                .eq(GameUser::getUserId, userData.getUserId()));
+        if (gameUser == null) {
+            throw new BaseException("参数错误, 玩家信息不存在");
+        }
+        //角色信息
+        GameUserRole gameUserRole = gameUserRoleService.getOne(new LambdaQueryWrapper<GameUserRole>()
+                .eq(GameUserRole::getGameId, userData.getGameId())
+                .eq(GameUserRole::getRoleId, payParam.getRoleId()));
+        if (gameUserRole == null) {
+            throw new BaseException("参数错误, 角色信息不存在");
+        }
+        //游戏支付配置信息
+        GamePayWay gamePayWay = gamePayWayService.getPayWayToOrderPay(String.valueOf(gameId), payParam.getPayWay());
+        //生成订单id
+        String orderNum = this.getOrderNum(userData.getUserId());
+        //用户已有订单数
+        int count = super.count(new LambdaQueryWrapper<Order>().eq(Order::getGameId, gameId).eq(Order::getUserId, user));
+        //设置订单号
+        payParam.setOrderId(orderNum);
+        //构造订单
+        return super.save(Order.builder()
+                .orderId(orderNum)
+                .agentId(promoChannelService.getAgentIdByChannel(userData.getChannel()))
+                .cpId(game.getCpId())
+                .cpOrderId(payParam.getOrderId())
+                .userId(userData.getUserId())
+                .mgUserId(gameUser.getId())
+                .roleId(gameUserRole.getRoleId())
+                .roleName(gameUserRole.getRoleName())
+                .serverId(gameUserRole.getServerId())
+                .serverName(gameUserRole.getServerName())
+                .gameId(userData.getGameId())
+                .amount(payParam.getAmount())
+                .productId(payParam.getProductId())
+                .productName(payParam.getProductName())
+                .gamePaywayId(gamePayWay.getId())
+                .ext(payParam.getExtension())
+                .isFirstRecharge(count <= 0 ? 0 : 1)
+                .payDevice(payParam.getPayDevice())
+                .createTime(LocalDateTime.now())
+                .updateTime(LocalDateTime.now())
+                .username(user.getUsername())
+                .regTime(user.getCreateTime())
+                .deviceSystem(userData.getDeviceSystem())
+                .merchantNo(gamePayWay.getMerchantNo())
+                .merchantName(gamePayWay.getMerchantName())
+                .payWayId(gamePayWay.getPayWayId())
+                .regGameId(user.getGameId())
+                .roleLevel(gameUserRole.getRoleLevel())
+                .roleVipLevel(gameUserRole.getRoleVipLevel())
+                .build());
+    }
+
+    /**
+     * 生成订单号(25位):时间(精确到毫秒)+ 3位随机数 + 5位户id
+     *
+     * @param userId 用户id
+     * @return {@link String}
+     */
+    private String getOrderNum(Long userId) {
+        //时间(精确到毫秒)
+        DateTimeFormatter ofPattern = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS");
+        String localDate = LocalDateTime.now().format(ofPattern);
+        //3位随机数
+        String randomNumeric = RandomStringUtils.randomNumeric(3);
+        //5位用户id
+        int subStrLength = 5;
+        String sUserId = userId.toString();
+        int length = sUserId.length();
+        String str;
+        if (length >= subStrLength) {
+            str = sUserId.substring(length - subStrLength, length);
+        } else {
+            str = String.format("%0" + subStrLength + "d", userId);
         }
-        return null;
+        return localDate + randomNumeric + str;
     }
 
     @Override
@@ -51,7 +163,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
     public Boolean pay(PlatformOrderBO platformOrderBO) {
         log.info("订单支付请求参数 platformOrderBO:{}", platformOrderBO);
         try {
-            Order order = getOne(new LambdaQueryWrapper<Order>().eq(Order::getId, platformOrderBO.getId()));
+            Order order = getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderId, platformOrderBO.getOrderId()));
             //已支付情况,直接返回成功
             if (order.getStatus().equals(OrderStateEnum.SUCCESS.getCode())) {
                 return true;
@@ -63,7 +175,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             log.info("订单支付提交数据 data:{}", platformOrderBO);
             boolean result = updateById(BeanUtils.copy(platformOrderBO, Order.class));
             if (result) {
-                OrderPaySuccessEvent orderPaySuccessEvent = new OrderPaySuccessEvent(this, order.getId());
+                OrderPaySuccessEvent orderPaySuccessEvent = new OrderPaySuccessEvent(this, order.getOrderId());
                 applicationContext.publishEvent(orderPaySuccessEvent);
                 return true;
             }
@@ -75,8 +187,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
     }
 
     @Override
-    public PlatformOrderDTO info(String id) {
-        Order order = getOne(new LambdaQueryWrapper<Order>().eq(Order::getId, id));
+    public PlatformOrderDTO info(String orderId) {
+        Order order = getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderId, orderId));
         return BeanUtils.copy(order, PlatformOrderDTO.class);
     }
 }

+ 19 - 19
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/PerformOrderServiceImpl.java

@@ -101,11 +101,11 @@ public class PerformOrderServiceImpl implements PerformOrderService {
                 .set(Order::getCpNotifyCnt, orderInfo.getCpNotifyCnt() + 1)
                 .set(Order::getLastCpNotifyTime, LocalDateTime.now())
                 .set(Order::getCpStatus, pushSuccess ? CpStatusEnum.SUCCESS.getCode() : CpStatusEnum.FAILLE.getCode())
-                .eq(Order::getId, orderInfo.getId())
+                .eq(Order::getOrderId, orderInfo.getOrderId())
         );
         //更新回调记录
         LogPayCp logPayCp = new LogPayCp();
-        logPayCp.setOrderId(orderInfo.getId());
+        logPayCp.setOrderId(orderInfo.getOrderId());
         logPayCp.setCpOrderId(orderInfo.getCpOrderId());
         logPayCp.setStatus(orderInfo.getStatus());
         logPayCp.setCpStatus(pushSuccess ? CpStatusEnum.SUCCESS.getCode() : CpStatusEnum.FAILLE.getCode());
@@ -145,29 +145,29 @@ public class PerformOrderServiceImpl implements PerformOrderService {
 
     @Override
     public Boolean checkIsFirstRecharge(PlatformOrderDTO orderInfo) {
-        log.info("订单:{} 检查更新用户是否为首充 ----------start---------", orderInfo.getId());
+        log.info("订单:{} 检查更新用户是否为首充 ----------start---------", orderInfo.getOrderId());
         try {
             Order one = orderService.getOne(new QueryWrapper<Order>().lambda()
                     .eq(Order::getUserId, orderInfo.getUserId())
                     .eq(Order::getStatus, OrderStateEnum.SUCCESS.getCode())
-                    .ne(Order::getId, orderInfo.getId()).last("limit 1"));
+                    .ne(Order::getOrderId, orderInfo.getOrderId()).last("limit 1"));
             if (Objects.isNull(one)) {
                 Order order = new Order();
-                order.setId(order.getId());
+                order.setOrderId(order.getOrderId());
                 order.setIsFirstRecharge(1);
                 orderService.updateById(order);
-                log.info("订单:{} 验证订单是否为首充成功", orderInfo.getId());
+                log.info("订单:{} 验证订单是否为首充成功", orderInfo.getOrderId());
                 return true;
             }
         } catch (Exception e) {
-            log.error("订单:{} 验证订单是否为首充失败 e:{}", orderInfo.getId(), e);
+            log.error("订单:{} 验证订单是否为首充失败 e:{}", orderInfo.getOrderId(), e);
         }
         return true;
     }
 
     @Override
     public Boolean userRechargeTotal(PlatformOrderDTO orderInfo) {
-        log.info("订单:{} 更新用户充值统计 ----------start---------", orderInfo.getId());
+        log.info("订单:{} 更新用户充值统计 ----------start---------", orderInfo.getOrderId());
         try {
             //订单取消情况 做减法
             float amount = orderInfo.getAmount().floatValue();
@@ -187,7 +187,7 @@ public class PerformOrderServiceImpl implements PerformOrderService {
                         .setEntity(gameUserRole)
                 );
             } else {
-                log.info("订单:{} 用户玩家角色RoleId为空,不进行gameUserRole充值统计汇总", orderInfo.getId());
+                log.info("订单:{} 用户玩家角色RoleId为空,不进行gameUserRole充值统计汇总", orderInfo.getOrderId());
             }
             //游戏用户统计更新
             if (orderInfo.getMgUserId() != null) {
@@ -200,7 +200,7 @@ public class PerformOrderServiceImpl implements PerformOrderService {
                         .setEntity(gameUser)
                 );
             } else {
-                log.info("订单:{} 用户玩家MgUserId为空,不进行gameUser充值统计汇总", orderInfo.getId());
+                log.info("订单:{} 用户玩家MgUserId为空,不进行gameUser充值统计汇总", orderInfo.getOrderId());
             }
             //用户统计更新
             if (orderInfo.getUserId() != null) {
@@ -213,35 +213,35 @@ public class PerformOrderServiceImpl implements PerformOrderService {
                         .setEntity(user)
                 );
             } else {
-                log.info("订单:{} 用户UserId为空,不进行User充值统计汇总", orderInfo.getId());
+                log.info("订单:{} 用户UserId为空,不进行User充值统计汇总", orderInfo.getOrderId());
             }
             return true;
         } catch (Exception e) {
-            log.error("订单:{} 用户充值统计逻辑操作失败 e:{}", orderInfo.getId(), e);
+            log.error("订单:{} 用户充值统计逻辑操作失败 e:{}", orderInfo.getOrderId(), e);
         }
         return false;
     }
 
     @Override
     public Boolean payMerchantTotal(PlatformOrderDTO orderInfo) {
-        log.info("订单:{} 更新商户号统计 ----------start---------", orderInfo.getId());
+        log.info("订单:{} 更新商户号统计 ----------start---------", orderInfo.getOrderId());
         try {
             if (StringUtils.isEmpty(orderInfo.getGamePaywayId())) {
-                log.error("订单:{} 更新商户号统计时,该订单GamePaywayId为空", orderInfo.getId());
+                log.error("订单:{} 更新商户号统计时,该订单GamePaywayId为空", orderInfo.getOrderId());
                 return false;
             }
             GamePayWay gamePayWayInfo = gamePayWayService.getInfo(orderInfo.getGamePaywayId());
             if (Objects.isNull(gamePayWayInfo)) {
-                log.error("订单:{} 更新商户号统计时,获取GamePayway表id:{}信息为空", orderInfo.getId(), orderInfo.getGamePaywayId());
+                log.error("订单:{} 更新商户号统计时,获取GamePayway表id:{}信息为空", orderInfo.getOrderId(), orderInfo.getGamePaywayId());
                 return false;
             }
             if (gamePayWayInfo.getPayMerchantId() <= 0) {
-                log.error("订单:{} 更新商户号统计时,获取GamePayway表id:{}信息中PayMerchantId为空", orderInfo.getId(), orderInfo.getGamePaywayId());
+                log.error("订单:{} 更新商户号统计时,获取GamePayway表id:{}信息中PayMerchantId为空", orderInfo.getOrderId(), orderInfo.getGamePaywayId());
                 return false;
             }
             PayMerchant payMerchantInfo = payMerchantService.getById(gamePayWayInfo.getPayMerchantId());
             if (Objects.isNull(payMerchantInfo)) {
-                log.error("订单:{} 更新商户号统计时,获取PayMerchant表id:{}信息为空", orderInfo.getId(), gamePayWayInfo.getPayMerchantId());
+                log.error("订单:{} 更新商户号统计时,获取PayMerchant表id:{}信息为空", orderInfo.getOrderId(), gamePayWayInfo.getPayMerchantId());
                 return false;
             }
             BigDecimal amount = orderInfo.getAmount();
@@ -273,10 +273,10 @@ public class PerformOrderServiceImpl implements PerformOrderService {
                     .setSql(dayPayAmount)
                     .setEntity(payMerchantInfo)
             );
-            log.info("订单:{} 更新商户号统计 ----------end---------", orderInfo.getId());
+            log.info("订单:{} 更新商户号统计 ----------end---------", orderInfo.getOrderId());
             return true;
         } catch (Exception e) {
-            log.error("订单:{} 更新商户号统计失败 e:{}", orderInfo.getId(), e);
+            log.error("订单:{} 更新商户号统计失败 e:{}", orderInfo.getOrderId(), e);
         }
         return false;
     }

+ 9 - 6
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/OrderService.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.zanxiang.mybatis.entity.Order;
 import com.zanxiang.sdk.domain.bo.PlatformOrderBO;
 import com.zanxiang.sdk.domain.dto.PlatformOrderDTO;
+import com.zanxiang.sdk.domain.params.ProductPayParam;
+import com.zanxiang.sdk.domain.params.UserData;
 
 /**
  * 平台订单逻辑开发
@@ -15,12 +17,13 @@ import com.zanxiang.sdk.domain.dto.PlatformOrderDTO;
 public interface OrderService extends IService<Order> {
 
     /**
-     * 订单创建
+     * 创建订单
      *
-     * @param platformOrderBO
-     * @return 订单id
+     * @param payParam 支付参数
+     * @param userData 用户数据
+     * @return {@link Boolean}
      */
-    String create(PlatformOrderBO platformOrderBO);
+    Boolean createOrder(ProductPayParam payParam, UserData userData);
 
     /**
      * 订单支付
@@ -33,8 +36,8 @@ public interface OrderService extends IService<Order> {
     /**
      * 单一订单详情获取
      *
-     * @param id
+     * @param orderId
      * @return PlatformOrderDTO
      */
-    PlatformOrderDTO info(String id);
+    PlatformOrderDTO info(String orderId);
 }

+ 1 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/pay/MiPayService.java

@@ -141,7 +141,7 @@ public class MiPayService extends PayBaseService {
         paramMap.put("pf", "android");
         paramMap.put("zone_id", "1");
         paramMap.put("amt", orderInfo.getAmount().toString());
-        paramMap.put("bill_no", orderInfo.getId());
+        paramMap.put("bill_no", orderInfo.getOrderId());
         String urlPath = this.isSand == 1 ? "/cgi-bin/midas/sandbox/getbalance" : "/cgi-bin/midas/getbalance";
         String appKey = this.isSand == 1 ? miPayConfig.getAppKeyDev() : miPayConfig.getAppKey();
         String sig = WxPayUtil.miPaySin("POST", urlPath, paramMap, appKey);

+ 4 - 4
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/pay/PayBaseService.java

@@ -59,13 +59,13 @@ public abstract class PayBaseService {
             product.setSubject(info.getProductName());
             product.setGameId(gameId);
             product.setTotalFee(String.valueOf(info.getAmount()));
-            product.setOutTradeNo(info.getId());
+            product.setOutTradeNo(info.getOrderId());
             product.setConfig(payInfo.getPayConfig());
             ProductPayAttachParamBO attachBO = new ProductPayAttachParamBO();
             attachBO.setUserId(product.getUserId());
             attachBO.setOrderId(product.getOutTradeNo());
             attachBO.setPayWay(product.getPayWay());
-            attachBO.setGamePayWayId(payInfo.getId());
+            attachBO.setGamePayWayId(String.valueOf(payInfo.getId()));
             product.setAttach(attachBO);
             this.attach = attachBO;
             ResultMap result = this.create(product);
@@ -89,7 +89,7 @@ public abstract class PayBaseService {
      */
     public Boolean paySuccess(String orderNo, String realAmount, String merchantOrderNo, String gamePayWayId) {
         PlatformOrderBO bo = new PlatformOrderBO();
-        bo.setId(orderNo);
+        bo.setOrderId(orderNo);
         bo.setRealAmount(new BigDecimal(realAmount));
         bo.setMerchantOrderNo(merchantOrderNo);
         bo.setStatus(OrderStateEnum.SUCCESS.getCode());
@@ -106,7 +106,7 @@ public abstract class PayBaseService {
      */
     public String getPayConfig(String gameId, Integer payWay) {
         GamePayWay payInfo = gamePayWayService.getPayWayToOrderPay(gameId, payWay);
-        this.attach.setGamePayWayId(payInfo.getId());
+        this.attach.setGamePayWayId(String.valueOf(payInfo.getId()));
         return payInfo.getPayConfig();
     }