Compare commits

..

No commits in common. "master" and "v1.0.2" have entirely different histories.

742 changed files with 1101 additions and 10905 deletions

View File

@ -6,9 +6,9 @@ alwaysApply: true
# 盘古用户平台Pangu User Platform项目规范
> **项目路径**`/Users/felix/pgWorkSpace/pangu-user-platform`
> **项目路径**`/Users/felix/hbxhWorkSpace/pangu-user-platform`
>
> **重要声明**:本规范仅适用于 pangu-user-platform 项目,不受外部工程目录(如 `/Users/felix/pgWorkSpace/.cursorrules`)中其他规范的影响。当本规范与外部规范冲突时,以本规范为准。
> **重要声明**:本规范仅适用于 pangu-user-platform 项目,不受外部工程目录(如 `/Users/felix/hbxhWorkSpace/.cursorrules`)中其他规范的影响。当本规范与外部规范冲突时,以本规范为准。
## 作者规范(必须遵守)

View File

@ -10,38 +10,46 @@
```
pangu-user-platform/ # 项目根目录
├── pom.xml # ⭐ Maven父项目配置 (必须在根目录)
├── README.md # 项目说明文档
├── backend/ # 后端代码 (RuoYi-Vue-Plus 5.5.x)
├── backend/ # 后端代码
│ ├── README.md # 后端构建说明 (重要!)
│ ├── pom.xml # 后端父 POM
├── pangu-admin/ # 启动与认证入口 (Spring Boot)
│ ├── pangu-common/ # 公共模块 (core/redis/security/satoken 等)
├── pangu-modules/ # 业务与系统模块
│ ├── pangu-system/ # 系统 (用户/角色/菜单/部门/字典/监控)
│ │ ├── pangu-business/ # 业务 (学校/会员/学生/应用/基础数据/H5/开放API)
│ ├── pangu-generator/ # 代码生成
│ │ └── pangu-job/ # 定时任务
│ ├── pangu-extend/ # 扩展 (Monitor Admin、SnailJob Server 等)
├── script/ # 数据库脚本等
│ └── 各模块 pom.xml
├── frontend/ # 管理后台前端 (Vue3 + Element Plus + Vite)
│ ├── package.json
└── src/
│ ├── pangu-admin/ # 启动模块 (Spring Boot)
│ └── pom.xml # 子模块配置
│ ├── pangu-common/ # 公共模块 (工具类、常量)
│ └── pom.xml
├── pangu-framework/ # 框架模块 (配置、拦截器)
│ │ └── pom.xml
├── pangu-system/ # 业务模块 (学校、会员、学生、应用)
│ │ └── pom.xml
│ ├── sql/ # 数据库脚本
└── scripts/ # 运维脚本
├── frontend/ # 前端代码
│ └── frontend/ # Vue3 + Element Plus + Vite
├── package.json # 前端依赖配置
└── README.md # 前端使用说明
└── docs/ # 项目文档
├── 01-需求文档/
├── 02-系统设计/
├── 03-数据库设计/
├── 04-接口文档/
├── 05-前端UI规范/、05-技术方案/、05-模块技术方案/
├── 05-前端UI规范/
├── 05-技术方案/
├── 05-模块技术方案/
├── 06-测试文档/
└── 07-运维文档/
```
### 📌 重要说明
- **后端构建**:在 `backend` 目录执行 `mvn clean package -DskipTests -pl pangu-admin -am`,生成 `pangu-admin/target/pangu-admin.jar`
- **前端构建**:在 `frontend` 目录执行 `npm run build:prod`,产出 `dist/`
- 详细说明请查看: [backend/README.md](backend/README.md)
**根目录的 `pom.xml` 为什么不在 backend 目录?**
这是 Maven 多模块项目的标准结构:
- 根 `pom.xml` 是**父项目配置**,管理所有子模块
- Maven 构建**必须从根目录**执行: `mvn clean package`
- 不要移动到 backend 目录,否则构建会失败
详细说明请查看: [backend/README.md](backend/README.md)
---
@ -73,7 +81,7 @@ mvn spring-boot:run
```bash
# 进入前端目录
cd frontend
cd frontend/frontend
# 安装依赖
npm install
@ -82,7 +90,7 @@ npm install
npm run dev
```
**访问地址**: 以 vite 配置为准(如 `http://localhost:80`
**访问地址**: `http://localhost:80`
**默认账号**: admin / admin123
@ -94,12 +102,13 @@ npm run dev
| 技术 | 说明 | 版本 |
|------|------|------|
| Spring Boot | 基础框架 | 3.5.x |
| Sa-Token | 认证与权限 | 1.44.x |
| Spring Boot | 基础框架 | 2.7.18 |
| Spring Security | 安全框架 | 5.7.x |
| MyBatis-Plus | ORM框架 | 3.5.x |
| MySQL | 数据库 | 8.0+ |
| Redis / Redisson | 缓存 | 6.0+ |
| RuoYi-Vue-Plus | 基础框架 | 5.5.x |
| MySQL | 数据库 | 8.0.x |
| Redis | 缓存 | 6.0.x |
| JWT | 认证 | 0.9.1 |
| Druid | 连接池 | 1.2.x |
### 前端技术
@ -131,7 +140,7 @@ npm run dev
- 用户认证 (手机号+密码/验证码/微信)
- 权限管理 (超级管理员/分公司用户/学校用户)
- 数据权限 (按区域/学校隔离)
- 系统监控 (在线用户、登录/操作日志、**服务监控**CPU/内存/JVM/磁盘)、缓存监控)
- 系统监控 (在线用户、日志、缓存)
---
@ -228,8 +237,8 @@ java -jar target/pangu-admin.jar
### 前端部署
```bash
cd frontend
npm run build:prod
cd frontend/frontend
npm run build
# 将 dist/ 目录部署到 Nginx
```
@ -265,4 +274,4 @@ npm run build:prod
---
*最后更新: 2026-02-05*
*最后更新: 2026-02-02*

View File

@ -28,7 +28,6 @@
<mapstruct-plus.version>1.5.0</mapstruct-plus.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<fastjson.version>1.2.83</fastjson.version>
<oshi.version>6.4.0</oshi.version>
<skipTests>true</skipTests>
<anyline.version>8.7.3-20251210</anyline.version>
<therapi-javadoc.version>0.15.0</therapi-javadoc.version>
@ -238,11 +237,6 @@
<artifactId>ip2region</artifactId>
<version>${ip2region.version}</version>
</dependency>
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-core</artifactId>
<version>${oshi.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>

View File

@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2019 PanGu
Copyright (c) 2019 RuoYi-Vue-Plus
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in

View File

@ -7,7 +7,7 @@ import org.springframework.boot.context.metrics.buffering.BufferingApplicationSt
/**
* 启动程序
*
* @author pangu
* @author Lion Li
*/
@SpringBootApplication

View File

@ -6,7 +6,7 @@ import org.springframework.boot.web.servlet.support.SpringBootServletInitializer
/**
* web容器中进行部署
*
* @author pangu
* @author Lion Li
*/
public class DromaraServletInitializer extends SpringBootServletInitializer {

View File

@ -58,7 +58,7 @@ import java.util.concurrent.TimeUnit;
/**
* 认证
*
* @author pangu
* @author Lion Li
*/
@Slf4j
@SaIgnore

View File

@ -40,7 +40,7 @@ import java.util.LinkedHashMap;
/**
* 验证码操作处理
*
* @author pangu
* @author Lion Li
*/
@SaIgnore
@Slf4j

View File

@ -10,7 +10,7 @@ import org.springframework.web.bind.annotation.RestController;
/**
* 首页
*
* @author pangu
* @author Lion Li
*/
@SaIgnore
@RequiredArgsConstructor
@ -22,7 +22,7 @@ public class IndexController {
*/
@GetMapping("/")
public String index() {
return "欢迎使用盘古后台管理系统,请通过前端地址访问。";
return StringUtils.format("欢迎使用{}后台管理框架,请通过前端地址访问。", SpringUtils.getApplicationName());
}
}

View File

@ -5,7 +5,7 @@ import lombok.Data;
/**
* 验证码信息
*
* @author pangu
* @author Michelle.Chung
*/
@Data
public class CaptchaVo {

View File

@ -7,7 +7,7 @@ import java.util.List;
/**
* 登录租户对象
*
* @author pangu
* @author Michelle.Chung
*/
@Data
public class LoginTenantVo {

View File

@ -6,7 +6,7 @@ import lombok.Data;
/**
* 登录验证信息
*
* @author pangu
* @author Michelle.Chung
*/
@Data
public class LoginVo {

View File

@ -7,7 +7,7 @@ import lombok.Data;
/**
* 租户列表
*
* @author pangu
* @author Lion Li
*/
@Data
@AutoMapper(target = SysTenantVo.class)

View File

@ -27,7 +27,7 @@ import java.time.Duration;
/**
* 用户行为 侦听器的实现
*
* @author pangu
* @author Lion Li
*/
@RequiredArgsConstructor
@Component

View File

@ -10,7 +10,7 @@ import org.dromara.web.domain.vo.LoginVo;
/**
* 授权策略
*
* @author pangu
* @author Michelle.Chung
*/
public interface IAuthStrategy {

View File

@ -43,7 +43,7 @@ import java.util.function.Supplier;
/**
* 登录校验方法
*
* @author pangu
* @author Lion Li
*/
@RequiredArgsConstructor
@Slf4j

View File

@ -27,7 +27,7 @@ import org.springframework.stereotype.Service;
/**
* 注册校验方法
*
* @author pangu
* @author Lion Li
*/
@RequiredArgsConstructor
@Service

View File

@ -33,7 +33,7 @@ import org.springframework.stereotype.Service;
/**
* 邮件认证策略
*
* @author pangu
* @author Michelle.Chung
*/
@Slf4j
@Service("email" + IAuthStrategy.BASE_NAME)

View File

@ -36,7 +36,7 @@ import org.springframework.stereotype.Service;
/**
* 密码认证策略
*
* @author pangu
* @author Michelle.Chung
*/
@Slf4j
@Service("password" + IAuthStrategy.BASE_NAME)

View File

@ -33,7 +33,7 @@ import org.springframework.stereotype.Service;
/**
* 短信认证策略
*
* @author pangu
* @author Michelle.Chung
*/
@Slf4j
@Service("sms" + IAuthStrategy.BASE_NAME)

View File

@ -36,7 +36,7 @@ import java.util.Optional;
/**
* 第三方授权策略
*
* @author pangu
* @author thiszhc is 三三
*/
@Slf4j
@Service("social" + IAuthStrategy.BASE_NAME)

View File

@ -29,7 +29,7 @@ import org.springframework.stereotype.Service;
/**
* 小程序认证策略
*
* @author pangu
* @author Michelle.Chung
*/
@Slf4j
@Service("xcx" + IAuthStrategy.BASE_NAME)

View File

@ -125,8 +125,6 @@ security:
# H5公开接口
- /h5/auth/**
- /h5/base/**
# 开放API应用签名鉴权不走登录
- /open/api/**
# 多租户配置
tenant:

View File

@ -7,7 +7,7 @@ import org.junit.jupiter.api.Test;
/**
* 断言单元测试案例
*
* @author pangu
* @author Lion Li
*/
@DisplayName("断言单元测试案例")
public class AssertUnitTest {

View File

@ -10,7 +10,7 @@ import java.util.concurrent.TimeUnit;
/**
* 单元测试案例
*
* @author pangu
* @author Lion Li
*/
@SpringBootTest // 此注解只能在 springboot 主包下使用 需包含 main 方法与 yml 配置文件
@DisplayName("单元测试案例")

View File

@ -17,7 +17,7 @@ import java.util.stream.Stream;
/**
* 带参数单元测试案例
*
* @author pangu
* @author Lion Li
*/
@DisplayName("带参数单元测试案例")
public class ParamUnitTest {

View File

@ -6,7 +6,7 @@ import org.springframework.boot.test.context.SpringBootTest;
/**
* 标签单元测试案例
*
* @author pangu
* @author Lion Li
*/
@SpringBootTest
@DisplayName("标签单元测试案例")

View File

@ -7,7 +7,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
/**
* 程序注解配置
*
* @author pangu
* @author Lion Li
*/
@AutoConfiguration
@EnableAspectJAutoProxy

View File

@ -13,7 +13,7 @@ import java.util.concurrent.*;
/**
* 线程池配置
*
* @author pangu
* @author Lion Li
**/
@Slf4j
@AutoConfiguration

View File

@ -13,7 +13,7 @@ import java.util.Properties;
/**
* 校验框架配置类
*
* @author pangu
* @author Lion Li
*/
@AutoConfiguration(before = ValidationAutoConfiguration.class)
public class ValidatorConfig {

View File

@ -3,7 +3,7 @@ package org.dromara.common.core.constant;
/**
* 缓存的key 常量
*
* @author pangu
* @author Lion Li
*/
public interface CacheConstants {

View File

@ -12,7 +12,7 @@ package org.dromara.common.core.constant;
* <p>
* 例子: test#60stest#0#60stest#0#1m#1000test#1h#0#500test#1h#0#500#0
*
* @author pangu
* @author Lion Li
*/
public interface CacheNames {

View File

@ -3,7 +3,7 @@ package org.dromara.common.core.constant;
/**
* 通用常量信息
*
* @author pangu
* @author ruoyi
*/
public interface Constants {

View File

@ -3,7 +3,7 @@ package org.dromara.common.core.constant;
/**
* 全局的key常量 (业务无关的key)
*
* @author pangu
* @author Lion Li
*/
public interface GlobalConstants {

View File

@ -3,7 +3,7 @@ package org.dromara.common.core.constant;
/**
* 返回状态码
*
* @author pangu
* @author Lion Li
*/
public interface HttpStatus {
/**

View File

@ -7,7 +7,7 @@ import cn.hutool.core.lang.RegexPool;
* <p>
* 常用正则表达式集合更多正则见: https://any86.github.io/any-rule/
*
* @author pangu
* @author Feng
*/
public interface RegexConstants extends RegexPool {

View File

@ -3,7 +3,7 @@ package org.dromara.common.core.constant;
/**
* 系统常量信息
*
* @author pangu
* @author Lion Li
*/
public interface SystemConstants {

View File

@ -3,7 +3,7 @@ package org.dromara.common.core.constant;
/**
* 租户常量信息
*
* @author pangu
* @author Lion Li
*/
public interface TenantConstants {

View File

@ -10,7 +10,7 @@ import java.io.Serializable;
/**
* 响应信息主体
*
* @author pangu
* @author Lion Li
*/
@Data
@NoArgsConstructor

View File

@ -12,7 +12,7 @@ import java.util.Objects;
/**
* 办理任务请求对象
*
* @author pangu
* @author may
*/
@Data
public class CompleteTaskDTO implements Serializable {

View File

@ -9,7 +9,7 @@ import java.io.Serializable;
/**
* 部门
*
* @author pangu
* @author AprilWind
*/
@Data
@NoArgsConstructor

View File

@ -9,7 +9,7 @@ import java.io.Serializable;
/**
* 字典数据DTO
*
* @author pangu
* @author AprilWind
*/
@Data
@NoArgsConstructor

View File

@ -9,7 +9,7 @@ import java.io.Serializable;
/**
* 字典类型DTO
*
* @author pangu
* @author AprilWind
*/
@Data
@NoArgsConstructor

View File

@ -9,7 +9,7 @@ import java.io.Serializable;
/**
* 抄送
*
* @author pangu
* @author may
*/
@Data
public class FlowCopyDTO implements Serializable {

View File

@ -8,7 +8,7 @@ import java.io.Serializable;
/**
* 流程实例业务扩展对象
*
* @author pangu
* @author may
* @date 2025-08-05
*/
@Data

View File

@ -9,7 +9,7 @@ import java.io.Serializable;
/**
* OSS对象
*
* @author pangu
* @author Lion Li
*/
@Data
@NoArgsConstructor

View File

@ -9,7 +9,7 @@ import java.io.Serializable;
/**
* 岗位
*
* @author pangu
* @author AprilWind
*/
@Data
@NoArgsConstructor

View File

@ -9,7 +9,7 @@ import java.io.Serializable;
/**
* 角色
*
* @author pangu
* @author Lion Li
*/
@Data

View File

@ -13,7 +13,7 @@ import java.util.Objects;
/**
* 启动流程对象
*
* @author pangu
* @author may
*/
@Data
public class StartProcessDTO implements Serializable {

View File

@ -9,7 +9,7 @@ import java.io.Serializable;
/**
* 启动流程返回对象
*
* @author pangu
* @author Lion Li
*/
@Data
public class StartProcessReturnDTO implements Serializable {

View File

@ -14,7 +14,7 @@ import java.util.stream.Collectors;
/**
* 任务受让人
*
* @author pangu
* @author AprilWind
*/
@Data
@NoArgsConstructor

View File

@ -11,7 +11,7 @@ import java.util.Date;
/**
* 用户
*
* @author pangu
* @author Michelle.Chung
*/
@Data
@NoArgsConstructor

View File

@ -9,7 +9,7 @@ import java.io.Serializable;
/**
* 当前在线会话
*
* @author pangu
* @author ruoyi
*/
@Data

View File

@ -8,7 +8,7 @@ import java.io.Serializable;
/**
* 删除流程监听
*
* @author pangu
* @author AprilWind
*/
@Data
public class ProcessDeleteEvent implements Serializable {

View File

@ -9,7 +9,7 @@ import java.util.Map;
/**
* 总体流程监听
*
* @author pangu
* @author may
*/
@Data
public class ProcessEvent implements Serializable {

View File

@ -9,7 +9,7 @@ import java.util.Map;
/**
* 流程任务监听
*
* @author pangu
* @author may
*/
@Data
public class ProcessTaskEvent implements Serializable {

View File

@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode;
/**
* 邮件登录对象
*
* @author pangu
* @author Lion Li
*/
@Data

View File

@ -9,7 +9,7 @@ import java.io.Serializable;
/**
* 用户登录对象
*
* @author pangu
* @author Lion Li
*/
@Data

View File

@ -13,7 +13,7 @@ import java.util.Set;
/**
* 登录用户身份权限
*
* @author pangu
* @author Lion Li
*/
@Data
@NoArgsConstructor

View File

@ -8,7 +8,7 @@ import org.hibernate.validator.constraints.Length;
/**
* 密码登录对象
*
* @author pangu
* @author Lion Li
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@ -8,7 +8,7 @@ import org.hibernate.validator.constraints.Length;
/**
* 用户注册对象
*
* @author pangu
* @author Lion Li
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@ -7,7 +7,7 @@ import lombok.EqualsAndHashCode;
/**
* 短信登录对象
*
* @author pangu
* @author Lion Li
*/
@Data

View File

@ -7,7 +7,7 @@ import lombok.EqualsAndHashCode;
/**
* 三方登录对象
*
* @author pangu
* @author Lion Li
*/
@Data

View File

@ -9,7 +9,7 @@ import java.io.Serializable;
/**
* 任务受让人
*
* @author pangu
* @author AprilWind
*/
@Data
@NoArgsConstructor

View File

@ -7,7 +7,7 @@ import lombok.EqualsAndHashCode;
/**
* 三方登录对象
*
* @author pangu
* @author Lion Li
*/
@Data

View File

@ -9,7 +9,7 @@ import java.io.Serial;
/**
* 小程序登录用户身份权限
*
* @author pangu
* @author Lion Li
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@ -15,7 +15,7 @@ import java.util.stream.Collectors;
/**
* 业务状态枚举
*
* @author pangu
* @author may
*/
@Getter
@AllArgsConstructor

View File

@ -6,7 +6,7 @@ import lombok.Getter;
/**
* 设备类型
*
* @author pangu
* @author Lion Li
*/
@Getter
@AllArgsConstructor

View File

@ -6,7 +6,7 @@ import lombok.Getter;
/**
* 登录类型
*
* @author pangu
* @author Lion Li
*/
@Getter
@AllArgsConstructor

View File

@ -6,7 +6,7 @@ import lombok.Getter;
/**
* 用户状态
*
* @author pangu
* @author ruoyi
*/
@Getter
@AllArgsConstructor

View File

@ -7,7 +7,7 @@ import org.dromara.common.core.utils.StringUtils;
/**
* 用户类型
*
* @author pangu
* @author Lion Li
*/
@Getter
@AllArgsConstructor

View File

@ -11,7 +11,7 @@ import java.io.Serial;
/**
* 业务异常支持占位符 {}
*
* @author pangu
* @author ruoyi
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@ -10,7 +10,7 @@ import java.io.Serial;
/**
* sse 特制异常
*
* @author pangu
* @author LionLi
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@ -12,7 +12,7 @@ import java.io.Serial;
/**
* 基础异常
*
* @author pangu
* @author ruoyi
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@ -7,7 +7,7 @@ import java.io.Serial;
/**
* 文件信息异常类
*
* @author pangu
* @author ruoyi
*/
public class FileException extends BaseException {

View File

@ -5,7 +5,7 @@ import java.io.Serial;
/**
* 文件名称超长限制异常类
*
* @author pangu
* @author ruoyi
*/
public class FileNameLengthLimitExceededException extends FileException {

View File

@ -5,7 +5,7 @@ import java.io.Serial;
/**
* 文件名大小限制异常类
*
* @author pangu
* @author ruoyi
*/
public class FileSizeLimitExceededException extends FileException {

View File

@ -5,7 +5,7 @@ import java.io.Serial;
/**
* 验证码错误异常类
*
* @author pangu
* @author ruoyi
*/
public class CaptchaException extends UserException {

View File

@ -5,7 +5,7 @@ import java.io.Serial;
/**
* 验证码失效异常类
*
* @author pangu
* @author ruoyi
*/
public class CaptchaExpireException extends UserException {

View File

@ -7,7 +7,7 @@ import java.io.Serial;
/**
* 用户信息异常类
*
* @author pangu
* @author ruoyi
*/
public class UserException extends BaseException {

View File

@ -10,7 +10,7 @@ import java.util.regex.Pattern;
* <p>初始化的时候将正则表达式加入缓存池当中</p>
* <p>提高正则表达式的性能避免重复编译相同的正则表达式</p>
*
* @author pangu
* @author 21001
*/
public class RegexPatternPoolFactory extends PatternPool {

View File

@ -12,7 +12,7 @@ import java.io.IOException;
/**
* yml 配置源工厂
*
* @author pangu
* @author Lion Li
*/
public class YmlPropertySourceFactory extends DefaultPropertySourceFactory {

View File

@ -9,7 +9,7 @@ import java.util.List;
/**
* 通用 参数配置服务
*
* @author pangu
* @author Lion Li
*/
public interface ConfigService {

View File

@ -8,7 +8,7 @@ import java.util.Map;
/**
* 通用 部门服务
*
* @author pangu
* @author Lion Li
*/
public interface DeptService {

View File

@ -9,7 +9,7 @@ import java.util.Map;
/**
* 通用 字典服务
*
* @author pangu
* @author Lion Li
*/
public interface DictService {

View File

@ -7,7 +7,7 @@ import java.util.List;
/**
* 通用 OSS服务
*
* @author pangu
* @author Lion Li
*/
public interface OssService {

View File

@ -5,7 +5,7 @@ import java.util.Set;
/**
* 用户权限处理
*
* @author pangu
* @author Lion Li
*/
public interface PermissionService {

View File

@ -6,7 +6,7 @@ import java.util.Map;
/**
* 通用 岗位服务
*
* @author pangu
* @author AprilWind
*/
public interface PostService {

View File

@ -6,7 +6,7 @@ import java.util.Map;
/**
* 通用 角色服务
*
* @author pangu
* @author AprilWind
*/
public interface RoleService {

View File

@ -6,7 +6,7 @@ import org.dromara.common.core.domain.model.TaskAssigneeBody;
/**
* 工作流设计器获取任务执行人
*
* @author pangu
* @author Lion Li
*/
public interface TaskAssigneeService {

View File

@ -8,7 +8,7 @@ import java.util.Map;
/**
* 通用 用户服务
*
* @author pangu
* @author Lion Li
*/
public interface UserService {

View File

@ -10,7 +10,7 @@ import java.util.Map;
/**
* 通用 工作流服务
*
* @author pangu
* @author may
*/
public interface WorkflowService {

View File

@ -16,7 +16,7 @@ import java.util.concurrent.TimeUnit;
/**
* 时间工具类
*
* @author pangu
* @author ruoyi
*/
public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
private static final String[] PARSE_PATTERNS = {

View File

@ -8,7 +8,7 @@ import lombok.NoArgsConstructor;
/**
* 脱敏工具类
*
* @author pangu
* @author AprilWind
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class DesensitizedUtils extends DesensitizedUtil {

View File

@ -15,7 +15,7 @@ import java.util.Map;
* <p>参考文档<a href="https://mapstruct.plus/introduction/quick-start.html">mapstruct-plus</a></p>
*
*
* @author pangu
* @author Michelle.Chung
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class MapstructUtils {

View File

@ -9,7 +9,7 @@ import org.springframework.context.i18n.LocaleContextHolder;
/**
* 获取i18n资源文件
*
* @author pangu
* @author Lion Li
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class MessageUtils {

View File

@ -14,7 +14,7 @@ import java.net.UnknownHostException;
/**
* 增强网络相关工具类
*
* @author pangu
* @author 秋辞未寒
*/
@Slf4j
@NoArgsConstructor(access = AccessLevel.PRIVATE)

View File

@ -9,7 +9,7 @@ import java.util.function.Function;
/**
* 对象工具类
*
* @author pangu
* @author 秋辞未寒
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class ObjectUtils extends ObjectUtil {

View File

@ -27,7 +27,7 @@ import java.util.Map;
/**
* 客户端工具类提供获取请求参数响应处理头部信息等常用操作
*
* @author pangu
* @author ruoyi
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class ServletUtils extends JakartaServletUtil {

View File

@ -10,7 +10,7 @@ import org.springframework.stereotype.Component;
/**
* spring工具类
*
* @author pangu
* @author Lion Li
*/
@Component
public final class SpringUtils extends SpringUtil {

Some files were not shown because too many files have changed in this diff Show More