From cabdbc6fb8861c0629d4af3f412abf1f7b051e86 Mon Sep 17 00:00:00 2001 From: "DESKTOP-5RP3AKU\\Jisol" <2858626794@qq.com> Date: Tue, 7 Nov 2023 02:12:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=99=BB=E5=BD=95=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JisolGameServer/Main/pom.xml | 16 +++++ .../java/cn/jisol/game/JGameApplication.java | 3 + .../jisol/game/controller/UserController.java | 58 +++++++++++++++++++ .../main/java/cn/jisol/game/data/Cache.java | 28 +++++++++ .../src/main/java/cn/jisol/game/data/TD.java | 13 +++++ .../main/java/cn/jisol/game/entity/User.java | 17 ++++++ .../main/java/cn/jisol/game/json/GRole.java | 4 -- .../jisol/game/listener/InitGameListener.java | 11 ++-- .../java/cn/jisol/game/mapper/UserMapper.java | 10 ++++ .../cn/jisol/game/service/UserService.java | 8 +++ .../game/service/impl/UserServiceImpl.java | 14 +++++ .../java/cn/jisol/game/swagger/Swagger.java | 43 ++++++++++++++ .../Main/src/main/resources/application.yml | 12 ++++ 13 files changed, 229 insertions(+), 8 deletions(-) create mode 100644 JisolGameServer/Main/src/main/java/cn/jisol/game/controller/UserController.java create mode 100644 JisolGameServer/Main/src/main/java/cn/jisol/game/data/Cache.java create mode 100644 JisolGameServer/Main/src/main/java/cn/jisol/game/data/TD.java create mode 100644 JisolGameServer/Main/src/main/java/cn/jisol/game/entity/User.java delete mode 100644 JisolGameServer/Main/src/main/java/cn/jisol/game/json/GRole.java create mode 100644 JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/UserMapper.java create mode 100644 JisolGameServer/Main/src/main/java/cn/jisol/game/service/UserService.java create mode 100644 JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/UserServiceImpl.java create mode 100644 JisolGameServer/Main/src/main/java/cn/jisol/game/swagger/Swagger.java create mode 100644 JisolGameServer/Main/src/main/resources/application.yml diff --git a/JisolGameServer/Main/pom.xml b/JisolGameServer/Main/pom.xml index 4975b07c..5b946156 100644 --- a/JisolGameServer/Main/pom.xml +++ b/JisolGameServer/Main/pom.xml @@ -26,6 +26,22 @@ com.google.code.gson gson + + com.baomidou + mybatis-plus-boot-starter + 3.5.2 + + + com.h2database + h2 + runtime + + + mysql + mysql-connector-java + runtime + 8.0.30 + diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/JGameApplication.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/JGameApplication.java index 1f6f756f..47f8efa3 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/JGameApplication.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/JGameApplication.java @@ -1,9 +1,12 @@ package cn.jisol.game; +import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ApplicationContext; + +@MapperScan(basePackages = "cn.jisol.game.mapper") @SpringBootApplication public class JGameApplication { public static void main(String[] args) { diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/UserController.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/UserController.java new file mode 100644 index 00000000..447361b8 --- /dev/null +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/UserController.java @@ -0,0 +1,58 @@ +package cn.jisol.game.controller; + +import cn.hutool.core.util.RandomUtil; +import cn.jisol.game.entity.User; +import cn.jisol.game.service.UserService; +import cn.jisol.game.service.impl.UserServiceImpl; +import cn.jisol.ngame.util.NewsContext; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Objects; + +/** + * 玩家 API + */ +@Api(value = "JNGameDemo - API", tags = {"PET - API"}) +@RestController +@RequestMapping("/user") +@ResponseBody +public class UserController { + + @Autowired + private UserServiceImpl userService; + + //注册账户接口 + @ApiImplicitParams({}) + @ApiOperation(value = "注册账号") + @PostMapping("/register") + public NewsContext register(){ + User user = User.builder().userPass(RandomUtil.randomString(8)).userName("玩家名称").build(); + this.userService.save(user); + return NewsContext.onSuccess("保存成功",user); + } + + //登录账户 + @ApiImplicitParams({}) + @ApiOperation(value = "登录账号") + @PostMapping("/login") + public NewsContext login(@RequestBody User user){ + if(Objects.isNull(user.getUserId()) || Objects.isNull(user.getUserPass())){ + return NewsContext.onFail("登录失败"); + } + LambdaQueryWrapper query = Wrappers.lambdaQuery(); + query.eq(User::getUserId,user.getUserId()); + query.eq(User::getUserPass,user.getUserPass()); + if(Objects.nonNull(user = userService.getOne(query))){ + return NewsContext.onSuccess("登录成功",user); + }else{ + return NewsContext.onFail("登录失败"); + } + } + +} diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/data/Cache.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/data/Cache.java new file mode 100644 index 00000000..180bba10 --- /dev/null +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/data/Cache.java @@ -0,0 +1,28 @@ +package cn.jisol.game.data; + +import java.util.HashMap; +import java.util.Map; + +/** + * 缓存数据 小游戏直接用内存存 + */ +public class Cache { + + public static Map DATA = new HashMap<>(); + + //存储数据 + public void addData(String key,Object data){ + DATA.put(key,data); + } + + //读取数据 + public Object getData(String key){ + return DATA.get(key); + } + + //删除数据 + public void delData(String key){ + DATA.remove(key); + } + +} diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/data/TD.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/data/TD.java new file mode 100644 index 00000000..625f19a1 --- /dev/null +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/data/TD.java @@ -0,0 +1,13 @@ +package cn.jisol.game.data; + +import cfg.Tables; + +/** + * 配置表数据 + */ +public class TD { + public static Tables DATA = null; + public static Tables get(){ + return TD.DATA; + } +} diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/User.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/User.java new file mode 100644 index 00000000..3c645b9d --- /dev/null +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/User.java @@ -0,0 +1,17 @@ +package cn.jisol.game.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +@Builder +@Data +@TableName("`user`") +public class User { + @TableId(type = IdType.AUTO) + private Long userId; //玩家Id + private String userPass; //玩家密码 + private String userName; //玩家名称 +} diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/json/GRole.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/json/GRole.java deleted file mode 100644 index 803256c2..00000000 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/json/GRole.java +++ /dev/null @@ -1,4 +0,0 @@ -package cn.jisol.game.json; - -public class GRole { -} diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/listener/InitGameListener.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/listener/InitGameListener.java index 235e674e..d30e6519 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/listener/InitGameListener.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/listener/InitGameListener.java @@ -1,6 +1,7 @@ package cn.jisol.game.listener; import cfg.Tables; +import cn.jisol.game.data.TD; import com.google.gson.JsonParser; import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.context.event.EventListener; @@ -17,10 +18,12 @@ public class InitGameListener { public void onApplicationEvent(ContextRefreshedEvent event) { try { - Tables tables = new Tables(file -> JsonParser.parseReader( - new FileReader(ResourceUtils.getFile("classpath:json/"+file+".json")) - )); - System.out.println(tables.getTbGame().get(10000).name); + TD.DATA = new Tables(file -> { + System.out.println("加载配置表:"+file); + return JsonParser.parseReader( + new FileReader(ResourceUtils.getFile("classpath:json/"+file+".json")) + ); + }); } catch (IOException e) { e.printStackTrace(); } diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/UserMapper.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/UserMapper.java new file mode 100644 index 00000000..227b1fd6 --- /dev/null +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/UserMapper.java @@ -0,0 +1,10 @@ +package cn.jisol.game.mapper; + +import cn.jisol.game.entity.User; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.stereotype.Component; + +@Component +public interface UserMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/service/UserService.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/UserService.java new file mode 100644 index 00000000..a9aba486 --- /dev/null +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/UserService.java @@ -0,0 +1,8 @@ +package cn.jisol.game.service; + +import cn.jisol.game.entity.User; +import com.baomidou.mybatisplus.extension.service.IService; + +public interface UserService extends IService { + +} diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/UserServiceImpl.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/UserServiceImpl.java new file mode 100644 index 00000000..add19f27 --- /dev/null +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/UserServiceImpl.java @@ -0,0 +1,14 @@ +package cn.jisol.game.service.impl; + +import cn.jisol.game.entity.User; +import cn.jisol.game.mapper.UserMapper; +import cn.jisol.game.service.UserService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +@Service +public class UserServiceImpl extends ServiceImpl implements UserService { + + + +} diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/swagger/Swagger.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/swagger/Swagger.java new file mode 100644 index 00000000..6d90539f --- /dev/null +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/swagger/Swagger.java @@ -0,0 +1,43 @@ +package cn.jisol.game.swagger; + +import io.swagger.annotations.ApiOperation; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc; + +@Configuration +@EnableSwagger2WebMvc +public class Swagger { + + @Bean(value = "defaultApi") + public Docket defaultApi() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + //分组名称 + .groupName("Game Open") + .select() + //这里指定Controller扫描包路径 +// .apis(RequestHandlerSelectors.basePackage("com.github.xiaoymin.knife4j.controller")) + //这里指定扫描有ApiOperation注解的类 + .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) + //所有路径 + .paths(PathSelectors.any()) + //不包含^/inner/.*的路径 + //.paths(input -> !input.matches("^/inner/.*")) + .build(); + } + + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title("Game Open APIs") + .description("Game Open APIs") + .version("1.0") + .build(); + } +} diff --git a/JisolGameServer/Main/src/main/resources/application.yml b/JisolGameServer/Main/src/main/resources/application.yml new file mode 100644 index 00000000..d4ae8ac9 --- /dev/null +++ b/JisolGameServer/Main/src/main/resources/application.yml @@ -0,0 +1,12 @@ +server: + port: 8080 +spring: + datasource: + username: pet_jisol_cn + password: sThsBwjfDcaw2wJR + url: jdbc:mysql://kyu.jisol.cn:3306/pet_jisol_cn?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8 + driver-class-name: com.mysql.cj.jdbc.Driver + +mybatis-plus: + configuration: + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl \ No newline at end of file