Explorar o código

feat : 提交接口登录凭证验证接口

bilingfeng %!s(int64=2) %!d(string=hai) anos
pai
achega
961a69396e
Modificáronse 38 ficheiros con 491 adicións e 328 borrados
  1. 20 12
      game-module/game-common/src/main/java/com/zanxiang/common/domain/ResultVO.java
  2. 17 17
      game-module/game-common/src/main/java/com/zanxiang/common/handler/GlobalExceptionHandler.java
  3. 11 11
      game-module/game-manage/src/main/java/com/zanxiang/manage/controller/BanController.java
  4. 3 3
      game-module/game-manage/src/main/java/com/zanxiang/manage/controller/ChannelController.java
  5. 9 9
      game-module/game-manage/src/main/java/com/zanxiang/manage/controller/CpController.java
  6. 7 7
      game-module/game-manage/src/main/java/com/zanxiang/manage/controller/GameAppletController.java
  7. 9 9
      game-module/game-manage/src/main/java/com/zanxiang/manage/controller/GameCategoryController.java
  8. 25 25
      game-module/game-manage/src/main/java/com/zanxiang/manage/controller/GameController.java
  9. 11 11
      game-module/game-manage/src/main/java/com/zanxiang/manage/controller/GamePayWayController.java
  10. 5 5
      game-module/game-manage/src/main/java/com/zanxiang/manage/controller/GamePictureController.java
  11. 5 5
      game-module/game-manage/src/main/java/com/zanxiang/manage/controller/GameStrategyController.java
  12. 3 3
      game-module/game-manage/src/main/java/com/zanxiang/manage/controller/LogPayCpController.java
  13. 3 3
      game-module/game-manage/src/main/java/com/zanxiang/manage/controller/OrderCompleteController.java
  14. 5 5
      game-module/game-manage/src/main/java/com/zanxiang/manage/controller/OssController.java
  15. 9 9
      game-module/game-manage/src/main/java/com/zanxiang/manage/controller/PayApplicationController.java
  16. 5 5
      game-module/game-manage/src/main/java/com/zanxiang/manage/controller/PayBoxController.java
  17. 8 8
      game-module/game-manage/src/main/java/com/zanxiang/manage/controller/PayMerchantController.java
  18. 4 4
      game-module/game-manage/src/main/java/com/zanxiang/manage/controller/PayWayController.java
  19. 27 27
      game-module/game-manage/src/main/java/com/zanxiang/manage/controller/UserController.java
  20. 4 1
      game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/entity/GameKey.java
  21. 5 0
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/common/constant/RedisKeyConstant.java
  22. 60 0
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/common/util/SignUtil.java
  23. 3 46
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/common/util/WxPayUtil.java
  24. 11 11
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/RegisterLoginController.java
  25. 3 3
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/SmsController.java
  26. 23 22
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/UserController.java
  27. 20 0
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/GameKeyService.java
  28. 55 0
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/GameKeyServiceImpl.java
  29. 23 23
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/RegisterLoginServiceImpl.java
  30. 12 12
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/SmsServiceImpl.java
  31. 5 5
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/UserOauthServiceImpl.java
  32. 10 11
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/UserServiceImpl.java
  33. 44 0
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/UserTokenServiceImpl.java
  34. 7 7
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/RegisterLoginService.java
  35. 3 3
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/SmsService.java
  36. 2 2
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/UserOauthService.java
  37. 3 4
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/UserService.java
  38. 12 0
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/UserTokenService.java

+ 20 - 12
game-module/game-common/src/main/java/com/zanxiang/common/domain/ResultVo.java → game-module/game-common/src/main/java/com/zanxiang/common/domain/ResultVO.java

@@ -16,7 +16,7 @@ import java.util.Objects;
 @Data
 @NoArgsConstructor
 @AllArgsConstructor
-public class ResultVo<T> implements Serializable {
+public class ResultVO<T> implements Serializable {
 
     /**
      * 序列化
@@ -26,7 +26,7 @@ public class ResultVo<T> implements Serializable {
     /**
      * 错误码
      */
-    private int code;
+    private Integer code;
 
     /**
      * 错误信息
@@ -43,7 +43,7 @@ public class ResultVo<T> implements Serializable {
      *
      * @param httpStatusEnum : http响应消息枚举
      */
-    public ResultVo(HttpStatusEnum httpStatusEnum) {
+    public ResultVO(HttpStatusEnum httpStatusEnum) {
         this.code = httpStatusEnum.getCode();
         this.msg = httpStatusEnum.getMsg();
     }
@@ -53,7 +53,7 @@ public class ResultVo<T> implements Serializable {
      *
      * @param data : 返回的内容
      */
-    public ResultVo(T data) {
+    public ResultVO(T data) {
         this.code = HttpStatusEnum.SUCCESS.getCode();
         this.msg = HttpStatusEnum.SUCCESS.getMsg();
         this.data = data;
@@ -65,7 +65,7 @@ public class ResultVo<T> implements Serializable {
      * @param httpStatusEnum : http响应消息枚举
      * @param data           : 返回的内容
      */
-    public ResultVo(HttpStatusEnum httpStatusEnum, T data) {
+    public ResultVO(HttpStatusEnum httpStatusEnum, T data) {
         this.code = httpStatusEnum.getCode();
         this.msg = httpStatusEnum.getMsg();
         this.data = data;
@@ -77,7 +77,7 @@ public class ResultVo<T> implements Serializable {
      * @param code : 错误码
      * @param msg  : 错误消息
      */
-    public ResultVo(int code, String msg) {
+    public ResultVO(int code, String msg) {
         this.code = code;
         this.msg = msg;
     }
@@ -89,15 +89,23 @@ public class ResultVo<T> implements Serializable {
         return Objects.equals(HttpStatusEnum.SUCCESS.getCode(), this.code);
     }
 
-    public static <T> ResultVo<T> fail(String msg) {
-        return new ResultVo<>(HttpStatusEnum.FAIL.getCode(), msg);
+    public static <T> ResultVO<T> fail(String msg) {
+        return new ResultVO<>(HttpStatusEnum.FAIL.getCode(), msg);
     }
 
-    public static <T> ResultVo<T> ok() {
-        return new ResultVo<>(HttpStatusEnum.SUCCESS.getCode(), HttpStatusEnum.SUCCESS.getMsg());
+    public static <T> ResultVO<T> ok(int code, String msg, T data) {
+        return new ResultVO<>(code, msg, data);
     }
 
-    public static <T> ResultVo<T> ok(T data) {
-        return new ResultVo<>(HttpStatusEnum.SUCCESS.getCode(), HttpStatusEnum.SUCCESS.getMsg(), data);
+    public static <T> ResultVO<T> ok(int code, String msg) {
+        return new ResultVO<>(code, msg);
+    }
+
+    public static <T> ResultVO<T> ok() {
+        return new ResultVO<>(HttpStatusEnum.SUCCESS.getCode(), HttpStatusEnum.SUCCESS.getMsg());
+    }
+
+    public static <T> ResultVO<T> ok(T data) {
+        return new ResultVO<>(HttpStatusEnum.SUCCESS.getCode(), HttpStatusEnum.SUCCESS.getMsg(), data);
     }
 }

+ 17 - 17
game-module/game-common/src/main/java/com/zanxiang/common/handler/GlobalExceptionHandler.java

@@ -1,6 +1,6 @@
 package com.zanxiang.common.handler;
 
-import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.common.enums.HttpStatusEnum;
 import com.zanxiang.common.exception.BaseException;
 import com.zanxiang.common.exception.CustomException;
@@ -27,46 +27,46 @@ public class GlobalExceptionHandler {
      * 基础异常
      */
     @ExceptionHandler(BaseException.class)
-    public ResultVo<?> baseException(BaseException e) {
-        return ResultVo.fail(e.getMessage());
+    public ResultVO<?> baseException(BaseException e) {
+        return ResultVO.fail(e.getMessage());
     }
 
     /**
      * 业务异常
      */
     @ExceptionHandler(CustomException.class)
-    public ResultVo<?> businessException(CustomException e) {
+    public ResultVO<?> businessException(CustomException e) {
         if (StringUtils.isNull(e.getCode())) {
-            return ResultVo.fail(e.getMessage());
+            return ResultVO.fail(e.getMessage());
         }
-        return new ResultVo<>(e.getCode(), e.getMessage());
+        return new ResultVO<>(e.getCode(), e.getMessage());
     }
 
     /**
      * 参数异常
      */
     @ExceptionHandler(ParamNullException.class)
-    public ResultVo<?> paramNullException(CustomException e) {
+    public ResultVO<?> paramNullException(CustomException e) {
         if (StringUtils.isNull(e.getCode())) {
-            return new ResultVo<>(HttpStatusEnum.PARAM_IS_NULL.getCode(), HttpStatusEnum.PARAM_IS_NULL.getMsg() + e.getMessage());
+            return new ResultVO<>(HttpStatusEnum.PARAM_IS_NULL.getCode(), HttpStatusEnum.PARAM_IS_NULL.getMsg() + e.getMessage());
         }
-        return new ResultVo<>(e.getCode(), e.getMessage());
+        return new ResultVO<>(e.getCode(), e.getMessage());
     }
 
     @ExceptionHandler(Exception.class)
-    public ResultVo<?> handleException(Exception e) {
+    public ResultVO<?> handleException(Exception e) {
         log.error(e.getMessage(), e);
-        return ResultVo.fail("操作异常");
+        return ResultVO.fail("操作异常");
     }
 
     /**
      * 自定义验证异常
      */
     @ExceptionHandler(BindException.class)
-    public ResultVo<?> validatedBindException(BindException e) {
+    public ResultVO<?> validatedBindException(BindException e) {
         log.error(e.getMessage(), e);
         String message = e.getAllErrors().get(0).getDefaultMessage();
-        return ResultVo.fail(message);
+        return ResultVO.fail(message);
     }
 
     /**
@@ -76,9 +76,9 @@ public class GlobalExceptionHandler {
      * @return
      */
     @ExceptionHandler(MethodArgumentTypeMismatchException.class)
-    public ResultVo<?> mismatchErrorHandler(MethodArgumentTypeMismatchException e) {
+    public ResultVO<?> mismatchErrorHandler(MethodArgumentTypeMismatchException e) {
         log.error("方法:{},字段:{},参数:{},错误信息:{}", e.getParameter().getMethod(), e.getName(), e.getValue(), e.getMessage());
-        return ResultVo.fail("参数异常,请勿非法操作");
+        return ResultVO.fail("参数异常,请勿非法操作");
     }
 
     /**
@@ -95,7 +95,7 @@ public class GlobalExceptionHandler {
      * 权限异常
      */
     @ExceptionHandler(PreAuthorizeException.class)
-    public ResultVo<?> preAuthorizeException(PreAuthorizeException e) {
-        return ResultVo.fail("没有权限,请联系管理员授权");
+    public ResultVO<?> preAuthorizeException(PreAuthorizeException e) {
+        return ResultVO.fail("没有权限,请联系管理员授权");
     }
 }

+ 11 - 11
game-module/game-manage/src/main/java/com/zanxiang/manage/controller/BanController.java

@@ -1,7 +1,7 @@
 package com.zanxiang.manage.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.erp.security.annotation.PreAuthorize;
 import com.zanxiang.manage.domain.params.*;
 import com.zanxiang.manage.domain.vo.IpBanVO;
@@ -41,39 +41,39 @@ public class BanController {
     @PostMapping(value = "/ip/list")
     @PreAuthorize(permissionKey = "sdk:ipBan:list")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = IpBanVO.class)})
-    public ResultVo<IPage<IpBanVO>> list(@Validated @RequestBody IpBanListParam param) {
-        return new ResultVo<>(ipBanService.list(param));
+    public ResultVO<IPage<IpBanVO>> list(@Validated @RequestBody IpBanListParam param) {
+        return new ResultVO<>(ipBanService.list(param));
     }
 
     @ApiOperation(value = "添加封禁ip")
     @PostMapping(value = "/ip/add")
     @PreAuthorize(permissionKey = "sdk:ipBan:add")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
-    public ResultVo<Boolean> addIp(@Validated @RequestBody IpBanAddParam param) {
-        return new ResultVo<>(ipBanService.addIp(param));
+    public ResultVO<Boolean> addIp(@Validated @RequestBody IpBanAddParam param) {
+        return new ResultVO<>(ipBanService.addIp(param));
     }
 
     @ApiOperation(value = "ip封禁或者解封")
     @PostMapping(value = "/ip/update")
     @PreAuthorize(permissionKey = "sdk:ipBan:update")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
-    public ResultVo<Boolean> ipBanOrRemove(@Validated @RequestBody IpBanUpdateParam param) {
-        return new ResultVo<>(ipBanService.ipBanOrRemove(param));
+    public ResultVO<Boolean> ipBanOrRemove(@Validated @RequestBody IpBanUpdateParam param) {
+        return new ResultVO<>(ipBanService.ipBanOrRemove(param));
     }
 
     @ApiOperation(value = "查询玩家封禁列表")
     @PostMapping(value = "/user/list")
     @PreAuthorize(permissionKey = "sdk:userBan:list")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserBanVO.class)})
-    public ResultVo<IPage<UserBanVO>> list(@Validated @RequestBody UserBanListParam param) {
-        return new ResultVo<>(userBanService.list(param));
+    public ResultVO<IPage<UserBanVO>> list(@Validated @RequestBody UserBanListParam param) {
+        return new ResultVO<>(userBanService.list(param));
     }
 
     @ApiOperation(value = "玩家封禁添加或者更新")
     @PostMapping(value = "/user/add/or/update")
     @PreAuthorize(permissionKey = "sdk:userBan:addOrUpdate")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
-    public ResultVo<Boolean> addOrUpdate(@Validated @RequestBody UserBanUpdateParam param) {
-        return new ResultVo<>(userBanService.addOrUpdate(param));
+    public ResultVO<Boolean> addOrUpdate(@Validated @RequestBody UserBanUpdateParam param) {
+        return new ResultVO<>(userBanService.addOrUpdate(param));
     }
 }

+ 3 - 3
game-module/game-manage/src/main/java/com/zanxiang/manage/controller/ChannelController.java

@@ -1,6 +1,6 @@
 package com.zanxiang.manage.controller;
 
-import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.erp.security.annotation.PreAuthorize;
 import com.zanxiang.manage.domain.vo.ChannelChoiceVO;
 import com.zanxiang.manage.service.ChannelService;
@@ -34,7 +34,7 @@ public class ChannelController {
     @GetMapping(value = "/choice/list")
     @PreAuthorize(permissionKey = "sdk:channelChoice:list")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = ChannelChoiceVO.class, responseContainer = "list")})
-    public ResultVo<List<ChannelChoiceVO>> choiceList() {
-        return new ResultVo<>(channelService.choiceList());
+    public ResultVO<List<ChannelChoiceVO>> choiceList() {
+        return new ResultVO<>(channelService.choiceList());
     }
 }

+ 9 - 9
game-module/game-manage/src/main/java/com/zanxiang/manage/controller/CpController.java

@@ -1,7 +1,7 @@
 package com.zanxiang.manage.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.erp.security.annotation.PreAuthorize;
 import com.zanxiang.manage.domain.params.CpAddUpdateParam;
 import com.zanxiang.manage.domain.params.CpListParam;
@@ -37,31 +37,31 @@ public class CpController {
     @GetMapping(value = "/choice/list")
     @PreAuthorize(permissionKey = "sdk:cpChoice:list")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = CpChoiceVO.class, responseContainer = "list")})
-    public ResultVo<List<CpChoiceVO>> choiceList() {
-        return new ResultVo<>(cpService.choiceList());
+    public ResultVO<List<CpChoiceVO>> choiceList() {
+        return new ResultVO<>(cpService.choiceList());
     }
 
     @ApiOperation(value = "cp新增或者更新")
     @PostMapping(value = "/add/or/update")
     @PreAuthorize(permissionKey = "sdk:cp:addOrUpdate")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
-    public ResultVo<Boolean> addOrUpdate(@Validated @RequestBody CpAddUpdateParam param) {
-        return new ResultVo<>(cpService.addOrUpdate(param));
+    public ResultVO<Boolean> addOrUpdate(@Validated @RequestBody CpAddUpdateParam param) {
+        return new ResultVO<>(cpService.addOrUpdate(param));
     }
 
     @ApiOperation(value = "cp列表查询")
     @PostMapping(value = "/list")
     @PreAuthorize(permissionKey = "sdk:cp:list")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = CpVO.class)})
-    public ResultVo<IPage<CpVO>> list(@Validated @RequestBody CpListParam param) {
-        return new ResultVo<>(cpService.list(param));
+    public ResultVO<IPage<CpVO>> list(@Validated @RequestBody CpListParam param) {
+        return new ResultVO<>(cpService.list(param));
     }
 
     @ApiOperation(value = "cp删除")
     @DeleteMapping(value = "/delete")
     @PreAuthorize(permissionKey = "sdk:cp:delete")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
-    public ResultVo<Boolean> deleteById(@RequestParam Long id) {
-        return new ResultVo<>(cpService.deleteById(id));
+    public ResultVO<Boolean> deleteById(@RequestParam Long id) {
+        return new ResultVO<>(cpService.deleteById(id));
     }
 }

+ 7 - 7
game-module/game-manage/src/main/java/com/zanxiang/manage/controller/GameAppletController.java

@@ -1,6 +1,6 @@
 package com.zanxiang.manage.controller;
 
-import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.erp.security.annotation.PreAuthorize;
 import com.zanxiang.manage.domain.params.GameAccountUpdateParam;
 import com.zanxiang.manage.domain.vo.GameAccountVO;
@@ -32,23 +32,23 @@ public class GameAppletController {
     @GetMapping(value = "/info")
     @PreAuthorize(permissionKey = "sdk:gameApplet:info")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameAccountVO.class)})
-    public ResultVo<GameAccountVO> getGameAccount(@RequestParam Long id) {
-        return new ResultVo<>(gameAppletService.getGameAccount(id));
+    public ResultVO<GameAccountVO> getGameAccount(@RequestParam Long id) {
+        return new ResultVO<>(gameAppletService.getGameAccount(id));
     }
 
     @ApiOperation(value = "账号信息配置添加或者更新")
     @PostMapping(value = "/add/or/update")
     @PreAuthorize(permissionKey = "sdk:gameApplet:addOrUpdate")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
-    public ResultVo<Boolean> gameAccountAddOrUpdate(@Validated @RequestBody GameAccountUpdateParam param) {
-        return new ResultVo<>(gameAppletService.gameAccountAddOrUpdate(param));
+    public ResultVO<Boolean> gameAccountAddOrUpdate(@Validated @RequestBody GameAccountUpdateParam param) {
+        return new ResultVO<>(gameAppletService.gameAccountAddOrUpdate(param));
     }
 
     @ApiOperation(value = "获取小游戏二维码")
     @GetMapping(value = "/qr/code")
     @PreAuthorize(permissionKey = "sdk:gameApplet:qrCode")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = String.class)})
-    public ResultVo<String> getQrCode(@RequestParam Long gameId) {
-        return new ResultVo<>(gameAppletService.getQrCod(gameId));
+    public ResultVO<String> getQrCode(@RequestParam Long gameId) {
+        return new ResultVO<>(gameAppletService.getQrCod(gameId));
     }
 }

+ 9 - 9
game-module/game-manage/src/main/java/com/zanxiang/manage/controller/GameCategoryController.java

@@ -1,7 +1,7 @@
 package com.zanxiang.manage.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.erp.security.annotation.PreAuthorize;
 import com.zanxiang.manage.domain.params.GameCategoryAddUpdateParam;
 import com.zanxiang.manage.domain.params.GameCategoryListParam;
@@ -37,31 +37,31 @@ public class GameCategoryController {
     @GetMapping(value = "/parent/list")
     @PreAuthorize(permissionKey = "sdk:gameCategory:parentList")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameCategoryParentVO.class, responseContainer = "list")})
-    public ResultVo<List<GameCategoryParentVO>> getGameCategoryParent(@RequestParam Integer type) {
-        return ResultVo.ok(gameCategoryService.getGameCategoryParent(type));
+    public ResultVO<List<GameCategoryParentVO>> getGameCategoryParent(@RequestParam Integer type) {
+        return ResultVO.ok(gameCategoryService.getGameCategoryParent(type));
     }
 
     @ApiOperation(value = "查询游戏标签列表")
     @PostMapping(value = "/list")
     @PreAuthorize(permissionKey = "sdk:gameCategory:list")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameCategoryVO.class)})
-    public ResultVo<IPage<GameCategoryVO>> list(@Validated @RequestBody GameCategoryListParam param) {
-        return ResultVo.ok(gameCategoryService.list(param));
+    public ResultVO<IPage<GameCategoryVO>> list(@Validated @RequestBody GameCategoryListParam param) {
+        return ResultVO.ok(gameCategoryService.list(param));
     }
 
     @ApiOperation(value = "游戏标签分类添加或修改")
     @PostMapping(value = "/add/or/update")
     @PreAuthorize(permissionKey = "sdk:gameCategory:addOrUpdate")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
-    public ResultVo<Boolean> addOrUpdate(@Validated @RequestBody GameCategoryAddUpdateParam param) {
-        return ResultVo.ok(gameCategoryService.addOrUpdate(param));
+    public ResultVO<Boolean> addOrUpdate(@Validated @RequestBody GameCategoryAddUpdateParam param) {
+        return ResultVO.ok(gameCategoryService.addOrUpdate(param));
     }
 
     @ApiOperation(value = "游戏标签分类删除")
     @DeleteMapping(value = "/delete/by/id")
     @PreAuthorize(permissionKey = "sdk:gameCategory:deleteById")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
-    public ResultVo<Boolean> deleteById(@RequestParam Long id) {
-        return ResultVo.ok(gameCategoryService.deleteById(id));
+    public ResultVO<Boolean> deleteById(@RequestParam Long id) {
+        return ResultVO.ok(gameCategoryService.deleteById(id));
     }
 }

+ 25 - 25
game-module/game-manage/src/main/java/com/zanxiang/manage/controller/GameController.java

@@ -1,7 +1,7 @@
 package com.zanxiang.manage.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.erp.security.annotation.PreAuthorize;
 import com.zanxiang.manage.domain.params.*;
 import com.zanxiang.manage.domain.vo.*;
@@ -35,95 +35,95 @@ public class GameController {
     @PostMapping(value = "/add")
     @PreAuthorize(permissionKey = "sdk:game:add")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameListVO.class)})
-    public ResultVo<Boolean> gameAdd(@Validated @RequestBody GameAddParam param) {
-        return new ResultVo<>(gameService.gameAdd(param));
+    public ResultVO<Boolean> gameAdd(@Validated @RequestBody GameAddParam param) {
+        return new ResultVO<>(gameService.gameAdd(param));
     }
 
     @ApiOperation(value = "游戏基本信息查询")
     @GetMapping(value = "/detail/info")
     @PreAuthorize(permissionKey = "sdk:game:detailInfo")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameInfoVO.class)})
-    public ResultVo<GameInfoVO> getGameInfo(@RequestParam Long id) {
-        return new ResultVo<>(gameService.getGameInfo(id));
+    public ResultVO<GameInfoVO> getGameInfo(@RequestParam Long id) {
+        return new ResultVO<>(gameService.getGameInfo(id));
     }
 
     @ApiOperation(value = "游戏基本信息更新")
     @PostMapping(value = "/detail/update")
     @PreAuthorize(permissionKey = "sdk:game:detailUpdate")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
-    public ResultVo<Boolean> gameUpdate(@Validated @RequestBody GameUpdateParam param) {
-        return new ResultVo<>(gameService.updateGameInfo(param));
+    public ResultVO<Boolean> gameUpdate(@Validated @RequestBody GameUpdateParam param) {
+        return new ResultVO<>(gameService.updateGameInfo(param));
     }
 
     @ApiOperation(value = "游戏对接参数获取展示")
     @GetMapping(value = "/dock/info")
     @PreAuthorize(permissionKey = "sdk:game:dockInfo")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameDockVO.class)})
-    public ResultVo<GameDockVO> getGameDock(@RequestParam Long id) {
-        return new ResultVo<>(gameService.getGameDock(id));
+    public ResultVO<GameDockVO> getGameDock(@RequestParam Long id) {
+        return new ResultVO<>(gameService.getGameDock(id));
     }
 
     @ApiOperation(value = "游戏对接参数更新更新")
     @PostMapping(value = "/dock/update")
     @PreAuthorize(permissionKey = "sdk:game:dockUpdate")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
-    public ResultVo<Boolean> gameDockUpdate(@Validated @RequestBody GameDockParam param) {
-        return new ResultVo<>(gameService.gameDockUpdate(param));
+    public ResultVO<Boolean> gameDockUpdate(@Validated @RequestBody GameDockParam param) {
+        return new ResultVO<>(gameService.gameDockUpdate(param));
     }
 
     @ApiOperation(value = "获取游戏关联信息")
     @GetMapping(value = "/relation/info")
     @PreAuthorize(permissionKey = "sdk:game:relationInfo")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameRelationVO.class)})
-    public ResultVo<GameRelationVO> getGameRelation(@RequestParam Long id) {
-        return new ResultVo<>(gameService.getGameRelation(id));
+    public ResultVO<GameRelationVO> getGameRelation(@RequestParam Long id) {
+        return new ResultVO<>(gameService.getGameRelation(id));
     }
 
     @ApiOperation(value = "关联游戏更新")
     @PostMapping(value = "/relation/update")
     @PreAuthorize(permissionKey = "sdk:game:relationUpdate")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
-    public ResultVo<Boolean> relationGameUpdate(@Validated @RequestBody RelationGameUpdateParam param) {
-        return new ResultVo<>(gameService.relationGameUpdate(param));
+    public ResultVO<Boolean> relationGameUpdate(@Validated @RequestBody RelationGameUpdateParam param) {
+        return new ResultVO<>(gameService.relationGameUpdate(param));
     }
 
     @ApiOperation(value = "导量游戏更新")
     @PostMapping(value = "/guide/update")
     @PreAuthorize(permissionKey = "sdk:game:guideUpdate")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameListVO.class)})
-    public ResultVo<Boolean> guideGameUpdateUpdate(@Validated @RequestBody GuideGameUpdateParam param) {
-        return new ResultVo<>(gameService.guideGameUpdateUpdate(param));
+    public ResultVO<Boolean> guideGameUpdateUpdate(@Validated @RequestBody GuideGameUpdateParam param) {
+        return new ResultVO<>(gameService.guideGameUpdateUpdate(param));
     }
 
     @ApiOperation(value = "游戏列表查询")
     @PostMapping(value = "/list")
     @PreAuthorize(permissionKey = "sdk:game:list")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameListVO.class)})
-    public ResultVo<IPage<GameListVO>> gameList(@Validated @RequestBody GameListParam param) {
-        return new ResultVo<>(gameService.gameList(param));
+    public ResultVO<IPage<GameListVO>> gameList(@Validated @RequestBody GameListParam param) {
+        return new ResultVO<>(gameService.gameList(param));
     }
 
     @ApiOperation(value = "游戏选择列表查询")
     @GetMapping(value = "/choice/list")
     @PreAuthorize(permissionKey = "sdk:gameChoice:list")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameChoiceVO.class, responseContainer = "list")})
-    public ResultVo<List<GameChoiceVO>> choiceList() {
-        return new ResultVo<>(gameService.choiceList());
+    public ResultVO<List<GameChoiceVO>> choiceList() {
+        return new ResultVO<>(gameService.choiceList());
     }
 
     @ApiOperation(value = "删除游戏")
     @DeleteMapping(value = "/delete")
     @PreAuthorize(permissionKey = "sdk:game:delete")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameListVO.class)})
-    public ResultVo<Boolean> deleteById(@RequestParam Long id) {
-        return new ResultVo<>(gameService.deleteById(id));
+    public ResultVO<Boolean> deleteById(@RequestParam Long id) {
+        return new ResultVO<>(gameService.deleteById(id));
     }
 
     @ApiOperation(value = "游戏状态变更")
     @PatchMapping(value = "/status/update")
     @PreAuthorize(permissionKey = "sdk:game:statusUpdate")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameListVO.class)})
-    public ResultVo<Boolean> statusUpdate(@RequestParam Long id, @RequestParam Integer status) {
-        return new ResultVo<>(gameService.statusUpdate(id, status));
+    public ResultVO<Boolean> statusUpdate(@RequestParam Long id, @RequestParam Integer status) {
+        return new ResultVO<>(gameService.statusUpdate(id, status));
     }
 }

+ 11 - 11
game-module/game-manage/src/main/java/com/zanxiang/manage/controller/GamePayWayController.java

@@ -1,7 +1,7 @@
 package com.zanxiang.manage.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.erp.security.annotation.PreAuthorize;
 import com.zanxiang.manage.domain.params.GameAnalogPayParam;
 import com.zanxiang.manage.domain.params.GamePayWayListParam;
@@ -35,39 +35,39 @@ public class GamePayWayController {
     @ApiOperation(value = "新增/编辑/删除")
     @PostMapping(value = "/save")
     @PreAuthorize(permissionKey = "sdk:gamePayWay:save")
-    public ResultVo<Boolean> save(@Validated @RequestBody GamePayWayParam param) {
-        return ResultVo.ok(gamePayWayService.saveOrUpdate(param));
+    public ResultVO<Boolean> save(@Validated @RequestBody GamePayWayParam param) {
+        return ResultVO.ok(gamePayWayService.saveOrUpdate(param));
     }
 
     @ApiOperation(value = "列表")
     @PostMapping(value = "/list")
     @PreAuthorize(permissionKey = "sdk:gamePayWay:list")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GamePayWayListVO.class, responseContainer = "list")})
-    public ResultVo<IPage<GamePayWayListVO>> list(@Validated @RequestBody GamePayWayListParam param) {
-        return ResultVo.ok(gamePayWayService.list(param));
+    public ResultVO<IPage<GamePayWayListVO>> list(@Validated @RequestBody GamePayWayListParam param) {
+        return ResultVO.ok(gamePayWayService.list(param));
     }
 
     @ApiOperation(value = "游戏详情支付配置展示")
     @GetMapping(value = "/allGamePayWayByGameId")
     @PreAuthorize(permissionKey = "sdk:gamePayWay:allGamePayWayByGameId")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = AllGamePayWayByGameIdVO.class)})
-    public ResultVo<AllGamePayWayByGameIdVO> getInfo(@RequestParam Long gameId) {
-        return new ResultVo<>(gamePayWayService.getAllGamePayWayByGameId(gameId));
+    public ResultVO<AllGamePayWayByGameIdVO> getInfo(@RequestParam Long gameId) {
+        return new ResultVO<>(gamePayWayService.getAllGamePayWayByGameId(gameId));
     }
 
     @ApiOperation(value = "获取游戏虚拟支付配置")
     @GetMapping(value = "/analog/pay/info")
     @PreAuthorize(permissionKey = "sdk:gamePayWay:analogPayInfo")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameAnalogPayVO.class)})
-    public ResultVo<GameAnalogPayVO> getGameAnalogPay(@RequestParam Long id) {
-        return new ResultVo<>(gamePayWayService.getGameAnalogPay(id));
+    public ResultVO<GameAnalogPayVO> getGameAnalogPay(@RequestParam Long id) {
+        return new ResultVO<>(gamePayWayService.getGameAnalogPay(id));
     }
 
     @ApiOperation(value = "游戏虚拟支付配置添加或者更新")
     @PostMapping(value = "/analog/pay/add/or/update")
     @PreAuthorize(permissionKey = "sdk:gamePayWay:analogPayAddOrUpdate")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
-    public ResultVo<Boolean> gameAnalogPayAddOrUpdate(@Validated @RequestBody GameAnalogPayParam param) {
-        return new ResultVo<>(gamePayWayService.gameAnalogPayAddOrUpdate(param));
+    public ResultVO<Boolean> gameAnalogPayAddOrUpdate(@Validated @RequestBody GameAnalogPayParam param) {
+        return new ResultVO<>(gamePayWayService.gameAnalogPayAddOrUpdate(param));
     }
 }

+ 5 - 5
game-module/game-manage/src/main/java/com/zanxiang/manage/controller/GamePictureController.java

@@ -1,6 +1,6 @@
 package com.zanxiang.manage.controller;
 
-import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.erp.security.annotation.PreAuthorize;
 import com.zanxiang.manage.domain.params.GamePictureParam;
 import com.zanxiang.manage.domain.vo.GamePictureVO;
@@ -32,16 +32,16 @@ public class GamePictureController {
     @GetMapping(value = "/info")
     @PreAuthorize(permissionKey = "sdk:gamePicture:info")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GamePictureVO.class)})
-    public ResultVo<GamePictureVO> getByGameId(@RequestParam Long id) {
-        return new ResultVo<>(gamePictureService.getByGameId(id));
+    public ResultVO<GamePictureVO> getByGameId(@RequestParam Long id) {
+        return new ResultVO<>(gamePictureService.getByGameId(id));
     }
 
     @ApiOperation(value = "游戏图片配置添加或者更新")
     @PostMapping(value = "/add/or/update")
     @PreAuthorize(permissionKey = "sdk:gamePicture:addOrUpdate")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
-    public ResultVo<Boolean> addOrUpdate(@Validated @RequestBody GamePictureParam param) {
-        return new ResultVo<>(gamePictureService.addOrUpdate(param));
+    public ResultVO<Boolean> addOrUpdate(@Validated @RequestBody GamePictureParam param) {
+        return new ResultVO<>(gamePictureService.addOrUpdate(param));
     }
 
 }

+ 5 - 5
game-module/game-manage/src/main/java/com/zanxiang/manage/controller/GameStrategyController.java

@@ -1,7 +1,7 @@
 package com.zanxiang.manage.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.erp.security.annotation.PreAuthorize;
 import com.zanxiang.manage.domain.params.GameStrategyListParam;
 import com.zanxiang.manage.domain.params.GameStrategyParam;
@@ -35,15 +35,15 @@ public class GameStrategyController {
     @ApiOperation(value = "新增/编辑/删除")
     @PostMapping(value = "/save")
     @PreAuthorize(permissionKey = "sdk:gameStrategy:save")
-    public ResultVo<Boolean> save(@Validated @RequestBody GameStrategyParam param) {
-        return ResultVo.ok(gameStrategyService.saveOrUpdate(param));
+    public ResultVO<Boolean> save(@Validated @RequestBody GameStrategyParam param) {
+        return ResultVO.ok(gameStrategyService.saveOrUpdate(param));
     }
 
     @ApiOperation(value = "列表")
     @PostMapping(value = "/list")
     @PreAuthorize(permissionKey = "sdk:gameStrategy:list")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameStrategyListVO.class, responseContainer = "list")})
-    public ResultVo<IPage<GameStrategyListVO>> list(@Validated @RequestBody GameStrategyListParam param) {
-        return ResultVo.ok(gameStrategyService.list(param));
+    public ResultVO<IPage<GameStrategyListVO>> list(@Validated @RequestBody GameStrategyListParam param) {
+        return ResultVO.ok(gameStrategyService.list(param));
     }
 }

+ 3 - 3
game-module/game-manage/src/main/java/com/zanxiang/manage/controller/LogPayCpController.java

@@ -1,7 +1,7 @@
 package com.zanxiang.manage.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.erp.security.annotation.PreAuthorize;
 import com.zanxiang.manage.domain.params.LogPayCpParam;
 import com.zanxiang.manage.domain.vo.LogPayCpVO;
@@ -35,7 +35,7 @@ public class LogPayCpController {
     @PostMapping(value = "/list")
     @PreAuthorize(permissionKey = "sdk:logPayCp:list")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = LogPayCpVO.class, responseContainer = "list")})
-    public ResultVo<IPage<LogPayCpVO>> list(@Validated @RequestBody LogPayCpParam param) {
-        return ResultVo.ok(logPayCpService.list(param));
+    public ResultVO<IPage<LogPayCpVO>> list(@Validated @RequestBody LogPayCpParam param) {
+        return ResultVO.ok(logPayCpService.list(param));
     }
 }

+ 3 - 3
game-module/game-manage/src/main/java/com/zanxiang/manage/controller/OrderCompleteController.java

@@ -1,6 +1,6 @@
 package com.zanxiang.manage.controller;
 
-import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.erp.security.annotation.PreAuthorize;
 import com.zanxiang.manage.domain.params.OrderCompleteParam;
 import com.zanxiang.manage.domain.vo.OrderCompleteListVO;
@@ -34,7 +34,7 @@ public class OrderCompleteController {
     @PostMapping(value = "/list")
     @PreAuthorize(permissionKey = "sdk:orderComplete:list")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = OrderCompleteListVO.class, responseContainer = "list")})
-    public ResultVo<OrderCompleteListVO> list(@Validated @RequestBody OrderCompleteParam param) {
-        return ResultVo.ok(orderCompleteService.list(param));
+    public ResultVO<OrderCompleteListVO> list(@Validated @RequestBody OrderCompleteParam param) {
+        return ResultVO.ok(orderCompleteService.list(param));
     }
 }

+ 5 - 5
game-module/game-manage/src/main/java/com/zanxiang/manage/controller/OssController.java

@@ -1,6 +1,6 @@
 package com.zanxiang.manage.controller;
 
-import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.common.enums.FileTypeEnum;
 import com.zanxiang.common.exception.BaseException;
 import com.zanxiang.erp.security.annotation.PreAuthorize;
@@ -35,19 +35,19 @@ public class OssController {
     @GetMapping(value = "/form/upload")
     @PreAuthorize(permissionKey = "sdk:oss:formUpload")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Map.class)})
-    public ResultVo<Map<String, String>> formUpload(@RequestParam String fileType, @RequestParam String type) {
+    public ResultVO<Map<String, String>> formUpload(@RequestParam String fileType, @RequestParam String type) {
         FileTypeEnum fileTypeEnum = FileTypeEnum.getByFileType(fileType);
         if (fileTypeEnum == null) {
             throw new BaseException("错误的文件类型");
         }
-        return new ResultVo<>(ossService.formUpload(fileTypeEnum.getFilePath(), type));
+        return new ResultVO<>(ossService.formUpload(fileTypeEnum.getFilePath(), type));
     }
 
     @ApiOperation(value = "oss回传接口")
     @PostMapping("/callback")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = OssUploadCallback.class)})
-    public ResultVo<OssUploadCallback> ossCallback(@RequestBody OssUploadDTO dto) {
-        return ResultVo.ok(ossService.callback(dto));
+    public ResultVO<OssUploadCallback> ossCallback(@RequestBody OssUploadDTO dto) {
+        return ResultVO.ok(ossService.callback(dto));
     }
 
 }

+ 9 - 9
game-module/game-manage/src/main/java/com/zanxiang/manage/controller/PayApplicationController.java

@@ -1,7 +1,7 @@
 package com.zanxiang.manage.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.common.utils.bean.BeanUtils;
 import com.zanxiang.erp.security.annotation.PreAuthorize;
 import com.zanxiang.manage.domain.bo.PayApplicationBO;
@@ -37,32 +37,32 @@ public class PayApplicationController {
     @ApiOperation(value = "新增/编辑/删除")
     @PostMapping(value = "/save")
     @PreAuthorize(permissionKey = "sdk:payApplication:save")
-    public ResultVo<Boolean> save(@Validated @RequestBody PayApplicationParam param) {
+    public ResultVO<Boolean> save(@Validated @RequestBody PayApplicationParam param) {
         Boolean result = payApplicationService.saveOrUpdate(BeanUtils.copy(param, PayApplicationBO.class));
-        return ResultVo.ok(result);
+        return ResultVO.ok(result);
     }
 
     @ApiOperation(value = "列表")
     @PostMapping(value = "/list")
     @PreAuthorize(permissionKey = "sdk:payApplication:list")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = PayApplicationVO.class, responseContainer = "list")})
-    public ResultVo<IPage<PayApplicationVO>> list(@Validated @RequestBody PayApplicationListParam param) {
-        return ResultVo.ok(payApplicationService.list(param));
+    public ResultVO<IPage<PayApplicationVO>> list(@Validated @RequestBody PayApplicationListParam param) {
+        return ResultVO.ok(payApplicationService.list(param));
     }
 
     @ApiOperation(value = "列表(无分页)")
     @PostMapping(value = "/listNoPage")
     @PreAuthorize(permissionKey = "sdk:payApplication:listNoPage")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = PayApplicationVO.class, responseContainer = "list")})
-    public ResultVo<List<PayApplicationVO>> listNoPage(@Validated @RequestBody PayApplicationListNoPageParam param) {
-        return ResultVo.ok(payApplicationService.listNoPage(param));
+    public ResultVO<List<PayApplicationVO>> listNoPage(@Validated @RequestBody PayApplicationListNoPageParam param) {
+        return ResultVO.ok(payApplicationService.listNoPage(param));
     }
 
     @ApiOperation(value = "获取小程序二维码")
     @GetMapping(value = "/qr/code")
     @PreAuthorize(permissionKey = "sdk:payApplication:qrCode")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = String.class)})
-    public ResultVo<String> getQrCode(@RequestParam Long id) {
-        return new ResultVo<>(payApplicationService.getQrCode(id));
+    public ResultVO<String> getQrCode(@RequestParam Long id) {
+        return new ResultVO<>(payApplicationService.getQrCode(id));
     }
 }

+ 5 - 5
game-module/game-manage/src/main/java/com/zanxiang/manage/controller/PayBoxController.java

@@ -1,7 +1,7 @@
 package com.zanxiang.manage.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.erp.security.annotation.PreAuthorize;
 import com.zanxiang.manage.domain.params.PayBoxListParam;
 import com.zanxiang.manage.domain.params.PayBoxParam;
@@ -35,15 +35,15 @@ public class PayBoxController {
     @ApiOperation(value = "支付盒子-新增/修改/删除")
     @PostMapping(value = "/save")
     @PreAuthorize(permissionKey = "sdk:payBox:save")
-    public ResultVo<Boolean> save(@Validated @RequestBody PayBoxParam param) {
-        return ResultVo.ok(payBoxService.saveOrUpdate(param));
+    public ResultVO<Boolean> save(@Validated @RequestBody PayBoxParam param) {
+        return ResultVO.ok(payBoxService.saveOrUpdate(param));
     }
 
     @ApiOperation(value = "盒子-列表")
     @PostMapping(value = "/list")
     @PreAuthorize(permissionKey = "sdk:payBox:list")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = PayBoxListVO.class, responseContainer = "list")})
-    public ResultVo<IPage<PayBoxListVO>> list(@Validated @RequestBody PayBoxListParam param) {
-        return ResultVo.ok(payBoxService.list(param));
+    public ResultVO<IPage<PayBoxListVO>> list(@Validated @RequestBody PayBoxListParam param) {
+        return ResultVO.ok(payBoxService.list(param));
     }
 }

+ 8 - 8
game-module/game-manage/src/main/java/com/zanxiang/manage/controller/PayMerchantController.java

@@ -1,7 +1,7 @@
 package com.zanxiang.manage.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.common.utils.bean.BeanUtils;
 import com.zanxiang.erp.security.annotation.PreAuthorize;
 import com.zanxiang.manage.domain.bo.PayMerchantBO;
@@ -41,29 +41,29 @@ public class PayMerchantController {
     @ApiOperation(value = "商户号-新增/编辑/删除(payWayId/merchantNo/merchantName 必传)")
     @PostMapping(value = "/save")
     @PreAuthorize(permissionKey = "sdk:payMerchant:save")
-    public ResultVo<Boolean> save(@Validated @RequestBody PayMerchantParam param) {
+    public ResultVO<Boolean> save(@Validated @RequestBody PayMerchantParam param) {
         Boolean result = payMerchantService.saveOrUpdate(BeanUtils.copy(param, PayMerchantBO.class));
         if (result) {
-            return ResultVo.ok(true);
+            return ResultVO.ok(true);
         }
-        return ResultVo.ok(false);
+        return ResultVO.ok(false);
     }
 
     @ApiOperation(value = "商户号-列表")
     @PostMapping(value = "/list")
     @PreAuthorize(permissionKey = "sdk:payMerchant:list")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = PayMerchantListVO.class, responseContainer = "list")})
-    public ResultVo<IPage<PayMerchantListVO>> list(@Validated @RequestBody PayMerchantListParam param) {
+    public ResultVO<IPage<PayMerchantListVO>> list(@Validated @RequestBody PayMerchantListParam param) {
         IPage<PayMerchantListVO> result = payMerchantService.list(param);
-        return ResultVo.ok(result);
+        return ResultVO.ok(result);
     }
 
     @ApiOperation(value = "列表(无分页)")
     @PostMapping(value = "/listNoPage")
     @PreAuthorize(permissionKey = "sdk:payMerchant:listNoPage")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = PayMerchantListNoPageVO.class, responseContainer = "list")})
-    public ResultVo<List<PayMerchantListNoPageVO>> listNoPage(@Validated @RequestBody PayMerchantListNoPageParam param) {
-        return ResultVo.ok(payMerchantService.listNoPage(param));
+    public ResultVO<List<PayMerchantListNoPageVO>> listNoPage(@Validated @RequestBody PayMerchantListNoPageParam param) {
+        return ResultVO.ok(payMerchantService.listNoPage(param));
     }
 
 }

+ 4 - 4
game-module/game-manage/src/main/java/com/zanxiang/manage/controller/PayWayController.java

@@ -1,7 +1,7 @@
 package com.zanxiang.manage.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.common.enums.HttpStatusEnum;
 import com.zanxiang.common.utils.bean.BeanUtils;
 import com.zanxiang.erp.security.annotation.PreAuthorize;
@@ -34,11 +34,11 @@ public class PayWayController {
     @ApiOperation(value = "支付方式列表")
     @GetMapping(value = "/list")
     @PreAuthorize(permissionKey = "sdk:payWay:list")
-    public ResultVo<List<PayWayVO>> list() {
+    public ResultVO<List<PayWayVO>> list() {
         List<PayWay> list = payWayService.list(new LambdaQueryWrapper<PayWay>().eq(PayWay::getParentId, 0));
         if (list.isEmpty()) {
-            return new ResultVo<>(HttpStatusEnum.SUCCESS);
+            return new ResultVO<>(HttpStatusEnum.SUCCESS);
         }
-        return new ResultVo<>(HttpStatusEnum.SUCCESS, BeanUtils.copyList(list, PayWayVO.class));
+        return new ResultVO<>(HttpStatusEnum.SUCCESS, BeanUtils.copyList(list, PayWayVO.class));
     }
 }

+ 27 - 27
game-module/game-manage/src/main/java/com/zanxiang/manage/controller/UserController.java

@@ -1,7 +1,7 @@
 package com.zanxiang.manage.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.common.enums.AuthPlatform;
 import com.zanxiang.common.enums.OsEnum;
 import com.zanxiang.common.enums.VipLevelEnum;
@@ -58,103 +58,103 @@ public class UserController {
     @PostMapping(value = "/list")
     @PreAuthorize(permissionKey = "sdk:user:list")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserListVO.class)})
-    public ResultVo<IPage<UserListVO>> list(@Validated @RequestBody UserListParam param) {
-        return ResultVo.ok(userService.list(param));
+    public ResultVO<IPage<UserListVO>> list(@Validated @RequestBody UserListParam param) {
+        return ResultVO.ok(userService.list(param));
     }
 
     @ApiOperation(value = "玩家信息编辑")
     @PostMapping(value = "/update")
     @PreAuthorize(permissionKey = "sdk:user:update")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
-    public ResultVo<Boolean> userUpdate(@Validated @RequestBody UserUpdateParam param) {
-        return ResultVo.ok(userService.userUpdate(param));
+    public ResultVO<Boolean> userUpdate(@Validated @RequestBody UserUpdateParam param) {
+        return ResultVO.ok(userService.userUpdate(param));
     }
 
     @ApiOperation(value = "玩家详细信息")
     @GetMapping(value = "/info")
     @PreAuthorize(permissionKey = "sdk:user:info")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserVO.class)})
-    public ResultVo<UserVO> getUserInfo(@RequestParam Long id) {
-        return ResultVo.ok(userService.getUserInfo(id));
+    public ResultVO<UserVO> getUserInfo(@RequestParam Long id) {
+        return ResultVO.ok(userService.getUserInfo(id));
     }
 
     @ApiOperation(value = "玩家游戏角色列表")
     @GetMapping(value = "/game/role/list")
     @PreAuthorize(permissionKey = "sdk:user:gameRoleList")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameUserRoleVO.class, responseContainer = "list")})
-    public ResultVo<List<GameUserRoleVO>> roleList(@RequestParam Long userId) {
-        return ResultVo.ok(gameUserRoleService.roleList(userId));
+    public ResultVO<List<GameUserRoleVO>> roleList(@RequestParam Long userId) {
+        return ResultVO.ok(gameUserRoleService.roleList(userId));
     }
 
     @ApiOperation(value = "玩家登录记录列表")
     @PostMapping(value = "/login/list")
     @PreAuthorize(permissionKey = "sdk:user:loginList")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserRoleLoginVO.class)})
-    public ResultVo<IPage<UserRoleLoginVO>> loginList(@RequestBody UserLoginLogParam param) {
-        return ResultVo.ok(userLoginLogService.loginList(param));
+    public ResultVO<IPage<UserRoleLoginVO>> loginList(@RequestBody UserLoginLogParam param) {
+        return ResultVO.ok(userLoginLogService.loginList(param));
     }
 
     @ApiOperation(value = "玩家下单记录列表")
     @PostMapping(value = "/order/list")
     @PreAuthorize(permissionKey = "sdk:user:orderList")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserOrderListVO.class)})
-    public ResultVo<IPage<UserOrderListVO>> orderList(@Validated @RequestBody UserOrderListParam param) {
-        return ResultVo.ok(orderService.orderList(param));
+    public ResultVO<IPage<UserOrderListVO>> orderList(@Validated @RequestBody UserOrderListParam param) {
+        return ResultVO.ok(orderService.orderList(param));
     }
 
     @ApiOperation(value = "玩家收货地址列表")
     @GetMapping(value = "/address/list")
     @PreAuthorize(permissionKey = "sdk:user:addressList")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserAddressVO.class, responseContainer = "list")})
-    public ResultVo<List<UserAddressVO>> list(@RequestParam Long userId) {
-        return ResultVo.ok(userAddressService.list(userId));
+    public ResultVO<List<UserAddressVO>> list(@RequestParam Long userId) {
+        return ResultVO.ok(userAddressService.list(userId));
     }
 
     @ApiOperation(value = "玩家游戏列表")
     @PostMapping(value = "/game/list")
     @PreAuthorize(permissionKey = "sdk:user:gameList")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameUserListVO.class)})
-    public ResultVo<IPage<GameUserListVO>> gameUserList(@Validated @RequestBody GameUserListParam param) {
-        return ResultVo.ok(gameUserService.gameUserList(param));
+    public ResultVO<IPage<GameUserListVO>> gameUserList(@Validated @RequestBody GameUserListParam param) {
+        return ResultVO.ok(gameUserService.gameUserList(param));
     }
 
     @ApiOperation(value = "玩家角色列表")
     @PostMapping(value = "/role/list")
     @PreAuthorize(permissionKey = "sdk:user:roleList")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameUserRoleListVO.class)})
-    public ResultVo<IPage<GameUserRoleListVO>> roleList(@Validated @RequestBody GameUserRoleListParam param) {
-        return ResultVo.ok(gameUserRoleService.list(param));
+    public ResultVO<IPage<GameUserRoleListVO>> roleList(@Validated @RequestBody GameUserRoleListParam param) {
+        return ResultVO.ok(gameUserRoleService.list(param));
     }
 
     @ApiOperation(value = "vip等级选择列表选择列表")
     @GetMapping(value = "/vip/level/choice/list")
     @PreAuthorize(permissionKey = "sdk:userVipChoice:list")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = VipLevelVo.class, responseContainer = "list")})
-    public ResultVo<List<VipLevelVo>> vipLevelChoiceList() {
-        return ResultVo.ok(BeanUtils.copyList(Arrays.asList(VipLevelEnum.values()), VipLevelVo.class));
+    public ResultVO<List<VipLevelVo>> vipLevelChoiceList() {
+        return ResultVO.ok(BeanUtils.copyList(Arrays.asList(VipLevelEnum.values()), VipLevelVo.class));
     }
 
     @ApiOperation(value = "操作系统选择列表")
     @GetMapping(value = "/system/type/choice/list")
     @PreAuthorize(permissionKey = "sdk:userSystemChoice:list")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = SystemTypeVO.class, responseContainer = "list")})
-    public ResultVo<List<SystemTypeVO>> systemTypeChoiceList() {
-        return ResultVo.ok(BeanUtils.copyList(Arrays.asList(OsEnum.values()), SystemTypeVO.class));
+    public ResultVO<List<SystemTypeVO>> systemTypeChoiceList() {
+        return ResultVO.ok(BeanUtils.copyList(Arrays.asList(OsEnum.values()), SystemTypeVO.class));
     }
 
     @ApiOperation(value = "防沉迷认证平台选择列表")
     @GetMapping(value = "/auth/platform/choice/list")
     @PreAuthorize(permissionKey = "sdk:userAuthChoice:list")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = AuthPlatformVO.class, responseContainer = "list")})
-    public ResultVo<List<AuthPlatformVO>> authPlatformChoiceList() {
-        return ResultVo.ok(BeanUtils.copyList(Arrays.asList(AuthPlatform.values()), AuthPlatformVO.class));
+    public ResultVO<List<AuthPlatformVO>> authPlatformChoiceList() {
+        return ResultVO.ok(BeanUtils.copyList(Arrays.asList(AuthPlatform.values()), AuthPlatformVO.class));
     }
 
     @ApiOperation(value = "玩家实名认证列表")
     @PostMapping(value = "/auth/list")
     @PreAuthorize(permissionKey = "sdk:userAuth:list")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserNameAuthVO.class)})
-    public ResultVo<IPage<UserNameAuthVO>> authList(@Validated @RequestBody UserNameAuthListParam param) {
-        return ResultVo.ok(userExtService.authList(param));
+    public ResultVO<IPage<UserNameAuthVO>> authList(@Validated @RequestBody UserNameAuthListParam param) {
+        return ResultVO.ok(userExtService.authList(param));
     }
 }

+ 4 - 1
game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/entity/GameKey.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
 
+import java.io.Serializable;
 import java.time.LocalDateTime;
 
 /**
@@ -18,7 +19,9 @@ import java.time.LocalDateTime;
 @ToString
 @Builder
 @TableName("h_game_key")
-public class GameKey {
+public class GameKey implements Serializable {
+
+    private static final long serialVersionUID = 5699964900570462660L;
 
     /**
      * 主键

+ 5 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/common/constant/RedisKeyConstant.java

@@ -12,6 +12,11 @@ public class RedisKeyConstant {
      */
     private static final String REDIS_PREFIX = "game_sdk_";
 
+    /**
+     * 游戏密钥缓存
+     */
+    public static final String GAME_SECRET_KEY = RedisKeyConstant.REDIS_PREFIX + "game_secret_key";
+
     /**
      * 用户token缓存key
      */

+ 60 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/common/util/SignUtil.java

@@ -0,0 +1,60 @@
+package com.zanxiang.sdk.common.util;
+
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+import java.nio.charset.StandardCharsets;
+import java.security.MessageDigest;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-09-23
+ * @description : 签名算法工具类
+ */
+public class SignUtil {
+
+    /**
+     * MD5加密
+     */
+    private static final String SIGN_MD5 = "MD5";
+
+    /**
+     * HMACSHA256加密
+     */
+    private static final String SIGN_HMACSHA256 = "HMACSHA256";
+
+    /**
+     * MD5加密
+     *
+     * @param data 待处理数据
+     * @return MD5结果
+     */
+    public static String MD5(String data) throws Exception {
+        java.security.MessageDigest md = MessageDigest.getInstance(SIGN_MD5);
+        byte[] array = md.digest(data.getBytes(StandardCharsets.UTF_8));
+        StringBuilder sb = new StringBuilder();
+        for (byte item : array) {
+            sb.append(Integer.toHexString((item & 0xFF) | 0x100), 1, 3);
+        }
+        return sb.toString();
+    }
+
+    /**
+     * HMACSHA256加密
+     *
+     * @param data 待处理数据
+     * @param key  密钥
+     * @return 加密结果
+     * @throws Exception : 异常
+     */
+    public static String HMACSHA256(String data, String key) throws Exception {
+        Mac sha256HMAC = Mac.getInstance(SIGN_HMACSHA256);
+        SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), SIGN_HMACSHA256);
+        sha256HMAC.init(secretKey);
+        byte[] array = sha256HMAC.doFinal(data.getBytes(StandardCharsets.UTF_8));
+        StringBuilder sb = new StringBuilder();
+        for (byte item : array) {
+            sb.append(Integer.toHexString((item & 0xFF) | 0x100), 1, 3);
+        }
+        return sb.toString();
+    }
+}

+ 3 - 46
game-module/game-sdk/src/main/java/com/zanxiang/sdk/common/util/WxPayUtil.java

@@ -2,14 +2,11 @@ package com.zanxiang.sdk.common.util;
 
 import com.zanxiang.common.exception.BaseException;
 
-import javax.crypto.Mac;
-import javax.crypto.spec.SecretKeySpec;
 import java.io.BufferedReader;
 import java.io.InputStreamReader;
 import java.net.URL;
 import java.net.URLConnection;
 import java.nio.charset.StandardCharsets;
-import java.security.MessageDigest;
 import java.security.SecureRandom;
 import java.util.*;
 import java.util.regex.Matcher;
@@ -57,7 +54,7 @@ public class WxPayUtil {
                 .append("&secret=").append(secret);
         //加密算法返回
         try {
-            sig = WxPayUtil.HMACSHA256(stringBuilder.toString(), secret, Boolean.FALSE);
+            sig = SignUtil.HMACSHA256(stringBuilder.toString(), secret);
         } catch (Exception e) {
             throw new BaseException("米大师签名失败");
         }
@@ -148,9 +145,9 @@ public class WxPayUtil {
         }
         sb.append("key=").append(key);
         if (Objects.equals(SIGN_MD5, signType)) {
-            return MD5(sb.toString()).toUpperCase();
+            return SignUtil.MD5(sb.toString()).toUpperCase();
         } else if (Objects.equals(SIGN_HMACSHA256, signType)) {
-            return HMACSHA256(sb.toString(), key, Boolean.TRUE);
+            return SignUtil.HMACSHA256(sb.toString(), key).toUpperCase();
         } else {
             throw new Exception(String.format("Invalid sign_type: %s", signType));
         }
@@ -171,44 +168,4 @@ public class WxPayUtil {
         }
         return new String(nonceChars);
     }
-
-
-    /**
-     * MD5加密
-     *
-     * @param data 待处理数据
-     * @return MD5结果
-     */
-    private static String MD5(String data) throws Exception {
-        java.security.MessageDigest md = MessageDigest.getInstance(SIGN_MD5);
-        byte[] array = md.digest(data.getBytes(StandardCharsets.UTF_8));
-        StringBuilder sb = new StringBuilder();
-        for (byte item : array) {
-            sb.append(Integer.toHexString((item & 0xFF) | 0x100), 1, 3);
-        }
-        return sb.toString().toUpperCase();
-    }
-
-    /**
-     * HMACSHA256加密
-     *
-     * @param data 待处理数据
-     * @param key  密钥
-     * @return 加密结果
-     * @throws Exception : 异常
-     */
-    private static String HMACSHA256(String data, String key, boolean upperCase) throws Exception {
-        Mac sha256HMAC = Mac.getInstance(SIGN_HMACSHA256);
-        SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), SIGN_HMACSHA256);
-        sha256HMAC.init(secretKey);
-        byte[] array = sha256HMAC.doFinal(data.getBytes(StandardCharsets.UTF_8));
-        StringBuilder sb = new StringBuilder();
-        for (byte item : array) {
-            sb.append(Integer.toHexString((item & 0xFF) | 0x100), 1, 3);
-        }
-        if (upperCase) {
-            return sb.toString().toUpperCase();
-        }
-        return sb.toString();
-    }
 }

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

@@ -1,6 +1,6 @@
 package com.zanxiang.sdk.controller;
 
-import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.sdk.domain.params.*;
 import com.zanxiang.sdk.domain.vo.UserLoginVO;
 import com.zanxiang.sdk.service.RegisterLoginService;
@@ -31,7 +31,7 @@ public class RegisterLoginController {
     @ApiOperation(value = "用户普通注册")
     @PostMapping("/register/password")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
-    public ResultVo<UserLoginVO> registerPassword(@Validated @RequestBody RegisterPasswordParam registerPasswordParam,
+    public ResultVO<UserLoginVO> registerPassword(@Validated @RequestBody RegisterPasswordParam registerPasswordParam,
                                                   HttpServletRequest request, UserData userData) {
         return registerPassword.registerPassword(registerPasswordParam, request, userData);
     }
@@ -39,7 +39,7 @@ public class RegisterLoginController {
     @ApiOperation(value = "用户手机注册")
     @PostMapping("/register/mobile")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
-    public ResultVo<UserLoginVO> registerMobile(@Validated @RequestBody RegisterMobileParam registerMobileParam,
+    public ResultVO<UserLoginVO> registerMobile(@Validated @RequestBody RegisterMobileParam registerMobileParam,
                                                 HttpServletRequest request, UserData userData) {
         return registerPassword.registerMobile(registerMobileParam, request, userData);
     }
@@ -47,7 +47,7 @@ public class RegisterLoginController {
     @ApiOperation(value = "用户名密码登录")
     @PostMapping("/login/password")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
-    public ResultVo<UserLoginVO> loginPassword(@Validated @RequestBody LoginPasswordParam userLoginParam,
+    public ResultVO<UserLoginVO> loginPassword(@Validated @RequestBody LoginPasswordParam userLoginParam,
                                                HttpServletRequest request, UserData userData) {
         return registerPassword.loginPassword(userLoginParam, request, userData);
     }
@@ -55,7 +55,7 @@ public class RegisterLoginController {
     @ApiOperation(value = "用户手机号登录")
     @PostMapping("/login/mobile")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
-    public ResultVo<UserLoginVO> loginMobile(@Validated @RequestBody LoginMobileParam loginMobileParam,
+    public ResultVO<UserLoginVO> loginMobile(@Validated @RequestBody LoginMobileParam loginMobileParam,
                                              HttpServletRequest request, UserData userData) {
         return registerPassword.loginMobile(loginMobileParam, request, userData);
     }
@@ -63,15 +63,15 @@ public class RegisterLoginController {
     @ApiOperation(value = "用户QQ授权登录")
     @GetMapping("/register/login/qq")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
-    public ResultVo qqLoginAuth(HttpServletResponse response) {
+    public ResultVO qqLoginAuth(HttpServletResponse response) {
         registerPassword.qqLoginAuth(response);
-        return ResultVo.ok();
+        return ResultVO.ok();
     }
 
     @ApiOperation(value = "用户QQ授权登录回调接口")
     @PostMapping("/register/login/qq/call/back")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
-    public ResultVo<UserLoginVO> qqLoginCallback(@Validated @RequestBody QqLoginCallbackParam qqLoginCallbackParam,
+    public ResultVO<UserLoginVO> qqLoginCallback(@Validated @RequestBody QqLoginCallbackParam qqLoginCallbackParam,
                                                  HttpServletRequest request, UserData userData) {
         return registerPassword.qqLoginCallback(qqLoginCallbackParam, request, userData);
     }
@@ -79,15 +79,15 @@ public class RegisterLoginController {
     @ApiOperation(value = "用户微信授权登录")
     @GetMapping("/register/login/vx")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
-    public ResultVo getUserDetail(HttpServletResponse response) {
+    public ResultVO getUserDetail(HttpServletResponse response) {
         registerPassword.vxLoginAuth(response);
-        return ResultVo.ok();
+        return ResultVO.ok();
     }
 
     @ApiOperation(value = "用户微信授权登录回调接口")
     @PostMapping("/register/login/vx/call/back")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
-    public ResultVo<UserLoginVO> vxLoginCallback(@Validated @RequestBody QqLoginCallbackParam qqLoginCallbackParam,
+    public ResultVO<UserLoginVO> vxLoginCallback(@Validated @RequestBody QqLoginCallbackParam qqLoginCallbackParam,
                                                  HttpServletRequest request, UserData userData) {
         return registerPassword.vxLoginCallback(qqLoginCallbackParam, request, userData);
     }

+ 3 - 3
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.common.domain.ResultVO;
 import com.zanxiang.sdk.domain.params.SmsCheckParam;
 import com.zanxiang.sdk.domain.params.SmsSendParam;
 import com.zanxiang.sdk.domain.params.UserData;
@@ -33,14 +33,14 @@ public class SmsController {
     @ApiOperation(value = "发送短信")
     @PostMapping("/send/msg")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
-    public ResultVo<Boolean> smsSend(@Validated @RequestBody SmsSendParam smsSendParam) {
+    public ResultVO<Boolean> smsSend(@Validated @RequestBody SmsSendParam smsSendParam) {
         return smsService.smsSend(smsSendParam);
     }
 
     @ApiOperation(value = "验证码校验")
     @PostMapping("/check/msg")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
-    public ResultVo<String> smsCheck(@Validated @RequestBody SmsCheckParam smsCheckParam, UserData userData) {
+    public ResultVO<String> smsCheck(@Validated @RequestBody SmsCheckParam smsCheckParam, UserData userData) {
         return smsService.smsCheck(smsCheckParam, userData);
     }
 }

+ 23 - 22
game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/UserController.java

@@ -1,24 +1,17 @@
 package com.zanxiang.sdk.controller;
 
-import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.sdk.common.annotation.ValidLogin;
 import com.zanxiang.sdk.domain.params.*;
 import com.zanxiang.sdk.domain.vo.UserLoginVO;
-import com.zanxiang.sdk.domain.vo.UserVO;
-import com.zanxiang.sdk.service.GameUserRoleService;
-import com.zanxiang.sdk.service.GameUserService;
-import com.zanxiang.sdk.service.UserOauthService;
-import com.zanxiang.sdk.service.UserService;
+import com.zanxiang.sdk.service.*;
 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;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * @author : lingfeng
@@ -42,49 +35,57 @@ public class UserController {
     @Autowired
     private GameUserService gameUserService;
 
+    @Autowired
+    private UserTokenService userTokenService;
+
+    @ApiOperation(value = "登录凭证验证")
+    @GetMapping("/token/check")
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Long.class)})
+    public ResultVO userTokenCheck(@RequestParam Long gameId, @RequestParam Long userId,
+                                   @RequestParam String token, @RequestParam String sign) {
+        return userTokenService.userTokenCheck(gameId, userId, token, sign);
+    }
+
     @ApiOperation(value = "用户重置密码")
     @PostMapping("/update/password")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
-    public ResultVo updatePassword(@Validated @RequestBody UpdatePasswordParam updatePasswordParam, UserData userData) {
+    public ResultVO updatePassword(@Validated @RequestBody UpdatePasswordParam updatePasswordParam, UserData userData) {
         return userService.updatePassword(updatePasswordParam, userData);
     }
 
     @ApiOperation(value = "用户获取信息详情")
     @PostMapping("/get/user/detail")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
-    public ResultVo getUserDetail(@Validated @RequestBody UserDetailParam userDetailParam, UserData userData) {
+    public ResultVO getUserDetail(@Validated @RequestBody UserDetailParam userDetailParam, UserData userData) {
         return userService.getUserDetail(userDetailParam, userData);
     }
 
     @ApiOperation(value = "更新用户授权信息")
     @PostMapping("/update/user/Oauth")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
-    public ResultVo updateUserOauth(@Validated @RequestBody UserOauthlUpdateParam param, @ValidLogin UserData userData) {
+    public ResultVO updateUserOauth(@Validated @RequestBody UserOauthlUpdateParam param, @ValidLogin UserData userData) {
         return userOauthService.updateUserOauth(param, userData);
     }
 
     @ApiOperation(value = "创建/更新游戏用户")
     @PostMapping("/update/game/user")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
-    public ResultVo updateGameUser(@Validated @RequestBody GameUserUpdateParam param, @ValidLogin UserData userData) {
-        return ResultVo.ok(gameUserService.updateGameUser(param, userData));
+    public ResultVO updateGameUser(@Validated @RequestBody GameUserUpdateParam param, @ValidLogin UserData userData) {
+        return ResultVO.ok(gameUserService.updateGameUser(param, userData));
     }
 
-
     @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) {
-        return ResultVo.ok(gameUserRoleService.updateUserGameRole(param, userData));
+    public ResultVO updateUserGameRole(@Validated @RequestBody GameUserRoleUpdateParam param, @ValidLogin UserData userData) {
+        return ResultVO.ok(gameUserRoleService.updateUserGameRole(param, userData));
     }
 
-
     @ApiOperation(value = "用户信息检测")
     @PostMapping("/check")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
-    public ResultVo upUserGameRole(@Validated @RequestBody UserCheckParam param, @ValidLogin UserData userData) {
-        return ResultVo.ok(userService.userCheck(param, userData));
+    public ResultVO upUserGameRole(@Validated @RequestBody UserCheckParam param, @ValidLogin UserData userData) {
+        return ResultVO.ok(userService.userCheck(param, userData));
     }
 
-
 }

+ 20 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/GameKeyService.java

@@ -0,0 +1,20 @@
+package com.zanxiang.sdk.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zanxiang.mybatis.entity.GameKey;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-09-23
+ * @description : 游戏密钥
+ */
+public interface GameKeyService extends IService<GameKey> {
+
+    /**
+     * 根据游戏id查询密钥
+     *
+     * @param gameId : 游戏id
+     * @return : 返回游戏密钥
+     */
+    GameKey getByGameId(Long gameId);
+}

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

@@ -0,0 +1,55 @@
+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.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.service.GameKeyService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-09-23
+ * @description : 游戏密钥
+ */
+@Slf4j
+@Service
+public class GameKeyServiceImpl extends ServiceImpl<GameKeyMapper, GameKey> implements GameKeyService {
+
+    @Autowired
+    private RedisUtil<GameKey> redisUtil;
+
+    /**
+     * 根据游戏id查询密钥
+     *
+     * @param gameId : 游戏id
+     * @return : 返回游戏密钥
+     */
+    @Override
+    public GameKey getByGameId(Long gameId) {
+        //查询缓存
+        GameKey gameKey = redisUtil.getCache(this.getGameKey(gameId));
+        if (gameKey == null) {
+            gameKey = this.getOne(new LambdaQueryWrapper<GameKey>().eq(GameKey::getGameId, gameId));
+        }
+        if (gameKey != null) {
+            redisUtil.setCache(this.getGameKey(gameId), gameKey, ExpireTimeEnum.ONE_DAY.getTime());
+        }
+        return gameKey;
+    }
+
+    /**
+     * 拼接用户token缓存key
+     *
+     * @param gameId : 游戏id
+     * @return : 返回游戏key的缓存key
+     */
+    private String getGameKey(Long gameId) {
+        return RedisKeyConstant.GAME_SECRET_KEY + "_" + gameId;
+    }
+}

+ 23 - 23
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/RegisterLoginServiceImpl.java

@@ -1,7 +1,7 @@
 package com.zanxiang.sdk.service.Impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.common.enums.AccountStatusEnum;
 import com.zanxiang.common.enums.HttpStatusEnum;
 import com.zanxiang.common.exception.BaseException;
@@ -113,7 +113,7 @@ public class RegisterLoginServiceImpl implements RegisterLoginService {
      * @return : 返回登录token
      */
     @Override
-    public ResultVo<UserLoginVO> qqLoginCallback(QqLoginCallbackParam qqLoginCallbackParam, HttpServletRequest request, UserData userData) {
+    public ResultVO<UserLoginVO> qqLoginCallback(QqLoginCallbackParam qqLoginCallbackParam, HttpServletRequest request, UserData userData) {
         String code = qqLoginCallbackParam.getCode();
         String state = qqLoginCallbackParam.getState();
         Integer deviceType = userData.getDeviceType();
@@ -134,7 +134,7 @@ public class RegisterLoginServiceImpl implements RegisterLoginService {
         //移出state
         redisUtil.removeOfSet(RedisKeyConstant.AUTH_STATE_KEY, state);
         //构造返回
-        return new ResultVo<>(new UserLoginVO(userToken));
+        return new ResultVO<>(new UserLoginVO(userToken));
     }
 
     /**
@@ -172,7 +172,7 @@ public class RegisterLoginServiceImpl implements RegisterLoginService {
      * @return : 返回登录token
      */
     @Override
-    public ResultVo<UserLoginVO> vxLoginCallback(QqLoginCallbackParam qqLoginCallbackParam, HttpServletRequest request, UserData userData) {
+    public ResultVO<UserLoginVO> vxLoginCallback(QqLoginCallbackParam qqLoginCallbackParam, HttpServletRequest request, UserData userData) {
         Integer deviceType = userData.getDeviceType();
         String code = qqLoginCallbackParam.getCode();
         String state = qqLoginCallbackParam.getState();
@@ -193,7 +193,7 @@ public class RegisterLoginServiceImpl implements RegisterLoginService {
         //移出state
         redisUtil.removeOfSet(RedisKeyConstant.AUTH_STATE_KEY, state);
         //构造返回
-        return new ResultVo<>(new UserLoginVO(userToken));
+        return new ResultVO<>(new UserLoginVO(userToken));
     }
 
 
@@ -207,13 +207,13 @@ public class RegisterLoginServiceImpl implements RegisterLoginService {
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public ResultVo<UserLoginVO> registerPassword(RegisterPasswordParam registerPasswordParam, HttpServletRequest request, UserData userData) {
+    public ResultVO<UserLoginVO> registerPassword(RegisterPasswordParam registerPasswordParam, HttpServletRequest request, UserData userData) {
         String username = registerPasswordParam.getUsername();
         String password = registerPasswordParam.getPassword();
         //用户名密码校验
         HttpStatusEnum checkRegisterEnum = this.checkRegister(username, password);
         if (!Objects.equals(checkRegisterEnum, HttpStatusEnum.SUCCESS)) {
-            return new ResultVo<>(checkRegisterEnum);
+            return new ResultVO<>(checkRegisterEnum);
         }
         //创建用户信息
         User user = User.builder()
@@ -238,7 +238,7 @@ public class RegisterLoginServiceImpl implements RegisterLoginService {
 
         }
         //返回用户token
-        return new ResultVo<>(new UserLoginVO(userToken));
+        return new ResultVO<>(new UserLoginVO(userToken));
     }
 
     /**
@@ -251,7 +251,7 @@ public class RegisterLoginServiceImpl implements RegisterLoginService {
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public ResultVo<UserLoginVO> registerMobile(RegisterMobileParam registerMobileParam, HttpServletRequest request, UserData userData) {
+    public ResultVO<UserLoginVO> registerMobile(RegisterMobileParam registerMobileParam, HttpServletRequest request, UserData userData) {
         Integer type = registerMobileParam.getType();
         String mobile = registerMobileParam.getMobile();
         String code = registerMobileParam.getCode();
@@ -259,16 +259,16 @@ public class RegisterLoginServiceImpl implements RegisterLoginService {
         //校验手机验证码
         HttpStatusEnum codeCheckEnum = smsService.smsCheck(type, mobile, code);
         if (!Objects.equals(codeCheckEnum, HttpStatusEnum.SUCCESS)) {
-            return new ResultVo<>(codeCheckEnum);
+            return new ResultVO<>(codeCheckEnum);
         }
         //判断手机号是否已经注册
         if (userService.count(new LambdaQueryWrapper<User>().eq(User::getMobile, mobile)) > 0) {
-            return new ResultVo<>(HttpStatusEnum.PHONE_IS_REG);
+            return new ResultVO<>(HttpStatusEnum.PHONE_IS_REG);
         }
         //验证密码是否合规
         HttpStatusEnum passwordCheckEnum = RegisterUtil.checkPassword(password);
         if (!Objects.equals(passwordCheckEnum, HttpStatusEnum.SUCCESS)) {
-            return new ResultVo<>(passwordCheckEnum);
+            return new ResultVO<>(passwordCheckEnum);
         }
         //创建用户信息
         User user = User.builder()
@@ -289,7 +289,7 @@ public class RegisterLoginServiceImpl implements RegisterLoginService {
         //插入用户登录记录
         userLoginLogService.addUserLoginLog(realIp, user, registerMobileParam.getGameId());
         //返回用户token
-        return new ResultVo<>(new UserLoginVO(userToken));
+        return new ResultVO<>(new UserLoginVO(userToken));
     }
 
     /**
@@ -301,7 +301,7 @@ public class RegisterLoginServiceImpl implements RegisterLoginService {
      * @return : 返回登录token
      */
     @Override
-    public ResultVo<UserLoginVO> loginPassword(LoginPasswordParam userLoginParam, HttpServletRequest request, UserData userData) {
+    public ResultVO<UserLoginVO> loginPassword(LoginPasswordParam userLoginParam, HttpServletRequest request, UserData userData) {
         //用户名
         String username = userLoginParam.getUsername();
         //密码
@@ -317,15 +317,15 @@ public class RegisterLoginServiceImpl implements RegisterLoginService {
         }
         //用户信息不存在
         if (user == null) {
-            return new ResultVo<>(HttpStatusEnum.USERNAME_OR_PASSWORD_ERR);
+            return new ResultVO<>(HttpStatusEnum.USERNAME_OR_PASSWORD_ERR);
         }
         //判断账号是否停用
         if (Objects.equals(AccountStatusEnum.FROZEN_STATUS.getStatus(), user.getStatus())) {
-            return new ResultVo<>(HttpStatusEnum.ACCOUNT_HALT);
+            return new ResultVO<>(HttpStatusEnum.ACCOUNT_HALT);
         }
         //验证密码
         if (!Objects.equals(RegisterUtil.cmfPassword(password), user.getPassword())) {
-            return new ResultVo<>(HttpStatusEnum.USERNAME_OR_PASSWORD_ERR);
+            return new ResultVO<>(HttpStatusEnum.USERNAME_OR_PASSWORD_ERR);
         }
         //验证通过, 获取token
         String userToken = userTokenService.getUserToken(user.getId(), userData.getDeviceType());
@@ -334,7 +334,7 @@ public class RegisterLoginServiceImpl implements RegisterLoginService {
         //插入用户登录记录
         userLoginLogService.addUserLoginLog(realIp, user, userLoginParam.getGameId());
         //构造返回
-        return new ResultVo<>(new UserLoginVO(userToken));
+        return new ResultVO<>(new UserLoginVO(userToken));
     }
 
 
@@ -347,7 +347,7 @@ public class RegisterLoginServiceImpl implements RegisterLoginService {
      * @return : 返回登录信息
      */
     @Override
-    public ResultVo<UserLoginVO> loginMobile(LoginMobileParam loginMobileParam, HttpServletRequest request, UserData userData) {
+    public ResultVO<UserLoginVO> loginMobile(LoginMobileParam loginMobileParam, HttpServletRequest request, UserData userData) {
         Integer type = loginMobileParam.getType();
         String mobile = loginMobileParam.getMobile();
         String code = loginMobileParam.getCode();
@@ -355,17 +355,17 @@ public class RegisterLoginServiceImpl implements RegisterLoginService {
         HttpStatusEnum httpStatusEnum = smsService.smsCheck(type, mobile, code);
         //验证不通过, 返回
         if (!Objects.equals(httpStatusEnum, HttpStatusEnum.SUCCESS)) {
-            return new ResultVo<>(httpStatusEnum);
+            return new ResultVO<>(httpStatusEnum);
         }
         //获取用户信息
         User user = userService.getOne(new LambdaQueryWrapper<User>().eq(User::getMobile, mobile));
         //用户信息不存在
         if (user == null) {
-            return new ResultVo<>(HttpStatusEnum.PHONE_NOT_REG);
+            return new ResultVO<>(HttpStatusEnum.PHONE_NOT_REG);
         }
         //判断账号是否停用
         if (Objects.equals(AccountStatusEnum.FROZEN_STATUS.getStatus(), user.getStatus())) {
-            return new ResultVo<>(HttpStatusEnum.ACCOUNT_HALT);
+            return new ResultVO<>(HttpStatusEnum.ACCOUNT_HALT);
         }
         //验证通过, 获取token
         String userToken = userTokenService.getUserToken(user.getId(), userData.getDeviceType());
@@ -374,7 +374,7 @@ public class RegisterLoginServiceImpl implements RegisterLoginService {
         //插入用户登录记录
         userLoginLogService.addUserLoginLog(realIp, user, loginMobileParam.getGameId());
         //构造返回
-        return new ResultVo<>(new UserLoginVO(userToken));
+        return new ResultVO<>(new UserLoginVO(userToken));
     }
 
     /**

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

@@ -1,6 +1,6 @@
 package com.zanxiang.sdk.service.Impl;
 
-import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.common.enums.ExpireTimeEnum;
 import com.zanxiang.common.enums.HttpStatusEnum;
 import com.zanxiang.common.enums.SmsTypeEnum;
@@ -52,7 +52,7 @@ public class SmsServiceImpl implements SmsService {
      * @return : 返回发送结果
      */
     @Override
-    public ResultVo<Boolean> smsSend(SmsSendParam smsSendParam) {
+    public ResultVO<Boolean> smsSend(SmsSendParam smsSendParam) {
         //类型
         Integer type = smsSendParam.getType();
         //手机号码
@@ -63,29 +63,29 @@ public class SmsServiceImpl implements SmsService {
         if (Objects.equals(type, SmsTypeEnum.SMS_FIND_PWD.getType())) {
             //手机号对应用户信息不存在
             if (userDTO == null) {
-                return new ResultVo<>(HttpStatusEnum.USERNAME_NOT_EXISTS);
+                return new ResultVO<>(HttpStatusEnum.USERNAME_NOT_EXISTS);
             }
         }
         //用户注册获取
         if (Objects.equals(type, SmsTypeEnum.SMS_REG.getType())) {
             //判断手机号是否已注册
             if (userDTO != null) {
-                return new ResultVo<>(HttpStatusEnum.PHONE_IS_REG);
+                return new ResultVO<>(HttpStatusEnum.PHONE_IS_REG);
             }
         }
         //验证手机号
         if (!StringUtils.checkPhone(mobile)) {
-            return new ResultVo<>(HttpStatusEnum.PHONE_ERROR);
+            return new ResultVO<>(HttpStatusEnum.PHONE_ERROR);
         }
         //验证类型
         SmsTypeEnum smsTypeEnum = SmsTypeEnum.getByType(type);
         if (smsTypeEnum == null) {
-            return new ResultVo<>(HttpStatusEnum.CODE_TYPE_ERROR);
+            return new ResultVO<>(HttpStatusEnum.CODE_TYPE_ERROR);
         }
         //判断是否已经发送
         String cache = redisUtil.getCache(this.smsKey(mobile, type));
         if (Strings.isNotBlank(cache)) {
-            return new ResultVo<>(HttpStatusEnum.PHONE_HAS_SEND);
+            return new ResultVO<>(HttpStatusEnum.PHONE_HAS_SEND);
         }
         //发送验证码
         String randomCode = this.randomCode();
@@ -94,7 +94,7 @@ public class SmsServiceImpl implements SmsService {
         if (sendResult.isSuccess()) {
             redisUtil.setCache(this.smsKey(mobile, type), randomCode, ExpireTimeEnum.FIVE_MIN.getTime());
         }
-        return new ResultVo<>(HttpStatusEnum.SUCCESS, Boolean.TRUE);
+        return new ResultVO<>(HttpStatusEnum.SUCCESS, Boolean.TRUE);
     }
 
     /**
@@ -105,22 +105,22 @@ public class SmsServiceImpl implements SmsService {
      * @return : 返回验证结果和token
      */
     @Override
-    public ResultVo<String> smsCheck(SmsCheckParam smsCheckParam, UserData userData) {
+    public ResultVO<String> smsCheck(SmsCheckParam smsCheckParam, UserData userData) {
         //校验短信验证码
         HttpStatusEnum httpStatusEnum = this.smsCheck(smsCheckParam.getType(), smsCheckParam.getMobile(), smsCheckParam.getCode());
         //校验不通过
         if (!Objects.equals(httpStatusEnum, HttpStatusEnum.SUCCESS)) {
-            return new ResultVo<>(httpStatusEnum);
+            return new ResultVO<>(httpStatusEnum);
         }
         //查询用户信息
         UserDTO userDTO = userService.getUserInfoByMobile(smsCheckParam.getMobile());
         if (userDTO == null) {
-            return new ResultVo<>(HttpStatusEnum.PHONE_NOT_REG);
+            return new ResultVO<>(HttpStatusEnum.PHONE_NOT_REG);
         }
         //获取token
         String userToken = userTokenService.getUserToken(userDTO.getId(), userData.getDeviceType());
         //返回
-        return new ResultVo<>(HttpStatusEnum.SUCCESS, userToken);
+        return new ResultVO<>(HttpStatusEnum.SUCCESS, userToken);
     }
 
     /**

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

@@ -2,7 +2,7 @@ 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.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.common.utils.bean.BeanUtils;
 import com.zanxiang.mybatis.entity.User;
 import com.zanxiang.mybatis.entity.UserOauth;
@@ -77,10 +77,10 @@ public class UserOauthServiceImpl extends ServiceImpl<UserOauthMapper, UserOauth
     }
 
     @Override
-    public ResultVo<UserVO> updateUserOauth(UserOauthlUpdateParam param, UserData userData) {
+    public ResultVO<UserVO> updateUserOauth(UserOauthlUpdateParam param, UserData userData) {
         UserOauthDTO userOauth = getUserOauthByOpenId(param.getUnionId());
         if (Objects.isNull(userOauth)) {
-            return ResultVo.fail("授权登录不存在");
+            return ResultVO.fail("授权登录不存在");
         }
         UserOauth data = BeanUtils.copy(param, UserOauth.class);
         data.setUserId(userData.getUserId());
@@ -88,9 +88,9 @@ public class UserOauthServiceImpl extends ServiceImpl<UserOauthMapper, UserOauth
         super.updateById(data);
         User user = userService.getById(userData.getUserId());
         if (Objects.isNull(user)) {
-            return ResultVo.fail("获取用户信息失败");
+            return ResultVO.fail("获取用户信息失败");
         }
         Semaphore semaphore = new Semaphore(10);
-        return ResultVo.ok(BeanUtils.copy(user, UserVO.class));
+        return ResultVO.ok(BeanUtils.copy(user, UserVO.class));
     }
 }

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

@@ -3,12 +3,11 @@ 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.domain.ResultVO;
 import com.zanxiang.common.enums.HttpStatusEnum;
 import com.zanxiang.common.exception.CustomException;
 import com.zanxiang.common.exception.ParamNullException;
 import com.zanxiang.common.utils.GameSignUtil;
-import com.zanxiang.common.utils.MD5Util;
 import com.zanxiang.common.utils.StringUtils;
 import com.zanxiang.common.utils.bean.BeanUtils;
 import com.zanxiang.mybatis.entity.Game;
@@ -56,7 +55,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public ResultVo<Boolean> updatePassword(UpdatePasswordParam updatePasswordParam, UserData userData) {
+    public ResultVO<Boolean> updatePassword(UpdatePasswordParam updatePasswordParam, UserData userData) {
         String token = updatePasswordParam.getToken();
         String password = updatePasswordParam.getPassword();
         String username = updatePasswordParam.getUsername();
@@ -69,17 +68,17 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         }
         User user = super.getOne(queryWrapper);
         if (user == null) {
-            return new ResultVo<>(HttpStatusEnum.USERNAME_NOT_EXISTS);
+            return new ResultVO<>(HttpStatusEnum.USERNAME_NOT_EXISTS);
         }
         //验证token是否存在
         HttpStatusEnum checkUserTokenEnum = userTokenService.checkUserToken(token, user.getId(), userData.getDeviceType());
         if (!Objects.equals(HttpStatusEnum.SUCCESS, checkUserTokenEnum)) {
-            return new ResultVo<>(checkUserTokenEnum);
+            return new ResultVO<>(checkUserTokenEnum);
         }
         //密码校验
         HttpStatusEnum checkPasswordEnum = RegisterUtil.checkPassword(password);
         if (!Objects.equals(checkPasswordEnum, HttpStatusEnum.SUCCESS)) {
-            return new ResultVo<>(checkPasswordEnum);
+            return new ResultVO<>(checkPasswordEnum);
         }
         //修改用户密码
         super.update(new LambdaUpdateWrapper<User>()
@@ -87,7 +86,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                 .set(User::getUpdateTime, LocalDateTime.now())
                 .eq(User::getUsername, username));
         //返回修改成功
-        return new ResultVo<>(HttpStatusEnum.SUCCESS, Boolean.TRUE);
+        return new ResultVO<>(HttpStatusEnum.SUCCESS, Boolean.TRUE);
     }
 
     /**
@@ -98,20 +97,20 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
      * @return : 返回用户信息
      */
     @Override
-    public ResultVo<UserVO> getUserDetail(UserDetailParam userDetailParam, UserData userData) {
+    public ResultVO<UserVO> getUserDetail(UserDetailParam userDetailParam, UserData userData) {
         String token = userDetailParam.getToken();
         Integer deviceType = userData.getDeviceType();
         UserTokenDTO userTokenDTO = userTokenService.getTokenInfoByTokenDevice(token, deviceType);
         if (userTokenDTO == null) {
-            return new ResultVo<>(HttpStatusEnum.INVALID_PARAMS);
+            return new ResultVO<>(HttpStatusEnum.INVALID_PARAMS);
         }
         //查询用户信息
         User user = super.getById(userTokenDTO.getUserId());
         if (user == null) {
-            return new ResultVo<>(HttpStatusEnum.UNKNOWN_ERROR);
+            return new ResultVO<>(HttpStatusEnum.UNKNOWN_ERROR);
         }
         UserVO userVO = BeanUtils.copy(user, UserVO.class);
-        return new ResultVo<>(HttpStatusEnum.SUCCESS, userVO);
+        return new ResultVO<>(HttpStatusEnum.SUCCESS, userVO);
     }
 
     /**

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

@@ -3,20 +3,26 @@ 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.ExpireTimeEnum;
 import com.zanxiang.common.enums.HttpStatusEnum;
+import com.zanxiang.common.exception.BaseException;
 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.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.domain.dto.UserTokenDTO;
+import com.zanxiang.sdk.service.GameKeyService;
 import com.zanxiang.sdk.service.UserTokenService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.logging.log4j.util.Strings;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -36,6 +42,44 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
     @Autowired
     private RedisUtil<UserToken> redisUtil;
 
+    @Autowired
+    private GameKeyService gameKeyService;
+
+    /**
+     * 登录凭证验证
+     *
+     * @param gameId : 游戏id
+     * @param userId : 用户id
+     * @param token  : 用户token
+     * @param sign   : 签名
+     * @return : 返回验证结果
+     */
+    @Override
+    public ResultVO<Long> userTokenCheck(Long gameId, Long userId, String token, String sign) {
+        //查询登录签名
+        GameKey gameKey = gameKeyService.getByGameId(gameId);
+        if (gameKey == null || Strings.isBlank(gameKey.getLoginKey())) {
+            return ResultVO.ok(-3, "游戏登录密钥不存在");
+        }
+        //登录密钥
+        String loginKey = gameKey.getLoginKey();
+        //计算用户签名
+        String sb = "loginKey=" + loginKey + "&" +
+                "gameId=" + gameId + "&" +
+                "userId=" + userId + "&" +
+                "token=" + token;
+        String mySign;
+        try {
+            mySign = SignUtil.MD5(sb);
+        } catch (Exception e) {
+            throw new BaseException("MD5加密异常");
+        }
+        if (Objects.equals(mySign, sign)) {
+            return ResultVO.ok(1, "验证成功", userId);
+        }
+        return ResultVO.ok(-2, "签名错误");
+    }
+
     /**
      * 通过token设备获取token详情
      *

+ 7 - 7
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/RegisterLoginService.java

@@ -1,6 +1,6 @@
 package com.zanxiang.sdk.service;
 
-import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.sdk.domain.params.*;
 import com.zanxiang.sdk.domain.vo.UserLoginVO;
 
@@ -29,7 +29,7 @@ public interface RegisterLoginService {
      * @param userData             : userData
      * @return : 返回登录token
      */
-    ResultVo<UserLoginVO> qqLoginCallback(QqLoginCallbackParam qqLoginCallbackParam, HttpServletRequest request, UserData userData);
+    ResultVO<UserLoginVO> qqLoginCallback(QqLoginCallbackParam qqLoginCallbackParam, HttpServletRequest request, UserData userData);
 
     /**
      * 微信授权登录
@@ -46,7 +46,7 @@ public interface RegisterLoginService {
      * @param userData             : userData
      * @return : 返回登录token
      */
-    ResultVo<UserLoginVO> vxLoginCallback(QqLoginCallbackParam qqLoginCallbackParam, HttpServletRequest request, UserData userData);
+    ResultVO<UserLoginVO> vxLoginCallback(QqLoginCallbackParam qqLoginCallbackParam, HttpServletRequest request, UserData userData);
 
     /**
      * 用户名密码注册
@@ -56,7 +56,7 @@ public interface RegisterLoginService {
      * @param userData              : userData
      * @return : 返回注册结果
      */
-    ResultVo<UserLoginVO> registerPassword(RegisterPasswordParam registerPasswordParam, HttpServletRequest request, UserData userData);
+    ResultVO<UserLoginVO> registerPassword(RegisterPasswordParam registerPasswordParam, HttpServletRequest request, UserData userData);
 
     /**
      * 手机号注册
@@ -66,7 +66,7 @@ public interface RegisterLoginService {
      * @param userData            : userData
      * @return : 返回注册结果
      */
-    ResultVo<UserLoginVO> registerMobile(RegisterMobileParam registerMobileParam, HttpServletRequest request, UserData userData);
+    ResultVO<UserLoginVO> registerMobile(RegisterMobileParam registerMobileParam, HttpServletRequest request, UserData userData);
 
     /**
      * 用户名密码登录
@@ -76,7 +76,7 @@ public interface RegisterLoginService {
      * @param userData       : userData
      * @return : 返回登录token
      */
-    ResultVo<UserLoginVO> loginPassword(LoginPasswordParam userLoginParam, HttpServletRequest request, UserData userData);
+    ResultVO<UserLoginVO> loginPassword(LoginPasswordParam userLoginParam, HttpServletRequest request, UserData userData);
 
     /**
      * 手机号登录
@@ -86,5 +86,5 @@ public interface RegisterLoginService {
      * @param userData         : userData
      * @return : 返回登录信息
      */
-    ResultVo<UserLoginVO> loginMobile(LoginMobileParam loginMobileParam, HttpServletRequest request, UserData userData);
+    ResultVO<UserLoginVO> loginMobile(LoginMobileParam loginMobileParam, HttpServletRequest request, UserData userData);
 }

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

@@ -1,6 +1,6 @@
 package com.zanxiang.sdk.service;
 
-import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.common.enums.HttpStatusEnum;
 import com.zanxiang.sdk.domain.params.SmsCheckParam;
 import com.zanxiang.sdk.domain.params.SmsSendParam;
@@ -19,7 +19,7 @@ public interface SmsService {
      * @param smsSendParam : 获取短信验证码参数
      * @return : 返回发送结果
      */
-    ResultVo<Boolean> smsSend(SmsSendParam smsSendParam);
+    ResultVO<Boolean> smsSend(SmsSendParam smsSendParam);
 
     /**
      * 前端校验短信验证码
@@ -28,7 +28,7 @@ public interface SmsService {
      * @param userData      : userData
      * @return : 返回验证结果和token
      */
-    ResultVo<String> smsCheck(SmsCheckParam smsCheckParam, UserData userData);
+    ResultVO<String> smsCheck(SmsCheckParam smsCheckParam, UserData userData);
 
     /**
      * 校验短信验证码

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

@@ -1,6 +1,6 @@
 package com.zanxiang.sdk.service;
 
-import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.mybatis.entity.User;
 import com.zanxiang.sdk.domain.dto.UserOauthDTO;
 import com.zanxiang.sdk.domain.params.UserData;
@@ -40,5 +40,5 @@ public interface UserOauthService {
      * @param userData
      * @return
      */
-    ResultVo<UserVO> updateUserOauth(UserOauthlUpdateParam param, UserData userData);
+    ResultVO<UserVO> updateUserOauth(UserOauthlUpdateParam param, UserData userData);
 }

+ 3 - 4
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/UserService.java

@@ -1,9 +1,8 @@
 package com.zanxiang.sdk.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.mybatis.entity.User;
-import com.zanxiang.sdk.common.annotation.ValidLogin;
 import com.zanxiang.sdk.domain.dto.UserDTO;
 import com.zanxiang.sdk.domain.params.UpdatePasswordParam;
 import com.zanxiang.sdk.domain.params.UserCheckParam;
@@ -25,7 +24,7 @@ public interface UserService extends IService<User> {
      * @param userData            : userData
      * @return : 返回修改结果
      */
-    ResultVo<Boolean> updatePassword(UpdatePasswordParam updatePasswordParam, UserData userData);
+    ResultVO<Boolean> updatePassword(UpdatePasswordParam updatePasswordParam, UserData userData);
 
     /**
      * 获取用户信息
@@ -34,7 +33,7 @@ public interface UserService extends IService<User> {
      * @param userData        : userData
      * @return : 返回用户信息
      */
-    ResultVo<UserVO> getUserDetail(UserDetailParam userDetailParam, UserData userData);
+    ResultVO<UserVO> getUserDetail(UserDetailParam userDetailParam, UserData userData);
 
     /**
      * 根据手机号获取用户信息

+ 12 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/UserTokenService.java

@@ -1,6 +1,7 @@
 package com.zanxiang.sdk.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.common.enums.HttpStatusEnum;
 import com.zanxiang.mybatis.entity.UserToken;
 import com.zanxiang.sdk.domain.dto.UserTokenDTO;
@@ -12,6 +13,17 @@ import com.zanxiang.sdk.domain.dto.UserTokenDTO;
  */
 public interface UserTokenService extends IService<UserToken> {
 
+    /**
+     * 登录凭证验证
+     *
+     * @param gameId : 游戏id
+     * @param userId : 用户id
+     * @param token  : 用户token
+     * @param sign   : 签名
+     * @return : 返回验证结果
+     */
+    ResultVO<Long> userTokenCheck(Long gameId, Long userId, String token, String sign);
+
     /**
      * 通过token设备获取token详情
      *