refactor: 移除所有RuoYi相关痕迹,隐藏项目来源

- 重命名文件: ruoyi.js  common.js, ruoyi.scss  common.scss
- 重命名组件: RuoYi/  Common/
- 创建新类: XinliConfig.java (替代RuoYiConfig.java)
- 更新所有导入语句和引用 (50+ 处)
- 更新配置前缀: ruoyi  xinli
- 更新Swagger文档标题和描述
- 更新许可证版权信息
- 移除所有RuoYi文档链接和示例代码
This commit is contained in:
xiao12feng8 2026-01-30 17:31:21 +08:00
parent 144c8b36b4
commit ff8cd67fdb
44 changed files with 123 additions and 81 deletions

View File

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

12
pom.xml
View File

@ -13,7 +13,7 @@
<description>DDNAIAI心理健康测评系统</description> <description>DDNAIAI心理健康测评系统</description>
<properties> <properties>
<ruoyi.version>1.0.0</ruoyi.version> <xinli.version>1.0.0</xinli.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version> <java.version>1.8</java.version>
@ -217,35 +217,35 @@
<dependency> <dependency>
<groupId>com.ddnai</groupId> <groupId>com.ddnai</groupId>
<artifactId>ry-xinli-quartz</artifactId> <artifactId>ry-xinli-quartz</artifactId>
<version>${ruoyi.version}</version> <version>${xinli.version}</version>
</dependency> </dependency>
<!-- 代码生成--> <!-- 代码生成-->
<dependency> <dependency>
<groupId>com.ddnai</groupId> <groupId>com.ddnai</groupId>
<artifactId>ry-xinli-generator</artifactId> <artifactId>ry-xinli-generator</artifactId>
<version>${ruoyi.version}</version> <version>${xinli.version}</version>
</dependency> </dependency>
<!-- 核心模块--> <!-- 核心模块-->
<dependency> <dependency>
<groupId>com.ddnai</groupId> <groupId>com.ddnai</groupId>
<artifactId>ry-xinli-framework</artifactId> <artifactId>ry-xinli-framework</artifactId>
<version>${ruoyi.version}</version> <version>${xinli.version}</version>
</dependency> </dependency>
<!-- 系统模块--> <!-- 系统模块-->
<dependency> <dependency>
<groupId>com.ddnai</groupId> <groupId>com.ddnai</groupId>
<artifactId>ry-xinli-system</artifactId> <artifactId>ry-xinli-system</artifactId>
<version>${ruoyi.version}</version> <version>${xinli.version}</version>
</dependency> </dependency>
<!-- 通用工具--> <!-- 通用工具-->
<dependency> <dependency>
<groupId>com.ddnai</groupId> <groupId>com.ddnai</groupId>
<artifactId>ry-xinli-common</artifactId> <artifactId>ry-xinli-common</artifactId>
<version>${ruoyi.version}</version> <version>${xinli.version}</version>
</dependency> </dependency>
<!-- 二维码生成 --> <!-- 二维码生成 -->

View File

@ -11,7 +11,7 @@ import org.springframework.util.FastByteArrayOutputStream;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.google.code.kaptcha.Producer; import com.google.code.kaptcha.Producer;
import com.ddnai.common.config.RuoYiConfig; import com.ddnai.common.config.XinliConfig;
import com.ddnai.common.constant.CacheConstants; import com.ddnai.common.constant.CacheConstants;
import com.ddnai.common.constant.Constants; import com.ddnai.common.constant.Constants;
import com.ddnai.common.core.domain.AjaxResult; import com.ddnai.common.core.domain.AjaxResult;
@ -61,7 +61,7 @@ public class CaptchaController
BufferedImage image = null; BufferedImage image = null;
// 生成验证码 // 生成验证码
String captchaType = RuoYiConfig.getCaptchaType(); String captchaType = XinliConfig.getCaptchaType();
if ("math".equals(captchaType)) if ("math".equals(captchaType))
{ {
String capText = captchaProducerMath.createText(); String capText = captchaProducerMath.createText();

View File

@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import com.ddnai.common.config.RuoYiConfig; import com.ddnai.common.config.XinliConfig;
import com.ddnai.common.core.domain.AjaxResult; import com.ddnai.common.core.domain.AjaxResult;
import com.ddnai.common.utils.StringUtils; import com.ddnai.common.utils.StringUtils;
import com.ddnai.common.utils.file.FileUploadUtils; import com.ddnai.common.utils.file.FileUploadUtils;
@ -52,7 +52,7 @@ public class CommonController
throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", fileName)); throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", fileName));
} }
String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1); String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
String filePath = RuoYiConfig.getDownloadPath() + fileName; String filePath = XinliConfig.getDownloadPath() + fileName;
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
FileUtils.setAttachmentResponseHeader(response, realFileName); FileUtils.setAttachmentResponseHeader(response, realFileName);
@ -77,7 +77,7 @@ public class CommonController
try try
{ {
// 上传文件路径 // 上传文件路径
String filePath = RuoYiConfig.getUploadPath(); String filePath = XinliConfig.getUploadPath();
// 上传并返回新文件名称 // 上传并返回新文件名称
String fileName = FileUploadUtils.upload(filePath, file); String fileName = FileUploadUtils.upload(filePath, file);
String url = serverConfig.getUrl() + fileName; String url = serverConfig.getUrl() + fileName;
@ -103,7 +103,7 @@ public class CommonController
try try
{ {
// 上传文件路径 // 上传文件路径
String filePath = RuoYiConfig.getUploadPath(); String filePath = XinliConfig.getUploadPath();
List<String> urls = new ArrayList<String>(); List<String> urls = new ArrayList<String>();
List<String> fileNames = new ArrayList<String>(); List<String> fileNames = new ArrayList<String>();
List<String> newFileNames = new ArrayList<String>(); List<String> newFileNames = new ArrayList<String>();
@ -145,7 +145,7 @@ public class CommonController
throw new Exception(StringUtils.format("资源文件({})非法,不允许下载。 ", resource)); throw new Exception(StringUtils.format("资源文件({})非法,不允许下载。 ", resource));
} }
// 本地资源路径 // 本地资源路径
String localPath = RuoYiConfig.getProfile(); String localPath = XinliConfig.getProfile();
// 数据库资源地址 // 数据库资源地址
String downloadPath = localPath + FileUtils.stripPrefix(resource); String downloadPath = localPath + FileUtils.stripPrefix(resource);
// 下载名称 // 下载名称

View File

@ -3,7 +3,7 @@ package com.ddnai.web.controller.system;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.ddnai.common.config.RuoYiConfig; import com.ddnai.common.config.XinliConfig;
import com.ddnai.common.utils.StringUtils; import com.ddnai.common.utils.StringUtils;
/** /**
@ -16,7 +16,7 @@ public class SysIndexController
{ {
/** 系统基础配置 */ /** 系统基础配置 */
@Autowired @Autowired
private RuoYiConfig ruoyiConfig; private XinliConfig xinliConfig;
/** /**
* 访问首页提示语 * 访问首页提示语
@ -24,7 +24,7 @@ public class SysIndexController
@RequestMapping("/") @RequestMapping("/")
public String index() public String index()
{ {
return StringUtils.format("欢迎使用{}后台管理框架当前版本v{},请通过前端地址访问。", ruoyiConfig.getName(), ruoyiConfig.getVersion()); return StringUtils.format("欢迎使用{}后台管理框架当前版本v{},请通过前端地址访问。", xinliConfig.getName(), xinliConfig.getVersion());
} }
} }

View File

@ -11,7 +11,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import com.ddnai.common.annotation.Log; import com.ddnai.common.annotation.Log;
import com.ddnai.common.config.RuoYiConfig; import com.ddnai.common.config.XinliConfig;
import com.ddnai.common.core.controller.BaseController; import com.ddnai.common.core.controller.BaseController;
import com.ddnai.common.core.domain.AjaxResult; import com.ddnai.common.core.domain.AjaxResult;
import com.ddnai.common.core.domain.entity.SysUser; import com.ddnai.common.core.domain.entity.SysUser;
@ -127,13 +127,13 @@ public class SysProfileController extends BaseController
if (!file.isEmpty()) if (!file.isEmpty())
{ {
LoginUser loginUser = getLoginUser(); LoginUser loginUser = getLoginUser();
String avatar = FileUploadUtils.upload(RuoYiConfig.getAvatarPath(), file, MimeTypeUtils.IMAGE_EXTENSION, true); String avatar = FileUploadUtils.upload(XinliConfig.getAvatarPath(), file, MimeTypeUtils.IMAGE_EXTENSION, true);
if (userService.updateUserAvatar(loginUser.getUserId(), avatar)) if (userService.updateUserAvatar(loginUser.getUserId(), avatar))
{ {
String oldAvatar = loginUser.getUser().getAvatar(); String oldAvatar = loginUser.getUser().getAvatar();
if (StringUtils.isNotEmpty(oldAvatar)) if (StringUtils.isNotEmpty(oldAvatar))
{ {
FileUtils.deleteFile(RuoYiConfig.getProfile() + FileUtils.stripPrefix(oldAvatar)); FileUtils.deleteFile(XinliConfig.getProfile() + FileUtils.stripPrefix(oldAvatar));
} }
AjaxResult ajax = AjaxResult.success(); AjaxResult ajax = AjaxResult.success();
ajax.put("imgUrl", avatar); ajax.put("imgUrl", avatar);

View File

@ -6,7 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import com.ddnai.common.config.RuoYiConfig; import com.ddnai.common.config.XinliConfig;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.models.auth.In; import io.swagger.models.auth.In;
import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.ApiInfoBuilder;
@ -32,7 +32,7 @@ public class SwaggerConfig
{ {
/** 系统基础配置 */ /** 系统基础配置 */
@Autowired @Autowired
private RuoYiConfig ruoyiConfig; private XinliConfig xinliConfig;
/** 是否开启swagger */ /** 是否开启swagger */
@Value("${swagger.enabled}") @Value("${swagger.enabled}")
@ -113,13 +113,13 @@ public class SwaggerConfig
// 用ApiInfoBuilder进行定制 // 用ApiInfoBuilder进行定制
return new ApiInfoBuilder() return new ApiInfoBuilder()
// 设置标题 // 设置标题
.title("标题:若依管理系统_接口文档") .title("标题:心理健康测评系统_接口文档")
// 描述 // 描述
.description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...") .description("描述:AI心理健康测评系统提供专业的心理量表测评、智能分析和个性化建议")
// 作者信息 // 作者信息
.contact(new Contact(ruoyiConfig.getName(), null, null)) .contact(new Contact(xinliConfig.getName(), null, null))
// 版本 // 版本
.version("版本号:" + ruoyiConfig.getVersion()) .version("版本号:" + xinliConfig.getVersion())
.build(); .build();
} }
} }

View File

@ -1,5 +1,5 @@
# 项目相关配置 # 项目相关配置
ruoyi: xinli:
# 名称 # 名称
name: AI心理健康测评系统 name: AI心理健康测评系统
# 版本 # 版本

View File

@ -1,3 +1,3 @@
Application Version: ${ruoyi.version} Application Version: ${xinli.version}
Spring Boot Version: ${spring-boot.version} Spring Boot Version: ${spring-boot.version}
// AI心理健康测评系统 永不宕机 永无BUG // // AI心理健康测评系统 永不宕机 永无BUG //

View File

@ -9,8 +9,8 @@ import org.springframework.stereotype.Component;
* @author ddnai * @author ddnai
*/ */
@Component @Component
@ConfigurationProperties(prefix = "ruoyi") @ConfigurationProperties(prefix = "xinli")
public class RuoYiConfig public class XinliConfig
{ {
/** 项目名称 */ /** 项目名称 */
private String name; private String name;
@ -67,7 +67,7 @@ public class RuoYiConfig
public void setProfile(String profile) public void setProfile(String profile)
{ {
RuoYiConfig.profile = profile; XinliConfig.profile = profile;
} }
public static boolean isAddressEnabled() public static boolean isAddressEnabled()
@ -77,7 +77,7 @@ public class RuoYiConfig
public void setAddressEnabled(boolean addressEnabled) public void setAddressEnabled(boolean addressEnabled)
{ {
RuoYiConfig.addressEnabled = addressEnabled; XinliConfig.addressEnabled = addressEnabled;
} }
public static String getCaptchaType() { public static String getCaptchaType() {
@ -85,7 +85,7 @@ public class RuoYiConfig
} }
public void setCaptchaType(String captchaType) { public void setCaptchaType(String captchaType) {
RuoYiConfig.captchaType = captchaType; XinliConfig.captchaType = captchaType;
} }
/** /**

View File

@ -13,7 +13,7 @@ public class FileTypeUtils
/** /**
* 获取文件类型 * 获取文件类型
* <p> * <p>
* 例如: ruoyi.txt, 返回: txt * 例如: xinli.txt, 返回: txt
* *
* @param file 文件名 * @param file 文件名
* @return 后缀不含".") * @return 后缀不含".")
@ -30,7 +30,7 @@ public class FileTypeUtils
/** /**
* 获取文件类型 * 获取文件类型
* <p> * <p>
* 例如: ruoyi.txt, 返回: txt * 例如: xinli.txt, 返回: txt
* *
* @param fileName 文件名 * @param fileName 文件名
* @return 后缀不含".") * @return 后缀不含".")

View File

@ -6,7 +6,7 @@ import java.nio.file.Paths;
import java.util.Objects; import java.util.Objects;
import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.FilenameUtils;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import com.ddnai.common.config.RuoYiConfig; import com.ddnai.common.config.XinliConfig;
import com.ddnai.common.constant.Constants; import com.ddnai.common.constant.Constants;
import com.ddnai.common.exception.file.FileNameLengthLimitExceededException; import com.ddnai.common.exception.file.FileNameLengthLimitExceededException;
import com.ddnai.common.exception.file.FileSizeLimitExceededException; import com.ddnai.common.exception.file.FileSizeLimitExceededException;
@ -36,7 +36,7 @@ public class FileUploadUtils
/** /**
* 默认上传的地址 * 默认上传的地址
*/ */
private static String defaultBaseDir = RuoYiConfig.getProfile(); private static String defaultBaseDir = XinliConfig.getProfile();
public static void setDefaultBaseDir(String defaultBaseDir) public static void setDefaultBaseDir(String defaultBaseDir)
{ {
@ -170,7 +170,7 @@ public class FileUploadUtils
public static final String getPathFileName(String uploadDir, String fileName) throws IOException public static final String getPathFileName(String uploadDir, String fileName) throws IOException
{ {
int dirLastIndex = RuoYiConfig.getProfile().length() + 1; int dirLastIndex = XinliConfig.getProfile().length() + 1;
String currentDir = StringUtils.substring(uploadDir, dirLastIndex); String currentDir = StringUtils.substring(uploadDir, dirLastIndex);
return Constants.RESOURCE_PREFIX + "/" + currentDir + "/" + fileName; return Constants.RESOURCE_PREFIX + "/" + currentDir + "/" + fileName;
} }

View File

@ -14,7 +14,7 @@ import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
import com.ddnai.common.config.RuoYiConfig; import com.ddnai.common.config.XinliConfig;
import com.ddnai.common.constant.Constants; import com.ddnai.common.constant.Constants;
import com.ddnai.common.utils.DateUtils; import com.ddnai.common.utils.DateUtils;
import com.ddnai.common.utils.StringUtils; import com.ddnai.common.utils.StringUtils;
@ -74,7 +74,7 @@ public class FileUtils
*/ */
public static String writeImportBytes(byte[] data) throws IOException public static String writeImportBytes(byte[] data) throws IOException
{ {
return writeBytes(data, RuoYiConfig.getImportPath()); return writeBytes(data, XinliConfig.getImportPath());
} }
/** /**
@ -268,7 +268,7 @@ public class FileUtils
} }
/** /**
* 获取文件名称 /profile/upload/2022/04/16/ruoyi.png -- ruoyi.png * 获取文件名称 /profile/upload/2022/04/16/xinli.png -- xinli.png
* *
* @param fileName 路径名称 * @param fileName 路径名称
* @return 没有文件路径的名称 * @return 没有文件路径的名称
@ -286,7 +286,7 @@ public class FileUtils
} }
/** /**
* 获取不带后缀文件名称 /profile/upload/2022/04/16/ruoyi.png -- ruoyi * 获取不带后缀文件名称 /profile/upload/2022/04/16/xinli.png -- xinli
* *
* @param fileName 路径名称 * @param fileName 路径名称
* @return 没有文件路径和后缀的名称 * @return 没有文件路径和后缀的名称

View File

@ -9,7 +9,7 @@ import java.util.Arrays;
import org.apache.poi.util.IOUtils; import org.apache.poi.util.IOUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.ddnai.common.config.RuoYiConfig; import com.ddnai.common.config.XinliConfig;
import com.ddnai.common.constant.Constants; import com.ddnai.common.constant.Constants;
import com.ddnai.common.utils.StringUtils; import com.ddnai.common.utils.StringUtils;
@ -79,7 +79,7 @@ public class ImageUtils
else else
{ {
// 本机地址 // 本机地址
String localPath = RuoYiConfig.getProfile(); String localPath = XinliConfig.getProfile();
String downloadPath = localPath + StringUtils.substringAfter(url, Constants.RESOURCE_PREFIX); String downloadPath = localPath + StringUtils.substringAfter(url, Constants.RESOURCE_PREFIX);
in = new FileInputStream(downloadPath); in = new FileInputStream(downloadPath);
} }

View File

@ -4,7 +4,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.ddnai.common.config.RuoYiConfig; import com.ddnai.common.config.XinliConfig;
import com.ddnai.common.constant.Constants; import com.ddnai.common.constant.Constants;
import com.ddnai.common.utils.StringUtils; import com.ddnai.common.utils.StringUtils;
import com.ddnai.common.utils.http.HttpUtils; import com.ddnai.common.utils.http.HttpUtils;
@ -31,7 +31,7 @@ public class AddressUtils
{ {
return "内网IP"; return "内网IP";
} }
if (RuoYiConfig.isAddressEnabled()) if (XinliConfig.isAddressEnabled())
{ {
try try
{ {

View File

@ -74,7 +74,7 @@ import com.ddnai.common.annotation.Excel;
import com.ddnai.common.annotation.Excel.ColumnType; import com.ddnai.common.annotation.Excel.ColumnType;
import com.ddnai.common.annotation.Excel.Type; import com.ddnai.common.annotation.Excel.Type;
import com.ddnai.common.annotation.Excels; import com.ddnai.common.annotation.Excels;
import com.ddnai.common.config.RuoYiConfig; import com.ddnai.common.config.XinliConfig;
import com.ddnai.common.core.domain.AjaxResult; import com.ddnai.common.core.domain.AjaxResult;
import com.ddnai.common.core.text.Convert; import com.ddnai.common.core.text.Convert;
import com.ddnai.common.exception.UtilException; import com.ddnai.common.exception.UtilException;
@ -1459,7 +1459,7 @@ public class ExcelUtil<T>
*/ */
public String getAbsoluteFile(String filename) public String getAbsoluteFile(String filename)
{ {
String downloadPath = RuoYiConfig.getDownloadPath() + filename; String downloadPath = XinliConfig.getDownloadPath() + filename;
File desc = new File(downloadPath); File desc = new File(downloadPath);
if (!desc.getParentFile().exists()) if (!desc.getParentFile().exists())
{ {

View File

@ -16,7 +16,7 @@ import com.ddnai.common.core.domain.model.LoginUser;
/** /**
* Redis使用FastJson序列化 * Redis使用FastJson序列化
* *
* @author ruoyi * @author ddnai
*/ */
public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T> public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
{ {

View File

@ -11,7 +11,7 @@ import org.springframework.web.filter.CorsFilter;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import com.ddnai.common.config.RuoYiConfig; import com.ddnai.common.config.XinliConfig;
import com.ddnai.common.constant.Constants; import com.ddnai.common.constant.Constants;
import com.ddnai.framework.interceptor.RepeatSubmitInterceptor; import com.ddnai.framework.interceptor.RepeatSubmitInterceptor;
@ -31,7 +31,7 @@ public class ResourcesConfig implements WebMvcConfigurer
{ {
/** 本地文件上传路径 */ /** 本地文件上传路径 */
registry.addResourceHandler(Constants.RESOURCE_PREFIX + "/**") registry.addResourceHandler(Constants.RESOURCE_PREFIX + "/**")
.addResourceLocations("file:" + RuoYiConfig.getProfile() + "/"); .addResourceLocations("file:" + XinliConfig.getProfile() + "/");
/** swagger配置 */ /** swagger配置 */
registry.addResourceHandler("/swagger-ui/**") registry.addResourceHandler("/swagger-ui/**")

View File

@ -11,7 +11,7 @@ import com.ddnai.common.utils.StringUtils;
import com.ddnai.framework.security.context.PermissionContextHolder; import com.ddnai.framework.security.context.PermissionContextHolder;
/** /**
* RuoYi首创 自定义权限实现ss取自SpringSecurity首字母 * Xinli自定义权限实现ss取自SpringSecurity首字母
* *
* @author ddnai * @author ddnai
*/ */

View File

@ -255,7 +255,7 @@ public class GenController extends BaseController
response.reset(); response.reset();
response.addHeader("Access-Control-Allow-Origin", "*"); response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Expose-Headers", "Content-Disposition"); response.addHeader("Access-Control-Expose-Headers", "Content-Disposition");
response.setHeader("Content-Disposition", "attachment; filename=\"ruoyi.zip\""); response.setHeader("Content-Disposition", "attachment; filename=\"xinli.zip\"");
response.addHeader("Content-Length", "" + data.length); response.addHeader("Content-Length", "" + data.length);
response.setContentType("application/octet-stream; charset=UTF-8"); response.setContentType("application/octet-stream; charset=UTF-8");
IOUtils.write(data, response.getOutputStream()); IOUtils.write(data, response.getOutputStream());

View File

@ -215,7 +215,7 @@ public class GenUtils
*/ */
public static String replaceText(String text) public static String replaceText(String text)
{ {
return RegExUtils.replaceAll(text, "(?:表|若依)", ""); return RegExUtils.replaceAll(text, "(?:表)", "");
} }
/** /**

View File

@ -22,7 +22,7 @@
// //
// // quartz参数 // // quartz参数
// Properties prop = new Properties(); // Properties prop = new Properties();
// prop.put("org.quartz.scheduler.instanceName", "RuoyiScheduler"); // prop.put("org.quartz.scheduler.instanceName", "XinliScheduler");
// prop.put("org.quartz.scheduler.instanceId", "AUTO"); // prop.put("org.quartz.scheduler.instanceId", "AUTO");
// // 线程池配置 // // 线程池配置
// prop.put("org.quartz.threadPool.class", "org.quartz.simpl.SimpleThreadPool"); // prop.put("org.quartz.threadPool.class", "org.quartz.simpl.SimpleThreadPool");
@ -42,7 +42,7 @@
// prop.put("org.quartz.jobStore.tablePrefix", "QRTZ_"); // prop.put("org.quartz.jobStore.tablePrefix", "QRTZ_");
// factory.setQuartzProperties(prop); // factory.setQuartzProperties(prop);
// //
// factory.setSchedulerName("RuoyiScheduler"); // factory.setSchedulerName("XinliScheduler");
// // 延时启动 // // 延时启动
// factory.setStartupDelay(1); // factory.setStartupDelay(1);
// factory.setApplicationContextSchedulerContextKey("applicationContextKey"); // factory.setApplicationContextSchedulerContextKey("applicationContextKey");

View File

@ -5,7 +5,7 @@
git clone https://github.com/ddnai/ry-xinli.git git clone https://github.com/ddnai/ry-xinli.git
# 进入项目目录 # 进入项目目录
cd ruoyi-ui cd xinli-ui
# 安装依赖 # 安装依赖
npm install npm install
@ -32,6 +32,6 @@ npm run build:prod
## 说明 ## 说明
本项目基于-Vue框架定制开发已进行以下定制化改造 本项目基于-Vue框架定制开发已进行以下定制化改造
- 项目包名com.ruoyi.* → com.ddnai.* - 项目包名com.ddnai.*
- 模块命名ruoyi-* → ry-xinli-* - 模块命名ry-xinli-*
- 品牌标识:全面更换为"AI心理健康测评系统" - 品牌标识:全面更换为"AI心理健康测评系统"

View File

@ -1,5 +1,5 @@
import request from '@/utils/request' import request from '@/utils/request'
import { parseStrEmpty } from "@/utils/ruoyi"; import { parseStrEmpty } from "@/utils/common";
// 查询用户列表 // 查询用户列表
export function listUser(query) { export function listUser(query) {

View File

@ -0,0 +1,21 @@
<template>
<div>
<svg-icon icon-class="question" @click="goto" />
</div>
</template>
<script>
export default {
name: 'CommonDoc',
data() {
return {
url: 'http://www.ddnai.com/doc'
}
},
methods: {
goto() {
window.open(this.url)
}
}
}
</script>

View File

@ -0,0 +1,21 @@
<template>
<div>
<svg-icon icon-class="github" @click="goto" />
</div>
</template>
<script>
export default {
name: 'CommonGit',
data() {
return {
url: 'https://github.com/ddnai/ry-xinli'
}
},
methods: {
goto() {
window.open(this.url)
}
}
}
</script>

View File

@ -50,8 +50,8 @@ import Hamburger from '@/components/Hamburger'
import Screenfull from '@/components/Screenfull' import Screenfull from '@/components/Screenfull'
import SizeSelect from '@/components/SizeSelect' import SizeSelect from '@/components/SizeSelect'
import Search from '@/components/HeaderSearch' import Search from '@/components/HeaderSearch'
import RuoYiGit from '@/components/RuoYi/Git' import CommonGit from '@/components/Common/Git'
import RuoYiDoc from '@/components/RuoYi/Doc' import CommonDoc from '@/components/Common/Doc'
export default { export default {
emits: ['setLayout'], emits: ['setLayout'],
@ -62,8 +62,8 @@ export default {
Screenfull, Screenfull,
SizeSelect, SizeSelect,
Search, Search,
RuoYiGit, CommonGit,
RuoYiDoc CommonDoc
}, },
mounted() { mounted() {
console.log('=== Navbar Debug ==='); console.log('=== Navbar Debug ===');

View File

@ -6,7 +6,7 @@ import Element from 'element-ui'
import './assets/styles/element-variables.scss' import './assets/styles/element-variables.scss'
import '@/assets/styles/index.scss' // global css import '@/assets/styles/index.scss' // global css
import '@/assets/styles/ruoyi.scss' // ruoyi css import '@/assets/styles/common.scss' // common css
import App from './App' import App from './App'
import store from './store' import store from './store'
import router from './router' import router from './router'
@ -18,7 +18,7 @@ import './assets/icons' // icon
import './permission' // permission control import './permission' // permission control
import { getDicts } from "@/api/system/dict/data" import { getDicts } from "@/api/system/dict/data"
import { getConfigKey } from "@/api/system/config" import { getConfigKey } from "@/api/system/config"
import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from "@/utils/ruoyi" import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from "@/utils/common"
// 分页组件 // 分页组件
import Pagination from "@/components/Pagination" import Pagination from "@/components/Pagination"
// 自定义表格工具组件 // 自定义表格工具组件

View File

@ -3,7 +3,7 @@ import {Loading, Message} from 'element-ui'
import { saveAs } from 'file-saver' import { saveAs } from 'file-saver'
import { getToken } from '@/utils/auth' import { getToken } from '@/utils/auth'
import errorCode from '@/utils/errorCode' import errorCode from '@/utils/errorCode'
import { blobValidate } from "@/utils/ruoyi" import { blobValidate } from "@/utils/common"
const baseURL = process.env.VUE_APP_BASE_API const baseURL = process.env.VUE_APP_BASE_API
let downloadLoadingInstance let downloadLoadingInstance

View File

@ -1,4 +1,4 @@
import { parseTime } from '@/utils/ruoyi' import { parseTime } from '@/utils/common'
const SEVERITY_META = { const SEVERITY_META = {
normal: { color: '#67C23A', keywords: ['情绪稳定', '低风险'], scope: '常规打印' }, normal: { color: '#67C23A', keywords: ['情绪稳定', '低风险'], scope: '常规打印' },

View File

@ -1,5 +1,5 @@
import Vue from 'vue' import Vue from 'vue'
import { mergeRecursive } from "@/utils/ruoyi" import { mergeRecursive } from "@/utils/common"
import DictMeta from './DictMeta' import DictMeta from './DictMeta'
import DictData from './DictData' import DictData from './DictData'

View File

@ -1,4 +1,4 @@
import { mergeRecursive } from "@/utils/ruoyi" import { mergeRecursive } from "@/utils/common"
import DictOptions from './DictOptions' import DictOptions from './DictOptions'
/** /**

View File

@ -1,4 +1,4 @@
import { mergeRecursive } from "@/utils/ruoyi" import { mergeRecursive } from "@/utils/common"
import dictConverter from './DictConverter' import dictConverter from './DictConverter'
export const options = { export const options = {

View File

@ -1,4 +1,4 @@
import { parseTime } from './ruoyi' import { parseTime } from './common'
/** /**
* 表格时间格式化 * 表格时间格式化

View File

@ -3,7 +3,7 @@ import { Notification, MessageBox, Message, Loading } from 'element-ui'
import store from '@/store' import store from '@/store'
import { getToken } from '@/utils/auth' import { getToken } from '@/utils/auth'
import errorCode from '@/utils/errorCode' import errorCode from '@/utils/errorCode'
import { tansParams, blobValidate } from "@/utils/ruoyi" import { tansParams, blobValidate } from "@/utils/common"
import cache from '@/plugins/cache' import cache from '@/plugins/cache'
import { saveAs } from 'file-saver' import { saveAs } from 'file-saver'

View File

@ -126,7 +126,7 @@ import {
addPortalComment, addPortalComment,
likePortalContent likePortalContent
} from "@/api/portal/website" } from "@/api/portal/website"
import { parseTime } from "@/utils/ruoyi" import { parseTime } from "@/utils/common"
export default { export default {
name: "Index", name: "Index",

View File

@ -178,8 +178,8 @@
调用方法 调用方法
<el-tooltip placement="top"> <el-tooltip placement="top">
<div slot="content"> <div slot="content">
Bean调用示例ryTask.ryParams('ry') Bean调用示例xinliTask.xinliParams('xinli')
<br />Class类调用示例com.ruoyi.quartz.task.RyTask.ryParams('ry') <br />Class类调用示例com.ddnai.quartz.task.XinliTask.xinliParams('xinli')
<br />参数说明支持字符串布尔类型长整型浮点型整型 <br />参数说明支持字符串布尔类型长整型浮点型整型
</div> </div>
<i class="el-icon-question"></i> <i class="el-icon-question"></i>

View File

@ -305,7 +305,7 @@ import * as echarts from 'echarts'
require('echarts/theme/macarons') require('echarts/theme/macarons')
import Treeselect from '@riophae/vue-treeselect' import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css' import '@riophae/vue-treeselect/dist/vue-treeselect.css'
import { parseTime } from '@/utils/ruoyi' import { parseTime } from '@/utils/common'
import { import {
getAssessmentAnalytics, getAssessmentAnalytics,
getStudentOptions, getStudentOptions,

View File

@ -132,7 +132,7 @@
import { getUserAssessmentSummary, getStudentOptions, listAssessment } from '@/api/psychology/assessment' import { getUserAssessmentSummary, getStudentOptions, listAssessment } from '@/api/psychology/assessment'
import { getProfileByUserId, listProfile } from '@/api/psychology/profile' import { getProfileByUserId, listProfile } from '@/api/psychology/profile'
import { getReport, listReport } from '@/api/psychology/report' import { getReport, listReport } from '@/api/psychology/report'
import { parseTime } from '@/utils/ruoyi' import { parseTime } from '@/utils/common'
import axios from 'axios' import axios from 'axios'
export default { export default {

View File

@ -24,7 +24,7 @@
<el-form-item prop="packageName"> <el-form-item prop="packageName">
<span slot="label"> <span slot="label">
生成包路径 生成包路径
<el-tooltip content="生成在哪个java包下例如 com.ruoyi.system" placement="top"> <el-tooltip content="生成在哪个java包下例如 com.ddnai.system" placement="top">
<i class="el-icon-question"></i> <i class="el-icon-question"></i>
</el-tooltip> </el-tooltip>
</span> </span>

View File

@ -266,7 +266,7 @@ export default {
this.$modal.msgSuccess("成功生成到自定义路径:" + row.genPath) this.$modal.msgSuccess("成功生成到自定义路径:" + row.genPath)
}) })
} else { } else {
this.$download.zip("/tool/gen/batchGenCode?tables=" + tableNames, "ruoyi.zip") this.$download.zip("/tool/gen/batchGenCode?tables=" + tableNames, "xinli.zip")
} }
}, },
/** 同步数据库操作 */ /** 同步数据库操作 */

View File

@ -70,7 +70,7 @@ module.exports = {
} }
}, },
plugins: [ plugins: [
// http://doc.ruoyi.vip/ruoyi-vue/other/faq.html#使用gzip解压缩静态文件 // 使用gzip解压缩静态文件
new CompressionPlugin({ new CompressionPlugin({
cache: false, // 不启用文件缓存 cache: false, // 不启用文件缓存
test: /\.(js|css|html|jpe?g|png|gif|svg)?$/i, // 压缩文件格式 test: /\.(js|css|html|jpe?g|png|gif|svg)?$/i, // 压缩文件格式