package com.controller;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
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.util.ResourceUtils;
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.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.ConfigEntity;
import com.service.CommonService;
import com.service.ConfigService;
import com.utils.BaiduUtil;
import com.utils.FileUtil;
import com.utils.R;
/**
* 通用接口
*/
@RestController
public class CommonController{
private static final Logger logger = LoggerFactory.getLogger(CommonController.class);
@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<ConfigEntity>().eq("name", "baidu_ditu_ak")).getValue();
if(BAIDU_DITU_AK==null) {
return R.error("请在配置管理中正确配置baidu_ditu_ak");
}
}
Map<String, String> 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<ConfigEntity>().eq("name", "AppID")).getValue();*/
String APIKey = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "APIKey")).getValue();
String SecretKey = configService.selectOne(new EntityWrapper<ConfigEntity>().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<MatchRequest> requests = new ArrayList<MatchRequest>();
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列表(联动接口)
* @return
*/
@RequestMapping("/option/{tableName}/{columnName}")
@IgnoreAuth
public R getOption(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName,String level,String parent) {
Map<String, Object> params = new HashMap<String, Object>();
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<String> data = commonService.getOption(params);
return R.ok().put("data", data);
}
/**
* 根据table中的column获取单条记录
* @return
*/
@RequestMapping("/follow/{tableName}/{columnName}")
@IgnoreAuth
public R getFollowByOption(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName, @RequestParam String columnValue) {
Map<String, Object> params = new HashMap<String, Object>();
params.put("table", tableName);
params.put("column", columnName);
params.put("columnValue", columnValue);
Map<String, Object> result = commonService.getFollowByOption(params);
return R.ok().put("data", result);
}
/**
* 修改table表的sfsh状态
* @param map
* @return
*/
@RequestMapping("/sh/{tableName}")
public R sh(@PathVariable("tableName") String tableName, @RequestBody Map<String, Object> 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<String, Object> 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);
}
/**
* 圖表统计
*/
@IgnoreAuth
@RequestMapping("/group/{tableName}")
public R group1(@PathVariable("tableName") String tableName, @RequestParam Map<String,Object> params) {
params.put("table1", tableName);
List<Map<String, Object>> result = commonService.chartBoth(params);
return R.ok().put("data", result);
}
/**
* 单列求和
*/
@RequestMapping("/cal/{tableName}/{columnName}")
@IgnoreAuth
public R cal(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName) {
Map<String, Object> params = new HashMap<String, Object>();
params.put("table", tableName);
params.put("column", columnName);
Map<String, Object> 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<String, Object> params = new HashMap<String, Object>();
params.put("table", tableN
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于Vue.js和SpringBoot的疫情隔离管理系统是一个功能全面、易于使用的平台,旨在帮助管理人员、供应商和普通用户在疫情期间进行有效的隔离管理。该系统分为用户前台和管理后台,支持多种角色使用,包括管理员、供应商和普通用户。系统的主要模块包括行程管理模块,允许用户记录和跟踪他们的行程信息;隔离管理模块,用于管理隔离区域和隔离人员的相关信息;物品申请模块,方便用户申请所需的隔离物品;以及地区管理模块,帮助管理人员了解不同地区的疫情状况。通过这些模块的协同工作,疫情隔离管理系统能够为用户提供一个高效、便捷的疫情隔离管理解决方案。 演示录屏:https://www.bilibili.com/video/BV11b421q7hE 配套教程:https://www.bilibili.com/video/BV1pW4y1P7GR
资源推荐
资源详情
资源评论
收起资源包目录
基于JAVA的疫情隔离管理系统(Vue.js+SpringBoot+MySQL) (451个子文件)
3-build.bat 16B
2-run.bat 14B
1-install.bat 12B
app.36d285bb.css 261KB
chunk-vendors.1f0a25b2.css 37KB
style.css 2KB
index.html 930B
index.html 582B
favicon.ico 4KB
favicon.ico 4KB
CommonController.java 23KB
YonghuController.java 17KB
GongyingshangController.java 14KB
WupinShenqingController.java 12KB
DictionaryController.java 11KB
WupinController.java 10KB
GelishenqingController.java 10KB
GeliController.java 9KB
XingchengController.java 8KB
GongyingshangwentiController.java 8KB
DiquController.java 8KB
YonghuwentiController.java 8KB
WupinShenqingView.java 6KB
WupinShenqingEntity.java 6KB
YonghuEntity.java 5KB
WupinEntity.java 5KB
MPUtil.java 5KB
GongyingshangwentiEntity.java 5KB
DictionaryServiceImpl.java 5KB
YonghuwentiEntity.java 5KB
CommonServiceImpl.java 5KB
UsersController.java 5KB
WupinShenqingVO.java 5KB
GelishenqingEntity.java 5KB
DictionaryEntity.java 4KB
XingchengEntity.java 4KB
GongyingshangEntity.java 4KB
GeliEntity.java 4KB
WupinShenqingModel.java 4KB
YonghuVO.java 4KB
XingchengView.java 4KB
GongyingshangwentiVO.java 4KB
WupinVO.java 4KB
DiquEntity.java 4KB
YonghuModel.java 4KB
YonghuwentiVO.java 4KB
CommonDao.java 4KB
BaiduUtil.java 4KB
GongyingshangwentiModel.java 4KB
FileController.java 4KB
CommonService.java 4KB
WupinModel.java 4KB
PoiUtil.java 4KB
GelishenqingVO.java 4KB
YonghuwentiModel.java 3KB
DictionaryVO.java 3KB
AuthorizationInterceptor.java 3KB
XingchengVO.java 3KB
GeliVO.java 3KB
GongyingshangVO.java 3KB
GelishenqingModel.java 3KB
GelishenqingView.java 3KB
YonghuwentiView.java 3KB
DictionaryModel.java 3KB
XingchengModel.java 3KB
GeliView.java 3KB
GeliModel.java 3KB
ConfigController.java 3KB
GongyingshangModel.java 3KB
DiquVO.java 3KB
DiquModel.java 3KB
GongyingshangwentiView.java 3KB
Query.java 3KB
WupinView.java 3KB
TokenServiceImpl.java 2KB
DictionaryServletContextListener.java 2KB
TokenEntity.java 2KB
PageUtils.java 2KB
InterceptorConfig.java 2KB
UsersServiceImpl.java 1KB
WupinShenqingServiceImpl.java 1KB
GongyingshangServiceImpl.java 1KB
GelishenqingServiceImpl.java 1KB
YonghuwentiServiceImpl.java 1KB
XingchengServiceImpl.java 1KB
DiquView.java 1KB
YonghuView.java 1KB
YonghuServiceImpl.java 1KB
WupinServiceImpl.java 1KB
DiquServiceImpl.java 1KB
GeliServiceImpl.java 1KB
UsersEntity.java 1KB
GongyingshangwentiServiceImpl.java 1KB
SpringContextUtils.java 1KB
ValidatorUtils.java 1KB
GongyingshangView.java 1KB
SQLFilter.java 1KB
DictionaryView.java 1KB
HttpClientUtils.java 1013B
ConfigEntity.java 930B
共 451 条
- 1
- 2
- 3
- 4
- 5
资源评论
蜜桃小阿雯
- 粉丝: 4936
- 资源: 1095
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 快递智能交叉带分拣机3D图纸和工程图机械结构设计图纸和其它技术资料和技术方案非常好100%好用.zip
- 毕业设计-基于协议分析的网络取证系统详细文档+全部资料+高分项目.zip
- 毕业设计-基于SPC的产品质量在线分析系统、在线统计过程控制系统,详细文档+全部资料+高分项目.zip
- 基于Android的股票分析系统,包括查询股票信息、模拟炒股、K图分析走势等功能、使用的编程语言是JAVA,编程工具是AndroidStudio3.3、详细文档+全部资料+高分项目.zip
- 基于Android的基金投资分析系统详细文档+全部资料+高分项目.zip
- 基于.NET(C#、VB)仓库管理系统,移动端APP开源项目,支持Android、iOS,SmoWMS仓库管理系统详细文档+全部资料+高分项目.zip
- 基于API HOOK的软件行为分析系统详细文档+全部资料+高分项目.zip
- 基于android系统源代码情景分析,详细文档+全部资料+高分项目.zip
- 基于Django的Web日志分析可视化系统(ECharts+MongoDB)详细文档+全部资料+高分项目.zip
- 基于Django和Vue的学生信息管理及可视化分析系统详细文档+全部资料+高分项目.zip
- 基于Django的的微博转发分析系统详细文档+全部资料+高分项目.zip
- 基于DNSmasq的DNS解析、以及DHCP地址分配系统详细文档+全部资料+高分项目.zip
- 基于Echart+EasyUI+MetroUI+SpringMVC+Hibernate的报表分析系统(连锁酒店)详细文档+全部资料+高分项目.zip
- 基于Flume、Kafka、SparkSql模拟的实时日志分析系统详细文档+全部资料+高分项目.zip
- 基于OCEMOTION的中文微情感分析系统,详细文档+全部资料+高分项目.zip
- 基于LSTM的文本情感分析系统详细文档+全部资料+高分项目.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功