commit b1f24cedc241b733f03237b841b0188944913ea0
Author: wjl <3533384953@qq.com>
Date: Mon Apr 28 23:50:17 2025 +0800
Initial commit
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..7d05e99
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,10 @@
+# 默认忽略的文件
+/shelf/
+/workspace.xml
+# 基于编辑器的 HTTP 客户端请求
+/httpRequests/
+# 依赖于环境的 Maven 主目录路径
+/mavenHomeManager.xml
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..f03c948
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..122a905
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..c2365ab
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/com/controller/CommonController.java b/com/controller/CommonController.java
new file mode 100644
index 0000000..61ed655
--- /dev/null
+++ b/com/controller/CommonController.java
@@ -0,0 +1,240 @@
+package com.controller;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.entity.ConfigEntity;
+import org.apache.commons.lang3.StringUtils;
+import org.json.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+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;
+
+import com.annotation.IgnoreAuth;
+import com.baidu.aip.face.AipFace;
+import com.baidu.aip.face.MatchRequest;
+import com.baidu.aip.util.Base64Util;
+import com.service.CommonService;
+import com.service.ConfigService;
+import com.utils.BaiduUtil;
+import com.utils.FileUtil;
+import com.utils.R;
+
+/**
+ * 通用接口
+ */
+@RestController
+public class CommonController{
+ @Autowired
+ private CommonService commonService;
+
+ @Autowired
+ private ConfigService configService;
+
+ private static AipFace client = null;
+
+ private static String BAIDU_DITU_AK = null;
+
+ @RequestMapping("/location")
+ public R location(String lng,String lat) {
+ if(BAIDU_DITU_AK==null) {
+ BAIDU_DITU_AK = configService.selectOne(new EntityWrapper().eq("name", "baidu_ditu_ak")).getValue();
+ if(BAIDU_DITU_AK==null) {
+ return R.error("请在配置管理中正确配置baidu_ditu_ak");
+ }
+ }
+ Map map = BaiduUtil.getCityByLonLat(BAIDU_DITU_AK, lng, lat);
+ return R.ok().put("data", map);
+ }
+
+ /**
+ * 人脸比对
+ *
+ * @param face1 人脸1
+ * @param face2 人脸2
+ * @return
+ */
+ @RequestMapping("/matchFace")
+ public R matchFace(String face1, String face2, HttpServletRequest request) {
+ if(client==null) {
+ /*String AppID = configService.selectOne(new EntityWrapper().eq("name", "AppID")).getValue();*/
+ String APIKey = configService.selectOne(new EntityWrapper().eq("name", "APIKey")).getValue();
+ String SecretKey = configService.selectOne(new EntityWrapper().eq("name", "SecretKey")).getValue();
+ String token = BaiduUtil.getAuth(APIKey, SecretKey);
+ if(token==null) {
+ return R.error("请在配置管理中正确配置APIKey和SecretKey");
+ }
+ client = new AipFace(null, APIKey, SecretKey);
+ client.setConnectionTimeoutInMillis(2000);
+ client.setSocketTimeoutInMillis(60000);
+ }
+ JSONObject res = null;
+ try {
+ File file1 = new File(request.getSession().getServletContext().getRealPath("/upload")+"/"+face1);
+ File file2 = new File(request.getSession().getServletContext().getRealPath("/upload")+"/"+face2);
+ String img1 = Base64Util.encode(FileUtil.FileToByte(file1));
+ String img2 = Base64Util.encode(FileUtil.FileToByte(file2));
+ MatchRequest req1 = new MatchRequest(img1, "BASE64");
+ MatchRequest req2 = new MatchRequest(img2, "BASE64");
+ ArrayList requests = new ArrayList();
+ requests.add(req1);
+ requests.add(req2);
+ res = client.match(requests);
+ System.out.println(res.get("result"));
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ return R.error("文件不存在");
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return R.ok().put("data", com.alibaba.fastjson.JSONObject.parse(res.get("result").toString()));
+ }
+
+ /**
+ * 获取table表中的column列表(联动接口)
+ * @param table
+ * @param column
+ * @return
+ */
+ @RequestMapping("/option/{tableName}/{columnName}")
+ @IgnoreAuth
+ public R getOption(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName,String level,String parent) {
+ Map params = new HashMap();
+ params.put("table", tableName);
+ params.put("column", columnName);
+ if(StringUtils.isNotBlank(level)) {
+ params.put("level", level);
+ }
+ if(StringUtils.isNotBlank(parent)) {
+ params.put("parent", parent);
+ }
+ List data = commonService.getOption(params);
+ return R.ok().put("data", data);
+ }
+
+ /**
+ * 根据table中的column获取单条记录
+ * @param table
+ * @param column
+ * @return
+ */
+ @RequestMapping("/follow/{tableName}/{columnName}")
+ @IgnoreAuth
+ public R getFollowByOption(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName, @RequestParam String columnValue) {
+ Map params = new HashMap();
+ params.put("table", tableName);
+ params.put("column", columnName);
+ params.put("columnValue", columnValue);
+ Map result = commonService.getFollowByOption(params);
+ return R.ok().put("data", result);
+ }
+
+ /**
+ * 修改table表的sfsh状态
+ * @param table
+ * @param map
+ * @return
+ */
+ @RequestMapping("/sh/{tableName}")
+ public R sh(@PathVariable("tableName") String tableName, @RequestBody Map map) {
+ map.put("table", tableName);
+ commonService.sh(map);
+ return R.ok();
+ }
+
+ /**
+ * 获取需要提醒的记录数
+ * @param tableName
+ * @param columnName
+ * @param type 1:数字 2:日期
+ * @param map
+ * @return
+ */
+ @RequestMapping("/remind/{tableName}/{columnName}/{type}")
+ @IgnoreAuth
+ public R remindCount(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName,
+ @PathVariable("type") String type,@RequestParam Map map) {
+ map.put("table", tableName);
+ map.put("column", columnName);
+ map.put("type", type);
+
+ if(type.equals("2")) {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ Calendar c = Calendar.getInstance();
+ Date remindStartDate = null;
+ Date remindEndDate = null;
+ if(map.get("remindstart")!=null) {
+ Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
+ c.setTime(new Date());
+ c.add(Calendar.DAY_OF_MONTH,remindStart);
+ remindStartDate = c.getTime();
+ map.put("remindstart", sdf.format(remindStartDate));
+ }
+ if(map.get("remindend")!=null) {
+ Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
+ c.setTime(new Date());
+ c.add(Calendar.DAY_OF_MONTH,remindEnd);
+ remindEndDate = c.getTime();
+ map.put("remindend", sdf.format(remindEndDate));
+ }
+ }
+
+ int count = commonService.remindCount(map);
+ return R.ok().put("count", count);
+ }
+
+ /**
+ * 单列求和
+ */
+ @RequestMapping("/cal/{tableName}/{columnName}")
+ @IgnoreAuth
+ public R cal(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName) {
+ Map params = new HashMap();
+ params.put("table", tableName);
+ params.put("column", columnName);
+ Map result = commonService.selectCal(params);
+ return R.ok().put("data", result);
+ }
+
+ /**
+ * 分组统计
+ */
+ @RequestMapping("/group/{tableName}/{columnName}")
+ @IgnoreAuth
+ public R group(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName) {
+ Map params = new HashMap();
+ params.put("table", tableName);
+ params.put("column", columnName);
+ List