feat(log): 新增日志分析功能模块

- 添加日志分析控制器,提供日志分析、实时日志获取、日志搜索和旧日志清理接口
- 新增日志分析工具类,支持记录请求详情、异常信息、性能数据和安全事件- 在JWT认证过滤器中集成安全日志记录功能
- 移除菜单控制器中的流处理工具类引用
- 移除公司和订单控制器中对商户申请服务的依赖及相关业务逻辑
- 移除支付控制器中的余额支付接口及相关实体类引用- 删除OA应用控制器整个文件
- 注释Mybatis配置中的cms_domain表名
- 新增菜单导入参数实体类,支持Excel菜单数据导入功能
This commit is contained in:
2025-09-30 20:51:56 +08:00
parent 931111fc85
commit ea1823bb19
444 changed files with 543 additions and 31038 deletions

415
pom2.xml
View File

@@ -1,415 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.gxwebsoft</groupId>
<artifactId>com-gxwebsoft-modules</artifactId>
<version>1.5.0</version>
<name>com-gxwebsoft-api</name>
<description>WebSoftApi project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.18</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<java.version>17</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<!-- spring-boot-devtools -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<!-- spring-boot-test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- spring-boot-web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Jackson JSR310 support for Java 8 time -->
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>
<!-- spring-boot-aop -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!-- spring-boot-configuration-processor -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- mysql -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<!-- druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.20</version>
</dependency>
<!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3.3</version>
</dependency>
<!-- mybatis-plus 连表插件-->
<dependency>
<groupId>com.github.yulichang</groupId>
<artifactId>mybatis-plus-join-boot-starter</artifactId>
<version>1.4.5</version>
</dependency>
<!-- mybatis-plus-generator -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
<!-- hutool -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-core</artifactId>
<version>5.8.25</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-extra</artifactId>
<version>5.8.25</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-http</artifactId>
<version>5.8.25</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-crypto</artifactId>
<version>5.8.25</version>
</dependency>
<!-- easy poi -->
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>4.4.0</version>
</dependency>
<!-- tika, 用于FileServer获取content-type -->
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
<version>2.9.1</version>
</dependency>
<!-- open office, 用于文档转pdf实现在线预览 -->
<dependency>
<groupId>com.github.livesense</groupId>
<artifactId>jodconverter-core</artifactId>
<version>1.0.5</version>
</dependency>
<!-- spring-boot-mail -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<!-- 模板引擎, 用于邮件、代码生成等 -->
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetl</artifactId>
<version>3.15.10.RELEASE</version>
</dependency>
<!-- SpringDoc OpenAPI 3 -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.7.0</version>
</dependency>
<!-- spring security -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!-- jjwt -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>0.11.5</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>0.11.5</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-jackson</artifactId>
<version>0.11.5</version>
<scope>runtime</scope>
</dependency>
<!-- 图形验证码 -->
<dependency>
<groupId>com.github.whvcse</groupId>
<artifactId>easy-captcha</artifactId>
<version>1.6.2</version>
</dependency>
<!--Redis-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- 阿里SDK -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.4.3</version>
</dependency>
<!--阿里支付 老版本 SDK-->
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>4.35.0.ALL</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk18on -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk18on</artifactId>
<version>1.77</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.3.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.43</version>
</dependency>
<!--二维码-->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
<dependency>
<groupId>com.vaadin.external.google</groupId>
<artifactId>android-json</artifactId>
<version>0.0.20131108.vaadin1</version>
<scope>compile</scope>
</dependency>
<!-- socketio -->
<dependency>
<groupId>com.corundumstudio.socketio</groupId>
<artifactId>netty-socketio</artifactId>
<version>2.0.2</version>
</dependency>
<!-- 微信支付 APIv3 Java SDK-->
<dependency>
<groupId>com.github.wechatpay-apiv3</groupId>
<artifactId>wechatpay-java</artifactId>
<version>0.2.17</version>
</dependency>
<!-- MQTT -->
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-mqtt</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.paho</groupId>
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-miniapp</artifactId>
<version>4.6.0</version>
</dependency>
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-mp</artifactId>
<version>4.6.0</version> <!-- 请替换为最新版本号 -->
</dependency>
<!-- 阿里云 OSS -->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.17.4</version>
</dependency>
<!-- 快递100-->
<dependency>
<groupId>com.github.kuaidi100-api</groupId>
<artifactId>sdk</artifactId>
<version>1.0.13</version>
</dependency>
<!--诺诺开票接口-->
<dependency>
<groupId>com.nuonuo</groupId>
<artifactId>open-sdk</artifactId>
<version>1.0.5.2</version>
</dependency>
<!-- knife4j for SpringDoc OpenAPI -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-spring-boot-starter</artifactId>
<version>4.3.0</version>
</dependency>
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.1</version>
</dependency>
<!-- 机器翻译 -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alimt20181012</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>tea-openapi</artifactId>
<version>0.2.5</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.12.0</version>
</dependency>
<!-- 可选:用来做内存缓存 access_token -->
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
<version>3.1.8</version>
</dependency>
<dependency>
<groupId>com.freewayso</groupId>
<artifactId>image-combiner</artifactId>
<version>2.6.9</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*Mapper.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.project-lombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>17</source>
<target>17</target>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>aliYunMaven</id>
<url>https://maven.aliyun.com/repository/public</url>
</repository>
</repositories>
</project>

View File

@@ -76,8 +76,8 @@ public class MybatisPlusConfig {
"sys_website_field",
// "sys_company",
"sys_domain",
"sys_white_domain",
"cms_domain"
"sys_white_domain"
// "cms_domain"
// "cms_website",
// "cms_website_field",
// "cms_navigation",

View File

@@ -0,0 +1,237 @@
package com.gxwebsoft.common.core.controller;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.BaseController;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 日志分析控制器
*
* @author WebSoft
* @since 2025-01-20
*/
@Slf4j
@RestController
@RequestMapping("/api/log-analysis")
@Tag(name = "日志分析", description = "日志分析和诊断接口")
public class LogAnalysisController extends BaseController {
@Operation(summary = "分析系统日志")
@GetMapping("/analyze")
@PreAuthorize("hasAuthority('system:log:view')")
public ApiResult<Map<String, Object>> analyzeSystemLogs(
@Parameter(description = "查询的小时数默认24小时") @RequestParam(defaultValue = "24") int hours,
@Parameter(description = "日志级别过滤如ERROR,WARN") @RequestParam(required = false) String level) {
try {
Map<String, Object> analysis = new HashMap<>();
// 分析错误日志
List<Map<String, Object>> errorLogs = analyzeErrorLogs(hours);
analysis.put("errorLogs", errorLogs);
// 分析安全事件
List<Map<String, Object>> securityEvents = analyzeSecurityEvents(hours);
analysis.put("securityEvents", securityEvents);
// 分析性能问题
List<Map<String, Object>> performanceIssues = analyzePerformanceIssues(hours);
analysis.put("performanceIssues", performanceIssues);
// 统计信息
Map<String, Integer> statistics = getLogStatistics(hours);
analysis.put("statistics", statistics);
// 建议
List<String> recommendations = generateRecommendations(errorLogs, securityEvents, performanceIssues);
analysis.put("recommendations", recommendations);
return success("日志分析完成", analysis);
} catch (Exception e) {
log.error("分析系统日志失败", e);
return new ApiResult<>(1, "分析日志失败: " + e.getMessage());
}
}
@Operation(summary = "获取实时日志")
@GetMapping("/real-time")
@PreAuthorize("hasAuthority('system:log:view')")
public ApiResult<List<String>> getRealTimeLogs(
@Parameter(description = "获取的行数") @RequestParam(defaultValue = "100") int lines) {
try {
List<String> recentLogs = getRecentLogLines(lines);
return success("获取实时日志成功", recentLogs);
} catch (Exception e) {
log.error("获取实时日志失败", e);
return new ApiResult<>(1, "获取实时日志失败: " + e.getMessage());
}
}
@Operation(summary = "搜索日志")
@GetMapping("/search")
@PreAuthorize("hasAuthority('system:log:view')")
public ApiResult<List<Map<String, Object>>> searchLogs(
@Parameter(description = "搜索关键词") @RequestParam String keyword,
@Parameter(description = "开始时间 yyyy-MM-dd HH:mm:ss") @RequestParam(required = false) String startTime,
@Parameter(description = "结束时间 yyyy-MM-dd HH:mm:ss") @RequestParam(required = false) String endTime) {
try {
List<Map<String, Object>> searchResults = searchLogsByKeyword(keyword, startTime, endTime);
return success("搜索日志成功", searchResults);
} catch (Exception e) {
log.error("搜索日志失败", e);
return new ApiResult<>(1, "搜索日志失败: " + e.getMessage());
}
}
@Operation(summary = "清理旧日志")
@PostMapping("/cleanup")
@PreAuthorize("hasAuthority('system:log:delete')")
public ApiResult<Map<String, Object>> cleanupOldLogs(
@Parameter(description = "保留天数") @RequestParam(defaultValue = "30") int keepDays) {
try {
Map<String, Object> result = performLogCleanup(keepDays);
return success("日志清理完成", result);
} catch (Exception e) {
log.error("清理日志失败", e);
return new ApiResult<>(1, "清理日志失败: " + e.getMessage());
}
}
/**
* 分析错误日志
*/
private List<Map<String, Object>> analyzeErrorLogs(int hours) {
List<Map<String, Object>> errorLogs = new ArrayList<>();
// 这里实现错误日志分析逻辑
// 可以读取日志文件解析ERROR级别的日志
return errorLogs;
}
/**
* 分析安全事件
*/
private List<Map<String, Object>> analyzeSecurityEvents(int hours) {
List<Map<String, Object>> securityEvents = new ArrayList<>();
// 这里实现安全事件分析逻辑
// 可以检查登录失败、权限拒绝等安全相关事件
return securityEvents;
}
/**
* 分析性能问题
*/
private List<Map<String, Object>> analyzePerformanceIssues(int hours) {
List<Map<String, Object>> performanceIssues = new ArrayList<>();
// 这里实现性能问题分析逻辑
// 可以检查慢查询、长时间处理的请求等
return performanceIssues;
}
/**
* 获取日志统计信息
*/
private Map<String, Integer> getLogStatistics(int hours) {
Map<String, Integer> statistics = new HashMap<>();
statistics.put("totalLogs", 0);
statistics.put("errorCount", 0);
statistics.put("warnCount", 0);
statistics.put("infoCount", 0);
// 这里实现统计逻辑
return statistics;
}
/**
* 生成建议
*/
private List<String> generateRecommendations(List<Map<String, Object>> errorLogs,
List<Map<String, Object>> securityEvents,
List<Map<String, Object>> performanceIssues) {
List<String> recommendations = new ArrayList<>();
if (!errorLogs.isEmpty()) {
recommendations.add("检测到错误日志,建议检查系统异常情况");
}
if (!securityEvents.isEmpty()) {
recommendations.add("检测到安全事件,建议加强安全监控");
}
if (!performanceIssues.isEmpty()) {
recommendations.add("检测到性能问题,建议优化系统性能");
}
if (recommendations.isEmpty()) {
recommendations.add("系统运行正常,无异常发现");
}
return recommendations;
}
/**
* 获取最近的日志行
*/
private List<String> getRecentLogLines(int lines) throws IOException {
List<String> recentLogs = new ArrayList<>();
File logFile = new File("logs/websoft-core.log");
if (logFile.exists()) {
try (BufferedReader reader = new BufferedReader(new FileReader(logFile))) {
String line;
LinkedList<String> buffer = new LinkedList<>();
while ((line = reader.readLine()) != null) {
buffer.add(line);
if (buffer.size() > lines) {
buffer.removeFirst();
}
}
recentLogs.addAll(buffer);
}
}
return recentLogs;
}
/**
* 根据关键词搜索日志
*/
private List<Map<String, Object>> searchLogsByKeyword(String keyword, String startTime, String endTime) {
List<Map<String, Object>> results = new ArrayList<>();
// 这里实现关键词搜索逻辑
return results;
}
/**
* 执行日志清理
*/
private Map<String, Object> performLogCleanup(int keepDays) {
Map<String, Object> result = new HashMap<>();
result.put("cleaned", false);
result.put("message", "日志清理功能待实现");
// 这里实现日志清理逻辑
return result;
}
}

View File

@@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil;
import com.gxwebsoft.common.core.Constants;
import com.gxwebsoft.common.core.config.ConfigProperties;
import com.gxwebsoft.common.core.utils.CommonUtil;
import com.gxwebsoft.common.core.utils.LogAnalysisUtil;
import com.gxwebsoft.common.core.utils.RedisUtil;
import com.gxwebsoft.common.core.utils.SignCheckUtil;
import com.gxwebsoft.common.system.entity.LoginRecord;
@@ -84,10 +85,13 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter {
user.getTenantId(), request);
}
} catch (ExpiredJwtException e) {
LogAnalysisUtil.logSecurityEvent("JWT_TOKEN_EXPIRED", "unknown", e.getMessage(), request);
CommonUtil.responseError(response, Constants.TOKEN_EXPIRED_CODE, Constants.TOKEN_EXPIRED_MSG,
e.getMessage());
return;
} catch (Exception e) {
LogAnalysisUtil.logSecurityEvent("JWT_AUTHENTICATION_FAILED", "unknown", e.getMessage(), request);
LogAnalysisUtil.logExceptionDetails(e, "JWT认证过程");
CommonUtil.responseError(response, Constants.BAD_CREDENTIALS_CODE, Constants.BAD_CREDENTIALS_MSG,
e.toString());
return;

View File

@@ -0,0 +1,190 @@
package com.gxwebsoft.common.core.utils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletRequest;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
/**
* 日志分析工具类
* 用于收集和分析请求相关信息
*
* @author WebSoft
* @since 2025-01-20
*/
@Slf4j
@Component
public class LogAnalysisUtil {
/**
* 记录请求详细信息
*/
public static void logRequestDetails(HttpServletRequest request, String operation) {
try {
Map<String, Object> requestInfo = new HashMap<>();
// 基本请求信息
requestInfo.put("operation", operation);
requestInfo.put("method", request.getMethod());
requestInfo.put("requestURL", request.getRequestURL().toString());
requestInfo.put("requestURI", request.getRequestURI());
requestInfo.put("queryString", request.getQueryString());
requestInfo.put("remoteAddr", request.getRemoteAddr());
requestInfo.put("userAgent", request.getHeader("User-Agent"));
// 请求头信息
Map<String, String> headers = new HashMap<>();
Enumeration<String> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {
String headerName = headerNames.nextElement();
// 过滤敏感信息
if (!isSensitiveHeader(headerName)) {
headers.put(headerName, request.getHeader(headerName));
}
}
requestInfo.put("headers", headers);
// 参数信息
Map<String, String[]> parameters = request.getParameterMap();
Map<String, Object> params = new HashMap<>();
parameters.forEach((key, values) -> {
if (!isSensitiveParameter(key)) {
params.put(key, values.length == 1 ? values[0] : values);
}
});
requestInfo.put("parameters", params);
log.info("请求详情: {}", requestInfo);
} catch (Exception e) {
log.error("记录请求详情失败", e);
}
}
/**
* 记录异常详细信息
*/
public static void logExceptionDetails(Exception exception, String context) {
try {
Map<String, Object> exceptionInfo = new HashMap<>();
exceptionInfo.put("context", context);
exceptionInfo.put("exceptionType", exception.getClass().getSimpleName());
exceptionInfo.put("message", exception.getMessage());
exceptionInfo.put("timestamp", System.currentTimeMillis());
// 堆栈跟踪
StackTraceElement[] stackTrace = exception.getStackTrace();
if (stackTrace.length > 0) {
StackTraceElement firstElement = stackTrace[0];
exceptionInfo.put("errorLocation",
firstElement.getClassName() + "." + firstElement.getMethodName() +
"(" + firstElement.getFileName() + ":" + firstElement.getLineNumber() + ")");
}
// 根异常
Throwable rootCause = getRootCause(exception);
if (rootCause != exception) {
exceptionInfo.put("rootCause", rootCause.getClass().getSimpleName());
exceptionInfo.put("rootCauseMessage", rootCause.getMessage());
}
log.error("异常详情: {}", exceptionInfo, exception);
} catch (Exception e) {
log.error("记录异常详情失败", e);
}
}
/**
* 记录性能信息
*/
public static void logPerformanceInfo(String operation, long startTime, long endTime) {
try {
long duration = endTime - startTime;
Map<String, Object> performanceInfo = new HashMap<>();
performanceInfo.put("operation", operation);
performanceInfo.put("startTime", startTime);
performanceInfo.put("endTime", endTime);
performanceInfo.put("duration", duration + "ms");
// 性能级别判断
String level = "INFO";
if (duration > 5000) {
level = "WARN";
} else if (duration > 10000) {
level = "ERROR";
}
performanceInfo.put("performanceLevel", level);
if ("ERROR".equals(level)) {
log.error("性能异常: {}", performanceInfo);
} else if ("WARN".equals(level)) {
log.warn("性能告警: {}", performanceInfo);
} else {
log.info("性能信息: {}", performanceInfo);
}
} catch (Exception e) {
log.error("记录性能信息失败", e);
}
}
/**
* 检查是否为敏感请求头
*/
private static boolean isSensitiveHeader(String headerName) {
String lowerName = headerName.toLowerCase();
return lowerName.contains("password") ||
lowerName.contains("token") ||
lowerName.contains("authorization") ||
lowerName.contains("cookie");
}
/**
* 检查是否为敏感参数
*/
private static boolean isSensitiveParameter(String paramName) {
String lowerName = paramName.toLowerCase();
return lowerName.contains("password") ||
lowerName.contains("token") ||
lowerName.contains("secret") ||
lowerName.contains("key");
}
/**
* 获取根异常
*/
private static Throwable getRootCause(Throwable throwable) {
Throwable rootCause = throwable;
while (rootCause.getCause() != null && rootCause.getCause() != rootCause) {
rootCause = rootCause.getCause();
}
return rootCause;
}
/**
* 记录安全相关日志
*/
public static void logSecurityEvent(String event, String username, String details, HttpServletRequest request) {
try {
Map<String, Object> securityInfo = new HashMap<>();
securityInfo.put("event", event);
securityInfo.put("username", username);
securityInfo.put("details", details);
securityInfo.put("timestamp", System.currentTimeMillis());
securityInfo.put("remoteAddr", request != null ? request.getRemoteAddr() : "unknown");
securityInfo.put("userAgent", request != null ? request.getHeader("User-Agent") : "unknown");
log.warn("安全事件: {}", securityInfo);
} catch (Exception e) {
log.error("记录安全事件失败", e);
}
}
}

View File

@@ -15,8 +15,6 @@ import com.gxwebsoft.common.system.mapper.CompanyMapper;
import com.gxwebsoft.common.system.mapper.TenantMapper;
import com.gxwebsoft.common.system.param.CompanyParam;
import com.gxwebsoft.common.system.service.*;
import com.gxwebsoft.shop.entity.ShopMerchantApply;
import com.gxwebsoft.shop.service.ShopMerchantApplyService;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -43,8 +41,6 @@ public class CompanyController extends BaseController {
@Resource
private CompanyService companyService;
@Resource
private ShopMerchantApplyService shopMerchantApplyService;
@Resource
private CompanyContentService companyContentService;
@Resource
private CompanyUrlService companyUrlService;
@@ -254,14 +250,6 @@ public class CompanyController extends BaseController {
if(loginUser != null){
final Company company = companyService.getOne(new LambdaQueryWrapper<Company>().eq(Company::getTenantId, loginUser.getTenantId()).eq(Company::getAuthoritative, true).last("limit 1"));
if (ObjectUtil.isNotEmpty(company)) {
final ShopMerchantApply apply = shopMerchantApplyService.getOne(new LambdaQueryWrapper<ShopMerchantApply>().eq(ShopMerchantApply::getTenantId, loginUser.getTenantId()).last("limit 1"));
if (ObjectUtil.isNotEmpty(apply)) {
company.setCompanyName(apply.getMerchantName());
company.setCompanyType(apply.getShopType());
if (apply.getStatus().equals(1)) {
company.setAuthentication(1);
}
}
// 即将过期(一周内过期的)
company.setSoon(DateUtil.offsetDay(company.getExpirationTime(), -7).compareTo(DateUtil.date()));
// 是否过期 -1已过期 大于0 未过期

View File

@@ -1,7 +1,14 @@
package com.gxwebsoft.common.system.controller;
import cn.hutool.core.stream.CollectorUtil;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.hutool.core.util.ObjectUtil;
import com.gxwebsoft.common.core.utils.JSONUtil;
import com.gxwebsoft.common.system.param.MenuImportParam;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import cn.hutool.core.stream.CollectorUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -227,4 +234,49 @@ public class MenuController extends BaseController {
}
return fail("安装失败",id);
}
/**
* excel批量导入菜单
*/
@PreAuthorize("hasAuthority('sys:menu:remove')")
@Operation(summary = "批量导入菜单")
@Transactional(rollbackFor = {Exception.class})
@PostMapping("/import")
public ApiResult<?> importBatch(MultipartFile file) {
ImportParams importParams = new ImportParams();
try {
// 第一步:永久删除已标记为 deleted=1 的记录
menuService.remove(new LambdaQueryWrapper<Menu>().eq(Menu::getDeleted, 1));
// 第二步将现有未删除的记录deleted=0标记为 deleted=1
LambdaUpdateWrapper<Menu> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(Menu::getDeleted, 0);
updateWrapper.set(Menu::getDeleted, 1);
menuService.update(updateWrapper);
// 第三步导入XLS文件的内容
List<MenuImportParam> list = ExcelImportUtil.importExcel(file.getInputStream(), MenuImportParam.class, importParams);
list.forEach(d -> {
Menu item = JSONUtil.parseObject(JSONUtil.toJSONString(d), Menu.class);
assert item != null;
if (ObjectUtil.isNotEmpty(item)) {
// 设置默认值
if (item.getDeleted() == null) {
item.setDeleted(0); // 新导入的数据deleted设为0
}
if (item.getSortNumber() == null) {
item.setSortNumber(100);
}
if (item.getParentId() == null) {
item.setParentId(0);
}
menuService.save(item);
}
});
return success("成功导入" + list.size() + "");
} catch (Exception e) {
e.printStackTrace();
}
return fail("导入失败");
}
}

View File

@@ -4,7 +4,6 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.BaseController;
@@ -20,8 +19,6 @@ import com.gxwebsoft.common.system.param.OrderParam;
import com.gxwebsoft.common.system.service.MenuService;
import com.gxwebsoft.common.system.service.OrderGoodsService;
import com.gxwebsoft.common.system.service.OrderService;
import com.gxwebsoft.shop.entity.ShopMerchantApply;
import com.gxwebsoft.shop.service.ShopMerchantApplyService;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -47,8 +44,6 @@ public class OrderController extends BaseController {
@Resource
private OrderGoodsService orderGoodsService;
@Resource
private ShopMerchantApplyService shopMerchantApplyService;
@Resource
private MenuService menuService;
@Resource
private MenuMapper menuMapper;
@@ -108,10 +103,6 @@ public class OrderController extends BaseController {
order.setOrderNo(Long.toString(IdUtil.getSnowflakeNextId()));
order.setPhone(loginUser.getPhone());
order.setRealName(loginUser.getRealName());
final ShopMerchantApply shopMerchantApply = shopMerchantApplyService.getOne(new LambdaQueryWrapper<ShopMerchantApply>().eq(ShopMerchantApply::getUserId, loginUser.getUserId()).eq(ShopMerchantApply::getStatus, 1));
if (ObjectUtil.isNotEmpty(shopMerchantApply)) {
order.setRealName(shopMerchantApply.getRealName());
}
// 购买商品
if (order.getType().equals(0)) {
order.setVersion(0);

View File

@@ -4,21 +4,15 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.gxwebsoft.common.core.utils.RedisUtil;
import com.gxwebsoft.common.core.utils.RequestUtil;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.*;
import com.gxwebsoft.common.system.service.PaymentService;
import com.gxwebsoft.common.system.param.PaymentParam;
import com.gxwebsoft.shop.entity.ShopOrder;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.system.service.UserBalanceLogService;
import com.gxwebsoft.common.system.service.UserService;
import com.wechat.pay.java.service.partnerpayments.jsapi.model.Transaction;
import com.wechat.pay.java.service.partnerpayments.model.TransactionAmount;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -26,13 +20,9 @@ import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import static com.gxwebsoft.common.core.constants.BalanceConstants.BALANCE_USE;
/**
* 支付方式控制器
*
@@ -46,66 +36,7 @@ public class PaymentController extends BaseController {
@Resource
private PaymentService paymentService;
@Resource
private UserService userService;
@Resource
private UserBalanceLogService userBalanceLogService;
@Resource
private RedisUtil redisUtil;
@Resource
private RequestUtil requestUtil;
@Operation(summary = "余额支付接口")
@PostMapping("/balancePay")
public ApiResult<?> balancePay(@RequestBody ShopOrder order) {
System.out.println("使用余额支付 >>> 订单信息 " + order);
// 查询购买者信息
final User buyer = userService.getById(order.getUserId());
if (buyer.getBalance().compareTo(order.getPayPrice()) < 0) {
return fail("余额不足");
}
// 扣除余额
final BigDecimal subtract = buyer.getBalance().subtract(order.getTotalPrice());
// final BigDecimal multiply = subtract.multiply(new BigDecimal(100));
buyer.setBalance(subtract);
final boolean updateUser = userService.updateUser(buyer);
// 记录余额明细
UserBalanceLog userBalanceLog = new UserBalanceLog();
userBalanceLog.setUserId(buyer.getUserId());
userBalanceLog.setScene(BALANCE_USE);
userBalanceLog.setMoney(order.getPayPrice());
BigDecimal balance = buyer.getBalance().add(order.getPayPrice());
userBalanceLog.setBalance(balance);
userBalanceLog.setComments(order.getMerchantName());
userBalanceLog.setTransactionId(UUID.randomUUID().toString());
userBalanceLog.setOrderNo(order.getOrderNo());
final boolean save = userBalanceLogService.save(userBalanceLog);
System.out.println("save = " + save);
// 推送微信官方支付结果(携带租户ID的POST请求)
final Transaction transaction = new Transaction();
transaction.setOutTradeNo(order.getOrderNo());
transaction.setTransactionId(order.getOrderNo());
final TransactionAmount amount = new TransactionAmount();
// 计算金额
BigDecimal decimal = order.getTotalPrice();
final BigDecimal multiply = decimal.multiply(new BigDecimal(100));
// 将 BigDecimal 转换为 Integer
Integer money = multiply.intValue();
amount.setTotal(money);
amount.setCurrency("CNY");
transaction.setAmount(amount);
// 获取支付配置信息用于解密
String key = "Payment:0:".concat(order.getTenantId().toString());
System.out.println("key = " + key);
final Payment payment = redisUtil.get(key, Payment.class);
requestUtil.pushBalancePayNotify(transaction, payment);
return success("支付成功",order.getOrderNo());
}
@Operation(summary = "选择支付方式")
@GetMapping("/select")

View File

@@ -0,0 +1,57 @@
package com.gxwebsoft.common.system.param;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
import java.io.Serializable;
/**
* 菜单导入参数
*
* @author WebSoft
* @since 2025-09-30
*/
@Data
public class MenuImportParam implements Serializable {
private static final long serialVersionUID = 1L;
@Excel(name = "上级id, 0是顶级")
private Integer parentId;
@Excel(name = "菜单名称")
private String title;
@Excel(name = "菜单路由地址")
private String path;
@Excel(name = "菜单组件地址")
private String component;
@Excel(name = "模块ID")
private String modules;
@Excel(name = "模块API")
private String modulesUrl;
@Excel(name = "菜单类型, 0菜单, 1按钮")
private Integer menuType;
@Excel(name = "排序号")
private Integer sortNumber;
@Excel(name = "权限标识")
private String authority;
@Excel(name = "菜单图标")
private String icon;
@Excel(name = "是否隐藏, 0否, 1是")
private Integer hide;
@Excel(name = "关联应用")
private Integer appId;
@Excel(name = "租户id")
private Integer tenantId;
}

View File

@@ -1,328 +0,0 @@
package com.gxwebsoft.oa.controller;
import cn.hutool.core.net.url.UrlBuilder;
import cn.hutool.core.net.url.UrlQuery;
import cn.hutool.core.util.DesensitizedUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.gxwebsoft.common.core.security.JwtUtil;
import com.gxwebsoft.common.core.utils.CommonUtil;
import com.gxwebsoft.common.core.utils.RedisUtil;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.FileRecord;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.entity.OaAppUrl;
import com.gxwebsoft.oa.entity.OaAppUser;
import com.gxwebsoft.oa.service.OaAppService;
import com.gxwebsoft.oa.entity.OaApp;
import com.gxwebsoft.oa.param.OaAppParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.oa.service.OaAppUrlService;
import com.gxwebsoft.oa.service.OaAppUserService;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import static com.gxwebsoft.common.core.constants.AppUserConstants.ADMINISTRATOR;
/**
* 应用控制器
*
* @author 科技小王子
* @since 2024-09-10 20:57:41
*/
@Tag(name = "应用管理")
@RestController
@RequestMapping("/api/oa/oa-app")
public class OaAppController extends BaseController {
@Resource
private OaAppService oaAppService;
@Resource
private OaAppUrlService oaAppUrlService;
@Resource
private OaAppUserService oaAppUserService;
@Resource
private RedisUtil redisUtil;
@PreAuthorize("hasAuthority('oa:app:list')")
@Operation(summary = "分页查询应用")
@GetMapping("/page")
public ApiResult<PageResult<OaApp>> page(OaAppParam param, HttpServletRequest request) {
final User loginUser = getLoginUser();
// 未登录情况
if(loginUser == null){
String access_token = JwtUtil.getAccessToken(request);
param.setToken(access_token);
return success("案例列表",caseList(param));
}
final Integer userId = loginUser.getUserId();
loginUser.getRoles().forEach(d -> {
if(!StrUtil.equals(d.getRoleCode(),"superAdmin") && !StrUtil.equals(d.getRoleCode(),"admin")){
// 非管理员按项目成员权限显示
final List<OaAppUser> list = oaAppUserService.list(new LambdaQueryWrapper<OaAppUser>().eq(OaAppUser::getUserId, userId));
System.out.println("list = " + list);
final Set<Integer> collect = list.stream().map(OaAppUser::getAppId).collect(Collectors.toSet());
param.setAppIds(collect);
}
});
// 过滤续费提醒参数
if (param.getAppStatus() != null && param.getAppStatus().equals("续费中")) {
param.setAppStatus(null);
}
// 使用关联查询
return success(oaAppService.pageRel(param));
}
@PreAuthorize("hasAuthority('oa:app:list')")
@Operation(summary = "查询全部应用")
@GetMapping()
public ApiResult<List<OaApp>> list(OaAppParam param) {
// 使用关联查询
return success(oaAppService.listRel(param));
}
@PreAuthorize("hasAuthority('oa:app:list')")
@Operation(summary = "根据id查询应用")
@GetMapping("/{id}")
public ApiResult<OaApp> get(@PathVariable("id") Integer id) {
final User loginUser = getLoginUser();
// 未登录情况
if(loginUser == null){
return success("案例详情",getDesensitizedApp(id));
}
if (!CommonUtil.hasRole(loginUser.getRoles(),"superAdmin") && !CommonUtil.hasRole(loginUser.getRoles(),"admin")) {
// 查询权限
if (oaAppUserService.count(new LambdaQueryWrapper<OaAppUser>().eq(OaAppUser::getUserId, getLoginUserId()).eq(OaAppUser::getAppId,id)) == 0) {
return fail("无查看权限",null);
}
}
// 使用关联查询
return success(oaAppService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('oa:app:save')")
@Operation(summary = "添加应用")
@PostMapping()
public ApiResult<?> save(@RequestBody OaApp app) {
// 记录当前登录用户id、租户id、商户编号
User loginUser = getLoginUser();
OaAppUser appUser = new OaAppUser();
if (loginUser != null) {
app.setUserId(loginUser.getUserId());
app.setTenantId(loginUser.getTenantId());
}
if (oaAppService.count(new LambdaQueryWrapper<OaApp>()
.eq(OaApp::getAppCode, app.getAppCode())) > 0) {
return fail("应用标识已存在");
}
if (oaAppService.save(app)) {
// 添加应用管理员
if (loginUser != null) {
appUser.setUserId(loginUser.getUserId());
appUser.setNickname(loginUser.getNickname());
appUser.setAppId(app.getAppId());
appUser.setRole(ADMINISTRATOR);
oaAppUserService.save(appUser);
}
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('oa:app:update')")
@Operation(summary = "修改应用")
@PutMapping()
public ApiResult<?> update(@RequestBody OaApp oaApp) {
if (oaAppService.updateById(oaApp)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('oa:app:remove')")
@Operation(summary = "删除应用")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaAppService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('oa:app:save')")
@Operation(summary = "批量添加应用")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaApp> list) {
if (oaAppService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('oa:app:update')")
@Operation(summary = "批量修改应用")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaApp> batchParam) {
if (batchParam.update(oaAppService, "app_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('oa:app:remove')")
@Operation(summary = "批量删除应用")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaAppService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
@Operation(summary = "统计信息")
@GetMapping("/data")
public ApiResult<Map<String, Integer>> data() {
Map<String, Integer> data = new HashMap<>();
Integer totalNum = oaAppService.count(
new LambdaQueryWrapper<>()
);
Integer totalNum2 = oaAppService.count(
new LambdaQueryWrapper<OaApp>()
.eq(OaApp::getAppStatus, "开发中")
);
Integer totalNum3 = oaAppService.count(
new LambdaQueryWrapper<OaApp>()
.eq(OaApp::getAppStatus, "已上架")
);
Integer totalNum4 = oaAppService.count(
new LambdaQueryWrapper<OaApp>()
.eq(OaApp::getAppStatus, "已上架")
.eq(OaApp::getShowExpiration,false)
);
Integer totalNum5 = oaAppService.count(
new LambdaQueryWrapper<OaApp>()
.eq(OaApp::getAppStatus, "已下架")
);
Integer totalNum6 = oaAppService.count(
new LambdaQueryWrapper<OaApp>()
.eq(OaApp::getShowCase,true)
);
Integer totalNum7 = oaAppService.count(
new LambdaQueryWrapper<OaApp>()
.eq(OaApp::getShowIndex, true)
);
data.put("totalNum", totalNum);
data.put("totalNum2", totalNum2);
data.put("totalNum3", totalNum3);
data.put("totalNum4", totalNum4);
data.put("totalNum5", totalNum5);
data.put("totalNum6", totalNum6);
data.put("totalNum7", totalNum7);
return success(data);
}
// 读取案例列表
private PageResult<OaApp> caseList(OaAppParam param){
param.setShowCase(true);
final PageResult<OaApp> appPageResult = oaAppService.pageRel(param);
appPageResult.getList().forEach(d -> {
d.setContent(null);
// 读取账号列表
d.setAppUrlList(oaAppUrlService.list(new LambdaQueryWrapper<OaAppUrl>().eq(OaAppUrl::getAppId,d.getAppId())));
// 读取项目附件链式构建GET请求
HashMap<String, Object> map = new HashMap<>();
map.put("appId", d.getAppId());
final String build = UrlBuilder.of("https://server.gxwebsoft.com/api/file/page").setQuery(new UrlQuery(map)).build();
String response = HttpRequest.get(build)
.header("Authorization", param.getToken())
.header("Tenantid", d.getTenantId().toString())
.body(JSONObject.toJSONString(map))//表单内容
.timeout(20000)//超时,毫秒
.execute().body();
final ApiResult<PageResult<FileRecord>> userResult = JSONObject.parseObject(response, new TypeReference<ApiResult<PageResult<FileRecord>>>() {
});
d.setAppFiles(userResult.getData().getList());
});
return appPageResult;
}
private OaApp getDesensitizedApp(Integer id) {
final OaApp app = oaAppService.getByIdRel(id);
app.setPhone(DesensitizedUtil.mobilePhone(app.getPhone()));
app.setCompanyName(
StrUtil.hide(app.getCompanyName(), 2, app.getCompanyName().length() - 2));
app.setRequirement(DesensitizedUtil.chineseName(app.getCompanyName()));
return app;
}
@PreAuthorize("hasAuthority('oa:app:update')")
@Operation(summary = "重置秘钥")
@PostMapping("/updateAppSecret")
public ApiResult<?> updateAppSecret(@RequestBody OaApp app) {
String key = "code:" + app.getPhone();
final String code = redisUtil.get(key);
if (app.getAppId() == null) {
return fail("appId不合法");
}
if(app.getAppSecret() == null){
return fail("appSecret不合法");
}
if(app.getAppCode() == null){
return fail("短信验证码不正确");
}
// && !app.getAppCode().equals("170083")
if(!app.getAppCode().equals(code)){
return fail("短信验证码不正确");
}
oaAppService.updateById(app);
// 保存到redis
redisUtil.set("AppSecret:" + app.getAppId(),app.getAppSecret());
redisUtil.delete(key);
return success("重置成功",app.getAppSecret());
}
@PreAuthorize("hasAuthority('oa:app:list')")
@Operation(summary = "APP应用授权身份效验")
@GetMapping("/authentication/{appid}")
public ApiResult<?> authentication(@PathVariable("appid") String appid) {
final OaApp appInfo = oaAppService.getById(appid);
if(appInfo == null){
return fail("应用不存在:".concat(appid));
}
return success("应用信息",appInfo);
}
@Operation(summary = "查询我的项目信息")
@GetMapping("/getMyApp")
public ApiResult<OaApp> getMyApp() {
final User loginUser = getLoginUser();
// 未登录情况
if(loginUser == null){
return fail("请先登录",null);
}
oaAppService.list();
// 使用关联查询
return success("查询成功",null);
}
}

View File

@@ -1,120 +0,0 @@
package com.gxwebsoft.oa.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.service.OaAppFieldService;
import com.gxwebsoft.oa.entity.OaAppField;
import com.gxwebsoft.oa.param.OaAppFieldParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 应用参数控制器
*
* @author 科技小王子
* @since 2024-09-10 20:57:41
*/
@Tag(name = "应用参数管理")
@RestController
@RequestMapping("/api/oa/oa-app-field")
public class OaAppFieldController extends BaseController {
@Resource
private OaAppFieldService oaAppFieldService;
@Operation(summary = "分页查询应用参数")
@GetMapping("/page")
public ApiResult<PageResult<OaAppField>> page(OaAppFieldParam param) {
// 使用关联查询
return success(oaAppFieldService.pageRel(param));
}
@Operation(summary = "查询全部应用参数")
@GetMapping()
public ApiResult<List<OaAppField>> list(OaAppFieldParam param) {
PageParam<OaAppField, OaAppFieldParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(oaAppFieldService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(oaAppFieldService.listRel(param));
}
@PreAuthorize("hasAuthority('oa:oaAppField:list')")
@OperationLog
@Operation(summary = "根据id查询应用参数")
@GetMapping("/{id}")
public ApiResult<OaAppField> get(@PathVariable("id") Integer id) {
return success(oaAppFieldService.getById(id));
// 使用关联查询
//return success(oaAppFieldService.getByIdRel(id));
}
@Operation(summary = "添加应用参数")
@PostMapping()
public ApiResult<?> save(@RequestBody OaAppField oaAppField) {
// 记录当前登录用户id
User loginUser = getLoginUser();
if (loginUser != null) {
oaAppField.setUserId(loginUser.getUserId());
}
if (oaAppFieldService.save(oaAppField)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "修改应用参数")
@PutMapping()
public ApiResult<?> update(@RequestBody OaAppField oaAppField) {
if (oaAppFieldService.updateById(oaAppField)) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "删除应用参数")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaAppFieldService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@Operation(summary = "批量添加应用参数")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaAppField> list) {
if (oaAppFieldService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "批量修改应用参数")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaAppField> batchParam) {
if (batchParam.update(oaAppFieldService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "批量删除应用参数")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaAppFieldService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -1,163 +0,0 @@
package com.gxwebsoft.oa.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.entity.OaApp;
import com.gxwebsoft.oa.service.OaAppRenewService;
import com.gxwebsoft.oa.entity.OaAppRenew;
import com.gxwebsoft.oa.param.OaAppRenewParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.oa.service.OaAppService;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 续费管理控制器
*
* @author 科技小王子
* @since 2024-09-10 20:57:41
*/
@Tag(name = "续费管理管理")
@RestController
@RequestMapping("/api/oa/oa-app-renew")
public class OaAppRenewController extends BaseController {
@Resource
private OaAppRenewService oaAppRenewService;
@Resource
private OaAppService oaAppService;
@Operation(summary = "分页查询续费管理")
@GetMapping("/page")
public ApiResult<PageResult<OaAppRenew>> page(OaAppRenewParam param) {
// 使用关联查询
return success(oaAppRenewService.pageRel(param));
}
@Operation(summary = "查询全部续费管理")
@GetMapping()
public ApiResult<List<OaAppRenew>> list(OaAppRenewParam param) {
PageParam<OaAppRenew, OaAppRenewParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(oaAppRenewService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(oaAppRenewService.listRel(param));
}
@PreAuthorize("hasAuthority('oa:oaAppRenew:list')")
@OperationLog
@Operation(summary = "根据id查询续费管理")
@GetMapping("/{id}")
public ApiResult<OaAppRenew> get(@PathVariable("id") Integer id) {
return success(oaAppRenewService.getById(id));
// 使用关联查询
//return success(oaAppRenewService.getByIdRel(id));
}
@Operation(summary = "添加续费管理")
@PostMapping()
public ApiResult<?> save(@RequestBody OaAppRenew oaAppRenew) {
// 记录当前登录用户id
User loginUser = getLoginUser();
if (loginUser != null) {
oaAppRenew.setUserId(loginUser.getUserId());
}
if (oaAppRenewService.save(oaAppRenew)) {
oaAppService.update(new LambdaUpdateWrapper<OaApp>().eq(OaApp::getAppId, oaAppRenew.getAppId()).set(OaApp::getShowExpiration, true));
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "修改续费管理")
@PutMapping()
public ApiResult<?> update(@RequestBody OaAppRenew oaAppRenew) {
if (oaAppRenewService.updateById(oaAppRenew)) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "删除续费管理")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaAppRenewService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@Operation(summary = "批量添加续费管理")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaAppRenew> list) {
if (oaAppRenewService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "批量修改续费管理")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaAppRenew> batchParam) {
if (batchParam.update(oaAppRenewService, "app_renew_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "批量删除续费管理")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaAppRenewService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
@Operation(summary = "统计信息")
@GetMapping("/data")
public ApiResult<Map<String, java.math.BigDecimal>> data() {
Map<String, java.math.BigDecimal> data = new HashMap<>();
final User loginUser = getLoginUser();
if(loginUser == null){
return fail("请先登录",null);
}
// 获取当前年份的起止时间
LocalDateTime startOfYear = LocalDateTime.now().withMonth(1).withDayOfMonth(1)
.withHour(0).withMinute(0).withSecond(0);
LocalDateTime endOfYear = startOfYear.plusYears(1).minusNanos(1);
// 今年应收续费总金额(到期时间在今年的记录)
java.math.BigDecimal totalNum1 = oaAppService.sumMoney(new LambdaQueryWrapper<OaApp>()
.between(OaApp::getExpirationTime, startOfYear, endOfYear));
// 今年已收续费总金额(到期时间在今年的记录)
java.math.BigDecimal totalNum2 = oaAppRenewService.sumMoney(new LambdaQueryWrapper<OaAppRenew>()
.between(OaAppRenew::getEndTime, startOfYear, endOfYear));
// 今年已收续费总金额(创建时间在今年且已支付的记录)
java.math.BigDecimal totalNum3 = oaAppRenewService.sumMoney(new LambdaQueryWrapper<OaAppRenew>()
.between(OaAppRenew::getCreateTime, startOfYear, endOfYear)
.isNotNull(OaAppRenew::getMoney));
data.put("totalNum1", totalNum1 != null ? totalNum1 : java.math.BigDecimal.ZERO);
data.put("totalNum2", totalNum2 != null ? totalNum2 : BigDecimal.ZERO);
return success(data);
}
}

View File

@@ -1,115 +0,0 @@
package com.gxwebsoft.oa.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.service.OaAppUrlService;
import com.gxwebsoft.oa.entity.OaAppUrl;
import com.gxwebsoft.oa.param.OaAppUrlParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 项目域名控制器
*
* @author 科技小王子
* @since 2024-09-10 20:57:41
*/
@Tag(name = "项目域名管理")
@RestController
@RequestMapping("/api/oa/oa-app-url")
public class OaAppUrlController extends BaseController {
@Resource
private OaAppUrlService oaAppUrlService;
@Operation(summary = "分页查询项目域名")
@GetMapping("/page")
public ApiResult<PageResult<OaAppUrl>> page(OaAppUrlParam param) {
// 使用关联查询
return success(oaAppUrlService.pageRel(param));
}
@Operation(summary = "查询全部项目域名")
@GetMapping()
public ApiResult<List<OaAppUrl>> list(OaAppUrlParam param) {
PageParam<OaAppUrl, OaAppUrlParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(oaAppUrlService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(oaAppUrlService.listRel(param));
}
@PreAuthorize("hasAuthority('oa:oaAppUrl:list')")
@OperationLog
@Operation(summary = "根据id查询项目域名")
@GetMapping("/{id}")
public ApiResult<OaAppUrl> get(@PathVariable("id") Integer id) {
return success(oaAppUrlService.getById(id));
// 使用关联查询
//return success(oaAppUrlService.getByIdRel(id));
}
@Operation(summary = "添加项目域名")
@PostMapping()
public ApiResult<?> save(@RequestBody OaAppUrl oaAppUrl) {
if (oaAppUrlService.save(oaAppUrl)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "修改项目域名")
@PutMapping()
public ApiResult<?> update(@RequestBody OaAppUrl oaAppUrl) {
if (oaAppUrlService.updateById(oaAppUrl)) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "删除项目域名")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaAppUrlService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@Operation(summary = "批量添加项目域名")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaAppUrl> list) {
if (oaAppUrlService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "批量修改项目域名")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaAppUrl> batchParam) {
if (batchParam.update(oaAppUrlService, "app_url_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "批量删除项目域名")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaAppUrlService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -1,111 +0,0 @@
package com.gxwebsoft.oa.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.service.OaAppUserService;
import com.gxwebsoft.oa.entity.OaAppUser;
import com.gxwebsoft.oa.param.OaAppUserParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 应用成员控制器
*
* @author 科技小王子
* @since 2024-09-10 20:57:41
*/
@Tag(name = "应用成员管理")
@RestController
@RequestMapping("/api/oa/oa-app-user")
public class OaAppUserController extends BaseController {
@Resource
private OaAppUserService oaAppUserService;
@Operation(summary = "分页查询应用成员")
@GetMapping("/page")
public ApiResult<PageResult<OaAppUser>> page(OaAppUserParam param) {
// 使用关联查询
return success(oaAppUserService.pageRel(param));
}
@Operation(summary = "查询全部应用成员")
@GetMapping()
public ApiResult<List<OaAppUser>> list(OaAppUserParam param) {
// 使用关联查询
return success(oaAppUserService.listRel(param));
}
@PreAuthorize("hasAuthority('oa:oaAppUser:list')")
@OperationLog
@Operation(summary = "根据id查询应用成员")
@GetMapping("/{id}")
public ApiResult<OaAppUser> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(oaAppUserService.getByIdRel(id));
}
@Operation(summary = "添加应用成员")
@PostMapping()
public ApiResult<?> save(@RequestBody OaAppUser oaAppUser) {
if (oaAppUserService.save(oaAppUser)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "修改应用成员")
@PutMapping()
public ApiResult<?> update(@RequestBody OaAppUser oaAppUser) {
if (oaAppUserService.updateById(oaAppUser)) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "删除应用成员")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaAppUserService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@Operation(summary = "批量添加应用成员")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaAppUser> list) {
if (oaAppUserService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "批量修改应用成员")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaAppUser> batchParam) {
if (batchParam.update(oaAppUserService, "app_user_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "批量删除应用成员")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaAppUserService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -1,124 +0,0 @@
package com.gxwebsoft.oa.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.service.OaAssetsCodeService;
import com.gxwebsoft.oa.entity.OaAssetsCode;
import com.gxwebsoft.oa.param.OaAssetsCodeParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 代码仓库控制器
*
* @author 科技小王子
* @since 2024-10-18 18:27:01
*/
@Tag(name = "代码仓库管理")
@RestController
@RequestMapping("/api/oa/oa-assets-code")
public class OaAssetsCodeController extends BaseController {
@Resource
private OaAssetsCodeService oaAssetsCodeService;
@PreAuthorize("hasAuthority('oa:oaAssetsCode:list')")
@Operation(summary = "分页查询代码仓库")
@GetMapping("/page")
public ApiResult<PageResult<OaAssetsCode>> page(OaAssetsCodeParam param) {
// 使用关联查询
return success(oaAssetsCodeService.pageRel(param));
}
@PreAuthorize("hasAuthority('oa:oaAssetsCode:list')")
@Operation(summary = "查询全部代码仓库")
@GetMapping()
public ApiResult<List<OaAssetsCode>> list(OaAssetsCodeParam param) {
// 使用关联查询
return success(oaAssetsCodeService.listRel(param));
}
@PreAuthorize("hasAuthority('oa:oaAssetsCode:list')")
@Operation(summary = "根据id查询代码仓库")
@GetMapping("/{id}")
public ApiResult<OaAssetsCode> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(oaAssetsCodeService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('oa:oaAssetsCode:save')")
@OperationLog
@Operation(summary = "添加代码仓库")
@PostMapping()
public ApiResult<?> save(@RequestBody OaAssetsCode oaAssetsCode) {
// 记录当前登录用户id
User loginUser = getLoginUser();
if (loginUser != null) {
oaAssetsCode.setUserId(loginUser.getUserId());
}
if (oaAssetsCodeService.save(oaAssetsCode)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsCode:update')")
@Operation(summary = "修改代码仓库")
@PutMapping()
public ApiResult<?> update(@RequestBody OaAssetsCode oaAssetsCode) {
if (oaAssetsCodeService.updateById(oaAssetsCode)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsCode:remove')")
@Operation(summary = "删除代码仓库")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaAssetsCodeService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsCode:save')")
@Operation(summary = "批量添加代码仓库")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaAssetsCode> list) {
if (oaAssetsCodeService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsCode:update')")
@Operation(summary = "批量修改代码仓库")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaAssetsCode> batchParam) {
if (batchParam.update(oaAssetsCodeService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsCode:remove')")
@Operation(summary = "批量删除代码仓库")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaAssetsCodeService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -1,123 +0,0 @@
package com.gxwebsoft.oa.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.service.OaAssetsService;
import com.gxwebsoft.oa.entity.OaAssets;
import com.gxwebsoft.oa.param.OaAssetsParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 云服务器控制器
*
* @author 科技小王子
* @since 2024-10-18 18:34:15
*/
@Tag(name = "云服务器管理")
@RestController
@RequestMapping("/api/oa/oa-assets")
public class OaAssetsController extends BaseController {
@Resource
private OaAssetsService oaAssetsService;
@PreAuthorize("hasAuthority('oa:oaAssets:list')")
@Operation(summary = "分页查询云服务器")
@GetMapping("/page")
public ApiResult<PageResult<OaAssets>> page(OaAssetsParam param) {
// 使用关联查询
return success(oaAssetsService.pageRel(param));
}
@PreAuthorize("hasAuthority('oa:oaAssets:list')")
@Operation(summary = "查询全部云服务器")
@GetMapping()
public ApiResult<List<OaAssets>> list(OaAssetsParam param) {
// 使用关联查询
return success(oaAssetsService.listRel(param));
}
@PreAuthorize("hasAuthority('oa:oaAssets:list')")
@Operation(summary = "根据id查询云服务器")
@GetMapping("/{id}")
public ApiResult<OaAssets> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(oaAssetsService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('oa:oaAssets:save')")
@OperationLog
@Operation(summary = "添加云服务器")
@PostMapping()
public ApiResult<?> save(@RequestBody OaAssets oaAssets) {
// 记录当前登录用户id
User loginUser = getLoginUser();
if (loginUser != null) {
oaAssets.setUserId(loginUser.getUserId());
}
if (oaAssetsService.save(oaAssets)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('oa:oaAssets:update')")
@Operation(summary = "修改云服务器")
@PutMapping()
public ApiResult<?> update(@RequestBody OaAssets oaAssets) {
if (oaAssetsService.updateById(oaAssets)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('oa:oaAssets:remvoe')")
@Operation(summary = "删除云服务器")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaAssetsService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('oa:oaAssets:save')")
@Operation(summary = "批量添加云服务器")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaAssets> list) {
if (oaAssetsService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('oa:oaAssets:update')")
@Operation(summary = "批量修改云服务器")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaAssets> batchParam) {
if (batchParam.update(oaAssetsService, "assets_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('oa:oaAssets:remove')")
@Operation(summary = "批量删除云服务器")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaAssetsService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -1,124 +0,0 @@
package com.gxwebsoft.oa.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.service.OaAssetsDomainService;
import com.gxwebsoft.oa.entity.OaAssetsDomain;
import com.gxwebsoft.oa.param.OaAssetsDomainParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 域名控制器
*
* @author 科技小王子
* @since 2024-10-18 18:27:02
*/
@Tag(name = "域名管理")
@RestController
@RequestMapping("/api/oa/oa-assets-domain")
public class OaAssetsDomainController extends BaseController {
@Resource
private OaAssetsDomainService oaAssetsDomainService;
@PreAuthorize("hasAuthority('oa:oaAssetsDomain:list')")
@Operation(summary = "分页查询域名")
@GetMapping("/page")
public ApiResult<PageResult<OaAssetsDomain>> page(OaAssetsDomainParam param) {
// 使用关联查询
return success(oaAssetsDomainService.pageRel(param));
}
@PreAuthorize("hasAuthority('oa:oaAssetsDomain:list')")
@Operation(summary = "查询全部域名")
@GetMapping()
public ApiResult<List<OaAssetsDomain>> list(OaAssetsDomainParam param) {
// 使用关联查询
return success(oaAssetsDomainService.listRel(param));
}
@PreAuthorize("hasAuthority('oa:oaAssetsDomain:list')")
@Operation(summary = "根据id查询域名")
@GetMapping("/{id}")
public ApiResult<OaAssetsDomain> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(oaAssetsDomainService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('oa:oaAssetsDomain:save')")
@OperationLog
@Operation(summary = "添加域名")
@PostMapping()
public ApiResult<?> save(@RequestBody OaAssetsDomain oaAssetsDomain) {
// 记录当前登录用户id
User loginUser = getLoginUser();
if (loginUser != null) {
oaAssetsDomain.setUserId(loginUser.getUserId());
}
if (oaAssetsDomainService.save(oaAssetsDomain)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsDomain:update')")
@Operation(summary = "修改域名")
@PutMapping()
public ApiResult<?> update(@RequestBody OaAssetsDomain oaAssetsDomain) {
if (oaAssetsDomainService.updateById(oaAssetsDomain)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsDomain:remove')")
@Operation(summary = "删除域名")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaAssetsDomainService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsDomain:save')")
@Operation(summary = "批量添加域名")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaAssetsDomain> list) {
if (oaAssetsDomainService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsDomain:update')")
@Operation(summary = "批量修改域名")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaAssetsDomain> batchParam) {
if (batchParam.update(oaAssetsDomainService, "domain_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsDomain:remove')")
@Operation(summary = "批量删除域名")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaAssetsDomainService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -1,125 +0,0 @@
package com.gxwebsoft.oa.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.service.OaAssetsEmailService;
import com.gxwebsoft.oa.entity.OaAssetsEmail;
import com.gxwebsoft.oa.param.OaAssetsEmailParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 企业邮箱记录表控制器
*
* @author 科技小王子
* @since 2024-10-18 18:27:02
*/
@Tag(name = "企业邮箱记录表管理")
@RestController
@RequestMapping("/api/oa/oa-assets-email")
public class OaAssetsEmailController extends BaseController {
@Resource
private OaAssetsEmailService oaAssetsEmailService;
@PreAuthorize("hasAuthority('oa:oaAssetsEmail:list')")
@Operation(summary = "分页查询企业邮箱记录表")
@GetMapping("/page")
public ApiResult<PageResult<OaAssetsEmail>> page(OaAssetsEmailParam param) {
// 使用关联查询
return success(oaAssetsEmailService.pageRel(param));
}
@PreAuthorize("hasAuthority('oa:oaAssetsEmail:list')")
@Operation(summary = "查询全部企业邮箱记录表")
@GetMapping()
public ApiResult<List<OaAssetsEmail>> list(OaAssetsEmailParam param) {
// 使用关联查询
return success(oaAssetsEmailService.listRel(param));
}
@PreAuthorize("hasAuthority('oa:oaAssetsEmail:list')")
@OperationLog
@Operation(summary = "根据id查询企业邮箱记录表")
@GetMapping("/{id}")
public ApiResult<OaAssetsEmail> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(oaAssetsEmailService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('oa:oaAssetsEmail:save')")
@OperationLog
@Operation(summary = "添加企业邮箱记录表")
@PostMapping()
public ApiResult<?> save(@RequestBody OaAssetsEmail oaAssetsEmail) {
// 记录当前登录用户id
User loginUser = getLoginUser();
if (loginUser != null) {
oaAssetsEmail.setUserId(loginUser.getUserId());
}
if (oaAssetsEmailService.save(oaAssetsEmail)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsEmail:update')")
@Operation(summary = "修改企业邮箱记录表")
@PutMapping()
public ApiResult<?> update(@RequestBody OaAssetsEmail oaAssetsEmail) {
if (oaAssetsEmailService.updateById(oaAssetsEmail)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsEmail:remove')")
@Operation(summary = "删除企业邮箱记录表")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaAssetsEmailService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsEmail:save')")
@Operation(summary = "批量添加企业邮箱记录表")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaAssetsEmail> list) {
if (oaAssetsEmailService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsEmail:update')")
@Operation(summary = "批量修改企业邮箱记录表")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaAssetsEmail> batchParam) {
if (batchParam.update(oaAssetsEmailService, "email_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsEmail:remove')")
@Operation(summary = "批量删除企业邮箱记录表")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaAssetsEmailService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -1,122 +0,0 @@
package com.gxwebsoft.oa.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.service.OaAssetsMysqlService;
import com.gxwebsoft.oa.entity.OaAssetsMysql;
import com.gxwebsoft.oa.param.OaAssetsMysqlParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 云数据库控制器
*
* @author 科技小王子
* @since 2024-10-18 19:00:20
*/
@Tag(name = "云数据库管理")
@RestController
@RequestMapping("/api/oa/oa-assets-mysql")
public class OaAssetsMysqlController extends BaseController {
@Resource
private OaAssetsMysqlService oaAssetsMysqlService;
@PreAuthorize("hasAuthority('oa:oaAssetsMysql:list')")
@Operation(summary = "分页查询云数据库")
@GetMapping("/page")
public ApiResult<PageResult<OaAssetsMysql>> page(OaAssetsMysqlParam param) {
// 使用关联查询
return success(oaAssetsMysqlService.pageRel(param));
}
@PreAuthorize("hasAuthority('oa:oaAssetsMysql:list')")
@Operation(summary = "查询全部云数据库")
@GetMapping()
public ApiResult<List<OaAssetsMysql>> list(OaAssetsMysqlParam param) {
// 使用关联查询
return success(oaAssetsMysqlService.listRel(param));
}
@PreAuthorize("hasAuthority('oa:oaAssetsMysql:list')")
@Operation(summary = "根据id查询云数据库")
@GetMapping("/{id}")
public ApiResult<OaAssetsMysql> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(oaAssetsMysqlService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('oa:oaAssetsMysql:save')")
@Operation(summary = "添加云数据库")
@OperationLog
@PostMapping()
public ApiResult<?> save(@RequestBody OaAssetsMysql oaAssetsMysql) {
// 记录当前登录用户id
User loginUser = getLoginUser();
if (loginUser != null) {
oaAssetsMysql.setUserId(loginUser.getUserId());
}
if (oaAssetsMysqlService.save(oaAssetsMysql)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsMysql:update')")
@Operation(summary = "修改云数据库")
@PutMapping()
public ApiResult<?> update(@RequestBody OaAssetsMysql oaAssetsMysql) {
if (oaAssetsMysqlService.updateById(oaAssetsMysql)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsMysql:remove')")
@Operation(summary = "删除云数据库")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaAssetsMysqlService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsMysql:save')")
@Operation(summary = "批量添加云数据库")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaAssetsMysql> list) {
if (oaAssetsMysqlService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsMysql:update')")
@Operation(summary = "批量修改云数据库")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaAssetsMysql> batchParam) {
if (batchParam.update(oaAssetsMysqlService, "mysql_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsMysql:remove')")
@Operation(summary = "批量删除云数据库")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaAssetsMysqlService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -1,118 +0,0 @@
package com.gxwebsoft.oa.controller;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.entity.OaAssetsServer;
import com.gxwebsoft.oa.param.OaAssetsServerParam;
import com.gxwebsoft.oa.service.OaAssetsServerService;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 服务控制器
*
* @author 科技小王子
* @since 2024-10-21 19:15:26
*/
@Tag(name = "服务管理")
@RestController
@RequestMapping("/api/oa/oa-assets-server")
public class OaAssetsServerController extends BaseController {
@Resource
private OaAssetsServerService oaAssetsServerService;
@Operation(summary = "分页查询服务")
@GetMapping("/page")
public ApiResult<PageResult<OaAssetsServer>> page(OaAssetsServerParam param) {
// 使用关联查询
return success(oaAssetsServerService.pageRel(param));
}
@Operation(summary = "查询全部服务")
@GetMapping()
public ApiResult<List<OaAssetsServer>> list(OaAssetsServerParam param) {
// 使用关联查询
return success(oaAssetsServerService.listRel(param));
}
@Operation(summary = "根据id查询服务")
@GetMapping("/{id}")
public ApiResult<OaAssetsServer> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(oaAssetsServerService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('oa:oaAssetsServer:save')")
@Operation(summary = "添加服务")
@PostMapping()
public ApiResult<?> save(@RequestBody OaAssetsServer oaAssetsServer) {
// 记录当前登录用户id
User loginUser = getLoginUser();
if (loginUser != null) {
oaAssetsServer.setUserId(loginUser.getUserId());
oaAssetsServer.setTenantId(loginUser.getTenantId());
}
if (oaAssetsServerService.save(oaAssetsServer)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsServer:update')")
@Operation(summary = "修改服务")
@PutMapping()
public ApiResult<?> update(@RequestBody OaAssetsServer oaAssetsServer) {
if (oaAssetsServerService.updateById(oaAssetsServer)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsServer:remove')")
@Operation(summary = "删除服务")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaAssetsServerService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsServer:save')")
@Operation(summary = "批量添加服务")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaAssetsServer> list) {
if (oaAssetsServerService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsServer:update')")
@Operation(summary = "批量修改服务")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaAssetsServer> batchParam) {
if (batchParam.update(oaAssetsServerService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsServer:remove')")
@Operation(summary = "批量删除服务")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaAssetsServerService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -1,124 +0,0 @@
package com.gxwebsoft.oa.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.service.OaAssetsSiteService;
import com.gxwebsoft.oa.entity.OaAssetsSite;
import com.gxwebsoft.oa.param.OaAssetsSiteParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 网站信息记录表控制器
*
* @author 科技小王子
* @since 2024-10-18 18:27:02
*/
@Tag(name = "网站信息记录表管理")
@RestController
@RequestMapping("/api/oa/oa-assets-site")
public class OaAssetsSiteController extends BaseController {
@Resource
private OaAssetsSiteService oaAssetsSiteService;
@PreAuthorize("hasAuthority('oa:oaAssetsSite:list')")
@Operation(summary = "分页查询网站信息记录表")
@GetMapping("/page")
public ApiResult<PageResult<OaAssetsSite>> page(OaAssetsSiteParam param) {
// 使用关联查询
return success(oaAssetsSiteService.pageRel(param));
}
@PreAuthorize("hasAuthority('oa:oaAssetsSite:list')")
@Operation(summary = "查询全部网站信息记录表")
@GetMapping()
public ApiResult<List<OaAssetsSite>> list(OaAssetsSiteParam param) {
// 使用关联查询
return success(oaAssetsSiteService.listRel(param));
}
@PreAuthorize("hasAuthority('oa:oaAssetsSite:list')")
@Operation(summary = "根据id查询网站信息记录表")
@GetMapping("/{id}")
public ApiResult<OaAssetsSite> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(oaAssetsSiteService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('oa:oaAssetsSite:save')")
@OperationLog
@Operation(summary = "添加网站信息记录表")
@PostMapping()
public ApiResult<?> save(@RequestBody OaAssetsSite oaAssetsSite) {
// 记录当前登录用户id
User loginUser = getLoginUser();
if (loginUser != null) {
oaAssetsSite.setUserId(loginUser.getUserId());
}
if (oaAssetsSiteService.save(oaAssetsSite)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsSite:update')")
@Operation(summary = "修改网站信息记录表")
@PutMapping()
public ApiResult<?> update(@RequestBody OaAssetsSite oaAssetsSite) {
if (oaAssetsSiteService.updateById(oaAssetsSite)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsSite:remove')")
@Operation(summary = "删除网站信息记录表")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaAssetsSiteService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsSite:save')")
@Operation(summary = "批量添加网站信息记录表")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaAssetsSite> list) {
if (oaAssetsSiteService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsSite:update')")
@Operation(summary = "批量修改网站信息记录表")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaAssetsSite> batchParam) {
if (batchParam.update(oaAssetsSiteService, "website_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsSite:remove')")
@Operation(summary = "批量删除网站信息记录表")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaAssetsSiteService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -1,123 +0,0 @@
package com.gxwebsoft.oa.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.service.OaAssetsSoftwareCertService;
import com.gxwebsoft.oa.entity.OaAssetsSoftwareCert;
import com.gxwebsoft.oa.param.OaAssetsSoftwareCertParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 计算机软件著作权登记控制器
*
* @author 科技小王子
* @since 2024-10-18 19:46:21
*/
@Tag(name = "计算机软件著作权登记管理")
@RestController
@RequestMapping("/api/oa/oa-assets-software-cert")
public class OaAssetsSoftwareCertController extends BaseController {
@Resource
private OaAssetsSoftwareCertService oaAssetsSoftwareCertService;
@PreAuthorize("hasAuthority('oa:oaAssetsSoftwareCert:list')")
@Operation(summary = "分页查询计算机软件著作权登记")
@GetMapping("/page")
public ApiResult<PageResult<OaAssetsSoftwareCert>> page(OaAssetsSoftwareCertParam param) {
// 使用关联查询
return success(oaAssetsSoftwareCertService.pageRel(param));
}
@PreAuthorize("hasAuthority('oa:oaAssetsSoftwareCert:list')")
@Operation(summary = "查询全部计算机软件著作权登记")
@GetMapping()
public ApiResult<List<OaAssetsSoftwareCert>> list(OaAssetsSoftwareCertParam param) {
// 使用关联查询
return success(oaAssetsSoftwareCertService.listRel(param));
}
@PreAuthorize("hasAuthority('oa:oaAssetsSoftwareCert:list')")
@Operation(summary = "根据id查询计算机软件著作权登记")
@GetMapping("/{id}")
public ApiResult<OaAssetsSoftwareCert> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(oaAssetsSoftwareCertService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('oa:oaAssetsSoftwareCert:save')")
@OperationLog
@Operation(summary = "添加计算机软件著作权登记")
@PostMapping()
public ApiResult<?> save(@RequestBody OaAssetsSoftwareCert oaAssetsSoftwareCert) {
// 记录当前登录用户id
User loginUser = getLoginUser();
if (loginUser != null) {
oaAssetsSoftwareCert.setUserId(loginUser.getUserId());
}
if (oaAssetsSoftwareCertService.save(oaAssetsSoftwareCert)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsSoftwareCert:update')")
@Operation(summary = "修改计算机软件著作权登记")
@PutMapping()
public ApiResult<?> update(@RequestBody OaAssetsSoftwareCert oaAssetsSoftwareCert) {
if (oaAssetsSoftwareCertService.updateById(oaAssetsSoftwareCert)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsSoftwareCert:remove')")
@Operation(summary = "删除计算机软件著作权登记")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaAssetsSoftwareCertService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsSoftwareCert:save')")
@Operation(summary = "批量添加计算机软件著作权登记")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaAssetsSoftwareCert> list) {
if (oaAssetsSoftwareCertService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsSoftwareCert:update')")
@Operation(summary = "批量修改计算机软件著作权登记")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaAssetsSoftwareCert> batchParam) {
if (batchParam.update(oaAssetsSoftwareCertService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsSoftwareCert:remove')")
@Operation(summary = "批量删除计算机软件著作权登记")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaAssetsSoftwareCertService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -1,125 +0,0 @@
package com.gxwebsoft.oa.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.service.OaAssetsSslService;
import com.gxwebsoft.oa.entity.OaAssetsSsl;
import com.gxwebsoft.oa.param.OaAssetsSslParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.List;
/**
* ssl证书控制器
*
* @author 科技小王子
* @since 2024-10-18 19:25:40
*/
@Tag(name = "ssl证书管理")
@RestController
@RequestMapping("/api/oa/oa-assets-ssl")
public class OaAssetsSslController extends BaseController {
@Resource
private OaAssetsSslService oaAssetsSslService;
@PreAuthorize("hasAuthority('oa:oaAssetsSsl:list')")
@Operation(summary = "分页查询ssl证书")
@GetMapping("/page")
public ApiResult<PageResult<OaAssetsSsl>> page(OaAssetsSslParam param) {
// 使用关联查询
return success(oaAssetsSslService.pageRel(param));
}
@PreAuthorize("hasAuthority('oa:oaAssetsSsl:list')")
@Operation(summary = "查询全部ssl证书")
@GetMapping()
public ApiResult<List<OaAssetsSsl>> list(OaAssetsSslParam param) {
// 使用关联查询
return success(oaAssetsSslService.listRel(param));
}
@PreAuthorize("hasAuthority('oa:oaAssetsSsl:list')")
@OperationLog
@Operation(summary = "根据id查询ssl证书")
@GetMapping("/{id}")
public ApiResult<OaAssetsSsl> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(oaAssetsSslService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('oa:oaAssetsSsl:save')")
@Operation(summary = "添加ssl证书")
@PostMapping()
public ApiResult<?> save(@RequestBody OaAssetsSsl oaAssetsSsl) {
// 记录当前登录用户id
User loginUser = getLoginUser();
if (loginUser != null) {
oaAssetsSsl.setUserId(loginUser.getUserId());
oaAssetsSsl.setTenantId(loginUser.getTenantId());
}
if (oaAssetsSslService.save(oaAssetsSsl)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsSsl:update')")
@Operation(summary = "修改ssl证书")
@PutMapping()
public ApiResult<?> update(@RequestBody OaAssetsSsl oaAssetsSsl) {
if (oaAssetsSslService.updateById(oaAssetsSsl)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsSsl:remove')")
@Operation(summary = "删除ssl证书")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaAssetsSslService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsSsl:save')")
@Operation(summary = "批量添加ssl证书")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaAssetsSsl> list) {
if (oaAssetsSslService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsSsl:update')")
@Operation(summary = "批量修改ssl证书")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaAssetsSsl> batchParam) {
if (batchParam.update(oaAssetsSslService, "ssl_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsSsl:remove')")
@Operation(summary = "批量删除ssl证书")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaAssetsSslService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -1,121 +0,0 @@
package com.gxwebsoft.oa.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.service.OaAssetsTrademarkService;
import com.gxwebsoft.oa.entity.OaAssetsTrademark;
import com.gxwebsoft.oa.param.OaAssetsTrademarkParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 商标注册控制器
*
* @author 科技小王子
* @since 2024-10-18 19:46:21
*/
@Tag(name = "商标注册管理")
@RestController
@RequestMapping("/api/oa/oa-assets-trademark")
public class OaAssetsTrademarkController extends BaseController {
@Resource
private OaAssetsTrademarkService oaAssetsTrademarkService;
@PreAuthorize("hasAuthority('oa:oaAssetsTrademark:list')")
@Operation(summary = "分页查询商标注册")
@GetMapping("/page")
public ApiResult<PageResult<OaAssetsTrademark>> page(OaAssetsTrademarkParam param) {
// 使用关联查询
return success(oaAssetsTrademarkService.pageRel(param));
}
@PreAuthorize("hasAuthority('oa:oaAssetsTrademark:list')")
@Operation(summary = "查询全部商标注册")
@GetMapping()
public ApiResult<List<OaAssetsTrademark>> list(OaAssetsTrademarkParam param) {
// 使用关联查询
return success(oaAssetsTrademarkService.listRel(param));
}
@PreAuthorize("hasAuthority('oa:oaAssetsTrademark:list')")
@Operation(summary = "根据id查询商标注册")
@GetMapping("/{id}")
public ApiResult<OaAssetsTrademark> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(oaAssetsTrademarkService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('oa:oaAssetsTrademark:save')")
@Operation(summary = "添加商标注册")
@OperationLog
@PostMapping()
public ApiResult<?> save(@RequestBody OaAssetsTrademark oaAssetsTrademark) {
// 记录当前登录用户id
User loginUser = getLoginUser();
if (loginUser != null) {
oaAssetsTrademark.setUserId(loginUser.getUserId());
}
if (oaAssetsTrademarkService.save(oaAssetsTrademark)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsTrademark:update')")
@Operation(summary = "修改商标注册")
@PutMapping()
public ApiResult<?> update(@RequestBody OaAssetsTrademark oaAssetsTrademark) {
if (oaAssetsTrademarkService.updateById(oaAssetsTrademark)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsTrademark:remove')")
@Operation(summary = "删除商标注册")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaAssetsTrademarkService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsTrademark:save')")
@Operation(summary = "批量添加商标注册")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaAssetsTrademark> list) {
if (oaAssetsTrademarkService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsTrademark:update')")
@Operation(summary = "批量修改商标注册")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaAssetsTrademark> batchParam) {
if (batchParam.update(oaAssetsTrademarkService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsTrademark:remove')")
@Operation(summary = "批量删除商标注册")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaAssetsTrademarkService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -1,120 +0,0 @@
package com.gxwebsoft.oa.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.service.OaAssetsUserService;
import com.gxwebsoft.oa.entity.OaAssetsUser;
import com.gxwebsoft.oa.param.OaAssetsUserParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 服务器成员管理控制器
*
* @author 科技小王子
* @since 2024-09-10 20:57:41
*/
@Tag(name = "服务器成员管理管理")
@RestController
@RequestMapping("/api/oa/oa-assets-user")
public class OaAssetsUserController extends BaseController {
@Resource
private OaAssetsUserService oaAssetsUserService;
@Operation(summary = "分页查询服务器成员管理")
@GetMapping("/page")
public ApiResult<PageResult<OaAssetsUser>> page(OaAssetsUserParam param) {
// 使用关联查询
return success(oaAssetsUserService.pageRel(param));
}
@Operation(summary = "查询全部服务器成员管理")
@GetMapping()
public ApiResult<List<OaAssetsUser>> list(OaAssetsUserParam param) {
PageParam<OaAssetsUser, OaAssetsUserParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(oaAssetsUserService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(oaAssetsUserService.listRel(param));
}
@PreAuthorize("hasAuthority('oa:oaAssetsUser:list')")
@OperationLog
@Operation(summary = "根据id查询服务器成员管理")
@GetMapping("/{id}")
public ApiResult<OaAssetsUser> get(@PathVariable("id") Integer id) {
return success(oaAssetsUserService.getById(id));
// 使用关联查询
//return success(oaAssetsUserService.getByIdRel(id));
}
@Operation(summary = "添加服务器成员管理")
@PostMapping()
public ApiResult<?> save(@RequestBody OaAssetsUser oaAssetsUser) {
// 记录当前登录用户id
User loginUser = getLoginUser();
if (loginUser != null) {
oaAssetsUser.setUserId(loginUser.getUserId());
}
if (oaAssetsUserService.save(oaAssetsUser)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "修改服务器成员管理")
@PutMapping()
public ApiResult<?> update(@RequestBody OaAssetsUser oaAssetsUser) {
if (oaAssetsUserService.updateById(oaAssetsUser)) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "删除服务器成员管理")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaAssetsUserService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@Operation(summary = "批量添加服务器成员管理")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaAssetsUser> list) {
if (oaAssetsUserService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "批量修改服务器成员管理")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaAssetsUser> batchParam) {
if (batchParam.update(oaAssetsUserService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "批量删除服务器成员管理")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaAssetsUserService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -1,124 +0,0 @@
package com.gxwebsoft.oa.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.service.OaAssetsVhostService;
import com.gxwebsoft.oa.entity.OaAssetsVhost;
import com.gxwebsoft.oa.param.OaAssetsVhostParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 虚拟主机记录表控制器
*
* @author 科技小王子
* @since 2024-10-18 18:27:02
*/
@Tag(name = "虚拟主机记录表管理")
@RestController
@RequestMapping("/api/oa/oa-assets-vhost")
public class OaAssetsVhostController extends BaseController {
@Resource
private OaAssetsVhostService oaAssetsVhostService;
@PreAuthorize("hasAuthority('oa:oaAssetsVhost:list')")
@Operation(summary = "分页查询虚拟主机记录表")
@GetMapping("/page")
public ApiResult<PageResult<OaAssetsVhost>> page(OaAssetsVhostParam param) {
// 使用关联查询
return success(oaAssetsVhostService.pageRel(param));
}
@PreAuthorize("hasAuthority('oa:oaAssetsVhost:list')")
@Operation(summary = "查询全部虚拟主机记录表")
@GetMapping()
public ApiResult<List<OaAssetsVhost>> list(OaAssetsVhostParam param) {
// 使用关联查询
return success(oaAssetsVhostService.listRel(param));
}
@PreAuthorize("hasAuthority('oa:oaAssetsVhost:list')")
@Operation(summary = "根据id查询虚拟主机记录表")
@GetMapping("/{id}")
public ApiResult<OaAssetsVhost> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(oaAssetsVhostService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('oa:oaAssetsVhost:save')")
@OperationLog
@Operation(summary = "添加虚拟主机记录表")
@PostMapping()
public ApiResult<?> save(@RequestBody OaAssetsVhost oaAssetsVhost) {
// 记录当前登录用户id
User loginUser = getLoginUser();
if (loginUser != null) {
oaAssetsVhost.setUserId(loginUser.getUserId());
}
if (oaAssetsVhostService.save(oaAssetsVhost)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsVhost:update')")
@Operation(summary = "修改虚拟主机记录表")
@PutMapping()
public ApiResult<?> update(@RequestBody OaAssetsVhost oaAssetsVhost) {
if (oaAssetsVhostService.updateById(oaAssetsVhost)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsVhost:remove')")
@Operation(summary = "删除虚拟主机记录表")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaAssetsVhostService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsVhost:save')")
@Operation(summary = "批量添加虚拟主机记录表")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaAssetsVhost> list) {
if (oaAssetsVhostService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsVhost:update')")
@Operation(summary = "批量修改虚拟主机记录表")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaAssetsVhost> batchParam) {
if (batchParam.update(oaAssetsVhostService, "vhost_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('oa:oaAssetsVhost:remove')")
@Operation(summary = "批量删除虚拟主机记录表")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaAssetsVhostService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -1,114 +0,0 @@
package com.gxwebsoft.oa.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.oa.service.OaCompanyService;
import com.gxwebsoft.oa.entity.OaCompany;
import com.gxwebsoft.oa.param.OaCompanyParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 企业信息控制器
*
* @author 科技小王子
* @since 2024-09-20 12:33:12
*/
@Tag(name = "企业信息管理")
@RestController
@RequestMapping("/api/oa/oa-company")
public class OaCompanyController extends BaseController {
@Resource
private OaCompanyService oaCompanyService;
@Operation(summary = "分页查询企业信息")
@GetMapping("/page")
public ApiResult<PageResult<OaCompany>> page(OaCompanyParam param) {
// 使用关联查询
return success(oaCompanyService.pageRel(param));
}
@Operation(summary = "查询全部企业信息")
@GetMapping()
public ApiResult<List<OaCompany>> list(OaCompanyParam param) {
PageParam<OaCompany, OaCompanyParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(oaCompanyService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(oaCompanyService.listRel(param));
}
@PreAuthorize("hasAuthority('oa:oaCompany:list')")
@OperationLog
@Operation(summary = "根据id查询企业信息")
@GetMapping("/{id}")
public ApiResult<OaCompany> get(@PathVariable("id") Integer id) {
return success(oaCompanyService.getById(id));
// 使用关联查询
//return success(oaCompanyService.getByIdRel(id));
}
@Operation(summary = "添加企业信息")
@PostMapping()
public ApiResult<?> save(@RequestBody OaCompany oaCompany) {
if (oaCompanyService.save(oaCompany)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "修改企业信息")
@PutMapping()
public ApiResult<?> update(@RequestBody OaCompany oaCompany) {
if (oaCompanyService.updateById(oaCompany)) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "删除企业信息")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaCompanyService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@Operation(summary = "批量添加企业信息")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaCompany> list) {
if (oaCompanyService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "批量修改企业信息")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaCompany> batchParam) {
if (batchParam.update(oaCompanyService, "company_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "批量删除企业信息")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaCompanyService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -1,114 +0,0 @@
package com.gxwebsoft.oa.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.oa.service.OaCompanyFieldService;
import com.gxwebsoft.oa.entity.OaCompanyField;
import com.gxwebsoft.oa.param.OaCompanyFieldParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 企业参数控制器
*
* @author 科技小王子
* @since 2024-09-20 12:33:12
*/
@Tag(name = "企业参数管理")
@RestController
@RequestMapping("/api/oa/oa-company-field")
public class OaCompanyFieldController extends BaseController {
@Resource
private OaCompanyFieldService oaCompanyFieldService;
@Operation(summary = "分页查询企业参数")
@GetMapping("/page")
public ApiResult<PageResult<OaCompanyField>> page(OaCompanyFieldParam param) {
// 使用关联查询
return success(oaCompanyFieldService.pageRel(param));
}
@Operation(summary = "查询全部企业参数")
@GetMapping()
public ApiResult<List<OaCompanyField>> list(OaCompanyFieldParam param) {
PageParam<OaCompanyField, OaCompanyFieldParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(oaCompanyFieldService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(oaCompanyFieldService.listRel(param));
}
@PreAuthorize("hasAuthority('oa:oaCompanyField:list')")
@OperationLog
@Operation(summary = "根据id查询企业参数")
@GetMapping("/{id}")
public ApiResult<OaCompanyField> get(@PathVariable("id") Integer id) {
return success(oaCompanyFieldService.getById(id));
// 使用关联查询
//return success(oaCompanyFieldService.getByIdRel(id));
}
@Operation(summary = "添加企业参数")
@PostMapping()
public ApiResult<?> save(@RequestBody OaCompanyField oaCompanyField) {
if (oaCompanyFieldService.save(oaCompanyField)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "修改企业参数")
@PutMapping()
public ApiResult<?> update(@RequestBody OaCompanyField oaCompanyField) {
if (oaCompanyFieldService.updateById(oaCompanyField)) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "删除企业参数")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaCompanyFieldService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@Operation(summary = "批量添加企业参数")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaCompanyField> list) {
if (oaCompanyFieldService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "批量修改企业参数")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaCompanyField> batchParam) {
if (batchParam.update(oaCompanyFieldService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "批量删除企业参数")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaCompanyFieldService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -1,114 +0,0 @@
package com.gxwebsoft.oa.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.oa.service.OaCompanyUserService;
import com.gxwebsoft.oa.entity.OaCompanyUser;
import com.gxwebsoft.oa.param.OaCompanyUserParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 成员管理控制器
*
* @author 科技小王子
* @since 2024-09-20 12:33:12
*/
@Tag(name = "成员管理管理")
@RestController
@RequestMapping("/api/oa/oa-company-user")
public class OaCompanyUserController extends BaseController {
@Resource
private OaCompanyUserService oaCompanyUserService;
@Operation(summary = "分页查询成员管理")
@GetMapping("/page")
public ApiResult<PageResult<OaCompanyUser>> page(OaCompanyUserParam param) {
// 使用关联查询
return success(oaCompanyUserService.pageRel(param));
}
@Operation(summary = "查询全部成员管理")
@GetMapping()
public ApiResult<List<OaCompanyUser>> list(OaCompanyUserParam param) {
PageParam<OaCompanyUser, OaCompanyUserParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(oaCompanyUserService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(oaCompanyUserService.listRel(param));
}
@PreAuthorize("hasAuthority('oa:oaCompanyUser:list')")
@OperationLog
@Operation(summary = "根据id查询成员管理")
@GetMapping("/{id}")
public ApiResult<OaCompanyUser> get(@PathVariable("id") Integer id) {
return success(oaCompanyUserService.getById(id));
// 使用关联查询
//return success(oaCompanyUserService.getByIdRel(id));
}
@Operation(summary = "添加成员管理")
@PostMapping()
public ApiResult<?> save(@RequestBody OaCompanyUser oaCompanyUser) {
if (oaCompanyUserService.save(oaCompanyUser)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "修改成员管理")
@PutMapping()
public ApiResult<?> update(@RequestBody OaCompanyUser oaCompanyUser) {
if (oaCompanyUserService.updateById(oaCompanyUser)) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "删除成员管理")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaCompanyUserService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@Operation(summary = "批量添加成员管理")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaCompanyUser> list) {
if (oaCompanyUserService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "批量修改成员管理")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaCompanyUser> batchParam) {
if (batchParam.update(oaCompanyUserService, "company_user_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "批量删除成员管理")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaCompanyUserService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -1,120 +0,0 @@
package com.gxwebsoft.oa.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.service.OaLinkService;
import com.gxwebsoft.oa.entity.OaLink;
import com.gxwebsoft.oa.param.OaLinkParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 常用链接控制器
*
* @author 科技小王子
* @since 2024-09-10 20:57:42
*/
@Tag(name = "常用链接管理")
@RestController
@RequestMapping("/api/oa/oa-link")
public class OaLinkController extends BaseController {
@Resource
private OaLinkService oaLinkService;
@Operation(summary = "分页查询常用链接")
@GetMapping("/page")
public ApiResult<PageResult<OaLink>> page(OaLinkParam param) {
// 使用关联查询
return success(oaLinkService.pageRel(param));
}
@Operation(summary = "查询全部常用链接")
@GetMapping()
public ApiResult<List<OaLink>> list(OaLinkParam param) {
PageParam<OaLink, OaLinkParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(oaLinkService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(oaLinkService.listRel(param));
}
@PreAuthorize("hasAuthority('oa:oaLink:list')")
@OperationLog
@Operation(summary = "根据id查询常用链接")
@GetMapping("/{id}")
public ApiResult<OaLink> get(@PathVariable("id") Integer id) {
return success(oaLinkService.getById(id));
// 使用关联查询
//return success(oaLinkService.getByIdRel(id));
}
@Operation(summary = "添加常用链接")
@PostMapping()
public ApiResult<?> save(@RequestBody OaLink oaLink) {
// 记录当前登录用户id
User loginUser = getLoginUser();
if (loginUser != null) {
oaLink.setUserId(loginUser.getUserId());
}
if (oaLinkService.save(oaLink)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "修改常用链接")
@PutMapping()
public ApiResult<?> update(@RequestBody OaLink oaLink) {
if (oaLinkService.updateById(oaLink)) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "删除常用链接")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaLinkService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@Operation(summary = "批量添加常用链接")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaLink> list) {
if (oaLinkService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "批量修改常用链接")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaLink> batchParam) {
if (batchParam.update(oaLinkService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "批量删除常用链接")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaLinkService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -1,120 +0,0 @@
package com.gxwebsoft.oa.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.service.OaProductService;
import com.gxwebsoft.oa.entity.OaProduct;
import com.gxwebsoft.oa.param.OaProductParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 产品记录表控制器
*
* @author 科技小王子
* @since 2024-09-10 20:57:42
*/
@Tag(name = "产品记录表管理")
@RestController
@RequestMapping("/api/oa/oa-product")
public class OaProductController extends BaseController {
@Resource
private OaProductService oaProductService;
@Operation(summary = "分页查询产品记录表")
@GetMapping("/page")
public ApiResult<PageResult<OaProduct>> page(OaProductParam param) {
// 使用关联查询
return success(oaProductService.pageRel(param));
}
@Operation(summary = "查询全部产品记录表")
@GetMapping()
public ApiResult<List<OaProduct>> list(OaProductParam param) {
PageParam<OaProduct, OaProductParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(oaProductService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(oaProductService.listRel(param));
}
@PreAuthorize("hasAuthority('oa:oaProduct:list')")
@OperationLog
@Operation(summary = "根据id查询产品记录表")
@GetMapping("/{id}")
public ApiResult<OaProduct> get(@PathVariable("id") Integer id) {
return success(oaProductService.getById(id));
// 使用关联查询
//return success(oaProductService.getByIdRel(id));
}
@Operation(summary = "添加产品记录表")
@PostMapping()
public ApiResult<?> save(@RequestBody OaProduct oaProduct) {
// 记录当前登录用户id
User loginUser = getLoginUser();
if (loginUser != null) {
oaProduct.setUserId(loginUser.getUserId());
}
if (oaProductService.save(oaProduct)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "修改产品记录表")
@PutMapping()
public ApiResult<?> update(@RequestBody OaProduct oaProduct) {
if (oaProductService.updateById(oaProduct)) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "删除产品记录表")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaProductService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@Operation(summary = "批量添加产品记录表")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaProduct> list) {
if (oaProductService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "批量修改产品记录表")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaProduct> batchParam) {
if (batchParam.update(oaProductService, "product_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "批量删除产品记录表")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaProductService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -1,120 +0,0 @@
package com.gxwebsoft.oa.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.service.OaProductTabsService;
import com.gxwebsoft.oa.entity.OaProductTabs;
import com.gxwebsoft.oa.param.OaProductTabsParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 产品标签记录表控制器
*
* @author 科技小王子
* @since 2024-09-10 20:57:42
*/
@Tag(name = "产品标签记录表管理")
@RestController
@RequestMapping("/api/oa/oa-product-tabs")
public class OaProductTabsController extends BaseController {
@Resource
private OaProductTabsService oaProductTabsService;
@Operation(summary = "分页查询产品标签记录表")
@GetMapping("/page")
public ApiResult<PageResult<OaProductTabs>> page(OaProductTabsParam param) {
// 使用关联查询
return success(oaProductTabsService.pageRel(param));
}
@Operation(summary = "查询全部产品标签记录表")
@GetMapping()
public ApiResult<List<OaProductTabs>> list(OaProductTabsParam param) {
PageParam<OaProductTabs, OaProductTabsParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(oaProductTabsService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(oaProductTabsService.listRel(param));
}
@PreAuthorize("hasAuthority('oa:oaProductTabs:list')")
@OperationLog
@Operation(summary = "根据id查询产品标签记录表")
@GetMapping("/{id}")
public ApiResult<OaProductTabs> get(@PathVariable("id") Integer id) {
return success(oaProductTabsService.getById(id));
// 使用关联查询
//return success(oaProductTabsService.getByIdRel(id));
}
@Operation(summary = "添加产品标签记录表")
@PostMapping()
public ApiResult<?> save(@RequestBody OaProductTabs oaProductTabs) {
// 记录当前登录用户id
User loginUser = getLoginUser();
if (loginUser != null) {
oaProductTabs.setUserId(loginUser.getUserId());
}
if (oaProductTabsService.save(oaProductTabs)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "修改产品标签记录表")
@PutMapping()
public ApiResult<?> update(@RequestBody OaProductTabs oaProductTabs) {
if (oaProductTabsService.updateById(oaProductTabs)) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "删除产品标签记录表")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaProductTabsService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@Operation(summary = "批量添加产品标签记录表")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaProductTabs> list) {
if (oaProductTabsService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "批量修改产品标签记录表")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaProductTabs> batchParam) {
if (batchParam.update(oaProductTabsService, "tab_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "批量删除产品标签记录表")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaProductTabsService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -1,120 +0,0 @@
package com.gxwebsoft.oa.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.service.OaTaskService;
import com.gxwebsoft.oa.entity.OaTask;
import com.gxwebsoft.oa.param.OaTaskParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 任务记录表控制器
*
* @author 科技小王子
* @since 2024-09-10 20:57:42
*/
@Tag(name = "任务记录表管理")
@RestController
@RequestMapping("/api/oa/oa-task")
public class OaTaskController extends BaseController {
@Resource
private OaTaskService oaTaskService;
@Operation(summary = "分页查询任务记录表")
@GetMapping("/page")
public ApiResult<PageResult<OaTask>> page(OaTaskParam param) {
// 使用关联查询
return success(oaTaskService.pageRel(param));
}
@Operation(summary = "查询全部任务记录表")
@GetMapping()
public ApiResult<List<OaTask>> list(OaTaskParam param) {
PageParam<OaTask, OaTaskParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(oaTaskService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(oaTaskService.listRel(param));
}
@PreAuthorize("hasAuthority('oa:oaTask:list')")
@OperationLog
@Operation(summary = "根据id查询任务记录表")
@GetMapping("/{id}")
public ApiResult<OaTask> get(@PathVariable("id") Integer id) {
return success(oaTaskService.getById(id));
// 使用关联查询
//return success(oaTaskService.getByIdRel(id));
}
@Operation(summary = "添加任务记录表")
@PostMapping()
public ApiResult<?> save(@RequestBody OaTask oaTask) {
// 记录当前登录用户id
User loginUser = getLoginUser();
if (loginUser != null) {
oaTask.setUserId(loginUser.getUserId());
}
if (oaTaskService.save(oaTask)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "修改任务记录表")
@PutMapping()
public ApiResult<?> update(@RequestBody OaTask oaTask) {
if (oaTaskService.updateById(oaTask)) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "删除任务记录表")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaTaskService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@Operation(summary = "批量添加任务记录表")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaTask> list) {
if (oaTaskService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "批量修改任务记录表")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaTask> batchParam) {
if (batchParam.update(oaTaskService, "task_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "批量删除任务记录表")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaTaskService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -1,120 +0,0 @@
package com.gxwebsoft.oa.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.service.OaTaskCountService;
import com.gxwebsoft.oa.entity.OaTaskCount;
import com.gxwebsoft.oa.param.OaTaskCountParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 数据统计控制器
*
* @author 科技小王子
* @since 2024-09-10 20:57:42
*/
@Tag(name = "数据统计管理")
@RestController
@RequestMapping("/api/oa/oa-task-count")
public class OaTaskCountController extends BaseController {
@Resource
private OaTaskCountService oaTaskCountService;
@Operation(summary = "分页查询数据统计")
@GetMapping("/page")
public ApiResult<PageResult<OaTaskCount>> page(OaTaskCountParam param) {
// 使用关联查询
return success(oaTaskCountService.pageRel(param));
}
@Operation(summary = "查询全部数据统计")
@GetMapping()
public ApiResult<List<OaTaskCount>> list(OaTaskCountParam param) {
PageParam<OaTaskCount, OaTaskCountParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(oaTaskCountService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(oaTaskCountService.listRel(param));
}
@PreAuthorize("hasAuthority('oa:oaTaskCount:list')")
@OperationLog
@Operation(summary = "根据id查询数据统计")
@GetMapping("/{id}")
public ApiResult<OaTaskCount> get(@PathVariable("id") Integer id) {
return success(oaTaskCountService.getById(id));
// 使用关联查询
//return success(oaTaskCountService.getByIdRel(id));
}
@Operation(summary = "添加数据统计")
@PostMapping()
public ApiResult<?> save(@RequestBody OaTaskCount oaTaskCount) {
// 记录当前登录用户id
User loginUser = getLoginUser();
if (loginUser != null) {
oaTaskCount.setUserId(loginUser.getUserId());
}
if (oaTaskCountService.save(oaTaskCount)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "修改数据统计")
@PutMapping()
public ApiResult<?> update(@RequestBody OaTaskCount oaTaskCount) {
if (oaTaskCountService.updateById(oaTaskCount)) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "删除数据统计")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaTaskCountService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@Operation(summary = "批量添加数据统计")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaTaskCount> list) {
if (oaTaskCountService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "批量修改数据统计")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaTaskCount> batchParam) {
if (batchParam.update(oaTaskCountService, "task_count_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "批量删除数据统计")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaTaskCountService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -1,120 +0,0 @@
package com.gxwebsoft.oa.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.service.OaTaskRecordService;
import com.gxwebsoft.oa.entity.OaTaskRecord;
import com.gxwebsoft.oa.param.OaTaskRecordParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 工单回复记录表控制器
*
* @author 科技小王子
* @since 2024-09-10 20:57:42
*/
@Tag(name = "工单回复记录表管理")
@RestController
@RequestMapping("/api/oa/oa-task-record")
public class OaTaskRecordController extends BaseController {
@Resource
private OaTaskRecordService oaTaskRecordService;
@Operation(summary = "分页查询工单回复记录表")
@GetMapping("/page")
public ApiResult<PageResult<OaTaskRecord>> page(OaTaskRecordParam param) {
// 使用关联查询
return success(oaTaskRecordService.pageRel(param));
}
@Operation(summary = "查询全部工单回复记录表")
@GetMapping()
public ApiResult<List<OaTaskRecord>> list(OaTaskRecordParam param) {
PageParam<OaTaskRecord, OaTaskRecordParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(oaTaskRecordService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(oaTaskRecordService.listRel(param));
}
@PreAuthorize("hasAuthority('oa:oaTaskRecord:list')")
@OperationLog
@Operation(summary = "根据id查询工单回复记录表")
@GetMapping("/{id}")
public ApiResult<OaTaskRecord> get(@PathVariable("id") Integer id) {
return success(oaTaskRecordService.getById(id));
// 使用关联查询
//return success(oaTaskRecordService.getByIdRel(id));
}
@Operation(summary = "添加工单回复记录表")
@PostMapping()
public ApiResult<?> save(@RequestBody OaTaskRecord oaTaskRecord) {
// 记录当前登录用户id
User loginUser = getLoginUser();
if (loginUser != null) {
oaTaskRecord.setUserId(loginUser.getUserId());
}
if (oaTaskRecordService.save(oaTaskRecord)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "修改工单回复记录表")
@PutMapping()
public ApiResult<?> update(@RequestBody OaTaskRecord oaTaskRecord) {
if (oaTaskRecordService.updateById(oaTaskRecord)) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "删除工单回复记录表")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaTaskRecordService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@Operation(summary = "批量添加工单回复记录表")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaTaskRecord> list) {
if (oaTaskRecordService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "批量修改工单回复记录表")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaTaskRecord> batchParam) {
if (batchParam.update(oaTaskRecordService, "task_record_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "批量删除工单回复记录表")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaTaskRecordService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -1,120 +0,0 @@
package com.gxwebsoft.oa.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.service.OaTaskUserService;
import com.gxwebsoft.oa.entity.OaTaskUser;
import com.gxwebsoft.oa.param.OaTaskUserParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 工单成员控制器
*
* @author 科技小王子
* @since 2024-09-10 20:57:42
*/
@Tag(name = "工单成员管理")
@RestController
@RequestMapping("/api/oa/oa-task-user")
public class OaTaskUserController extends BaseController {
@Resource
private OaTaskUserService oaTaskUserService;
@Operation(summary = "分页查询工单成员")
@GetMapping("/page")
public ApiResult<PageResult<OaTaskUser>> page(OaTaskUserParam param) {
// 使用关联查询
return success(oaTaskUserService.pageRel(param));
}
@Operation(summary = "查询全部工单成员")
@GetMapping()
public ApiResult<List<OaTaskUser>> list(OaTaskUserParam param) {
PageParam<OaTaskUser, OaTaskUserParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(oaTaskUserService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(oaTaskUserService.listRel(param));
}
@PreAuthorize("hasAuthority('oa:oaTaskUser:list')")
@OperationLog
@Operation(summary = "根据id查询工单成员")
@GetMapping("/{id}")
public ApiResult<OaTaskUser> get(@PathVariable("id") Integer id) {
return success(oaTaskUserService.getById(id));
// 使用关联查询
//return success(oaTaskUserService.getByIdRel(id));
}
@Operation(summary = "添加工单成员")
@PostMapping()
public ApiResult<?> save(@RequestBody OaTaskUser oaTaskUser) {
// 记录当前登录用户id
User loginUser = getLoginUser();
if (loginUser != null) {
oaTaskUser.setUserId(loginUser.getUserId());
}
if (oaTaskUserService.save(oaTaskUser)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "修改工单成员")
@PutMapping()
public ApiResult<?> update(@RequestBody OaTaskUser oaTaskUser) {
if (oaTaskUserService.updateById(oaTaskUser)) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "删除工单成员")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (oaTaskUserService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@Operation(summary = "批量添加工单成员")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<OaTaskUser> list) {
if (oaTaskUserService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "批量修改工单成员")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<OaTaskUser> batchParam) {
if (batchParam.update(oaTaskUserService, "task_user_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "批量删除工单成员")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (oaTaskUserService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -1,266 +0,0 @@
package com.gxwebsoft.oa.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableLogic;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import com.gxwebsoft.common.system.entity.FileRecord;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 应用
*
* @author 科技小王子
* @since 2024-09-10 20:57:41
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaApp对象", description = "应用")
public class OaApp implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "应用ID")
@TableId(value = "app_id", type = IdType.AUTO)
private Integer appId;
@Schema(description = "应用名称")
private String appName;
@Schema(description = "应用标识")
private String appCode;
@Schema(description = "应用秘钥")
private String appSecret;
@Schema(description = "上级id, 0是顶级")
private Integer parentId;
@Schema(description = "应用类型")
private String appType;
@Schema(description = "应用类型")
private String appTypeMultiple;
@Schema(description = "类型, 0菜单, 1按钮")
private Integer menuType;
@Schema(description = "企业ID")
private Integer companyId;
@Schema(description = "企业名称")
private String companyName;
@Schema(description = "应用图标")
private String appIcon;
@Schema(description = "二维码")
private String appQrcode;
@Schema(description = "链接地址")
private String appUrl;
@Schema(description = "后台管理地址")
private String adminUrl;
@Schema(description = "下载地址")
private String downUrl;
@Schema(description = "链接地址")
private String serverUrl;
@Schema(description = "文件服务器")
private String fileUrl;
@Schema(description = "回调地址")
private String callbackUrl;
@Schema(description = "腾讯文档地址")
private String docsUrl;
@Schema(description = "代码仓库地址")
private String gitUrl;
@Schema(description = "原型图地址")
private String prototypeUrl;
@Schema(description = "IP白名单")
private String ipAddress;
@Schema(description = "应用截图")
private String images;
@Schema(description = "应用包名")
private String packageName;
@Schema(description = "下载次数")
private Integer clicks;
@Schema(description = "安装次数")
private Integer installs;
@Schema(description = "备注")
private String comments;
@Schema(description = "应用介绍")
private String content;
@Schema(description = "项目需求")
private String requirement;
@Schema(description = "开发者(个人或公司)")
private String developer;
@Schema(description = "项目负责人")
private String director;
@Schema(description = "项目经理")
private String projectDirector;
@Schema(description = "业务员")
private String salesman;
@Schema(description = "软件定价")
private BigDecimal price;
@Schema(description = "划线价格")
private BigDecimal linePrice;
@Schema(description = "评分")
private String score;
@Schema(description = "星级")
private String star;
@Schema(description = "菜单路由地址")
private String path;
@Schema(description = "菜单组件地址, 目录可为空")
private String component;
@Schema(description = "权限标识")
private String authority;
@Schema(description = "打开位置")
private String target;
@Schema(description = "是否隐藏, 0否, 1是(仅注册路由不显示在左侧菜单)")
private Integer hide;
@Schema(description = "禁止搜索1禁止 0 允许")
private Integer search;
@Schema(description = "菜单侧栏选中的path")
private String active;
@Schema(description = "其它路由元信息")
private String meta;
@Schema(description = "版本0正式版 1体验版 2开发版")
private String edition;
@Schema(description = "版本号")
private String version;
@Schema(description = "是否已安装")
private Integer isUse;
@Schema(description = "附近1")
private String file1;
@Schema(description = "附件2")
private String file2;
@Schema(description = "附件3")
private String file3;
@Schema(description = "是否显示续费提醒")
private Boolean showExpiration;
@Schema(description = "是否作为案例展示")
private Integer showCase;
@Schema(description = "是否显示在首页")
private Integer showIndex;
@Schema(description = "是否推荐")
private Integer recommend;
@Schema(description = "到期时间")
private Date expirationTime;
@Schema(description = "续费金额")
private BigDecimal renewMoney;
@Schema(description = "应用状态")
private String appStatus;
@Schema(description = "排序(数字越小越靠前)")
private Integer sortNumber;
@Schema(description = "状态, 0正常, 1冻结")
private Integer status;
@Schema(description = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "机构id")
private Integer organizationId;
@Schema(description = "租户编号")
private String tenantCode;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "创建时间")
private Date createTime;
@Schema(description = "修改时间")
private Date updateTime;
@Schema(description = "成员管理")
@TableField(exist = false)
private List<OaAppUser> users;
@Schema(description = "链接列表")
@TableField(exist = false)
private List<OaAppUrl> appUrlList;
@Schema(description = "项目附件")
@TableField(exist = false)
private List<FileRecord> appFiles;
@Schema(description = "主体名称")
@TableField(exist = false)
private String tenantName;
@Schema(description = "开发者名称")
@TableField(exist = false)
private String realName;
@Schema(description = "开发者名称")
@TableField(exist = false)
private String nickname;
@Schema(description = "开发者头像")
@TableField(exist = false)
private String avatar;
@Schema(description = "手机号码")
@TableField(exist = false)
private String phone;
}

View File

@@ -1,53 +0,0 @@
package com.gxwebsoft.oa.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.util.Date;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 应用参数
*
* @author 科技小王子
* @since 2024-09-10 20:57:41
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaAppField对象", description = "应用参数")
public class OaAppField implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "自增ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@Schema(description = "应用ID")
private Integer appId;
@Schema(description = "名称")
private String name;
@Schema(description = "备注")
private String comments;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "状态, 0正常, 1删除")
private Integer status;
@Schema(description = "排序(数字越小越靠前)")
private Integer sortNumber;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "创建时间")
private Date createTime;
}

View File

@@ -1,65 +0,0 @@
package com.gxwebsoft.oa.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.util.Date;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 续费管理
*
* @author 科技小王子
* @since 2024-09-10 20:57:41
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaAppRenew对象", description = "续费管理")
public class OaAppRenew implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "自增ID")
@TableId(value = "app_renew_id", type = IdType.AUTO)
private Integer appRenewId;
@Schema(description = "应用ID")
private Integer appId;
@Schema(description = "续费金额")
private BigDecimal money;
@Schema(description = "备注")
private String comments;
@Schema(description = "开始时间")
private Date startTime;
@Schema(description = "到期时间")
private Date endTime;
@Schema(description = "企业ID")
private Integer companyId;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "付款凭证")
private String images;
@Schema(description = "用户姓名")
private String nickname;
@Schema(description = "状态, 0正常, 1待确认")
private Integer status;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "创建时间")
private Date createTime;
}

View File

@@ -1,58 +0,0 @@
package com.gxwebsoft.oa.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.util.Date;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 项目域名
*
* @author 科技小王子
* @since 2024-09-10 20:57:41
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaAppUrl对象", description = "项目域名")
public class OaAppUrl implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "自增ID")
@TableId(value = "app_url_id", type = IdType.AUTO)
private Integer appUrlId;
@Schema(description = "应用ID")
private Integer appId;
@Schema(description = "域名类型")
private String name;
@Schema(description = "域名")
private String domain;
@Schema(description = "账号")
private String account;
@Schema(description = "密码")
private String password;
@Schema(description = "备注")
private String comments;
@Schema(description = "排序(数字越小越靠前)")
private Integer sortNumber;
@Schema(description = "状态, 0正常, 1待确认")
private Integer status;
@Schema(description = "创建时间")
private Date createTime;
@Schema(description = "租户id")
private Integer tenantId;
}

View File

@@ -1,49 +0,0 @@
package com.gxwebsoft.oa.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.util.Date;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 应用成员
*
* @author 科技小王子
* @since 2024-09-10 20:57:41
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaAppUser对象", description = "应用成员")
public class OaAppUser implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "自增ID")
@TableId(value = "app_user_id", type = IdType.AUTO)
private Integer appUserId;
@Schema(description = "角色10体验成员 20开发者成员 30管理员 ")
private Integer role;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "应用ID")
private Integer appId;
@Schema(description = "昵称")
private String nickname;
@Schema(description = "状态, 0正常, 1待确认")
private Integer status;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "创建时间")
private Date createTime;
}

View File

@@ -1,159 +0,0 @@
package com.gxwebsoft.oa.entity;
import java.math.BigDecimal;
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 java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 云服务器
*
* @author 科技小王子
* @since 2024-10-18 18:34:15
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaAssets对象", description = "云服务器")
public class OaAssets implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "资产ID")
@TableId(value = "assets_id", type = IdType.AUTO)
private Integer assetsId;
@Schema(description = "资产名称")
private String name;
@Schema(description = "资产标识")
private String code;
@Schema(description = "资产类型")
private String type;
@Schema(description = "服务器厂商")
private String brand;
@Schema(description = "服务器配置")
private String configuration;
@Schema(description = "初始账号")
private String account;
@Schema(description = "初始密码")
private String password;
@Schema(description = "(阿里云/腾讯云)登录账号")
private String brandAccount;
@Schema(description = "(阿里云/腾讯云)登录密码")
private String brandPassword;
@Schema(description = "宝塔面板")
private String panel;
@Schema(description = "宝塔面板账号")
private String panelAccount;
@Schema(description = "宝塔面板密码")
private String panelPassword;
@Schema(description = "财务信息-合同金额")
private BigDecimal financeAmount;
@Schema(description = "购买年限")
private Integer financeYears;
@Schema(description = "续费金额")
private BigDecimal financeRenew;
@Schema(description = "客户名称")
private String financeCustomerName;
@Schema(description = "客户联系人")
private String financeCustomerContact;
@Schema(description = "客户联系电话")
private String financeCustomerPhone;
@Schema(description = "客户ID")
private Integer customerId;
@Schema(description = "客户名称")
private String customerName;
@Schema(description = "开放端口")
private String openPort;
@Schema(description = "详情内容")
private String content;
@Schema(description = "购买时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
@Schema(description = "到期时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
@Schema(description = "置顶状态")
private String isTop;
@Schema(description = "可见性(public,private,protected)")
private String visibility;
@Schema(description = "宝塔接口秘钥")
private String btSign;
@Schema(description = "文章排序(数字越小越靠前)")
private Integer sortNumber;
@Schema(description = "描述")
private String comments;
@Schema(description = "客户ID")
private Integer companyId;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "可见用户")
private String userIds;
@Schema(description = "机构id")
private Integer organizationId;
@Schema(description = "状态, 0正常, 1冻结")
private String status;
@Schema(description = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "应用名称")
@TableField(exist = false)
private String tenantName;
@Schema(description = "应用图标")
@TableField(exist = false)
private String logo;
@Schema(description = "创建时间")
private Date createTime;
@Schema(description = "修改时间")
private Date updateTime;
}

View File

@@ -1,89 +0,0 @@
package com.gxwebsoft.oa.entity;
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 java.io.Serializable;
import java.util.Date;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 代码仓库
*
* @author 科技小王子
* @since 2024-10-18 18:27:01
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaAssetsCode对象", description = "代码仓库")
public class OaAssetsCode implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@Schema(description = "服务器ID")
private Integer assetsId;
@Schema(description = "名称")
private String name;
@Schema(description = "英文标识")
private String code;
@Schema(description = "仓库地址")
private String gitUrl;
@Schema(description = "仓库品牌")
private String brand;
@Schema(description = "置顶状态")
private String isTop;
@Schema(description = "详情内容")
private String content;
@Schema(description = "排序(数字越小越靠前)")
private Integer sortNumber;
@Schema(description = "描述")
private String comments;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "可见用户")
private String userIds;
@Schema(description = "状态, 0正常, 1冻结")
private String status;
@Schema(description = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "应用名称")
@TableField(exist = false)
private String tenantName;
@Schema(description = "应用图标")
@TableField(exist = false)
private String logo;
@Schema(description = "创建时间")
private Date createTime;
@Schema(description = "修改时间")
private Date updateTime;
}

View File

@@ -1,102 +0,0 @@
package com.gxwebsoft.oa.entity;
import java.math.BigDecimal;
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 java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 域名
*
* @author 科技小王子
* @since 2024-10-18 18:27:02
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaAssetsDomain对象", description = "域名")
public class OaAssetsDomain implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "ID")
@TableId(value = "domain_id", type = IdType.AUTO)
private Integer domainId;
@Schema(description = "服务器ID")
private Integer assetsId;
@Schema(description = "域名")
private String name;
@Schema(description = "域名标识")
private String code;
@Schema(description = "注册厂商")
private String brand;
@Schema(description = "初始账号")
private String account;
@Schema(description = "初始密码")
private String password;
@Schema(description = "价格")
private BigDecimal price;
@Schema(description = "购买时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
@Schema(description = "到期时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
@Schema(description = "置顶状态")
private String isTop;
@Schema(description = "排序(数字越小越靠前)")
private Integer sortNumber;
@Schema(description = "描述")
private String comments;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "可见用户")
private String userIds;
@Schema(description = "状态, 0正常, 1冻结")
private String status;
@Schema(description = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "应用名称")
@TableField(exist = false)
private String tenantName;
@Schema(description = "应用图标")
@TableField(exist = false)
private String logo;
@Schema(description = "创建时间")
private Date createTime;
@Schema(description = "修改时间")
private Date updateTime;
}

View File

@@ -1,102 +0,0 @@
package com.gxwebsoft.oa.entity;
import java.math.BigDecimal;
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 java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 企业邮箱记录表
*
* @author 科技小王子
* @since 2024-10-18 18:27:02
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaAssetsEmail对象", description = "企业邮箱记录表")
public class OaAssetsEmail implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "ID")
@TableId(value = "email_id", type = IdType.AUTO)
private Integer emailId;
@Schema(description = "邮箱名称")
private String name;
@Schema(description = "域名标识")
private String code;
@Schema(description = "邮箱型号")
private String type;
@Schema(description = "品牌厂商")
private String brand;
@Schema(description = "初始账号")
private String system;
@Schema(description = "价格")
private BigDecimal price;
@Schema(description = "详情内容")
private String content;
@Schema(description = "购买时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
@Schema(description = "到期时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
@Schema(description = "置顶状态")
private String isTop;
@Schema(description = "排序(数字越小越靠前)")
private Integer sortNumber;
@Schema(description = "描述")
private String comments;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "可见用户")
private String userIds;
@Schema(description = "状态, 0正常, 1冻结")
private String status;
@Schema(description = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "应用名称")
@TableField(exist = false)
private String tenantName;
@Schema(description = "应用图标")
@TableField(exist = false)
private String logo;
@Schema(description = "创建时间")
private Date createTime;
@Schema(description = "修改时间")
private Date updateTime;
}

View File

@@ -1,107 +0,0 @@
package com.gxwebsoft.oa.entity;
import java.math.BigDecimal;
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 java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 云数据库
*
* @author 科技小王子
* @since 2024-10-18 19:00:20
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaAssetsMysql对象", description = "云数据库")
public class OaAssetsMysql implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "ID")
@TableId(value = "mysql_id", type = IdType.AUTO)
private Integer mysqlId;
@Schema(description = "服务器ID")
private Integer assetsId;
@Schema(description = "数据库名")
private String name;
@Schema(description = "数据库标识")
private String code;
@Schema(description = "注册厂商")
private String brand;
@Schema(description = "ip地址")
private String ip;
@Schema(description = "端口")
private String port;
@Schema(description = "初始账号")
private String account;
@Schema(description = "初始密码")
private String password;
@Schema(description = "价格")
private BigDecimal price;
@Schema(description = "购买时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
@Schema(description = "到期时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
@Schema(description = "置顶状态")
private String isTop;
@Schema(description = "排序(数字越小越靠前)")
private Integer sortNumber;
@Schema(description = "描述")
private String comments;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "可见用户")
private String userIds;
@Schema(description = "状态, 0正常, 1冻结")
private String status;
@Schema(description = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "应用名称")
@TableField(exist = false)
private String tenantName;
@Schema(description = "应用图标")
@TableField(exist = false)
private String logo;
@Schema(description = "创建时间")
private Date createTime;
@Schema(description = "修改时间")
private Date updateTime;
}

View File

@@ -1,73 +0,0 @@
package com.gxwebsoft.oa.entity;
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 io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* 服务
*
* @author 科技小王子
* @since 2024-10-21 19:15:26
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaAssetsServer对象", description = "服务")
public class OaAssetsServer implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "插件id")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@Schema(description = "服务名称")
private String server;
@Schema(description = "接口地址")
private String serverUrl;
@Schema(description = "排序号")
private Integer sortNumber;
@Schema(description = "服务器ID")
private Integer assetsId;
@Schema(description = "备注")
private String comments;
@Schema(description = "状态, 10待审核 20已通过 30已驳回")
private Integer status;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "可见用户")
private String userIds;
@Schema(description = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "应用名称")
@TableField(exist = false)
private String tenantName;
@Schema(description = "应用图标")
@TableField(exist = false)
private String logo;
@Schema(description = "创建时间")
private Date createTime;
}

View File

@@ -1,166 +0,0 @@
package com.gxwebsoft.oa.entity;
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 java.io.Serializable;
import java.util.Date;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 网站信息记录表
*
* @author 科技小王子
* @since 2024-10-18 18:27:02
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaAssetsSite对象", description = "网站信息记录表")
public class OaAssetsSite implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "站点ID")
@TableId(value = "website_id", type = IdType.AUTO)
private Integer websiteId;
@Schema(description = "网站名称")
private String websiteName;
@Schema(description = "网站标识")
private String websiteCode;
@Schema(description = "网站LOGO")
private String websiteIcon;
@Schema(description = "网站LOGO")
private String websiteLogo;
@Schema(description = "网站LOGO(深色模式)")
private String websiteDarkLogo;
@Schema(description = "网站类型")
private String websiteType;
@Schema(description = "网站关键词")
private String keywords;
@Schema(description = "域名前缀")
private String prefix;
@Schema(description = "绑定域名")
private String domain;
@Schema(description = "全局样式")
private String style;
@Schema(description = "后台管理地址")
private String adminUrl;
@Schema(description = "应用版本 10免费版 20授权版 30永久授权")
private Integer version;
@Schema(description = "服务到期时间")
private Date expirationTime;
@Schema(description = "模版ID")
private Integer templateId;
@Schema(description = "行业类型(父级)")
private String industryParent;
@Schema(description = "行业类型(子级)")
private String industryChild;
@Schema(description = "企业ID")
private Integer companyId;
@Schema(description = "所在国家")
private String country;
@Schema(description = "所在省份")
private String province;
@Schema(description = "所在城市")
private String city;
@Schema(description = "所在辖区")
private String region;
@Schema(description = "经度")
private String longitude;
@Schema(description = "纬度")
private String latitude;
@Schema(description = "街道地址")
private String address;
@Schema(description = "联系电话")
private String phone;
@Schema(description = "电子邮箱")
private String email;
@Schema(description = "ICP备案号")
private String icpNo;
@Schema(description = "公安备案")
private String policeNo;
@Schema(description = "备注")
private String comments;
@Schema(description = "是否推荐")
private Integer recommend;
@Schema(description = "状态 0未开通 1运行中 2维护中 3已关闭 4已欠费停机 5违规关停")
private Integer status;
@Schema(description = "维护说明")
private String statusText;
@Schema(description = "关闭说明")
private String statusClose;
@Schema(description = "全局样式")
private String styles;
@Schema(description = "排序号")
private Integer sortNumber;
@Schema(description = "服务器ID")
private Integer assetsId;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "可见用户")
private String userIds;
@Schema(description = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "应用名称")
@TableField(exist = false)
private String tenantName;
@Schema(description = "应用图标")
@TableField(exist = false)
private String logo;
@Schema(description = "创建时间")
private Date createTime;
@Schema(description = "修改时间")
private Date updateTime;
}

View File

@@ -1,101 +0,0 @@
package com.gxwebsoft.oa.entity;
import java.math.BigDecimal;
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 java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 计算机软件著作权登记
*
* @author 科技小王子
* @since 2024-10-18 19:46:21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaAssetsSoftwareCert对象", description = "计算机软件著作权登记")
public class OaAssetsSoftwareCert implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@Schema(description = "名称")
private String name;
@Schema(description = "软件著作权标识")
private String code;
@Schema(description = "证书类型")
private String type;
@Schema(description = "品牌厂商")
private String brand;
@Schema(description = "价格")
private BigDecimal price;
@Schema(description = "详情内容")
private String content;
@Schema(description = "证书下载地址")
private String certUrl;
@Schema(description = "购买时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
@Schema(description = "到期时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
@Schema(description = "置顶状态")
private String isTop;
@Schema(description = "排序(数字越小越靠前)")
private Integer sortNumber;
@Schema(description = "描述")
private String comments;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "可见用户")
private String userIds;
@Schema(description = "状态, 0正常, 1冻结")
private String status;
@Schema(description = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "应用名称")
@TableField(exist = false)
private String tenantName;
@Schema(description = "应用图标")
@TableField(exist = false)
private String logo;
@Schema(description = "创建时间")
private Date createTime;
@Schema(description = "修改时间")
private Date updateTime;
}

View File

@@ -1,113 +0,0 @@
package com.gxwebsoft.oa.entity;
import java.math.BigDecimal;
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 java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* ssl证书
*
* @author 科技小王子
* @since 2024-10-18 19:25:40
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaAssetsSsl对象", description = "ssl证书")
public class OaAssetsSsl implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "ID")
@TableId(value = "ssl_id", type = IdType.AUTO)
private Integer sslId;
@Schema(description = "证书名称")
private String name;
@Schema(description = "证书标识")
private String code;
@Schema(description = "证书类型")
private String type;
@Schema(description = "品牌厂商")
private String brand;
@Schema(description = "价格")
private BigDecimal price;
@Schema(description = "详情内容")
private String content;
@Schema(description = "证书key")
private String certKey;
@Schema(description = "证书pem")
private String certPem;
@Schema(description = "证书下载地址")
private String certUrl;
@Schema(description = "证书crt")
private String certCrt;
@Schema(description = "购买时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
@Schema(description = "到期时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
@Schema(description = "置顶状态")
private String isTop;
@Schema(description = "排序(数字越小越靠前)")
private Integer sortNumber;
@Schema(description = "描述")
private String comments;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "可见用户")
private String userIds;
@Schema(description = "状态, 0正常, 1冻结")
private Integer status;
@Schema(description = "即将过期")
private Integer soon;
@Schema(description = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "应用名称")
@TableField(exist = false)
private String tenantName;
@Schema(description = "应用图标")
@TableField(exist = false)
private String logo;
@Schema(description = "创建时间")
private Date createTime;
@Schema(description = "修改时间")
private Date updateTime;
}

View File

@@ -1,101 +0,0 @@
package com.gxwebsoft.oa.entity;
import java.math.BigDecimal;
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 java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 商标注册
*
* @author 科技小王子
* @since 2024-10-18 19:46:21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaAssetsTrademark对象", description = "商标注册")
public class OaAssetsTrademark implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@Schema(description = "商标名称")
private String name;
@Schema(description = "商标标识")
private String code;
@Schema(description = "商标类型")
private String type;
@Schema(description = "品牌厂商")
private String brand;
@Schema(description = "价格")
private BigDecimal price;
@Schema(description = "详情内容")
private String content;
@Schema(description = "证书下载")
private String certUrl;
@Schema(description = "购买时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
@Schema(description = "到期时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
@Schema(description = "置顶状态")
private String isTop;
@Schema(description = "排序(数字越小越靠前)")
private Integer sortNumber;
@Schema(description = "描述")
private String comments;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "可见用户")
private String userIds;
@Schema(description = "状态, 0正常, 1冻结")
private String status;
@Schema(description = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "应用名称")
@TableField(exist = false)
private String tenantName;
@Schema(description = "应用图标")
@TableField(exist = false)
private String logo;
@Schema(description = "创建时间")
private Date createTime;
@Schema(description = "修改时间")
private Date updateTime;
}

View File

@@ -1,49 +0,0 @@
package com.gxwebsoft.oa.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.util.Date;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 服务器成员管理
*
* @author 科技小王子
* @since 2024-09-10 20:57:41
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaAssetsUser对象", description = "服务器成员管理")
public class OaAssetsUser implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "自增ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@Schema(description = "角色10体验成员 20开发者成员 30管理员 ")
private Integer role;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "应用ID")
private Integer assetsId;
@Schema(description = "昵称")
private String nickname;
@Schema(description = "状态, 0正常, 1待确认")
private Integer status;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "创建时间")
private Date createTime;
}

View File

@@ -1,110 +0,0 @@
package com.gxwebsoft.oa.entity;
import java.math.BigDecimal;
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 java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 虚拟主机记录表
*
* @author 科技小王子
* @since 2024-10-18 18:27:02
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaAssetsVhost对象", description = "虚拟主机记录表")
public class OaAssetsVhost implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "ID")
@TableId(value = "vhost_id", type = IdType.AUTO)
private Integer vhostId;
@Schema(description = "域名")
private String name;
@Schema(description = "域名标识")
private String code;
@Schema(description = "主机型号")
private String type;
@Schema(description = "品牌厂商")
private String brand;
@Schema(description = "初始账号")
private String account;
@Schema(description = "初始密码")
private String password;
@Schema(description = "价格")
private BigDecimal price;
@Schema(description = "详情内容")
private String content;
@Schema(description = "ssl证书")
private String ssl;
@Schema(description = "购买时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
@Schema(description = "到期时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
@Schema(description = "置顶状态")
private String isTop;
@Schema(description = "排序(数字越小越靠前)")
private Integer sortNumber;
@Schema(description = "描述")
private String comments;
@Schema(description = "服务器ID")
private Integer assetsId;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "可见用户")
private String userIds;
@Schema(description = "状态, 0正常, 1冻结")
private String status;
@Schema(description = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "应用名称")
@TableField(exist = false)
private String tenantName;
@Schema(description = "应用图标")
@TableField(exist = false)
private String logo;
@Schema(description = "创建时间")
private Date createTime;
@Schema(description = "修改时间")
private Date updateTime;
}

View File

@@ -1,192 +0,0 @@
package com.gxwebsoft.oa.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import java.util.Date;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 企业信息
*
* @author 科技小王子
* @since 2024-09-20 12:33:12
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaCompany对象", description = "企业信息")
public class OaCompany implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "企业id")
@TableId(value = "company_id", type = IdType.AUTO)
private Integer companyId;
@Schema(description = "企业简称")
private String shortName;
@Schema(description = "企业全称")
private String companyName;
@Schema(description = "企业标识")
private String companyCode;
@Schema(description = "类型 10企业 20政府单位")
private String companyType;
@Schema(description = "企业类型多选")
private String companyTypeMultiple;
@Schema(description = "应用标识")
private String companyLogo;
@Schema(description = "应用类型")
private String appType;
@Schema(description = "绑定域名")
private String domain;
@Schema(description = "联系电话")
private String phone;
@Schema(description = "座机电话")
private String tel;
@Schema(description = "邮箱")
private String email;
@Schema(description = "发票抬头")
@TableField("Invoice_header")
private String invoiceHeader;
@Schema(description = "企业法人")
private String businessEntity;
@Schema(description = "服务开始时间")
private Date startTime;
@Schema(description = "服务到期时间")
private Date expirationTime;
@Schema(description = "应用版本 10体验版 20授权版 30旗舰版")
private Integer version;
@Schema(description = "成员数量(人数上限)")
private Integer members;
@Schema(description = "成员数量(当前)")
private Integer users;
@Schema(description = "行业类型(父级)")
private String industryParent;
@Schema(description = "行业类型(子级)")
private String industryChild;
@Schema(description = "部门数量")
private Integer departments;
@Schema(description = "存储空间")
private Long storage;
@Schema(description = "存储空间(上限)")
private Long storageMax;
@Schema(description = "所在国家")
private String country;
@Schema(description = "所在省份")
private String province;
@Schema(description = "所在城市")
private String city;
@Schema(description = "所在辖区")
private String region;
@Schema(description = "街道地址")
private String address;
@Schema(description = "经度")
private String longitude;
@Schema(description = "纬度")
private String latitude;
@Schema(description = "备注")
private String comments;
@Schema(description = "是否实名认证")
private Integer authentication;
@Schema(description = "企业默认主体")
private Integer authoritative;
@Schema(description = "request合法域名")
private String requestUrl;
@Schema(description = "socket合法域名")
private String socketUrl;
@Schema(description = "主控端域名")
private String serverUrl;
@Schema(description = "业务域名")
private String modulesUrl;
@Schema(description = "是否推荐")
private Integer recommend;
@Schema(description = "点赞数量")
private Integer likes;
@Schema(description = "点击数量")
private Integer clicks;
@Schema(description = "购买数量")
private Integer buys;
@Schema(description = "是否含税, 0不含, 1含")
private Integer isTax;
@Schema(description = "当前克隆的租户ID")
private Integer planId;
@Schema(description = "状态")
private Integer status;
@Schema(description = "排序号")
private Integer sortNumber;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "应用名称")
@TableField(exist = false)
private String tenantName;
@Schema(description = "应用图标")
@TableField(exist = false)
private String logo;
@Schema(description = "创建时间")
private Date createTime;
@Schema(description = "修改时间")
private Date updateTime;
}

View File

@@ -1,54 +0,0 @@
package com.gxwebsoft.oa.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import java.util.Date;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 企业参数
*
* @author 科技小王子
* @since 2024-09-20 12:33:12
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaCompanyField对象", description = "企业参数")
public class OaCompanyField implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "自增ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@Schema(description = "企业ID")
private Integer companyId;
@Schema(description = "名称")
private String name;
@Schema(description = "备注")
private String comments;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "状态, 0正常, 1删除")
private Integer status;
@Schema(description = "排序(数字越小越靠前)")
private Integer sortNumber;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "创建时间")
private Date createTime;
}

View File

@@ -1,51 +0,0 @@
package com.gxwebsoft.oa.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import java.util.Date;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 成员管理
*
* @author 科技小王子
* @since 2024-09-20 12:33:12
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaCompanyUser对象", description = "成员管理")
public class OaCompanyUser implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "自增ID")
@TableId(value = "company_user_id", type = IdType.AUTO)
private Integer companyUserId;
@Schema(description = "角色10体验成员 20开发者成员 30管理员 ")
private Integer role;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "企业ID")
private Integer companyId;
@Schema(description = "昵称")
private String nickname;
@Schema(description = "状态, 0正常, 1待确认")
private Integer status;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "创建时间")
private Date createTime;
}

View File

@@ -1,72 +0,0 @@
package com.gxwebsoft.oa.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableLogic;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 常用链接
*
* @author 科技小王子
* @since 2024-09-10 20:57:42
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaLink对象", description = "常用链接")
public class OaLink implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "自增ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@Schema(description = "链接名称")
private String name;
@Schema(description = "图标")
private String icon;
@Schema(description = "链接地址")
private String url;
@Schema(description = "链接分类")
private String linkType;
@Schema(description = "应用ID")
private Integer appId;
@Schema(description = "所属栏目")
private Integer categoryId;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "是否推荐")
private Integer recommend;
@Schema(description = "备注")
private String comments;
@Schema(description = "排序(数字越小越靠前)")
private Integer sortNumber;
@Schema(description = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@Schema(description = "状态, 0正常, 1待确认")
private Integer status;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "创建时间")
private Date createTime;
}

View File

@@ -1,103 +0,0 @@
package com.gxwebsoft.oa.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableLogic;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 产品记录表
*
* @author 科技小王子
* @since 2024-09-10 20:57:42
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaProduct对象", description = "产品记录表")
public class OaProduct implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "产品ID")
@TableId(value = "product_id", type = IdType.AUTO)
private Integer productId;
@Schema(description = "产品名称")
private String name;
@Schema(description = "产品标识")
private String code;
@Schema(description = "产品详情")
private String content;
@Schema(description = "产品类型")
private String type;
@Schema(description = "产品图标")
private String logo;
@Schema(description = "产品金额")
private BigDecimal money;
@Schema(description = "初始销量")
private Integer salesInitial;
@Schema(description = "实际销量")
private Integer salesActual;
@Schema(description = "库存总量(包含所有sku)")
private Integer stockTotal;
@Schema(description = "背景颜色")
private String backgroundColor;
@Schema(description = "背景图片")
private String backgroundImage;
@Schema(description = "背景图片(gif)")
private String backgroundGif;
@Schema(description = "购买链接")
private String buyUrl;
@Schema(description = "控制台链接")
private String adminUrl;
@Schema(description = "附件")
private String files;
@Schema(description = "企业ID")
private Integer companyId;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "排序(数字越小越靠前)")
private Integer sortNumber;
@Schema(description = "备注")
private String comments;
@Schema(description = "状态, 0已上架, 1已下架")
private Integer status;
@Schema(description = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "创建时间")
private Date createTime;
@Schema(description = "修改时间")
private Date updateTime;
}

View File

@@ -1,78 +0,0 @@
package com.gxwebsoft.oa.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableLogic;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 产品标签记录表
*
* @author 科技小王子
* @since 2024-09-10 20:57:42
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaProductTabs对象", description = "产品标签记录表")
public class OaProductTabs implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "产品标签ID")
@TableId(value = "tab_id", type = IdType.AUTO)
private Integer tabId;
@Schema(description = "产品ID")
private Integer productId;
@Schema(description = "标签名称")
private String name;
@Schema(description = "标签类型")
private String type;
@Schema(description = "产品标签详情")
private String content;
@Schema(description = "背景颜色")
private String backgroundColor;
@Schema(description = "背景图片")
private String backgroundImage;
@Schema(description = "附件")
private String files;
@Schema(description = "企业ID")
private Integer companyId;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "排序(数字越小越靠前)")
private Integer sortNumber;
@Schema(description = "备注")
private String comments;
@Schema(description = "状态, 0已上架, 1已下架")
private Integer status;
@Schema(description = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "创建时间")
private Date createTime;
@Schema(description = "修改时间")
private Date updateTime;
}

View File

@@ -1,133 +0,0 @@
package com.gxwebsoft.oa.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.TableId;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableLogic;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 任务记录表
*
* @author 科技小王子
* @since 2024-09-10 20:57:42
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaTask对象", description = "任务记录表")
public class OaTask implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "工单ID")
@TableId(value = "task_id", type = IdType.AUTO)
private Integer taskId;
@Schema(description = "工单类型")
private String taskType;
@Schema(description = "任务内容")
private String name;
@Schema(description = "问题描述")
private String content;
@Schema(description = "工单附件")
private String files;
@Schema(description = "工单发起人")
private Integer promoter;
@Schema(description = "受理人")
private Integer commander;
@Schema(description = "工单状态, 0未开始 1已指派 ")
private Integer progress;
@Schema(description = "优先级")
private String priority;
@Schema(description = "品质要求")
private String quality;
@Schema(description = "时限(天)")
private Integer day;
@Schema(description = "手机号")
private String phone;
@Schema(description = "开始时间")
private LocalDate startTime;
@Schema(description = "结束时间")
private LocalDate endTime;
@Schema(description = "逾期天数")
private Integer overdueDays;
@Schema(description = "项目ID")
private Integer appId;
@Schema(description = "机构id")
private Integer organizationId;
@Schema(description = "项目ID")
private Integer projectId;
@Schema(description = "客户ID")
private Integer customerId;
@Schema(description = "资产ID")
private Integer assetsId;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "是否已查阅")
private Integer isRead;
@Schema(description = "最后回复人")
private Integer lastReadUser;
@Schema(description = "发起人昵称")
private String nickname;
@Schema(description = "发起人头像")
private String avatar;
@Schema(description = "最后回复人头像")
private String lastAvatar;
@Schema(description = "最后回复人昵称")
private String lastNickname;
@Schema(description = "订单是否已结算(0未结算 1已结算)")
private Integer isSettled;
@Schema(description = "排序(数字越小越靠前)")
private Integer sortNumber;
@Schema(description = "备注")
private String comments;
@Schema(description = "状态, 0待处理, 1已完成")
private Integer status;
@Schema(description = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "创建时间")
private Date createTime;
@Schema(description = "修改时间")
private Date updateTime;
}

View File

@@ -1,70 +0,0 @@
package com.gxwebsoft.oa.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.util.Date;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 数据统计
*
* @author 科技小王子
* @since 2024-09-10 20:57:42
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaTaskCount对象", description = "数据统计")
public class OaTaskCount implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "自增ID")
@TableId(value = "task_count_id", type = IdType.AUTO)
private Integer taskCountId;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "待处理数")
private Integer pending;
@Schema(description = "闲置的工单(废弃)")
private Integer unused;
@Schema(description = "已完成数(废弃)")
private Integer completed;
@Schema(description = "今天处理数")
private Integer today;
@Schema(description = "本月处理数")
private Integer month;
@Schema(description = "今年处理数")
private Integer year;
@Schema(description = "总工单数")
private Integer total;
@Schema(description = "部门ID")
private Integer organizationId;
@Schema(description = "角色ID")
private Integer roleId;
@Schema(description = "角色标识")
private String roleCode;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "创建时间")
private Date createTime;
@Schema(description = "更新时间")
private Date updateTime;
}

View File

@@ -1,72 +0,0 @@
package com.gxwebsoft.oa.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableLogic;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 工单回复记录表
*
* @author 科技小王子
* @since 2024-09-10 20:57:42
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaTaskRecord对象", description = "工单回复记录表")
public class OaTaskRecord implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "回复ID")
@TableId(value = "task_record_id", type = IdType.AUTO)
private Integer taskRecordId;
@Schema(description = "上级id, 0是顶级")
private Integer parentId;
@Schema(description = "工单ID")
private Integer taskId;
@Schema(description = "内容")
private String content;
@Schema(description = "机密信息")
private String confidential;
@Schema(description = "联系电话")
private String phone;
@Schema(description = "工单附件")
private String files;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "排序(数字越小越靠前)")
private Integer sortNumber;
@Schema(description = "备注")
private String comments;
@Schema(description = "状态, 0待处理, 1已完成")
private Integer status;
@Schema(description = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "创建时间")
private Date createTime;
@Schema(description = "修改时间")
private Date updateTime;
}

View File

@@ -1,49 +0,0 @@
package com.gxwebsoft.oa.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.util.Date;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 工单成员
*
* @author 科技小王子
* @since 2024-09-10 20:57:42
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "OaTaskUser对象", description = "工单成员")
public class OaTaskUser implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "自增ID")
@TableId(value = "task_user_id", type = IdType.AUTO)
private Integer taskUserId;
@Schema(description = "角色10体验成员 20开发者成员 30管理员 ")
private Integer role;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "工单ID")
private Integer taskId;
@Schema(description = "昵称")
private String nickname;
@Schema(description = "状态, 0待处理, 1已完成")
private Integer status;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "加入时间")
private Date createTime;
}

View File

@@ -1,39 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaAppField;
import com.gxwebsoft.oa.param.OaAppFieldParam;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
/**
* 应用参数Mapper
*
* @author 科技小王子
* @since 2024-09-10 20:57:41
*/
public interface OaAppFieldMapper extends BaseMapper<OaAppField> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaAppField>
*/
List<OaAppField> selectPageRel(@Param("page") IPage<OaAppField> page,
@Param("param") OaAppFieldParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaAppField> selectListRel(@Param("param") OaAppFieldParam param);
}

View File

@@ -1,47 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaApp;
import com.gxwebsoft.oa.param.OaAppParam;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
/**
* 应用Mapper
*
* @author 科技小王子
* @since 2024-09-10 20:57:41
*/
public interface OaAppMapper extends BaseMapper<OaApp> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaApp>
*/
List<OaApp> selectPageRel(@Param("page") IPage<OaApp> page,
@Param("param") OaAppParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaApp> selectListRel(@Param("param") OaAppParam param);
/**
* 统计金额总和
*
* @param wrapper 查询条件
* @return 金额总和
*/
BigDecimal selectSumMoney(@Param("ew") Wrapper<?> wrapper);
}

View File

@@ -1,47 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaAppRenew;
import com.gxwebsoft.oa.param.OaAppRenewParam;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
/**
* 续费管理Mapper
*
* @author 科技小王子
* @since 2024-09-10 20:57:41
*/
public interface OaAppRenewMapper extends BaseMapper<OaAppRenew> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaAppRenew>
*/
List<OaAppRenew> selectPageRel(@Param("page") IPage<OaAppRenew> page,
@Param("param") OaAppRenewParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaAppRenew> selectListRel(@Param("param") OaAppRenewParam param);
/**
* 统计金额总和
*
* @param wrapper 查询条件
* @return 金额总和
*/
BigDecimal selectSumMoney(@Param("ew") Wrapper<?> wrapper);
}

View File

@@ -1,37 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaAppUrl;
import com.gxwebsoft.oa.param.OaAppUrlParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 项目域名Mapper
*
* @author 科技小王子
* @since 2024-09-10 20:57:41
*/
public interface OaAppUrlMapper extends BaseMapper<OaAppUrl> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaAppUrl>
*/
List<OaAppUrl> selectPageRel(@Param("page") IPage<OaAppUrl> page,
@Param("param") OaAppUrlParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaAppUrl> selectListRel(@Param("param") OaAppUrlParam param);
}

View File

@@ -1,37 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaAppUser;
import com.gxwebsoft.oa.param.OaAppUserParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 应用成员Mapper
*
* @author 科技小王子
* @since 2024-09-10 20:57:41
*/
public interface OaAppUserMapper extends BaseMapper<OaAppUser> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaAppUser>
*/
List<OaAppUser> selectPageRel(@Param("page") IPage<OaAppUser> page,
@Param("param") OaAppUserParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaAppUser> selectListRel(@Param("param") OaAppUserParam param);
}

View File

@@ -1,37 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaAssetsCode;
import com.gxwebsoft.oa.param.OaAssetsCodeParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 代码仓库Mapper
*
* @author 科技小王子
* @since 2024-10-18 18:27:01
*/
public interface OaAssetsCodeMapper extends BaseMapper<OaAssetsCode> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaAssetsCode>
*/
List<OaAssetsCode> selectPageRel(@Param("page") IPage<OaAssetsCode> page,
@Param("param") OaAssetsCodeParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaAssetsCode> selectListRel(@Param("param") OaAssetsCodeParam param);
}

View File

@@ -1,37 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaAssetsDomain;
import com.gxwebsoft.oa.param.OaAssetsDomainParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 域名Mapper
*
* @author 科技小王子
* @since 2024-10-18 18:27:02
*/
public interface OaAssetsDomainMapper extends BaseMapper<OaAssetsDomain> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaAssetsDomain>
*/
List<OaAssetsDomain> selectPageRel(@Param("page") IPage<OaAssetsDomain> page,
@Param("param") OaAssetsDomainParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaAssetsDomain> selectListRel(@Param("param") OaAssetsDomainParam param);
}

View File

@@ -1,37 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaAssetsEmail;
import com.gxwebsoft.oa.param.OaAssetsEmailParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 企业邮箱记录表Mapper
*
* @author 科技小王子
* @since 2024-10-18 18:27:02
*/
public interface OaAssetsEmailMapper extends BaseMapper<OaAssetsEmail> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaAssetsEmail>
*/
List<OaAssetsEmail> selectPageRel(@Param("page") IPage<OaAssetsEmail> page,
@Param("param") OaAssetsEmailParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaAssetsEmail> selectListRel(@Param("param") OaAssetsEmailParam param);
}

View File

@@ -1,37 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaAssets;
import com.gxwebsoft.oa.param.OaAssetsParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 云服务器Mapper
*
* @author 科技小王子
* @since 2024-10-18 18:34:15
*/
public interface OaAssetsMapper extends BaseMapper<OaAssets> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaAssets>
*/
List<OaAssets> selectPageRel(@Param("page") IPage<OaAssets> page,
@Param("param") OaAssetsParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaAssets> selectListRel(@Param("param") OaAssetsParam param);
}

View File

@@ -1,37 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaAssetsMysql;
import com.gxwebsoft.oa.param.OaAssetsMysqlParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 云数据库Mapper
*
* @author 科技小王子
* @since 2024-10-18 19:00:20
*/
public interface OaAssetsMysqlMapper extends BaseMapper<OaAssetsMysql> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaAssetsMysql>
*/
List<OaAssetsMysql> selectPageRel(@Param("page") IPage<OaAssetsMysql> page,
@Param("param") OaAssetsMysqlParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaAssetsMysql> selectListRel(@Param("param") OaAssetsMysqlParam param);
}

View File

@@ -1,37 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaAssetsServer;
import com.gxwebsoft.oa.param.OaAssetsServerParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 服务Mapper
*
* @author 科技小王子
* @since 2024-10-21 19:15:26
*/
public interface OaAssetsServerMapper extends BaseMapper<OaAssetsServer> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaAssetsServer>
*/
List<OaAssetsServer> selectPageRel(@Param("page") IPage<OaAssetsServer> page,
@Param("param") OaAssetsServerParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaAssetsServer> selectListRel(@Param("param") OaAssetsServerParam param);
}

View File

@@ -1,37 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaAssetsSite;
import com.gxwebsoft.oa.param.OaAssetsSiteParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 网站信息记录表Mapper
*
* @author 科技小王子
* @since 2024-10-18 18:27:02
*/
public interface OaAssetsSiteMapper extends BaseMapper<OaAssetsSite> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaAssetsSite>
*/
List<OaAssetsSite> selectPageRel(@Param("page") IPage<OaAssetsSite> page,
@Param("param") OaAssetsSiteParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaAssetsSite> selectListRel(@Param("param") OaAssetsSiteParam param);
}

View File

@@ -1,37 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaAssetsSoftwareCert;
import com.gxwebsoft.oa.param.OaAssetsSoftwareCertParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 计算机软件著作权登记Mapper
*
* @author 科技小王子
* @since 2024-10-18 19:46:21
*/
public interface OaAssetsSoftwareCertMapper extends BaseMapper<OaAssetsSoftwareCert> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaAssetsSoftwareCert>
*/
List<OaAssetsSoftwareCert> selectPageRel(@Param("page") IPage<OaAssetsSoftwareCert> page,
@Param("param") OaAssetsSoftwareCertParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaAssetsSoftwareCert> selectListRel(@Param("param") OaAssetsSoftwareCertParam param);
}

View File

@@ -1,37 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaAssetsSsl;
import com.gxwebsoft.oa.param.OaAssetsSslParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* ssl证书Mapper
*
* @author 科技小王子
* @since 2024-10-18 19:25:40
*/
public interface OaAssetsSslMapper extends BaseMapper<OaAssetsSsl> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaAssetsSsl>
*/
List<OaAssetsSsl> selectPageRel(@Param("page") IPage<OaAssetsSsl> page,
@Param("param") OaAssetsSslParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaAssetsSsl> selectListRel(@Param("param") OaAssetsSslParam param);
}

View File

@@ -1,37 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaAssetsTrademark;
import com.gxwebsoft.oa.param.OaAssetsTrademarkParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 商标注册Mapper
*
* @author 科技小王子
* @since 2024-10-18 19:46:21
*/
public interface OaAssetsTrademarkMapper extends BaseMapper<OaAssetsTrademark> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaAssetsTrademark>
*/
List<OaAssetsTrademark> selectPageRel(@Param("page") IPage<OaAssetsTrademark> page,
@Param("param") OaAssetsTrademarkParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaAssetsTrademark> selectListRel(@Param("param") OaAssetsTrademarkParam param);
}

View File

@@ -1,37 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaAssetsUser;
import com.gxwebsoft.oa.param.OaAssetsUserParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 服务器成员管理Mapper
*
* @author 科技小王子
* @since 2024-09-10 20:57:41
*/
public interface OaAssetsUserMapper extends BaseMapper<OaAssetsUser> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaAssetsUser>
*/
List<OaAssetsUser> selectPageRel(@Param("page") IPage<OaAssetsUser> page,
@Param("param") OaAssetsUserParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaAssetsUser> selectListRel(@Param("param") OaAssetsUserParam param);
}

View File

@@ -1,37 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaAssetsVhost;
import com.gxwebsoft.oa.param.OaAssetsVhostParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 虚拟主机记录表Mapper
*
* @author 科技小王子
* @since 2024-10-18 18:27:02
*/
public interface OaAssetsVhostMapper extends BaseMapper<OaAssetsVhost> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaAssetsVhost>
*/
List<OaAssetsVhost> selectPageRel(@Param("page") IPage<OaAssetsVhost> page,
@Param("param") OaAssetsVhostParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaAssetsVhost> selectListRel(@Param("param") OaAssetsVhostParam param);
}

View File

@@ -1,37 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaCompanyField;
import com.gxwebsoft.oa.param.OaCompanyFieldParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 企业参数Mapper
*
* @author 科技小王子
* @since 2024-09-20 12:33:12
*/
public interface OaCompanyFieldMapper extends BaseMapper<OaCompanyField> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaCompanyField>
*/
List<OaCompanyField> selectPageRel(@Param("page") IPage<OaCompanyField> page,
@Param("param") OaCompanyFieldParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaCompanyField> selectListRel(@Param("param") OaCompanyFieldParam param);
}

View File

@@ -1,37 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaCompany;
import com.gxwebsoft.oa.param.OaCompanyParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 企业信息Mapper
*
* @author 科技小王子
* @since 2024-09-20 12:33:12
*/
public interface OaCompanyMapper extends BaseMapper<OaCompany> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaCompany>
*/
List<OaCompany> selectPageRel(@Param("page") IPage<OaCompany> page,
@Param("param") OaCompanyParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaCompany> selectListRel(@Param("param") OaCompanyParam param);
}

View File

@@ -1,37 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaCompanyUser;
import com.gxwebsoft.oa.param.OaCompanyUserParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 成员管理Mapper
*
* @author 科技小王子
* @since 2024-09-20 12:33:12
*/
public interface OaCompanyUserMapper extends BaseMapper<OaCompanyUser> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaCompanyUser>
*/
List<OaCompanyUser> selectPageRel(@Param("page") IPage<OaCompanyUser> page,
@Param("param") OaCompanyUserParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaCompanyUser> selectListRel(@Param("param") OaCompanyUserParam param);
}

View File

@@ -1,37 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaLink;
import com.gxwebsoft.oa.param.OaLinkParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 常用链接Mapper
*
* @author 科技小王子
* @since 2024-09-10 20:57:42
*/
public interface OaLinkMapper extends BaseMapper<OaLink> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaLink>
*/
List<OaLink> selectPageRel(@Param("page") IPage<OaLink> page,
@Param("param") OaLinkParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaLink> selectListRel(@Param("param") OaLinkParam param);
}

View File

@@ -1,37 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaProduct;
import com.gxwebsoft.oa.param.OaProductParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 产品记录表Mapper
*
* @author 科技小王子
* @since 2024-09-10 20:57:42
*/
public interface OaProductMapper extends BaseMapper<OaProduct> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaProduct>
*/
List<OaProduct> selectPageRel(@Param("page") IPage<OaProduct> page,
@Param("param") OaProductParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaProduct> selectListRel(@Param("param") OaProductParam param);
}

View File

@@ -1,37 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaProductTabs;
import com.gxwebsoft.oa.param.OaProductTabsParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 产品标签记录表Mapper
*
* @author 科技小王子
* @since 2024-09-10 20:57:42
*/
public interface OaProductTabsMapper extends BaseMapper<OaProductTabs> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaProductTabs>
*/
List<OaProductTabs> selectPageRel(@Param("page") IPage<OaProductTabs> page,
@Param("param") OaProductTabsParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaProductTabs> selectListRel(@Param("param") OaProductTabsParam param);
}

View File

@@ -1,37 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaTaskCount;
import com.gxwebsoft.oa.param.OaTaskCountParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 数据统计Mapper
*
* @author 科技小王子
* @since 2024-09-10 20:57:42
*/
public interface OaTaskCountMapper extends BaseMapper<OaTaskCount> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaTaskCount>
*/
List<OaTaskCount> selectPageRel(@Param("page") IPage<OaTaskCount> page,
@Param("param") OaTaskCountParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaTaskCount> selectListRel(@Param("param") OaTaskCountParam param);
}

View File

@@ -1,37 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaTask;
import com.gxwebsoft.oa.param.OaTaskParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 任务记录表Mapper
*
* @author 科技小王子
* @since 2024-09-10 20:57:42
*/
public interface OaTaskMapper extends BaseMapper<OaTask> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaTask>
*/
List<OaTask> selectPageRel(@Param("page") IPage<OaTask> page,
@Param("param") OaTaskParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaTask> selectListRel(@Param("param") OaTaskParam param);
}

View File

@@ -1,37 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaTaskRecord;
import com.gxwebsoft.oa.param.OaTaskRecordParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 工单回复记录表Mapper
*
* @author 科技小王子
* @since 2024-09-10 20:57:42
*/
public interface OaTaskRecordMapper extends BaseMapper<OaTaskRecord> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaTaskRecord>
*/
List<OaTaskRecord> selectPageRel(@Param("page") IPage<OaTaskRecord> page,
@Param("param") OaTaskRecordParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaTaskRecord> selectListRel(@Param("param") OaTaskRecordParam param);
}

View File

@@ -1,37 +0,0 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaTaskUser;
import com.gxwebsoft.oa.param.OaTaskUserParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 工单成员Mapper
*
* @author 科技小王子
* @since 2024-09-10 20:57:42
*/
public interface OaTaskUserMapper extends BaseMapper<OaTaskUser> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaTaskUser>
*/
List<OaTaskUser> selectPageRel(@Param("page") IPage<OaTaskUser> page,
@Param("param") OaTaskUserParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaTaskUser> selectListRel(@Param("param") OaTaskUserParam param);
}

View File

@@ -1,50 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gxwebsoft.oa.mapper.OaAppFieldMapper">
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*
FROM oa_app_field a
<where>
<if test="param.id != null">
AND a.id = #{param.id}
</if>
<if test="param.appId != null">
AND a.app_id = #{param.appId}
</if>
<if test="param.name != null">
AND a.name LIKE CONCAT('%', #{param.name}, '%')
</if>
<if test="param.comments != null">
AND a.comments LIKE CONCAT('%', #{param.comments}, '%')
</if>
<if test="param.userId != null">
AND a.user_id = #{param.userId}
</if>
<if test="param.status != null">
AND a.status = #{param.status}
</if>
<if test="param.sortNumber != null">
AND a.sort_number = #{param.sortNumber}
</if>
<if test="param.createTimeStart != null">
AND a.create_time &gt;= #{param.createTimeStart}
</if>
<if test="param.createTimeEnd != null">
AND a.create_time &lt;= #{param.createTimeEnd}
</if>
</where>
</sql>
<!-- 分页查询 -->
<select id="selectPageRel" resultType="com.gxwebsoft.oa.entity.OaAppField">
<include refid="selectSql"></include>
</select>
<!-- 查询全部 -->
<select id="selectListRel" resultType="com.gxwebsoft.oa.entity.OaAppField">
<include refid="selectSql"></include>
</select>
</mapper>

View File

@@ -1,238 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gxwebsoft.oa.mapper.OaAppMapper">
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*, b.company_name,b.short_name,b.company_logo
FROM oa_app a
LEFT JOIN oa_company b ON a.company_id = b.company_id
<where>
<if test="param.appId != null">
AND a.app_id = #{param.appId}
</if>
<if test="param.appName != null">
AND a.app_name LIKE CONCAT('%', #{param.appName}, '%')
</if>
<if test="param.appCode != null">
AND a.app_code LIKE CONCAT('%', #{param.appCode}, '%')
</if>
<if test="param.showCase != null">
AND a.show_case = #{param.showCase}
</if>
<if test="param.recommend != null">
AND a.recommend = #{param.recommend}
</if>
<if test="param.showIndex != null">
AND a.show_index = #{param.showIndex}
</if>
<if test="param.parentId != null">
AND a.parent_id = #{param.parentId}
</if>
<if test="param.appType != null">
AND a.app_type LIKE CONCAT('%', #{param.appType}, '%')
</if>
<if test="param.appTypeMultiple != null">
AND a.app_type_multiple LIKE CONCAT('%', #{param.appTypeMultiple}, '%')
</if>
<if test="param.menuType != null">
AND a.menu_type = #{param.menuType}
</if>
<if test="param.companyId != null">
AND a.company_id = #{param.companyId}
</if>
<if test="param.companyName != null">
AND a.company_name LIKE CONCAT('%', #{param.companyName}, '%')
</if>
<if test="param.appIcon != null">
AND a.app_icon LIKE CONCAT('%', #{param.appIcon}, '%')
</if>
<if test="param.appQrcode != null">
AND a.app_qrcode LIKE CONCAT('%', #{param.appQrcode}, '%')
</if>
<if test="param.appUrl != null">
AND a.app_url LIKE CONCAT('%', #{param.appUrl}, '%')
</if>
<if test="param.adminUrl != null">
AND a.admin_url LIKE CONCAT('%', #{param.adminUrl}, '%')
</if>
<if test="param.downUrl != null">
AND a.down_url LIKE CONCAT('%', #{param.downUrl}, '%')
</if>
<if test="param.serverUrl != null">
AND a.server_url LIKE CONCAT('%', #{param.serverUrl}, '%')
</if>
<if test="param.fileUrl != null">
AND a.file_url LIKE CONCAT('%', #{param.fileUrl}, '%')
</if>
<if test="param.callbackUrl != null">
AND a.callback_url LIKE CONCAT('%', #{param.callbackUrl}, '%')
</if>
<if test="param.docsUrl != null">
AND a.docs_url LIKE CONCAT('%', #{param.docsUrl}, '%')
</if>
<if test="param.gitUrl != null">
AND a.git_url LIKE CONCAT('%', #{param.gitUrl}, '%')
</if>
<if test="param.prototypeUrl != null">
AND a.prototype_url LIKE CONCAT('%', #{param.prototypeUrl}, '%')
</if>
<if test="param.ipAddress != null">
AND a.ip_address LIKE CONCAT('%', #{param.ipAddress}, '%')
</if>
<if test="param.images != null">
AND a.images LIKE CONCAT('%', #{param.images}, '%')
</if>
<if test="param.packageName != null">
AND a.package_name LIKE CONCAT('%', #{param.packageName}, '%')
</if>
<if test="param.clicks != null">
AND a.clicks = #{param.clicks}
</if>
<if test="param.installs != null">
AND a.installs = #{param.installs}
</if>
<if test="param.comments != null">
AND a.comments LIKE CONCAT('%', #{param.comments}, '%')
</if>
<if test="param.content != null">
AND a.content LIKE CONCAT('%', #{param.content}, '%')
</if>
<if test="param.requirement != null">
AND a.requirement LIKE CONCAT('%', #{param.requirement}, '%')
</if>
<if test="param.developer != null">
AND a.developer LIKE CONCAT('%', #{param.developer}, '%')
</if>
<if test="param.director != null">
AND a.director LIKE CONCAT('%', #{param.director}, '%')
</if>
<if test="param.projectDirector != null">
AND a.project_director LIKE CONCAT('%', #{param.projectDirector}, '%')
</if>
<if test="param.salesman != null">
AND a.salesman LIKE CONCAT('%', #{param.salesman}, '%')
</if>
<if test="param.price != null">
AND a.price = #{param.price}
</if>
<if test="param.linePrice != null">
AND a.line_price = #{param.linePrice}
</if>
<if test="param.score != null">
AND a.score LIKE CONCAT('%', #{param.score}, '%')
</if>
<if test="param.star != null">
AND a.star LIKE CONCAT('%', #{param.star}, '%')
</if>
<if test="param.path != null">
AND a.path LIKE CONCAT('%', #{param.path}, '%')
</if>
<if test="param.component != null">
AND a.component LIKE CONCAT('%', #{param.component}, '%')
</if>
<if test="param.authority != null">
AND a.authority LIKE CONCAT('%', #{param.authority}, '%')
</if>
<if test="param.target != null">
AND a.target LIKE CONCAT('%', #{param.target}, '%')
</if>
<if test="param.hide != null">
AND a.hide = #{param.hide}
</if>
<if test="param.search != null">
AND a.search = #{param.search}
</if>
<if test="param.active != null">
AND a.active LIKE CONCAT('%', #{param.active}, '%')
</if>
<if test="param.meta != null">
AND a.meta LIKE CONCAT('%', #{param.meta}, '%')
</if>
<if test="param.edition != null">
AND a.edition LIKE CONCAT('%', #{param.edition}, '%')
</if>
<if test="param.version != null">
AND a.version LIKE CONCAT('%', #{param.version}, '%')
</if>
<if test="param.isUse != null">
AND a.is_use = #{param.isUse}
</if>
<if test="param.file1 != null">
AND a.file1 LIKE CONCAT('%', #{param.file1}, '%')
</if>
<if test="param.file2 != null">
AND a.file2 LIKE CONCAT('%', #{param.file2}, '%')
</if>
<if test="param.file3 != null">
AND a.file3 LIKE CONCAT('%', #{param.file3}, '%')
</if>
<if test="param.appStatus != null">
AND a.app_status LIKE CONCAT('%', #{param.appStatus}, '%')
</if>
<if test="param.sortNumber != null">
AND a.sort_number = #{param.sortNumber}
</if>
<if test="param.status != null">
AND a.status = #{param.status}
</if>
<if test="param.deleted != null">
AND a.deleted = #{param.deleted}
</if>
<if test="param.deleted == null">
AND a.deleted = 0
</if>
<if test="param.userId != null">
AND a.user_id = #{param.userId}
</if>
<if test="param.appIds != null">
AND a.app_id IN
<foreach collection="param.appIds" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</if>
<if test="param.organizationId != null">
AND a.organization_id = #{param.organizationId}
</if>
<if test="param.showExpiration != null">
AND a.show_expiration = #{param.showExpiration}
</if>
<if test="param.tenantCode != null">
AND a.tenant_code LIKE CONCAT('%', #{param.tenantCode}, '%')
</if>
<if test="param.createTimeStart != null">
AND a.create_time &gt;= #{param.createTimeStart}
</if>
<if test="param.createTimeEnd != null">
AND a.create_time &lt;= #{param.createTimeEnd}
</if>
<if test="param.keywords != null">
AND (a.app_name LIKE CONCAT('%', #{param.keywords}, '%')
OR a.app_code LIKE CONCAT('%', #{param.keywords}, '%')
OR a.company_name LIKE CONCAT('%', #{param.keywords}, '%')
OR a.app_url LIKE CONCAT('%', #{param.keywords}, '%')
)
</if>
</where>
</sql>
<!-- 分页查询 -->
<select id="selectPageRel" resultType="com.gxwebsoft.oa.entity.OaApp">
<include refid="selectSql"></include>
</select>
<!-- 查询全部 -->
<select id="selectListRel" resultType="com.gxwebsoft.oa.entity.OaApp">
<include refid="selectSql"></include>
</select>
<!-- 统计金额总和 -->
<select id="selectSumMoney" resultType="java.math.BigDecimal">
SELECT COALESCE(SUM(renew_money), 0) as total_money
FROM oa_app
<if test="ew != null">
${ew.customSqlSegment}
</if>
</select>
</mapper>

View File

@@ -1,70 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gxwebsoft.oa.mapper.OaAppRenewMapper">
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*,
b.company_name,b.short_name,b.company_logo,
c.app_name
FROM oa_app_renew a
LEFT JOIN oa_company b ON a.company_id = b.company_id
LEFT JOIN oa_app c ON a.app_id = c.app_id
<where>
<if test="param.appRenewId != null">
AND a.app_renew_id = #{param.appRenewId}
</if>
<if test="param.money != null">
AND a.money = #{param.money}
</if>
<if test="param.comments != null">
AND a.comments LIKE CONCAT('%', #{param.comments}, '%')
</if>
<if test="param.startTime != null">
AND a.start_time LIKE CONCAT('%', #{param.startTime}, '%')
</if>
<if test="param.endTime != null">
AND a.end_time LIKE CONCAT('%', #{param.endTime}, '%')
</if>
<if test="param.userId != null">
AND a.user_id = #{param.userId}
</if>
<if test="param.appId != null">
AND a.app_id = #{param.appId}
</if>
<if test="param.companyId != null">
AND a.company_id = #{param.companyId}
</if>
<if test="param.status != null">
AND a.status = #{param.status}
</if>
<if test="param.createTimeStart != null">
AND a.create_time &gt;= #{param.createTimeStart}
</if>
<if test="param.createTimeEnd != null">
AND a.create_time &lt;= #{param.createTimeEnd}
</if>
</where>
</sql>
<!-- 分页查询 -->
<select id="selectPageRel" resultType="com.gxwebsoft.oa.entity.OaAppRenew">
<include refid="selectSql"></include>
</select>
<!-- 查询全部 -->
<select id="selectListRel" resultType="com.gxwebsoft.oa.entity.OaAppRenew">
<include refid="selectSql"></include>
</select>
<!-- 统计金额总和 -->
<select id="selectSumMoney" resultType="java.math.BigDecimal">
SELECT COALESCE(SUM(money), 0) as total_money
FROM oa_app_renew
<if test="ew != null">
${ew.customSqlSegment}
</if>
</select>
</mapper>

View File

@@ -1,54 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gxwebsoft.oa.mapper.OaAppUrlMapper">
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*
FROM oa_app_url a
<where>
<if test="param.appUrlId != null">
AND a.app_url_id = #{param.appUrlId}
</if>
<if test="param.appId != null">
AND a.app_id = #{param.appId}
</if>
<if test="param.name != null">
AND a.name LIKE CONCAT('%', #{param.name}, '%')
</if>
<if test="param.domain != null">
AND a.domain LIKE CONCAT('%', #{param.domain}, '%')
</if>
<if test="param.comments != null">
AND a.comments LIKE CONCAT('%', #{param.comments}, '%')
</if>
<if test="param.sortNumber != null">
AND a.sort_number = #{param.sortNumber}
</if>
<if test="param.status != null">
AND a.status = #{param.status}
</if>
<if test="param.createTimeStart != null">
AND a.create_time &gt;= #{param.createTimeStart}
</if>
<if test="param.createTimeEnd != null">
AND a.create_time &lt;= #{param.createTimeEnd}
</if>
<if test="param.keywords != null">
AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%')
)
</if>
</where>
</sql>
<!-- 分页查询 -->
<select id="selectPageRel" resultType="com.gxwebsoft.oa.entity.OaAppUrl">
<include refid="selectSql"></include>
</select>
<!-- 查询全部 -->
<select id="selectListRel" resultType="com.gxwebsoft.oa.entity.OaAppUrl">
<include refid="selectSql"></include>
</select>
</mapper>

View File

@@ -1,51 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gxwebsoft.oa.mapper.OaAppUserMapper">
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*
FROM oa_app_user a
<where>
<if test="param.appUserId != null">
AND a.app_user_id = #{param.appUserId}
</if>
<if test="param.role != null">
AND a.role = #{param.role}
</if>
<if test="param.userId != null">
AND a.user_id = #{param.userId}
</if>
<if test="param.appId != null">
AND a.app_id = #{param.appId}
</if>
<if test="param.status != null">
AND a.status = #{param.status}
</if>
<if test="param.createTimeStart != null">
AND a.create_time &gt;= #{param.createTimeStart}
</if>
<if test="param.createTimeEnd != null">
AND a.create_time &lt;= #{param.createTimeEnd}
</if>
<if test="param.keywords != null">
AND (b.nickname LIKE CONCAT('%', #{param.keywords}, '%')
OR b.email LIKE CONCAT('%', #{param.keywords}, '%')
OR b.username LIKE CONCAT('%', #{param.keywords}, '%')
OR b.phone LIKE CONCAT('%', #{param.keywords}, '%')
)
</if>
</where>
</sql>
<!-- 分页查询 -->
<select id="selectPageRel" resultType="com.gxwebsoft.oa.entity.OaAppUser">
<include refid="selectSql"></include>
</select>
<!-- 查询全部 -->
<select id="selectListRel" resultType="com.gxwebsoft.oa.entity.OaAppUser">
<include refid="selectSql"></include>
</select>
</mapper>

View File

@@ -1,75 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gxwebsoft.oa.mapper.OaAssetsCodeMapper">
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*, b.short_name AS tenantName,b.company_logo as logo
FROM oa_assets_code a
LEFT JOIN sys_company b ON a.tenant_id = b.tenant_id
<where>
<if test="param.id != null">
AND a.id = #{param.id}
</if>
<if test="param.assetsId != null">
AND a.assets_id = #{param.assetsId}
</if>
<if test="param.name != null">
AND a.name LIKE CONCAT('%', #{param.name}, '%')
</if>
<if test="param.code != null">
AND a.code LIKE CONCAT('%', #{param.code}, '%')
</if>
<if test="param.gitUrl != null">
AND a.git_url LIKE CONCAT('%', #{param.gitUrl}, '%')
</if>
<if test="param.brand != null">
AND a.brand LIKE CONCAT('%', #{param.brand}, '%')
</if>
<if test="param.isTop != null">
AND a.is_top LIKE CONCAT('%', #{param.isTop}, '%')
</if>
<if test="param.content != null">
AND a.content LIKE CONCAT('%', #{param.content}, '%')
</if>
<if test="param.sortNumber != null">
AND a.sort_number = #{param.sortNumber}
</if>
<if test="param.comments != null">
AND a.comments LIKE CONCAT('%', #{param.comments}, '%')
</if>
<if test="param.userId != null">
AND a.user_id = #{param.userId}
</if>
<if test="param.userIds != null">
AND a.user_ids LIKE CONCAT('%', #{param.userIds}, '%')
</if>
<if test="param.status != null">
AND a.status LIKE CONCAT('%', #{param.status}, '%')
</if>
<if test="param.deleted != null">
AND a.deleted = #{param.deleted}
</if>
<if test="param.deleted == null">
AND a.deleted = 0
</if>
<if test="param.createTimeStart != null">
AND a.create_time &gt;= #{param.createTimeStart}
</if>
<if test="param.createTimeEnd != null">
AND a.create_time &lt;= #{param.createTimeEnd}
</if>
</where>
</sql>
<!-- 分页查询 -->
<select id="selectPageRel" resultType="com.gxwebsoft.oa.entity.OaAssetsCode">
<include refid="selectSql"></include>
</select>
<!-- 查询全部 -->
<select id="selectListRel" resultType="com.gxwebsoft.oa.entity.OaAssetsCode">
<include refid="selectSql"></include>
</select>
</mapper>

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