Browse Source

feat : 玩家模块代码提交

bilingfeng 2 years ago
parent
commit
8ecbfa749f
45 changed files with 809 additions and 101 deletions
  1. 26 10
      game-module/game-common/pom.xml
  2. 0 1
      game-module/game-manage/src/main/java/com/zanxiang/manage/ManageApplication.java
  3. 0 5
      game-module/game-manage/src/main/java/com/zanxiang/manage/controller/GamePayWayController.java
  4. 0 3
      game-module/game-manage/src/main/java/com/zanxiang/manage/controller/PayApplicationController.java
  5. 0 6
      game-module/game-manage/src/main/java/com/zanxiang/manage/controller/PayBoxController.java
  6. 2 5
      game-module/game-manage/src/main/java/com/zanxiang/manage/controller/PayMerchantController.java
  7. 0 1
      game-module/game-manage/src/main/java/com/zanxiang/manage/controller/PayWayController.java
  8. 36 4
      game-module/game-manage/src/main/java/com/zanxiang/manage/controller/UserController.java
  9. 0 1
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/bo/PayApplicationBO.java
  10. 6 1
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/dto/ChannelDTO.java
  11. 115 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/dto/GameUserRoleDTO.java
  12. 0 2
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/PayApplicationListNoPageParam.java
  13. 0 1
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/PayApplicationListParam.java
  14. 0 3
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/PayMerchantListNoPageParam.java
  15. 0 4
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/PayMerchantListParam.java
  16. 0 1
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/UserBanUpdateParam.java
  17. 26 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/UserLoginLogParam.java
  18. 106 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/vo/GameUserRoleVO.java
  19. 5 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/vo/GameUserVO.java
  20. 0 2
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/vo/PayMerchantListNoPageVO.java
  21. 69 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/vo/UserAddressVO.java
  22. 9 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/vo/UserOrderListVO.java
  23. 57 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/vo/UserRoleLoginVO.java
  24. 8 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/service/GameCategoryService.java
  25. 20 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/service/GameUserRoleService.java
  26. 8 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/service/GameUserService.java
  27. 11 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/GameCategoryServiceImpl.java
  28. 0 2
      game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/GamePayWayServiceImpl.java
  29. 67 11
      game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/GameUserRoleServiceImpl.java
  30. 11 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/GameUserServiceImpl.java
  31. 28 1
      game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/UserAddressServiceImpl.java
  32. 83 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/UserLoginLogServiceImpl.java
  33. 3 3
      game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/UserServiceImpl.java
  34. 0 2
      game-module/game-manage/src/main/java/com/zanxiang/manage/service/PayBoxService.java
  35. 23 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/service/UserAddressService.java
  36. 23 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/service/UserLoginLogService.java
  37. 3 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/service/UserService.java
  38. 16 16
      game-module/game-manage/src/main/resources/bootstrap.yml
  39. 6 1
      game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/entity/Channel.java
  40. 5 0
      game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/entity/GameUser.java
  41. 5 0
      game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/entity/GameUserRole.java
  42. 10 5
      game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/entity/Order.java
  43. 5 1
      game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/entity/UserAddress.java
  44. 15 5
      game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/entity/UserLoginLog.java
  45. 2 4
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/PerformOrderServiceImpl.java

+ 26 - 10
game-module/game-common/pom.xml

@@ -16,16 +16,32 @@
             <groupId>org.springframework.boot</groupId>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
             <artifactId>spring-boot-starter-web</artifactId>
         </dependency>
         </dependency>
-<!--        &lt;!&ndash; nacos配置中心 &ndash;&gt;-->
-<!--        <dependency>-->
-<!--            <groupId>com.alibaba.cloud</groupId>-->
-<!--            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>-->
-<!--        </dependency>-->
-<!--        &lt;!&ndash; nacos注册中心 &ndash;&gt;-->
-<!--        <dependency>-->
-<!--            <groupId>com.alibaba.cloud</groupId>-->
-<!--            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>-->
-<!--        </dependency>-->
+        <!-- nacos配置中心 默认的 nacos-client 2.0.3有 bug -->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.alibaba.nacos</groupId>
+                    <artifactId>nacos-client</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <!-- nacos注册中心 -->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.alibaba.nacos</groupId>
+                    <artifactId>nacos-client</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba.nacos</groupId>
+            <artifactId>nacos-client</artifactId>
+        </dependency>
         <dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-test</artifactId>
             <artifactId>spring-boot-starter-test</artifactId>

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

@@ -2,7 +2,6 @@ package com.zanxiang.manage;
 
 
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.mybatis.spring.annotation.MapperScan;
 import org.mybatis.spring.annotation.MapperScan;
-import org.mybatis.spring.annotation.MapperScans;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

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

@@ -2,14 +2,9 @@ package com.zanxiang.manage.controller;
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 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.manage.domain.bo.PayApplicationBO;
 import com.zanxiang.manage.domain.params.GamePayWayListParam;
 import com.zanxiang.manage.domain.params.GamePayWayListParam;
 import com.zanxiang.manage.domain.params.GamePayWayParam;
 import com.zanxiang.manage.domain.params.GamePayWayParam;
-import com.zanxiang.manage.domain.params.PayApplicationListParam;
-import com.zanxiang.manage.domain.params.PayApplicationParam;
 import com.zanxiang.manage.domain.vo.GamePayWayListVO;
 import com.zanxiang.manage.domain.vo.GamePayWayListVO;
-import com.zanxiang.manage.domain.vo.PayApplicationVO;
 import com.zanxiang.manage.service.GamePayWayService;
 import com.zanxiang.manage.service.GamePayWayService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;

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

@@ -2,15 +2,12 @@ package com.zanxiang.manage.controller;
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 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.common.utils.bean.BeanUtils;
 import com.zanxiang.manage.domain.bo.PayApplicationBO;
 import com.zanxiang.manage.domain.bo.PayApplicationBO;
-import com.zanxiang.manage.domain.dto.PayApplicationDTO;
 import com.zanxiang.manage.domain.params.PayApplicationListNoPageParam;
 import com.zanxiang.manage.domain.params.PayApplicationListNoPageParam;
 import com.zanxiang.manage.domain.params.PayApplicationListParam;
 import com.zanxiang.manage.domain.params.PayApplicationListParam;
 import com.zanxiang.manage.domain.params.PayApplicationParam;
 import com.zanxiang.manage.domain.params.PayApplicationParam;
 import com.zanxiang.manage.domain.vo.PayApplicationVO;
 import com.zanxiang.manage.domain.vo.PayApplicationVO;
-import com.zanxiang.manage.domain.vo.PayMerchantListVO;
 import com.zanxiang.manage.service.PayApplicationService;
 import com.zanxiang.manage.service.PayApplicationService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;

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

@@ -2,15 +2,9 @@ package com.zanxiang.manage.controller;
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 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.manage.domain.bo.PayMerchantBO;
 import com.zanxiang.manage.domain.params.PayBoxListParam;
 import com.zanxiang.manage.domain.params.PayBoxListParam;
 import com.zanxiang.manage.domain.params.PayBoxParam;
 import com.zanxiang.manage.domain.params.PayBoxParam;
-import com.zanxiang.manage.domain.params.PayMerchantListParam;
-import com.zanxiang.manage.domain.params.PayMerchantParam;
 import com.zanxiang.manage.domain.vo.PayBoxListVO;
 import com.zanxiang.manage.domain.vo.PayBoxListVO;
-import com.zanxiang.manage.domain.vo.PayMerchantListVO;
-import com.zanxiang.manage.domain.vo.PayMerchantVO;
 import com.zanxiang.manage.service.PayBoxService;
 import com.zanxiang.manage.service.PayBoxService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;

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

@@ -2,16 +2,13 @@ package com.zanxiang.manage.controller;
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 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.common.utils.bean.BeanUtils;
 import com.zanxiang.manage.domain.bo.PayMerchantBO;
 import com.zanxiang.manage.domain.bo.PayMerchantBO;
-import com.zanxiang.manage.domain.bo.PayMerchantListBO;
-import com.zanxiang.manage.domain.dto.PayMerchantDTO;
-import com.zanxiang.manage.domain.params.PayApplicationListParam;
 import com.zanxiang.manage.domain.params.PayMerchantListNoPageParam;
 import com.zanxiang.manage.domain.params.PayMerchantListNoPageParam;
 import com.zanxiang.manage.domain.params.PayMerchantListParam;
 import com.zanxiang.manage.domain.params.PayMerchantListParam;
 import com.zanxiang.manage.domain.params.PayMerchantParam;
 import com.zanxiang.manage.domain.params.PayMerchantParam;
-import com.zanxiang.manage.domain.vo.*;
+import com.zanxiang.manage.domain.vo.PayMerchantListNoPageVO;
+import com.zanxiang.manage.domain.vo.PayMerchantListVO;
 import com.zanxiang.manage.service.PayMerchantService;
 import com.zanxiang.manage.service.PayMerchantService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;

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

@@ -11,7 +11,6 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 

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

@@ -8,12 +8,10 @@ import com.zanxiang.common.enums.VipLevelEnum;
 import com.zanxiang.common.utils.bean.BeanUtils;
 import com.zanxiang.common.utils.bean.BeanUtils;
 import com.zanxiang.manage.domain.params.GameUserListParam;
 import com.zanxiang.manage.domain.params.GameUserListParam;
 import com.zanxiang.manage.domain.params.GameUserRoleListParam;
 import com.zanxiang.manage.domain.params.GameUserRoleListParam;
+import com.zanxiang.manage.domain.params.UserLoginLogParam;
 import com.zanxiang.manage.domain.params.UserNameAuthListParam;
 import com.zanxiang.manage.domain.params.UserNameAuthListParam;
 import com.zanxiang.manage.domain.vo.*;
 import com.zanxiang.manage.domain.vo.*;
-import com.zanxiang.manage.service.GameUserRoleService;
-import com.zanxiang.manage.service.GameUserService;
-import com.zanxiang.manage.service.UserExtService;
-import com.zanxiang.manage.service.UserService;
+import com.zanxiang.manage.service.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponse;
@@ -49,6 +47,12 @@ public class UserController {
     @Autowired
     @Autowired
     private UserService userService;
     private UserService userService;
 
 
+    @Autowired
+    private UserAddressService userAddressService;
+
+    @Autowired
+    private UserLoginLogService userLoginLogService;
+
 //    @ApiOperation(value = "玩家列表")
 //    @ApiOperation(value = "玩家列表")
 //    @PostMapping(value = "/list")
 //    @PostMapping(value = "/list")
 //    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = IpBanVO.class)})
 //    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = IpBanVO.class)})
@@ -70,6 +74,34 @@ public class UserController {
         return ResultVo.ok(userService.getUserInfo(id));
         return ResultVo.ok(userService.getUserInfo(id));
     }
     }
 
 
+    @ApiOperation(value = "玩家游戏角色列表")
+    @GetMapping(value = "/game/role/list")
+    @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));
+    }
+
+    @ApiOperation(value = "玩家登录记录列表")
+    @PostMapping(value = "/login/list")
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserRoleLoginVO.class)})
+    public ResultVo<IPage<UserRoleLoginVO>> loginList(@RequestBody UserLoginLogParam param) {
+        return ResultVo.ok(userLoginLogService.loginList(param));
+    }
+
+    @ApiOperation(value = "玩家下单记录列表")
+    @GetMapping(value = "/order/list")
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserAddressVO.class)})
+    public ResultVo<List<UserAddressVO>> orderList(@RequestParam Long userId) {
+        return ResultVo.ok();
+    }
+
+    @ApiOperation(value = "玩家收货地址列表")
+    @GetMapping(value = "/address/list")
+    @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));
+    }
+
     @ApiOperation(value = "玩家游戏列表")
     @ApiOperation(value = "玩家游戏列表")
     @PostMapping(value = "/game/list")
     @PostMapping(value = "/game/list")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameUserListVO.class)})
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameUserListVO.class)})

+ 0 - 1
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/bo/PayApplicationBO.java

@@ -2,7 +2,6 @@ package com.zanxiang.manage.domain.bo;
 
 
 import com.zanxiang.common.base.BasePage;
 import com.zanxiang.common.base.BasePage;
 import com.zanxiang.mybatis.entity.PayApplication;
 import com.zanxiang.mybatis.entity.PayApplication;
-import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;

+ 6 - 1
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/dto/ChannelDTO.java

@@ -18,10 +18,15 @@ public class ChannelDTO {
     private Long id;
     private Long id;
 
 
     /**
     /**
-     * 平台名称
+     * 渠道名称
      */
      */
     private String channelName;
     private String channelName;
 
 
+    /**
+     * 渠道唯一标识
+     */
+    private String channelSign;
+
     /**
     /**
      * 公司名称
      * 公司名称
      */
      */

+ 115 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/dto/GameUserRoleDTO.java

@@ -0,0 +1,115 @@
+package com.zanxiang.manage.domain.dto;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-07-05
+ * @description : 玩家角色
+ */
+@Data
+public class GameUserRoleDTO {
+
+    /**
+     * 主键id
+     */
+    private Long id;
+
+    /**
+     * 玩家用户id
+     */
+    private Long userId;
+
+    /**
+     * 游戏用户id, 对应game_user主键id
+     */
+    private Long gameUserId;
+
+    /**
+     * 游戏ID
+     */
+    private Long gameId;
+
+    /**
+     * 游戏服务器id,默认为0
+     */
+    private String serverId;
+
+    /**
+     * 所在服务器名称
+     */
+    private String serverName;
+
+    /**
+     * 角色id
+     */
+    private String roleId;
+
+    /**
+     * 角色名称
+     */
+    private String roleName;
+
+    /**
+     * 角色等级
+     */
+    private Long roleLevel;
+
+    /**
+     * 角色VIP
+     */
+    private Long roleVipLevel;
+
+    /**
+     * 玩家角色战力
+     */
+    private Long rolePower;
+
+    /**
+     * 平台币余额
+     */
+    private BigDecimal platformCoin;
+
+    /**
+     * 充值金额
+     */
+    private BigDecimal rechargeMoney;
+
+    /**
+     * 充值次数
+     */
+    private Integer rechargeCount;
+
+    /**
+     * 最近充值时间
+     */
+    private LocalDateTime lastRechargeTime;
+
+    /**
+     * 扩展信息
+     */
+    private String ext;
+
+    /**
+     * 操作系统
+     */
+    private String os;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+
+    /**
+     * 角色最后登录时间
+     */
+    private LocalDateTime lastLoginTime;
+}

+ 0 - 2
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/PayApplicationListNoPageParam.java

@@ -1,7 +1,5 @@
 package com.zanxiang.manage.domain.params;
 package com.zanxiang.manage.domain.params;
 
 
-import com.zanxiang.common.base.BasePage;
-import com.zanxiang.mybatis.entity.PayApplication;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.Data;

+ 0 - 1
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/PayApplicationListParam.java

@@ -2,7 +2,6 @@ package com.zanxiang.manage.domain.params;
 
 
 import com.zanxiang.common.base.BasePage;
 import com.zanxiang.common.base.BasePage;
 import com.zanxiang.mybatis.entity.PayApplication;
 import com.zanxiang.mybatis.entity.PayApplication;
-import com.zanxiang.mybatis.entity.PayMerchant;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.Data;

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

@@ -1,10 +1,7 @@
 package com.zanxiang.manage.domain.params;
 package com.zanxiang.manage.domain.params;
 
 
-import com.zanxiang.common.base.BasePage;
-import com.zanxiang.mybatis.entity.PayMerchant;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
-import lombok.EqualsAndHashCode;
 
 
 /**
 /**
  * @author xufeng
  * @author xufeng

+ 0 - 4
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/PayMerchantListParam.java

@@ -1,14 +1,10 @@
 package com.zanxiang.manage.domain.params;
 package com.zanxiang.manage.domain.params;
 
 
 import com.zanxiang.common.base.BasePage;
 import com.zanxiang.common.base.BasePage;
-import com.zanxiang.mybatis.entity.GameCategory;
 import com.zanxiang.mybatis.entity.PayMerchant;
 import com.zanxiang.mybatis.entity.PayMerchant;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-
-import java.io.Serializable;
 
 
 /**
 /**
  * @author xufeng
  * @author xufeng

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

@@ -3,7 +3,6 @@ package com.zanxiang.manage.domain.params;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
 
 
-import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.NotNull;
 
 
 /**
 /**

+ 26 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/UserLoginLogParam.java

@@ -0,0 +1,26 @@
+package com.zanxiang.manage.domain.params;
+
+import com.zanxiang.common.base.BasePage;
+import com.zanxiang.mybatis.entity.UserLoginLog;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-07-05
+ * @description : 用户登录查询参数
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class UserLoginLogParam extends BasePage<UserLoginLog> {
+
+    /**
+     * 用户id
+     */
+    @NotNull(message = "用户id不可为空")
+    @ApiModelProperty(notes = "用户id")
+    private Long userId;
+}

+ 106 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/vo/GameUserRoleVO.java

@@ -0,0 +1,106 @@
+package com.zanxiang.manage.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-07-05
+ * @description : 游戏角色
+ */
+@Data
+public class GameUserRoleVO {
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(notes = "主键")
+    private Long id;
+
+    /**
+     * 游戏名称
+     */
+    @ApiModelProperty(notes = "游戏名称")
+    private String gameName;
+
+    /**
+     * 游戏应用类型
+     */
+    @ApiModelProperty(notes = "游戏应用类型")
+    private String gameCategoryName;
+
+    /**
+     * 角色名称
+     */
+    @ApiModelProperty(notes = "角色名称")
+    private String roleName;
+
+    /**
+     * 角色id
+     */
+    @ApiModelProperty(notes = "角色id")
+    private String roleId;
+
+    /**
+     * 渠道名称
+     */
+    @ApiModelProperty(notes = "渠道名称")
+    private String channelName;
+
+    /**
+     * 所在服务器名称
+     */
+    @ApiModelProperty(notes = "所在服务器名称")
+    private String serverName;
+
+    /**
+     * 角色等级
+     */
+    @ApiModelProperty(notes = "角色等级")
+    private Long roleLevel;
+
+    /**
+     * 玩家角色战力
+     */
+    @ApiModelProperty(notes = "玩家角色战力")
+    private Long rolePower;
+
+    /**
+     * 操作系统
+     */
+    @ApiModelProperty(notes = "操作系统")
+    private String os;
+
+    /**
+     * 充值金额
+     */
+    @ApiModelProperty(notes = "充值金额")
+    private BigDecimal rechargeMoney;
+
+    /**
+     * 角色创建时间
+     */
+    @ApiModelProperty(notes = "角色创建时间")
+    private LocalDateTime createTime;
+
+    /**
+     * 游戏角色更新时间
+     */
+    @ApiModelProperty(notes = "游戏角色更新时间")
+    private LocalDateTime updateTime;
+
+    /**
+     * 最近登录时间
+     */
+    @ApiModelProperty(notes = "最近登录时间")
+    private LocalDateTime lastLoginTime;
+
+    /**
+     * 最近充值时间
+     */
+    @ApiModelProperty(notes = "最近充值时间")
+    private LocalDateTime lastRechargeTime;
+}

+ 5 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/vo/GameUserVO.java

@@ -23,6 +23,11 @@ public class GameUserVO {
      */
      */
     private Long userId;
     private Long userId;
 
 
+    /**
+     * 所属渠道ID
+     */
+    private Long agentId;
+
     /**
     /**
      * 导量的渠道ID
      * 导量的渠道ID
      */
      */

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

@@ -8,8 +8,6 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
-import java.math.BigDecimal;
-import java.util.Date;
 
 
 /**
 /**
  * @author xufeng
  * @author xufeng

+ 69 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/vo/UserAddressVO.java

@@ -0,0 +1,69 @@
+package com.zanxiang.manage.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-07-05
+ * @description : 用户收货地址
+ */
+@Data
+public class UserAddressVO {
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(notes = "主键")
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(notes = "用户id")
+    private Long userId;
+
+    /**
+     * 收货人
+     */
+    @ApiModelProperty(notes = "收货人")
+    private String receiver;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(notes = "手机号")
+    private String mobile;
+
+    /**
+     * 邮箱
+     */
+    @ApiModelProperty(notes = "邮箱")
+    private String email;
+
+    /**
+     * 是否默认
+     */
+    @ApiModelProperty(notes = "是否默认")
+    private Boolean isDefault;
+
+    /**
+     * 收货地址
+     */
+    @ApiModelProperty(notes = "收货地址")
+    private String address;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(notes = "创建时间")
+    private LocalDateTime createTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(notes = "更新时间")
+    private LocalDateTime updateTime;
+}

+ 9 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/vo/UserOrderListVO.java

@@ -0,0 +1,9 @@
+package com.zanxiang.manage.domain.vo;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-07-05
+ * @description : 下单记录
+ */
+public class UserOrderListVO {
+}

+ 57 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/vo/UserRoleLoginVO.java

@@ -0,0 +1,57 @@
+package com.zanxiang.manage.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-07-05
+ * @description : 角色登录记录
+ */
+@Data
+public class UserRoleLoginVO {
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(notes = "主键")
+    private Long id;
+
+    /**
+     * 登录时间
+     */
+    @ApiModelProperty(notes = "登录时间")
+    private LocalDateTime loginTime;
+
+    /**
+     * 游戏名称
+     */
+    @ApiModelProperty(notes = "游戏名称")
+    private String gameName;
+
+    /**
+     * 游戏应用类型
+     */
+    @ApiModelProperty(notes = "游戏应用类型")
+    private String gameCategoryName;
+
+    /**
+     * 登录角色名称
+     */
+    @ApiModelProperty(notes = "登录角色名称")
+    private String roleName;
+
+    /**
+     * 登录ip
+     */
+    @ApiModelProperty(notes = "登录ip")
+    private String loginIp;
+
+    /**
+     * 操作系统
+     */
+    @ApiModelProperty(notes = "操作系统")
+    private String os;
+}

+ 8 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/service/GameCategoryService.java

@@ -17,6 +17,14 @@ import java.util.List;
  */
  */
 public interface GameCategoryService extends IService<GameCategory> {
 public interface GameCategoryService extends IService<GameCategory> {
 
 
+    /**
+     * 根据主键id查询
+     *
+     * @param id : 主键id
+     * @return : 返回游戏分类信息
+     */
+    GameCategoryVO getById(Long id);
+
     /**
     /**
      * 查询所有父标签列表
      * 查询所有父标签列表
      *
      *

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

@@ -1,8 +1,12 @@
 package com.zanxiang.manage.service;
 package com.zanxiang.manage.service;
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.zanxiang.manage.domain.dto.GameUserRoleDTO;
 import com.zanxiang.manage.domain.params.GameUserRoleListParam;
 import com.zanxiang.manage.domain.params.GameUserRoleListParam;
 import com.zanxiang.manage.domain.vo.GameUserRoleListVO;
 import com.zanxiang.manage.domain.vo.GameUserRoleListVO;
+import com.zanxiang.manage.domain.vo.GameUserRoleVO;
+
+import java.util.List;
 
 
 /**
 /**
  * @author : lingfeng
  * @author : lingfeng
@@ -11,6 +15,22 @@ import com.zanxiang.manage.domain.vo.GameUserRoleListVO;
  */
  */
 public interface GameUserRoleService {
 public interface GameUserRoleService {
 
 
+    /**
+     * 根据角色id查询
+     *
+     * @param roleId : 角色id
+     * @return : 玩家角色信息
+     */
+    GameUserRoleDTO getByRoleId(String roleId);
+
+    /**
+     * 单个用户的角色列表
+     *
+     * @param userId : 用户id
+     * @return : 返回用户角色信息列表
+     */
+    List<GameUserRoleVO> roleList(Long userId);
+
     /**
     /**
      * 查询玩家角色列表
      * 查询玩家角色列表
      *
      *

+ 8 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/service/GameUserService.java

@@ -27,4 +27,12 @@ public interface GameUserService {
      * @return : 返回玩家信息
      * @return : 返回玩家信息
      */
      */
     GameUserVO getMaxVipGameUser(Long userId);
     GameUserVO getMaxVipGameUser(Long userId);
+
+    /**
+     * 获取指定用户对应vip等级最高的用户信息
+     *
+     * @param id : 主键id
+     * @return : 返回玩家信息
+     */
+    GameUserVO getById(Long id);
 }
 }

+ 11 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/GameCategoryServiceImpl.java

@@ -31,6 +31,17 @@ import java.util.Objects;
 @Service
 @Service
 public class GameCategoryServiceImpl extends ServiceImpl<GameCategoryMapper, GameCategory> implements GameCategoryService {
 public class GameCategoryServiceImpl extends ServiceImpl<GameCategoryMapper, GameCategory> implements GameCategoryService {
 
 
+    /**
+     * 根据主键id查询
+     *
+     * @param id : 主键id
+     * @return : 返回游戏分类信息
+     */
+    @Override
+    public GameCategoryVO getById(Long id) {
+        return BeanUtils.copy(super.getById(id), GameCategoryVO.class);
+    }
+
     /**
     /**
      * 查询所有父标签列表
      * 查询所有父标签列表
      *
      *

+ 0 - 2
game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/GamePayWayServiceImpl.java

@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zanxiang.common.enums.DeleteEnum;
 import com.zanxiang.common.enums.DeleteEnum;
-import com.zanxiang.common.exception.CustomException;
 import com.zanxiang.common.exception.ParamNullException;
 import com.zanxiang.common.exception.ParamNullException;
 import com.zanxiang.common.utils.bean.BeanUtils;
 import com.zanxiang.common.utils.bean.BeanUtils;
 import com.zanxiang.manage.domain.mapper.GamePayWayListMapper;
 import com.zanxiang.manage.domain.mapper.GamePayWayListMapper;
@@ -12,7 +11,6 @@ import com.zanxiang.manage.domain.params.GamePayWayListParam;
 import com.zanxiang.manage.domain.params.GamePayWayParam;
 import com.zanxiang.manage.domain.params.GamePayWayParam;
 import com.zanxiang.manage.domain.vo.GamePayWayListVO;
 import com.zanxiang.manage.domain.vo.GamePayWayListVO;
 import com.zanxiang.manage.service.GamePayWayService;
 import com.zanxiang.manage.service.GamePayWayService;
-import com.zanxiang.mybatis.entity.Game;
 import com.zanxiang.mybatis.entity.GamePayWay;
 import com.zanxiang.mybatis.entity.GamePayWay;
 import com.zanxiang.mybatis.mapper.GamePayWayMapper;
 import com.zanxiang.mybatis.mapper.GamePayWayMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;

+ 67 - 11
game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/GameUserRoleServiceImpl.java

@@ -1,5 +1,6 @@
 package com.zanxiang.manage.service.Impl;
 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.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@@ -7,15 +8,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zanxiang.common.utils.StringUtils;
 import com.zanxiang.common.utils.StringUtils;
 import com.zanxiang.common.utils.bean.BeanUtils;
 import com.zanxiang.common.utils.bean.BeanUtils;
-import com.zanxiang.manage.domain.dto.GameDTO;
-import com.zanxiang.manage.domain.dto.UserDTO;
-import com.zanxiang.manage.domain.dto.UserExtDTO;
+import com.zanxiang.manage.domain.dto.*;
 import com.zanxiang.manage.domain.params.GameUserRoleListParam;
 import com.zanxiang.manage.domain.params.GameUserRoleListParam;
+import com.zanxiang.manage.domain.vo.GameCategoryVO;
 import com.zanxiang.manage.domain.vo.GameUserRoleListVO;
 import com.zanxiang.manage.domain.vo.GameUserRoleListVO;
-import com.zanxiang.manage.service.GameService;
-import com.zanxiang.manage.service.GameUserRoleService;
-import com.zanxiang.manage.service.UserExtService;
-import com.zanxiang.manage.service.UserService;
+import com.zanxiang.manage.domain.vo.GameUserRoleVO;
+import com.zanxiang.manage.domain.vo.GameUserVO;
+import com.zanxiang.manage.service.*;
 import com.zanxiang.mybatis.entity.GameUserRole;
 import com.zanxiang.mybatis.entity.GameUserRole;
 import com.zanxiang.mybatis.mapper.GameUserRoleMapper;
 import com.zanxiang.mybatis.mapper.GameUserRoleMapper;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
@@ -25,10 +24,7 @@ import org.springframework.stereotype.Service;
 
 
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.time.LocalTime;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
+import java.util.*;
 
 
 /**
 /**
  * @author : lingfeng
  * @author : lingfeng
@@ -48,6 +44,66 @@ public class GameUserRoleServiceImpl extends ServiceImpl<GameUserRoleMapper, Gam
     @Autowired
     @Autowired
     private GameService gameService;
     private GameService gameService;
 
 
+    @Autowired
+    private GameUserService gameUserService;
+
+    @Autowired
+    private GameCategoryService gameCategoryService;
+
+    @Autowired
+    private ChannelService channelService;
+
+    /**
+     * 根据角色id查询
+     *
+     * @param roleId : 角色id
+     * @return : 玩家角色信息
+     */
+    @Override
+    public GameUserRoleDTO getByRoleId(String roleId) {
+        GameUserRole gameUserRole = super.getOne(new LambdaQueryWrapper<GameUserRole>().eq(GameUserRole::getRoleId, roleId));
+        return BeanUtils.copy(gameUserRole, GameUserRoleDTO.class);
+    }
+
+    /**
+     * 单个用户的角色列表
+     *
+     * @param userId : 用户id
+     * @return : 返回用户角色信息列表
+     */
+    @Override
+    public List<GameUserRoleVO> roleList(Long userId) {
+        List<GameUserRole> gameUserRoleList = super.list(new LambdaQueryWrapper<GameUserRole>().eq(GameUserRole::getUserId, userId));
+        if (CollectionUtils.isEmpty(gameUserRoleList)) {
+            return Collections.emptyList();
+        }
+        List<GameUserRoleVO> list = new ArrayList<>();
+        gameUserRoleList.forEach(role -> {
+            GameUserRoleVO gameUserRoleVO = BeanUtils.copy(role, GameUserRoleVO.class);
+            if (gameUserRoleVO == null) {
+                return;
+            }
+            //设置游戏名称
+            GameDTO gameDTO = gameService.getById(role.getGameId());
+            if (gameDTO != null) {
+                gameUserRoleVO.setGameName(gameDTO.getName());
+                //设置游戏列表
+                GameCategoryVO gameCategoryVO = gameCategoryService.getById(gameDTO.getCategory());
+                if (gameCategoryVO != null) {
+                    gameUserRoleVO.setGameCategoryName(gameCategoryVO.getName());
+                }
+            }
+            //玩家游戏信息
+            GameUserVO gameUserVO = gameUserService.getById(role.getGameUserId());
+            if (gameUserVO != null) {
+                ChannelDTO channelDTO = channelService.getById(gameUserVO.getAgentId());
+                gameUserRoleVO.setChannelName(channelDTO.getChannelSign());
+            }
+            list.add(gameUserRoleVO);
+        });
+        return list;
+    }
+
     /**
     /**
      * 查询玩家角色列表
      * 查询玩家角色列表
      *
      *

+ 11 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/GameUserServiceImpl.java

@@ -134,4 +134,15 @@ public class GameUserServiceImpl extends ServiceImpl<GameUserMapper, GameUser> i
                 .orderByDesc(GameUser::getRoleVipMax));
                 .orderByDesc(GameUser::getRoleVipMax));
         return BeanUtils.copy(gameUserList.get(0), GameUserVO.class);
         return BeanUtils.copy(gameUserList.get(0), GameUserVO.class);
     }
     }
+
+    /**
+     * 获取指定用户对应vip等级最高的用户信息
+     *
+     * @param id : 主键id
+     * @return : 返回玩家信息
+     */
+    @Override
+    public GameUserVO getById(Long id) {
+        return BeanUtils.copy(super.getById(id), GameUserVO.class);
+    }
 }
 }

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

@@ -1,9 +1,36 @@
 package com.zanxiang.manage.service.Impl;
 package com.zanxiang.manage.service.Impl;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zanxiang.common.utils.bean.BeanUtils;
+import com.zanxiang.manage.domain.vo.UserAddressVO;
+import com.zanxiang.manage.service.UserAddressService;
+import com.zanxiang.mybatis.entity.UserAddress;
+import com.zanxiang.mybatis.mapper.UserAddressMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
 /**
 /**
  * @author : lingfeng
  * @author : lingfeng
  * @time : 2022-07-05
  * @time : 2022-07-05
  * @description : 用户地址
  * @description : 用户地址
  */
  */
-public class UserAddressServiceImpl {
+@Slf4j
+@Service
+public class UserAddressServiceImpl extends ServiceImpl<UserAddressMapper, UserAddress> implements UserAddressService {
+
+    /**
+     * 查询玩家收货地址列表
+     *
+     * @param userId : 用户id
+     * @return : 返回
+     */
+    @Override
+    public List<UserAddressVO> list(Long userId) {
+        List<UserAddress> addressList = super.list(new LambdaQueryWrapper<UserAddress>().eq(UserAddress::getUserId, userId));
+        return BeanUtils.copyList(addressList, UserAddressVO.class);
+    }
+
 }
 }

+ 83 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/UserLoginLogServiceImpl.java

@@ -0,0 +1,83 @@
+package com.zanxiang.manage.service.Impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zanxiang.common.utils.bean.BeanUtils;
+import com.zanxiang.manage.domain.dto.GameDTO;
+import com.zanxiang.manage.domain.dto.GameUserRoleDTO;
+import com.zanxiang.manage.domain.params.UserLoginLogParam;
+import com.zanxiang.manage.domain.vo.GameCategoryVO;
+import com.zanxiang.manage.domain.vo.UserRoleLoginVO;
+import com.zanxiang.manage.service.GameCategoryService;
+import com.zanxiang.manage.service.GameService;
+import com.zanxiang.manage.service.GameUserRoleService;
+import com.zanxiang.manage.service.UserLoginLogService;
+import com.zanxiang.mybatis.entity.UserLoginLog;
+import com.zanxiang.mybatis.mapper.UserLoginLogMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-07-05
+ * @description : 用户登录日志
+ */
+@Slf4j
+@Service
+public class UserLoginLogServiceImpl extends ServiceImpl<UserLoginLogMapper, UserLoginLog> implements UserLoginLogService {
+
+    @Autowired
+    private GameUserRoleService gameUserRoleService;
+
+    @Autowired
+    private GameService gameService;
+
+    @Autowired
+    private GameCategoryService gameCategoryService;
+
+    /**
+     * 查询用户登录记录
+     *
+     * @param param : 登录记录查询参数
+     * @return : 返回单页数据
+     */
+    @Override
+    public IPage<UserRoleLoginVO> loginList(UserLoginLogParam param) {
+        //执行查询
+        return page(param.toPage(), new QueryWrapper<UserLoginLog>().lambda()
+                .eq(UserLoginLog::getUserId, param.getUserId())
+                .orderByDesc(UserLoginLog::getLoginTime)
+        ).convert(this::toVo);
+    }
+
+    /**
+     * 玩家角色登录信息对象转换
+     *
+     * @param userLoginLog : 玩家角色登录信息
+     * @return : 玩家角色登录信息展示对象
+     */
+    private UserRoleLoginVO toVo(UserLoginLog userLoginLog) {
+        if (userLoginLog == null) {
+            return null;
+        }
+        UserRoleLoginVO roleLoginVO = BeanUtils.copy(userLoginLog, UserRoleLoginVO.class);
+        //查询角色名称
+        GameUserRoleDTO gameUserRoleDTO = gameUserRoleService.getByRoleId(userLoginLog.getRoleId());
+        if (gameUserRoleDTO != null) {
+            roleLoginVO.setRoleName(gameUserRoleDTO.getRoleName());
+        }
+        //设置游戏名称
+        GameDTO gameDTO = gameService.getById(userLoginLog.getGameId());
+        if (gameDTO != null) {
+            //设置游戏列表
+            GameCategoryVO gameCategoryVO = gameCategoryService.getById(gameDTO.getCategory());
+            if (gameCategoryVO != null) {
+                roleLoginVO.setGameCategoryName(gameCategoryVO.getName());
+            }
+            roleLoginVO.setGameName(gameDTO.getName());
+        }
+        return roleLoginVO;
+    }
+}

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

@@ -56,7 +56,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     public UserVO getUserInfo(Long userId) {
     public UserVO getUserInfo(Long userId) {
         //查询用户信息
         //查询用户信息
         User user = super.getById(userId);
         User user = super.getById(userId);
-        if (user == null) {
+        UserVO userVO = BeanUtils.copy(user, UserVO.class);
+        if (userVO == null) {
             throw new BaseException("用户信息不存在!");
             throw new BaseException("用户信息不存在!");
         }
         }
         //查询用户拓展信息
         //查询用户拓展信息
@@ -64,7 +65,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         if (userExtDTO == null) {
         if (userExtDTO == null) {
             throw new BaseException("用户拓展信息不存在!");
             throw new BaseException("用户拓展信息不存在!");
         }
         }
-        UserVO userVO = BeanUtils.copy(user, UserVO.class);
         //拓展信息补充
         //拓展信息补充
         userVO.setRealName(userExtDTO.getRealName());
         userVO.setRealName(userExtDTO.getRealName());
         userVO.setBirthday(userExtDTO.getBirthday());
         userVO.setBirthday(userExtDTO.getBirthday());
@@ -86,7 +86,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         }
         }
         //vip等级
         //vip等级
         GameUserVO maxVipGameUser = gameUserService.getMaxVipGameUser(userId);
         GameUserVO maxVipGameUser = gameUserService.getMaxVipGameUser(userId);
-        if (maxVipGameUser != null){
+        if (maxVipGameUser != null) {
             userVO.setVipMax(maxVipGameUser.getRoleVipMax());
             userVO.setVipMax(maxVipGameUser.getRoleVipMax());
         }
         }
         //地址
         //地址

+ 0 - 2
game-module/game-manage/src/main/java/com/zanxiang/manage/service/PayBoxService.java

@@ -2,8 +2,6 @@ package com.zanxiang.manage.service;
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.zanxiang.manage.domain.bo.PayBoxBO;
-import com.zanxiang.manage.domain.dto.PayBoxDTO;
 import com.zanxiang.manage.domain.params.PayBoxListParam;
 import com.zanxiang.manage.domain.params.PayBoxListParam;
 import com.zanxiang.manage.domain.params.PayBoxParam;
 import com.zanxiang.manage.domain.params.PayBoxParam;
 import com.zanxiang.manage.domain.vo.PayBoxListVO;
 import com.zanxiang.manage.domain.vo.PayBoxListVO;

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

@@ -0,0 +1,23 @@
+package com.zanxiang.manage.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zanxiang.manage.domain.vo.UserAddressVO;
+import com.zanxiang.mybatis.entity.UserAddress;
+
+import java.util.List;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-07-05
+ * @description : 用户地址
+ */
+public interface UserAddressService extends IService<UserAddress> {
+
+    /**
+     * 查询玩家收货地址列表
+     *
+     * @param userId : 用户id
+     * @return : 返回
+     */
+    List<UserAddressVO> list(Long userId);
+}

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

@@ -0,0 +1,23 @@
+package com.zanxiang.manage.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zanxiang.manage.domain.params.UserLoginLogParam;
+import com.zanxiang.manage.domain.vo.UserRoleLoginVO;
+import com.zanxiang.mybatis.entity.UserLoginLog;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-07-05
+ * @description : 用户登录日志
+ */
+public interface UserLoginLogService extends IService<UserLoginLog> {
+
+    /**
+     * 查询用户登录记录
+     *
+     * @param param : 登录记录查询参数
+     * @return : 返回单页数据
+     */
+    IPage<UserRoleLoginVO> loginList(UserLoginLogParam param);
+}

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

@@ -17,6 +17,9 @@ public interface UserService extends IService<User> {
 
 
     /**
     /**
      * 查询玩家详细信息
      * 查询玩家详细信息
+     *
+     * @param userId : 用户id
+     * @return : 返回用户信息
      */
      */
     UserVO getUserInfo(Long userId);
     UserVO getUserInfo(Long userId);
 
 

+ 16 - 16
game-module/game-manage/src/main/resources/bootstrap.yml

@@ -12,22 +12,22 @@ spring:
     # 环境配置
     # 环境配置
     active: dev
     active: dev
   cloud:
   cloud:
-#    nacos:
-#      discovery:
-#        namespace: DEV_game
-#        # 服务注册地址
-#        server-addr: 118.178.187.109:8848
-#      config:
-#        namespace: DEV_game
-#        # 配置中心地址
-#        server-addr: 118.178.187.109:8848
-#        # 配置文件格式
-#        file-extension: yml
-#        # 配置文件分组
-#        group: GAME
-#        # 共享配置
-#        shared-dataids: application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
-#        max-retry: 10
+    nacos:
+      discovery:
+        namespace: DEV_game
+        # 服务注册地址
+        server-addr: 118.178.187.109:8848
+      config:
+        namespace: DEV_game
+        # 配置中心地址
+        server-addr: 118.178.187.109:8848
+        # 配置文件格式
+        file-extension: yml
+        # 配置文件分组
+        group: GAME
+        # 共享配置
+        shared-dataids: application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+        max-retry: 10
 
 
   #数据库配置
   #数据库配置
   datasource:
   datasource:

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

@@ -28,10 +28,15 @@ public class Channel {
     private Long id;
     private Long id;
 
 
     /**
     /**
-     * 平台名称
+     * 渠道名称
      */
      */
     private String channelName;
     private String channelName;
 
 
+    /**
+     * 渠道唯一标识
+     */
+    private String channelSign;
+
     /**
     /**
      * 公司名称
      * 公司名称
      */
      */

+ 5 - 0
game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/entity/GameUser.java

@@ -32,6 +32,11 @@ public class GameUser {
      */
      */
     private Long userId;
     private Long userId;
 
 
+    /**
+     * 所属渠道ID
+     */
+    private Long agentId;
+
     /**
     /**
      * 导量的渠道ID
      * 导量的渠道ID
      */
      */

+ 5 - 0
game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/entity/GameUserRole.java

@@ -117,4 +117,9 @@ public class GameUserRole {
      * 更新时间
      * 更新时间
      */
      */
     private LocalDateTime updateTime;
     private LocalDateTime updateTime;
+
+    /**
+     * 角色最后登录时间
+     */
+    private LocalDateTime lastLoginTime;
 }
 }

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

@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
 import lombok.*;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
-import java.util.Date;
+import java.time.LocalDateTime;
 
 
 /**
 /**
  * @author : lingfeng
  * @author : lingfeng
@@ -47,6 +47,11 @@ public class Order {
      */
      */
     private String mgUserId;
     private String mgUserId;
 
 
+    /**
+     * 角色
+     */
+    private String roleId;
+
     /**
     /**
      * 游戏ID
      * 游戏ID
      */
      */
@@ -125,7 +130,7 @@ public class Order {
     /**
     /**
      * 支付时间
      * 支付时间
      */
      */
-    private Date payTime;
+    private LocalDateTime payTime;
 
 
     /**
     /**
      * 通知次数
      * 通知次数
@@ -135,7 +140,7 @@ public class Order {
     /**
     /**
      * 最近通知时间
      * 最近通知时间
      */
      */
-    private Date lastCpNotifyTime;
+    private LocalDateTime lastCpNotifyTime;
 
 
     /**
     /**
      * 客服处理: 2正常; 1纠纷
      * 客服处理: 2正常; 1纠纷
@@ -202,11 +207,11 @@ public class Order {
     /**
     /**
      * 创建时间
      * 创建时间
      */
      */
-    private Date createTime;
+    private LocalDateTime createTime;
 
 
     /**
     /**
      * 更新时间
      * 更新时间
      */
      */
-    private Date updateTime;
+    private LocalDateTime updateTime;
 
 
 }
 }

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

@@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
 import lombok.*;
 
 
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
-import java.util.Date;
 
 
 /**
 /**
  * @author : lingfeng
  * @author : lingfeng
@@ -33,6 +32,11 @@ public class UserAddress {
      */
      */
     private Long userId;
     private Long userId;
 
 
+    /**
+     * 收货人
+     */
+    private String receiver;
+
     /**
     /**
      * 手机号
      * 手机号
      */
      */

+ 15 - 5
game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/entity/UserLoginLog.java

@@ -36,6 +36,21 @@ public class UserLoginLog {
      */
      */
     private Long agentId;
     private Long agentId;
 
 
+    /**
+     * 游戏id
+     */
+    private Long gameId;
+
+    /**
+     * 角色id
+     */
+    private String roleId;
+
+    /**
+     * 操作系统
+     */
+    private String os;
+
     /**
     /**
      * 设备来源
      * 设备来源
      */
      */
@@ -51,11 +66,6 @@ public class UserLoginLog {
      */
      */
     private String loginIp;
     private String loginIp;
 
 
-    /**
-     * 游戏id
-     */
-    private String gameId;
-
     /**
     /**
      * 登录时间
      * 登录时间
      */
      */

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

@@ -20,6 +20,7 @@ import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
+import java.time.LocalDateTime;
 import java.util.*;
 import java.util.*;
 
 
 /**
 /**
@@ -47,9 +48,6 @@ public class PerformOrderServiceImpl implements PerformOrderService {
     @Autowired
     @Autowired
     private GamePayWayService gamePayWayService;
     private GamePayWayService gamePayWayService;
 
 
-    @Autowired
-    private PayMer
-
     public Boolean pushCp(PlatformOrderDTO orderInfo) {
     public Boolean pushCp(PlatformOrderDTO orderInfo) {
         if (orderInfo.getCpStatus() == CpStatusEnum.SUCCESS.getCode()) {
         if (orderInfo.getCpStatus() == CpStatusEnum.SUCCESS.getCode()) {
             return true;
             return true;
@@ -90,7 +88,7 @@ public class PerformOrderServiceImpl implements PerformOrderService {
                 Order order = new Order();
                 Order order = new Order();
                 order.setId(orderId);
                 order.setId(orderId);
                 order.setCpNotifyCnt(i);
                 order.setCpNotifyCnt(i);
-                order.setLastCpNotifyTime(new Date());
+                order.setLastCpNotifyTime(LocalDateTime.now());
                 order.setCpStatus(pushSuccess ? CpStatusEnum.SUCCESS.getCode() : CpStatusEnum.FAILLE.getCode());
                 order.setCpStatus(pushSuccess ? CpStatusEnum.SUCCESS.getCode() : CpStatusEnum.FAILLE.getCode());
                 platformOrderService.updateById(order);
                 platformOrderService.updateById(order);
             }
             }