Переглянути джерело

feat : 接口代码规范整理修改

bilingfeng 2 роки тому
батько
коміт
2ba9aa9c8d
24 змінених файлів з 211 додано та 182 видалено
  1. 3 2
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/AppletController.java
  2. 2 2
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/InitController.java
  3. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/LoginController.java
  4. 5 5
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/PayController.java
  5. 2 2
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/SmsController.java
  6. 4 3
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/UserController.java
  7. 4 2
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/IOrderPayService.java
  8. 3 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/IPayApplicationService.java
  9. 2 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/IRegisterLoginService.java
  10. 2 2
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/ISmsService.java
  11. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/IUserCardService.java
  12. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/IUserService.java
  13. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/IUserTokenService.java
  14. 19 17
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/LoginServiceImpl.java
  15. 3 2
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/OrderPayServiceImpl.java
  16. 4 4
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/PayApplicationServiceImpl.java
  17. 12 8
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/SmsServiceImpl.java
  18. 6 6
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/UserCardServiceImpl.java
  19. 15 15
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/UserServiceImpl.java
  20. 4 4
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/UserTokenServiceImpl.java
  21. 69 55
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/pay/AliPayService.java
  22. 17 21
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/pay/MiPayService.java
  23. 11 12
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/pay/PayBaseService.java
  24. 20 14
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/pay/WxPayService.java

+ 3 - 2
game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/AppletController.java

@@ -1,7 +1,7 @@
 package com.zanxiang.sdk.controller;
 
-import com.zanxiang.common.domain.ResultMap;
 import com.zanxiang.module.util.JsonUtil;
+import com.zanxiang.module.util.pojo.ResultVO;
 import com.zanxiang.sdk.annotation.UnSignCheck;
 import com.zanxiang.sdk.domain.params.MiniAppPayParam;
 import com.zanxiang.sdk.domain.vo.GameAppletVO;
@@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.util.Map;
 
 /**
  * @author : lingfeng
@@ -60,7 +61,7 @@ public class AppletController {
     @UnSignCheck
     @ApiOperation(value = "商城小程序支付")
     @PostMapping(value = "/pay/applet/create")
-    public ResultMap create(@Validated @RequestBody MiniAppPayParam payParam, HttpServletRequest request) {
+    public ResultVO<Map> create(@Validated @RequestBody MiniAppPayParam payParam, HttpServletRequest request) {
         log.error("接收到支付请求, payParam : {}", JsonUtil.toString(payParam));
         return payApplicationService.appletStorePay(payParam, request);
     }

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

@@ -1,6 +1,6 @@
 package com.zanxiang.sdk.controller;
 
-import com.zanxiang.common.domain.ResultVO;
+import com.zanxiang.module.util.pojo.ResultVO;
 import com.zanxiang.sdk.annotation.UnSignCheck;
 import com.zanxiang.sdk.domain.params.UserData;
 import com.zanxiang.sdk.domain.vo.GameAppletVO;
@@ -32,6 +32,6 @@ public class InitController {
     @PostMapping("/applet")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameAppletVO.class)})
     public ResultVO<GameAppletVO> gameAppletInit(UserData userData) {
-        return new ResultVO<>(gameAppletService.gameAppletInit(userData));
+        return ResultVO.ok(gameAppletService.gameAppletInit(userData));
     }
 }

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

@@ -1,6 +1,6 @@
 package com.zanxiang.sdk.controller;
 
-import com.zanxiang.common.domain.ResultVO;
+import com.zanxiang.module.util.pojo.ResultVO;
 import com.zanxiang.sdk.annotation.UnSignCheck;
 import com.zanxiang.sdk.annotation.ValidLogin;
 import com.zanxiang.sdk.domain.params.LoginMobileParam;

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

@@ -1,9 +1,8 @@
 package com.zanxiang.sdk.controller;
 
-import com.zanxiang.common.domain.ResultMap;
-import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.common.enums.PayWayEnum;
 import com.zanxiang.module.util.JsonUtil;
+import com.zanxiang.module.util.pojo.ResultVO;
 import com.zanxiang.sdk.annotation.UnSignCheck;
 import com.zanxiang.sdk.annotation.ValidLogin;
 import com.zanxiang.sdk.domain.params.ProductPayParam;
@@ -20,6 +19,7 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.util.Map;
 
 /**
  * 支付公共入口
@@ -51,9 +51,9 @@ public class PayController {
 
     @ApiOperation(value = "支付参数生成")
     @PostMapping(value = "/create")
-    public ResultMap create(@Validated @RequestBody ProductPayParam product, @ValidLogin UserData userData) {
+    public ResultVO<Map> create(@Validated @RequestBody ProductPayParam product, @ValidLogin UserData userData) {
         log.error("接收到支付请求, product : {}", JsonUtil.toString(product));
-        return orderPayService.payCreate(product, userData);
+        return ResultVO.ok(orderPayService.payCreate(product, userData));
     }
 
     @UnSignCheck
@@ -73,7 +73,7 @@ public class PayController {
     @UnSignCheck
     @ApiOperation(value = "支付宝支付同步回调(二维码、H5、网站)")
     @RequestMapping(value = "/alipaySynNotify", method = RequestMethod.GET)
-    public ResultMap synNotify(HttpServletRequest request) {
+    public ResultVO synNotify(HttpServletRequest request) {
         return orderPayService.synNotify(request, PayWayEnum.ALI_PAY.getPayWayId());
     }
 

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

@@ -1,6 +1,6 @@
 package com.zanxiang.sdk.controller;
 
-import com.zanxiang.common.domain.ResultVO;
+import com.zanxiang.module.util.pojo.ResultVO;
 import com.zanxiang.sdk.domain.params.SmsCheckParam;
 import com.zanxiang.sdk.domain.params.SmsSendParam;
 import com.zanxiang.sdk.domain.params.UserData;
@@ -40,7 +40,7 @@ public class SmsController {
     @ApiOperation(value = "验证码校验")
     @PostMapping("/check/msg")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
-    public ResultVO<String> smsCheck(@Validated @RequestBody SmsCheckParam smsCheckParam) {
+    public ResultVO<Boolean> smsCheck(@Validated @RequestBody SmsCheckParam smsCheckParam) {
         return smsService.smsCheck(smsCheckParam);
     }
 }

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

@@ -1,6 +1,7 @@
 package com.zanxiang.sdk.controller;
 
-import com.zanxiang.common.domain.ResultVO;
+
+import com.zanxiang.module.util.pojo.ResultVO;
 import com.zanxiang.sdk.annotation.ValidLogin;
 import com.zanxiang.sdk.domain.params.*;
 import com.zanxiang.sdk.domain.vo.CustomerVO;
@@ -92,8 +93,8 @@ public class UserController {
 
     @ApiOperation(value = "上传角色信息")
     @PostMapping("/update/game/role")
-    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
-    public ResultVO updateUserGameRole(@Validated @RequestBody GameUserRoleUpdateParam param, @ValidLogin UserData userData) {
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
+    public ResultVO<Boolean> updateUserGameRole(@Validated @RequestBody GameUserRoleUpdateParam param, @ValidLogin UserData userData) {
         return ResultVO.ok(gameUserRoleService.updateUserGameRole(param, userData));
     }
 

+ 4 - 2
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/IOrderPayService.java

@@ -1,6 +1,7 @@
 package com.zanxiang.sdk.service;
 
 import com.zanxiang.common.domain.ResultMap;
+import com.zanxiang.module.util.pojo.ResultVO;
 import com.zanxiang.sdk.domain.params.ProductPayParam;
 import com.zanxiang.sdk.domain.params.UserData;
 import com.zanxiang.sdk.domain.vo.PayParamVO;
@@ -8,6 +9,7 @@ import com.zanxiang.sdk.domain.vo.PayParamVO;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.util.Map;
 
 /**
  * @author xufeng
@@ -40,7 +42,7 @@ public interface IOrderPayService {
      * @param userData : 用户信息
      * @return {@link ResultMap}
      */
-    ResultMap payCreate(ProductPayParam product, UserData userData);
+    Map<String, Object> payCreate(ProductPayParam product, UserData userData);
 
     /**
      * 支付异步回调
@@ -60,7 +62,7 @@ public interface IOrderPayService {
      * @param payType : 支付类型
      * @return {@link ResultMap}
      */
-    ResultMap synNotify(HttpServletRequest request, Integer payType);
+    ResultVO synNotify(HttpServletRequest request, Integer payType);
 
     /**
      * 订单支付结果查询

+ 3 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/IPayApplicationService.java

@@ -2,6 +2,7 @@ package com.zanxiang.sdk.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zanxiang.common.domain.ResultMap;
+import com.zanxiang.module.util.pojo.ResultVO;
 import com.zanxiang.mybatis.entity.PayApplication;
 import com.zanxiang.sdk.domain.dto.PayApplicationDTO;
 import com.zanxiang.sdk.domain.params.MiniAppPayParam;
@@ -9,6 +10,7 @@ import com.zanxiang.sdk.domain.params.MiniAppPayParam;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.util.Map;
 
 /**
  * 支付商城小程序
@@ -41,7 +43,7 @@ public interface IPayApplicationService extends IService<PayApplication> {
      * @param request  请求
      * @return {@link ResultMap}
      */
-    ResultMap appletStorePay(MiniAppPayParam payParam, HttpServletRequest request);
+    ResultVO<Map> appletStorePay(MiniAppPayParam payParam, HttpServletRequest request);
 
     /**
      * applet通知

+ 2 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/IRegisterLoginService.java

@@ -1,6 +1,7 @@
 package com.zanxiang.sdk.service;
 
-import com.zanxiang.common.domain.ResultVO;
+
+import com.zanxiang.module.util.pojo.ResultVO;
 import com.zanxiang.sdk.domain.params.*;
 import com.zanxiang.sdk.domain.vo.UserLoginVO;
 

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

@@ -1,7 +1,7 @@
 package com.zanxiang.sdk.service;
 
-import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.common.enums.HttpStatusEnum;
+import com.zanxiang.module.util.pojo.ResultVO;
 import com.zanxiang.sdk.domain.params.SmsCheckParam;
 import com.zanxiang.sdk.domain.params.SmsSendParam;
 import com.zanxiang.sdk.domain.params.UserData;
@@ -28,7 +28,7 @@ public interface ISmsService {
      * @param smsCheckParam : 参数
      * @return {@link ResultVO}<{@link String}>
      */
-    ResultVO<String> smsCheck(SmsCheckParam smsCheckParam);
+    ResultVO<Boolean> smsCheck(SmsCheckParam smsCheckParam);
 
     /**
      * 校验短信验证码

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

@@ -1,7 +1,7 @@
 package com.zanxiang.sdk.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.zanxiang.common.domain.ResultVO;
+import com.zanxiang.module.util.pojo.ResultVO;
 import com.zanxiang.mybatis.entity.UserCard;
 import com.zanxiang.sdk.domain.params.UserCardUpdateParam;
 import com.zanxiang.sdk.domain.params.UserData;

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

@@ -1,7 +1,7 @@
 package com.zanxiang.sdk.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.zanxiang.common.domain.ResultVO;
+import com.zanxiang.module.util.pojo.ResultVO;
 import com.zanxiang.mybatis.entity.User;
 import com.zanxiang.sdk.domain.dto.UserDTO;
 import com.zanxiang.sdk.domain.params.BindPhoneParam;

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

@@ -1,7 +1,7 @@
 package com.zanxiang.sdk.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.zanxiang.common.domain.ResultVO;
+import com.zanxiang.module.util.pojo.ResultVO;
 import com.zanxiang.mybatis.entity.UserToken;
 import com.zanxiang.sdk.domain.dto.UserTokenDTO;
 import com.zanxiang.sdk.domain.params.UserData;

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

@@ -1,7 +1,6 @@
 package com.zanxiang.sdk.service.Impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.common.enums.BanStatusEnum;
 import com.zanxiang.common.enums.HttpStatusEnum;
 import com.zanxiang.common.enums.SmsTypeEnum;
@@ -9,6 +8,7 @@ import com.zanxiang.common.exception.BaseException;
 import com.zanxiang.common.text.UUID;
 import com.zanxiang.common.utils.URIUtil;
 import com.zanxiang.module.util.JsonUtil;
+import com.zanxiang.module.util.pojo.ResultVO;
 import com.zanxiang.mybatis.entity.GameExt;
 import com.zanxiang.mybatis.entity.User;
 import com.zanxiang.mybatis.entity.UserCard;
@@ -121,7 +121,7 @@ public class LoginServiceImpl implements IRegisterLoginService {
     public ResultVO<UserLoginVO> loginWxCode(LoginVxCodeParam param, UserData userData) {
         //验证登录ip是否封禁
         if (ipBanService.checkIpBan(userData.getIp())) {
-            return new ResultVO<>(HttpStatusEnum.IP_HALT);
+            return ResultVO.fail(HttpStatusEnum.IP_HALT.getMsg());
         }
         //查询微信小游戏信息
         GameAppletDTO gameAppletDTO = gameAppletService.getByGameId(userData.getGameId());
@@ -134,10 +134,10 @@ public class LoginServiceImpl implements IRegisterLoginService {
         if (user != null) {
             //判断账号是否停用
             if (Objects.equals(BanStatusEnum.BAN_STATUS.getStatus(), user.getStatus())) {
-                return new ResultVO<>(HttpStatusEnum.ACCOUNT_HALT);
+                return ResultVO.fail(HttpStatusEnum.ACCOUNT_HALT.getMsg());
             }
             //返回登录信息
-            return new ResultVO<>(this.createUserLoginVO(user, userData));
+            return ResultVO.ok(this.createUserLoginVO(user, userData));
         }
         //渠道标识
         Long agentId;
@@ -181,7 +181,7 @@ public class LoginServiceImpl implements IRegisterLoginService {
             userShareService.save(userShare);
         }
         //返回登录信息
-        return new ResultVO<>(this.createUserLoginVO(user, userData));
+        return ResultVO.ok(this.createUserLoginVO(user, userData));
     }
 
     @Override
@@ -189,7 +189,7 @@ public class LoginServiceImpl implements IRegisterLoginService {
     public ResultVO<UserLoginVO> loginPassword(LoginPasswordParam param, UserData userData) {
         //验证登录ip是否封禁
         if (ipBanService.checkIpBan(userData.getIp())) {
-            return new ResultVO<>(HttpStatusEnum.IP_HALT);
+            return ResultVO.fail(HttpStatusEnum.IP_HALT.getMsg());
         }
         String username = param.getUsername();
         String password = param.getPassword();
@@ -208,21 +208,21 @@ public class LoginServiceImpl implements IRegisterLoginService {
             }
             //用户信息不存在
             if (user == null) {
-                return new ResultVO<>(HttpStatusEnum.USERNAME_OR_PASSWORD_ERR);
+                return ResultVO.fail(HttpStatusEnum.USERNAME_OR_PASSWORD_ERR.getMsg());
             }
             //判断账号是否停用
             if (Objects.equals(BanStatusEnum.BAN_STATUS.getStatus(), user.getStatus())) {
-                return new ResultVO<>(HttpStatusEnum.ACCOUNT_HALT);
+                return ResultVO.fail(HttpStatusEnum.ACCOUNT_HALT.getMsg());
             }
             //验证密码
             if (!Objects.equals(RegisterUtil.cmfPassword(password), user.getPassword())) {
-                return new ResultVO<>(HttpStatusEnum.USERNAME_OR_PASSWORD_ERR);
+                return ResultVO.fail(HttpStatusEnum.USERNAME_OR_PASSWORD_ERR.getMsg());
             }
         } else {
             //注册, 用户名密码校验
             HttpStatusEnum checkRegisterEnum = this.checkRegister(username, password);
             if (!Objects.equals(checkRegisterEnum, HttpStatusEnum.SUCCESS)) {
-                return new ResultVO<>(checkRegisterEnum);
+                return ResultVO.fail(checkRegisterEnum.getMsg());
             }
             //创建用户信息
             user = User.builder()
@@ -247,7 +247,8 @@ public class LoginServiceImpl implements IRegisterLoginService {
             callBackService.userCallBack(user);
         }
         //返回登录信息
-        return new ResultVO<>(this.createUserLoginVO(user, userData));
+        return ResultVO.ok(this.createUserLoginVO(user, userData));
+
     }
 
     @Override
@@ -255,14 +256,14 @@ public class LoginServiceImpl implements IRegisterLoginService {
     public ResultVO<UserLoginVO> loginMobile(LoginMobileParam param, UserData userData) {
         //验证ip是否封禁
         if (ipBanService.checkIpBan(userData.getIp())) {
-            return new ResultVO<>(HttpStatusEnum.IP_HALT);
+            return ResultVO.fail(HttpStatusEnum.IP_HALT.getMsg());
         }
         String mobile = param.getMobile();
         //验证码校验
         HttpStatusEnum httpStatusEnum = smsService.smsCheck(SmsTypeEnum.SMS_REG.getType(), mobile, param.getCode());
         //验证不通过, 返回
         if (!Objects.equals(httpStatusEnum, HttpStatusEnum.SUCCESS)) {
-            return new ResultVO<>(httpStatusEnum);
+            return ResultVO.fail(httpStatusEnum.getMsg());
         }
         //获取用户信息
         User user = userService.getOne(new LambdaQueryWrapper<User>()
@@ -292,11 +293,12 @@ public class LoginServiceImpl implements IRegisterLoginService {
         } else {
             //判断账号是否停用
             if (Objects.equals(BanStatusEnum.BAN_STATUS.getStatus(), user.getStatus())) {
-                return new ResultVO<>(HttpStatusEnum.ACCOUNT_HALT);
+                return ResultVO.fail(HttpStatusEnum.ACCOUNT_HALT.getMsg());
             }
         }
         //返回登录信息
-        return new ResultVO<>(this.createUserLoginVO(user, userData));
+        return ResultVO.ok(this.createUserLoginVO(user, userData));
+
     }
 
     private UserLoginVO createUserLoginVO(User user, UserData userData) {
@@ -400,7 +402,7 @@ public class LoginServiceImpl implements IRegisterLoginService {
         //移出state
         redisUtil.removeOfSet(RedisKeyConstant.AUTH_STATE_KEY, state);
         //构造返回
-        return new ResultVO<>(new UserLoginVO());
+        return ResultVO.ok(new UserLoginVO());
     }
 
     @Override
@@ -444,7 +446,7 @@ public class LoginServiceImpl implements IRegisterLoginService {
         //移出state
         redisUtil.removeOfSet(RedisKeyConstant.AUTH_STATE_KEY, state);
         //构造返回
-        return new ResultVO<>(new UserLoginVO());
+        return ResultVO.ok(new UserLoginVO());
     }
 
     private User getUserByUserOauth(Integer deviceType, Map<String, String> userInfoMap, UserOauthDTO userOauthDTO) {

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

@@ -7,6 +7,7 @@ import com.zanxiang.common.enums.PayDeviceEnum;
 import com.zanxiang.common.exception.BaseException;
 import com.zanxiang.common.utils.SpringUtils;
 import com.zanxiang.module.util.JsonUtil;
+import com.zanxiang.module.util.pojo.ResultVO;
 import com.zanxiang.module.web.util.IpUtil;
 import com.zanxiang.mybatis.entity.Order;
 import com.zanxiang.mybatis.entity.OrderPayParam;
@@ -101,7 +102,7 @@ public class OrderPayServiceImpl implements IOrderPayService {
     }
 
     @Override
-    public ResultMap payCreate(ProductPayParam product, UserData userData) {
+    public Map<String, Object> payCreate(ProductPayParam product, UserData userData) {
         //创建订单
         orderService.createOrder(product, userData);
         //判断游戏类型
@@ -144,7 +145,7 @@ public class OrderPayServiceImpl implements IOrderPayService {
     }
 
     @Override
-    public ResultMap synNotify(HttpServletRequest request, Integer payType) {
+    public ResultVO synNotify(HttpServletRequest request, Integer payType) {
         PayTypeEnum payTypeEnum = PayTypeEnum.getByPayType(payType);
         PayBaseService service = SpringUtils.getBean(payTypeEnum.getClazz());
         return service.synNotify(request);

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

@@ -3,11 +3,11 @@ 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.constant.Constants;
-import com.zanxiang.common.domain.ResultMap;
 import com.zanxiang.common.enums.HttpStatusEnum;
 import com.zanxiang.common.exception.BaseException;
 import com.zanxiang.module.util.JsonUtil;
 import com.zanxiang.module.util.bean.BeanUtil;
+import com.zanxiang.module.util.pojo.ResultVO;
 import com.zanxiang.module.web.util.IpUtil;
 import com.zanxiang.mybatis.entity.PayApplication;
 import com.zanxiang.mybatis.entity.PayMerchant;
@@ -93,7 +93,7 @@ public class PayApplicationServiceImpl extends ServiceImpl<PayApplicationMapper,
     }
 
     @Override
-    public ResultMap appletStorePay(MiniAppPayParam payParam, HttpServletRequest request) {
+    public ResultVO<Map> appletStorePay(MiniAppPayParam payParam, HttpServletRequest request) {
         //查询商城小程序信息
         PayApplication payApplication = super.getOne(new LambdaQueryWrapper<PayApplication>()
                 .eq(PayApplication::getAppId, payParam.getAppId()));
@@ -130,10 +130,10 @@ public class PayApplicationServiceImpl extends ServiceImpl<PayApplicationMapper,
             //构造支付参数
             Map<Object, Object> payParamMap = this.payParamMap(orderId, payApplication.getAppId(), payConfigMap.get("apiKey"), successMap);
             //返回
-            return ResultMap.ok(payParamMap);
+            return ResultVO.ok(payParamMap);
         } catch (Exception e) {
             log.error("微信小程序支付通信异常, 订单号:{}, e : {}", orderId, e.getMessage());
-            return ResultMap.error();
+            return ResultVO.fail("微信小程序支付通信异常");
         }
     }
 

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

@@ -1,11 +1,11 @@
 package com.zanxiang.sdk.service.Impl;
 
-import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.common.enums.ExpireTimeEnum;
 import com.zanxiang.common.enums.HttpStatusEnum;
 import com.zanxiang.common.enums.SmsTypeEnum;
 import com.zanxiang.module.sms.pojo.SendResult;
 import com.zanxiang.module.sms.service.impl.AliSmsService;
+import com.zanxiang.module.util.pojo.ResultVO;
 import com.zanxiang.sdk.constant.RedisKeyConstant;
 import com.zanxiang.sdk.domain.dto.UserDTO;
 import com.zanxiang.sdk.domain.params.SmsCheckParam;
@@ -53,22 +53,22 @@ public class SmsServiceImpl implements ISmsService {
         if (Objects.equals(type, SmsTypeEnum.SMS_FIND_PWD.getType())) {
             //手机号对应用户信息不存在
             if (userDTO == null) {
-                return new ResultVO<>(HttpStatusEnum.USERNAME_NOT_EXISTS);
+                return ResultVO.fail(HttpStatusEnum.USERNAME_NOT_EXISTS.getMsg());
             }
         }
         //验证手机号
         if (!RegexUtil.checkPhone(mobile)) {
-            return new ResultVO<>(HttpStatusEnum.PHONE_ERROR);
+            return ResultVO.fail(HttpStatusEnum.PHONE_ERROR.getMsg());
         }
         //验证类型
         SmsTypeEnum smsTypeEnum = SmsTypeEnum.getByType(type);
         if (smsTypeEnum == null) {
-            return new ResultVO<>(HttpStatusEnum.CODE_TYPE_ERROR);
+            return ResultVO.fail(HttpStatusEnum.CODE_TYPE_ERROR.getMsg());
         }
         //判断是否已经发送
         String cache = redisUtil.getCache(this.smsKey(mobile, type));
         if (Strings.isNotBlank(cache)) {
-            return new ResultVO<>(HttpStatusEnum.PHONE_HAS_SEND);
+            return ResultVO.fail(HttpStatusEnum.PHONE_HAS_SEND.getMsg());
         }
         //发送验证码
         String randomCode = this.randomCode();
@@ -77,15 +77,19 @@ public class SmsServiceImpl implements ISmsService {
         if (sendResult.isSuccess()) {
             redisUtil.setCache(this.smsKey(mobile, type), randomCode, ExpireTimeEnum.FIVE_MIN.getTime());
         }
-        return new ResultVO<>(HttpStatusEnum.SUCCESS, Boolean.TRUE);
+        return ResultVO.ok(Boolean.TRUE);
     }
 
     @Override
-    public ResultVO<String> smsCheck(SmsCheckParam smsCheckParam) {
+    public ResultVO<Boolean> smsCheck(SmsCheckParam smsCheckParam) {
         //校验短信验证码
         HttpStatusEnum httpStatusEnum = this.smsCheck(smsCheckParam.getType(), smsCheckParam.getMobile(), smsCheckParam.getCode());
+        //验证失败
+        if (!Objects.equals(httpStatusEnum, HttpStatusEnum.SUCCESS)) {
+            return ResultVO.fail(httpStatusEnum.getMsg());
+        }
         //返回
-        return new ResultVO<>(httpStatusEnum);
+        return ResultVO.ok(Boolean.TRUE);
     }
 
     @Override

+ 6 - 6
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/UserCardServiceImpl.java

@@ -3,10 +3,10 @@ package com.zanxiang.sdk.service.Impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.common.enums.HttpStatusEnum;
 import com.zanxiang.common.exception.BaseException;
 import com.zanxiang.module.util.JsonUtil;
+import com.zanxiang.module.util.pojo.ResultVO;
 import com.zanxiang.mybatis.entity.User;
 import com.zanxiang.mybatis.entity.UserCard;
 import com.zanxiang.mybatis.mapper.UserCardMapper;
@@ -61,7 +61,7 @@ public class UserCardServiceImpl extends ServiceImpl<UserCardMapper, UserCard> i
                 .eq(UserCard::getUserId, userData.getUserId()));
         //已经实名认证, 不可重复认证
         if (userCard != null) {
-            return new ResultVO<>(HttpStatusEnum.REPEAT_OPERATE);
+            return ResultVO.fail(HttpStatusEnum.REPEAT_OPERATE.getMsg());
         }
         //查询玩家信息
         User user = userService.getById(userData.getUserId());
@@ -70,18 +70,18 @@ public class UserCardServiceImpl extends ServiceImpl<UserCardMapper, UserCard> i
         boolean nameCheck = this.cardNameCheck(cardName);
         //名字输入不合法
         if (!nameCheck) {
-            return new ResultVO<>(HttpStatusEnum.CARD_NAME_ERROR);
+            return ResultVO.fail(HttpStatusEnum.CARD_NAME_ERROR.getMsg());
         }
         boolean idCheck = this.cardIdCheck(cardId);
         //身份证号输入不合法
         if (!idCheck) {
-            return new ResultVO<>(HttpStatusEnum.CARD_ID_ERROR);
+            return ResultVO.fail(HttpStatusEnum.CARD_ID_ERROR.getMsg());
         }
         //阿里实名认证
         boolean authenticationCheck = this.authenticationCheck(cardName, cardId);
         //实名认证失败
         if (!authenticationCheck) {
-            return new ResultVO<>(HttpStatusEnum.AUTHENTICATION_FAIL);
+            return ResultVO.fail(HttpStatusEnum.AUTHENTICATION_FAIL.getMsg());
         }
         //新建记录
         this.save(UserCard.builder()
@@ -101,7 +101,7 @@ public class UserCardServiceImpl extends ServiceImpl<UserCardMapper, UserCard> i
         userService.update(new LambdaUpdateWrapper<User>()
                 .set(User::getAuthentication, this.getAge(cardId) >= 18 ? 1 : 2)
                 .eq(User::getId, userData.getUserId()));
-        return new ResultVO<>(HttpStatusEnum.SUCCESS, Boolean.TRUE);
+        return ResultVO.ok(Boolean.TRUE);
     }
 
     private boolean cardNameCheck(String cardName) {

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

@@ -3,12 +3,12 @@ package com.zanxiang.sdk.service.Impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.common.enums.HttpStatusEnum;
 import com.zanxiang.common.enums.SmsTypeEnum;
 import com.zanxiang.common.exception.BaseException;
 import com.zanxiang.common.utils.bean.BeanUtils;
 import com.zanxiang.module.util.JsonUtil;
+import com.zanxiang.module.util.pojo.ResultVO;
 import com.zanxiang.mybatis.entity.GameExt;
 import com.zanxiang.mybatis.entity.User;
 import com.zanxiang.mybatis.entity.UserCard;
@@ -66,27 +66,27 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
                     .eq(User::getGameId, userData.getGameId())
                     .eq(User::getUsername, userName));
             if (user == null) {
-                return new ResultVO<>(HttpStatusEnum.USERNAME_NOT_EXISTS);
+                return ResultVO.fail(HttpStatusEnum.USERNAME_NOT_EXISTS.getMsg());
             }
             if (Strings.isBlank(user.getMobile())) {
-                return new ResultVO<>(HttpStatusEnum.ACCOUNT_NOT_BIND_PHONE);
+                return ResultVO.fail(HttpStatusEnum.ACCOUNT_NOT_BIND_PHONE.getMsg());
             }
             if (!Objects.equals(mobile, user.getMobile())) {
-                return new ResultVO<>(HttpStatusEnum.PHONE_NUM_ERROR);
+                return ResultVO.fail(HttpStatusEnum.PHONE_NUM_ERROR.getMsg());
             }
         } else {
             user = super.getOne(new LambdaQueryWrapper<User>()
                     .eq(User::getGameId, userData.getGameId())
                     .eq(User::getMobile, mobile));
             if (user == null) {
-                return new ResultVO<>(HttpStatusEnum.PHONE_NOT_REG);
+                return ResultVO.fail(HttpStatusEnum.PHONE_NOT_REG.getMsg());
             }
         }
         //验证码校验
         HttpStatusEnum httpStatusEnum = smsService.smsCheck(SmsTypeEnum.SMS_FIND_PWD.getType(), mobile, code);
         //验证不通过, 返回
         if (!Objects.equals(httpStatusEnum, HttpStatusEnum.SUCCESS)) {
-            return new ResultVO<>(httpStatusEnum);
+            return ResultVO.fail(httpStatusEnum.getMsg());
         }
         //更新用户密码
         super.update(new LambdaUpdateWrapper<User>()
@@ -95,7 +95,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
                 .eq(User::getId, user.getId())
         );
         //返回修改成功
-        return new ResultVO<>(HttpStatusEnum.SUCCESS, Boolean.TRUE);
+        return ResultVO.ok(Boolean.TRUE);
     }
 
     @Override
@@ -109,17 +109,17 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
         if (Strings.isNotBlank(user.getPassword())) {
             //旧密码不可为空
             if (Strings.isBlank(oldPassword)) {
-                return new ResultVO<>(HttpStatusEnum.OLD_PASSWORD_EMPTY);
+                return ResultVO.fail(HttpStatusEnum.OLD_PASSWORD_EMPTY.getMsg());
             }
             //旧密码错误
             if (!Objects.equals(RegisterUtil.cmfPassword(oldPassword), user.getPassword())) {
-                return new ResultVO<>(HttpStatusEnum.OLD_PASSWORD_ERROR);
+                return ResultVO.fail(HttpStatusEnum.OLD_PASSWORD_ERROR.getMsg());
             }
         }
         //新密码校验
         HttpStatusEnum checkPasswordEnum = RegisterUtil.checkPassword(newPassword);
         if (!Objects.equals(checkPasswordEnum, HttpStatusEnum.SUCCESS)) {
-            return new ResultVO<>(checkPasswordEnum);
+            return ResultVO.fail(checkPasswordEnum.getMsg());
         }
         //修改用户密码
         super.update(new LambdaUpdateWrapper<User>()
@@ -128,7 +128,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
                 .eq(User::getId, user.getId())
         );
         //返回修改成功
-        return new ResultVO<>(HttpStatusEnum.SUCCESS, Boolean.TRUE);
+        return ResultVO.ok(Boolean.TRUE);
     }
 
     @Override
@@ -143,18 +143,18 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
         }
         //判断手机号是否已经绑定
         if (Strings.isNotBlank(user.getMobile()) && Objects.equals(user.getMobile(), mobile)) {
-            return new ResultVO<>(HttpStatusEnum.PHONE_IS_BIND);
+            return ResultVO.fail(HttpStatusEnum.PHONE_IS_BIND.getMsg());
         }
         //校验手机号是否已经绑定了其他账号
         int count = super.count(new LambdaQueryWrapper<User>().eq(User::getMobile, mobile));
         if (count > 0) {
-            return new ResultVO<>(HttpStatusEnum.PHONE_BIND_TOO_MUCH);
+            return ResultVO.fail(HttpStatusEnum.PHONE_BIND_TOO_MUCH.getMsg());
         }
         //验证码校验
         HttpStatusEnum httpStatusEnum = smsService.smsCheck(SmsTypeEnum.SMS_BIND.getType(), mobile, code);
         //验证不通过, 返回
         if (!Objects.equals(httpStatusEnum, HttpStatusEnum.SUCCESS)) {
-            return new ResultVO<>(httpStatusEnum);
+            return ResultVO.fail(httpStatusEnum.getMsg());
         }
         //修改用户用户手机号
         super.update(new LambdaUpdateWrapper<User>()
@@ -163,7 +163,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
                 .eq(User::getId, userData.getUserId())
         );
         //返回修改成功
-        return new ResultVO<>(HttpStatusEnum.SUCCESS, Boolean.TRUE);
+        return ResultVO.ok(Boolean.TRUE);
     }
 
     @Override

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

@@ -3,7 +3,6 @@ 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.constant.Constants;
-import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.common.enums.BanStatusEnum;
 import com.zanxiang.common.enums.ExpireTimeEnum;
 import com.zanxiang.common.exception.BaseException;
@@ -11,6 +10,7 @@ import com.zanxiang.common.text.UUID;
 import com.zanxiang.common.utils.DateUtils;
 import com.zanxiang.common.utils.MD5Util;
 import com.zanxiang.common.utils.bean.BeanUtils;
+import com.zanxiang.module.util.pojo.ResultVO;
 import com.zanxiang.mybatis.entity.GameExt;
 import com.zanxiang.mybatis.entity.User;
 import com.zanxiang.mybatis.entity.UserToken;
@@ -59,7 +59,7 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
         //查询登录签名
         GameExt gameExt = gameExtService.getByGameAppId(appId);
         if (gameExt == null || Strings.isBlank(gameExt.getLoginKey())) {
-            return ResultVO.ok(TokenCheckEnum.PARAM_LACK.getCode(), TokenCheckEnum.PARAM_LACK.getMsg());
+            return ResultVO.fail(TokenCheckEnum.PARAM_LACK.getMsg());
         }
         //查询token是否存在
         UserToken userToken = super.getOne(new LambdaQueryWrapper<UserToken>()
@@ -67,7 +67,7 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
                 .eq(UserToken::getUserId, userId));
         //判断token是否存在, 并且没有过期
         if (userToken == null || userToken.getExpireTime() < DateUtils.localDateTimeToSecond(LocalDateTime.now())) {
-            return ResultVO.ok(TokenCheckEnum.SIGN_ERROR.getCode(), TokenCheckEnum.SIGN_ERROR.getMsg());
+            return ResultVO.fail(TokenCheckEnum.SIGN_ERROR.getMsg());
         }
         //登录密钥
         String loginKey = gameExt.getLoginKey();
@@ -86,7 +86,7 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
         }
         //签名错误
         if (!Objects.equals(mySign, sign)) {
-            return ResultVO.ok(TokenCheckEnum.CHECK_FAIL.getCode(), TokenCheckEnum.CHECK_FAIL.getMsg());
+            return ResultVO.fail(TokenCheckEnum.CHECK_FAIL.getMsg());
         }
         return ResultVO.ok(userId);
     }

+ 69 - 55
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/pay/AliPayService.java

@@ -8,10 +8,11 @@ import com.alipay.easysdk.payment.app.models.AlipayTradeAppPayResponse;
 import com.alipay.easysdk.payment.page.models.AlipayTradePagePayResponse;
 import com.alipay.easysdk.payment.wap.models.AlipayTradeWapPayResponse;
 import com.zanxiang.common.constant.Constants;
-import com.zanxiang.common.domain.ResultMap;
 import com.zanxiang.common.enums.HttpStatusEnum;
 import com.zanxiang.common.enums.OsEnum;
+import com.zanxiang.common.exception.BaseException;
 import com.zanxiang.module.util.JsonUtil;
+import com.zanxiang.module.util.pojo.ResultVO;
 import com.zanxiang.sdk.domain.bo.ProductPayParamBO;
 import com.zanxiang.sdk.domain.dto.GamePayWayDTO;
 import com.zanxiang.sdk.domain.dto.PayApplicationDTO;
@@ -83,7 +84,7 @@ public class AliPayService extends PayBaseService {
     private IPayApplicationService payApplicationService;
 
     @Override
-    public ResultMap create(ProductPayParamBO product) {
+    public Map<String, Object> create(ProductPayParamBO product) {
         this.attach = product.getAttach();
         this.configInit(getPayConfig(product.getGameId(), product.getPayWay(), product.getPayDevice()));
         //回调地址中拼接游戏具体支付方式
@@ -134,7 +135,7 @@ public class AliPayService extends PayBaseService {
     }
 
     @Override
-    public ResultMap synNotify(HttpServletRequest request) {
+    public ResultVO synNotify(HttpServletRequest request) {
         try {
             //获取支付宝GET过来反馈信息
             Map<String, String> params = new HashMap<>();
@@ -163,48 +164,51 @@ public class AliPayService extends PayBaseService {
                 log.info("订单号" + orderNo + "验证签名结果[成功].");
                 if (paySuccess(orderNo, params.get("total_amount"), params.get("trade_no"), gamePayWayId)) {
                     log.info("支付宝同步回调成功 request:{},orderNo:{},商户订单号为:{}", request, orderNo, params.get("trade_no"));
-                    return ResultMap.ok();
+                    return ResultVO.ok();
                 }
             }
             log.error("订单号" + orderNo + "验证签名结果[失败].");
-            return ResultMap.error(HttpStatusEnum.FAIL.getMsg());
+            return ResultVO.fail(HttpStatusEnum.FAIL.getMsg());
         } catch (Exception e) {
             e.printStackTrace();
             //处理异常信息
-            return ResultMap.error(e.getMessage());
+            return ResultVO.fail(e.getMessage());
         }
     }
 
-    private ResultMap h5Pay(ProductPayParamBO product) {
+    private Map<String, Object> h5Pay(ProductPayParamBO product) {
+        AlipayTradeWapPayResponse response;
         try {
-            AlipayTradeWapPayResponse response = Factory.Payment
-                    .Wap().asyncNotify(notifyUrl)
+            response = Factory.Payment.Wap().asyncNotify(notifyUrl)
                     .pay(product.getSubject(), product.getOutTradeNo(), product.getTotalFee(), "", this.returnUrl);
-            //请求失败
-            if (!ResponseChecker.success(response)) {
-                log.error("支付宝h5支付失败,product : {}, response : {}", JsonUtil.toString(product), JsonUtil.toString(response));
-                return ResultMap.error(HttpStatusEnum.FAIL.getMsg());
-            }
-            HashMap<String, String> result = new HashMap<>();
-            String body = response.getBody();
-            result.put("fromData", body);
-            //安卓与ios系统时才单独获取app支付地址
-            if (!product.getDeviceSystem().contains(OsEnum.SYSTEM_ANDROID.getOs())
-                    && !product.getDeviceSystem().contains(OsEnum.SYSTEM_IOS.getOs())) {
-                return ResultMap.ok(product.getPayDevice(), result, product.getOutTradeNo());
-            }
-            Matcher matcher = pattern.matcher(body);
-            //解析短链
-            String deepLink = this.getDeepLink(matcher, body, product.getDeviceSystem());
-            //返回结果
-            return ResultMap.ok(product.getPayDevice(), deepLink, product.getOutTradeNo());
         } catch (Exception e) {
-            log.error("支付宝h5支付失败,meg : {}", e.getMessage());
-            return ResultMap.error(HttpStatusEnum.FAIL.getMsg());
+            log.error("支付宝H5支付异常, product : {}, e:{}", JsonUtil.toString(product), e.getMessage());
+            throw new BaseException("支付宝H5支付异常");
+        }
+        //请求失败
+        if (!ResponseChecker.success(response)) {
+            log.error("支付宝H5支付失败, product : {}, response : {}", JsonUtil.toString(product), JsonUtil.toString(response));
+            throw new BaseException("支付宝H5支付失败");
         }
+        //结果数据
+        String body = response.getBody();
+        Map<String, Object> payParamMap = new HashMap<>(3);
+        payParamMap.put("deviceType", product.getPayDevice());
+        payParamMap.put("orderId", product.getOutTradeNo());
+        //非手机系统, 不走deepLink
+        if (!product.getDeviceSystem().contains(OsEnum.SYSTEM_ANDROID.getOs())
+                && !product.getDeviceSystem().contains(OsEnum.SYSTEM_IOS.getOs())) {
+            payParamMap.put("data", body);
+            return payParamMap;
+        }
+        //解析短链deepLink
+        String deepLink = this.getH5DeepLink(body, product.getDeviceSystem());
+        payParamMap.put("data", deepLink);
+        return payParamMap;
     }
 
-    private String getDeepLink(Matcher matcher, String body, String deviceSystem) throws Exception {
+    private String getH5DeepLink(String body, String deviceSystem) {
+        Matcher matcher = pattern.matcher(body);
         if (!matcher.find()) {
             return null;
         }
@@ -229,44 +233,54 @@ public class AliPayService extends PayBaseService {
         JSONObject jsonObject = JSONObject.parseObject(pageData);
         Object invokeAliPayData = jsonObject.get("invokeAlipayData");
         String dataString = JSONObject.parseObject(invokeAliPayData.toString()).get("dataString").toString();
-        deepLinkAndroid += URLEncoder.encode(dataString, Constants.UTF8);
-        deepLinkIos += URLEncoder.encode(pageData, Constants.UTF8);
+        try {
+            deepLinkAndroid += URLEncoder.encode(dataString, Constants.UTF8);
+            deepLinkIos += URLEncoder.encode(pageData, Constants.UTF8);
+        } catch (Exception e) {
+            log.error("deepLink短链encode异常, e : {}", e.getMessage());
+            throw new BaseException("deepLink短链encode异常");
+        }
         return Objects.equals(deviceSystem, OsEnum.SYSTEM_ANDROID.getOs()) ? deepLinkAndroid : deepLinkIos;
     }
 
-    private ResultMap pcPay(ProductPayParamBO product) {
+    private Map<String, Object> pcPay(ProductPayParamBO product) {
+        AlipayTradePagePayResponse response;
         try {
-            log.info("pc端支付生成,请求参数 bo:{}", product);
-            AlipayTradePagePayResponse response = Factory.Payment
-                    .Page().asyncNotify(notifyUrl)
+            response = Factory.Payment.Page().asyncNotify(notifyUrl)
                     .pay(product.getSubject(), product.getOutTradeNo(), product.getTotalFee(), this.returnUrl);
-            log.info("pc端支付生成,result:{}", response);
-            if (ResponseChecker.success(response)) {
-                return ResultMap.ok(product.getPayDevice(), response.getBody(), product.getOutTradeNo());
-            } else {
-                return ResultMap.error(HttpStatusEnum.FAIL.getMsg());
-            }
         } catch (Exception e) {
-            log.error("pc端支付生成异常 e:{}", e.getMessage());
-            return ResultMap.error(HttpStatusEnum.FAIL.getMsg());
+            log.error("支付宝pc端支付异常, product : {}, e:{}", JsonUtil.toString(product), e.getMessage());
+            throw new BaseException("支付宝pc端支付异常");
+        }
+        if (!ResponseChecker.success(response)) {
+            log.error("支付宝pc端支付失败, product : {}, response : {}", JsonUtil.toString(product), JsonUtil.toString(response));
+            throw new BaseException("支付宝pc端支付失败");
         }
+        Map<String, Object> payParamMap = new HashMap<>(3);
+        payParamMap.put("deviceType", product.getPayDevice());
+        payParamMap.put("data", response.getBody());
+        payParamMap.put("orderId", product.getOutTradeNo());
+        return payParamMap;
     }
 
-    private ResultMap appPay(ProductPayParamBO product) {
+    private Map<String, Object> appPay(ProductPayParamBO product) {
+        AlipayTradeAppPayResponse response;
         try {
-            AlipayTradeAppPayResponse response = Factory.Payment
-                    .App().asyncNotify(notifyUrl)
+            response = Factory.Payment.App().asyncNotify(notifyUrl)
                     .pay(product.getSubject(), product.getOutTradeNo(), product.getTotalFee());
-            if (ResponseChecker.success(response)) {
-                return ResultMap.ok(product.getPayDevice(), response.getBody(), product.getOutTradeNo());
-            } else {
-                return ResultMap.error(HttpStatusEnum.FAIL.getMsg());
-            }
         } catch (Exception e) {
-            e.printStackTrace();
-            log.error("app端支付生成异常 e:{}", e.getMessage());
-            return ResultMap.error(HttpStatusEnum.FAIL.getMsg());
+            log.error("支付宝app端支付异常, product : {}, e:{}", JsonUtil.toString(product), e.getMessage());
+            throw new BaseException("支付宝app端支付异常");
+        }
+        if (!ResponseChecker.success(response)) {
+            log.error("支付宝app端支付失败, product : {}, response : {}", JsonUtil.toString(product), JsonUtil.toString(response));
+            throw new BaseException("支付宝app端支付失败");
         }
+        Map<String, Object> payParamMap = new HashMap<>(3);
+        payParamMap.put("deviceType", product.getPayDevice());
+        payParamMap.put("data", response.getBody());
+        payParamMap.put("orderId", product.getOutTradeNo());
+        return payParamMap;
     }
 
     private void configInit(GamePayWayDTO gamePayWayDTO) {

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

@@ -1,11 +1,11 @@
 package com.zanxiang.sdk.service.pay;
 
-import com.zanxiang.common.domain.ResultMap;
 import com.zanxiang.common.enums.HttpStatusEnum;
 import com.zanxiang.common.exception.BaseException;
 import com.zanxiang.common.exception.CustomException;
 import com.zanxiang.common.utils.StringUtils;
 import com.zanxiang.module.util.JsonUtil;
+import com.zanxiang.module.util.pojo.ResultVO;
 import com.zanxiang.sdk.constant.MiPayConstants;
 import com.zanxiang.sdk.constant.RedisKeyConstant;
 import com.zanxiang.sdk.domain.bo.ProductPayParamBO;
@@ -64,7 +64,7 @@ public class MiPayService extends PayBaseService {
     private MiPayConfigDTO config;
 
     @Override
-    public ResultMap create(ProductPayParamBO product) {
+    public Map<String, Object> create(ProductPayParamBO product) {
         //查询订单
         PlatformOrderDTO orderInfo = orderService.info(product.getOutTradeNo());
         if (Objects.isNull(orderInfo)) {
@@ -80,26 +80,26 @@ public class MiPayService extends PayBaseService {
         //获取米大师钱包余额
         Long balance = this.midasGetBalance(openId);
         //返回参数
-        Map<String, String> result = new HashMap<>();
+        Map<String, Object> payParamMap = new HashMap<>(9);
         //余额充足, 直接扣除
         if (balance >= orderInfo.getAmount().longValue()) {
             String billNo = this.midasPay(openId, orderInfo);
-            result.put("status", "0");
-            result.put("billNo", billNo);
+            payParamMap.put("status", "0");
+            payParamMap.put("billNo", billNo);
         }
         //余额不足, 返回订单id, 前端调充值接口, 充值完后再继续支付
         if (balance < orderInfo.getAmount().longValue()) {
-            result.put("currencyType", "CNY");
-            result.put("mode", "game");
-            result.put("zoneId", "1");
-            result.put("offerId", config.getAppId());
-            result.put("env", String.valueOf(this.isSand));
-            result.put("buyQuantity", orderInfo.getAmount().toString());
-            result.put("status", "1");
-            result.put("balance", String.valueOf(balance));
-            result.put("orderId", product.getOutTradeNo());
+            payParamMap.put("currencyType", "CNY");
+            payParamMap.put("mode", "game");
+            payParamMap.put("zoneId", "1");
+            payParamMap.put("offerId", config.getAppId());
+            payParamMap.put("env", String.valueOf(this.isSand));
+            payParamMap.put("buyQuantity", orderInfo.getAmount().toString());
+            payParamMap.put("status", "1");
+            payParamMap.put("balance", String.valueOf(balance));
+            payParamMap.put("orderId", product.getOutTradeNo());
         }
-        return ResultMap.ok(result);
+        return payParamMap;
     }
 
     private Long midasGetBalance(String openId) {
@@ -172,13 +172,9 @@ public class MiPayService extends PayBaseService {
         String appKey = this.isSand == 1 ? config.getAppKeyDev() : config.getAppKey();
         //接口凭证
         String accessToken = getAccessToken(config.getAppId(), appKey);
-        if (StringUtils.isEmpty(accessToken)) {
-            throw new CustomException(HttpStatusEnum.ACCESS_TOKEN_CREATE_ERROR);
-        }
         //接口url
         URI uri = UriComponentsBuilder.fromHttpUrl(MiPayConstants.MI_PAY_HOST + url)
-                .queryParam("access_token", accessToken)
-                .build().toUri();
+                .queryParam("access_token", accessToken).build().toUri();
         String result;
         try {
             result = restTemplate.postForObject(uri, paramMap, String.class);
@@ -229,7 +225,7 @@ public class MiPayService extends PayBaseService {
     }
 
     @Override
-    public ResultMap synNotify(HttpServletRequest request) {
+    public ResultVO synNotify(HttpServletRequest request) {
         throw new BaseException("米大师支付不存在同步回调");
     }
 }

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

@@ -1,9 +1,10 @@
 package com.zanxiang.sdk.service.pay;
 
 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.module.util.JsonUtil;
+import com.zanxiang.module.util.pojo.ResultVO;
 import com.zanxiang.mybatis.entity.Order;
 import com.zanxiang.sdk.domain.bo.PlatformOrderBO;
 import com.zanxiang.sdk.domain.bo.ProductPayAttachParamBO;
@@ -21,6 +22,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.util.Map;
 
 /**
  * @author : lingfeng
@@ -48,12 +50,12 @@ public abstract class PayBaseService {
      *
      * @param product : 支付参数
      */
-    public ResultMap payCreate(ProductPayParamBO product) {
+    public Map<String, Object> payCreate(ProductPayParamBO product) {
         try {
             //获取订单信息
             PlatformOrderDTO platformOrderDTO = orderService.info(product.getOutTradeNo());
             if (platformOrderDTO == null) {
-                throw new RuntimeException("订单不存在");
+                throw new BaseException("参数错误, 订单信息不存在");
             }
             Long gameId = platformOrderDTO.getGameId();
             //根据订单中游戏id,获取游戏的支付方式
@@ -70,13 +72,10 @@ public abstract class PayBaseService {
             attachBO.setGamePayWayId(gamePayWayDTO.getId());
             product.setAttach(attachBO);
             this.attach = attachBO;
-            ResultMap result = this.create(product);
-            log.info("订单支付参数生成 ProductPayParamBO:{},result:{}", product, result);
-            return result;
-        } catch (RuntimeException e) {
-            e.printStackTrace();
-            log.info("订单支付参数生成异常 ProductPayParamBO:{},e:{}", product, e);
-            return ResultMap.error(e.getMessage());
+            return this.create(product);
+        } catch (Exception e) {
+            log.info("订单支付参数生成异常, ProductPayParamBO : {} , e: {}", JsonUtil.toString(product), e);
+            throw new BaseException("订单支付参数生成异常");
         }
     }
 
@@ -125,7 +124,7 @@ public abstract class PayBaseService {
      * @param product : 调起支付的参数
      * @return : 返回支付参数
      */
-    public abstract ResultMap create(ProductPayParamBO product);
+    public abstract Map<String, Object> create(ProductPayParamBO product);
 
     /**
      * 支付异步回调
@@ -143,5 +142,5 @@ public abstract class PayBaseService {
      * @param request : 回调参数
      * @return : 返回回调结果
      */
-    public abstract ResultMap synNotify(HttpServletRequest request);
+    public abstract ResultVO synNotify(HttpServletRequest request);
 }

+ 20 - 14
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/pay/WxPayService.java

@@ -2,12 +2,12 @@ package com.zanxiang.sdk.service.pay;
 
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.zanxiang.common.constant.Constants;
-import com.zanxiang.common.domain.ResultMap;
 import com.zanxiang.common.enums.DeleteEnum;
 import com.zanxiang.common.enums.HttpStatusEnum;
 import com.zanxiang.common.enums.PayDeviceEnum;
 import com.zanxiang.common.exception.BaseException;
 import com.zanxiang.module.util.JsonUtil;
+import com.zanxiang.module.util.pojo.ResultVO;
 import com.zanxiang.mybatis.entity.Order;
 import com.zanxiang.mybatis.entity.OrderPayParam;
 import com.zanxiang.sdk.constant.WxPayConstants;
@@ -100,14 +100,14 @@ public class WxPayService extends PayBaseService {
     private IOrderService orderService;
 
     @Override
-    public ResultMap create(ProductPayParamBO product) {
+    public Map<String, Object> create(ProductPayParamBO product) {
         this.attach = product.getAttach();
         //初始化配置
         this.configInit(getPayConfig(product.getGameId(), product.getPayWay(), product.getPayDevice()));
         //支付方式
         int payDevice = product.getPayDevice().intValue();
         //不同的支付途径
-        ResultMap resultMap;
+        Map<String, Object> resultMap;
         switch (payDevice) {
             case 1:
                 //PC
@@ -183,7 +183,7 @@ public class WxPayService extends PayBaseService {
         return HttpStatusEnum.SUCCESS.getMsg();
     }
 
-    private ResultMap pcPay(ProductPayParamBO product) {
+    private Map<String, Object> pcPay(ProductPayParamBO product) {
         //下单
         Map<String, String> successMap = this.unifiedOrder(product, WX_PAY_NATIVE, null);
         //获取二维码链接
@@ -193,11 +193,14 @@ public class WxPayService extends PayBaseService {
             log.error("微信PC支付链接urlCode为空, product:{}", JsonUtil.toString(product));
             throw new BaseException("微信PC支付链接urlCode为空");
         }
-        //返回结果
-        return ResultMap.ok(product.getPayDevice(), urlCode, product.getOutTradeNo());
+        Map<String, Object> payParamMap = new HashMap<>(3);
+        payParamMap.put("deviceType", product.getPayDevice());
+        payParamMap.put("data", urlCode);
+        payParamMap.put("orderId", product.getOutTradeNo());
+        return payParamMap;
     }
 
-    private ResultMap h5Pay(ProductPayParamBO product) {
+    private Map<String, Object> h5Pay(ProductPayParamBO product) {
         //下单
         Map<String, String> successMap = this.unifiedOrder(product, WX_PAY_MWEB, null);
         //获取h5支付链接
@@ -214,11 +217,14 @@ public class WxPayService extends PayBaseService {
             log.error("微信h5支付urlCode转deepLink异常, urlCode:{}", urlCode);
             throw new BaseException("微信h5支付urlCode转deepLink异常");
         }
-        //返回结果
-        return ResultMap.ok(product.getPayDevice(), deepLink, product.getOutTradeNo());
+        Map<String, Object> payParamMap = new HashMap<>(3);
+        payParamMap.put("deviceType", product.getPayDevice());
+        payParamMap.put("data", deepLink);
+        payParamMap.put("orderId", product.getOutTradeNo());
+        return payParamMap;
     }
 
-    private ResultMap miniAppPay(ProductPayParamBO product) {
+    private Map<String, Object> miniAppPay(ProductPayParamBO product) {
         try {
             //获取用户openId
             String openId = wxApiService.getOpenIdByType(product.getCode(), config.getAppId(), config.getAppSecret(), config.getAppletType());
@@ -240,7 +246,7 @@ public class WxPayService extends PayBaseService {
             // 再次签名sign,这个签名用于小程序端调用支付方法
             String sign = WxPayUtil.generateSignature(map, config.getApiKey());
             //组装支付参数
-            Map<Object, Object> payParamMap = new HashMap<>(5);
+            Map<String, Object> payParamMap = new HashMap<>(5);
             payParamMap.put("paySign", sign);
             payParamMap.put("signType", config.getSignType());
             payParamMap.put("timeStamp", createTime);
@@ -257,10 +263,10 @@ public class WxPayService extends PayBaseService {
                     .updateTime(LocalDateTime.now())
                     .build());
             //返回支付参数
-            return ResultMap.ok(payParamMap);
+            return payParamMap;
         } catch (Exception e) {
             log.error("微信小程序支付通信异常, 订单号:{}, e : {}", product.getOutTradeNo(), e.getMessage());
-            return ResultMap.error();
+            throw new BaseException("JSAPI支付通信异常");
         }
     }
 
@@ -332,7 +338,7 @@ public class WxPayService extends PayBaseService {
     }
 
     @Override
-    public ResultMap synNotify(HttpServletRequest request) {
+    public ResultVO synNotify(HttpServletRequest request) {
         throw new BaseException("微信支付不存在同步回调!");
     }
 }