Browse Source

使用手册模块更新

亨利王 1 year ago
parent
commit
c54ce15305

+ 49 - 13
.idea/workspace.xml

@@ -5,13 +5,19 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="46b159bd-08ca-42f0-b80f-41d4944a8a29" name="Changes" comment="refined">
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/om/controller/user/ApproveAccountController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/om/controller/admin/ApproveAccountController.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/om/controller/user/DepartmentController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/om/controller/admin/DepartmentController.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/om/controller/user/DictController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/om/controller/admin/DictController.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/om/controller/user/EmployeeController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/om/controller/admin/EmployeeController.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/om/controller/user/MenuController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/om/controller/admin/MenuController.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/om/controller/user/RoleController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/om/controller/admin/RoleController.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/om/controller/user/RoleMenuController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/om/controller/admin/RoleMenuController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/screenshots/2.28.png" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/om/controller/admin/ManualController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/om/entity/po/Manual.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/om/mapper/ManualMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/om/service/IManualService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/om/service/impl/ManualServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/om/utils/CodeGenerator.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/ManualMapper.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/pom.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/om/controller/admin/GuideController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/om/controller/admin/GuideController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/om/entity/po/Guide.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/om/entity/po/Guide.java" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -59,7 +65,9 @@
   <component name="PropertiesComponent"><![CDATA[{
   "keyToString": {
     "ASKED_ADD_EXTERNAL_FILES": "true",
+    "Application.CodeGenerator.executor": "Run",
     "Maven.OperationSystem [clean].executor": "Run",
+    "Maven.OperationSystem [package].executor": "Run",
     "Maven.OperationSystem [validate].executor": "Run",
     "RequestMappingsPanelOrder0": "0",
     "RequestMappingsPanelOrder1": "1",
@@ -72,7 +80,7 @@
     "WebServerToolWindowFactoryState": "false",
     "git-widget-placeholder": "permission-wxy",
     "kotlin-language-version-configured": "true",
-    "last_opened_file_path": "/Users/wangwulin/IdeaProjects/OperationSystem/src/main/java/com/om/controller/user",
+    "last_opened_file_path": "/Users/wangwulin/IdeaProjects/OperationSystem/src/main/resources/mapper",
     "node.js.detected.package.eslint": "true",
     "node.js.detected.package.tslint": "true",
     "node.js.selected.package.eslint": "(autodetect)",
@@ -92,24 +100,37 @@
   </component>
   <component name="RecentsManager">
     <key name="CopyFile.RECENT_KEYS">
+      <recent name="$PROJECT_DIR$/src/main/resources/mapper" />
       <recent name="$PROJECT_DIR$/src/main/java/com/om/controller/user" />
       <recent name="$PROJECT_DIR$/src/main/java/com/om/service" />
       <recent name="$PROJECT_DIR$/src/main/java/com/om/entity/po" />
       <recent name="$PROJECT_DIR$/src/main/java/com/om/service/impl" />
-      <recent name="$PROJECT_DIR$/src/main/java/com/om/mapper" />
     </key>
     <key name="MoveFile.RECENT_KEYS">
       <recent name="$PROJECT_DIR$/screenshots" />
     </key>
     <key name="CopyClassDialog.RECENTS_KEY">
-      <recent name="com.om.controller.user" />
-      <recent name="com.om.config" />
       <recent name="com.om.utils" />
-      <recent name="com.om.entity.dto" />
-      <recent name="com.om.controller" />
+      <recent name="com.om.controller.admin" />
+      <recent name="com.om.service.impl" />
+      <recent name="com.om.service" />
+      <recent name="com.om.mapper" />
     </key>
   </component>
   <component name="RunManager" selected="Spring Boot.OperationApplication">
+    <configuration name="CodeGenerator" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
+      <option name="MAIN_CLASS_NAME" value="com.om.utils.CodeGenerator" />
+      <module name="OperationSystem" />
+      <extension name="coverage">
+        <pattern>
+          <option name="PATTERN" value="com.om.utils.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
     <configuration name="OperationApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" temporary="true" nameIsGenerated="true">
       <module name="OperationSystem" />
       <option name="SPRING_BOOT_MAIN_CLASS" value="com.om.OperationApplication" />
@@ -135,6 +156,9 @@
     </configuration>
     <recent_temporary>
       <list>
+        <item itemvalue="Spring Boot.OperationApplication" />
+        <item itemvalue="Application.CodeGenerator" />
+        <item itemvalue="npm.dev" />
         <item itemvalue="Spring Boot.OperationApplication" />
         <item itemvalue="npm.dev" />
       </list>
@@ -188,6 +212,7 @@
       <workItem from="1708670527995" duration="3132000" />
       <workItem from="1708916949997" duration="4355000" />
       <workItem from="1708925853376" duration="15000000" />
+      <workItem from="1709043200200" duration="1433000" />
     </task>
     <task id="LOCAL-00001" summary="管理员登录">
       <option name="closed" value="true" />
@@ -289,6 +314,17 @@
   <component name="TypeScriptGeneratedFilesManager">
     <option name="version" value="3" />
   </component>
+  <component name="Vcs.Log.Tabs.Properties">
+    <option name="TAB_STATES">
+      <map>
+        <entry key="MAIN">
+          <value>
+            <State />
+          </value>
+        </entry>
+      </map>
+    </option>
+  </component>
   <component name="VcsManagerConfiguration">
     <option name="ADD_EXTERNAL_FILES_SILENTLY" value="true" />
     <MESSAGE value="管理员登录" />

+ 35 - 0
README.md

@@ -1,3 +1,38 @@
+## 2.28日更新说明
+设计开发使用手册管理模块
+- 属性文件修改,用于指定视频上传的服务器路径
+  ```properties
+  # 手册视频上传路径
+  files:
+      upload:
+          path: /Users/wangwulin/Desktop/
+  #    path: C:/temp/FaceInfo/
+  
+  # 照片存放路径
+  photo:
+      tmp: C:/temp/Photo/
+  ```
+- Guide视频管理相关Class类
+  ![28](./screenshots/2.28.png)
+
+- pom.xml增加代码生成包依赖
+  ```xml
+  <!--mybatis-plus逆向工程-->
+  <dependencies>  
+    <dependency>
+        <groupId>com.baomidou</groupId>
+        <artifactId>mybatis-plus-generator</artifactId>
+        <version>${mybatis-plus.version}</version>
+    </dependency>
+    <!--Velocity引擎模板-->
+    <dependency>
+        <groupId>org.apache.velocity</groupId>
+        <artifactId>velocity</artifactId>
+        <version>1.7</version>
+    </dependency>
+  </dependencies>
+  ```
+- Manual使用手册管理相关类
 
 ## 2.26日更新说明
 

+ 12 - 1
pom.xml

@@ -70,7 +70,12 @@
             <artifactId>mybatis-plus-boot-starter</artifactId>
             <version>${mybatis-plus.version}</version>
         </dependency>
-
+        <!--mybatis-plus逆向工程-->
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-generator</artifactId>
+            <version>${mybatis-plus.version}</version>
+        </dependency>
         <!--mysql-->
         <dependency>
             <groupId>mysql</groupId>
@@ -148,6 +153,12 @@
             <artifactId>java-jwt</artifactId>
             <version>3.18.3</version>
         </dependency>
+        <!--Velocity引擎模板-->
+        <dependency>
+            <groupId>org.apache.velocity</groupId>
+            <artifactId>velocity</artifactId>
+            <version>1.7</version>
+        </dependency>
     </dependencies>
 
     <build>

BIN
screenshots/2.28.png


+ 9 - 9
src/main/java/com/om/controller/admin/GuideController.java

@@ -20,7 +20,7 @@ import org.springframework.web.bind.annotation.*;
  */
 @RestController
 @RequestMapping("/guide")
-@Api(tags = "用户手册控制类")
+@Api(tags = "手册视频控制类")
 public class GuideController {
   IGuideService guideService;
 
@@ -32,27 +32,27 @@ public class GuideController {
     this.guideService = guideService;
   }
 
-  @ApiOperation("新增使用手册")
+  @ApiOperation("新增手册视频")
   @PostMapping("/save")
-  public Result save(@RequestBody Guide guide) {
+  public Result<Object> save(@RequestBody Guide guide) {
     return Result.succ(guideService.save(guide));
   }
 
-  @ApiOperation("编辑使用手册接口")
+  @ApiOperation("编辑手册视频接口")
   @PostMapping("/edit")
-  public Result edit(@RequestBody Guide guide) {
+  public Result<Object> edit(@RequestBody Guide guide) {
     return Result.succ(guideService.saveOrUpdate(guide));
   }
 
-  @ApiOperation("根据ID删除单个使用手册接口")
+  @ApiOperation("根据ID删除单个手册视频接口")
   @DeleteMapping("/delete/{id}")
-  public Result delete(@PathVariable(name = "id") Integer id) {
+  public Result<Object> delete(@PathVariable(name = "id") Integer id) {
     return Result.succ(guideService.removeById(id));
   }
 
-  @ApiOperation("分页查询全部使用手册接口")
+  @ApiOperation("分页查询全部手册视频接口")
   @GetMapping("/page")
-  public Result findPage(@RequestParam Integer pageNum,
+  public Result<Object> findPage(@RequestParam Integer pageNum,
                          @RequestParam Integer pageSize,
                          @RequestParam(defaultValue = "") String title) {
     return Result.succ(guideService.findGuide(new Page<>(pageNum, pageSize), title));

+ 53 - 0
src/main/java/com/om/controller/admin/ManualController.java

@@ -0,0 +1,53 @@
+package com.om.controller.admin;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.om.entity.po.Manual;
+import com.om.service.IManualService;
+import com.om.utils.Result;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author henry-ong
+ * @since 2024-02-28
+ */
+@RestController
+@RequestMapping("/manual")
+public class ManualController {
+  private final IManualService manualService;
+  @Autowired
+  public ManualController(IManualService manualService) {
+    this.manualService = manualService;
+  }
+
+  @ApiOperation("新增使用手册接口")
+  @PostMapping("/save")
+  public Result<Object> save(@RequestBody Manual manual) {
+    return Result.succ(manualService.save(manual));
+  }
+
+  @ApiOperation("编辑使用手册接口")
+  @PostMapping("/edit")
+  public Result<Object> edit(@RequestBody Manual manual) {
+    return Result.succ(manualService.saveOrUpdate(manual));
+  }
+  @ApiOperation("根据ID删除单个使用手册接口")
+  @DeleteMapping("/delete/{id}")
+  public Result<Object> delete(@PathVariable(name = "id") Integer id) {
+    return Result.succ(manualService.removeById(id));
+  }
+
+  @ApiOperation("分页查询全部使用手册接口")
+  @GetMapping("/page")
+  public Result<Object> findPage(@RequestParam Integer pageNum,
+                         @RequestParam Integer pageSize,
+                         @RequestParam(defaultValue = "") String code,
+                         @RequestParam(defaultValue = "") String title) {
+    return Result.succ(manualService.findManual(new Page<>(pageNum, pageSize), code, title));
+  }
+}

+ 1 - 1
src/main/java/com/om/entity/po/Guide.java

@@ -27,7 +27,7 @@ import java.time.LocalDateTime;
 @Data
 @AllArgsConstructor
 @NoArgsConstructor
-@ApiModel(value = "Guide对象", description = "")
+@ApiModel(value = "Guide对象", description = "使用手册视频对象")
 public class Guide implements Serializable {
 
     private static final long serialVersionUID = 1L;

+ 59 - 0
src/main/java/com/om/entity/po/Manual.java

@@ -0,0 +1,59 @@
+package com.om.entity.po;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author henry-ong
+ * @since 2024-02-28
+ */
+@TableName("manual")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel(value = "Manual对象", description = "使用手册对象")
+public class Manual implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+      @ApiModelProperty("手册id")
+      @TableId(value = "id", type = IdType.AUTO)
+      private Integer id;
+
+      @ApiModelProperty("标题")
+      private String title;
+
+      @ApiModelProperty("语言")
+      private String lang;
+
+      @ApiModelProperty("手册文件名")
+      @TableField(value="fileName")
+      private String fileName;
+
+      @ApiModelProperty("网址")
+      private String url;
+
+      @ApiModelProperty("客户端编号")
+      @TableField(value="clientCode")
+      private String clientCode;
+
+      @ApiModelProperty("创建时间")
+      @TableField(value="createTime")
+      private LocalDateTime createTime;
+
+      @ApiModelProperty("最近修改时间")
+      @TableField(value="updateTime")
+      private LocalDateTime updateTime;
+}

+ 18 - 0
src/main/java/com/om/mapper/ManualMapper.java

@@ -0,0 +1,18 @@
+package com.om.mapper;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.om.entity.po.Manual;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author henry-ong
+ * @since 2024-02-28
+ */
+public interface ManualMapper extends BaseMapper<Manual> {
+
+  Page<Manual> findManual(Page<Manual> page, String code, String title);
+}

+ 18 - 0
src/main/java/com/om/service/IManualService.java

@@ -0,0 +1,18 @@
+package com.om.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.om.entity.po.Manual;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author henry-ong
+ * @since 2024-02-28
+ */
+public interface IManualService extends IService<Manual> {
+
+  Page<Manual> findManual(Page<Manual> objectPage, String code, String title);
+}

+ 30 - 0
src/main/java/com/om/service/impl/ManualServiceImpl.java

@@ -0,0 +1,30 @@
+package com.om.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.om.entity.po.Manual;
+import com.om.mapper.ManualMapper;
+import com.om.service.IManualService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author henry-ong
+ * @since 2024-02-28
+ */
+@Service
+public class ManualServiceImpl extends ServiceImpl<ManualMapper, Manual> implements IManualService {
+  private final ManualMapper manualMapper;
+
+  public ManualServiceImpl(ManualMapper manualMapper) {
+    this.manualMapper = manualMapper;
+  }
+
+  @Override
+  public Page<Manual> findManual(Page<Manual> page, String code, String title) {
+    return manualMapper.findManual(page, code, title);
+  }
+}

+ 49 - 0
src/main/java/com/om/utils/CodeGenerator.java

@@ -0,0 +1,49 @@
+package com.om.utils;
+
+import com.baomidou.mybatisplus.generator.FastAutoGenerator;
+import com.baomidou.mybatisplus.generator.config.OutputFile;
+import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
+
+import java.sql.Types;
+import java.util.Collections;
+
+public class CodeGenerator {
+  private final static String url = "jdbc:mysql://47.113.197.148:33306/operation_system?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true";
+
+  public static void main(String[] args) {
+    String projectPath = System.getProperty("user.dir");
+    String outputDir = projectPath + "/src/main/java";
+
+    String mapperPath = projectPath + "/src/main/resources/mapper";
+
+    FastAutoGenerator.create(url, "root", "om1020")
+        .globalConfig(builder -> {
+          builder.author("henry-ong") // 设置作者
+              .enableSwagger() // 开启 swagger 模式
+              .disableOpenDir()
+              .outputDir(outputDir); // 指定输出目录
+        })
+        .dataSourceConfig(builder -> builder.typeConvertHandler((globalConfig, typeRegistry, metaInfo) -> {
+          int typeCode = metaInfo.getJdbcType().TYPE_CODE;
+          if (typeCode == Types.SMALLINT) {
+            // 自定义类型转换
+            return DbColumnType.INTEGER;
+          }
+          return typeRegistry.getColumnType(metaInfo);
+
+        }))
+        .packageConfig(builder -> {
+          builder.parent("com.om") // 设置父包名
+              .moduleName(null) // 设置父包模块名
+              .pathInfo(Collections.singletonMap(OutputFile.xml, mapperPath)); // 设置mapperXml生成路径
+        })
+        .strategyConfig(builder -> {
+          builder.entityBuilder().enableLombok();  //lombok
+          builder.controllerBuilder().enableHyphenStyle().enableRestStyle();
+          builder.addInclude("manual") // 设置需要生成的表名
+              .addTablePrefix("t_", "sys_"); // 设置过滤表前缀
+        })
+//            .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
+        .execute();
+  }
+}

+ 14 - 0
src/main/resources/mapper/ManualMapper.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.om.mapper.ManualMapper">
+    <select id="findManual" resultType="com.om.entity.po.Manual">
+        select e.*
+        from manual as e
+        <if test="code != null and code != ''">
+            where e.title like concat('%',#{title},'%')
+        </if>
+        <if test="title != null and title != ''">
+            where e.title like concat('%',#{title},'%')
+        </if>
+    </select>
+</mapper>