云尚办公系统:搭建环境1 您所在的位置:网站首页 阿里云办公系统 云尚办公系统:搭建环境1

云尚办公系统:搭建环境1

2024-07-15 06:16| 来源: 网络整理| 查看: 265

云尚办公系统:搭建环境

一、项目介绍

1、介绍

云尚办公系统是一套自动办公系统,系统主要包含:管理端和员工端

管理端包含:权限管理、审批管理、公众号菜单管理

员工端采用微信公众号操作,包含:办公审批、微信授权登录、消息推送等功能

项目服务器端架构:SpringBoot + MyBatisPlus + SpringSecurity + Redis + Activiti+ MySQL

前端架构:vue-admin-template + Node.js + Npm + Vue + ElementUI + Axios

2、核心技术

基础框架:SpringBoot 数据缓存:Redis 数据库:MySQL 权限控制:SpringSecurity 工作流引擎:Activiti 前端技术:vue-admin-template + Node.js + Npm + Vue + ElementUI + Axios 微信公众号:公众号菜单 + 微信授权登录 + 消息推送

3、项目模块

最终服务器端架构模块

guigu-oa-parent:根目录,管理子模块:

common:公共类父模块 common-util:核心工具类 service-util:service模块工具类 spring-security:spring-security业务模块 model:实体类模块 service-oa:系统服务模块

4、数据库

数据库从资料文件中获取,导入数据库,Activiti表后续自动导入,数据库表如下:

6、其他资源

如:实体类、前端项目模板等都在资料文件夹中,实体类直接复制到model模块,后续不做说明。

二、搭建环境

目前先搭建“云尚办公系统“项目模块。

1、搭建项目结构

1.1、搭建父工程guigu-oa-parent

管理子模块及依赖

GroupId:com.atguigu

ArtifactId:guigu-oa-parent

新建项目

直接下一步到完成

删除src目录

1.2、搭建工具类父模块common

工具类父模块

GroupId:com.atguigu

ArtifactId:common

第一步:右键点击“guigu-oa-parent”新建"module"

第二步:

同上,忽略

1.3、搭建工具类模块common-util

核心工具类

GroupId:com.atguigu

ArtifactId:common-util

第一步:右键点击“common”新建"module"

第二步:

同上,忽略

1.4、搭建工具类模块service-util

service模块工具类

搭建方式如:common-util

1.5、搭建实体类模块model

实体类

搭建方式如:common

引入“资料/实体类”相关代码

1.6、搭建项目模块service-oa

service服务模块

搭建方式如:common

项目结构如下:

2、配置依赖关系

2.1、guigu-oa-parent父模块管理依赖版本

修改guigu-oa-parent模块pom.xml文件

4.0.0 org.springframework.boot spring-boot-starter-parent 2.3.6.RELEASE com.atguigu guigu-oa-parent pom 1.0-SNAPSHOT common model service-oa 1.8 3.4.1 8.0.30 3.0.3 0.9.1 2.0.21 com.baomidou mybatis-plus-boot-starter ${mybatis-plus.version} mysql mysql-connector-java ${mysql.version} com.github.xiaoymin knife4j-spring-boot-starter ${knife4j.version} io.jsonwebtoken jjwt ${jwt.version} com.alibaba fastjson ${fastjson.version} org.apache.maven.plugins maven-compiler-plugin 3.1 1.8 1.8

2.2、common模块

common公共父模块

guigu-oa-parent com.atguigu 1.0-SNAPSHOT 4.0.0 common pom service-util common-util

2.3、common-util模块

common com.atguigu 1.0-SNAPSHOT 4.0.0 common-util jar org.springframework.boot spring-boot-starter-web provided io.jsonwebtoken jjwt org.projectlombok lombok com.alibaba fastjson

2.4、service-util模块

common com.atguigu 1.0-SNAPSHOT 4.0.0 service-util com.atguigu common-util 1.0-SNAPSHOT org.springframework.boot spring-boot-starter-web com.baomidou mybatis-plus-boot-starter mysql mysql-connector-java

2.5、model模块

guigu-oa-parent com.atguigu 1.0-SNAPSHOT 4.0.0 model org.projectlombok lombok com.github.xiaoymin knife4j-spring-boot-starter provided com.baomidou mybatis-plus-boot-starter provided

从资源文件夹中导入实体类

idea中安装lombok插件,因为目前采用idea2022版本,Lombok在2020.2开始不再更新,导致高版本IDEA(2021及之后版本)无法在Plugins中搜索到Lombok插件,需要手动安装,或者也可以不安装插件,在实体类里面手动生成get、set和构造方法

第一步 到官网下载Lombok插件,https://plugins.jetbrains.com/plugin/6317-lombok/versions

选择最新版本

第二步 修改参数

修改jar包里面文件内容,可以使用压缩工具打开jar包

修改当前idea版本

第三步 在idea的File -> Settings -> Plugins下选中修改参数后的安装包进行安装,安装后重启idea

2.6、service-oa模块

guigu-oa-parent com.atguigu 1.0-SNAPSHOT 4.0.0 service-oa jar com.atguigu model 1.0-SNAPSHOT com.atguigu service-util 1.0-SNAPSHOT org.springframework.boot spring-boot-starter-test test ${project.artifactId} org.springframework.boot spring-boot-maven-plugin

三、MyBatis-Plus

官网:https://baomidou.com/

1、简介

MyBatis-Plus(简称 MP)是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

2、主要特点

无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题 内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询 分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库

3、依赖

com.baomidou mybatis-plus-boot-starter 3.4.1

四、MyBatis-Plus入门

前面介绍了MyBatis-Plus,当前就以角色管理为例讲解MyBatis-Plus的使用

1、配置文件

配置 MySQL 数据库的相关配置及Mybatis-Plus日志

application.yml

spring: application: name: service-oa profiles: active: dev

application-dev.yml

server: port: 8800 mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 查看日志 spring: datasource: type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/guigu-oa?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8 username: root password: root

2、启动类

在 Spring Boot 启动类中添加 @MapperScan 注解,扫描 Mapper 文件夹:

package com.atguigu; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @ComponentScan("com.atguigu") @MapperScan("com.atguigu.*.mapper") public class ServiceAuthApplication { public static void main(String[] args) { SpringApplication.run(ServiceAuthApplication.class, args); } }

3、实体类

已引入,实体类说明:

实体类注解详细文档

@TableName:表名注解,标识实体类对应的表

@TableId:主键注解,type = IdType.AUTO(数据库 ID 自增)

@TableField:字段注解(非主键)

@TableLogic:逻辑删除

package com.atguigu.model.system; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.atguigu.model.base.BaseEntity; import lombok.Data; @Data @TableName("sys_role") public class SysRole extends BaseEntity { private static final long serialVersionUID = 1L; //角色名称 @TableField("role_name") private String roleName; //角色编码 @TableField("role_code") private String roleCode; //描述 @TableField("description") private String description; }

4、添加Mapper类

package com.atguigu.auth.mapper; import com.atguigu.model.auth.SysRole; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; @Mapper public interface SysRoleMapper extends BaseMapper { }

com.baomidou.mybatisplus.core.mapper.BaseMapper这是Mybatis-Plus提供的默认Mapper接口。

package com.baomidou.mybatisplus.core.mapper; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import java.io.Serializable; import java.util.Collection; import java.util.List; import java.util.Map; import org.apache.ibatis.annotations.Param; public interface BaseMapper extends Mapper { int insert(T entity); int deleteById(Serializable id); int deleteByMap(@Param("cm") Map columnMap); int delete(@Param("ew") Wrapper queryWrapper); int deleteBatchIds(@Param("coll") Collection


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有