Browse Source

:feat:增加创角有效配置相关接口

zhangxianyu 1 year ago
parent
commit
4f1715f023

+ 22 - 5
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/controller/GameUserConfigController.java

@@ -1,6 +1,7 @@
 package com.zanxiang.game.data.serve.controller;
 
 import com.zanxiang.erp.security.annotation.PreAuthorize;
+import com.zanxiang.game.data.serve.pojo.dto.GameUserConfigCreateOrUpdateDTO;
 import com.zanxiang.game.data.serve.pojo.dto.GameUserConfigListDTO;
 import com.zanxiang.game.data.serve.pojo.vo.GameUserConfigListVO;
 import com.zanxiang.game.data.serve.service.IGameUserConfigService;
@@ -8,13 +9,9 @@ import com.zanxiang.game.data.serve.utils.Page;
 import com.zanxiang.module.util.pojo.ResultVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 
@@ -41,4 +38,24 @@ public class GameUserConfigController {
         return ResultVO.ok(gameUserConfigService.validRoleConfigList(dto));
     }
 
+    @ApiOperation(value = "新增有效创角配置")
+    @PreAuthorize(permissionKey = "roleManage:validRoleConfig:create")
+    @PostMapping(value = "/create")
+    public ResultVO<Boolean> create(@Validated @RequestBody GameUserConfigCreateOrUpdateDTO dto) {
+        return ResultVO.ok(gameUserConfigService.create(dto));
+    }
+    @ApiOperation(value = "修改有效创角配置")
+    @PreAuthorize(permissionKey = "roleManage:validRoleConfig:update")
+    @PostMapping(value = "/update")
+    public ResultVO<Boolean> update(@Validated @RequestBody GameUserConfigCreateOrUpdateDTO dto) {
+        return ResultVO.ok(gameUserConfigService.update(dto));
+    }
+
+    @ApiOperation(value = "删除有效创角配置")
+    @PreAuthorize(permissionKey = "roleManage:validRoleConfig:delete")
+    @PostMapping(value = "/delete")
+    public ResultVO<Boolean> delete(@RequestParam("id") Long id) {
+        return ResultVO.ok(gameUserConfigService.delete(id));
+    }
+
 }

+ 37 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/GameUserConfigCreateOrUpdateDTO.java

@@ -0,0 +1,37 @@
+package com.zanxiang.game.data.serve.pojo.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * packageName com.zanxiang.game.data.serve.pojo.dto
+ *
+ * @author ZhangXianyu
+ * @date 2024/4/22
+ * @description 用户配置新增修改DTO
+ */
+@Data
+public class GameUserConfigCreateOrUpdateDTO {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(notes = "主键id, 传则是更新, 不传则是添加")
+    private Long id;
+
+    /**
+     * 游戏id
+     */
+    @NotNull(message = "游戏id不可为空, 必传")
+    @ApiModelProperty(notes = "游戏id")
+    private Long gameId;
+
+    /**
+     * 游戏角色等级
+     */
+    @NotNull(message = "游戏角色等级不可为空, 必传")
+    @ApiModelProperty(notes = "游戏角色等级")
+    private Long roleLevel;
+}

+ 30 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/entity/GameUserConfig.java

@@ -0,0 +1,30 @@
+package com.zanxiang.game.data.serve.pojo.entity;
+
+import lombok.Data;
+import org.nutz.dao.entity.annotation.Id;
+import org.nutz.dao.entity.annotation.Prev;
+import org.nutz.dao.entity.annotation.SQL;
+import org.nutz.dao.entity.annotation.Table;
+
+import java.time.LocalDateTime;
+
+/**
+ * packageName com.zanxiang.game.data.serve.pojo.entity
+ *
+ * @author ZhangXianyu
+ * @date 2024/4/22
+ * @description 游戏角色有效创角配置
+ */
+@Data
+@Table("dm_game_order.t_game_user_config")
+public class GameUserConfig {
+    @Prev( @SQL("SELECT IFNULL(MAX(id),0)+1 FROM dm_game_order.t_game_user_config") )
+    @Id(auto = false)
+    private Long id;
+    private String sourceSystem;
+    private Long gameId;
+    private Long roleLevel;
+    private LocalDateTime createTime;
+    private LocalDateTime updateTime;
+
+}

+ 0 - 3
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/GSGameServerDayVO.java

@@ -2,12 +2,9 @@ package com.zanxiang.game.data.serve.pojo.vo;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import org.ini4j.Reg;
-import org.nutz.dao.entity.annotation.Many;
 
 import java.io.Serializable;
 import java.time.LocalDate;
-import java.util.List;
 
 /**
  * @author ZhangXianyu

+ 22 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/IGameUserConfigService.java

@@ -1,5 +1,6 @@
 package com.zanxiang.game.data.serve.service;
 
+import com.zanxiang.game.data.serve.pojo.dto.GameUserConfigCreateOrUpdateDTO;
 import com.zanxiang.game.data.serve.pojo.dto.GameUserConfigListDTO;
 import com.zanxiang.game.data.serve.pojo.vo.GameUserConfigListVO;
 import com.zanxiang.game.data.serve.utils.Page;
@@ -12,4 +13,25 @@ public interface IGameUserConfigService {
      * @return
      */
     Page<GameUserConfigListVO> validRoleConfigList(GameUserConfigListDTO dto);
+
+    /**
+     * 新增有效创角配置
+     * @param dto
+     * @return
+     */
+    Boolean create(GameUserConfigCreateOrUpdateDTO dto);
+
+    /**
+     * 删除有效创角配置
+     * @param id
+     * @return
+     */
+    Boolean delete(Long id);
+
+    /**
+     * 修改有效创角配置
+     * @param dto
+     * @return
+     */
+    Boolean update(GameUserConfigCreateOrUpdateDTO dto);
 }

+ 48 - 1
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameUserConfigServiceImpl.java

@@ -1,13 +1,17 @@
 package com.zanxiang.game.data.serve.service.impl;
 
 import com.zanxiang.game.data.serve.pojo.dto.GameDTO;
+import com.zanxiang.game.data.serve.pojo.dto.GameUserConfigCreateOrUpdateDTO;
 import com.zanxiang.game.data.serve.pojo.dto.GameUserConfigListDTO;
+import com.zanxiang.game.data.serve.pojo.entity.GameUserConfig;
 import com.zanxiang.game.data.serve.pojo.vo.GameUserConfigListVO;
 import com.zanxiang.game.data.serve.service.IGameUserConfigService;
 import com.zanxiang.game.data.serve.utils.Page;
+import com.zanxiang.module.util.exception.BaseException;
 import org.apache.commons.lang3.StringUtils;
 import org.nutz.dao.Cnd;
 import org.nutz.dao.Dao;
+import org.nutz.dao.FieldFilter;
 import org.nutz.dao.Sqls;
 import org.nutz.dao.pager.Pager;
 import org.nutz.dao.sql.Criteria;
@@ -15,6 +19,7 @@ import org.nutz.dao.sql.Sql;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Map;
 import java.util.function.Function;
@@ -25,7 +30,7 @@ import java.util.stream.Collectors;
  *
  * @author ZhangXianyu
  * @date 2024/4/18
- * @description TODO
+ * @description 创角配置
  */
 @Service
 public class GameUserConfigServiceImpl implements IGameUserConfigService {
@@ -68,6 +73,48 @@ public class GameUserConfigServiceImpl implements IGameUserConfigService {
         return new Page<>(list, pager);
     }
 
+    @Override
+    public Boolean create(GameUserConfigCreateOrUpdateDTO dto) {
+        int gameId = dao.count(GameUserConfig.class, Cnd.where("game_id", "=", dto.getGameId()));
+        if (gameId > 0) {
+           throw new BaseException("该游戏已存在创角配置");
+        }
+        GameUserConfig gameUserConfig = new GameUserConfig();
+        gameUserConfig.setSourceSystem("ZX_ONE");
+        gameUserConfig.setGameId(dto.getGameId());
+        gameUserConfig.setRoleLevel(dto.getRoleLevel());
+        gameUserConfig.setCreateTime(LocalDateTime.now());
+        gameUserConfig.setUpdateTime(LocalDateTime.now());
+        dao.insert(gameUserConfig);
+        return true;
+    }
+
+    @Override
+    public Boolean delete(Long id) {
+        dao.delete(GameUserConfig.class, id);
+        return true;
+    }
+
+    @Override
+    public Boolean update(GameUserConfigCreateOrUpdateDTO dto) {
+        if(dto.getId()==null){
+            throw new BaseException("id不能为空");
+        }
+        int count = dao.count(GameUserConfig.class, Cnd.where("game_id", "=", dto.getGameId()).and("id", "!=", dto.getId()));
+        if (count > 0) {
+            throw new BaseException("该游戏已存在创角配置");
+        }
+        GameUserConfig old = dao.fetch(GameUserConfig.class, Cnd.where("id", "=", dto.getId()));
+        if (old == null) {
+            throw new BaseException("创角配置不存在");
+        }
+        old.setUpdateTime(LocalDateTime.now());
+        old.setGameId(dto.getGameId());
+        old.setRoleLevel(dto.getRoleLevel());
+        dao.update(old, FieldFilter.create(GameUserConfig.class, "gameId|roleLevel|updateTime"));
+        return true;
+    }
+
     public String getGameUserConfigSql(Criteria criA) {
         String sql = """
                 select