Skip to content

hope-for/hope-fast

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

简介:快速开发

Author QQ群 Telegram


快速上手:

  • 第一步:

创建一个数据库,名字自定义,找到flyway模块的FlywayApplication.java文件,修改数据库连接参数,运行成功后关闭,刷新数据库

  • 第二步:

找到admin模块application.yaml文件,修改各项配置参数,开始开发

包含功能、版本信息、在线文档:

  • EasyPoi 快速有效的POI工具类 版本:4.0.0 文档:http://easypoi.mydoc.io/#text_226078

  • Magic-Api 接口快速开发框架 版本:1.4.5 文档:https://www.ssssssss.org/magic-api

  • SpringBoot 框架版本:2.1.8.RELEASE

  • 没有权限依赖,没有过度封装,内置Hplus前端Ui框架,却丝毫不影响前后端分离

  • 主流rest/restful风格接口,全局异常,验证码,Excel导出,FTP文件上传,文件上传本地存储等基础功能

  • 数据库变更版本控制工具Flyway 版本:7.0.0

  • 工具类库Hutool 版本:5.6.5

  • Mybatis-Plus 版本:3.4.3

  • 第三方授权登录的工具类库JustAuth

  • 阿里云短信接口

  • 微信相关:根据Code获取微信小程序用户openid,session_key 解密小程序用户手机号

  • 优雅关闭 Spring Boot 应用,内置 Tomcat 配置优化

  • 又拍云附件上传,附件删除 SDK版本:4.2.3

  • SpringBoot默认的连接池 HikariCP(史上最快?)

  • Token校验拦截器

  • 切面自定义注解 @Log 操作日志收集记录,日常开发非常方便 AOP版本:2.5.3

  • 邮件发送,发送文本邮件,Html邮件,附件邮件,邮件发送Excel附件

  • 数据库主键设置GUID Mybatis调用存储过程

    存储过程 数据库配置:
      1、mysql数据库创建表(该表为配置id生成规则):
    
          CREATE TABLE `pb_code_ident` (
            `PCI_Table` varchar(64) NOT NULL,
            `PCI_Type` varchar(64) DEFAULT NULL,
            `PCI_Length` int DEFAULT NULL,
            `PCI_Head` varchar(8) DEFAULT NULL,
            `PCI_Fill` varchar(64) DEFAULT NULL,
            `PCI_Date` datetime DEFAULT NULL,
            `PCI_Default` decimal(18,0) DEFAULT NULL,
            `PCI_Identity` decimal(16,0) DEFAULT NULL,
            PRIMARY KEY (`PCI_Table`)
          ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
    
      2、创建存储过程
    
              DROP PROCEDURE IF EXISTS `GetID2`;
              DELIMITER ;;
              CREATE PROCEDURE `GetID2`(IN TableName VARCHAR(100),OUT TableID VARCHAR(36))
              BEGIN
              DECLARE s_Ident VARCHAR(20);
              DECLARE s_Fill VARCHAR(1);
              DECLARE s_Type VARCHAR(3);
              DECLARE s_Date VARCHAR(16);
              DECLARE s_Head VARCHAR(10);
              DECLARE s_ID VARCHAR(20);
              DECLARE d_Date datetime;
    
              select PCI_Date into d_Date from PB_Code_Ident Where PCI_Table = TableName;
              if(REPLACE(DATE_FORMAT(d_Date,'%Y/%m/%d'),'-','/')=REPLACE(curdate(),'-','/')) THEN
              SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
              update PB_Code_Ident set PCI_Identity = PCI_Identity + 1 Where PCI_Table = TableName;
              else
              SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
              update PB_Code_Ident set PCI_Identity = PCI_Default,PCI_Date=REPLACE(curdate(),'-','/') Where PCI_Table = TableName;
              end if;
              select PCI_Identity,PCI_Head into s_ID,s_Head from PB_Code_Ident Where PCI_Table = TableName;
              set @TableID = concat(s_Head,REPLACE(curdate(),'-',''),s_ID);
              select @TableID INTO TableID;
              END
              ;;
              DELIMITER ;
              
              -- 出现转义的错误就执行下面这个
            DROP PROCEDURE IF EXISTS `GetID2`;
    
            CREATE PROCEDURE `GetID2`(IN TableName VARCHAR(100),OUT TableID VARCHAR(36))
            BEGIN
            DECLARE s_Ident VARCHAR(20);
            DECLARE s_Fill VARCHAR(1);
            DECLARE s_Type VARCHAR(3);
            DECLARE s_Date VARCHAR(16);
            DECLARE s_Head VARCHAR(10);
            DECLARE s_ID VARCHAR(20);
            DECLARE d_Date datetime;
    
            select PCI_Date into d_Date from PB_Code_Ident Where PCI_Table = TableName;
            if(REPLACE(DATE_FORMAT(d_Date,'%Y/%m/%d'),'-','/')=REPLACE(curdate(),'-','/')) THEN
            SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
            update PB_Code_Ident set PCI_Identity = PCI_Identity + 1 Where PCI_Table = TableName;
            else
            SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
            update PB_Code_Ident set PCI_Identity = PCI_Default,PCI_Date=REPLACE(curdate(),'-','/') Where PCI_Table = TableName;
            end if;
            select PCI_Identity,PCI_Head into s_ID,s_Head from PB_Code_Ident Where PCI_Table = TableName;
            set @TableID = concat(s_Head,REPLACE(curdate(),'-',''),s_ID);
            select @TableID INTO TableID;
            END
    
      3、MyBatis调用
    
          <!-- 此处的大括号与call之间不能换行(但是可以有空格),后面的大括号可以换行,否则会抛异常 -->
          <select id="getID" statementType="CALLABLE" parameterType="com.hope.model.bean.GetID" useCache="false">
              <![CDATA[
              call GetID2(#{name,mode=IN},#{id,jdbcType=VARCHAR,mode=OUT});
              ]]>
          </select>
    
  • 持续更新

项目目录

│  pom.xml 父工程依赖:用来整个项目的依赖版本管理
│
├─admin                                                     -- admin模块 依赖于core模块
│  │  pom.xml 
│  │
│  ├─src
│  │  └─main
│  │      ├─java
│  │      │  └─com
│  │      │      └─hope
│  │      │          │  AdminApplication.java               -- admin服务启动入口
│  │      │          └─controller
│  │      │              ├─base
│  │      │              │      BizController.java          -- 全局异常控制器
│  │      │              │      EasyPoiController.java      -- 文件导出控制器
│  │      │              │      FileUploadController.java   -- 文件上传控制器
│  │      │              │      HopeController.java         -- 页面跳转控制器
│  │      │              │      KaptchaController.java      -- 验证码控制器
│  │      │              │      OauthController.java        -- 授权认证控制器
│  │      │              │      WeChatController.java       -- 微信相关控制器
│  │      │              ├─generator
│  │      │              │      CodeGenerator.java          -- 全局异常控制器
│  │      └─resources
│  │          │  application.properties
│  │          │  application.yaml                           -- 项目配置
│  │          │  banner.txt
│  │          │  logback-spring.xml                         -- 日志配置
│  │          ├─static                                      -- 静态资源文件
├─core                                                      -- 业务代码模块 依赖于framework模块
│  │  pom.xml
│  ├─src
│  │  └─main
│  │      ├─java
│  │      │  └─com
│  │      │      └─hope
│  │      │          ├─filter
│  │      │          │      HopeMvcConfig.java              -- 访问映射配置
│  │      │          │      TokenCheckFilter.java           -- Token校验拦截
│  │      │          ├─handler
│  │      │          │  ├─cache
│  │      │          │  │      RedisHandler.java            -- redis 处理程序
│  │      │          │  ├─email
│  │      │          │  │      EmailHandler.java    
│  │      │          │  │      SendEmailHandler.java        -- 邮件发送处理程序
│  │      │          │  ├─file
│  │      │          │  │      FileHandler.java
│  │      │          │  │      UpOssFileHandler.java        -- Up oss file handler.
│  │      │          │  ├─log
│  │      │          │  │      LogAspectHandler.java        -- 注解@Log操作日志记录处理程序
│  │      │          │  ├─sms
│  │      │          │  │      AliSmsHandler.java           -- 阿里云短信服务
│  │      │          │  ├─validate
│  │      │          │  │      ValidateCodeHandler.java     -- 图片验证码工具实现类
│  │      │          │  └─wechat
│  │      │          │          WeChatHandler.java          -- 微信开发工具实现类
│  │      │          ├─mapper
│  │      │          ├─model
│  │      │          │  ├─bean
│  │      │          │  ├─dto
│  │      │          │  ├─properties
│  │      │          │  └─vo
│  │      │          └─service
│  │      │              ├─base
│  │      │              └─impl
│  │      └─resources
│  │          └─mapper
│  │
├─docs                                                      -- 项目附件                       
├─flyway                                                    -- 数据库版本管理模块
│  └─src
│      └─main
│          ├─java
│          │  └─com
│          │      └─hope
│          │              FlywayApplication.java            -- flyway启动入口
│          └─resources
│              └─db
│                  └─migration
│                          V1.0.1__Add_initial_table.sql     -- 初始数据
│
└─framework                                                  -- 框架模块
    │  pom.xml
    ├─src
    │  └─main
    │      └─java
    │          └─com
    │              └─hope
    │                  ├─annotation                         -- 自定义注解        
    │                  ├─config                             -- 配置文件
    │                  ├─exception                          -- 自定义异常
    │                  ├─support                            -- 系统常量
    │                  └─utils                              -- 工具包