Browse Source

修改mybatis-plus架构

dos 9 months ago
parent
commit
207e03aef4
22 changed files with 449 additions and 466 deletions
  1. 66 52
      .idea/workspace.xml
  2. 1 1
      game-admin/src/main/java/com/game/web/core/config/SwaggerConfig.java
  3. 2 2
      game-admin/src/main/resources/application-druid.yml
  4. 13 4
      game-admin/src/main/resources/application.yml
  5. 2 1
      game-business/src/main/java/com/game/business/mapper/GameLotteryMapper.java
  6. 2 1
      game-business/src/main/java/com/game/business/mapper/GameRecordMapper.java
  7. 2 1
      game-business/src/main/java/com/game/business/mapper/GameTypeMapper.java
  8. 6 0
      game-common/pom.xml
  9. 3 3
      game-common/src/main/java/com/game/common/constant/Constants.java
  10. 3 0
      game-common/src/main/java/com/game/common/core/domain/BaseEntity.java
  11. 2 2
      game-framework/src/main/java/com/game/framework/aspectj/DataSourceAspect.java
  12. 0 132
      game-framework/src/main/java/com/game/framework/config/MyBatisConfig.java
  13. 62 0
      game-framework/src/main/java/com/game/framework/config/MybatisPlusConfig.java
  14. 3 1
      game-generator/src/main/java/com/game/generator/mapper/GenTableColumnMapper.java
  15. 3 1
      game-generator/src/main/java/com/game/generator/mapper/GenTableMapper.java
  16. 72 63
      game-generator/src/main/resources/vm/java/domain.java.vm
  17. 35 35
      game-generator/src/main/resources/vm/java/mapper.java.vm
  18. 10 10
      game-generator/src/main/resources/vm/java/service.java.vm
  19. 88 95
      game-generator/src/main/resources/vm/java/serviceImpl.java.vm
  20. 53 54
      game-generator/src/main/resources/vm/java/sub-domain.java.vm
  21. 1 1
      game-quartz/src/main/java/com/game/quartz/config/ScheduleConfig.java
  22. 20 7
      pom.xml

+ 66 - 52
.idea/workspace.xml

@@ -5,29 +5,27 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="f5c8d7e3-5061-4136-9b02-980223f1d915" name="Changes" comment="websocket">
-      <change afterPath="$PROJECT_DIR$/game-business/src/main/java/com/game/business/domain/GameLottery.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/game-business/src/main/java/com/game/business/domain/GameRecord.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/game-business/src/main/java/com/game/business/domain/GameType.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/game-business/src/main/java/com/game/business/mapper/GameLotteryMapper.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/game-business/src/main/java/com/game/business/mapper/GameRecordMapper.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/game-business/src/main/java/com/game/business/mapper/GameTypeMapper.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/game-business/src/main/java/com/game/business/service/GameLotteryService.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/game-business/src/main/java/com/game/business/service/GameRecordService.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/game-business/src/main/java/com/game/business/service/GameTypeService.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/game-business/src/main/java/com/game/business/service/impl/GameLotteryServiceImpl.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/game-business/src/main/java/com/game/business/service/impl/GameRecordServiceImpl.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/game-business/src/main/java/com/game/business/service/impl/GameTypeServiceImpl.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/game-business/src/main/resources/mapper/business/GameLotteryMapper.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/game-business/src/main/resources/mapper/business/GameRecordMapper.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/game-business/src/main/resources/mapper/business/GameTypeMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/game-framework/src/main/java/com/game/framework/config/MybatisPlusConfig.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/game-admin/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/game-admin/pom.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/game-admin/src/main/java/com/game/web/core/config/GameOneConfig.java" beforeDir="false" afterPath="$PROJECT_DIR$/game-business/src/main/java/com/game/business/config/GameOneConfig.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/game-admin/src/main/java/com/game/web/core/config/SpringContextSetting.java" beforeDir="false" afterPath="$PROJECT_DIR$/game-business/src/main/java/com/game/business/config/SpringContextSetting.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/game-admin/src/main/java/com/game/web/core/config/WebSocketConfig.java" beforeDir="false" afterPath="$PROJECT_DIR$/game-business/src/main/java/com/game/business/config/WebSocketConfig.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/game-admin/src/main/java/com/game/web/util/Common.java" beforeDir="false" afterPath="$PROJECT_DIR$/game-business/src/main/java/com/game/business/util/Common.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/game-admin/src/main/java/com/game/web/websocket/WebSocketConnent.java" beforeDir="false" afterPath="$PROJECT_DIR$/game-business/src/main/java/com/game/business/websocket/WebSocketConnent.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/game-admin/src/main/java/com/game/web/websocket/client/GameOneClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/game-business/src/main/java/com/game/business/websocket/client/GameOneClient.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/game-admin/src/main/java/com/game/web/core/config/SwaggerConfig.java" beforeDir="false" afterPath="$PROJECT_DIR$/game-admin/src/main/java/com/game/web/core/config/SwaggerConfig.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/game-admin/src/main/resources/application-druid.yml" beforeDir="false" afterPath="$PROJECT_DIR$/game-admin/src/main/resources/application-druid.yml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/game-admin/src/main/resources/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/game-admin/src/main/resources/application.yml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/game-business/src/main/java/com/game/business/mapper/GameLotteryMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/game-business/src/main/java/com/game/business/mapper/GameLotteryMapper.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/game-business/src/main/java/com/game/business/mapper/GameRecordMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/game-business/src/main/java/com/game/business/mapper/GameRecordMapper.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/game-business/src/main/java/com/game/business/mapper/GameTypeMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/game-business/src/main/java/com/game/business/mapper/GameTypeMapper.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/game-common/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/game-common/pom.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/game-common/src/main/java/com/game/common/constant/Constants.java" beforeDir="false" afterPath="$PROJECT_DIR$/game-common/src/main/java/com/game/common/constant/Constants.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/game-common/src/main/java/com/game/common/core/domain/BaseEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/game-common/src/main/java/com/game/common/core/domain/BaseEntity.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/game-framework/src/main/java/com/game/framework/aspectj/DataSourceAspect.java" beforeDir="false" afterPath="$PROJECT_DIR$/game-framework/src/main/java/com/game/framework/aspectj/DataSourceAspect.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/game-framework/src/main/java/com/game/framework/config/MyBatisConfig.java" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/game-generator/src/main/java/com/game/generator/mapper/GenTableColumnMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/game-generator/src/main/java/com/game/generator/mapper/GenTableColumnMapper.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/game-generator/src/main/java/com/game/generator/mapper/GenTableMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/game-generator/src/main/java/com/game/generator/mapper/GenTableMapper.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/game-generator/src/main/resources/vm/java/domain.java.vm" beforeDir="false" afterPath="$PROJECT_DIR$/game-generator/src/main/resources/vm/java/domain.java.vm" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/game-generator/src/main/resources/vm/java/mapper.java.vm" beforeDir="false" afterPath="$PROJECT_DIR$/game-generator/src/main/resources/vm/java/mapper.java.vm" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/game-generator/src/main/resources/vm/java/service.java.vm" beforeDir="false" afterPath="$PROJECT_DIR$/game-generator/src/main/resources/vm/java/service.java.vm" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/game-generator/src/main/resources/vm/java/serviceImpl.java.vm" beforeDir="false" afterPath="$PROJECT_DIR$/game-generator/src/main/resources/vm/java/serviceImpl.java.vm" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/game-generator/src/main/resources/vm/java/sub-domain.java.vm" beforeDir="false" afterPath="$PROJECT_DIR$/game-generator/src/main/resources/vm/java/sub-domain.java.vm" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/game-quartz/src/main/java/com/game/quartz/config/ScheduleConfig.java" beforeDir="false" afterPath="$PROJECT_DIR$/game-quartz/src/main/java/com/game/quartz/config/ScheduleConfig.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/pom.xml" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
@@ -50,13 +48,15 @@
     </option>
     <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
   </component>
+  <component name="MarkdownSettingsMigration">
+    <option name="stateVersion" value="1" />
+  </component>
   <component name="MavenImportPreferences">
     <option name="generalSettings">
       <MavenGeneralSettings>
-        <option name="customMavenHome" value="D:\apache-maven-3.6.3" />
-        <option name="mavenHomeTypeForPersistence" value="CUSTOM" />
-        <option name="useMavenConfig" value="false" />
-        <option name="userSettingsFile" value="D:\apache-maven-3.6.3\conf\settings.xml" />
+        <option name="mavenHome" value="$PROJECT_DIR$/../../tools/apache-maven-3.8.3" />
+        <option name="useMavenConfig" value="true" />
+        <option name="userSettingsFile" value="D:\tools\apache-maven-3.8.3\conf\settings.xml" />
       </MavenGeneralSettings>
     </option>
   </component>
@@ -69,27 +69,37 @@
     <option name="hideEmptyMiddlePackages" value="true" />
     <option name="showLibraryContents" value="true" />
   </component>
-  <component name="PropertiesComponent"><![CDATA[{
-  "keyToString": {
-    "Maven.game [clean].executor": "Run",
-    "Maven.game [install].executor": "Run",
-    "Maven.game [package].executor": "Run",
-    "RunOnceActivity.ShowReadmeOnStart": "true",
-    "git-widget-placeholder": "master",
-    "kotlin-language-version-configured": "true",
-    "last_opened_file_path": "D:/live/game/game-business/src/main/java/com/game/business/config",
-    "node.js.detected.package.eslint": "true",
-    "node.js.detected.package.tslint": "true",
-    "node.js.selected.package.eslint": "(autodetect)",
-    "node.js.selected.package.tslint": "(autodetect)",
-    "nodejs_package_manager_path": "npm",
-    "project.structure.last.edited": "Modules",
-    "project.structure.proportion": "0.0",
-    "project.structure.side.proportion": "0.0",
-    "settings.editor.selected.configurable": "MavenSettings",
-    "vue.rearranger.settings.migration": "true"
+  <component name="PropertiesComponent">{
+  &quot;keyToString&quot;: {
+    &quot;Maven.game [clean].executor&quot;: &quot;Run&quot;,
+    &quot;Maven.game [install].executor&quot;: &quot;Run&quot;,
+    &quot;Maven.game [package].executor&quot;: &quot;Run&quot;,
+    &quot;RequestMappingsPanelOrder0&quot;: &quot;0&quot;,
+    &quot;RequestMappingsPanelOrder1&quot;: &quot;1&quot;,
+    &quot;RequestMappingsPanelWidth0&quot;: &quot;75&quot;,
+    &quot;RequestMappingsPanelWidth1&quot;: &quot;75&quot;,
+    &quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
+    &quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
+    &quot;WebServerToolWindowFactoryState&quot;: &quot;false&quot;,
+    &quot;git-widget-placeholder&quot;: &quot;master&quot;,
+    &quot;kotlin-language-version-configured&quot;: &quot;true&quot;,
+    &quot;last_opened_file_path&quot;: &quot;D:/live/game/game-business/src/main/java/com/game/business/config&quot;,
+    &quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
+    &quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
+    &quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
+    &quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
+    &quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
+    &quot;project.structure.last.edited&quot;: &quot;Modules&quot;,
+    &quot;project.structure.proportion&quot;: &quot;0.0&quot;,
+    &quot;project.structure.side.proportion&quot;: &quot;0.0&quot;,
+    &quot;settings.editor.selected.configurable&quot;: &quot;MavenSettings&quot;,
+    &quot;spring.configuration.checksum&quot;: &quot;01ad92f1c31e09c130eb2891a582796d&quot;,
+    &quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
   }
-}]]></component>
+}</component>
+  <component name="ReactorSettings">
+    <option name="notificationShown" value="true" />
+  </component>
   <component name="RecentsManager">
     <key name="CopyFile.RECENT_KEYS">
       <recent name="D:\live\game\game-business\src\main\java\com\game\business\config" />
@@ -104,6 +114,7 @@
   <component name="RunAnythingCache">
     <option name="myCommands">
       <command value="mvn clean" />
+      <command value="mvn clean install" />
     </option>
   </component>
   <component name="RunManager">
@@ -153,6 +164,9 @@
       <workItem from="1717907892506" duration="1531000" />
       <workItem from="1717916618050" duration="34000" />
       <workItem from="1718071480756" duration="11258000" />
+      <workItem from="1718267267883" duration="2449000" />
+      <workItem from="1718284779456" duration="2514000" />
+      <workItem from="1718331525146" duration="589000" />
     </task>
     <task id="LOCAL-00001" summary="init game">
       <option name="closed" value="true" />
@@ -177,16 +191,12 @@
     <option name="version" value="3" />
   </component>
   <component name="Vcs.Log.Tabs.Properties">
-    <option name="OPEN_GENERIC_TABS">
-      <map>
-        <entry key="32a7a950-c1b1-4169-8aaa-2b29a3ca35f6" value="TOOL_WINDOW" />
-      </map>
-    </option>
     <option name="TAB_STATES">
       <map>
         <entry key="32a7a950-c1b1-4169-8aaa-2b29a3ca35f6">
           <value>
             <State>
+              <option name="SHOW_ONLY_AFFECTED_CHANGES" value="true" />
               <option name="FILTERS">
                 <map>
                   <entry key="branch">
@@ -205,7 +215,6 @@
                   </entry>
                 </map>
               </option>
-              <option name="SHOW_ONLY_AFFECTED_CHANGES" value="true" />
             </State>
           </value>
         </entry>
@@ -216,6 +225,11 @@
         </entry>
       </map>
     </option>
+    <option name="OPEN_GENERIC_TABS">
+      <map>
+        <entry key="32a7a950-c1b1-4169-8aaa-2b29a3ca35f6" value="TOOL_WINDOW" />
+      </map>
+    </option>
   </component>
   <component name="VcsManagerConfiguration">
     <MESSAGE value="init game" />

+ 1 - 1
game-admin/src/main/java/com/game/web/core/config/SwaggerConfig.java

@@ -58,7 +58,7 @@ public class SwaggerConfig
                 // 扫描所有有注解的api,用这种方式更灵活
                 .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                 // 扫描指定包中的swagger注解
-                // .apis(RequestHandlerSelectors.basePackage("com.recruit.project.tool.swagger"))
+                // .apis(RequestHandlerSelectors.basePackage("com.game.project.tool.swagger"))
                 // 扫描所有 .apis(RequestHandlerSelectors.any())
                 .paths(PathSelectors.any())
                 .build()

+ 2 - 2
game-admin/src/main/resources/application-druid.yml

@@ -6,9 +6,9 @@ spring:
         druid:
             # 主库数据源
             master:
-                url: jdbc:mysql://shitc.tpddns.cn:3306/recruit?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                url: jdbc:mysql://148.66.10.10:3306/mugozbg_live?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                 username: root
-                password: 1234abcD
+                password: Buslive@0530
             # 从库数据源
             slave:
                 # 从数据源开关/默认关闭

+ 13 - 4
game-admin/src/main/resources/application.yml

@@ -68,13 +68,13 @@ spring:
   # redis 配置
   redis:
     # 地址
-    host: shitc.tpddns.cn
+    host: 148.66.10.10
     # 端口,默认为6379
-    port: 8063
+    port: 6379
     # 数据库索引
     database: 0
     # 密码
-    #password:
+    password: Buslive@0530
     # 连接超时时间
     timeout: 10s
     lettuce:
@@ -98,7 +98,16 @@ token:
   expireTime: 30
 
 # MyBatis配置
-mybatis:
+#mybatis:
+#  # 搜索指定包别名
+#  typeAliasesPackage: com.game.**.domain
+#  # 配置mapper的扫描,找到所有的mapper.xml映射文件
+#  mapperLocations: classpath*:mapper/**/*Mapper.xml
+#  # 加载全局的配置文件
+#  configLocation: classpath:mybatis/mybatis-config.xml
+
+# MyBatis-plus配置
+mybatis-plus:
   # 搜索指定包别名
   typeAliasesPackage: com.game.**.domain
   # 配置mapper的扫描,找到所有的mapper.xml映射文件

+ 2 - 1
game-business/src/main/java/com/game/business/mapper/GameLotteryMapper.java

@@ -1,10 +1,11 @@
 package com.game.business.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.game.business.domain.GameLottery;
 
 import java.util.List;
 
-public interface GameLotteryMapper {
+public interface GameLotteryMapper extends BaseMapper<GameLottery> {
 
 
     /**

+ 2 - 1
game-business/src/main/java/com/game/business/mapper/GameRecordMapper.java

@@ -1,10 +1,11 @@
 package com.game.business.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.game.business.domain.GameRecord;
 
 import java.util.List;
 
-public interface GameRecordMapper {
+public interface GameRecordMapper extends BaseMapper<GameRecord> {
 
     /**
      * 新增游戏推送信息

+ 2 - 1
game-business/src/main/java/com/game/business/mapper/GameTypeMapper.java

@@ -1,10 +1,11 @@
 package com.game.business.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.game.business.domain.GameType;
 
 import java.util.List;
 
-public interface GameTypeMapper {
+public interface GameTypeMapper extends BaseMapper<GameType> {
 
     /**
      * 新增游戏信息

+ 6 - 0
game-common/pom.xml

@@ -35,6 +35,12 @@
             <artifactId>spring-boot-starter-security</artifactId>
         </dependency>
 
+        <!--mybatis-plus-->
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+        </dependency>
+
         <!-- pagehelper 分页插件 -->
         <dependency>
             <groupId>com.github.pagehelper</groupId>

+ 3 - 3
game-common/src/main/java/com/game/common/constant/Constants.java

@@ -158,16 +158,16 @@ public class Constants
     /**
      * 自动识别json对象白名单配置(仅允许解析的包名,范围越小越安全)
      */
-    public static final String[] JSON_WHITELIST_STR = { "org.springframework", "com.recruit" };
+    public static final String[] JSON_WHITELIST_STR = { "org.springframework", "com.game" };
 
     /**
      * 定时任务白名单配置(仅允许访问的包名,如其他需要可以自行添加)
      */
-    public static final String[] JOB_WHITELIST_STR = { "com.recruit.quartz.task" };
+    public static final String[] JOB_WHITELIST_STR = { "com.game.quartz.task" };
 
     /**
      * 定时任务违规的字符
      */
     public static final String[] JOB_ERROR_STR = { "java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml",
-            "org.springframework", "org.apache", "com.recruit.common.utils.file", "com.recruit.common.config", "com.recruit.generator" };
+            "org.springframework", "org.apache", "com.game.common.utils.file", "com.game.common.config", "com.game.generator" };
 }

+ 3 - 0
game-common/src/main/java/com/game/common/core/domain/BaseEntity.java

@@ -4,6 +4,8 @@ import java.io.Serializable;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
+
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonInclude;
@@ -40,6 +42,7 @@ public class BaseEntity implements Serializable
 
     /** 请求参数 */
     @JsonInclude(JsonInclude.Include.NON_EMPTY)
+    @TableField(exist = false)
     private Map<String, Object> params;
 
     public String getSearchValue()

+ 2 - 2
game-framework/src/main/java/com/game/framework/aspectj/DataSourceAspect.java

@@ -27,8 +27,8 @@ public class DataSourceAspect
 {
     protected Logger logger = LoggerFactory.getLogger(getClass());
 
-    @Pointcut("@annotation(com.recruit.common.annotation.DataSource)"
-            + "|| @within(com.recruit.common.annotation.DataSource)")
+    @Pointcut("@annotation(com.game.common.annotation.DataSource)"
+            + "|| @within(com.game.common.annotation.DataSource)")
     public void dsPointCut()
     {
 

+ 0 - 132
game-framework/src/main/java/com/game/framework/config/MyBatisConfig.java

@@ -1,132 +0,0 @@
-package com.game.framework.config;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import javax.sql.DataSource;
-import org.apache.ibatis.io.VFS;
-import org.apache.ibatis.session.SqlSessionFactory;
-import org.mybatis.spring.SqlSessionFactoryBean;
-import org.mybatis.spring.boot.autoconfigure.SpringBootVFS;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.core.env.Environment;
-import org.springframework.core.io.DefaultResourceLoader;
-import org.springframework.core.io.Resource;
-import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
-import org.springframework.core.io.support.ResourcePatternResolver;
-import org.springframework.core.type.classreading.CachingMetadataReaderFactory;
-import org.springframework.core.type.classreading.MetadataReader;
-import org.springframework.core.type.classreading.MetadataReaderFactory;
-import org.springframework.util.ClassUtils;
-import com.game.common.utils.StringUtils;
-
-/**
- * Mybatis支持*匹配扫描包
- * 
- * @author recruit
- */
-@Configuration
-public class MyBatisConfig
-{
-    @Autowired
-    private Environment env;
-
-    static final String DEFAULT_RESOURCE_PATTERN = "**/*.class";
-
-    public static String setTypeAliasesPackage(String typeAliasesPackage)
-    {
-        ResourcePatternResolver resolver = (ResourcePatternResolver) new PathMatchingResourcePatternResolver();
-        MetadataReaderFactory metadataReaderFactory = new CachingMetadataReaderFactory(resolver);
-        List<String> allResult = new ArrayList<String>();
-        try
-        {
-            for (String aliasesPackage : typeAliasesPackage.split(","))
-            {
-                List<String> result = new ArrayList<String>();
-                aliasesPackage = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX
-                        + ClassUtils.convertClassNameToResourcePath(aliasesPackage.trim()) + "/" + DEFAULT_RESOURCE_PATTERN;
-                Resource[] resources = resolver.getResources(aliasesPackage);
-                if (resources != null && resources.length > 0)
-                {
-                    MetadataReader metadataReader = null;
-                    for (Resource resource : resources)
-                    {
-                        if (resource.isReadable())
-                        {
-                            metadataReader = metadataReaderFactory.getMetadataReader(resource);
-                            try
-                            {
-                                result.add(Class.forName(metadataReader.getClassMetadata().getClassName()).getPackage().getName());
-                            }
-                            catch (ClassNotFoundException e)
-                            {
-                                e.printStackTrace();
-                            }
-                        }
-                    }
-                }
-                if (result.size() > 0)
-                {
-                    HashSet<String> hashResult = new HashSet<String>(result);
-                    allResult.addAll(hashResult);
-                }
-            }
-            if (allResult.size() > 0)
-            {
-                typeAliasesPackage = String.join(",", (String[]) allResult.toArray(new String[0]));
-            }
-            else
-            {
-                throw new RuntimeException("mybatis typeAliasesPackage 路径扫描错误,参数typeAliasesPackage:" + typeAliasesPackage + "未找到任何包");
-            }
-        }
-        catch (IOException e)
-        {
-            e.printStackTrace();
-        }
-        return typeAliasesPackage;
-    }
-
-    public Resource[] resolveMapperLocations(String[] mapperLocations)
-    {
-        ResourcePatternResolver resourceResolver = new PathMatchingResourcePatternResolver();
-        List<Resource> resources = new ArrayList<Resource>();
-        if (mapperLocations != null)
-        {
-            for (String mapperLocation : mapperLocations)
-            {
-                try
-                {
-                    Resource[] mappers = resourceResolver.getResources(mapperLocation);
-                    resources.addAll(Arrays.asList(mappers));
-                }
-                catch (IOException e)
-                {
-                    // ignore
-                }
-            }
-        }
-        return resources.toArray(new Resource[resources.size()]);
-    }
-
-    @Bean
-    public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception
-    {
-        String typeAliasesPackage = env.getProperty("mybatis.typeAliasesPackage");
-        String mapperLocations = env.getProperty("mybatis.mapperLocations");
-        String configLocation = env.getProperty("mybatis.configLocation");
-        typeAliasesPackage = setTypeAliasesPackage(typeAliasesPackage);
-        VFS.addImplClass(SpringBootVFS.class);
-
-        final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
-        sessionFactory.setDataSource(dataSource);
-        sessionFactory.setTypeAliasesPackage(typeAliasesPackage);
-        sessionFactory.setMapperLocations(resolveMapperLocations(StringUtils.split(mapperLocations, ",")));
-        sessionFactory.setConfigLocation(new DefaultResourceLoader().getResource(configLocation));
-        return sessionFactory.getObject();
-    }
-}

+ 62 - 0
game-framework/src/main/java/com/game/framework/config/MybatisPlusConfig.java

@@ -0,0 +1,62 @@
+package com.game.framework.config;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+/**
+ * Mybatis Plus 配置
+ *
+ * @author ruoyi
+ */
+@EnableTransactionManagement(proxyTargetClass = true)
+@Configuration
+public class MybatisPlusConfig
+{
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor()
+    {
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        // 分页插件
+        interceptor.addInnerInterceptor(paginationInnerInterceptor());
+        // 乐观锁插件
+        interceptor.addInnerInterceptor(optimisticLockerInnerInterceptor());
+        // 阻断插件
+        interceptor.addInnerInterceptor(blockAttackInnerInterceptor());
+        return interceptor;
+    }
+
+    /**
+     * 分页插件,自动识别数据库类型 https://baomidou.com/guide/interceptor-pagination.html
+     */
+    public PaginationInnerInterceptor paginationInnerInterceptor()
+    {
+        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
+        // 设置数据库类型为mysql
+        paginationInnerInterceptor.setDbType(DbType.MYSQL);
+        // 设置最大单页限制数量,默认 500 条,-1 不受限制
+        paginationInnerInterceptor.setMaxLimit(-1L);
+        return paginationInnerInterceptor;
+    }
+
+    /**
+     * 乐观锁插件 https://baomidou.com/guide/interceptor-optimistic-locker.html
+     */
+    public OptimisticLockerInnerInterceptor optimisticLockerInnerInterceptor()
+    {
+        return new OptimisticLockerInnerInterceptor();
+    }
+
+    /**
+     * 如果是对全表的删除或更新操作,就会终止该操作 https://baomidou.com/guide/interceptor-block-attack.html
+     */
+    public BlockAttackInnerInterceptor blockAttackInnerInterceptor()
+    {
+        return new BlockAttackInnerInterceptor();
+    }
+}

+ 3 - 1
game-generator/src/main/java/com/game/generator/mapper/GenTableColumnMapper.java

@@ -1,6 +1,8 @@
 package com.game.generator.mapper;
 
 import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.game.generator.domain.GenTableColumn;
 
 /**
@@ -8,7 +10,7 @@ import com.game.generator.domain.GenTableColumn;
  * 
  * @author ruoyi
  */
-public interface GenTableColumnMapper
+public interface GenTableColumnMapper extends BaseMapper<GenTableColumn>
 {
     /**
      * 根据表名称查询列信息

+ 3 - 1
game-generator/src/main/java/com/game/generator/mapper/GenTableMapper.java

@@ -1,6 +1,8 @@
 package com.game.generator.mapper;
 
 import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.game.generator.domain.GenTable;
 
 /**
@@ -8,7 +10,7 @@ import com.game.generator.domain.GenTable;
  * 
  * @author ruoyi
  */
-public interface GenTableMapper
+public interface GenTableMapper extends BaseMapper<GenTable>
 {
     /**
      * 查询业务列表

+ 72 - 63
game-generator/src/main/resources/vm/java/domain.java.vm

@@ -3,101 +3,110 @@ package ${packageName}.domain;
 #foreach ($import in $importList)
 import ${import};
 #end
-import com.game.common.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.rchuing.sis.common.annotation.Excel;
 #if($table.crud || $table.sub)
-import com.game.common.core.domain.BaseEntity;
+import com.rchuing.sis.common.core.domain.BaseEntity;
 #elseif($table.tree)
-import com.game.common.core.domain.TreeEntity;
+import com.fenghuang.common.core.domain.TreeEntity;
 #end
 
 /**
  * ${functionName}对象 ${tableName}
- * 
+ *
  * @author ${author}
  * @date ${datetime}
  */
 #if($table.crud || $table.sub)
-#set($Entity="BaseEntity")
+    #set($Entity="BaseEntity")
 #elseif($table.tree)
-#set($Entity="TreeEntity")
+    #set($Entity="TreeEntity")
 #end
+@TableName(resultMap = "${packageName}.mapper.${ClassName}Mapper.${ClassName}Result")
 public class ${ClassName} extends ${Entity}
-{
-    private static final long serialVersionUID = 1L;
+        {
+private static final long serialVersionUID = 1L;
 
 #foreach ($column in $columns)
-#if(!$table.isSuperColumn($column.javaField))
+    #if(!$table.isSuperColumn($column.javaField))
     /** $column.columnComment */
-#if($column.list)
-#set($parentheseIndex=$column.columnComment.indexOf("("))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-#if($parentheseIndex != -1)
-    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
-#elseif($column.javaType == 'Date')
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd")
-#else
-    @Excel(name = "${comment}")
-#end
-#end
+        #if($column.list)
+            #set($parentheseIndex=$column.columnComment.indexOf("("))
+            #if($parentheseIndex != -1)
+                #set($comment=$column.columnComment.substring(0, $parentheseIndex))
+            #else
+                #set($comment=$column.columnComment)
+            #end
+            #if($parentheseIndex != -1)
+            @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+            #elseif($column.javaType == 'Date')
+            @JsonFormat(pattern = "yyyy-MM-dd")
+            @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd")
+            #else
+            @Excel(name = "${comment}")
+            #end
+        #end
+        #if($column.isPk == 1)
+        @TableId(value = "$column.columnName",type = IdType.AUTO)
+        #end
     private $column.javaType $column.javaField;
 
-#end
+    #end
 #end
 #if($table.sub)
-    /** $table.subTable.functionName信息 */
-    private List<${subClassName}> ${subclassName}List;
+/** $table.subTable.functionName信息 */
+private List<${subClassName}> ${subclassName}List;
 
 #end
 #foreach ($column in $columns)
-#if(!$table.isSuperColumn($column.javaField))
-#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]"))
-#set($AttrName=$column.javaField)
-#else
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-#end
-    public void set${AttrName}($column.javaType $column.javaField) 
-    {
-        this.$column.javaField = $column.javaField;
-    }
+    #if(!$table.isSuperColumn($column.javaField))
+        #if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]"))
+            #set($AttrName=$column.javaField)
+        #else
+            #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
+        #end
+    public void set${AttrName}($column.javaType $column.javaField)
+            {
+            this.$column.javaField = $column.javaField;
+            }
 
-    public $column.javaType get${AttrName}() 
-    {
-        return $column.javaField;
-    }
-#end
+    public $column.javaType get${AttrName}()
+            {
+            return $column.javaField;
+            }
+    #end
 #end
 
 #if($table.sub)
-    public List<${subClassName}> get${subClassName}List()
-    {
+public List<${subClassName}> get${subClassName}List()
+        {
         return ${subclassName}List;
-    }
+        }
 
-    public void set${subClassName}List(List<${subClassName}> ${subclassName}List)
-    {
+public void set${subClassName}List(List<${subClassName}> ${subclassName}List)
+        {
         this.${subclassName}List = ${subclassName}List;
-    }
+        }
 
 #end
-    @Override
-    public String toString() {
+@Override
+public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-#foreach ($column in $columns)
-#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]"))
-#set($AttrName=$column.javaField)
-#else
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-#end
+    #foreach ($column in $columns)
+        #if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]"))
+            #set($AttrName=$column.javaField)
+        #else
+            #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
+        #end
             .append("${column.javaField}", get${AttrName}())
-#end
-#if($table.sub)
+    #end
+    #if($table.sub)
             .append("${subclassName}List", get${subClassName}List())
-#end
-            .toString();
-    }
-}
+    #end
+        .toString();
+        }
+        }

+ 35 - 35
game-generator/src/main/resources/vm/java/mapper.java.vm

@@ -1,6 +1,7 @@
 package ${packageName}.mapper;
 
 import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import ${packageName}.domain.${ClassName};
 #if($table.sub)
 import ${packageName}.domain.${subClassName};
@@ -8,15 +9,14 @@ import ${packageName}.domain.${subClassName};
 
 /**
  * ${functionName}Mapper接口
- * 
+ *
  * @author ${author}
  * @date ${datetime}
  */
-public interface ${ClassName}Mapper 
-{
+public interface ${ClassName}Mapper extends BaseMapper<${ClassName}> {
     /**
      * 查询${functionName}
-     * 
+     *
      * @param ${pkColumn.javaField} ${functionName}主键
      * @return ${functionName}
      */
@@ -24,7 +24,7 @@ public interface ${ClassName}Mapper
 
     /**
      * 查询${functionName}列表
-     * 
+     *
      * @param ${className} ${functionName}
      * @return ${functionName}集合
      */
@@ -32,7 +32,7 @@ public interface ${ClassName}Mapper
 
     /**
      * 新增${functionName}
-     * 
+     *
      * @param ${className} ${functionName}
      * @return 结果
      */
@@ -40,7 +40,7 @@ public interface ${ClassName}Mapper
 
     /**
      * 修改${functionName}
-     * 
+     *
      * @param ${className} ${functionName}
      * @return 结果
      */
@@ -48,7 +48,7 @@ public interface ${ClassName}Mapper
 
     /**
      * 删除${functionName}
-     * 
+     *
      * @param ${pkColumn.javaField} ${functionName}主键
      * @return 结果
      */
@@ -56,36 +56,36 @@ public interface ${ClassName}Mapper
 
     /**
      * 批量删除${functionName}
-     * 
+     *
      * @param ${pkColumn.javaField}s 需要删除的数据主键集合
      * @return 结果
      */
     public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s);
-#if($table.sub)
+    #if($table.sub)
 
-    /**
-     * 批量删除${subTable.functionName}
-     * 
-     * @param ${pkColumn.javaField}s 需要删除的数据主键集合
-     * @return 结果
-     */
-    public int delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaType}[] ${pkColumn.javaField}s);
-    
-    /**
-     * 批量新增${subTable.functionName}
-     * 
-     * @param ${subclassName}List ${subTable.functionName}列表
-     * @return 结果
-     */
-    public int batch${subClassName}(List<${subClassName}> ${subclassName}List);
-    
+        /**
+         * 批量删除${subTable.functionName}
+         *
+         * @param ${pkColumn.javaField}s 需要删除的数据主键集合
+         * @return 结果
+         */
+        public int delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaType}[] ${pkColumn.javaField}s);
 
-    /**
-     * 通过${functionName}主键删除${subTable.functionName}信息
-     * 
-     * @param ${pkColumn.javaField} ${functionName}ID
-     * @return 结果
-     */
-    public int delete${subClassName}By${subTableFkClassName}(${pkColumn.javaType} ${pkColumn.javaField});
-#end
-}
+        /**
+         * 批量新增${subTable.functionName}
+         *
+         * @param ${subclassName}List ${subTable.functionName}列表
+         * @return 结果
+         */
+        public int batch${subClassName}(List<${subClassName}> ${subclassName}List);
+
+
+        /**
+         * 通过${functionName}主键删除${subTable.functionName}信息
+         *
+         * @param ${pkColumn.javaField} ${functionName}ID
+         * @return 结果
+         */
+        public int delete${subClassName}By${subTableFkClassName}(${pkColumn.javaType} ${pkColumn.javaField});
+    #end
+}

+ 10 - 10
game-generator/src/main/resources/vm/java/service.java.vm

@@ -2,18 +2,18 @@ package ${packageName}.service;
 
 import java.util.List;
 import ${packageName}.domain.${ClassName};
+import com.baomidou.mybatisplus.extension.service.IService;
 
 /**
  * ${functionName}Service接口
- * 
+ *
  * @author ${author}
  * @date ${datetime}
  */
-public interface I${ClassName}Service 
-{
+public interface I${ClassName}Service extends IService<${ClassName}> {
     /**
      * 查询${functionName}
-     * 
+     *
      * @param ${pkColumn.javaField} ${functionName}主键
      * @return ${functionName}
      */
@@ -21,7 +21,7 @@ public interface I${ClassName}Service
 
     /**
      * 查询${functionName}列表
-     * 
+     *
      * @param ${className} ${functionName}
      * @return ${functionName}集合
      */
@@ -29,7 +29,7 @@ public interface I${ClassName}Service
 
     /**
      * 新增${functionName}
-     * 
+     *
      * @param ${className} ${functionName}
      * @return 结果
      */
@@ -37,7 +37,7 @@ public interface I${ClassName}Service
 
     /**
      * 修改${functionName}
-     * 
+     *
      * @param ${className} ${functionName}
      * @return 结果
      */
@@ -45,7 +45,7 @@ public interface I${ClassName}Service
 
     /**
      * 批量删除${functionName}
-     * 
+     *
      * @param ${pkColumn.javaField}s 需要删除的${functionName}主键集合
      * @return 结果
      */
@@ -53,9 +53,9 @@ public interface I${ClassName}Service
 
     /**
      * 删除${functionName}信息
-     * 
+     *
      * @param ${pkColumn.javaField} ${functionName}主键
      * @return 结果
      */
     public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField});
-}
+}

+ 88 - 95
game-generator/src/main/resources/vm/java/serviceImpl.java.vm

@@ -1,169 +1,162 @@
 package ${packageName}.service.impl;
 
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import java.util.List;
-#foreach ($column in $columns)
-#if($column.javaField == 'createTime' || $column.javaField == 'updateTime')
-import com.game.common.utils.DateUtils;
-#break
-#end
-#end
+    #foreach ($column in $columns)
+        #if($column.javaField == 'createTime' || $column.javaField == 'updateTime')
+        import com.rchuing.common.utils.DateUtils;
+            #break
+        #end
+    #end
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-#if($table.sub)
-import java.util.ArrayList;
-import com.game.common.utils.StringUtils;
-import org.springframework.transaction.annotation.Transactional;
-import ${packageName}.domain.${subClassName};
-#end
+    #if($table.sub)
+    import java.util.ArrayList;
+    import com.rchuing.common.utils.StringUtils;
+    import org.springframework.transaction.annotation.Transactional;
+    import ${packageName}.domain.${subClassName};
+    #end
 import ${packageName}.mapper.${ClassName}Mapper;
 import ${packageName}.domain.${ClassName};
 import ${packageName}.service.I${ClassName}Service;
 
 /**
  * ${functionName}Service业务层处理
- * 
+ *
  * @author ${author}
  * @date ${datetime}
  */
 @Service
-public class ${ClassName}ServiceImpl implements I${ClassName}Service 
-{
+public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${ClassName}> implements I${ClassName}Service {
     @Autowired
     private ${ClassName}Mapper ${className}Mapper;
 
     /**
      * 查询${functionName}
-     * 
+     *
      * @param ${pkColumn.javaField} ${functionName}主键
      * @return ${functionName}
      */
     @Override
-    public ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField})
-    {
+    public ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) {
         return ${className}Mapper.select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField});
     }
 
     /**
      * 查询${functionName}列表
-     * 
+     *
      * @param ${className} ${functionName}
      * @return ${functionName}
      */
     @Override
-    public List<${ClassName}> select${ClassName}List(${ClassName} ${className})
-    {
+    public List<${ClassName}> select${ClassName}List(${ClassName} ${className}) {
         return ${className}Mapper.select${ClassName}List(${className});
     }
 
     /**
      * 新增${functionName}
-     * 
+     *
      * @param ${className} ${functionName}
      * @return 结果
      */
-#if($table.sub)
-    @Transactional
-#end
+        #if($table.sub)
+        @Transactional
+        #end
     @Override
-    public int insert${ClassName}(${ClassName} ${className})
-    {
-#foreach ($column in $columns)
-#if($column.javaField == 'createTime')
-        ${className}.setCreateTime(DateUtils.getNowDate());
-#end
-#end
-#if($table.sub)
-        int rows = ${className}Mapper.insert${ClassName}(${className});
-        insert${subClassName}(${className});
-        return rows;
-#else
-        return ${className}Mapper.insert${ClassName}(${className});
-#end
+    public int insert${ClassName}(${ClassName} ${className}) {
+        #foreach ($column in $columns)
+            #if($column.javaField == 'createTime')
+                ${className}.setCreateTime(DateUtils.getNowDate());
+            #end
+        #end
+        #if($table.sub)
+            int rows = ${className}Mapper.insert${ClassName}(${className});
+            insert${subClassName}(${className});
+            return rows;
+        #else
+            return ${className}Mapper.insert${ClassName}(${className});
+        #end
     }
 
     /**
      * 修改${functionName}
-     * 
+     *
      * @param ${className} ${functionName}
      * @return 结果
      */
-#if($table.sub)
-    @Transactional
-#end
+        #if($table.sub)
+        @Transactional
+        #end
     @Override
-    public int update${ClassName}(${ClassName} ${className})
-    {
-#foreach ($column in $columns)
-#if($column.javaField == 'updateTime')
-        ${className}.setUpdateTime(DateUtils.getNowDate());
-#end
-#end
-#if($table.sub)
-        ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${className}.get${pkColumn.capJavaField}());
-        insert${subClassName}(${className});
-#end
+    public int update${ClassName}(${ClassName} ${className}) {
+        #foreach ($column in $columns)
+            #if($column.javaField == 'updateTime')
+                ${className}.setUpdateTime(DateUtils.getNowDate());
+            #end
+        #end
+        #if($table.sub)
+                ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${className}.get${pkColumn.capJavaField}());
+            insert${subClassName}(${className});
+        #end
         return ${className}Mapper.update${ClassName}(${className});
     }
 
     /**
      * 批量删除${functionName}
-     * 
+     *
      * @param ${pkColumn.javaField}s 需要删除的${functionName}主键
      * @return 结果
      */
-#if($table.sub)
-    @Transactional
-#end
+        #if($table.sub)
+        @Transactional
+        #end
     @Override
-    public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s)
-    {
-#if($table.sub)
-        ${className}Mapper.delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaField}s);
-#end
+    public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s) {
+        #if($table.sub)
+                ${className}Mapper.delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaField}s);
+        #end
         return ${className}Mapper.delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaField}s);
     }
 
     /**
      * 删除${functionName}信息
-     * 
+     *
      * @param ${pkColumn.javaField} ${functionName}主键
      * @return 结果
      */
-#if($table.sub)
-    @Transactional
-#end
+        #if($table.sub)
+        @Transactional
+        #end
     @Override
-    public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField})
-    {
-#if($table.sub)
-        ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${pkColumn.javaField});
-#end
+    public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) {
+        #if($table.sub)
+                ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${pkColumn.javaField});
+        #end
         return ${className}Mapper.delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField});
     }
-#if($table.sub)
+    #if($table.sub)
 
-    /**
-     * 新增${subTable.functionName}信息
-     * 
-     * @param ${className} ${functionName}对象
-     */
-    public void insert${subClassName}(${ClassName} ${className})
-    {
-        List<${subClassName}> ${subclassName}List = ${className}.get${subClassName}List();
-        ${pkColumn.javaType} ${pkColumn.javaField} = ${className}.get${pkColumn.capJavaField}();
-        if (StringUtils.isNotNull(${subclassName}List))
-        {
-            List<${subClassName}> list = new ArrayList<${subClassName}>();
-            for (${subClassName} ${subclassName} : ${subclassName}List)
+        /**
+         * 新增${subTable.functionName}信息
+         *
+         * @param ${className} ${functionName}对象
+         */
+        public void insert${subClassName}(${ClassName} ${className}) {
+            List<${subClassName}> ${subclassName}List = ${className}.get${subClassName}List();
+            ${pkColumn.javaType} ${pkColumn.javaField} = ${className}.get${pkColumn.capJavaField}();
+            if (StringUtils.isNotNull(${subclassName}List))
             {
-                ${subclassName}.set${subTableFkClassName}(${pkColumn.javaField});
-                list.add(${subclassName});
-            }
-            if (list.size() > 0)
-            {
-                ${className}Mapper.batch${subClassName}(list);
+                List<${subClassName}> list = new ArrayList<${subClassName}>();
+                for (${subClassName} ${subclassName} : ${subclassName}List)
+                {
+                    ${subclassName}.set${subTableFkClassName}(${pkColumn.javaField});
+                    list.add(${subclassName});
+                }
+                if (list.size() > 0)
+                {
+                        ${className}Mapper.batch${subClassName}(list);
+                }
             }
         }
-    }
-#end
-}
+    #end
+}

+ 53 - 54
game-generator/src/main/resources/vm/java/sub-domain.java.vm

@@ -1,74 +1,73 @@
 package ${packageName}.domain;
 
-#foreach ($import in $subImportList)
-import ${import};
-#end
-import com.game.common.annotation.Excel;
-import com.game.common.core.domain.BaseEntity;
+    #foreach ($import in $subImportList)
+    import ${import};
+    #end
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.rchuing.common.annotation.Excel;
+import com.rchuing.common.core.domain.BaseEntity;
 
 /**
  * ${subTable.functionName}对象 ${subTableName}
- * 
+ *
  * @author ${author}
  * @date ${datetime}
  */
-public class ${subClassName} extends BaseEntity
-{
-    private static final long serialVersionUID = 1L;
+public class ${subClassName} extends BaseEntity {
+private static final long serialVersionUID = 1L;
 
 #foreach ($column in $subTable.columns)
-#if(!$table.isSuperColumn($column.javaField))
+    #if(!$table.isSuperColumn($column.javaField))
     /** $column.columnComment */
-#if($column.list)
-#set($parentheseIndex=$column.columnComment.indexOf("("))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-#if($parentheseIndex != -1)
-    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
-#elseif($column.javaType == 'Date')
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd")
-#else
-    @Excel(name = "${comment}")
-#end
-#end
+        #if($column.list)
+            #set($parentheseIndex=$column.columnComment.indexOf("("))
+            #if($parentheseIndex != -1)
+                #set($comment=$column.columnComment.substring(0, $parentheseIndex))
+            #else
+                #set($comment=$column.columnComment)
+            #end
+            #if($parentheseIndex != -1)
+            @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+            #elseif($column.javaType == 'Date')
+            @JsonFormat(pattern = "yyyy-MM-dd")
+            @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd")
+            #else
+            @Excel(name = "${comment}")
+            #end
+        #end
     private $column.javaType $column.javaField;
 
-#end
+    #end
 #end
 #foreach ($column in $subTable.columns)
-#if(!$table.isSuperColumn($column.javaField))
-#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]"))
-#set($AttrName=$column.javaField)
-#else
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-#end
-    public void set${AttrName}($column.javaType $column.javaField) 
-    {
-        this.$column.javaField = $column.javaField;
-    }
+    #if(!$table.isSuperColumn($column.javaField))
+        #if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]"))
+            #set($AttrName=$column.javaField)
+        #else
+            #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
+        #end
+    public void set${AttrName}($column.javaType $column.javaField) {
+            this.$column.javaField = $column.javaField;
+            }
 
-    public $column.javaType get${AttrName}() 
-    {
-        return $column.javaField;
-    }
-#end
+    public $column.javaType get${AttrName}() {
+            return $column.javaField;
+            }
+    #end
 #end
 
-    @Override
-    public String toString() {
+@Override
+public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-#foreach ($column in $subTable.columns)
-#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]"))
-#set($AttrName=$column.javaField)
-#else
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-#end
+    #foreach ($column in $subTable.columns)
+        #if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]"))
+            #set($AttrName=$column.javaField)
+        #else
+            #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
+        #end
             .append("${column.javaField}", get${AttrName}())
-#end
-            .toString();
-    }
-}
+    #end
+        .toString();
+        }
+        }

+ 1 - 1
game-quartz/src/main/java/com/game/quartz/config/ScheduleConfig.java

@@ -1,4 +1,4 @@
-//package com.recruit.quartz.config;
+//package com.game.quartz.config;
 //
 //import org.springframework.context.annotation.Bean;
 //import org.springframework.context.annotation.Configuration;

+ 20 - 7
pom.xml

@@ -30,6 +30,7 @@
         <poi.version>4.1.2</poi.version>
         <velocity.version>2.3</velocity.version>
         <jwt.version>0.9.1</jwt.version>
+        <mybatis-plus.version>3.5.2</mybatis-plus.version>
     </properties>
 
     <!-- 依赖声明 -->
@@ -68,13 +69,6 @@
                 <version>${bitwalker.version}</version>
             </dependency>
 
-            <!-- pagehelper 分页插件 -->
-            <dependency>
-                <groupId>com.github.pagehelper</groupId>
-                <artifactId>pagehelper-spring-boot-starter</artifactId>
-                <version>${pagehelper.boot.version}</version>
-            </dependency>
-
             <!-- 获取系统信息 -->
             <dependency>
                 <groupId>com.github.oshi</groupId>
@@ -137,6 +131,25 @@
                 <version>${kaptcha.version}</version>
             </dependency>
 
+            <!--mybatis-plus-->
+            <dependency>
+                <groupId>com.baomidou</groupId>
+                <artifactId>mybatis-plus-boot-starter</artifactId>
+                <version>${mybatis-plus.version}</version>
+            </dependency>
+            <!-- pagehelper 分页插件 -->
+            <dependency>
+                <groupId>com.github.pagehelper</groupId>
+                <artifactId>pagehelper-spring-boot-starter</artifactId>
+                <version>${pagehelper.boot.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>org.mybatis</groupId>
+                        <artifactId>mybatis</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+
             <!-- 定时任务-->
             <dependency>
                 <groupId>com.game</groupId>