Browse Source

feat : 支付模块架构重构, 新增接口拦截器

bilingfeng 2 years ago
parent
commit
124068a704
52 changed files with 393 additions and 619 deletions
  1. 13 42
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/adapter/ArgumentAdapter.java
  2. 70 0
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/adapter/WebHandlerAdapter.java
  3. 14 0
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/annotation/UnSignCheck.java
  4. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/annotation/ValidLogin.java
  5. 0 101
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/common/miPay/RequestParam.java
  6. 28 0
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/config/AdapterHandlerConfig.java
  7. 4 26
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/config/MybatisPlusConfig.java
  8. 3 3
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/config/WebMvcConfig.java
  9. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/constant/ApiUrlConstant.java
  10. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/constant/MiPayConstants.java
  11. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/constant/RedisKeyConstant.java
  12. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/constant/WxPayConstants.java
  13. 2 0
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/LoginController.java
  14. 0 60
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/OrderController.java
  15. 9 13
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/PayController.java
  16. 3 11
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/UserController.java
  17. 0 2
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/params/OrderCheckInfoParam.java
  18. 0 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/params/PlatformOrderParam.java
  19. 0 3
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/params/UserCheckParam.java
  20. 0 21
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/vo/OrderCheckInfoVO.java
  21. 0 15
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/vo/PreOrderMiPayConfigVO.java
  22. 0 24
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/vo/PreOrderVO.java
  23. 63 0
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/enums/PayTypeEnum.java
  24. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/listener/OrderPaySuccessEvent.java
  25. 6 9
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/listener/OrderPaySuccessListener.java
  26. 2 2
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/GameKeyServiceImpl.java
  27. 0 2
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/GameStrategyServiceImpl.java
  28. 4 4
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/LoginServiceImpl.java
  29. 54 0
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/OrderPayServiceImpl.java
  30. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/PerformOrderServiceImpl.java
  31. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/PlatformOrderServiceImpl.java
  32. 2 2
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/SmsServiceImpl.java
  33. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/UserServiceImpl.java
  34. 3 3
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/UserTokenServiceImpl.java
  35. 15 22
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/OrderPayService.java
  36. 2 2
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/auth/QqApiServiceImpl.java
  37. 2 2
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/auth/VxApiServiceImpl.java
  38. 5 8
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/pay/AliPayService.java
  39. 6 18
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/pay/MiPayService.java
  40. 54 68
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/pay/PayBaseService.java
  41. 12 16
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/pay/WxPayService.java
  42. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/util/DeviceCheckUtil.java
  43. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/util/HttpUtil.java
  44. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/util/RedisUtil.java
  45. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/util/RegisterUtil.java
  46. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/util/SignUtil.java
  47. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/util/WxPayUtil.java
  48. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/util/XmlUtil.java
  49. 1 1
      game-module/game-sdk/src/main/resources/META-INF/spring.factories
  50. 0 80
      game-module/game-sdk/src/test/java/com/zanxiang/sdk/OrderTests.java
  51. 0 23
      game-module/game-sdk/src/test/java/com/zanxiang/sdk/SDKApplicationTests.java
  52. 0 19
      game-module/game-sdk/src/test/java/com/zanxiang/sdk/ThreadTest.java

+ 13 - 42
game-module/game-sdk/src/main/java/com/zanxiang/sdk/common/resolver/TokenArgumentResolver.java → game-module/game-sdk/src/main/java/com/zanxiang/sdk/adapter/ArgumentAdapter.java

@@ -1,16 +1,13 @@
-package com.zanxiang.sdk.common.resolver;
+package com.zanxiang.sdk.adapter;
 
 import com.zanxiang.common.enums.HttpStatusEnum;
 import com.zanxiang.common.exception.CustomException;
 import com.zanxiang.common.utils.StringUtils;
-import com.zanxiang.mybatis.entity.GameKey;
-import com.zanxiang.sdk.common.annotation.ValidLogin;
-import com.zanxiang.sdk.common.util.DeviceCheckUtil;
-import com.zanxiang.sdk.common.util.SignUtil;
+import com.zanxiang.sdk.annotation.ValidLogin;
 import com.zanxiang.sdk.domain.dto.UserTokenDTO;
 import com.zanxiang.sdk.domain.params.UserData;
-import com.zanxiang.sdk.service.GameKeyService;
 import com.zanxiang.sdk.service.UserTokenService;
+import com.zanxiang.sdk.util.DeviceCheckUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.logging.log4j.util.Strings;
 import org.springframework.core.MethodParameter;
@@ -23,39 +20,33 @@ import org.springframework.web.method.support.ModelAndViewContainer;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
-import java.util.Objects;
 
 /**
- * token转用户信息解析器
- *
- * @author xufeng
- * @date 2022/6/20 09:59
+ * @author : lingfeng
+ * @time : 2022-09-28
+ * @description : 参数解析器
  */
 @Component
 @Service
 @Slf4j
-public class TokenArgumentResolver implements HandlerMethodArgumentResolver {
+public class ArgumentAdapter implements HandlerMethodArgumentResolver {
 
     @Resource
     private UserTokenService userTokenService;
 
-    @Resource
-    private GameKeyService gameKeyService;
-
     @Override
     public boolean supportsParameter(MethodParameter parameter) {
         return parameter.getParameterType().equals(UserData.class);
     }
 
     @Override
-    public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest,
-                                  WebDataBinderFactory binderFactory) throws Exception {
+    public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) {
         HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class);
         if (request == null) {
             throw new CustomException(HttpStatusEnum.UNKNOWN_ERROR);
         }
-        //签名验证
-        String gameId = this.signCheck(request);
+        //游戏id
+        String gameId = request.getHeader("gameId");
         //是否强制验证登录状态
         boolean b = parameter.hasParameterAnnotation(ValidLogin.class);
         String token = request.getHeader("token");
@@ -69,7 +60,9 @@ public class TokenArgumentResolver implements HandlerMethodArgumentResolver {
         UserData data = new UserData();
         data.setDeviceType(deviceType);
         data.setDeviceSystem(DeviceCheckUtil.getDeviceSystem(userAgent));
-        data.setGameId(Long.valueOf(gameId));
+        if (Strings.isNotBlank(gameId)) {
+            data.setGameId(Long.valueOf(gameId));
+        }
         //不需要登录, token不存在
         if (StringUtils.isEmpty(token)) {
             return data;
@@ -88,26 +81,4 @@ public class TokenArgumentResolver implements HandlerMethodArgumentResolver {
         log.info("UserData:{}", data);
         return data;
     }
-
-    private String signCheck(HttpServletRequest request) throws Exception {
-        //游戏id和密钥
-        String gameId = request.getHeader("gameId");
-        String sign = request.getHeader("sign");
-        String timestamp = request.getHeader("timestamp");
-        if (Strings.isBlank(sign) || Strings.isBlank(timestamp) || Strings.isBlank(gameId)) {
-            throw new CustomException(HttpStatusEnum.INVALID_PARAMS);
-        }
-        //签名验证
-        GameKey gameKey = gameKeyService.getByGameId(Long.valueOf(gameId));
-        if (gameKey == null || Strings.isBlank(gameKey.getAppKey())) {
-            throw new CustomException(HttpStatusEnum.INVALID_PARAMS);
-        }
-        String str = "appKey=" + gameKey.getAppKey() + "&gameId=" + gameId + "&timestamp=" + timestamp;
-        String mySign = SignUtil.MD5(str).toUpperCase();
-        //签名对比
-        if (!Objects.equals(mySign, sign)) {
-            throw new CustomException(HttpStatusEnum.INVALID_PARAMS);
-        }
-        return gameId;
-    }
 }

+ 70 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/adapter/WebHandlerAdapter.java

@@ -0,0 +1,70 @@
+package com.zanxiang.sdk.adapter;
+
+import com.zanxiang.common.enums.HttpStatusEnum;
+import com.zanxiang.common.exception.CustomException;
+import com.zanxiang.mybatis.entity.GameKey;
+import com.zanxiang.sdk.annotation.UnSignCheck;
+import com.zanxiang.sdk.service.GameKeyService;
+import com.zanxiang.sdk.util.SignUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.logging.log4j.util.Strings;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+import org.springframework.web.method.HandlerMethod;
+import org.springframework.web.servlet.HandlerInterceptor;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Objects;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-09-28
+ * @description : 拦截器
+ */
+@Component
+@Service
+@Slf4j
+public class WebHandlerAdapter implements HandlerInterceptor {
+
+    @Resource
+    private GameKeyService gameKeyService;
+
+    @Override
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+        HandlerMethod handlerMethod = (HandlerMethod) handler;
+        //排除签名认证接口注解
+        UnSignCheck unSignCheck = handlerMethod.getMethod().getAnnotation(UnSignCheck.class);
+        //接口签名验证
+        if (unSignCheck == null) {
+            return this.signCheck(request);
+        }
+        return Boolean.TRUE;
+    }
+
+    private boolean signCheck(HttpServletRequest request) throws Exception {
+        //游戏id和密钥
+        String gameId = request.getHeader("gameId");
+        String sign = request.getHeader("sign");
+        String timestamp = request.getHeader("timestamp");
+        if (Strings.isBlank(sign) || Strings.isBlank(timestamp) || Strings.isBlank(gameId)) {
+            log.error("非法参数, sign加密参数存在空值, gameId : {}, sign : {}, timestamp : {}", gameId, sign, timestamp);
+            throw new CustomException(HttpStatusEnum.INVALID_PARAMS);
+        }
+        //签名验证
+        GameKey gameKey = gameKeyService.getByGameId(Long.valueOf(gameId));
+        if (gameKey == null || Strings.isBlank(gameKey.getAppKey())) {
+            log.error("非法参数, 游戏id对应的前端密钥appKey不存在");
+            throw new CustomException(HttpStatusEnum.INVALID_PARAMS);
+        }
+        String str = "appKey=" + gameKey.getAppKey() + "&gameId=" + gameId + "&timestamp=" + timestamp;
+        String mySign = SignUtil.MD5(str).toUpperCase();
+        //签名对比
+        if (!Objects.equals(mySign, sign)) {
+            log.error("非法参数, 签名错误, mySign : {}, sign : {}, str : {}", mySign, sign, str);
+            throw new CustomException(HttpStatusEnum.INVALID_PARAMS);
+        }
+        return Boolean.TRUE;
+    }
+}

+ 14 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/annotation/UnSignCheck.java

@@ -0,0 +1,14 @@
+package com.zanxiang.sdk.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-09-28
+ * @description : 签名检测
+ */
+@Target({ElementType.METHOD})
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface UnSignCheck {
+}

+ 1 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/common/annotation/ValidLogin.java → game-module/game-sdk/src/main/java/com/zanxiang/sdk/annotation/ValidLogin.java

@@ -1,4 +1,4 @@
-package com.zanxiang.sdk.common.annotation;
+package com.zanxiang.sdk.annotation;
 
 import java.lang.annotation.*;
 

+ 0 - 101
game-module/game-sdk/src/main/java/com/zanxiang/sdk/common/miPay/RequestParam.java

@@ -1,101 +0,0 @@
-package com.zanxiang.sdk.common.miPay;
-
-import lombok.Data;
-
-/**
- * @author xufeng
- * @date 2022/7/14 19:54
- */
-@Data
-public class RequestParam {
-
-    /**
-     * 用户唯一标识符
-     */
-    private String openid;
-
-    /**
-     * 小程序 appId
-     */
-    private String appid;
-
-    /**
-     * 米大师appKey
-     */
-    private String app_key;
-
-    /**
-     * 米大师应用id
-     */
-    private String offer_id;
-
-    /**
-     * UNIX时间戳
-     */
-    private Long ts = System.currentTimeMillis() / 1000;
-
-    /**
-     * 游戏服务器大区id,游戏不分大区则默认zoneId ="1",String类型。如过应用选择支持角色,则角色ID接在分区ID号后用"_"连接。
-     */
-    private String zone_id = "1";
-
-    /**
-     * 平台 安卓:android
-     */
-    private String pf = "android";
-
-    /**
-     * 用户外网 IP
-     */
-    private String user_ip;
-
-    /**
-     * 扣除游戏币数量,不能为 0
-     */
-    private String amt;
-
-    /**
-     * 订单号,业务需要保证全局唯一;相同的订单号不会重复扣款。长度不超过63,只能是数字、大小写字母
-     */
-    private String bill_no;
-
-    /**
-     * 道具名称
-     */
-    private String pay_item;
-
-    /**
-     * 备注。会写到账户流水
-     */
-    private String app_remark;
-
-    /**
-     * 以上所有参数(含可选最多11个)+uri+米大师密钥,用 HMAC-SHA256签名
-     */
-    private String sig;
-
-    /**
-     * 接口调用凭证
-     */
-    private String access_token;
-
-    /**
-     * 以上所有参数(含可选最多11个)+uri+米大师密钥
-     */
-    private String mp_sig;
-
-    /**
-     * 1 表示沙盒环境 2 表示正式环境
-     */
-    private Integer is_sand = 1;
-
-    /**
-     * 赠送游戏币数量,不能为0
-     */
-    private Integer present_counts;
-
-    /**
-     * 请求方式
-     */
-    private String method = "POST";
-}

+ 28 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/config/AdapterHandlerConfig.java

@@ -0,0 +1,28 @@
+package com.zanxiang.sdk.config;
+
+import com.zanxiang.sdk.adapter.WebHandlerAdapter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-09-28
+ * @description : 拦截器配置
+ */
+@Configuration
+public class AdapterHandlerConfig implements WebMvcConfigurer {
+
+    @Autowired
+    private WebHandlerAdapter webAdapterHandler;
+
+    @Override
+    public void addInterceptors(InterceptorRegistry registry) {
+        // 对所有访问路径,都通过MyInterceptor类型的拦截器进行拦截
+        registry.addInterceptor(webAdapterHandler).addPathPatterns("/**");
+        //如果需要排除拦截指定接口, 配置以下参数
+        //.excludePathPatterns("/", "/login", "/index.html");
+    }
+
+}

+ 4 - 26
game-module/game-sdk/src/main/java/com/zanxiang/sdk/config/MybatisPlusConfig.java

@@ -18,13 +18,11 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
 
 import java.sql.Connection;
-import java.sql.SQLException;
 
 /**
- * @Author wcc
- * @Date 2020/9/11 9:30
- * @Version 1.0
- * @Description
+ * @author : lingfeng
+ * @time : 2022-09-28
+ * @description : MybatisPlus分页插件
  */
 @Configuration
 @EnableTransactionManagement
@@ -57,26 +55,7 @@ public class MybatisPlusConfig {
          * @param boundSql      boundSql
          */
         @Override
-        public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException {
-            /*System.out.println("-- beforeQuery --");
-            try {
-                Select select = (Select) CCJSqlParserUtil.parse(boundSql.getSql());
-                SelectBody selectBody = select.getSelectBody();
-                if (selectBody instanceof PlainSelect) {
-                    PlainSelect plainSelect = (PlainSelect) selectBody;
-                    List<OrderByElement> orderByElements = plainSelect.getOrderByElements();
-                    System.out.println(select.toString());
-                } else if (selectBody instanceof SetOperationList) {
-                    SetOperationList setOperationList = (SetOperationList) selectBody;
-                    List<OrderByElement> orderByElements = setOperationList.getOrderByElements();
-                    System.out.println(select.toString());
-                } else if (selectBody instanceof WithItem) {
-                    // todo: don't known how to resole
-                    System.out.println(selectBody);
-                }
-            } catch (JSQLParserException e) {
-                log.warn("failed to parse sql, exception:\n" + e.getCause());
-            }*/
+        public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) {
         }
 
         /**
@@ -90,7 +69,6 @@ public class MybatisPlusConfig {
          */
         @Override
         public void beforePrepare(StatementHandler sh, Connection connection, Integer transactionTimeout) {
-            //System.out.println("-- beforePrepare --");
         }
     }
 }

+ 3 - 3
game-module/game-sdk/src/main/java/com/zanxiang/sdk/config/WebMvcConfig.java

@@ -1,6 +1,6 @@
 package com.zanxiang.sdk.config;
 
-import com.zanxiang.sdk.common.resolver.TokenArgumentResolver;
+import com.zanxiang.sdk.adapter.ArgumentAdapter;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.web.method.support.HandlerMethodArgumentResolver;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@@ -16,12 +16,12 @@ import java.util.List;
 public class WebMvcConfig implements WebMvcConfigurer {
 
     @Resource
-    private TokenArgumentResolver tokenArgumentResolver;
+    private ArgumentAdapter argumentResolverHandler;
 
 
     @Override
     public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
-        argumentResolvers.add(tokenArgumentResolver);
+        argumentResolvers.add(argumentResolverHandler);
     }
 
 }

+ 1 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/common/constant/ApiUrlConstant.java → game-module/game-sdk/src/main/java/com/zanxiang/sdk/constant/ApiUrlConstant.java

@@ -1,4 +1,4 @@
-package com.zanxiang.sdk.common.constant;
+package com.zanxiang.sdk.constant;
 
 /**
  * @author : lingfeng

+ 1 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/common/constant/MiPayConstants.java → game-module/game-sdk/src/main/java/com/zanxiang/sdk/constant/MiPayConstants.java

@@ -1,4 +1,4 @@
-package com.zanxiang.sdk.common.constant;
+package com.zanxiang.sdk.constant;
 
 /**
  * @author xufeng

+ 1 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/common/constant/RedisKeyConstant.java → game-module/game-sdk/src/main/java/com/zanxiang/sdk/constant/RedisKeyConstant.java

@@ -1,4 +1,4 @@
-package com.zanxiang.sdk.common.constant;
+package com.zanxiang.sdk.constant;
 
 /**
  * @author : lingfeng

+ 1 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/common/constant/WxPayConstants.java → game-module/game-sdk/src/main/java/com/zanxiang/sdk/constant/WxPayConstants.java

@@ -1,4 +1,4 @@
-package com.zanxiang.sdk.common.constant;
+package com.zanxiang.sdk.constant;
 
 /**
  * @author : lingfeng

+ 2 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/LoginController.java

@@ -1,6 +1,7 @@
 package com.zanxiang.sdk.controller;
 
 import com.zanxiang.common.domain.ResultVO;
+import com.zanxiang.sdk.annotation.UnSignCheck;
 import com.zanxiang.sdk.domain.params.LoginMobileParam;
 import com.zanxiang.sdk.domain.params.LoginPasswordParam;
 import com.zanxiang.sdk.domain.params.UserData;
@@ -35,6 +36,7 @@ public class LoginController {
 
     @ApiOperation(value = "登录凭证验证")
     @GetMapping("/token/check")
+    @UnSignCheck
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Long.class)})
     public ResultVO userTokenCheck(@RequestParam Long gameId, @RequestParam Long userId,
                                    @RequestParam String token, @RequestParam String sign) {

+ 0 - 60
game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/OrderController.java

@@ -1,60 +0,0 @@
-package com.zanxiang.sdk.controller;
-
-import com.zanxiang.common.domain.ResultMap;
-import com.zanxiang.common.utils.StringUtils;
-import com.zanxiang.common.utils.bean.BeanUtils;
-import com.zanxiang.sdk.domain.bo.PlatformOrderBO;
-import com.zanxiang.sdk.domain.params.PreOrderParam;
-import com.zanxiang.sdk.domain.params.UserData;
-import com.zanxiang.sdk.domain.vo.PreOrderVO;
-import com.zanxiang.sdk.service.GamePayWayService;
-import com.zanxiang.sdk.service.GameStrategyService;
-import com.zanxiang.sdk.service.PlatformOrderService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiResponse;
-import io.swagger.annotations.ApiResponses;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * @author xufeng
- * @date 2022/6/17 17:07
- */
-@Api(tags = "支付公共入口")
-@RestController
-@RequestMapping(value = "/api/order")
-public class OrderController {
-    @Autowired
-    private PlatformOrderService orderService;
-
-    @Autowired
-    private GameStrategyService gameStrategyService;
-
-//    @ApiOperation(value = "订单生成")
-//    @PostMapping(value = "/preOrder")
-//    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = PreOrderVO.class)})
-//    public ResultMap preOrder(@Validated @RequestBody PreOrderParam order, UserData user) {
-//        String userId = String.valueOf(user.getUserId());
-//        PlatformOrderBO orderBo = BeanUtils.copy(order, PlatformOrderBO.class);
-//        orderBo.setUserId(userId);
-//        orderBo.setPayDevice(user.getDeviceType().toString());
-//        Boolean paySwitch = gameStrategyService.paySwitch(user, orderBo);
-//        String orderId = orderService.create(orderBo);
-//        if (StringUtils.isEmpty(orderId)) {
-//            return ResultMap.error("生成订单失败");
-//        }
-//        PreOrderVO data = new PreOrderVO();
-//        data.setOrderId(orderId);
-//        data.setPaySwitch(paySwitch);
-//        //todo 此处切换与产品定义切换含义不一致 游戏是否切换支付方式临时为true
-//        paySwitch = true;
-//        orderBo.setIsSwitch(paySwitch);
-//        return ResultMap.ok(data);
-//    }
-
-}

+ 9 - 13
game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/PayController.java

@@ -4,20 +4,16 @@ import com.zanxiang.common.domain.ResultMap;
 import com.zanxiang.common.enums.HttpStatusEnum;
 import com.zanxiang.common.enums.PayWayEnum;
 import com.zanxiang.common.utils.IpUtils;
-import com.zanxiang.common.utils.JsonUtil;
 import com.zanxiang.common.utils.StringUtils;
 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.service.Impl.pay.PayService;
+import com.zanxiang.sdk.service.OrderPayService;
 import com.zanxiang.sdk.service.PlatformOrderService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
-import org.jdom.JDOMException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -40,10 +36,10 @@ import java.util.Objects;
 @RequestMapping(value = "/api/pay")
 @Slf4j
 public class PayController {
-    protected final Logger logger = LoggerFactory.getLogger(PayController.class);
 
     @Resource
-    private PayService payService;
+    private OrderPayService orderPayService;
+
     @Autowired
     private PlatformOrderService platformOrderService;
 
@@ -83,25 +79,25 @@ public class PayController {
         bo.setOutTradeNo(product.getOrderId());
         bo.setPayWay(product.getPayWay());
         bo.setCode(product.getCode());
-        return payService.payCreate(bo);
+        return orderPayService.payCreate(bo);
     }
 
     @ApiOperation(value = "支付宝支付异步回调(二维码、H5、网站)")
     @RequestMapping(value = "notify", method = RequestMethod.POST)
-    public String aliPayNotify(HttpServletRequest request, HttpServletResponse response) throws IOException, JDOMException {
-        return payService.notify(request, response, PayWayEnum.ALIPAY.getNum());
+    public String aliPayNotify(HttpServletRequest request, HttpServletResponse response) throws IOException {
+        return orderPayService.notify(request, response, PayWayEnum.ALIPAY.getNum());
     }
 
     @ApiOperation(value = "微信支付")
     @RequestMapping(value = "wxPayNotify", method = RequestMethod.POST)
-    public String wxPayNotify(HttpServletRequest request, HttpServletResponse response) throws IOException, JDOMException {
-        return payService.notify(request, response, PayWayEnum.WXPAY.getNum());
+    public String wxPayNotify(HttpServletRequest request, HttpServletResponse response) throws IOException {
+        return orderPayService.notify(request, response, PayWayEnum.WXPAY.getNum());
     }
 
     @ApiOperation(value = "支付宝支付同步回调(二维码、H5、网站)")
     @RequestMapping(value = "alipaySynNotify", method = RequestMethod.GET)
     public ResultMap synNotify(HttpServletRequest request) {
-        return payService.synNotify(request, PayWayEnum.ALIPAY.getNum());
+        return orderPayService.synNotify(request, PayWayEnum.ALIPAY.getNum());
     }
 
 }

+ 3 - 11
game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/UserController.java

@@ -1,10 +1,11 @@
 package com.zanxiang.sdk.controller;
 
 import com.zanxiang.common.domain.ResultVO;
-import com.zanxiang.sdk.common.annotation.ValidLogin;
+import com.zanxiang.sdk.annotation.ValidLogin;
 import com.zanxiang.sdk.domain.params.*;
 import com.zanxiang.sdk.domain.vo.UserLoginVO;
-import com.zanxiang.sdk.service.*;
+import com.zanxiang.sdk.service.UserCardService;
+import com.zanxiang.sdk.service.UserService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
@@ -29,15 +30,6 @@ public class UserController {
     @Autowired
     private UserService userService;
 
-    @Autowired
-    private UserOauthService userOauthService;
-
-    @Autowired
-    private GameUserRoleService gameUserRoleService;
-
-    @Autowired
-    private GameUserService gameUserService;
-
     @Autowired
     private UserCardService userCardService;
 

+ 0 - 2
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/params/OrderCheckInfoParam.java

@@ -4,8 +4,6 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import javax.validation.constraints.NotNull;
-import java.math.BigDecimal;
-import java.util.Date;
 
 @Data
 public class OrderCheckInfoParam extends CommonParam {

+ 0 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/params/PlatformOrderParam.java

@@ -3,7 +3,6 @@ package com.zanxiang.sdk.domain.params;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import javax.validation.constraints.NotNull;
 import java.math.BigDecimal;
 import java.util.Date;
 

+ 0 - 3
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/params/UserCheckParam.java

@@ -5,9 +5,6 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import java.math.BigDecimal;
-import java.time.LocalDateTime;
 
 /**
  * 用户检测

+ 0 - 21
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/vo/OrderCheckInfoVO.java

@@ -1,21 +0,0 @@
-package com.zanxiang.sdk.domain.vo;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-/**
- * @author xufeng
- * @date 2022/7/15 16:43
- */
-@Data
-public class OrderCheckInfoVO {
-    @ApiModelProperty(notes = "小程序appId")
-    private String mpId;
-
-    @ApiModelProperty(notes = "路径")
-    private String path;
-
-    @ApiModelProperty(notes = "米大师支付配置")
-    private PreOrderMiPayConfigVO preOrderMIPayConfigVO;
-
-}

+ 0 - 15
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/vo/PreOrderMiPayConfigVO.java

@@ -1,15 +0,0 @@
-package com.zanxiang.sdk.domain.vo;
-
-import com.zanxiang.sdk.common.miPay.RequestParam;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-/**
- * 预下单返回值
- */
-@Data
-public class PreOrderMiPayConfigVO extends RequestParam {
-
-
-}

+ 0 - 24
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/vo/PreOrderVO.java

@@ -1,24 +0,0 @@
-package com.zanxiang.sdk.domain.vo;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-/**
- * 预下单返回值
- */
-@Data
-public class PreOrderVO {
-
-    @ApiModelProperty(notes = "订单id")
-    private String orderId;
-
-    @ApiModelProperty(notes = "支付是否切换 true 切换 false 不切换")
-    private Boolean paySwitch;
-
-    @ApiModelProperty(notes = "米大师配置")
-    private PreOrderMiPayConfigVO preOrderMiPayConfigVO;
-
-    @ApiModelProperty(notes = "小程序支付配置")
-    private MiniAppConfigVO miniAppConfigVO;
-
-}

+ 63 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/enums/PayTypeEnum.java

@@ -0,0 +1,63 @@
+package com.zanxiang.sdk.enums;
+
+import com.zanxiang.sdk.service.pay.AliPayService;
+import com.zanxiang.sdk.service.pay.MiPayService;
+import com.zanxiang.sdk.service.pay.PayBaseService;
+import com.zanxiang.sdk.service.pay.WxPayService;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-09-28
+ * @description : 支付方式枚举
+ */
+@Getter
+@AllArgsConstructor
+public enum PayTypeEnum {
+
+    /**
+     * 支付宝
+     */
+    ALI_PAY(1, "AliPay", AliPayService.class),
+
+    /**
+     * 微信支付
+     */
+    WX_PAY(2, "WxPay", MiPayService.class),
+
+    /**
+     * 米大师支付
+     */
+    MI_PAY(3, "MiPay", WxPayService.class);
+
+    /**
+     * 支付方式
+     */
+    private final Integer payType;
+
+    /**
+     * 支付类前缀
+     */
+    private final String name;
+
+    /**
+     * 支付实现类
+     */
+    private final Class<? extends PayBaseService> clazz;
+
+    /**
+     * 根据书城key获取枚举
+     *
+     * @param payType : 支付类型
+     * @return : 支付类型枚举
+     */
+    public static PayTypeEnum getByPayType(Integer payType) {
+        for (PayTypeEnum payTypeEnum : PayTypeEnum.values()) {
+            if (payTypeEnum.getPayType().equals(payType)) {
+                return payTypeEnum;
+            }
+        }
+        return null;
+    }
+}

+ 1 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/common/listener/OrderPaySuccessEvent.java → game-module/game-sdk/src/main/java/com/zanxiang/sdk/listener/OrderPaySuccessEvent.java

@@ -1,4 +1,4 @@
-package com.zanxiang.sdk.common.listener;
+package com.zanxiang.sdk.listener;
 
 import lombok.Getter;
 import org.springframework.context.ApplicationEvent;

+ 6 - 9
game-module/game-sdk/src/main/java/com/zanxiang/sdk/common/listener/OrderPaySuccessListener.java → game-module/game-sdk/src/main/java/com/zanxiang/sdk/listener/OrderPaySuccessListener.java

@@ -1,4 +1,4 @@
-package com.zanxiang.sdk.common.listener;
+package com.zanxiang.sdk.listener;
 
 import com.zanxiang.common.enums.OrderStateEnum;
 import com.zanxiang.common.utils.StringUtils;
@@ -6,8 +6,6 @@ import com.zanxiang.sdk.domain.dto.PlatformOrderDTO;
 import com.zanxiang.sdk.service.PerformOrderService;
 import com.zanxiang.sdk.service.PlatformOrderService;
 import lombok.extern.slf4j.Slf4j;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.event.EventListener;
 import org.springframework.scheduling.annotation.Async;
@@ -26,7 +24,6 @@ import java.util.Objects;
 @Component
 @Slf4j
 public class OrderPaySuccessListener {
-    protected final Logger logger = LoggerFactory.getLogger(OrderPaySuccessListener.class);
 
     @Resource
     private PlatformOrderService platformOrderService;
@@ -38,20 +35,20 @@ public class OrderPaySuccessListener {
     @Async
     public void onApplicationEvent(OrderPaySuccessEvent event) {
         if (StringUtils.isEmpty(event.getOrderId())) {
-            logger.error("缺少订单ID");
+            log.error("缺少订单ID");
             return;
         }
-        logger.info("订单:{} 支付成功履约监听逻辑 ------start---------", event.getOrderId());
+        log.info("订单:{} 支付成功履约监听逻辑 ------start---------", event.getOrderId());
         PlatformOrderDTO orderInfo = platformOrderService.info(event.getOrderId());
         if (Objects.isNull(orderInfo)) {
-            logger.error("订单:{} 获取详情失败", event.getOrderId());
+            log.error("订单:{} 获取详情失败", event.getOrderId());
             return;
         }
         //--------非成功支付状态,仅操作宽表信息----------------
         if (!orderInfo.getStatus().equals(OrderStateEnum.SUCCESS.getCode())) {
             //生成宽表数据
             performOrderService.createOrderComplete(orderInfo);
-            logger.info("订单:{} 支付成功履约监听逻辑 ------end---------", event.getOrderId());
+            log.info("订单:{} 支付成功履约监听逻辑 ------end---------", event.getOrderId());
             return;
         }
         //--------成功支付操作----------------
@@ -67,6 +64,6 @@ public class OrderPaySuccessListener {
         //商户号额度统计更新
         performOrderService.payMerchantTotal(orderInfo);
 
-        logger.info("订单:{} 支付成功履约监听逻辑 ------end---------", event.getOrderId());
+        log.info("订单:{} 支付成功履约监听逻辑 ------end---------", event.getOrderId());
     }
 }

+ 2 - 2
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/GameKeyServiceImpl.java

@@ -5,9 +5,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zanxiang.common.enums.ExpireTimeEnum;
 import com.zanxiang.mybatis.entity.GameKey;
 import com.zanxiang.mybatis.mapper.GameKeyMapper;
-import com.zanxiang.sdk.common.constant.RedisKeyConstant;
-import com.zanxiang.sdk.common.util.RedisUtil;
+import com.zanxiang.sdk.constant.RedisKeyConstant;
 import com.zanxiang.sdk.service.GameKeyService;
+import com.zanxiang.sdk.util.RedisUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;

+ 0 - 2
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/GameStrategyServiceImpl.java

@@ -2,14 +2,12 @@ package com.zanxiang.sdk.service.Impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.zanxiang.common.enums.GameStrategyTypeEnum;
 import com.zanxiang.common.enums.StatusEnum;
 import com.zanxiang.mybatis.entity.GameStrategy;
 import com.zanxiang.mybatis.mapper.GameStrategyMapper;
 import com.zanxiang.sdk.domain.bo.PlatformOrderBO;
 import com.zanxiang.sdk.domain.params.UserData;
 import com.zanxiang.sdk.service.GameStrategyService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 

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

@@ -12,10 +12,8 @@ import com.zanxiang.common.utils.IpUtils;
 import com.zanxiang.common.utils.JsonUtil;
 import com.zanxiang.common.utils.URIUtil;
 import com.zanxiang.mybatis.entity.User;
-import com.zanxiang.sdk.common.constant.ApiUrlConstant;
-import com.zanxiang.sdk.common.constant.RedisKeyConstant;
-import com.zanxiang.sdk.common.util.RedisUtil;
-import com.zanxiang.sdk.common.util.RegisterUtil;
+import com.zanxiang.sdk.constant.ApiUrlConstant;
+import com.zanxiang.sdk.constant.RedisKeyConstant;
 import com.zanxiang.sdk.domain.dto.UserOauthDTO;
 import com.zanxiang.sdk.domain.params.LoginMobileParam;
 import com.zanxiang.sdk.domain.params.LoginPasswordParam;
@@ -23,6 +21,8 @@ import com.zanxiang.sdk.domain.params.QqLoginCallbackParam;
 import com.zanxiang.sdk.domain.params.UserData;
 import com.zanxiang.sdk.domain.vo.UserLoginVO;
 import com.zanxiang.sdk.service.*;
+import com.zanxiang.sdk.util.RedisUtil;
+import com.zanxiang.sdk.util.RegisterUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.logging.log4j.util.Strings;
 import org.springframework.beans.factory.annotation.Autowired;

+ 54 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/OrderPayServiceImpl.java

@@ -0,0 +1,54 @@
+package com.zanxiang.sdk.service.Impl;
+
+import com.zanxiang.common.domain.ResultMap;
+import com.zanxiang.common.utils.SpringUtils;
+import com.zanxiang.sdk.domain.bo.ProductPayParamBO;
+import com.zanxiang.sdk.enums.PayTypeEnum;
+import com.zanxiang.sdk.service.GamePayWayService;
+import com.zanxiang.sdk.service.OrderPayService;
+import com.zanxiang.sdk.service.PlatformOrderService;
+import com.zanxiang.sdk.service.pay.PayBaseService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-09-28
+ * @description : 订单支付
+ */
+@Slf4j
+@Service
+public class OrderPayServiceImpl implements OrderPayService {
+
+    @Autowired
+    public PlatformOrderService platformOrderService;
+
+    @Autowired
+    public GamePayWayService gamePayWayService;
+
+    @Override
+    public ResultMap payCreate(ProductPayParamBO product) {
+        PayTypeEnum payTypeEnum = PayTypeEnum.getByPayType(product.getPayWay());
+        PayBaseService service = SpringUtils.getBean(payTypeEnum.getClazz());
+        return service.payCreate(product);
+    }
+
+    @Override
+    public String notify(HttpServletRequest request, HttpServletResponse response, Integer payType) throws IOException {
+        PayTypeEnum payTypeEnum = PayTypeEnum.getByPayType(payType);
+        PayBaseService service = SpringUtils.getBean(payTypeEnum.getClazz());
+        return service.notify(request, response);
+    }
+
+    @Override
+    public ResultMap synNotify(HttpServletRequest request, Integer payType) {
+        PayTypeEnum payTypeEnum = PayTypeEnum.getByPayType(payType);
+        PayBaseService service = SpringUtils.getBean(payTypeEnum.getClazz());
+        return service.synNotify(request);
+    }
+}

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

@@ -12,10 +12,10 @@ import com.zanxiang.common.utils.DateUtils;
 import com.zanxiang.common.utils.MD5Util;
 import com.zanxiang.common.utils.StringUtils;
 import com.zanxiang.mybatis.entity.*;
-import com.zanxiang.sdk.common.util.HttpUtil;
 import com.zanxiang.sdk.domain.dto.PlatformOrderDTO;
 import com.zanxiang.sdk.domain.mapper.OrderCompleteCreateMapper;
 import com.zanxiang.sdk.service.*;
+import com.zanxiang.sdk.util.HttpUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

+ 1 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/PlatformOrderServiceImpl.java

@@ -8,9 +8,9 @@ import com.zanxiang.common.utils.StringUtils;
 import com.zanxiang.common.utils.bean.BeanUtils;
 import com.zanxiang.mybatis.entity.Order;
 import com.zanxiang.mybatis.mapper.OrderMapper;
-import com.zanxiang.sdk.common.listener.OrderPaySuccessEvent;
 import com.zanxiang.sdk.domain.bo.PlatformOrderBO;
 import com.zanxiang.sdk.domain.dto.PlatformOrderDTO;
+import com.zanxiang.sdk.listener.OrderPaySuccessEvent;
 import com.zanxiang.sdk.service.PlatformOrderService;
 import lombok.extern.slf4j.Slf4j;
 import org.junit.jupiter.api.extension.ParameterResolutionException;

+ 2 - 2
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/SmsServiceImpl.java

@@ -7,8 +7,7 @@ import com.zanxiang.common.enums.SmsTypeEnum;
 import com.zanxiang.common.utils.StringUtils;
 import com.zanxiang.module.sms.pojo.SendResult;
 import com.zanxiang.module.sms.service.impl.AliSmsService;
-import com.zanxiang.sdk.common.constant.RedisKeyConstant;
-import com.zanxiang.sdk.common.util.RedisUtil;
+import com.zanxiang.sdk.constant.RedisKeyConstant;
 import com.zanxiang.sdk.domain.dto.UserDTO;
 import com.zanxiang.sdk.domain.params.SmsCheckParam;
 import com.zanxiang.sdk.domain.params.SmsSendParam;
@@ -16,6 +15,7 @@ import com.zanxiang.sdk.domain.params.UserData;
 import com.zanxiang.sdk.service.SmsService;
 import com.zanxiang.sdk.service.UserService;
 import com.zanxiang.sdk.service.UserTokenService;
+import com.zanxiang.sdk.util.RedisUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.logging.log4j.util.Strings;
 import org.springframework.beans.factory.annotation.Autowired;

+ 1 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/UserServiceImpl.java

@@ -14,7 +14,6 @@ import com.zanxiang.common.utils.bean.BeanUtils;
 import com.zanxiang.mybatis.entity.Game;
 import com.zanxiang.mybatis.entity.User;
 import com.zanxiang.mybatis.mapper.UserMapper;
-import com.zanxiang.sdk.common.util.RegisterUtil;
 import com.zanxiang.sdk.domain.dto.UserDTO;
 import com.zanxiang.sdk.domain.dto.UserTokenDTO;
 import com.zanxiang.sdk.domain.params.*;
@@ -23,6 +22,7 @@ import com.zanxiang.sdk.service.GameService;
 import com.zanxiang.sdk.service.SmsService;
 import com.zanxiang.sdk.service.UserService;
 import com.zanxiang.sdk.service.UserTokenService;
+import com.zanxiang.sdk.util.RegisterUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.logging.log4j.util.Strings;
 import org.springframework.beans.factory.annotation.Autowired;

+ 3 - 3
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/UserTokenServiceImpl.java

@@ -14,12 +14,12 @@ import com.zanxiang.common.utils.bean.BeanUtils;
 import com.zanxiang.mybatis.entity.GameKey;
 import com.zanxiang.mybatis.entity.UserToken;
 import com.zanxiang.mybatis.mapper.UserTokenMapper;
-import com.zanxiang.sdk.common.constant.RedisKeyConstant;
-import com.zanxiang.sdk.common.util.RedisUtil;
-import com.zanxiang.sdk.common.util.SignUtil;
+import com.zanxiang.sdk.constant.RedisKeyConstant;
 import com.zanxiang.sdk.domain.dto.UserTokenDTO;
 import com.zanxiang.sdk.service.GameKeyService;
 import com.zanxiang.sdk.service.UserTokenService;
+import com.zanxiang.sdk.util.RedisUtil;
+import com.zanxiang.sdk.util.SignUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.logging.log4j.util.Strings;

+ 15 - 22
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/OrderPayService.java

@@ -2,7 +2,6 @@ package com.zanxiang.sdk.service;
 
 import com.zanxiang.common.domain.ResultMap;
 import com.zanxiang.sdk.domain.bo.ProductPayParamBO;
-import org.jdom.JDOMException;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -15,36 +14,30 @@ import java.io.IOException;
 public interface OrderPayService {
 
     /**
-     * 支付调起
+     * 订单支付
      *
-     * @param product : 调起支付的参数
-     * @return : 返回支付参数
+     * @param product : 商品信息
+     * @return : 返回接过参数
      */
-    ResultMap create(ProductPayParamBO product);
+    ResultMap payCreate(ProductPayParamBO product);
 
     /**
      * 支付异步回调
      *
-     * @param request  : 回调请求
-     * @param response : 回调返回
-     * @return : 返回回调结果
-     * @throws IOException   : io异常
-     * @throws JDOMException : 异常
+     * @param request  : 请求参数
+     * @param response : 接过
+     * @param payType  : 支付类型
+     * @return : 返回接过
+     * @throws IOException : 异常
      */
-    String notify(HttpServletRequest request, HttpServletResponse response) throws IOException, JDOMException;
+    String notify(HttpServletRequest request, HttpServletResponse response, Integer payType) throws IOException;
 
     /**
-     * 支付同步回调
+     * 步回调
      *
-     * @param request : 回调参数
-     * @return : 返回回调结果
+     * @param request : 请求参数
+     * @param payType : 支付类型
+     * @return : 回调结果
      */
-    ResultMap synNotify(HttpServletRequest request);
-
-    /**
-     * 配置初始化
-     *
-     * @param obj : 配置参数
-     */
-    void configInit(String obj);
+    ResultMap synNotify(HttpServletRequest request, Integer payType);
 }

+ 2 - 2
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/auth/QqApiServiceImpl.java → game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/auth/QqApiServiceImpl.java

@@ -1,9 +1,9 @@
-package com.zanxiang.sdk.service.Impl.auth;
+package com.zanxiang.sdk.service.auth;
 
 import cn.hutool.http.HttpUtil;
 import com.zanxiang.common.exception.BaseException;
 import com.zanxiang.common.utils.URIUtil;
-import com.zanxiang.sdk.common.constant.ApiUrlConstant;
+import com.zanxiang.sdk.constant.ApiUrlConstant;
 import com.zanxiang.sdk.service.QqApiService;
 import com.zanxiangnet.module.util.JsonUtil;
 import lombok.extern.slf4j.Slf4j;

+ 2 - 2
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/auth/VxApiServiceImpl.java → game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/auth/VxApiServiceImpl.java

@@ -1,9 +1,9 @@
-package com.zanxiang.sdk.service.Impl.auth;
+package com.zanxiang.sdk.service.auth;
 
 import cn.hutool.http.HttpUtil;
 import com.zanxiang.common.exception.BaseException;
 import com.zanxiang.common.utils.URIUtil;
-import com.zanxiang.sdk.common.constant.ApiUrlConstant;
+import com.zanxiang.sdk.constant.ApiUrlConstant;
 import com.zanxiang.sdk.service.VxApiService;
 import com.zanxiangnet.module.util.JsonUtil;
 import lombok.extern.slf4j.Slf4j;

+ 5 - 8
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/pay/AliPayServiceImpl.java → game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/pay/AliPayService.java

@@ -1,4 +1,4 @@
-package com.zanxiang.sdk.service.Impl.pay;
+package com.zanxiang.sdk.service.pay;
 
 import com.alibaba.fastjson.JSONObject;
 import com.alipay.easysdk.factory.Factory;
@@ -13,12 +13,10 @@ import com.zanxiang.common.enums.HttpStatusEnum;
 import com.zanxiang.common.enums.OsEnum;
 import com.zanxiang.common.enums.ResEnum;
 import com.zanxiang.common.utils.JsonUtil;
-import com.zanxiang.sdk.common.util.HttpUtil;
 import com.zanxiang.sdk.domain.bo.ProductPayParamBO;
-import com.zanxiang.sdk.service.OrderPayService;
+import com.zanxiang.sdk.util.HttpUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
 
 import javax.servlet.http.HttpServletRequest;
@@ -35,10 +33,9 @@ import java.util.regex.Pattern;
  * @author xufeng
  * @date 2022/6/8 15:37
  */
-@Component
 @Slf4j
-@Service("AliPayService")
-public class AliPayServiceImpl extends PayService implements OrderPayService {
+@Service
+public class AliPayService extends PayBaseService {
 
     private Pattern pattern = Pattern.compile("action=\"(.*)\">", Pattern.CASE_INSENSITIVE);
 
@@ -72,7 +69,7 @@ public class AliPayServiceImpl extends PayService implements OrderPayService {
     @Override
     public ResultMap create(ProductPayParamBO product) {
         this.attach = product.getAttach();
-        configInit(getPayConfig(product.getGameId(), product.getPayWay(), product.getPayWay()));
+        this.configInit(getPayConfig(product.getGameId(), product.getPayWay(), product.getPayWay()));
         //回调地址中拼接游戏具体支付方式
         returnUrl += "?" + "gamePayWayId=" + attach.getGamePayWayId();
         notifyUrl += "?" + "gamePayWayId=" + attach.getGamePayWayId();

+ 6 - 18
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/pay/MiPayServiceImpl.java → game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/pay/MiPayService.java

@@ -1,4 +1,4 @@
-package com.zanxiang.sdk.service.Impl.pay;
+package com.zanxiang.sdk.service.pay;
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -12,28 +12,21 @@ import com.zanxiang.common.utils.JsonUtil;
 import com.zanxiang.common.utils.StringUtils;
 import com.zanxiang.common.utils.URIUtil;
 import com.zanxiang.mybatis.entity.GamePayWay;
-import com.zanxiang.sdk.common.constant.MiPayConstants;
-import com.zanxiang.sdk.common.util.RedisUtil;
-import com.zanxiang.sdk.common.util.WxPayUtil;
+import com.zanxiang.sdk.constant.MiPayConstants;
 import com.zanxiang.sdk.domain.bo.ProductPayParamBO;
 import com.zanxiang.sdk.domain.dto.PlatformOrderDTO;
 import com.zanxiang.sdk.service.GamePayWayService;
-import com.zanxiang.sdk.service.OrderPayService;
 import com.zanxiang.sdk.service.PlatformOrderService;
+import com.zanxiang.sdk.util.WxPayUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.logging.log4j.util.Strings;
-import org.jdom.JDOMException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
@@ -44,14 +37,9 @@ import java.util.Objects;
  * @author xufeng
  * @date 2022/7/14 16:33
  */
-@Component
 @Slf4j
-@Service("MiPayService")
-public class MiPayServiceImpl extends PayService implements OrderPayService {
-    protected final Logger logger = LoggerFactory.getLogger(MiPayServiceImpl.class);
-
-    @Autowired
-    private RedisUtil<String> redisUtil;
+@Service
+public class MiPayService extends PayBaseService {
 
     @Autowired
     private PlatformOrderService platformOrderService;
@@ -260,7 +248,7 @@ public class MiPayServiceImpl extends PayService implements OrderPayService {
 
 
     @Override
-    public String notify(HttpServletRequest request, HttpServletResponse response) throws IOException, JDOMException {
+    public String notify(HttpServletRequest request, HttpServletResponse response) {
         return null;
     }
 

+ 54 - 68
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/pay/PayService.java → game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/pay/PayBaseService.java

@@ -1,23 +1,17 @@
-package com.zanxiang.sdk.service.Impl.pay;
+package com.zanxiang.sdk.service.pay;
 
 import com.zanxiang.common.domain.ResultMap;
 import com.zanxiang.common.enums.OrderStateEnum;
-import com.zanxiang.common.enums.PayWayEnum;
-import com.zanxiang.common.exception.BaseException;
-import com.zanxiang.common.utils.SpringUtils;
 import com.zanxiang.mybatis.entity.GamePayWay;
 import com.zanxiang.sdk.domain.bo.PlatformOrderBO;
 import com.zanxiang.sdk.domain.bo.ProductPayAttachParamBO;
 import com.zanxiang.sdk.domain.bo.ProductPayParamBO;
 import com.zanxiang.sdk.domain.dto.PlatformOrderDTO;
 import com.zanxiang.sdk.service.GamePayWayService;
-import com.zanxiang.sdk.service.OrderPayService;
 import com.zanxiang.sdk.service.PlatformOrderService;
 import lombok.extern.slf4j.Slf4j;
-import org.jdom.JDOMException;
-import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
+import org.springframework.context.annotation.Lazy;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -26,18 +20,18 @@ import java.math.BigDecimal;
 import java.util.Date;
 
 /**
- * 支付调用
- *
- * @author xufeng
- * @date 2022/6/8 16:45
+ * @author : lingfeng
+ * @time : 2022-09-28
+ * @description : 支付超类
  */
 @Slf4j
-@Service
-public class PayService {
+public abstract class PayBaseService {
 
+    @Lazy
     @Autowired
     public PlatformOrderService platformOrderService;
 
+    @Lazy
     @Autowired
     public GamePayWayService gamePayWayService;
 
@@ -76,9 +70,7 @@ public class PayService {
             attachBO.setGamePayWayId(payInfo.getId());
             product.setAttach(attachBO);
             this.attach = attachBO;
-            String payCode = PayWayEnum.getCodeByNum(product.getPayWay());
-            OrderPayService device = getDevice(payCode);
-            ResultMap result = device.create(product);
+            ResultMap result = this.create(product);
             log.info("订单支付参数生成 ProductPayParamBO:{},result:{}", product, result);
             return result;
         } catch (RuntimeException e) {
@@ -89,43 +81,23 @@ public class PayService {
     }
 
     /**
-     * 支付异步回调
-     *
-     * @param request
-     * @param response
-     * @return
-     */
-    public String notify(HttpServletRequest request, HttpServletResponse response, Integer payType) throws IOException, JDOMException {
-        String payCode = PayWayEnum.getCodeByNum(payType);
-        OrderPayService device = getDevice(payCode);
-        return device.notify(request, response);
-    }
-
-    /**
-     * 同步消息通知
-     *
-     * @param request
-     * @return
-     */
-    public ResultMap synNotify(HttpServletRequest request, Integer payType) {
-        String payCode = PayWayEnum.getCodeByNum(payType);
-        OrderPayService device = getDevice(payCode);
-        return device.synNotify(request);
-    }
-
-    /**
-     * 获取支付驱动方式
+     * 支付成功逻辑
      *
-     * @param payCode
-     * @return
+     * @param orderNo         订单号
+     * @param realAmount      真实金额
+     * @param merchantOrderNo 订单流水号
+     * @param gamePayWayId    具体游戏支付方式id
+     * @return : 返回支付状态
      */
-    private static OrderPayService getDevice(String payCode) {
-        try {
-            log.error("获取支付驱动方式, payCode : {}", payCode);
-            return SpringUtils.getBean(payCode + "Service");
-        } catch (BeansException e) {
-            throw new BaseException("支付方式不存在");
-        }
+    public Boolean paySuccess(String orderNo, String realAmount, String merchantOrderNo, String gamePayWayId) {
+        PlatformOrderBO bo = new PlatformOrderBO();
+        bo.setId(orderNo);
+        bo.setRealAmount(new BigDecimal(realAmount));
+        bo.setMerchantOrderNo(merchantOrderNo);
+        bo.setStatus(OrderStateEnum.SUCCESS.getCode());
+        bo.setGamePaywayId(gamePayWayId);
+        bo.setPayTime(new Date());
+        return platformOrderService.pay(bo);
     }
 
     /**
@@ -150,23 +122,37 @@ public class PayService {
         return gamePayWayService.getInfo(gamePayWay).getPayConfig();
     }
 
+
     /**
-     * 支付成功逻辑
+     * 支付调起
      *
-     * @param orderNo         订单号
-     * @param realAmount      真实金额
-     * @param merchantOrderNo 订单流水号
-     * @param gamePayWayId    具体游戏支付方式id
-     * @return : 返回支付状态
+     * @param product : 调起支付的参数
+     * @return : 返回支付参数
      */
-    public Boolean paySuccess(String orderNo, String realAmount, String merchantOrderNo, String gamePayWayId) {
-        PlatformOrderBO bo = new PlatformOrderBO();
-        bo.setId(orderNo);
-        bo.setRealAmount(new BigDecimal(realAmount));
-        bo.setMerchantOrderNo(merchantOrderNo);
-        bo.setStatus(OrderStateEnum.SUCCESS.getCode());
-        bo.setGamePaywayId(gamePayWayId);
-        bo.setPayTime(new Date());
-        return platformOrderService.pay(bo);
-    }
+    public abstract ResultMap create(ProductPayParamBO product);
+
+    /**
+     * 支付异步回调
+     *
+     * @param request  : 回调请求
+     * @param response : 回调返回
+     * @return : 返回回调结果
+     * @throws IOException : io异常
+     */
+    public abstract String notify(HttpServletRequest request, HttpServletResponse response) throws IOException;
+
+    /**
+     * 支付同步回调
+     *
+     * @param request : 回调参数
+     * @return : 返回回调结果
+     */
+    public abstract ResultMap synNotify(HttpServletRequest request);
+
+    /**
+     * 配置初始化
+     *
+     * @param obj : 配置参数
+     */
+    public abstract void configInit(String obj);
 }

+ 12 - 16
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/pay/WxPayServiceImpl.java → game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/pay/WxPayService.java

@@ -1,4 +1,4 @@
-package com.zanxiang.sdk.service.Impl.pay;
+package com.zanxiang.sdk.service.pay;
 
 import com.zanxiang.common.constant.Constants;
 import com.zanxiang.common.domain.ResultMap;
@@ -6,19 +6,17 @@ import com.zanxiang.common.enums.ResEnum;
 import com.zanxiang.common.exception.BaseException;
 import com.zanxiang.common.utils.JsonUtil;
 import com.zanxiang.common.utils.URIUtil;
-import com.zanxiang.sdk.common.constant.WxPayConstants;
-import com.zanxiang.sdk.common.util.WxPayUtil;
-import com.zanxiang.sdk.common.util.XmlUtil;
+import com.zanxiang.sdk.constant.WxPayConstants;
 import com.zanxiang.sdk.domain.bo.ProductPayAttachParamBO;
 import com.zanxiang.sdk.domain.bo.ProductPayParamBO;
 import com.zanxiang.sdk.domain.bo.WxPayConfigBO;
-import com.zanxiang.sdk.service.OrderPayService;
+import com.zanxiang.sdk.util.WxPayUtil;
+import com.zanxiang.sdk.util.XmlUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.io.IOUtils;
 import org.apache.logging.log4j.util.Strings;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
 
@@ -36,10 +34,9 @@ import java.util.Objects;
  * @author xufeng
  * @date 2022/6/8 15:37
  */
-@Component
 @Slf4j
-@Service("WxPayService")
-public class WxPayServiceImpl extends PayService implements OrderPayService {
+@Service
+public class WxPayService extends PayBaseService {
 
     /**
      * pc二维码支付
@@ -132,7 +129,7 @@ public class WxPayServiceImpl extends PayService implements OrderPayService {
                 xmlMap.put("return_code", "SUCCESS");
                 xmlMap.put("return_msg", "OK");
             }
-        }else {
+        } else {
             log.info("支付失败,错误信息:{}", packageParams.get("err_code"));
             xmlMap.put("return_code", "FAIL");
             xmlMap.put("return_msg", "报文为空");
@@ -146,12 +143,6 @@ public class WxPayServiceImpl extends PayService implements OrderPayService {
         return ResEnum.SUCCESS.getMsg();
     }
 
-    @Override
-    public ResultMap synNotify(HttpServletRequest request) {
-        log.info("微信支付没有同步回调 request:{}", request);
-        return null;
-    }
-
     private ResultMap pcPay(ProductPayParamBO product) {
         //下单
         Map<String, String> successMap = this.unifiedOrder(product, WX_PAY_NATIVE, null);
@@ -283,4 +274,9 @@ public class WxPayServiceImpl extends PayService implements OrderPayService {
     public void configInit(String obj) {
         this.config = JsonUtil.toObj(obj, WxPayConfigBO.class);
     }
+
+    @Override
+    public ResultMap synNotify(HttpServletRequest request) {
+        return null;
+    }
 }

+ 1 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/common/util/DeviceCheckUtil.java → game-module/game-sdk/src/main/java/com/zanxiang/sdk/util/DeviceCheckUtil.java

@@ -1,4 +1,4 @@
-package com.zanxiang.sdk.common.util;
+package com.zanxiang.sdk.util;
 
 import com.zanxiang.common.enums.DeviceTypeEnum;
 import com.zanxiang.common.enums.OsEnum;

+ 1 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/common/util/HttpUtil.java → game-module/game-sdk/src/main/java/com/zanxiang/sdk/util/HttpUtil.java

@@ -1,4 +1,4 @@
-package com.zanxiang.sdk.common.util;
+package com.zanxiang.sdk.util;
 
 import com.zanxiang.common.utils.BaseHttpSSLSocketFactory;
 

+ 1 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/common/util/RedisUtil.java → game-module/game-sdk/src/main/java/com/zanxiang/sdk/util/RedisUtil.java

@@ -1,4 +1,4 @@
-package com.zanxiang.sdk.common.util;
+package com.zanxiang.sdk.util;
 
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;

+ 1 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/common/util/RegisterUtil.java → game-module/game-sdk/src/main/java/com/zanxiang/sdk/util/RegisterUtil.java

@@ -1,4 +1,4 @@
-package com.zanxiang.sdk.common.util;
+package com.zanxiang.sdk.util;
 
 import com.zanxiang.common.enums.HttpStatusEnum;
 import com.zanxiang.common.utils.MD5Util;

+ 1 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/common/util/SignUtil.java → game-module/game-sdk/src/main/java/com/zanxiang/sdk/util/SignUtil.java

@@ -1,4 +1,4 @@
-package com.zanxiang.sdk.common.util;
+package com.zanxiang.sdk.util;
 
 import javax.crypto.Mac;
 import javax.crypto.spec.SecretKeySpec;

+ 1 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/common/util/WxPayUtil.java → game-module/game-sdk/src/main/java/com/zanxiang/sdk/util/WxPayUtil.java

@@ -1,4 +1,4 @@
-package com.zanxiang.sdk.common.util;
+package com.zanxiang.sdk.util;
 
 import com.zanxiang.common.exception.BaseException;
 

+ 1 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/common/util/XmlUtil.java → game-module/game-sdk/src/main/java/com/zanxiang/sdk/util/XmlUtil.java

@@ -1,4 +1,4 @@
-package com.zanxiang.sdk.common.util;
+package com.zanxiang.sdk.util;
 
 import com.zanxiang.common.exception.BaseException;
 import org.w3c.dom.Node;

+ 1 - 1
game-module/game-sdk/src/main/resources/META-INF/spring.factories

@@ -1,4 +1,4 @@
 org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
   com.zanxiang.common.handler.GlobalExceptionHandler,\
   com.zanxiang.common.utils.SpringUtils,\
-  com.zanxiang.sdk.common.listener.OrderPaySuccessListener
+  com.zanxiang.sdk.listener.OrderPaySuccessListener

+ 0 - 80
game-module/game-sdk/src/test/java/com/zanxiang/sdk/OrderTests.java

@@ -1,80 +0,0 @@
-package com.zanxiang.sdk;
-
-import com.zanxiang.sdk.common.listener.OrderPaySuccessEvent;
-import com.zanxiang.sdk.domain.bo.PlatformOrderBO;
-import com.zanxiang.sdk.domain.dto.PlatformOrderDTO;
-import com.zanxiang.sdk.service.PlatformOrderService;
-import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.ApplicationContext;
-
-import java.math.BigDecimal;
-
-/**
- * 订单模块单元测试类
- *
- * @author xufeng
- * @date 2022-06-06 17:06
- */
-
-public class OrderTests extends SDKApplicationTests {
-
-    @Autowired
-    private PlatformOrderService platformOrderService;
-
-    @Autowired
-    private ApplicationContext applicationContext;
-
-    @Test
-    void getOrderInfo() {
-        PlatformOrderDTO info = platformOrderService.info("1", "1");
-        System.out.println(info);
-    }
-
-    @Test
-    void createOrder() {
-        PlatformOrderBO bo = new PlatformOrderBO();
-        bo.setCpId("1");
-        bo.setCpOrderId("cp00001");
-        bo.setUserId("1");
-        bo.setMgUserId("1");
-        bo.setGameId(1L);
-        bo.setAmount(new BigDecimal("0.01"));
-        bo.setProductId("cs0001");
-        bo.setProductCnt(1);
-        bo.setProductName("测试商品1");
-        String orderId = platformOrderService.create(bo);
-        System.out.println(orderId);
-    }
-
-    @Test
-    void payOrder() {
-        String orderId = "1534374084091142145";
-        PlatformOrderBO bo = new PlatformOrderBO();
-
-        bo.setId(orderId);
-        bo.setUserId("1");
-        bo.setRealAmount(new BigDecimal("0.01"));
-        bo.setMerchantOrderNo("alipay0000001");
-        bo.setGamePaywayId("1");
-        bo.setStatus(2);
-        Boolean result = platformOrderService.pay(bo);
-        System.out.println(result);
-    }
-
-    @Test
-    void cancelPay() {
-        String orderId = "1";
-        PlatformOrderBO bo = new PlatformOrderBO();
-        bo.setId(orderId);
-        Boolean result = platformOrderService.cancel(bo);
-        System.out.println(result);
-    }
-
-    @Test
-    void paySuccess() {
-        OrderPaySuccessEvent orderPaySuccessEvent = new OrderPaySuccessEvent(this, "1540258001251815425");
-        applicationContext.publishEvent(orderPaySuccessEvent);
-    }
-
-}

+ 0 - 23
game-module/game-sdk/src/test/java/com/zanxiang/sdk/SDKApplicationTests.java

@@ -1,23 +0,0 @@
-package com.zanxiang.sdk;
-
-import org.junit.jupiter.api.Test;
-import org.mybatis.spring.annotation.MapperScan;
-import org.springframework.boot.test.context.SpringBootTest;
-
-/**
- * 单元测试主体
- *
- * @author xufeng
- * @date 2022-06-06 17:06
- */
-
-@SpringBootTest(classes = SDKApplication.class)
-@MapperScan("com.zanxiang.mybatis.mapper")
-public class SDKApplicationTests {
-
-    @Test
-    void contextLoads() {
-
-    }
-
-}

+ 0 - 19
game-module/game-sdk/src/test/java/com/zanxiang/sdk/ThreadTest.java

@@ -1,19 +0,0 @@
-package com.zanxiang.sdk;
-
-/**
- * @author xufeng
- * @date 2022/7/17 00:13
- */
-public class ThreadTest implements Runnable {
-
-    private static ThreadLocal<String> localVal = new ThreadLocal<>();
-
-    @Override
-    public void run() {
-        for (int i = 0; i < 5; i++) {
-            System.out.println(i);
-        }
-    }
-
-
-}