Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/dev-lingfeng' into dev0.0.1

bilingfeng 2 gadi atpakaļ
vecāks
revīzija
3873ac7740
44 mainītis faili ar 1189 papildinājumiem un 36 dzēšanām
  1. 35 0
      game-module/game-common/src/main/java/com/zanxiang/common/enums/BanStatusEnum.java
  2. 2 1
      game-module/game-manage/src/main/java/com/zanxiang/manage/ManageApplication.java
  3. 31 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/config/CORSConfig.java
  4. 73 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/controller/BanController.java
  5. 2 2
      game-module/game-manage/src/main/java/com/zanxiang/manage/controller/GameCategoryController.java
  6. 99 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/dto/UserDTO.java
  7. 3 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/GameCategoryListParam.java
  8. 21 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/IpBanAddParam.java
  9. 29 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/IpBanListParam.java
  10. 30 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/IpBanUpdateParam.java
  11. 19 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/UserBanAddParam.java
  12. 55 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/UserBanListParam.java
  13. 30 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/UserBanUpdateParam.java
  14. 2 2
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/vo/CpVO.java
  15. 1 1
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/vo/GameCategoryParentVO.java
  16. 45 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/vo/IpBanVO.java
  17. 63 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/vo/UserBanVO.java
  18. 32 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/filter/CORSFilter.java
  19. 12 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/service/GameService.java
  20. 10 2
      game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/GameCategoryServiceImpl.java
  21. 23 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/GameServiceImpl.java
  22. 121 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/IpBanServiceImpl.java
  23. 118 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/UserBanServiceImpl.java
  24. 31 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/UserServiceImpl.java
  25. 39 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/service/IpBanService.java
  26. 30 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/service/UserBanService.java
  27. 20 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/service/UserService.java
  28. 68 0
      game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/entity/IpBan.java
  29. 1 1
      game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/entity/User.java
  30. 85 0
      game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/entity/UserBan.java
  31. 1 1
      game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/entity/UserToken.java
  32. 12 0
      game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/mapper/IpBanMapper.java
  33. 12 0
      game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/mapper/UserBanMapper.java
  34. 4 0
      game-module/game-mybatis/src/main/resources/mapper/IpBanMapper.xml
  35. 4 0
      game-module/game-mybatis/src/main/resources/mapper/UserBanMapper.xml
  36. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/common/resolver/TokenArgumentResolver.java
  37. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/UserController.java
  38. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/dto/UserTokenDTO.java
  39. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/params/CommonParam.java
  40. 8 8
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/RegisterLoginServiceImpl.java
  41. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/SmsServiceImpl.java
  42. 2 2
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/UserServiceImpl.java
  43. 7 7
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/UserTokenServiceImpl.java
  44. 4 4
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/UserTokenService.java

+ 35 - 0
game-module/game-common/src/main/java/com/zanxiang/common/enums/BanStatusEnum.java

@@ -0,0 +1,35 @@
+package com.zanxiang.common.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-28
+ * @description : ip封禁管理状态
+ */
+@Getter
+@AllArgsConstructor
+public enum BanStatusEnum {
+
+    /**
+     * 正常
+     */
+    NORMAL_STATUS(0, "正常"),
+
+    /**
+     * 封禁
+     */
+    BAN_STATUS(1, "封禁");
+
+    /**
+     * 状态
+     */
+    private Integer status;
+
+    /**
+     * 描述
+     */
+    private String describe;
+
+}

+ 2 - 1
game-module/game-manage/src/main/java/com/zanxiang/manage/ManageApplication.java

@@ -5,8 +5,9 @@ import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.web.bind.annotation.CrossOrigin;
 
-
+@CrossOrigin
 @Slf4j
 @EnableDiscoveryClient
 @SpringBootApplication

+ 31 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/config/CORSConfig.java

@@ -0,0 +1,31 @@
+package com.zanxiang.manage.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+import org.springframework.web.filter.CorsFilter;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-16
+ * @description : 跨域配置
+ */
+@Configuration
+public class CORSConfig {
+
+    private CorsConfiguration buildConfig() {
+        CorsConfiguration corsConfiguration = new CorsConfiguration();
+        corsConfiguration.addAllowedOrigin("*");
+        corsConfiguration.addAllowedHeader("*");
+        corsConfiguration.addAllowedMethod("*");
+        return corsConfiguration;
+    }
+
+    @Bean
+    public CorsFilter corsFilter() {
+        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+        source.registerCorsConfiguration("/**", buildConfig());
+        return new CorsFilter(source);
+    }
+}

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

@@ -0,0 +1,73 @@
+package com.zanxiang.manage.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.manage.domain.params.*;
+import com.zanxiang.manage.domain.vo.IpBanVO;
+import com.zanxiang.manage.domain.vo.UserBanVO;
+import com.zanxiang.manage.service.IpBanService;
+import com.zanxiang.manage.service.UserBanService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-28
+ * @description : 封禁管理接口
+ */
+@Api(tags = {"封禁管理接口"})
+@RestController
+@RequestMapping("/ban")
+@Slf4j
+public class BanController {
+
+    @Autowired
+    private IpBanService ipBanService;
+
+    @Autowired
+    private UserBanService userBanService;
+
+    @ApiOperation(value = "查询ip封禁列表")
+    @PostMapping(value = "/ip/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));
+    }
+
+    @ApiOperation(value = "添加封禁ip")
+    @PostMapping(value = "/ip/add")
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
+    public ResultVo<Boolean> addIp(@Validated @RequestBody IpBanAddParam param) {
+        return new ResultVo<>(ipBanService.addIp(param));
+    }
+
+    @ApiOperation(value = "ip封禁或者解封")
+    @PostMapping(value = "/ip/update")
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
+    public ResultVo<Boolean> ipBanOrRemove(@Validated @RequestBody IpBanUpdateParam param) {
+        return new ResultVo<>(ipBanService.ipBanOrRemove(param));
+    }
+
+    @ApiOperation(value = "查询玩家封禁列表")
+    @PostMapping(value = "/user/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));
+    }
+
+    @ApiOperation(value = "玩家封禁添加或者更新")
+    @PostMapping(value = "/user/add/or/update")
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
+    public ResultVo<Boolean> addOrUpdate(@Validated @RequestBody UserBanUpdateParam param) {
+        return new ResultVo<>(userBanService.addOrUpdate(param));
+    }
+}

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

@@ -32,10 +32,10 @@ public class GameCategoryController {
     @Autowired
     private GameCategoryService gameCategoryService;
 
-    @ApiOperation(value = "查询所父标签列表")
+    @ApiOperation(value = "查询所游戏分类或父标签列表")
     @GetMapping(value = "/parent/list")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameCategoryParentVO.class, responseContainer = "list")})
-    public ResultVo<List<GameCategoryParentVO>> getGameCategoryParent(@RequestParam(required = false, defaultValue = "2") Integer type) {
+    public ResultVo<List<GameCategoryParentVO>> getGameCategoryParent(@RequestParam Integer type) {
         return ResultVo.ok(gameCategoryService.getGameCategoryParent(type));
     }
 

+ 99 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/dto/UserDTO.java

@@ -0,0 +1,99 @@
+package com.zanxiang.manage.domain.dto;
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-09
+ * @description : 用户信息
+ */
+@Data
+public class UserDTO {
+
+    /**
+     * id
+     */
+    private Long id;
+
+    /**
+     * 所属渠道ID
+     */
+    private Long agentId;
+
+    /**
+     * 用户名
+     */
+    private String username;
+
+    /**
+     * 昵称
+     */
+    private String nickname;
+
+    /**
+     * 注册手机号
+     */
+    private String regMobile;
+
+    /**
+     * 注册邮箱
+     */
+    private String regEmail;
+
+    /**
+     * 密码
+     */
+    private String password;
+
+    /**
+     * 绑定邮箱
+     */
+    private String email;
+
+    /**
+     * 绑定手机号码
+     */
+    private String mobile;
+
+    /**
+     * 设备来源 mobile,android,iphone,ipad,web,pc,mac,wxapp
+     */
+    private String fromDevice;
+
+    /**
+     * 设备ID android 为imei ios 为idfa
+     */
+    private String deviceId;
+
+    /**
+     * 设备类型
+     */
+    private String deviceType;
+
+    /**
+     * -1 为冻结状态, 1 为试玩状态 2为正常状态
+     */
+    private Integer status;
+
+    /**
+     * 头像
+     */
+    private String avatar;
+
+    /**
+     * 渠道
+     */
+    private Long channel;
+
+    /**
+     * 注册时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 更改时间
+     */
+    private LocalDateTime updateTime;
+}

+ 3 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/GameCategoryListParam.java

@@ -2,6 +2,7 @@ package com.zanxiang.manage.domain.params;
 
 import com.zanxiang.common.base.BasePage;
 import com.zanxiang.mybatis.entity.GameCategory;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -17,10 +18,12 @@ public class GameCategoryListParam extends BasePage<GameCategory> {
     /**
      * 标签名称
      */
+    @ApiModelProperty(notes = "标签名称")
     private String labelName;
 
     /**
      * 是否父标签
      */
+    @ApiModelProperty(notes = "是否父标签")
     private Boolean isParent;
 }

+ 21 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/IpBanAddParam.java

@@ -0,0 +1,21 @@
+package com.zanxiang.manage.domain.params;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-28
+ * @description : ip封禁添加参数
+ */
+@Data
+public class IpBanAddParam {
+
+    /**
+     * ip列表
+     */
+    @NotEmpty(message = "ip列表不可为空")
+    private List<String> ipList;
+}

+ 29 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/IpBanListParam.java

@@ -0,0 +1,29 @@
+package com.zanxiang.manage.domain.params;
+
+import com.zanxiang.common.base.BasePage;
+import com.zanxiang.mybatis.entity.IpBan;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-28
+ * @description : ip封禁列表参数
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class IpBanListParam extends BasePage<IpBan> {
+
+    /**
+     * 查询ip
+     */
+    @ApiModelProperty(notes = "查询的ip")
+    private String ip;
+
+    /**
+     * 封禁状态
+     */
+    @ApiModelProperty(notes = "封禁状态")
+    private Integer status;
+}

+ 30 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/IpBanUpdateParam.java

@@ -0,0 +1,30 @@
+package com.zanxiang.manage.domain.params;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-28
+ * @description : ip封禁管理更新参数
+ */
+@Data
+public class IpBanUpdateParam {
+
+    /**
+     * ip
+     */
+    @NotBlank(message = "ip参数不可为空")
+    @ApiModelProperty(notes = "ip")
+    private String ip;
+
+    /**
+     * 状态
+     */
+    @NotNull(message = "封禁状态不可为空")
+    @ApiModelProperty(notes = "状态, 0 : 解封, 1 : 封禁")
+    private Integer status;
+}

+ 19 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/UserBanAddParam.java

@@ -0,0 +1,19 @@
+package com.zanxiang.manage.domain.params;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-29
+ * @description : 玩家封禁添加
+ */
+@Data
+public class UserBanAddParam {
+
+    /**
+     * 玩家id
+     */
+    @ApiModelProperty(notes = "玩家id")
+    private Long userId;
+}

+ 55 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/UserBanListParam.java

@@ -0,0 +1,55 @@
+package com.zanxiang.manage.domain.params;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zanxiang.common.base.BasePage;
+import com.zanxiang.mybatis.entity.UserBan;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDate;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-29
+ * @description : 玩家封禁列表查询
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class UserBanListParam extends BasePage<UserBan> {
+
+    /**
+     * 玩家id
+     */
+    @ApiModelProperty(notes = "玩家id")
+    private String userId;
+
+    /**
+     * 用户账号
+     */
+    @ApiModelProperty(notes = "玩家账号")
+    private String userName;
+
+    /**
+     * 用户昵称
+     */
+    @ApiModelProperty(notes = "玩家昵称")
+    private String userNickName;
+
+    /**
+     * 注册开始时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @ApiModelProperty(notes = "注册开始时间")
+    private LocalDate regBeginTime;
+
+    /**
+     * 注册结束时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @ApiModelProperty(notes = "注册结束时间")
+    private LocalDate regEndTime;
+}

+ 30 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/UserBanUpdateParam.java

@@ -0,0 +1,30 @@
+package com.zanxiang.manage.domain.params;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-29
+ * @description : 玩家封禁更新
+ */
+@Data
+public class UserBanUpdateParam {
+
+    /**
+     * 玩家id
+     */
+    @NotNull(message = "玩家id参数不可为空")
+    @ApiModelProperty(notes = "玩家id")
+    private Long userId;
+
+    /**
+     * 状态
+     */
+    @NotNull(message = "封禁状态不可为空")
+    @ApiModelProperty(notes = "状态, 0 : 解封, 1 : 封禁")
+    private Integer status;
+}

+ 2 - 2
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/vo/CpVO.java

@@ -47,13 +47,13 @@ public class CpVO {
      * 对接状态
      */
     @ApiModelProperty(notes = "对接状态")
-    private Integer status;
+    private String status;
 
     /**
      * 备注
      */
     @ApiModelProperty(notes = "备注")
-    private String describe;
+    private String remark;
 
     /**
      * 创建时间

+ 1 - 1
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/vo/GameCategoryParentVO.java

@@ -15,7 +15,7 @@ public class GameCategoryParentVO {
      * 主键id
      */
     @ApiModelProperty(notes = "主键id")
-    private String id;
+    private Long id;
 
     /**
      * 名称

+ 45 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/vo/IpBanVO.java

@@ -0,0 +1,45 @@
+package com.zanxiang.manage.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-28
+ * @description : ip封禁详情
+ */
+@Data
+public class IpBanVO {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(notes = "主键id")
+    private Long id;
+
+    /**
+     * ip
+     */
+    @ApiModelProperty(notes = "ip")
+    private String ip;
+
+    /**
+     * 封禁时间
+     */
+    @ApiModelProperty(notes = "封禁时间")
+    private LocalDateTime banTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(notes = "更新时间")
+    private LocalDateTime updateTime;
+
+    /**
+     * 状态, 0 正常 1 封禁
+     */
+    @ApiModelProperty(notes = "状态, 0 正常 1 封禁")
+    private Integer status;
+}

+ 63 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/vo/UserBanVO.java

@@ -0,0 +1,63 @@
+package com.zanxiang.manage.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-28
+ * @description : 玩家封禁信息
+ */
+@Data
+public class UserBanVO {
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(notes = "主键")
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(notes = "用户id")
+    private String userId;
+
+    /**
+     * 用户账号
+     */
+    @ApiModelProperty(notes = "用户账号")
+    private String userName;
+
+    /**
+     * 用户昵称
+     */
+    @ApiModelProperty(notes = "用户昵称")
+    private String userNickName;
+
+    /**
+     * 注册时间
+     */
+    @ApiModelProperty(notes = "注册时间")
+    private LocalDateTime regTime;
+
+    /**
+     * 封禁时间
+     */
+    @ApiModelProperty(notes = "封禁时间")
+    private LocalDateTime banTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(notes = "更新时间")
+    private LocalDateTime updateTime;
+
+    /**
+     * 状态, 0 正常 1 封禁
+     */
+    @ApiModelProperty(notes = "状态, 0 正常 1 封禁")
+    private Integer status;
+}

+ 32 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/filter/CORSFilter.java

@@ -0,0 +1,32 @@
+package com.zanxiang.manage.filter;
+
+import org.springframework.context.annotation.Configuration;
+
+import javax.servlet.*;
+import javax.servlet.annotation.WebFilter;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-16
+ * @description : 过滤器
+ */
+@WebFilter(filterName = "CorsFilter ")
+@Configuration
+public class CORSFilter implements Filter {
+
+    @Override
+    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
+        HttpServletResponse response = (HttpServletResponse) res;
+        HttpServletRequest request = (HttpServletRequest) req;
+        response.setHeader("Access-Control-Allow-Origin", request.getHeader("origin"));
+        response.setHeader("Access-Control-Allow-Credentials", "true");
+        response.setHeader("Access-Control-Allow-Methods", "POST, GET, PATCH, DELETE, PUT, OPTION");
+        response.setHeader("Access-Control-Max-Age", "3600");
+        response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, cookie, token, Authorization");
+        chain.doFilter(req, res);
+    }
+
+}

+ 12 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/service/GameService.java

@@ -0,0 +1,12 @@
+package com.zanxiang.manage.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zanxiang.mybatis.entity.Game;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-24
+ * @description : 游戏逻辑
+ */
+public interface GameService extends IService<Game> {
+}

+ 10 - 2
game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/GameCategoryServiceImpl.java

@@ -40,7 +40,8 @@ public class GameCategoryServiceImpl extends ServiceImpl<GameCategoryMapper, Gam
     @Override
     public List<GameCategoryParentVO> getGameCategoryParent(Integer type) {
         List<GameCategory> gameCategoryList = list(new LambdaQueryWrapper<GameCategory>()
-                .eq(GameCategory::getType, type));
+                .eq(GameCategory::getType, type)
+                .eq(GameCategory::getParentId, 0));
         return BeanUtils.copyList(gameCategoryList, GameCategoryParentVO.class);
     }
 
@@ -70,7 +71,14 @@ public class GameCategoryServiceImpl extends ServiceImpl<GameCategoryMapper, Gam
         if (Objects.isNull(gameCategory)) {
             return null;
         }
-        return BeanUtils.copy(gameCategory, GameCategoryVO.class);
+        GameCategoryVO categoryVO = BeanUtils.copy(gameCategory, GameCategoryVO.class);
+        if (Objects.equals(categoryVO.getParentId(), 0L)) {
+            categoryVO.setParentName(categoryVO.getName());
+        } else {
+            GameCategory category = super.getById(categoryVO.getParentId());
+            categoryVO.setParentName(category.getName());
+        }
+        return categoryVO;
     }
 
     /**

+ 23 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/GameServiceImpl.java

@@ -0,0 +1,23 @@
+package com.zanxiang.manage.service.Impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zanxiang.manage.service.GameService;
+import com.zanxiang.mybatis.entity.Game;
+import com.zanxiang.mybatis.mapper.GameMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-24
+ * @description : 游戏逻辑
+ */
+@Slf4j
+@Service
+public class GameServiceImpl extends ServiceImpl<GameMapper, Game> implements GameService {
+
+    /**
+     * 新增游戏
+     */
+
+}

+ 121 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/IpBanServiceImpl.java

@@ -0,0 +1,121 @@
+package com.zanxiang.manage.service.Impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zanxiang.common.enums.BanStatusEnum;
+import com.zanxiang.common.utils.StringUtils;
+import com.zanxiang.common.utils.bean.BeanUtils;
+import com.zanxiang.manage.domain.params.IpBanAddParam;
+import com.zanxiang.manage.domain.params.IpBanListParam;
+import com.zanxiang.manage.domain.params.IpBanUpdateParam;
+import com.zanxiang.manage.domain.vo.IpBanVO;
+import com.zanxiang.manage.service.IpBanService;
+import com.zanxiang.mybatis.entity.IpBan;
+import com.zanxiang.mybatis.mapper.IpBanMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-28
+ * @description : ip封禁管理
+ */
+@Slf4j
+@Service
+public class IpBanServiceImpl extends ServiceImpl<IpBanMapper, IpBan> implements IpBanService {
+
+    /**
+     * 查询ip封禁列表
+     *
+     * @param param : 查询参数
+     * @return : 返回单页数据
+     */
+    @Override
+    public IPage<IpBanVO> list(IpBanListParam param) {
+        return page(param.toPage(), new QueryWrapper<IpBan>().lambda()
+                .eq(StringUtils.isNotBlank(param.getIp()), IpBan::getIp, param.getIp())
+                .eq(param.getStatus() != null, IpBan::getStatus, param.getStatus())
+                .ge(param.getBeginDate() != null, IpBan::getBanTime, param.getBeginDate() == null ? null : LocalDateTime.of(param.getBeginDate(), LocalTime.MIN))
+                .le(param.getEndDate() != null, IpBan::getBanTime, param.getEndDate() == null ? null : LocalDateTime.of(param.getEndDate(), LocalTime.MAX))
+                .orderByDesc(IpBan::getCreateTime))
+                .convert(this::toVo);
+    }
+
+    /**
+     * 游戏标签对象转换
+     *
+     * @param ipBan : ip封禁信息
+     * @return : 返回ip封禁详情
+     */
+    private IpBanVO toVo(IpBan ipBan) {
+        if (Objects.isNull(ipBan)) {
+            return null;
+        }
+        return BeanUtils.copy(ipBan, IpBanVO.class);
+    }
+
+    /**
+     * 添加封禁ip
+     *
+     * @param param : 添加的ip列表
+     * @return : 返回添加结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean addIp(IpBanAddParam param) {
+        List<IpBan> list = new ArrayList<>();
+        param.getIpList().forEach(ip -> {
+            //先查询是否已经存在
+            IpBan ipBan = super.getOne(new LambdaQueryWrapper<IpBan>().eq(IpBan::getIp, ip));
+            if (ipBan == null) {
+                ipBan = IpBan.builder()
+                        .ip(ip)
+                        .banTime(LocalDateTime.now())
+                        .status(BanStatusEnum.BAN_STATUS.getStatus())
+                        .operateId(1L)
+                        .operateName("赞象 admin")
+                        .createTime(LocalDateTime.now())
+                        .updateTime(LocalDateTime.now())
+                        .build();
+            } else {
+                if (ipBan.getStatus() == 0) {
+                    ipBan.setStatus(BanStatusEnum.BAN_STATUS.getStatus());
+                    ipBan.setBanTime(LocalDateTime.now());
+                    ipBan.setUpdateTime(LocalDateTime.now());
+                    ipBan.setOperateId(1L);
+                    ipBan.setOperateName("赞象 admin");
+                }
+            }
+            list.add(ipBan);
+        });
+        return super.saveOrUpdateBatch(list);
+    }
+
+    /**
+     * ip封禁或者解封
+     *
+     * @param param : ip封禁更新参数
+     * @return : 返回更新结果
+     */
+    @Override
+    public Boolean ipBanOrRemove(IpBanUpdateParam param) {
+        return super.update(new LambdaUpdateWrapper<IpBan>()
+                .set(IpBan::getStatus, param.getStatus())
+                .set(IpBan::getBanTime, Objects.equals(param.getStatus(), BanStatusEnum.BAN_STATUS.getStatus()) ? LocalDateTime.now() : null)
+                .set(IpBan::getOperateId, 1L)
+                .set(IpBan::getOperateName, "赞象 admin")
+                .set(IpBan::getUpdateTime, LocalDateTime.now())
+                .eq(IpBan::getIp, param.getIp())
+        );
+    }
+}

+ 118 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/UserBanServiceImpl.java

@@ -0,0 +1,118 @@
+package com.zanxiang.manage.service.Impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zanxiang.common.enums.BanStatusEnum;
+import com.zanxiang.common.exception.BaseException;
+import com.zanxiang.common.utils.StringUtils;
+import com.zanxiang.common.utils.bean.BeanUtils;
+import com.zanxiang.manage.domain.dto.UserDTO;
+import com.zanxiang.manage.domain.params.UserBanListParam;
+import com.zanxiang.manage.domain.params.UserBanUpdateParam;
+import com.zanxiang.manage.domain.vo.UserBanVO;
+import com.zanxiang.manage.service.UserBanService;
+import com.zanxiang.manage.service.UserService;
+import com.zanxiang.mybatis.entity.UserBan;
+import com.zanxiang.mybatis.mapper.UserBanMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.util.Objects;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-28
+ * @description : 玩家封禁管理
+ */
+@Slf4j
+@Service
+public class UserBanServiceImpl extends ServiceImpl<UserBanMapper, UserBan> implements UserBanService {
+
+    @Autowired
+    private UserService userService;
+
+    /**
+     * 查询ip封禁列表
+     *
+     * @param param : 查询参数
+     * @return : 返回单页数据
+     */
+    @Override
+    public IPage<UserBanVO> list(UserBanListParam param) {
+        return page(param.toPage(), new QueryWrapper<UserBan>().lambda()
+                .eq(param.getUserId() != null, UserBan::getUserId, param.getUserId())
+                .eq(StringUtils.isNotBlank(param.getUserName()), UserBan::getUserName, param.getUserName())
+                .eq(StringUtils.isNotBlank(param.getUserNickName()), UserBan::getUserNickName, param.getUserNickName())
+                .ge(param.getRegBeginTime() != null, UserBan::getRegTime, param.getRegBeginTime() == null ? null : LocalDateTime.of(param.getRegBeginTime(), LocalTime.MIN))
+                .le(param.getRegEndTime() != null, UserBan::getRegTime, param.getRegEndTime() == null ? null : LocalDateTime.of(param.getRegEndTime(), LocalTime.MAX))
+                .ge(param.getBeginDate() != null, UserBan::getBanTime, param.getBeginDate() == null ? null : LocalDateTime.of(param.getBeginDate(), LocalTime.MIN))
+                .le(param.getEndDate() != null, UserBan::getBanTime, param.getEndDate() == null ? null : LocalDateTime.of(param.getEndDate(), LocalTime.MAX))
+                .orderByDesc(UserBan::getCreateTime))
+                .convert(this::toVo);
+    }
+
+    /**
+     * 游戏标签对象转换
+     *
+     * @param userBan : 玩家封禁信息
+     * @return : 返回玩家封禁详情
+     */
+    private UserBanVO toVo(UserBan userBan) {
+        if (Objects.isNull(userBan)) {
+            return null;
+        }
+        return BeanUtils.copy(userBan, UserBanVO.class);
+    }
+
+
+    /**
+     * 玩家封禁添加或者更新
+     *
+     * @param param : 玩家封禁更新参数
+     * @return : 返回更新结果
+     */
+    @Override
+    public Boolean addOrUpdate(UserBanUpdateParam param) {
+        //查询玩家
+        UserBan userBan = super.getOne(new LambdaQueryWrapper<UserBan>().eq(UserBan::getUserId, param.getUserId()));
+        //已存在的玩家直接更新
+        if (userBan != null) {
+            return super.update(new LambdaUpdateWrapper<UserBan>()
+                    .set(UserBan::getStatus, param.getStatus())
+                    .set(UserBan::getBanTime, Objects.equals(param.getStatus(), BanStatusEnum.BAN_STATUS.getStatus()) ? LocalDateTime.now() : null)
+                    .set(UserBan::getOperateId, 1L)
+                    .set(UserBan::getOperateName, "赞象 admin")
+                    .set(UserBan::getUpdateTime, LocalDateTime.now())
+                    .eq(UserBan::getUserId, param.getUserId())
+            );
+        }
+        //玩家信息不存在, 并且是解封状态, 直接过
+        if (Objects.equals(param.getStatus(), BanStatusEnum.NORMAL_STATUS.getStatus())) {
+            return Boolean.TRUE;
+        }
+        //查询玩家用户信息
+        UserDTO userDTO = userService.getById(param.getUserId());
+        if (userDTO == null) {
+            throw new BaseException("参数错误, 玩家信息不存在");
+        }
+        return super.save(UserBan.builder()
+                .userId(userDTO.getId())
+                .userName(userDTO.getUsername())
+                .userNickName(userDTO.getNickname())
+                .regTime(userDTO.getCreateTime())
+                .banTime(LocalDateTime.now())
+                .status(BanStatusEnum.BAN_STATUS.getStatus())
+                .operateId(1L)
+                .operateName("赞象 admin")
+                .createTime(LocalDateTime.now())
+                .updateTime(LocalDateTime.now())
+                .build());
+    }
+
+}

+ 31 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/UserServiceImpl.java

@@ -0,0 +1,31 @@
+package com.zanxiang.manage.service.Impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zanxiang.common.utils.bean.BeanUtils;
+import com.zanxiang.manage.domain.dto.UserDTO;
+import com.zanxiang.manage.service.UserService;
+import com.zanxiang.mybatis.entity.User;
+import com.zanxiang.mybatis.mapper.UserMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-07
+ * @description : 用户信息
+ */
+@Slf4j
+@Service
+public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
+
+    /**
+     * 根据用户id查询信息
+     *
+     * @return : 返回用户信息
+     */
+    @Override
+    public UserDTO getById(Long userId) {
+        return BeanUtils.copy(super.getById(userId), UserDTO.class);
+    }
+
+}

+ 39 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/service/IpBanService.java

@@ -0,0 +1,39 @@
+package com.zanxiang.manage.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.zanxiang.manage.domain.params.IpBanAddParam;
+import com.zanxiang.manage.domain.params.IpBanListParam;
+import com.zanxiang.manage.domain.params.IpBanUpdateParam;
+import com.zanxiang.manage.domain.vo.IpBanVO;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-28
+ * @description : ip封禁管理
+ */
+public interface IpBanService {
+
+    /**
+     * 查询ip封禁列表
+     *
+     * @param param : 查询参数
+     * @return : 返回单页数据
+     */
+    IPage<IpBanVO> list(IpBanListParam param);
+
+    /**
+     * 添加封禁ip
+     *
+     * @param param : 添加的ip列表
+     * @return : 返回添加结果
+     */
+    Boolean addIp(IpBanAddParam param);
+
+    /**
+     * ip封禁或者解封
+     *
+     * @param param : ip封禁更新参数
+     * @return : 返回更新结果
+     */
+    Boolean ipBanOrRemove(IpBanUpdateParam param);
+}

+ 30 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/service/UserBanService.java

@@ -0,0 +1,30 @@
+package com.zanxiang.manage.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.zanxiang.manage.domain.params.UserBanListParam;
+import com.zanxiang.manage.domain.params.UserBanUpdateParam;
+import com.zanxiang.manage.domain.vo.UserBanVO;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-28
+ * @description : 玩家封禁管理
+ */
+public interface UserBanService {
+
+    /**
+     * 查询ip封禁列表
+     *
+     * @param param : 查询参数
+     * @return : 返回单页数据
+     */
+    IPage<UserBanVO> list(UserBanListParam param);
+
+    /**
+     * 玩家封禁添加或者更新
+     *
+     * @param param : 玩家封禁更新参数
+     * @return : 返回更新结果
+     */
+    Boolean addOrUpdate(UserBanUpdateParam param);
+}

+ 20 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/service/UserService.java

@@ -0,0 +1,20 @@
+package com.zanxiang.manage.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zanxiang.manage.domain.dto.UserDTO;
+import com.zanxiang.mybatis.entity.User;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-08
+ * @description : 用户信息
+ */
+public interface UserService extends IService<User> {
+
+    /**
+     * 根据用户id查询信息
+     *
+     * @return : 返回用户信息
+     */
+    UserDTO getById(Long userId);
+}

+ 68 - 0
game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/entity/IpBan.java

@@ -0,0 +1,68 @@
+package com.zanxiang.mybatis.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.*;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-28
+ * @description : Ip封禁表
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ToString
+@Builder
+@TableName("h_ip_ban")
+public class IpBan {
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * ip
+     */
+    private String ip;
+
+    /**
+     * 封禁时间
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private LocalDateTime banTime;
+
+    /**
+     * 状态, 0 正常 1 封禁
+     */
+    private Integer status;
+
+    /**
+     * 操作者id
+     */
+    private Long operateId;
+
+    /**
+     * 操作者名字
+     */
+    private String operateName;
+
+    /**
+     * 1:删除,0: 正常
+     */
+    @TableLogic
+    private Integer isDelete;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+}

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

@@ -79,7 +79,7 @@ public class User {
     /**
      * 设备类型
      */
-    private String deviceType;
+    private Integer deviceType;
 
     /**
      * -1 为冻结状态, 1 为试玩状态 2为正常状态

+ 85 - 0
game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/entity/UserBan.java

@@ -0,0 +1,85 @@
+package com.zanxiang.mybatis.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-28
+ * @description : 用户封禁表
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ToString
+@Builder
+@TableName("h_user_ban")
+public class UserBan {
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 用户账号
+     */
+    private String userName;
+
+    /**
+     * 用户昵称
+     */
+    private String userNickName;
+
+    /**
+     * 注册时间
+     */
+    private LocalDateTime regTime;
+
+    /**
+     * 封禁时间
+     */
+    private LocalDateTime banTime;
+
+    /**
+     * 状态, 0 正常 1 封禁
+     */
+    private Integer status;
+
+    /**
+     * 操作者id
+     */
+    private Long operateId;
+
+    /**
+     * 操作者名字
+     */
+    private String operateName;
+
+    /**
+     * 1:删除,0: 正常
+     */
+    @TableLogic
+    private Integer isDelete;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+}

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

@@ -47,7 +47,7 @@ public class UserToken implements Serializable {
     /**
      * 设备类型;mobile,android,iphone,ipad,web,pc,mac,wxapp
      */
-    private String deviceType;
+    private Integer deviceType;
 
     /**
      * 创建时间

+ 12 - 0
game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/mapper/IpBanMapper.java

@@ -0,0 +1,12 @@
+package com.zanxiang.mybatis.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zanxiang.mybatis.entity.IpBan;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-28
+ * @description : ${description}
+ */
+public interface IpBanMapper extends BaseMapper<IpBan> {
+}

+ 12 - 0
game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/mapper/UserBanMapper.java

@@ -0,0 +1,12 @@
+package com.zanxiang.mybatis.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zanxiang.mybatis.entity.UserBan;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-28
+ * @description : ${description}
+ */
+public interface UserBanMapper extends BaseMapper<UserBan> {
+}

+ 4 - 0
game-module/game-mybatis/src/main/resources/mapper/IpBanMapper.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zanxiang.mybatis.mapper.IpBanMapper">
+</mapper>

+ 4 - 0
game-module/game-mybatis/src/main/resources/mapper/UserBanMapper.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zanxiang.mybatis.mapper.UserBanMapper">
+</mapper>

+ 1 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/common/resolver/TokenArgumentResolver.java

@@ -60,7 +60,7 @@ public class TokenArgumentResolver implements HandlerMethodArgumentResolver {
             }
             return data;
         }
-        UserTokenDTO tokenInfoByTokenDevice = userTokenService.getTokenInfoByTokenDevice(token, deviceType.toString());
+        UserTokenDTO tokenInfoByTokenDevice = userTokenService.getTokenInfoByTokenDevice(token, deviceType);
         if (tokenInfoByTokenDevice == null) {
             if (b) {
                 throw new CustomException(HttpStatusEnum.USER_NO_LOGIN);

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

@@ -39,7 +39,7 @@ public class UserController {
     @ApiOperation(value = "用户获取信息详情")
     @PostMapping("/get/user/detail")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
-    public ResultVo getUserDetail(@Validated @RequestBody UserDetailParam userDetailParam, @ValidLogin UserData userData) {
+    public ResultVo getUserDetail(@Validated @RequestBody UserDetailParam userDetailParam, UserData userData) {
         return userService.getUserDetail(userDetailParam, userData);
     }
 }

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

@@ -35,7 +35,7 @@ public class UserTokenDTO {
     /**
      * 设备类型;mobile,android,iphone,ipad,web,pc,mac,wxapp
      */
-    private String deviceType;
+    private Integer deviceType;
 
     /**
      * 创建时间

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

@@ -37,7 +37,7 @@ public class CommonParam {
 
     @ApiModelProperty("设备类型")
     @JsonAlias("device-type")
-    private String deviceType;
+    private Integer deviceType;
 
 //            "device-os":"",
 //            "device-os_version":"",

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

@@ -116,7 +116,7 @@ public class RegisterLoginServiceImpl implements RegisterLoginService {
     public ResultVo<UserLoginVO> qqLoginCallback(QqLoginCallbackParam qqLoginCallbackParam, HttpServletRequest request, UserData userData) {
         String code = qqLoginCallbackParam.getCode();
         String state = qqLoginCallbackParam.getState();
-        String deviceType = userData.getDeviceType().toString();
+        Integer deviceType = userData.getDeviceType();
         //验证state,如果不一致,可能被CSRF攻击
         this.checkState(state);
         //获取用户信息
@@ -173,7 +173,7 @@ public class RegisterLoginServiceImpl implements RegisterLoginService {
      */
     @Override
     public ResultVo<UserLoginVO> vxLoginCallback(QqLoginCallbackParam qqLoginCallbackParam, HttpServletRequest request, UserData userData) {
-        String deviceType = userData.getDeviceType().toString();
+        Integer deviceType = userData.getDeviceType();
         String code = qqLoginCallbackParam.getCode();
         String state = qqLoginCallbackParam.getState();
         //验证state,如果不一致,可能被CSRF攻击
@@ -231,7 +231,7 @@ public class RegisterLoginServiceImpl implements RegisterLoginService {
         //插入用户登录记录
         userLoginLogService.addUserLoginLog(realIp, user, registerPasswordParam.getGameId());
         //获取token
-        String userToken = userTokenService.getUserToken(user.getId(), userData.getDeviceType().toString());
+        String userToken = userTokenService.getUserToken(user.getId(), userData.getDeviceType());
         //返回用户token
         return new ResultVo<>(new UserLoginVO(userToken));
     }
@@ -272,14 +272,14 @@ public class RegisterLoginServiceImpl implements RegisterLoginService {
                 .mobile(mobile)
                 .password(RegisterUtil.cmfPassword(password))
                 .deviceId(registerMobileParam.getDeviceId())
-                .deviceType(registerMobileParam.getDeviceType())
+                .deviceType(userData.getDeviceType())
                 .status(AccountStatusEnum.NORMAL_STATUS.getStatus())
                 .createTime(LocalDateTime.now())
                 .updateTime(LocalDateTime.now())
                 .build();
         userService.save(user);
         //获取token
-        String userToken = userTokenService.getUserToken(user.getId(), userData.getDeviceType().toString());
+        String userToken = userTokenService.getUserToken(user.getId(), userData.getDeviceType());
         //登录的ip
         String realIp = IpUtils.getRealIp(request);
         //插入用户登录记录
@@ -323,7 +323,7 @@ public class RegisterLoginServiceImpl implements RegisterLoginService {
             return new ResultVo<>(HttpStatusEnum.USERNAME_OR_PASSWORD_ERR);
         }
         //验证通过, 获取token
-        String userToken = userTokenService.getUserToken(user.getId(), userData.getDeviceType().toString());
+        String userToken = userTokenService.getUserToken(user.getId(), userData.getDeviceType());
         //登录的ip
         String realIp = IpUtils.getRealIp(request);
         //插入用户登录记录
@@ -363,7 +363,7 @@ public class RegisterLoginServiceImpl implements RegisterLoginService {
             return new ResultVo<>(HttpStatusEnum.ACCOUNT_HALT);
         }
         //验证通过, 获取token
-        String userToken = userTokenService.getUserToken(user.getId(), userData.getDeviceType().toString());
+        String userToken = userTokenService.getUserToken(user.getId(), userData.getDeviceType());
         //登录的ip
         String realIp = IpUtils.getRealIp(request);
         //插入用户登录记录
@@ -380,7 +380,7 @@ public class RegisterLoginServiceImpl implements RegisterLoginService {
      * @param userOauthDTO : 用户授权信息
      * @return : 返回应用用户信息
      */
-    private User getUserByUserOauth(String deviceType, Map<String, String> userInfoMap, UserOauthDTO userOauthDTO) {
+    private User getUserByUserOauth(Integer deviceType, Map<String, String> userInfoMap, UserOauthDTO userOauthDTO) {
         if (userOauthDTO != null) {
             return userService.getById(userOauthDTO.getUserId());
         }

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

@@ -118,7 +118,7 @@ public class SmsServiceImpl implements SmsService {
             return new ResultVo<>(HttpStatusEnum.PHONE_NOT_REG);
         }
         //获取token
-        String userToken = userTokenService.getUserToken(userDTO.getId(), userData.getDeviceType().toString());
+        String userToken = userTokenService.getUserToken(userDTO.getId(), userData.getDeviceType());
         //返回
         return new ResultVo<>(HttpStatusEnum.SUCCESS, userToken);
     }

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

@@ -63,7 +63,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
             return new ResultVo<>(HttpStatusEnum.USERNAME_NOT_EXISTS);
         }
         //验证token是否存在
-        HttpStatusEnum checkUserTokenEnum = userTokenService.checkUserToken(token, user.getId(), userData.getDeviceType().toString());
+        HttpStatusEnum checkUserTokenEnum = userTokenService.checkUserToken(token, user.getId(), userData.getDeviceType());
         if (!Objects.equals(HttpStatusEnum.SUCCESS, checkUserTokenEnum)) {
             return new ResultVo<>(checkUserTokenEnum);
         }
@@ -91,7 +91,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     @Override
     public ResultVo<UserVO> getUserDetail(UserDetailParam userDetailParam, UserData userData) {
         String token = userDetailParam.getToken();
-        String deviceType = userData.getDeviceType().toString();
+        Integer deviceType = userData.getDeviceType();
         UserTokenDTO userTokenDTO = userTokenService.getTokenInfoByTokenDevice(token, deviceType);
         if (userTokenDTO == null) {
             return new ResultVo<>(HttpStatusEnum.INVALID_PARAMS);

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

@@ -45,7 +45,7 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
      * @return : 返回用户token详情
      */
     @Override
-    public UserTokenDTO getTokenInfoByTokenDevice(String token, String deviceType) {
+    public UserTokenDTO getTokenInfoByTokenDevice(String token, Integer deviceType) {
         //查询缓存信息
         String tokenInfoKey = this.getTokenInfoKey(token, deviceType);
         UserToken userToken = redisUtil.getCache(tokenInfoKey);
@@ -76,7 +76,7 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
      * @return : 返回token
      */
     @Override
-    public UserTokenDTO getTokenInfoByUserDevice(Long userId, String deviceType) {
+    public UserTokenDTO getTokenInfoByUserDevice(Long userId, Integer deviceType) {
         //查询缓存信息
         String userTokenKey = this.getUserTokenKey(userId, deviceType);
         UserToken userToken = redisUtil.getCache(userTokenKey);
@@ -108,7 +108,7 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
      * @return : 返回token校验结果
      */
     @Override
-    public HttpStatusEnum checkUserToken(String token, Long userId, String deviceType) {
+    public HttpStatusEnum checkUserToken(String token, Long userId, Integer deviceType) {
         UserTokenDTO userTokenDTO = this.getTokenInfoByUserDevice(userId, deviceType);
         if (userTokenDTO != null && Objects.equals(userTokenDTO.getToken(), token)) {
             return HttpStatusEnum.SUCCESS;
@@ -124,7 +124,7 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
      * @return : 返回token
      */
     @Override
-    public String getUserToken(Long userId, String deviceType) {
+    public String getUserToken(Long userId, Integer deviceType) {
         //获取token
         String token = this.createToken(userId, deviceType);
         //查询数据库token信息
@@ -189,7 +189,7 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
      * @param deviceType : 设备类型
      * @return : 返回token
      */
-    private String createToken(Long userId, String deviceType) {
+    private String createToken(Long userId, Integer deviceType) {
         //生成随机数
         String random = userId + deviceType + UUID.randomUUID().toString() + System.currentTimeMillis();
         //创建token
@@ -208,7 +208,7 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
      * @param deviceType : 设备类型
      * @return : 返回用户token的缓存key
      */
-    private String getUserTokenKey(Long userId, String deviceType) {
+    private String getUserTokenKey(Long userId, Integer deviceType) {
         return RedisKeyConstant.USER_TOKEN_KEY + "_" + userId + "_" + deviceType;
     }
 
@@ -219,7 +219,7 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
      * @param deviceType : 设备类型
      * @return : 返回用户token的缓存key
      */
-    private String getTokenInfoKey(String token, String deviceType) {
+    private String getTokenInfoKey(String token, Integer deviceType) {
         return RedisKeyConstant.TOKEN_INFO_KEY + "_" + token + "_" + deviceType;
     }
 }

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

@@ -19,7 +19,7 @@ public interface UserTokenService extends IService<UserToken> {
      * @param deviceType : 设备类型
      * @return : 返回用户token详情
      */
-    UserTokenDTO getTokenInfoByTokenDevice(String token, String deviceType);
+    UserTokenDTO getTokenInfoByTokenDevice(String token, Integer deviceType);
 
     /**
      * 通过用户设备获取token详情
@@ -28,7 +28,7 @@ public interface UserTokenService extends IService<UserToken> {
      * @param deviceType : 设备类型
      * @return : 返回token
      */
-    UserTokenDTO getTokenInfoByUserDevice(Long userId, String deviceType);
+    UserTokenDTO getTokenInfoByUserDevice(Long userId, Integer deviceType);
 
     /**
      * 用户token校验
@@ -38,7 +38,7 @@ public interface UserTokenService extends IService<UserToken> {
      * @param deviceType : 设备类型
      * @return : 返回token校验结果
      */
-    HttpStatusEnum checkUserToken(String token, Long userId, String deviceType);
+    HttpStatusEnum checkUserToken(String token, Long userId, Integer deviceType);
 
     /**
      * 获取用户token
@@ -47,7 +47,7 @@ public interface UserTokenService extends IService<UserToken> {
      * @param deviceType : 设备类型
      * @return : 返回token
      */
-    String getUserToken(Long userId, String deviceType);
+    String getUserToken(Long userId, Integer deviceType);
 
     /**
      * 删除用户token