From 89831785d9eb569a981ece84bc2c3ae43dc33aa8 Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Mon, 22 Apr 2024 18:30:04 +0800 Subject: [PATCH] :seedling: init --- .idea/.gitignore | 8 + .idea/GitCommitMessageStorage.xml | 20 ++ .idea/compiler.xml | 27 +++ .idea/deployment.xml | 6 + .idea/encodings.xml | 23 +++ .idea/jarRepositories.xml | 20 ++ .idea/misc.xml | 13 ++ .idea/uiDesigner.xml | 124 +++++++++++++ .idea/vcs.xml | 6 + common/common-util/pom.xml | 38 ++++ .../com/atguigu/common/result/Result.java | 174 ++++++++++++++++++ .../atguigu/common/result/ResultCodeEnum.java | 26 +++ .../com/atguigu/common/result/Result.class | Bin 0 -> 6157 bytes .../common/result/ResultCodeEnum.class | Bin 0 -> 1996 bytes common/pom.xml | 26 +++ common/service-util/pom.xml | 50 +++++ .../src/main/java/com/atguigu/CodeGet.java | 68 +++++++ .../com/atguigu/config/MybatisPlusConfig.java | 32 ++++ .../com/atguigu/constant/MessageConstant.java | 38 ++++ .../java/com/atguigu/context/BaseContext.java | 47 +++++ .../target/classes/com/atguigu/CodeGet.class | Bin 0 -> 4146 bytes .../atguigu/config/MybatisPlusConfig.class | Bin 0 -> 772 bytes .../atguigu/constant/MessageConstant.class | Bin 0 -> 2242 bytes .../com/atguigu/context/BaseContext.class | Bin 0 -> 1484 bytes logs/service-oa/spring.log | 23 +++ model/pom.xml | 37 ++++ .../com/atguigu/model/base/BaseEntity.java | 32 ++++ .../com/atguigu/model/process/Process.java | 56 ++++++ .../atguigu/model/process/ProcessRecord.java | 37 ++++ .../model/process/ProcessTemplate.java | 59 ++++++ .../atguigu/model/process/ProcessType.java | 29 +++ .../com/atguigu/model/system/SysDept.java | 51 +++++ .../com/atguigu/model/system/SysLoginLog.java | 38 ++++ .../com/atguigu/model/system/SysMenu.java | 62 +++++++ .../com/atguigu/model/system/SysOperLog.java | 74 ++++++++ .../com/atguigu/model/system/SysPost.java | 33 ++++ .../com/atguigu/model/system/SysRole.java | 32 ++++ .../com/atguigu/model/system/SysRoleMenu.java | 26 +++ .../com/atguigu/model/system/SysUser.java | 69 +++++++ .../com/atguigu/model/system/SysUserRole.java | 25 +++ .../java/com/atguigu/model/wechat/Menu.java | 34 ++++ .../com/atguigu/vo/process/ApprovalVo.java | 18 ++ .../com/atguigu/vo/process/ProcessFormVo.java | 20 ++ .../atguigu/vo/process/ProcessQueryVo.java | 31 ++++ .../com/atguigu/vo/process/ProcessVo.java | 59 ++++++ .../com/atguigu/vo/system/AssginMenuVo.java | 20 ++ .../com/atguigu/vo/system/AssginRoleVo.java | 20 ++ .../java/com/atguigu/vo/system/LoginVo.java | 34 ++++ .../java/com/atguigu/vo/system/MetaVo.java | 33 ++++ .../java/com/atguigu/vo/system/RouterVo.java | 50 +++++ .../atguigu/vo/system/SysLoginLogQueryVo.java | 16 ++ .../atguigu/vo/system/SysOperLogQueryVo.java | 15 ++ .../com/atguigu/vo/system/SysPostQueryVo.java | 19 ++ .../com/atguigu/vo/system/SysRoleQueryVo.java | 29 +++ .../com/atguigu/vo/system/SysUserQueryVo.java | 30 +++ .../com/atguigu/vo/wechat/BindPhoneVo.java | 15 ++ .../java/com/atguigu/vo/wechat/MenuVo.java | 39 ++++ pom.xml | 82 +++++++++ service-oa/Dockerfile | 21 +++ service-oa/pom.xml | 54 ++++++ .../atguigu/auth/ServiceAuthApplication.java | 13 ++ .../atguigu/auth/config/Knife4jConfig.java | 56 ++++++ .../src/main/resources/application-dev.yml | 21 +++ service-oa/src/main/resources/application.yml | 34 ++++ service-oa/src/main/resources/banner.txt | 16 ++ service-oa/src/main/resources/favicon.ico | Bin 0 -> 17014 bytes service-oa/target/classes/application-dev.yml | 21 +++ service-oa/target/classes/application.yml | 34 ++++ service-oa/target/classes/banner.txt | 16 ++ service-oa/target/classes/favicon.ico | Bin 0 -> 17014 bytes 70 files changed, 2279 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/GitCommitMessageStorage.xml create mode 100644 .idea/compiler.xml create mode 100644 .idea/deployment.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 .idea/vcs.xml create mode 100644 common/common-util/pom.xml create mode 100644 common/common-util/src/main/java/com/atguigu/common/result/Result.java create mode 100644 common/common-util/src/main/java/com/atguigu/common/result/ResultCodeEnum.java create mode 100644 common/common-util/target/classes/com/atguigu/common/result/Result.class create mode 100644 common/common-util/target/classes/com/atguigu/common/result/ResultCodeEnum.class create mode 100644 common/pom.xml create mode 100644 common/service-util/pom.xml create mode 100644 common/service-util/src/main/java/com/atguigu/CodeGet.java create mode 100644 common/service-util/src/main/java/com/atguigu/config/MybatisPlusConfig.java create mode 100644 common/service-util/src/main/java/com/atguigu/constant/MessageConstant.java create mode 100644 common/service-util/src/main/java/com/atguigu/context/BaseContext.java create mode 100644 common/service-util/target/classes/com/atguigu/CodeGet.class create mode 100644 common/service-util/target/classes/com/atguigu/config/MybatisPlusConfig.class create mode 100644 common/service-util/target/classes/com/atguigu/constant/MessageConstant.class create mode 100644 common/service-util/target/classes/com/atguigu/context/BaseContext.class create mode 100644 logs/service-oa/spring.log create mode 100644 model/pom.xml create mode 100644 model/src/main/java/com/atguigu/model/base/BaseEntity.java create mode 100644 model/src/main/java/com/atguigu/model/process/Process.java create mode 100644 model/src/main/java/com/atguigu/model/process/ProcessRecord.java create mode 100644 model/src/main/java/com/atguigu/model/process/ProcessTemplate.java create mode 100644 model/src/main/java/com/atguigu/model/process/ProcessType.java create mode 100644 model/src/main/java/com/atguigu/model/system/SysDept.java create mode 100644 model/src/main/java/com/atguigu/model/system/SysLoginLog.java create mode 100644 model/src/main/java/com/atguigu/model/system/SysMenu.java create mode 100644 model/src/main/java/com/atguigu/model/system/SysOperLog.java create mode 100644 model/src/main/java/com/atguigu/model/system/SysPost.java create mode 100644 model/src/main/java/com/atguigu/model/system/SysRole.java create mode 100644 model/src/main/java/com/atguigu/model/system/SysRoleMenu.java create mode 100644 model/src/main/java/com/atguigu/model/system/SysUser.java create mode 100644 model/src/main/java/com/atguigu/model/system/SysUserRole.java create mode 100644 model/src/main/java/com/atguigu/model/wechat/Menu.java create mode 100644 model/src/main/java/com/atguigu/vo/process/ApprovalVo.java create mode 100644 model/src/main/java/com/atguigu/vo/process/ProcessFormVo.java create mode 100644 model/src/main/java/com/atguigu/vo/process/ProcessQueryVo.java create mode 100644 model/src/main/java/com/atguigu/vo/process/ProcessVo.java create mode 100644 model/src/main/java/com/atguigu/vo/system/AssginMenuVo.java create mode 100644 model/src/main/java/com/atguigu/vo/system/AssginRoleVo.java create mode 100644 model/src/main/java/com/atguigu/vo/system/LoginVo.java create mode 100644 model/src/main/java/com/atguigu/vo/system/MetaVo.java create mode 100644 model/src/main/java/com/atguigu/vo/system/RouterVo.java create mode 100644 model/src/main/java/com/atguigu/vo/system/SysLoginLogQueryVo.java create mode 100644 model/src/main/java/com/atguigu/vo/system/SysOperLogQueryVo.java create mode 100644 model/src/main/java/com/atguigu/vo/system/SysPostQueryVo.java create mode 100644 model/src/main/java/com/atguigu/vo/system/SysRoleQueryVo.java create mode 100644 model/src/main/java/com/atguigu/vo/system/SysUserQueryVo.java create mode 100644 model/src/main/java/com/atguigu/vo/wechat/BindPhoneVo.java create mode 100644 model/src/main/java/com/atguigu/vo/wechat/MenuVo.java create mode 100644 pom.xml create mode 100644 service-oa/Dockerfile create mode 100644 service-oa/pom.xml create mode 100644 service-oa/src/main/java/com/atguigu/auth/ServiceAuthApplication.java create mode 100644 service-oa/src/main/java/com/atguigu/auth/config/Knife4jConfig.java create mode 100644 service-oa/src/main/resources/application-dev.yml create mode 100644 service-oa/src/main/resources/application.yml create mode 100644 service-oa/src/main/resources/banner.txt create mode 100644 service-oa/src/main/resources/favicon.ico create mode 100644 service-oa/target/classes/application-dev.yml create mode 100644 service-oa/target/classes/application.yml create mode 100644 service-oa/target/classes/banner.txt create mode 100644 service-oa/target/classes/favicon.ico diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/GitCommitMessageStorage.xml b/.idea/GitCommitMessageStorage.xml new file mode 100644 index 0000000..3b56900 --- /dev/null +++ b/.idea/GitCommitMessageStorage.xml @@ -0,0 +1,20 @@ + + + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..c456808 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/deployment.xml b/.idea/deployment.xml new file mode 100644 index 0000000..0ebb202 --- /dev/null +++ b/.idea/deployment.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..3b9ee06 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..712ab9d --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..79f13d2 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,13 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/common/common-util/pom.xml b/common/common-util/pom.xml new file mode 100644 index 0000000..998d960 --- /dev/null +++ b/common/common-util/pom.xml @@ -0,0 +1,38 @@ + + 4.0.0 + + com.atguigu + common + 1.0-SNAPSHOT + + + common-util + jar + + common-util + https://maven.apache.org + + + UTF-8 + + + + + org.springframework.boot + spring-boot-starter-web + + + io.jsonwebtoken + jjwt + + + org.projectlombok + lombok + + + com.alibaba + fastjson + + + diff --git a/common/common-util/src/main/java/com/atguigu/common/result/Result.java b/common/common-util/src/main/java/com/atguigu/common/result/Result.java new file mode 100644 index 0000000..6f80029 --- /dev/null +++ b/common/common-util/src/main/java/com/atguigu/common/result/Result.java @@ -0,0 +1,174 @@ +package com.atguigu.common.result; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class Result { + // 状态码 + private Integer code; + // 返回消息 + private String message; + // 返回数据 + private T data; + + /** + * * 自定义返回体 + * + * @param data 返回体 + * @return Result + */ + protected static Result build(T data) { + Result result = new Result<>(); + if (data != null) { + result.setData(data); + } + return result; + } + + /** + * * 自定义返回体,使用ResultCodeEnum构建 + * + * @param body 返回体 + * @param codeEnum 返回状态码 + * @return Result + */ + public static Result build(T body, ResultCodeEnum codeEnum) { + Result result = build(body); + result.setCode(codeEnum.getCode()); + result.setMessage(codeEnum.getMessage()); + return result; + } + + /** + * * 自定义返回体 + * + * @param body 返回体 + * @param code 返回状态码 + * @param message 返回消息 + * @return Result + */ + public static Result build(T body, Integer code, String message) { + Result result = build(body); + result.setCode(code); + result.setMessage(message); + return result; + } + + /** + * * 操作成功 + * + * @return Result + */ + public static Result success() { + return Result.success(null, ResultCodeEnum.SUCCESS); + } + + /** + * * 操作成功 + * + * @param data baseCategory1List + */ + public static Result success(T data) { + return build(data, ResultCodeEnum.SUCCESS); + } + + /** + * * 操作成功-状态码 + * + * @param codeEnum 状态码 + */ + public static Result success(ResultCodeEnum codeEnum) { + return success(null, codeEnum); + } + + /** + * * 操作成功-自定义返回数据和状态码 + * + * @param data 返回体 + * @param codeEnum 状态码 + */ + public static Result success(T data, ResultCodeEnum codeEnum) { + return build(data, codeEnum); + } + + /** + * * 操作失败-自定义返回数据和状态码 + * + * @param data 返回体 + * @param message 错误信息 + */ + public static Result success(T data, String message) { + return build(data, 200, message); + } + + /** + * * 操作失败-自定义返回数据和状态码 + * + * @param data 返回体 + * @param code 状态码 + * @param message 错误信息 + */ + public static Result success(T data, Integer code, String message) { + return build(data, code, message); + } + + /** + * * 操作失败 + */ + public static Result error() { + return Result.build(null); + } + + /** + * * 操作失败-自定义返回数据 + * + * @param data 返回体 + */ + public static Result error(T data) { + return build(data, ResultCodeEnum.FAIL); + } + + /** + * * 操作失败-状态码 + * + * @param codeEnum 状态码 + */ + public static Result error(ResultCodeEnum codeEnum) { + return build(null, codeEnum); + } + + /** + * * 操作失败-自定义返回数据和状态码 + * + * @param data 返回体 + * @param codeEnum 状态码 + */ + public static Result error(T data, ResultCodeEnum codeEnum) { + return build(data, codeEnum); + } + + /** + * * 操作失败-自定义返回数据和状态码 + * + * @param data 返回体 + * @param code 状态码 + * @param message 错误信息 + */ + public static Result error(T data, Integer code, String message) { + return build(data, code, message); + } + + /** + * * 操作失败-自定义返回数据和状态码 + * + * @param data 返回体 + * @param message 错误信息 + */ + public static Result error(T data, String message) { + return build(null, 500, message); + } +} diff --git a/common/common-util/src/main/java/com/atguigu/common/result/ResultCodeEnum.java b/common/common-util/src/main/java/com/atguigu/common/result/ResultCodeEnum.java new file mode 100644 index 0000000..5318a97 --- /dev/null +++ b/common/common-util/src/main/java/com/atguigu/common/result/ResultCodeEnum.java @@ -0,0 +1,26 @@ +package com.atguigu.common.result; + +import lombok.Getter; + +/** + * 统一返回结果状态信息类 + */ +@Getter +public enum ResultCodeEnum { + + SUCCESS(200, "成功"), + FAIL(201, "失败"), + SERVICE_ERROR(2012, "服务异常"), + DATA_ERROR(204, "数据异常"), + + LOGIN_AUTH(208, "未登陆"), + PERMISSION(209, "没有权限"); + + private final Integer code; + private final String message; + + ResultCodeEnum(Integer code, String message) { + this.code = code; + this.message = message; + } +} \ No newline at end of file diff --git a/common/common-util/target/classes/com/atguigu/common/result/Result.class b/common/common-util/target/classes/com/atguigu/common/result/Result.class new file mode 100644 index 0000000000000000000000000000000000000000..c797a584a74059d165b3159bfb5e3dcc550fe267 GIT binary patch literal 6157 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 literal 0 HcmV?d00001 diff --git a/common/common-util/target/classes/com/atguigu/common/result/ResultCodeEnum.class b/common/common-util/target/classes/com/atguigu/common/result/ResultCodeEnum.class new file mode 100644 index 0000000000000000000000000000000000000000..f4de3e5f7ee174819ec54e37bf421dc2ae3421f2 GIT binary patch literal 1996 zcmb7F-)~b@9RJ+yw)eKX8*TRkhGUK~r0awVg1=VhO6j25t+RKVR?vCZUCSlyZPMQI zXpAOCNl19{Vabdk(HBe%6p%&K@TkTIeb(1i`6rCu@3}2>xER*tobNfG^Zohxo^$)l zKi~Zb;5b%%ka5b7BxV#u6rA>BAI|WU;*(c-dQHW!A8E|0nDf&pXdq(3`$sTr{FZ!!ATqwqq8|3b|HFX0>V*=seVRt~(XWF7WZ# zQartwq=YBV?j&RHMWa|Vs}c@}$9H5XbJ-Ghr7hc>tCd#F%7U>{Bt#J&Gw(^53ja6L z@tq_WN|*CSamlDy?7Hb+wv7^n3Cx<#`SR+#QK7A4R;UDT%(5+KO2Xtefm3a{v{-F} znnaE-Q5&4|7J2iJnbg!VH(Iy5DOXl4+bBx#=~lruoLYr43Aac4f7eREbX?y0!{cqy zTUHd6G-g|!?%SgDpx0_FUu;&|8Rm>*ZLatx#vY&KDY`p;yj6iM*pi)EV%-b!+2<${@ah?EoUT}>2?YIU-W<<@m+gPNa! zfp)v5T8f(#e3(G9-4X`EsqL=8^ilc{?W511Z+ei40Z0-hLJ|!^Qt3ic#X?e*WD#Pb zg(R+lz+P@0?Y;0}0#Ab;I_*YD^3Pv~^esB>q4PTJBpjjHE6!BXkK!402>s(E*}@-^ zBOCDCgUtFJTl9|-qPbc)#cw+P`(ZI z2BEIg5D@?jP%^vGg*^yj5FB8HY`MtiM6s=MU5pEsMbMy(=L5hCG!BybAsR2z=)g;q z-y~u*GYe6YT$Lws3(BJf^@@0IL7rwj2`^)68)NlR2JtI{{Q?{i;BF;|-x%B@ zz(E1-RfG7Q!6yVb6!88)@jL7Ehn17-2S9SU><4b?JSmM6*kF94ASy1BrhDs + 4.0.0 + + com.atguigu + guigu-oa-parent + 1.0-SNAPSHOT + + + common + pom + + common + https://maven.apache.org + + service-util + + + + UTF-8 + + + + + + diff --git a/common/service-util/pom.xml b/common/service-util/pom.xml new file mode 100644 index 0000000..afb53b3 --- /dev/null +++ b/common/service-util/pom.xml @@ -0,0 +1,50 @@ + + 4.0.0 + + com.atguigu + common + 1.0-SNAPSHOT + + + service-util + jar + + service-util + https://maven.apache.org + + + UTF-8 + + + + + com.atguigu + common-util + 1.0-SNAPSHOT + + + org.springframework.boot + spring-boot-starter-web + + + com.baomidou + mybatis-plus-boot-starter + + + + mysql + mysql-connector-java + + + com.baomidou + mybatis-plus-generator + 3.4.1 + + + org.apache.velocity + velocity-engine-core + 2.0 + + + diff --git a/common/service-util/src/main/java/com/atguigu/CodeGet.java b/common/service-util/src/main/java/com/atguigu/CodeGet.java new file mode 100644 index 0000000..e71a3c0 --- /dev/null +++ b/common/service-util/src/main/java/com/atguigu/CodeGet.java @@ -0,0 +1,68 @@ +package com.atguigu; + +import com.baomidou.mybatisplus.annotation.DbType; +import com.baomidou.mybatisplus.generator.AutoGenerator; +import com.baomidou.mybatisplus.generator.config.DataSourceConfig; +import com.baomidou.mybatisplus.generator.config.GlobalConfig; +import com.baomidou.mybatisplus.generator.config.PackageConfig; +import com.baomidou.mybatisplus.generator.config.StrategyConfig; +import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; + +public class CodeGet { + + public static void main(String[] args) { + // 1、创建代码生成器 + AutoGenerator mpg = new AutoGenerator(); + + // 2、全局配置 + // 全局配置 + GlobalConfig gc = new GlobalConfig(); + // TODO 需要修改路径名称 + gc.setOutputDir("F:\\File\\Java\\ssyx\\ssyx-parent\\service\\service-order" + "/src/main/java"); + + gc.setServiceName("%sService"); // 去掉Service接口的首字母I + gc.setAuthor("bunny"); + gc.setOpen(false); + mpg.setGlobalConfig(gc); + + // 3、数据源配置 + DataSourceConfig dsc = new DataSourceConfig(); + // TODO 需要修改数据库 + dsc.setUrl("jdbc:mysql://106.15.251.123:3305/shequ-order?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true"); + dsc.setDriverName("com.mysql.cj.jdbc.Driver"); + dsc.setUsername("root"); + dsc.setPassword("02120212"); + dsc.setDbType(DbType.MYSQL); + mpg.setDataSource(dsc); + + // 4、包配置 + PackageConfig pc = new PackageConfig(); + pc.setParent("com.atguigu.ssyx"); + // TODO 需要修改模块名 + pc.setModuleName("order"); + pc.setController("controller"); + pc.setService("service"); + pc.setMapper("mapper"); + mpg.setPackageInfo(pc); + + // 5、策略配置 + StrategyConfig strategy = getStrategyConfig(); + + mpg.setStrategy(strategy); + + // 6、执行 + mpg.execute(); + } + + private static StrategyConfig getStrategyConfig() { + StrategyConfig strategy = new StrategyConfig(); + // TODO 要生成的表 + strategy.setInclude("cart_info", "order_item", "order_info", "order_deliver"); + strategy.setNaming(NamingStrategy.underline_to_camel);// 数据库表映射到实体的命名策略 + strategy.setColumnNaming(NamingStrategy.underline_to_camel);// 数据库表字段映射到实体的命名策略 + strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作 + strategy.setRestControllerStyle(true); // restful api风格控制器 + strategy.setControllerMappingHyphenStyle(true); // url中驼峰转连字符 + return strategy; + } +} diff --git a/common/service-util/src/main/java/com/atguigu/config/MybatisPlusConfig.java b/common/service-util/src/main/java/com/atguigu/config/MybatisPlusConfig.java new file mode 100644 index 0000000..bba2e35 --- /dev/null +++ b/common/service-util/src/main/java/com/atguigu/config/MybatisPlusConfig.java @@ -0,0 +1,32 @@ +package com.atguigu.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 lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +@EnableTransactionManagement +@MapperScan("com.atguigu.*.mapper") +@Configuration +@Slf4j +public class MybatisPlusConfig { + @Bean + public MybatisPlusInterceptor mybatisPlusInterceptor() { + log.info("注入MybatisPlus配置类..."); + + MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); + // 向Mybatis过滤器链中添加分页拦截器 + interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); + // 乐观锁插件 + interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); + // 防止全表删除 + interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor()); + return interceptor; + } +} diff --git a/common/service-util/src/main/java/com/atguigu/constant/MessageConstant.java b/common/service-util/src/main/java/com/atguigu/constant/MessageConstant.java new file mode 100644 index 0000000..67b1720 --- /dev/null +++ b/common/service-util/src/main/java/com/atguigu/constant/MessageConstant.java @@ -0,0 +1,38 @@ +package com.atguigu.constant; + +/** + * 信息提示常量类 + */ +public class MessageConstant { + public static final String PASSWORD_ERROR = "密码错误"; + public static final String OLD_PASSWORD_ERROR = "旧密码不匹配"; + public static final String OLD_PASSWORD_SAME_NEW_PASSWORD = "旧密码与新密码相同"; + public static final String ACCOUNT_NOT_FOUND = "账号不存在"; + public static final String ACCOUNT_LOCKED = "账号被锁定"; + public static final String UNKNOWN_ERROR = "未知错误"; + public static final String USER_NOT_LOGIN = "用户未登录"; + public static final String USER_TOKEN_OUT_OF_DATE = "用户登录过期"; + public static final String LOGIN_FAILED = "登录失败"; + public static final String UPLOAD_FAILED = "文件上传失败"; + public static final String PASSWORD_EDIT_FAILED = "密码修改失败"; + public static final String ALREADY_EXISTS = "已存在"; + public static final String REQUEST_NOT_EMPTY = "请求不为空"; + public static final String UPDATE_ID_IS_NOT_EMPTY = "删除id不能为空"; + public static final String DELETE_ID_IS_NOT_EMPTY = "修改id不能为空"; + public static final String MENU_IS_NOT_EXIST = "菜单不存在"; + public static final String SAVE_DTO_IS_NULL = "添加参数不能为空"; + public static final String UPDATE_DTO_IS_NULL = "修改参数不能为空"; + public static final String FIND_ID_IS_NOT_EMPTY = "查询ID不能为空"; + public static final String MESSAGE_CODE_NOT_PASS = "短信验证码未过期"; + public static final String MESSAGE_CODE_UNAUTHORIZED = "短信验证码未授权,请联系管理员"; + public static final String VERIFICATION_CODE_ERROR = "验证码错误"; + public static final String USER_DOES_NOT_EXIST = "用户不存在"; + public static final String USER_DOES_IS_EXIST = "用户已存在"; + public static final String VERIFICATION_CODE_IS_EMPTY = "请先发送验证码"; + public static final String LOGIN_DTO_IS_EMPTY = "登录参数不能为空"; + public static final String TOKEN_IS_EMPTY = "token为空"; + public static final String DATA_IS_EMPTY = "数据为空"; + public static final String STOCK_LESS = "库存不足"; + public static final String SKU_NUM_CANNOT_BE_LESS = "商品数量不能再少了"; + public static final String CART_IS_EMPTY = "购物车为空"; +} diff --git a/common/service-util/src/main/java/com/atguigu/context/BaseContext.java b/common/service-util/src/main/java/com/atguigu/context/BaseContext.java new file mode 100644 index 0000000..db5b0fc --- /dev/null +++ b/common/service-util/src/main/java/com/atguigu/context/BaseContext.java @@ -0,0 +1,47 @@ +package com.atguigu.context; + + +public class BaseContext { + private static final ThreadLocal userId = new ThreadLocal<>(); + private static final ThreadLocal wareId = new ThreadLocal<>(); + private static final ThreadLocal adminId = new ThreadLocal<>(); + + // 用户id相关 + public static Long getUserId() { + return userId.get(); + } + + public static void setUserId(Long _userId) { + userId.set(_userId); + } + + public static void removeUserId() { + userId.remove(); + } + + // wareId相关 + public static Long getWareId() { + return wareId.get(); + } + + public static void setWareId(Long _wareId) { + wareId.set(_wareId); + } + + public static void removeWareId() { + wareId.remove(); + } + + // adminId 相关 + public static Long getAdminId() { + return adminId.get(); + } + + public static void setAdminId(Long _adminId) { + adminId.set(_adminId); + } + + public static void removeAdminId() { + adminId.remove(); + } +} diff --git a/common/service-util/target/classes/com/atguigu/CodeGet.class b/common/service-util/target/classes/com/atguigu/CodeGet.class new file mode 100644 index 0000000000000000000000000000000000000000..d20e87523a080127ebe53f02efc55e1ce736f7c9 GIT binary patch literal 4146 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 literal 0 HcmV?d00001 diff --git a/common/service-util/target/classes/com/atguigu/context/BaseContext.class b/common/service-util/target/classes/com/atguigu/context/BaseContext.class new file mode 100644 index 0000000000000000000000000000000000000000..bfcf1feb91e61d9beaf8d02883e9e875c7229f9c GIT binary patch literal 1484 zcmaiyTW`}q5QWbsY3#Ue2))n(Ep2*%q|lm6DVGKiR6;@u7pbL)r^-!MsjDQG9H;QJ zxJa!865^R3g*fZPvC~@O!RwvbnLXdk?4Q3segW9P69XpJau~(BfgCIix7GiSTJ9?M zJ+*9TxUW2G8a6dN5Xg2r(tA}Gn64h#$F|k9+YM{?(35t(>elS$mOyUDX|!#>>q&uf za#SVeuDb2U)>GzXKiQsCS8H~?<+Rl{989$3Tf~ojT{*{={ z_|+4PM0y5Kz!EeT5NYbThI#rI_>Bk}O1?N?U+T+ifqYio*3<6YHo+<;nXs6|t0nW! zFn%eCS4-lZCGXr2?{b`XIpAGM;-&mK-Uad&see6*S5M|$Vf>9GUOkDoOy1QY-cp>m z6!4alcqxC5ca6O3(0OC{n4Sew1m=Gt_wf|Qcccb8ZLrg$LFM^=Ia(OOs5Fl6ChZh% F{R6@%015yA literal 0 HcmV?d00001 diff --git a/logs/service-oa/spring.log b/logs/service-oa/spring.log new file mode 100644 index 0000000..d4e7ec6 --- /dev/null +++ b/logs/service-oa/spring.log @@ -0,0 +1,23 @@ +18:26:31:597 INFO 21276 --- [main] com.atguigu.auth.ServiceAuthApplication : Starting ServiceAuthApplication on bunny with PID 21276 (G:\java项目\guigu-oa-parent\service-oa\target\classes started by 13199 in G:\java项目\guigu-oa-parent) +18:26:31:598 INFO 21276 --- [main] com.atguigu.auth.ServiceAuthApplication : The following profiles are active: dev +18:26:32:027 WARN 21276 --- [main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.atguigu.*.mapper]' package. Please check your configuration. +18:26:32:195 INFO 21276 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8800 (http) +18:26:32:200 INFO 21276 --- [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +18:26:32:200 INFO 21276 --- [main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.39] +18:26:32:239 INFO 21276 --- [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +18:26:32:239 INFO 21276 --- [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 622 ms +18:26:32:437 INFO 21276 --- [main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor' +18:26:32:836 INFO 21276 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8800 (http) with context path '' +18:26:32:892 INFO 21276 --- [main] com.atguigu.auth.ServiceAuthApplication : Started ServiceAuthApplication in 1.512 seconds (JVM running for 1.974) +18:27:41:337 INFO 21276 --- [SpringContextShutdownHook] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor' +18:27:45:678 INFO 20440 --- [main] com.atguigu.auth.ServiceAuthApplication : Starting ServiceAuthApplication on bunny with PID 20440 (G:\java项目\guigu-oa-parent\service-oa\target\classes started by 13199 in G:\java项目\guigu-oa-parent) +18:27:45:680 INFO 20440 --- [main] com.atguigu.auth.ServiceAuthApplication : The following profiles are active: dev +18:27:46:090 WARN 20440 --- [main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.atguigu.*.mapper]' package. Please check your configuration. +18:27:46:245 INFO 20440 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8800 (http) +18:27:46:249 INFO 20440 --- [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +18:27:46:249 INFO 20440 --- [main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.39] +18:27:46:284 INFO 20440 --- [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +18:27:46:284 INFO 20440 --- [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 581 ms +18:27:46:478 INFO 20440 --- [main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor' +18:27:46:859 INFO 20440 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8800 (http) with context path '' +18:27:46:901 INFO 20440 --- [main] com.atguigu.auth.ServiceAuthApplication : Started ServiceAuthApplication in 1.425 seconds (JVM running for 1.84) diff --git a/model/pom.xml b/model/pom.xml new file mode 100644 index 0000000..1b7d76b --- /dev/null +++ b/model/pom.xml @@ -0,0 +1,37 @@ + + 4.0.0 + + com.atguigu + guigu-oa-parent + 1.0-SNAPSHOT + + + model + jar + + model + https://maven.apache.org + + + UTF-8 + + + + + + org.projectlombok + lombok + + + com.github.xiaoymin + knife4j-spring-boot-starter + provided + + + com.baomidou + mybatis-plus-boot-starter + provided + + + diff --git a/model/src/main/java/com/atguigu/model/base/BaseEntity.java b/model/src/main/java/com/atguigu/model/base/BaseEntity.java new file mode 100644 index 0000000..82acbf4 --- /dev/null +++ b/model/src/main/java/com/atguigu/model/base/BaseEntity.java @@ -0,0 +1,32 @@ +package com.atguigu.model.base; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +@Data +public class BaseEntity implements Serializable { + + @TableId(type = IdType.AUTO) + private Long id; + + @TableField("create_time") + private Date createTime; + + @TableField("update_time") + private Date updateTime; + + @TableLogic + @TableField("is_deleted") + private Integer isDeleted; + + @TableField(exist = false) + private Map param = new HashMap<>(); +} diff --git a/model/src/main/java/com/atguigu/model/process/Process.java b/model/src/main/java/com/atguigu/model/process/Process.java new file mode 100644 index 0000000..9e056cf --- /dev/null +++ b/model/src/main/java/com/atguigu/model/process/Process.java @@ -0,0 +1,56 @@ +package com.atguigu.model.process; + +import com.atguigu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(description = "Process") +@TableName("oa_process") +public class Process extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "审批code") + @TableField("process_code") + private String processCode; + + @ApiModelProperty(value = "用户id") + @TableField("user_id") + private Long userId; + + @ApiModelProperty(value = "审批模板id") + @TableField("process_template_id") + private Long processTemplateId; + + @ApiModelProperty(value = "审批类型id") + @TableField("process_type_id") + private Long processTypeId; + + @ApiModelProperty(value = "标题") + @TableField("title") + private String title; + + @ApiModelProperty(value = "描述") + @TableField("description") + private String description; + + @ApiModelProperty(value = "表单值") + @TableField("form_values") + private String formValues; + + @ApiModelProperty(value = "流程实例id") + @TableField("process_instance_id") + private String processInstanceId; + + @ApiModelProperty(value = "当前审批人") + @TableField("current_auditor") + private String currentAuditor; + + @ApiModelProperty(value = "状态(0:默认 1:审批中 2:审批通过 -1:驳回)") + @TableField("status") + private Integer status; +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/model/process/ProcessRecord.java b/model/src/main/java/com/atguigu/model/process/ProcessRecord.java new file mode 100644 index 0000000..f30e27c --- /dev/null +++ b/model/src/main/java/com/atguigu/model/process/ProcessRecord.java @@ -0,0 +1,37 @@ +package com.atguigu.model.process; + +import com.atguigu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(description = "ProcessRecord") +@TableName("oa_process_record") +public class ProcessRecord extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "审批流程id") + @TableField("process_id") + private Long processId; + + @ApiModelProperty(value = "审批描述") + @TableField("description") + private String description; + + @ApiModelProperty(value = "状态") + @TableField("status") + private Integer status; + + @ApiModelProperty(value = "操作用户id") + @TableField("operate_user_id") + private Long operateUserId; + + @ApiModelProperty(value = "操作用户") + @TableField("operate_user") + private String operateUser; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/model/process/ProcessTemplate.java b/model/src/main/java/com/atguigu/model/process/ProcessTemplate.java new file mode 100644 index 0000000..81f75f2 --- /dev/null +++ b/model/src/main/java/com/atguigu/model/process/ProcessTemplate.java @@ -0,0 +1,59 @@ +package com.atguigu.model.process; + +import com.atguigu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(description = "ProcessTemplate") +@TableName("oa_process_template") +public class ProcessTemplate extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "模板名称") + @TableField("name") + private String name; + + @ApiModelProperty(value = "图标路径") + @TableField("icon_url") + private String iconUrl; + + @ApiModelProperty(value = "processTypeId") + @TableField("process_type_id") + private Long processTypeId; + + @ApiModelProperty(value = "表单属性") + @TableField("form_props") + private String formProps; + + @ApiModelProperty(value = "表单选项") + @TableField("form_options") + private String formOptions; + + @ApiModelProperty(value = "描述") + @TableField("description") + private String description; + + @ApiModelProperty(value = "流程定义key") + @TableField("process_definition_key") + private String processDefinitionKey; + + @ApiModelProperty(value = "流程定义上传路process_model_id") + @TableField("process_definition_path") + private String processDefinitionPath; + + @ApiModelProperty(value = "流程定义模型id") + @TableField("process_model_id") + private String processModelId; + + @ApiModelProperty(value = "状态") + @TableField("status") + private Integer status; + + @TableField(exist = false) + private String processTypeName; +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/model/process/ProcessType.java b/model/src/main/java/com/atguigu/model/process/ProcessType.java new file mode 100644 index 0000000..c76ea57 --- /dev/null +++ b/model/src/main/java/com/atguigu/model/process/ProcessType.java @@ -0,0 +1,29 @@ +package com.atguigu.model.process; + +import com.atguigu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +@ApiModel(description = "ProcessType") +@TableName("oa_process_type") +public class ProcessType extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "类型名称") + @TableField("name") + private String name; + + @ApiModelProperty(value = "描述") + @TableField("description") + private String description; + + @TableField(exist = false) + private List processTemplateList; +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/model/system/SysDept.java b/model/src/main/java/com/atguigu/model/system/SysDept.java new file mode 100644 index 0000000..777c79f --- /dev/null +++ b/model/src/main/java/com/atguigu/model/system/SysDept.java @@ -0,0 +1,51 @@ +package com.atguigu.model.system; + +import com.atguigu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +@ApiModel(description = "部门") +@TableName("sys_dept") +public class SysDept extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "部门名称") + @TableField("name") + private String name; + + @ApiModelProperty(value = "上级部门id") + @TableField("parent_id") + private Long parentId; + + @ApiModelProperty(value = "树结构") + @TableField("tree_path") + private String treePath; + + @ApiModelProperty(value = "排序") + @TableField("sort_value") + private Integer sortValue; + + @ApiModelProperty(value = "负责人") + @TableField("leader") + private String leader; + + @ApiModelProperty(value = "电话") + @TableField("phone") + private String phone; + + @ApiModelProperty(value = "状态(1正常 0停用)") + @TableField("status") + private Integer status; + + @ApiModelProperty(value = "下级部门") + @TableField(exist = false) + private List children; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/model/system/SysLoginLog.java b/model/src/main/java/com/atguigu/model/system/SysLoginLog.java new file mode 100644 index 0000000..b267622 --- /dev/null +++ b/model/src/main/java/com/atguigu/model/system/SysLoginLog.java @@ -0,0 +1,38 @@ +package com.atguigu.model.system; + +import com.atguigu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import java.util.Date; + +@Data +@ApiModel(description = "SysLoginLog") +@TableName("sys_login_log") +public class SysLoginLog extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "用户账号") + @TableField("username") + private String username; + + @ApiModelProperty(value = "登录IP地址") + @TableField("ipaddr") + private String ipaddr; + + @ApiModelProperty(value = "登录状态(0成功 1失败)") + @TableField("status") + private Integer status; + + @ApiModelProperty(value = "提示信息") + @TableField("msg") + private String msg; + + @ApiModelProperty(value = "访问时间") + @TableField("access_time") + private Date accessTime; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/model/system/SysMenu.java b/model/src/main/java/com/atguigu/model/system/SysMenu.java new file mode 100644 index 0000000..23b954c --- /dev/null +++ b/model/src/main/java/com/atguigu/model/system/SysMenu.java @@ -0,0 +1,62 @@ +package com.atguigu.model.system; + +import com.atguigu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +@ApiModel(description = "菜单") +@TableName("sys_menu") +public class SysMenu extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "所属上级") + @TableField("parent_id") + private Long parentId; + + @ApiModelProperty(value = "名称") + @TableField("name") + private String name; + + @ApiModelProperty(value = "类型(1:菜单,2:按钮)") + @TableField("type") + private Integer type; + + @ApiModelProperty(value = "路由地址") + @TableField("path") + private String path; + + @ApiModelProperty(value = "组件路径") + @TableField("component") + private String component; + + @ApiModelProperty(value = "权限标识") + @TableField("perms") + private String perms; + + @ApiModelProperty(value = "图标") + @TableField("icon") + private String icon; + + @ApiModelProperty(value = "排序") + @TableField("sort_value") + private Integer sortValue; + + @ApiModelProperty(value = "状态(0:禁止,1:正常)") + @TableField("status") + private Integer status; + + // 下级列表 + @TableField(exist = false) + private List children; + //是否选中 + @TableField(exist = false) + private boolean isSelect; +} + diff --git a/model/src/main/java/com/atguigu/model/system/SysOperLog.java b/model/src/main/java/com/atguigu/model/system/SysOperLog.java new file mode 100644 index 0000000..8249044 --- /dev/null +++ b/model/src/main/java/com/atguigu/model/system/SysOperLog.java @@ -0,0 +1,74 @@ +package com.atguigu.model.system; + +import com.atguigu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import java.util.Date; + +@Data +@ApiModel(description = "SysOperLog") +@TableName("sys_oper_log") +public class SysOperLog extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "模块标题") + @TableField("title") + private String title; + + @ApiModelProperty(value = "业务类型(0其它 1新增 2修改 3删除)") + @TableField("business_type") + private String businessType; + + @ApiModelProperty(value = "方法名称") + @TableField("method") + private String method; + + @ApiModelProperty(value = "请求方式") + @TableField("request_method") + private String requestMethod; + + @ApiModelProperty(value = "操作类别(0其它 1后台用户 2手机端用户)") + @TableField("operator_type") + private String operatorType; + + @ApiModelProperty(value = "操作人员") + @TableField("oper_name") + private String operName; + + @ApiModelProperty(value = "部门名称") + @TableField("dept_name") + private String deptName; + + @ApiModelProperty(value = "请求URL") + @TableField("oper_url") + private String operUrl; + + @ApiModelProperty(value = "主机地址") + @TableField("oper_ip") + private String operIp; + + @ApiModelProperty(value = "请求参数") + @TableField("oper_param") + private String operParam; + + @ApiModelProperty(value = "返回参数") + @TableField("json_result") + private String jsonResult; + + @ApiModelProperty(value = "操作状态(0正常 1异常)") + @TableField("status") + private Integer status; + + @ApiModelProperty(value = "错误消息") + @TableField("error_msg") + private String errorMsg; + + @ApiModelProperty(value = "操作时间") + @TableField("oper_time") + private Date operTime; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/model/system/SysPost.java b/model/src/main/java/com/atguigu/model/system/SysPost.java new file mode 100644 index 0000000..8526b61 --- /dev/null +++ b/model/src/main/java/com/atguigu/model/system/SysPost.java @@ -0,0 +1,33 @@ +package com.atguigu.model.system; + +import com.atguigu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(description = "岗位") +@TableName("sys_post") +public class SysPost extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "岗位编码") + @TableField("post_code") + private String postCode; + + @ApiModelProperty(value = "岗位名称") + @TableField("name") + private String name; + + @ApiModelProperty(value = "显示顺序") + @TableField("description") + private String description; + + @ApiModelProperty(value = "状态(1正常 0停用)") + @TableField("status") + private Integer status; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/model/system/SysRole.java b/model/src/main/java/com/atguigu/model/system/SysRole.java new file mode 100644 index 0000000..c414d07 --- /dev/null +++ b/model/src/main/java/com/atguigu/model/system/SysRole.java @@ -0,0 +1,32 @@ +package com.atguigu.model.system; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.atguigu.model.base.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@Data +@ApiModel(description = "角色") +@TableName("sys_role") +public class SysRole extends BaseEntity { + + private static final long serialVersionUID = 1L; + + //@NotBlank(message = "角色名称不能为空") + @ApiModelProperty(value = "角色名称") + @TableField("role_name") + private String roleName; + + @ApiModelProperty(value = "角色编码") + @TableField("role_code") + private String roleCode; + + @ApiModelProperty(value = "描述") + @TableField("description") + private String description; + +} + diff --git a/model/src/main/java/com/atguigu/model/system/SysRoleMenu.java b/model/src/main/java/com/atguigu/model/system/SysRoleMenu.java new file mode 100644 index 0000000..71558eb --- /dev/null +++ b/model/src/main/java/com/atguigu/model/system/SysRoleMenu.java @@ -0,0 +1,26 @@ +package com.atguigu.model.system; + +import com.atguigu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(description = "角色菜单") +@TableName("sys_role_menu") +public class SysRoleMenu extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "角色id") + @TableField("role_id") + private Long roleId; + + @ApiModelProperty(value = "菜单id") + @TableField("menu_id") + private Long menuId; + +} + diff --git a/model/src/main/java/com/atguigu/model/system/SysUser.java b/model/src/main/java/com/atguigu/model/system/SysUser.java new file mode 100644 index 0000000..8e033c2 --- /dev/null +++ b/model/src/main/java/com/atguigu/model/system/SysUser.java @@ -0,0 +1,69 @@ +package com.atguigu.model.system; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; + +import com.atguigu.model.base.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +@ApiModel(description = "用户") +@TableName("sys_user") +public class SysUser extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "用户名") + @TableField("username") + private String username; + + @ApiModelProperty(value = "密码") + @TableField("password") + private String password; + + @ApiModelProperty(value = "姓名") + @TableField("name") + private String name; + + @ApiModelProperty(value = "手机") + @TableField("phone") + private String phone; + + @ApiModelProperty(value = "头像地址") + @TableField("head_url") + private String headUrl; + + @ApiModelProperty(value = "部门id") + @TableField("dept_id") + private Long deptId; + + @ApiModelProperty(value = "岗位id") + @TableField("post_id") + private Long postId; + + @ApiModelProperty(value = "描述") + @TableField("description") + private String description; + + @ApiModelProperty(value = "openId") + @TableField("open_id") + private String openId; + + @ApiModelProperty(value = "状态(1:正常 0:停用)") + @TableField("status") + private Integer status; + + @TableField(exist = false) + private List roleList; + //岗位 + @TableField(exist = false) + private String postName; + //部门 + @TableField(exist = false) + private String deptName; +} + diff --git a/model/src/main/java/com/atguigu/model/system/SysUserRole.java b/model/src/main/java/com/atguigu/model/system/SysUserRole.java new file mode 100644 index 0000000..86b83d8 --- /dev/null +++ b/model/src/main/java/com/atguigu/model/system/SysUserRole.java @@ -0,0 +1,25 @@ +package com.atguigu.model.system; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.atguigu.model.base.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(description = "用户角色") +@TableName("sys_user_role") +public class SysUserRole extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "角色id") + @TableField("role_id") + private Long roleId; + + @ApiModelProperty(value = "用户id") + @TableField("user_id") + private Long userId; +} + diff --git a/model/src/main/java/com/atguigu/model/wechat/Menu.java b/model/src/main/java/com/atguigu/model/wechat/Menu.java new file mode 100644 index 0000000..418baa9 --- /dev/null +++ b/model/src/main/java/com/atguigu/model/wechat/Menu.java @@ -0,0 +1,34 @@ +package com.atguigu.model.wechat; + +import com.atguigu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(description = "菜单") +@TableName("wechat_menu") +public class Menu extends BaseEntity { + + @ApiModelProperty(value = "id") + @TableField("parent_id") + private Long parentId; + + @ApiModelProperty(value = "名称") + private String name; + + @ApiModelProperty(value = "类型") + private String type; + + @ApiModelProperty(value = "网页 链接,用户点击菜单可打开链接") + private String url; + + @ApiModelProperty(value = "菜单KEY值,用于消息接口推送") + @TableField("meun_key") + private String meunKey; + + @ApiModelProperty(value = "排序") + private Integer sort; +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/vo/process/ApprovalVo.java b/model/src/main/java/com/atguigu/vo/process/ApprovalVo.java new file mode 100644 index 0000000..bd8e7b5 --- /dev/null +++ b/model/src/main/java/com/atguigu/vo/process/ApprovalVo.java @@ -0,0 +1,18 @@ +package com.atguigu.vo.process; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class ApprovalVo { + + private Long processId; + + private String taskId; + + @ApiModelProperty(value = "状态") + private Integer status; + + @ApiModelProperty(value = "审批描述") + private String description; +} diff --git a/model/src/main/java/com/atguigu/vo/process/ProcessFormVo.java b/model/src/main/java/com/atguigu/vo/process/ProcessFormVo.java new file mode 100644 index 0000000..2b99872 --- /dev/null +++ b/model/src/main/java/com/atguigu/vo/process/ProcessFormVo.java @@ -0,0 +1,20 @@ +package com.atguigu.vo.process; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(description = "流程表单") +public class ProcessFormVo { + + @ApiModelProperty(value = "审批模板id") + private Long processTemplateId; + + @ApiModelProperty(value = "审批类型id") + private Long processTypeId; + + @ApiModelProperty(value = "表单值") + private String formValues; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/vo/process/ProcessQueryVo.java b/model/src/main/java/com/atguigu/vo/process/ProcessQueryVo.java new file mode 100644 index 0000000..ea0809c --- /dev/null +++ b/model/src/main/java/com/atguigu/vo/process/ProcessQueryVo.java @@ -0,0 +1,31 @@ +package com.atguigu.vo.process; + +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(description = "Process") +public class ProcessQueryVo { + + @ApiModelProperty(value = "关键字") + private String keyword; + + @ApiModelProperty(value = "用户id") + private Long userId; + + @TableField("process_template_id") + private Long processTemplateId; + + @ApiModelProperty(value = "审批类型id") + private Long processTypeId; + + private String createTimeBegin; + private String createTimeEnd; + + @ApiModelProperty(value = "状态(0:默认 1:审批中 2:审批通过 -1:驳回)") + private Integer status; + + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/vo/process/ProcessVo.java b/model/src/main/java/com/atguigu/vo/process/ProcessVo.java new file mode 100644 index 0000000..f706507 --- /dev/null +++ b/model/src/main/java/com/atguigu/vo/process/ProcessVo.java @@ -0,0 +1,59 @@ +package com.atguigu.vo.process; + +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +@ApiModel(description = "Process") +public class ProcessVo { + + private Long id; + + private Date createTime; + + @ApiModelProperty(value = "审批code") + private String processCode; + + @ApiModelProperty(value = "用户id") + private Long userId; + private String name; + + @TableField("process_template_id") + private Long processTemplateId; + private String processTemplateName; + + @ApiModelProperty(value = "审批类型id") + private Long processTypeId; + private String processTypeName; + + @ApiModelProperty(value = "标题") + private String title; + + @ApiModelProperty(value = "描述") + private String description; + + @ApiModelProperty(value = "表单属性") + private String formProps; + + @ApiModelProperty(value = "表单选项") + private String formOptions; + + @ApiModelProperty(value = "表单属性值") + private String formValues; + + @ApiModelProperty(value = "流程实例id") + private String processInstanceId; + + @ApiModelProperty(value = "当前审批人") + private String currentAuditor; + + @ApiModelProperty(value = "状态(0:默认 1:审批中 2:审批通过 -1:驳回)") + private Integer status; + + private String taskId; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/vo/system/AssginMenuVo.java b/model/src/main/java/com/atguigu/vo/system/AssginMenuVo.java new file mode 100644 index 0000000..af63ae2 --- /dev/null +++ b/model/src/main/java/com/atguigu/vo/system/AssginMenuVo.java @@ -0,0 +1,20 @@ +package com.atguigu.vo.system; + + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@ApiModel(description = "分配菜单") +@Data +public class AssginMenuVo { + + @ApiModelProperty(value = "角色id") + private Long roleId; + + @ApiModelProperty(value = "菜单id列表") + private List menuIdList; + +} diff --git a/model/src/main/java/com/atguigu/vo/system/AssginRoleVo.java b/model/src/main/java/com/atguigu/vo/system/AssginRoleVo.java new file mode 100644 index 0000000..0506d33 --- /dev/null +++ b/model/src/main/java/com/atguigu/vo/system/AssginRoleVo.java @@ -0,0 +1,20 @@ +package com.atguigu.vo.system; + + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@ApiModel(description = "分配菜单") +@Data +public class AssginRoleVo { + + @ApiModelProperty(value = "用户id") + private Long userId; + + @ApiModelProperty(value = "角色id列表") + private List roleIdList; + +} diff --git a/model/src/main/java/com/atguigu/vo/system/LoginVo.java b/model/src/main/java/com/atguigu/vo/system/LoginVo.java new file mode 100644 index 0000000..2018302 --- /dev/null +++ b/model/src/main/java/com/atguigu/vo/system/LoginVo.java @@ -0,0 +1,34 @@ +package com.atguigu.vo.system; + + +/** + * 登录对象 + */ +public class LoginVo { + + /** + * 手机号 + */ + private String username; + + /** + * 密码 + */ + private String password; + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } +} diff --git a/model/src/main/java/com/atguigu/vo/system/MetaVo.java b/model/src/main/java/com/atguigu/vo/system/MetaVo.java new file mode 100644 index 0000000..6acb07a --- /dev/null +++ b/model/src/main/java/com/atguigu/vo/system/MetaVo.java @@ -0,0 +1,33 @@ +package com.atguigu.vo.system; + +import lombok.Data; + +/** + * 路由显示信息 + * + */ +@Data +public class MetaVo +{ + /** + * 设置该路由在侧边栏和面包屑中展示的名字 + */ + private String title; + + /** + * 设置该路由的图标,对应路径src/assets/icons/svg + */ + private String icon; + + public MetaVo() + { + } + + public MetaVo(String title, String icon) + { + this.title = title; + this.icon = icon; + } + +} + diff --git a/model/src/main/java/com/atguigu/vo/system/RouterVo.java b/model/src/main/java/com/atguigu/vo/system/RouterVo.java new file mode 100644 index 0000000..a108acf --- /dev/null +++ b/model/src/main/java/com/atguigu/vo/system/RouterVo.java @@ -0,0 +1,50 @@ +package com.atguigu.vo.system; + +import lombok.Data; + +import java.util.List; + +/** + * 路由配置信息 + * + */ +@Data +public class RouterVo +{ + /** + * 路由名字 + */ + //private String name; + + /** + * 路由地址 + */ + private String path; + + /** + * 是否隐藏路由,当设置 true 的时候该路由不会再侧边栏出现 + */ + private boolean hidden; + + /** + * 组件地址 + */ + private String component; + + /** + * 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面 + */ + private Boolean alwaysShow; + + /** + * 其他元素 + */ + private MetaVo meta; + + /** + * 子路由 + */ + private List children; + + +} diff --git a/model/src/main/java/com/atguigu/vo/system/SysLoginLogQueryVo.java b/model/src/main/java/com/atguigu/vo/system/SysLoginLogQueryVo.java new file mode 100644 index 0000000..4fdd194 --- /dev/null +++ b/model/src/main/java/com/atguigu/vo/system/SysLoginLogQueryVo.java @@ -0,0 +1,16 @@ +package com.atguigu.vo.system; + +import lombok.Data; +import io.swagger.annotations.ApiModelProperty; + +@Data +public class SysLoginLogQueryVo { + + @ApiModelProperty(value = "用户账号") + private String username; + + private String createTimeBegin; + private String createTimeEnd; + +} + diff --git a/model/src/main/java/com/atguigu/vo/system/SysOperLogQueryVo.java b/model/src/main/java/com/atguigu/vo/system/SysOperLogQueryVo.java new file mode 100644 index 0000000..5c28d5a --- /dev/null +++ b/model/src/main/java/com/atguigu/vo/system/SysOperLogQueryVo.java @@ -0,0 +1,15 @@ +package com.atguigu.vo.system; + +import lombok.Data; + +@Data +public class SysOperLogQueryVo { + + private String title; + private String operName; + + private String createTimeBegin; + private String createTimeEnd; + +} + diff --git a/model/src/main/java/com/atguigu/vo/system/SysPostQueryVo.java b/model/src/main/java/com/atguigu/vo/system/SysPostQueryVo.java new file mode 100644 index 0000000..72ec96d --- /dev/null +++ b/model/src/main/java/com/atguigu/vo/system/SysPostQueryVo.java @@ -0,0 +1,19 @@ +package com.atguigu.vo.system; + +import lombok.Data; + +@Data +public class SysPostQueryVo { + + //@ApiModelProperty(value = "岗位编码") + private String postCode; + + //@ApiModelProperty(value = "岗位名称") + private String name; + + //@ApiModelProperty(value = "状态(1正常 0停用)") + private Boolean status; + + +} + diff --git a/model/src/main/java/com/atguigu/vo/system/SysRoleQueryVo.java b/model/src/main/java/com/atguigu/vo/system/SysRoleQueryVo.java new file mode 100644 index 0000000..d381cbf --- /dev/null +++ b/model/src/main/java/com/atguigu/vo/system/SysRoleQueryVo.java @@ -0,0 +1,29 @@ +// +// +package com.atguigu.vo.system; + +import java.io.Serializable; + +/** + *

+ * 角色查询实体 + *

+ * + * @author qy + * @since 2019-11-08 + */ +public class SysRoleQueryVo implements Serializable { + + private static final long serialVersionUID = 1L; + + private String roleName; + + public String getRoleName() { + return roleName; + } + + public void setRoleName(String roleName) { + this.roleName = roleName; + } +} + diff --git a/model/src/main/java/com/atguigu/vo/system/SysUserQueryVo.java b/model/src/main/java/com/atguigu/vo/system/SysUserQueryVo.java new file mode 100644 index 0000000..3dfc591 --- /dev/null +++ b/model/src/main/java/com/atguigu/vo/system/SysUserQueryVo.java @@ -0,0 +1,30 @@ +// +// +package com.atguigu.vo.system; + + +import lombok.Data; + +import java.io.Serializable; + +/** + *

+ * 用户查询实体 + *

+ */ +@Data +public class SysUserQueryVo implements Serializable { + + private static final long serialVersionUID = 1L; + + private String keyword; + + private String createTimeBegin; + private String createTimeEnd; + + private Long roleId; + private Long postId; + private Long deptId; + +} + diff --git a/model/src/main/java/com/atguigu/vo/wechat/BindPhoneVo.java b/model/src/main/java/com/atguigu/vo/wechat/BindPhoneVo.java new file mode 100644 index 0000000..5f8ff9b --- /dev/null +++ b/model/src/main/java/com/atguigu/vo/wechat/BindPhoneVo.java @@ -0,0 +1,15 @@ +package com.atguigu.vo.wechat; + +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class BindPhoneVo { + + @ApiModelProperty(value = "手机") + private String phone; + + @ApiModelProperty(value = "openId") + private String openId; +} diff --git a/model/src/main/java/com/atguigu/vo/wechat/MenuVo.java b/model/src/main/java/com/atguigu/vo/wechat/MenuVo.java new file mode 100644 index 0000000..27ca374 --- /dev/null +++ b/model/src/main/java/com/atguigu/vo/wechat/MenuVo.java @@ -0,0 +1,39 @@ +package com.atguigu.vo.wechat; + +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +@ApiModel(description = "菜单") +public class MenuVo { + + @ApiModelProperty(value = "id") + private Long id; + + @ApiModelProperty(value = "id") + private Long parentId; + + @ApiModelProperty(value = "名称") + private String name; + + @ApiModelProperty(value = "类型") + private String type; + + @ApiModelProperty(value = "url") + private String url; + + @ApiModelProperty(value = "菜单key") + private String meunKey; + + @ApiModelProperty(value = "排序") + private Integer sort; + + @ApiModelProperty(value = "下级") + @TableField(exist = false) + private List children; + +} \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..e29af07 --- /dev/null +++ b/pom.xml @@ -0,0 +1,82 @@ + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.3.6.RELEASE + + + com.atguigu + guigu-oa-parent + 1.0-SNAPSHOT + pom + + guigu-oa-parent + https://maven.apache.org + + common + model + service-oa + + + + UTF-8 + 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 + + + + + diff --git a/service-oa/Dockerfile b/service-oa/Dockerfile new file mode 100644 index 0000000..ef109ac --- /dev/null +++ b/service-oa/Dockerfile @@ -0,0 +1,21 @@ +FROM openjdk:17 +MAINTAINER bunny + +#系统编码 +ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 + +# 设置时区,构建镜像时执行的命令 +RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime +RUN echo "Asia/Shanghai" > /etc/timezone + +# 设定工作目录 +WORKDIR /home/bunny + +# 复制jar包 +COPY target/*.jar /home/bunny/app.jar + +#启动容器时的进程 +ENTRYPOINT ["java","-jar","/home/bunny/app.jar"] + +#暴露 8080 端口 +EXPOSE 8080 \ No newline at end of file diff --git a/service-oa/pom.xml b/service-oa/pom.xml new file mode 100644 index 0000000..2f0d8f9 --- /dev/null +++ b/service-oa/pom.xml @@ -0,0 +1,54 @@ + + 4.0.0 + + com.atguigu + guigu-oa-parent + 1.0-SNAPSHOT + + + service-oa + jar + + service-oa + https://maven.apache.org + + + UTF-8 + + + + + com.atguigu + model + 1.0-SNAPSHOT + + + com.atguigu + service-util + 1.0-SNAPSHOT + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + com.github.xiaoymin + knife4j-spring-boot-starter + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + diff --git a/service-oa/src/main/java/com/atguigu/auth/ServiceAuthApplication.java b/service-oa/src/main/java/com/atguigu/auth/ServiceAuthApplication.java new file mode 100644 index 0000000..ed1763e --- /dev/null +++ b/service-oa/src/main/java/com/atguigu/auth/ServiceAuthApplication.java @@ -0,0 +1,13 @@ +package com.atguigu.auth; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; + +@SpringBootApplication +@ComponentScan("com.atguigu") +public class ServiceAuthApplication { + public static void main(String[] args) { + SpringApplication.run(ServiceAuthApplication.class, args); + } +} \ No newline at end of file diff --git a/service-oa/src/main/java/com/atguigu/auth/config/Knife4jConfig.java b/service-oa/src/main/java/com/atguigu/auth/config/Knife4jConfig.java new file mode 100644 index 0000000..d7aff99 --- /dev/null +++ b/service-oa/src/main/java/com/atguigu/auth/config/Knife4jConfig.java @@ -0,0 +1,56 @@ +package com.atguigu.auth.config; + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.ParameterBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.schema.ModelRef; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Contact; +import springfox.documentation.service.Parameter; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; + +import java.util.ArrayList; +import java.util.List; + +@Configuration +@EnableKnife4j +public class Knife4jConfig { + @Bean + public Docket adminApiConfig() { + List pars = new ArrayList<>(); + ParameterBuilder tokenPar = new ParameterBuilder(); + tokenPar.name("token") + .description("用户token") + .defaultValue("") + .modelRef(new ModelRef("string")) + .parameterType("header") + .required(false) + .build(); + pars.add(tokenPar.build()); + // 添加head参数end + + return new Docket(DocumentationType.SWAGGER_2) + .groupName("adminApi") + .apiInfo(adminApiInfo()) + .select() + // 只显示admin路径下的页面 + .apis(RequestHandlerSelectors.basePackage("com.atguigu")) + .paths(PathSelectors.regex("/admin/.*")) + .build() + .globalOperationParameters(pars); + } + + private ApiInfo adminApiInfo() { + return new ApiInfoBuilder() + .title("后台管理系统-API文档") + .description("本文档描述了后台管理系统微服务接口定义") + .version("1.0") + .contact(new Contact("atguigu", "http://atguigu.com", "atguigu@qq.com")) + .build(); + } +} \ No newline at end of file diff --git a/service-oa/src/main/resources/application-dev.yml b/service-oa/src/main/resources/application-dev.yml new file mode 100644 index 0000000..2ea6574 --- /dev/null +++ b/service-oa/src/main/resources/application-dev.yml @@ -0,0 +1,21 @@ +server: + port: 8800 + +bunny: + datasource: + host: 106.15.251.123 + port: 3305 + sqlData: guigu-oa + username: root + password: "02120212" + +# nacos: +# server-addr: z-bunny.cn:8848 +# discovery: +# namespace: ssyx +# +# minio: +# endpointUrl: "http://129.211.31.58:9000" +# bucket-name: ssyx +# accessKey: bunny +# secretKey: "02120212" \ No newline at end of file diff --git a/service-oa/src/main/resources/application.yml b/service-oa/src/main/resources/application.yml new file mode 100644 index 0000000..856c064 --- /dev/null +++ b/service-oa/src/main/resources/application.yml @@ -0,0 +1,34 @@ +server: + port: 8800 + +spring: + application: + name: service-oa + profiles: + active: dev + + datasource: + type: com.zaxxer.hikari.HikariDataSource + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://${bunny.datasource.host}:${bunny.datasource.port}/${bunny.datasource.sqlData}?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true + username: ${bunny.datasource.username} + password: ${bunny.datasource.password} + + jackson: + date-format: yyyy-MM-dd HH:mm:ss + time-zone: GMT+8 + +mybatis-plus: + mapper-locations: classpath:mapper/*.xml + configuration: + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 查看日志 + +logging: + level: + com.atguigu.auth.mapper: debug + com.atguigu.auth.controller: info + com.atguigu.auth.service: info + pattern: + dateformat: HH:mm:ss:SSS + file: + path: "logs/${spring.application.name}" \ No newline at end of file diff --git a/service-oa/src/main/resources/banner.txt b/service-oa/src/main/resources/banner.txt new file mode 100644 index 0000000..cc77fc2 --- /dev/null +++ b/service-oa/src/main/resources/banner.txt @@ -0,0 +1,16 @@ +-----------------▄██-█▄--------- +-----------------███▄██▄-------- +-----------------███████-------- +-----------------▀███████------- +-------------------██████▄▄----- +-------------------█████████▄--- +-------------------██████▄████-- +-------▄███████████████████████- +-----▄███████████████████████▀-- +---▄██████████████████████------ +---███████████████████████------ +---███████████████████████------ +-▄▄██████████████████████▀------ +-█████████████████▀█████-------- +-▀██████████████▀▀-▀█████▄------ +-------▀▀▀▀▀▀▀▀▀------▀▀▀▀------ \ No newline at end of file diff --git a/service-oa/src/main/resources/favicon.ico b/service-oa/src/main/resources/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..2f64da52ae22180ce73a6cda8d6724f8ad91a185 GIT binary patch literal 17014 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 literal 0 HcmV?d00001 diff --git a/service-oa/target/classes/application-dev.yml b/service-oa/target/classes/application-dev.yml new file mode 100644 index 0000000..2ea6574 --- /dev/null +++ b/service-oa/target/classes/application-dev.yml @@ -0,0 +1,21 @@ +server: + port: 8800 + +bunny: + datasource: + host: 106.15.251.123 + port: 3305 + sqlData: guigu-oa + username: root + password: "02120212" + +# nacos: +# server-addr: z-bunny.cn:8848 +# discovery: +# namespace: ssyx +# +# minio: +# endpointUrl: "http://129.211.31.58:9000" +# bucket-name: ssyx +# accessKey: bunny +# secretKey: "02120212" \ No newline at end of file diff --git a/service-oa/target/classes/application.yml b/service-oa/target/classes/application.yml new file mode 100644 index 0000000..856c064 --- /dev/null +++ b/service-oa/target/classes/application.yml @@ -0,0 +1,34 @@ +server: + port: 8800 + +spring: + application: + name: service-oa + profiles: + active: dev + + datasource: + type: com.zaxxer.hikari.HikariDataSource + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://${bunny.datasource.host}:${bunny.datasource.port}/${bunny.datasource.sqlData}?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true + username: ${bunny.datasource.username} + password: ${bunny.datasource.password} + + jackson: + date-format: yyyy-MM-dd HH:mm:ss + time-zone: GMT+8 + +mybatis-plus: + mapper-locations: classpath:mapper/*.xml + configuration: + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 查看日志 + +logging: + level: + com.atguigu.auth.mapper: debug + com.atguigu.auth.controller: info + com.atguigu.auth.service: info + pattern: + dateformat: HH:mm:ss:SSS + file: + path: "logs/${spring.application.name}" \ No newline at end of file diff --git a/service-oa/target/classes/banner.txt b/service-oa/target/classes/banner.txt new file mode 100644 index 0000000..cc77fc2 --- /dev/null +++ b/service-oa/target/classes/banner.txt @@ -0,0 +1,16 @@ +-----------------▄██-█▄--------- +-----------------███▄██▄-------- +-----------------███████-------- +-----------------▀███████------- +-------------------██████▄▄----- +-------------------█████████▄--- +-------------------██████▄████-- +-------▄███████████████████████- +-----▄███████████████████████▀-- +---▄██████████████████████------ +---███████████████████████------ +---███████████████████████------ +-▄▄██████████████████████▀------ +-█████████████████▀█████-------- +-▀██████████████▀▀-▀█████▄------ +-------▀▀▀▀▀▀▀▀▀------▀▀▀▀------ \ No newline at end of file diff --git a/service-oa/target/classes/favicon.ico b/service-oa/target/classes/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..2f64da52ae22180ce73a6cda8d6724f8ad91a185 GIT binary patch literal 17014 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 literal 0 HcmV?d00001