Bladeren bron

Merge remote-tracking branch 'origin/package' into package

zhangxianyu 11 maanden geleden
bovenliggende
commit
f14295c2d3
16 gewijzigde bestanden met toevoegingen van 726 en 1 verwijderingen
  1. 1 1
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/ManageApplication.java
  2. 87 0
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/controller/GameAuthGroupController.java
  3. 28 0
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/params/GameAuthGroupAddUpdateParam.java
  4. 21 0
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/params/GameAuthGroupListParam.java
  5. 31 0
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/params/GameAuthRoleGroupAddParam.java
  6. 28 0
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/params/GameAuthRoleGroupListParam.java
  7. 39 0
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/vo/GameAuthGroupVO.java
  8. 51 0
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/vo/GameAuthRoleGroupVO.java
  9. 40 0
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/IGameAuthGroupService.java
  10. 40 0
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/IGameAuthRoleGroupService.java
  11. 97 0
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/GameAuthGroupServiceImpl.java
  12. 99 0
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/GameAuthRoleGroupServiceImpl.java
  13. 65 0
      game-module/game-module-mybatis/src/main/java/com/zanxiang/game/module/mybatis/entity/GameAuthGroup.java
  14. 75 0
      game-module/game-module-mybatis/src/main/java/com/zanxiang/game/module/mybatis/entity/GameAuthRoleGroup.java
  15. 12 0
      game-module/game-module-mybatis/src/main/java/com/zanxiang/game/module/mybatis/mapper/GameAuthGroupMapper.java
  16. 12 0
      game-module/game-module-mybatis/src/main/java/com/zanxiang/game/module/mybatis/mapper/GameAuthRoleGroupMapper.java

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

@@ -23,7 +23,7 @@ public class ManageApplication {
 
     public static void main(String[] args) {
         SpringApplication.run(ManageApplication.class, args);
-        System.out.println("赞象Manage服务启动成功 < (头条投放虚拟游戏小程序改版03´・・)ノ(._.`) \n" +
+        System.out.println("赞象Manage服务启动成功 < (新增权限分组´・・)ノ(._.`) \n" +
                 "___  ___  ___   _   _   ___  _____  _____ \n" +
                 "|  \\/  | / _ \\ | \\ | | / _ \\|  __ \\|  ___|\n" +
                 "| .  . |/ /_\\ \\|  \\| |/ /_\\ \\ |  \\/| |__  \n" +

+ 87 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/controller/GameAuthGroupController.java

@@ -0,0 +1,87 @@
+package com.zanxiang.game.module.manage.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.zanxiang.erp.security.annotation.PreAuthorize;
+import com.zanxiang.game.module.manage.pojo.params.GameAuthGroupAddUpdateParam;
+import com.zanxiang.game.module.manage.pojo.params.GameAuthGroupListParam;
+import com.zanxiang.game.module.manage.pojo.params.GameAuthRoleGroupAddParam;
+import com.zanxiang.game.module.manage.pojo.params.GameAuthRoleGroupListParam;
+import com.zanxiang.game.module.manage.pojo.vo.GameAuthGroupVO;
+import com.zanxiang.game.module.manage.pojo.vo.GameAuthRoleGroupVO;
+import com.zanxiang.game.module.manage.service.IGameAuthGroupService;
+import com.zanxiang.game.module.manage.service.IGameAuthRoleGroupService;
+import com.zanxiang.module.util.pojo.ResultVO;
+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.*;
+
+/**
+ * @author : lingfeng
+ * @time : 2024-05-21
+ * @description : 角色授权分组
+ */
+@Api(tags = {"角色授权分组接口"})
+@RestController
+@RequestMapping("/game/auth/group")
+@Slf4j
+public class GameAuthGroupController {
+
+    @Autowired
+    private IGameAuthGroupService gameAuthGroupService;
+
+    @Autowired
+    private IGameAuthRoleGroupService gameAuthRoleGroupService;
+
+    @ApiOperation(value = "授权分组列表查询")
+    @PostMapping(value = "/listOfPage")
+    @PreAuthorize(permissionKey = "manage:gameAuthGroup:listOfPage")
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameAuthGroupVO.class)})
+    public ResultVO<IPage<GameAuthGroupVO>> listOfPage(@Validated @RequestBody GameAuthGroupListParam param) {
+        return ResultVO.ok(gameAuthGroupService.listOfPage(param));
+    }
+
+    @ApiOperation(value = "授权分组新增或者修改")
+    @PostMapping(value = "/add/or/update")
+    @PreAuthorize(permissionKey = "manage:gameAuthGroup:addOrUpdate")
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
+    public ResultVO<Boolean> addOrUpdate(@Validated @RequestBody GameAuthGroupAddUpdateParam param) {
+        return ResultVO.ok(gameAuthGroupService.addOrUpdate(param));
+    }
+
+    @ApiOperation(value = "授权分组删除")
+    @DeleteMapping(value = "/delete")
+    @PreAuthorize(permissionKey = "manage:gameAuthGroup:deleteById")
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
+    public ResultVO<Boolean> deleteById(@RequestParam Long id) {
+        return ResultVO.ok(gameAuthGroupService.deleteById(id));
+    }
+
+    @ApiOperation(value = "授权角色分组列表查询")
+    @PostMapping(value = "/role/listOfPage")
+    @PreAuthorize(permissionKey = "manage:gameAuthGroupRole:listOfPage")
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameAuthRoleGroupVO.class)})
+    public ResultVO<IPage<GameAuthRoleGroupVO>> list(@Validated @RequestBody GameAuthRoleGroupListParam param) {
+        return ResultVO.ok(gameAuthRoleGroupService.listOfPage(param));
+    }
+
+    @ApiOperation(value = "授权分组添加")
+    @PostMapping(value = "/role/add")
+    @PreAuthorize(permissionKey = "manage:gameAuthGroupRole:add")
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
+    public ResultVO<Boolean> add(@Validated @RequestBody GameAuthRoleGroupAddParam param) {
+        return ResultVO.ok(gameAuthRoleGroupService.groupAddUser(param));
+    }
+
+    @ApiOperation(value = "授权分组删除")
+    @DeleteMapping(value = "/role/delete")
+    @PreAuthorize(permissionKey = "manage:gameAuthGroupRole:deleteById")
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
+    public ResultVO<Boolean> delete(@RequestParam Long id) {
+        return ResultVO.ok(gameAuthRoleGroupService.deleteById(id));
+    }
+}

+ 28 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/params/GameAuthGroupAddUpdateParam.java

@@ -0,0 +1,28 @@
+package com.zanxiang.game.module.manage.pojo.params;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @author : lingfeng
+ * @time : 2024-05-20
+ * @description : 授权分组添加更新
+ */
+@Data
+public class GameAuthGroupAddUpdateParam {
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(notes = "id, 不传则添加, 传则修改")
+    private Long id;
+
+    /**
+     * 组名称
+     */
+    @NotBlank(message = "组名称不可为空")
+    @ApiModelProperty(notes = "组名称, 必传")
+    private String groupName;
+}

+ 21 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/params/GameAuthGroupListParam.java

@@ -0,0 +1,21 @@
+package com.zanxiang.game.module.manage.pojo.params;
+
+import com.zanxiang.game.module.mybatis.entity.GameAuthGroup;
+import com.zanxiang.module.web.pojo.BaseListDTO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author : lingfeng
+ * @time : 2024-05-21
+ * @description : 授权分组查询参数
+ */
+@Data
+public class GameAuthGroupListParam extends BaseListDTO<GameAuthGroup> {
+
+    /**
+     * 分组名称
+     */
+    @ApiModelProperty(notes = "分组名称")
+    private String groupName;
+}

+ 31 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/params/GameAuthRoleGroupAddParam.java

@@ -0,0 +1,31 @@
+package com.zanxiang.game.module.manage.pojo.params;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @author : lingfeng
+ * @time : 2024-05-21
+ * @description : 授权游戏角色分组参数
+ */
+@Data
+public class GameAuthRoleGroupAddParam {
+
+    /**
+     * 分组id
+     */
+    @NotNull(message = "分组id不可为空")
+    @ApiModelProperty(notes = "分组id")
+    private Long groupId;
+
+    /**
+     * 用户id列表
+     */
+    @NotEmpty(message = "用户id列表不可为空")
+    @ApiModelProperty(notes = "用户id列表")
+    private List<Long> userIdList;
+}

+ 28 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/params/GameAuthRoleGroupListParam.java

@@ -0,0 +1,28 @@
+package com.zanxiang.game.module.manage.pojo.params;
+
+import com.zanxiang.game.module.mybatis.entity.GameAuthRoleGroup;
+import com.zanxiang.module.web.pojo.BaseListDTO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author : lingfeng
+ * @time : 2024-05-21
+ * @description : 游戏授权角色分组
+ */
+@Data
+public class GameAuthRoleGroupListParam extends BaseListDTO<GameAuthRoleGroup> {
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(notes = "用户id")
+    private Integer userId;
+
+    /**
+     * 是否组长
+     */
+    @ApiModelProperty(notes = "是否组长")
+    private Boolean isLeader;
+
+}

+ 39 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/vo/GameAuthGroupVO.java

@@ -0,0 +1,39 @@
+package com.zanxiang.game.module.manage.pojo.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author : lingfeng
+ * @time : 2024-05-21
+ * @description : 授权分组
+ */
+@Data
+public class GameAuthGroupVO {
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(notes = "主键")
+    private Long id;
+
+    /**
+     * 组名称
+     */
+    @ApiModelProperty(notes = "组名称")
+    private String groupName;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(notes = "创建时间")
+    private LocalDateTime createTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(notes = "更新时间")
+    private LocalDateTime updateTime;
+}

+ 51 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/vo/GameAuthRoleGroupVO.java

@@ -0,0 +1,51 @@
+package com.zanxiang.game.module.manage.pojo.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author : lingfeng
+ * @time : 2024-05-21
+ * @description : 游戏授权角色分组
+ */
+@Data
+public class GameAuthRoleGroupVO {
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(notes = "主键")
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(notes = "用户id")
+    private Long userId;
+
+    /**
+     * 用户名称
+     */
+    @ApiModelProperty(notes = "用户名称")
+    private String userName;
+
+    /**
+     * 分组id
+     */
+    @ApiModelProperty(notes = "分组id")
+    private Long groupId;
+
+    /**
+     * 是否组长
+     */
+    @ApiModelProperty(notes = "是否组长")
+    private Boolean isLeader;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(notes = "创建时间")
+    private LocalDateTime createTime;
+}

+ 40 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/IGameAuthGroupService.java

@@ -0,0 +1,40 @@
+package com.zanxiang.game.module.manage.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zanxiang.game.module.manage.pojo.params.GameAuthGroupAddUpdateParam;
+import com.zanxiang.game.module.manage.pojo.params.GameAuthGroupListParam;
+import com.zanxiang.game.module.manage.pojo.vo.GameAuthGroupVO;
+import com.zanxiang.game.module.mybatis.entity.GameAuthGroup;
+
+/**
+ * @author : lingfeng
+ * @time : 2024-05-20
+ * @description : 授权分组
+ */
+public interface IGameAuthGroupService extends IService<GameAuthGroup> {
+
+    /**
+     * 分页查询授权分组
+     *
+     * @param param : 查询参数
+     * @return : 返回分页数据
+     */
+    IPage<GameAuthGroupVO> listOfPage(GameAuthGroupListParam param);
+
+    /**
+     * 添加修改分组
+     *
+     * @param param : 参数
+     * @return : 返回执行结果
+     */
+    boolean addOrUpdate(GameAuthGroupAddUpdateParam param);
+
+    /**
+     * 删除
+     *
+     * @param id : 主键id
+     * @return : 返回结果
+     */
+    boolean deleteById(Long id);
+}

+ 40 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/IGameAuthRoleGroupService.java

@@ -0,0 +1,40 @@
+package com.zanxiang.game.module.manage.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zanxiang.game.module.manage.pojo.params.GameAuthRoleGroupAddParam;
+import com.zanxiang.game.module.manage.pojo.params.GameAuthRoleGroupListParam;
+import com.zanxiang.game.module.manage.pojo.vo.GameAuthRoleGroupVO;
+import com.zanxiang.game.module.mybatis.entity.GameAuthRoleGroup;
+
+/**
+ * @author : lingfeng
+ * @time : 2024-05-20
+ * @description : 游戏授权角色分组
+ */
+public interface IGameAuthRoleGroupService extends IService<GameAuthRoleGroup> {
+
+    /**
+     * 根据id删除
+     *
+     * @param id : 主键id
+     * @return : 返回删除结果
+     */
+    boolean deleteById(Long id);
+
+    /**
+     * 分页查询游戏授权角色分组
+     *
+     * @param param : 查询参数
+     * @return : 返回分页数据
+     */
+    IPage<GameAuthRoleGroupVO> listOfPage(GameAuthRoleGroupListParam param);
+
+    /**
+     * 授权分组加人
+     *
+     * @param param : 参数
+     * @return : 返回添加结果
+     */
+    boolean groupAddUser(GameAuthRoleGroupAddParam param);
+}

+ 97 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/GameAuthGroupServiceImpl.java

@@ -0,0 +1,97 @@
+package com.zanxiang.game.module.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.erp.security.util.SecurityUtil;
+import com.zanxiang.game.module.base.pojo.enums.DeleteEnum;
+import com.zanxiang.game.module.manage.pojo.params.GameAuthGroupAddUpdateParam;
+import com.zanxiang.game.module.manage.pojo.params.GameAuthGroupListParam;
+import com.zanxiang.game.module.manage.pojo.vo.GameAuthGroupVO;
+import com.zanxiang.game.module.manage.service.IGameAuthGroupService;
+import com.zanxiang.game.module.manage.service.IGameAuthRoleGroupService;
+import com.zanxiang.game.module.mybatis.entity.GameAuthGroup;
+import com.zanxiang.game.module.mybatis.entity.GameAuthRoleGroup;
+import com.zanxiang.game.module.mybatis.mapper.GameAuthGroupMapper;
+import com.zanxiang.module.util.bean.BeanUtil;
+import com.zanxiang.module.util.exception.BaseException;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.logging.log4j.util.Strings;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDateTime;
+import java.util.Objects;
+
+/**
+ * @author : lingfeng
+ * @time : 2024-05-20
+ * @description : 授权分组
+ */
+@Slf4j
+@Service
+public class GameAuthGroupServiceImpl extends ServiceImpl<GameAuthGroupMapper, GameAuthGroup> implements IGameAuthGroupService {
+
+    @Autowired
+    private IGameAuthRoleGroupService gameAuthRoleGroupService;
+
+    @Override
+    public IPage<GameAuthGroupVO> listOfPage(GameAuthGroupListParam param) {
+        return page(param.toPage(), new QueryWrapper<GameAuthGroup>().lambda()
+                .like(Strings.isNotBlank(param.getGroupName()), GameAuthGroup::getGroupName, param.getGroupName())
+                .eq(!SecurityUtil.isAdmin(), GameAuthGroup::getCreateBy, SecurityUtil.getUserId())
+                .orderByDesc(GameAuthGroup::getCreateTime)
+        ).convert(this::toVo);
+    }
+
+    private GameAuthGroupVO toVo(GameAuthGroup gameAuthGroup) {
+        if (Objects.isNull(gameAuthGroup)) {
+            return null;
+        }
+        return BeanUtil.copy(gameAuthGroup, GameAuthGroupVO.class);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean addOrUpdate(GameAuthGroupAddUpdateParam param) {
+        //分组名称不可重复判断
+        if (super.count(new LambdaQueryWrapper<GameAuthGroup>()
+                .eq(GameAuthGroup::getGroupName, param.getGroupName())
+                .ne(param.getId() != null, GameAuthGroup::getId, param.getId())
+        ) > 0) {
+            throw new BaseException("参数错误, 分组名称不可重复");
+        }
+        //修改组名称
+        if (param.getId() != null) {
+            return super.update(new LambdaUpdateWrapper<GameAuthGroup>()
+                    .set(GameAuthGroup::getGroupName, param.getGroupName())
+                    .set(GameAuthGroup::getUpdateBy, SecurityUtil.getUserId())
+                    .set(GameAuthGroup::getUpdateTime, LocalDateTime.now())
+                    .eq(GameAuthGroup::getId, param.getId())
+            );
+        }
+        //组添加
+        return super.save(GameAuthGroup.builder()
+                .groupName(param.getGroupName())
+                .isDelete(DeleteEnum.NO.getCode())
+                .createBy(SecurityUtil.getUserId())
+                .createTime(LocalDateTime.now())
+                .build());
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean deleteById(Long id) {
+        super.removeById(id);
+        gameAuthRoleGroupService.update(new LambdaUpdateWrapper<GameAuthRoleGroup>()
+                .set(GameAuthRoleGroup::getIsDelete, DeleteEnum.YES.getCode())
+                .set(GameAuthRoleGroup::getUpdateBy, SecurityUtil.getUserId())
+                .set(GameAuthRoleGroup::getUpdateTime, LocalDateTime.now())
+                .eq(GameAuthRoleGroup::getGroupId, id)
+        );
+        return Boolean.TRUE;
+    }
+}

+ 99 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/GameAuthRoleGroupServiceImpl.java

@@ -0,0 +1,99 @@
+package com.zanxiang.game.module.manage.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zanxiang.erp.base.ErpServer;
+import com.zanxiang.erp.base.rpc.ISysUserRpc;
+import com.zanxiang.erp.security.util.SecurityUtil;
+import com.zanxiang.game.module.base.pojo.enums.DeleteEnum;
+import com.zanxiang.game.module.manage.pojo.params.GameAuthRoleGroupAddParam;
+import com.zanxiang.game.module.manage.pojo.params.GameAuthRoleGroupListParam;
+import com.zanxiang.game.module.manage.pojo.vo.GameAuthRoleGroupVO;
+import com.zanxiang.game.module.manage.service.IGameAuthRoleGroupService;
+import com.zanxiang.game.module.mybatis.entity.GameAuthRoleGroup;
+import com.zanxiang.game.module.mybatis.mapper.GameAuthRoleGroupMapper;
+import com.zanxiang.module.util.bean.BeanUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+ * @author : lingfeng
+ * @time : 2024-05-20
+ * @description : 游戏授权角色分组
+ */
+@Slf4j
+@Service
+public class GameAuthRoleGroupServiceImpl extends ServiceImpl<GameAuthRoleGroupMapper, GameAuthRoleGroup> implements IGameAuthRoleGroupService {
+
+    @DubboReference(providedBy = ErpServer.SERVER_DUBBO_NAME)
+    private ISysUserRpc sysUserRpc;
+
+    @Override
+    public IPage<GameAuthRoleGroupVO> listOfPage(GameAuthRoleGroupListParam param) {
+        IPage<GameAuthRoleGroupVO> gameAuthRoleGroupPage = page(param.toPage(), new QueryWrapper<GameAuthRoleGroup>().lambda()
+                .eq(param.getUserId() != null, GameAuthRoleGroup::getUserId, param.getUserId())
+                .eq(param.getIsLeader() != null, GameAuthRoleGroup::getIsLeader, param.getIsLeader())
+                .orderByDesc(GameAuthRoleGroup::getCreateTime)
+        ).convert(this::toVo);
+        List<GameAuthRoleGroupVO> records = gameAuthRoleGroupPage.getRecords();
+        if (CollectionUtils.isEmpty(records)) {
+            return gameAuthRoleGroupPage;
+        }
+        List<Long> userIdList = records.stream().map(GameAuthRoleGroupVO::getUserId)
+                .distinct().collect(Collectors.toList());
+        Map<Long, String> userNameMap = sysUserRpc.getUserNameByIds(userIdList).getData();
+        records.forEach(r -> r.setUserName(userNameMap.get(r.getUserId())));
+        return gameAuthRoleGroupPage;
+    }
+
+    private GameAuthRoleGroupVO toVo(GameAuthRoleGroup gameAuthRoleGroup) {
+        if (Objects.isNull(gameAuthRoleGroup)) {
+            return null;
+        }
+        return BeanUtil.copy(gameAuthRoleGroup, GameAuthRoleGroupVO.class);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean groupAddUser(GameAuthRoleGroupAddParam param) {
+        List<GameAuthRoleGroup> addList = new ArrayList<>();
+        param.getUserIdList().forEach(userId -> {
+            if (super.count(new LambdaQueryWrapper<GameAuthRoleGroup>()
+                    .eq(GameAuthRoleGroup::getGroupId, param.getGroupId())
+                    .eq(GameAuthRoleGroup::getUserId, userId)
+            ) > 0) {
+                return;
+            }
+            addList.add(this.transform(param.getGroupId(), userId));
+        });
+        return super.saveBatch(addList);
+    }
+
+    private GameAuthRoleGroup transform(Long groupId, Long userId) {
+        return GameAuthRoleGroup.builder()
+                .userId(userId)
+                .groupId(groupId)
+                .isLeader(Boolean.FALSE)
+                .isDelete(DeleteEnum.NO.getCode())
+                .createBy(SecurityUtil.getUserId())
+                .createTime(LocalDateTime.now())
+                .build();
+    }
+
+    @Override
+    public boolean deleteById(Long id) {
+        return super.removeById(id);
+    }
+}

+ 65 - 0
game-module/game-module-mybatis/src/main/java/com/zanxiang/game/module/mybatis/entity/GameAuthGroup.java

@@ -0,0 +1,65 @@
+package com.zanxiang.game.module.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.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * @author : lingfeng
+ * @time : 2024-05-16
+ * @description : 授权分组
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName("t_game_auth_group")
+public class GameAuthGroup implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 组名称
+     */
+    private String groupName;
+
+    /**
+     * 1 删除  0 正常
+     */
+    @TableLogic
+    private Integer isDelete;
+
+    /**
+     * 创建者
+     */
+    private Long createBy;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 更新者
+     */
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+}

+ 75 - 0
game-module/game-module-mybatis/src/main/java/com/zanxiang/game/module/mybatis/entity/GameAuthRoleGroup.java

@@ -0,0 +1,75 @@
+package com.zanxiang.game.module.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.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * @author : lingfeng
+ * @time : 2024-05-16
+ * @description : 游戏授权角色分组
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName("t_game_auth_role_group")
+public class GameAuthRoleGroup implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 分组id
+     */
+    private Long groupId;
+
+    /**
+     * 是否组长
+     */
+    private Boolean isLeader;
+
+    /**
+     * 1 删除  0 正常
+     */
+    @TableLogic
+    private Integer isDelete;
+
+    /**
+     * 创建者
+     */
+    private Long createBy;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 更新者
+     */
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+}

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

@@ -0,0 +1,12 @@
+package com.zanxiang.game.module.mybatis.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zanxiang.game.module.mybatis.entity.GameAuthGroup;
+
+/**
+ * @author : lingfeng
+ * @time : 2024-05-16
+ * @description : ${description}
+ */
+public interface GameAuthGroupMapper extends BaseMapper<GameAuthGroup> {
+}

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

@@ -0,0 +1,12 @@
+package com.zanxiang.game.module.mybatis.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zanxiang.game.module.mybatis.entity.GameAuthRoleGroup;
+
+/**
+ * @author : lingfeng
+ * @time : 2024-05-16
+ * @description : ${description}
+ */
+public interface GameAuthRoleGroupMapper extends BaseMapper<GameAuthRoleGroup> {
+}