diff --git a/.idea/.gitignore b/.idea/.gitignore
index 89be8cf..bc93133 100644
--- a/.idea/.gitignore
+++ b/.idea/.gitignore
@@ -2,7 +2,11 @@
/shelf/
/workspace.xml
# 数据源本地存储已忽略文件
+<<<<<<< HEAD
+/../../../../../../:\Users\33424\Desktop\jianshenfanggl没有注释\.idea/dataSources/
+=======
/../../../../../../../:\Users\33424\Desktop\gym\jianshenfanggl\.idea/dataSources/
+>>>>>>> develop
/dataSources.local.xml
# 基于编辑器的 HTTP 客户端请求
/httpRequests/
diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 0000000..656cf71
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+jianshenfanggl
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..54f6a93
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..63e9001
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000..712ab9d
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..b784bbc
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
index 51e0d1c..f5aa6c4 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -2,7 +2,11 @@
+<<<<<<< HEAD
+
+=======
+>>>>>>> develop
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 94a25f7..113f660 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -2,5 +2,9 @@
+<<<<<<< HEAD
+
+=======
+>>>>>>> develop
\ No newline at end of file
diff --git a/gym b/gym
new file mode 160000
index 0000000..efe5258
--- /dev/null
+++ b/gym
@@ -0,0 +1 @@
+Subproject commit efe5258eda99ba1aac5fb7fffdc2414d5412705d
diff --git a/jianshenfanggl.iml b/jianshenfanggl.iml
new file mode 100644
index 0000000..1daccae
--- /dev/null
+++ b/jianshenfanggl.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/com/annotation/APPLoginUser.java b/src/main/java/com/annotation/APPLoginUser.java
index 8b5936c..51329cd 100644
--- a/src/main/java/com/annotation/APPLoginUser.java
+++ b/src/main/java/com/annotation/APPLoginUser.java
@@ -1,3 +1,20 @@
+<<<<<<< HEAD
+package com.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 登录用户信息
+ */
+@Target(ElementType.PARAMETER)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface APPLoginUser {
+
+}
+=======
// 声明该代码文件所在的包名为 com.annotation
package com.annotation;
@@ -26,4 +43,5 @@ import java.lang.annotation.Target;
public @interface APPLoginUser {
// 定义一个空注解,作为标记使用
// 实际使用时可以配合拦截器或参数解析器,自动注入当前登录用户对象
-}
\ No newline at end of file
+}
+>>>>>>> develop
diff --git a/src/main/java/com/annotation/ColumnInfo.java b/src/main/java/com/annotation/ColumnInfo.java
index 21ae1ec..d2d79bf 100644
--- a/src/main/java/com/annotation/ColumnInfo.java
+++ b/src/main/java/com/annotation/ColumnInfo.java
@@ -1,3 +1,18 @@
+<<<<<<< HEAD
+package com.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target(ElementType.FIELD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface ColumnInfo {
+ String comment();
+ String type();
+}
+=======
// 定义该文件所在的包路径,将该 Java 类组织到 com.annotation 这个包空间下,方便项目的模块化管理和避免类名冲突
package com.annotation;
@@ -24,4 +39,5 @@ public @interface ColumnInfo {
// 定义type属性,表示字段的类型
String type();
-}
\ No newline at end of file
+}
+>>>>>>> develop
diff --git a/src/main/java/com/annotation/IgnoreAuth.java b/src/main/java/com/annotation/IgnoreAuth.java
index d620996..bd48726 100644
--- a/src/main/java/com/annotation/IgnoreAuth.java
+++ b/src/main/java/com/annotation/IgnoreAuth.java
@@ -1,3 +1,18 @@
+<<<<<<< HEAD
+package com.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * 忽略Token验证
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface IgnoreAuth {
+
+}
+=======
// 定义该文件所在的包路径
package com.annotation;
@@ -15,4 +30,5 @@ import java.lang.annotation.*;
public @interface IgnoreAuth {
// 这是一个标记注解,不包含任何属性
// 仅用于标识需要跳过Token验证的方法
-}
\ No newline at end of file
+}
+>>>>>>> develop
diff --git a/src/main/java/com/annotation/LoginUser.java b/src/main/java/com/annotation/LoginUser.java
index 12f266d..8badabf 100644
--- a/src/main/java/com/annotation/LoginUser.java
+++ b/src/main/java/com/annotation/LoginUser.java
@@ -1,3 +1,20 @@
+<<<<<<< HEAD
+package com.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 登录用户信息
+ */
+@Target(ElementType.PARAMETER)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface LoginUser {
+
+}
+=======
// 定义该文件所在的包路径,在 Java 里,包是组织类和接口的一种方式,此包路径为 com.annotation,能防止命名冲突,也便于代码的管理与维护
package com.annotation;
@@ -22,4 +39,5 @@ import java.lang.annotation.Target;
public @interface LoginUser {
// 这是一个标记注解,不包含任何属性
// 用于标识需要自动注入当前登录用户信息的参数
-}
\ No newline at end of file
+}
+>>>>>>> develop
diff --git a/src/main/java/com/config/InterceptorConfig.java b/src/main/java/com/config/InterceptorConfig.java
index 5867530..767380d 100644
--- a/src/main/java/com/config/InterceptorConfig.java
+++ b/src/main/java/com/config/InterceptorConfig.java
@@ -1,3 +1,44 @@
+<<<<<<< HEAD
+package com.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
+
+import com.interceptor.AuthorizationInterceptor;
+
+@Configuration
+public class InterceptorConfig extends WebMvcConfigurationSupport{
+
+ @Bean
+ public AuthorizationInterceptor getAuthorizationInterceptor() {
+ return new AuthorizationInterceptor();
+ }
+
+ @Override
+ public void addInterceptors(InterceptorRegistry registry) {
+ registry.addInterceptor(getAuthorizationInterceptor()).addPathPatterns("/**").excludePathPatterns("/static/**");
+ super.addInterceptors(registry);
+ }
+
+ /**
+ * springboot 2.0配置WebMvcConfigurationSupport之后,会导致默认配置被覆盖,要访问静态资源需要重写addResourceHandlers方法
+ */
+ @Override
+ public void addResourceHandlers(ResourceHandlerRegistry registry) {
+ registry.addResourceHandler("/**")
+ .addResourceLocations("classpath:/resources/")
+ .addResourceLocations("classpath:/static/")
+ .addResourceLocations("classpath:/admin/")
+ .addResourceLocations("classpath:/img/")
+ .addResourceLocations("classpath:/front/")
+ .addResourceLocations("classpath:/public/");
+ super.addResourceHandlers(registry);
+ }
+}
+=======
// 声明当前文件所在的包路径,在 Java 项目中,包用于组织代码结构,这里表示该文件属于 com.config 包,有助于模块化管理和避免命名冲突
package com.config;
@@ -63,4 +104,5 @@ public class InterceptorConfig extends WebMvcConfigurationSupport {
registry.addResourceLocations("classpath:/public/");
super.addResourceHandlers(registry);
}
-}
\ No newline at end of file
+}
+>>>>>>> develop
diff --git a/src/main/java/com/config/MyMetaObjectHandler.java b/src/main/java/com/config/MyMetaObjectHandler.java
index c017e16..ddff0c4 100644
--- a/src/main/java/com/config/MyMetaObjectHandler.java
+++ b/src/main/java/com/config/MyMetaObjectHandler.java
@@ -1,3 +1,33 @@
+<<<<<<< HEAD
+package com.config;
+
+import java.util.Date;
+
+import org.apache.ibatis.reflection.MetaObject;
+
+import com.baomidou.mybatisplus.mapper.MetaObjectHandler;
+
+/**
+ * 自定义填充处理器
+ */
+public class MyMetaObjectHandler extends MetaObjectHandler {
+
+ @Override
+ public void insertFill(MetaObject metaObject) {
+ this.setFieldValByName("ctime", new Date(), metaObject);
+ }
+
+ @Override
+ public boolean openUpdateFill() {
+ return false;
+ }
+
+ @Override
+ public void updateFill(MetaObject metaObject) {
+ // 关闭更新填充、这里不执行
+ }
+}
+=======
// 声明当前文件所在的包路径
package com.config;
@@ -41,4 +71,5 @@ public class MyMetaObjectHandler extends MetaObjectHandler {
// 如需启用更新填充,可在此添加类似:
// this.setFieldValByName("utime", new Date(), metaObject);
}
-}
\ No newline at end of file
+}
+>>>>>>> develop
diff --git a/src/main/java/com/config/MybatisPlusConfig.java b/src/main/java/com/config/MybatisPlusConfig.java
index a87c3c6..b7c58bb 100644
--- a/src/main/java/com/config/MybatisPlusConfig.java
+++ b/src/main/java/com/config/MybatisPlusConfig.java
@@ -1,3 +1,29 @@
+<<<<<<< HEAD
+
+package com.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import com.baomidou.mybatisplus.mapper.MetaObjectHandler;
+import com.baomidou.mybatisplus.plugins.PaginationInterceptor;
+
+/**
+ * mybatis-plus配置
+ */
+@Configuration
+public class MybatisPlusConfig {
+
+ /**
+ * 分页插件
+ */
+ @Bean
+ public PaginationInterceptor paginationInterceptor() {
+ return new PaginationInterceptor();
+ }
+
+}
+=======
// 声明当前文件所在的包路径,在 Java 项目里,包用于组织和管理代码,此包路径为 com.config,有助于将相关的配置类集中管理,避免命名冲突
package com.config;
@@ -29,4 +55,5 @@ public class MybatisPlusConfig {
// - 性能分析插件
// - 乐观锁插件
// - SQL注入器等
-}
\ No newline at end of file
+}
+>>>>>>> develop
diff --git a/src/main/java/com/controller/CommonController.java b/src/main/java/com/controller/CommonController.java
index 0ab38b3..7008b5e 100644
--- a/src/main/java/com/controller/CommonController.java
+++ b/src/main/java/com/controller/CommonController.java
@@ -1,3 +1,25 @@
+<<<<<<< HEAD
+package com.controller;
+
+import java.io.*;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+import javax.servlet.http.HttpServletRequest;
+
+import com.alibaba.fastjson.JSON;
+import com.utils.StringUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.json.JSONObject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.util.ResourceUtils;
+=======
// 声明当前文件所在的包路径
package com.controller;
@@ -31,12 +53,24 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.ResourceUtils;
// 导入Spring MVC注解
+>>>>>>> develop
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
+<<<<<<< HEAD
+import com.annotation.IgnoreAuth;
+import com.baidu.aip.face.AipFace;
+import com.baidu.aip.face.MatchRequest;
+import com.baidu.aip.util.Base64Util;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.entity.ConfigEntity;
+import com.service.CommonService;
+import com.service.ConfigService;
+=======
// 导入自定义注解
import com.annotation.IgnoreAuth;
// 导入百度AI相关类
@@ -52,10 +86,19 @@ import com.entity.ConfigEntity;
import com.service.CommonService;
import com.service.ConfigService;
// 导入工具类
+>>>>>>> develop
import com.utils.BaiduUtil;
import com.utils.FileUtil;
import com.utils.R;
+<<<<<<< HEAD
+/**
+ * 通用接口
+ */
+@RestController
+public class CommonController {
+ private static final Logger logger = LoggerFactory.getLogger(CommonController.class);
+=======
//通用接口控制器
//提供系统通用的各种功能接口
@@ -65,10 +108,55 @@ public class CommonController {
private static final Logger logger = LoggerFactory.getLogger(CommonController.class);
// 自动注入通用服务
+>>>>>>> develop
@Autowired
private CommonService commonService;
+<<<<<<< HEAD
+ /**
+ * Java代码实现MySQL数据库导出
+ *
+ * @param mysqlUrl MySQL安装路径
+ * @param hostIP MySQL数据库所在服务器地址IP
+ * @param userName 进入数据库所需要的用户名
+ * @param hostPort 数据库端口
+ * @param password 进入数据库所需要的密码
+ * @param savePath 数据库文件保存路径
+ * @param fileName 数据库导出文件文件名
+ * @param databaseName 要导出的数据库名
+ * @return 返回true表示导出成功,否则返回false。
+ */
+ @IgnoreAuth
+ @RequestMapping("/beifen")
+ public R beifen(String mysqlUrl, String hostIP, String userName, String hostPort, String password, String savePath, String fileName, String databaseName) {
+ File saveFile = new File(savePath);
+ if (!saveFile.exists()) {// 如果目录不存在
+ saveFile.mkdirs();// 创建文件夹
+ }
+ if (!savePath.endsWith(File.separator)) {
+ savePath = savePath + File.separator;
+ }
+ PrintWriter printWriter = null;
+ BufferedReader bufferedReader = null;
+ try {
+ Runtime runtime = Runtime.getRuntime();
+ String cmd = mysqlUrl + "mysqldump -h" + hostIP + " -u" + userName + " -P" + hostPort + " -p" + password + " " + databaseName;
+ runtime.exec(cmd);
+ Process process = runtime.exec(cmd);
+ InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream(), "utf8");
+ bufferedReader = new BufferedReader(inputStreamReader);
+ printWriter = new PrintWriter(new OutputStreamWriter(new FileOutputStream(savePath + fileName), "utf8"));
+ String line;
+ while ((line = bufferedReader.readLine()) != null) {
+ printWriter.println(line);
+ }
+ printWriter.flush();
+ } catch (Exception e) {
+ e.printStackTrace();
+ return R.error("备份数据出错");
+ } finally {
+=======
// * MySQL数据库备份接口
// * @param mysqlUrl MySQL安装路径
// * @param hostIP 数据库服务器IP
@@ -131,6 +219,7 @@ public class CommonController {
return R.error("备份数据出错");
} finally {
// 在finally块中确保资源关闭
+>>>>>>> develop
try {
if (bufferedReader != null) {
bufferedReader.close();
@@ -142,6 +231,42 @@ public class CommonController {
e.printStackTrace();
}
}
+<<<<<<< HEAD
+ return R.ok();
+ }
+
+ /**
+ * Java实现MySQL数据库导入
+ *
+ * @param mysqlUrl MySQL安装路径
+ * @param hostIP MySQL数据库所在服务器地址IP
+ * @param userName 进入数据库所需要的用户名
+ * @param hostPort 数据库端口
+ * @param password 进入数据库所需要的密码
+ * @param savePath 数据库文件保存路径
+ * @param fileName 数据库导出文件文件名
+ * @param databaseName 要导出的数据库名
+ */
+ @IgnoreAuth
+ @RequestMapping("/huanyuan")
+ public R huanyuan(String mysqlUrl, String hostIP, String userName, String hostPort, String password, String savePath, String fileName, String databaseName) {
+ try {
+ Runtime rt = Runtime.getRuntime();
+ Process child1 = rt.exec(mysqlUrl+"mysql.exe -h" + hostIP + " -u" + userName + " -P" + hostPort + " -p" + password + " " + databaseName);
+ OutputStream out = child1.getOutputStream();//控制台的输入信息作为输出流
+ String inStr;
+ StringBuffer sb = new StringBuffer("");
+ String outStr;
+ BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(savePath+"/"+fileName), "utf-8"));
+ while ((inStr = br.readLine()) != null) {
+ sb.append(inStr + "\r\n");
+ }
+ outStr = sb.toString();
+ OutputStreamWriter writer = new OutputStreamWriter(out, "utf8");
+ writer.write(outStr);
+// 注:这里如果用缓冲方式写入文件的话,会导致中文乱码,用flush()方法则可以避免
+ writer.flush();
+=======
// 返回成功结果
return R.ok();
}
@@ -191,20 +316,100 @@ public class CommonController {
writer.flush();
// 关闭资源
+>>>>>>> develop
out.close();
br.close();
writer.close();
} catch (Exception e) {
+<<<<<<< HEAD
+ e.printStackTrace();
+ return R.error("数据导入出错");
+ }
+=======
// 打印异常堆栈
e.printStackTrace();
// 返回错误信息
return R.error("数据导入出错");
}
// 返回成功结果
+>>>>>>> develop
return R.ok();
}
+<<<<<<< HEAD
+ /**
+ * 饼状图求和
+ * @return
+ */
+ @RequestMapping("/pieSum")
+ public R pieSum(@RequestParam Map params) {
+ logger.debug("饼状图求和:,,Controller:{},,params:{}",this.getClass().getName(),params);
+ List