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
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于SSM+Vue的疫情期间高校人员管理系统毕业设计(源码+延时录像+说明).rar 【项目技术】 开发语言:Java 框架:ssm+vue 架构:B/S 数据库:mysql 【演示视频-编号:788】 https://pan.quark.cn/s/b3a97032fae7 【实现功能】 疫情期间高校人员管理系统通过MySQL数据库与Eclipse工具进行开发,疫情期间高校人员管理系统能够实现对老师和学生的居家信息,打卡信息,老师返校申请信息,学生返校申请信息,以及学生请假申请信息,疫情资讯信息,地区信息等信息的管理。
资源推荐
资源详情
资源评论
收起资源包目录
基于SSM+Vue的疫情期间高校人员管理系统毕业设计(源码+延时录像+说明).rar (542个子文件)
3-build.bat 16B
2-run.bat 14B
1-install.bat 12B
app.7e841538.css 272KB
bootstrap.css 149KB
bootstrap.min.css 118KB
chunk-vendors.1f0a25b2.css 37KB
style.css 2KB
glyphicons-halflings-regular.eot 20KB
index.html 942B
index.html 594B
favicon.ico 4KB
favicon.ico 4KB
CommonController.java 23KB
XueshengController.java 19KB
LaoshiController.java 18KB
LaoshifanxiaoshenqingController.java 15KB
FanxiaoshenqingController.java 14KB
QingjiashenqingController.java 13KB
DictionaryController.java 11KB
XueshengliuyanController.java 11KB
XueshengjujiaController.java 10KB
LaoshijujiaController.java 10KB
XueshengdakaController.java 10KB
LaoshidakaController.java 9KB
DiquController.java 9KB
NewsController.java 9KB
LaoshifanxiaoshenqingEntity.java 8KB
FanxiaoshenqingEntity.java 8KB
QingjiashenqingEntity.java 7KB
LaoshifanxiaoshenqingVO.java 7KB
XueshengliuyanView.java 6KB
XueshengEntity.java 6KB
FanxiaoshenqingVO.java 6KB
LaoshiEntity.java 6KB
LaoshifanxiaoshenqingModel.java 6KB
QingjiashenqingVO.java 6KB
FanxiaoshenqingModel.java 6KB
QingjiashenqingModel.java 5KB
MPUtil.java 5KB
XueshengVO.java 5KB
LaoshijujiaEntity.java 5KB
DictionaryServiceImpl.java 5KB
LaoshiVO.java 5KB
CommonServiceImpl.java 5KB
XueshengliuyanEntity.java 5KB
UsersController.java 5KB
DiquEntity.java 5KB
XueshengjujiaEntity.java 5KB
XueshengModel.java 5KB
LaoshiModel.java 5KB
DictionaryEntity.java 4KB
XueshengView.java 4KB
QingjiashenqingView.java 4KB
FanxiaoshenqingView.java 4KB
LaoshifanxiaoshenqingView.java 4KB
LaoshiView.java 4KB
XueshengjujiaView.java 4KB
XueshengdakaView.java 4KB
XueshengdakaEntity.java 4KB
LaoshidakaEntity.java 4KB
LaoshijujiaView.java 4KB
LaoshidakaView.java 4KB
LaoshijujiaVO.java 4KB
NewsEntity.java 4KB
CommonDao.java 4KB
XueshengliuyanVO.java 4KB
BaiduUtil.java 4KB
DiquVO.java 4KB
CommonService.java 4KB
PoiUtil.java 4KB
LaoshijujiaModel.java 4KB
XueshengjujiaVO.java 4KB
XueshengliuyanModel.java 3KB
DiquModel.java 3KB
DictionaryVO.java 3KB
AuthorizationInterceptor.java 3KB
XueshengjujiaModel.java 3KB
XueshengdakaVO.java 3KB
DictionaryModel.java 3KB
LaoshidakaVO.java 3KB
ConfigController.java 3KB
NewsVO.java 3KB
XueshengdakaModel.java 3KB
FileController.java 3KB
LaoshidakaModel.java 3KB
NewsModel.java 3KB
Query.java 3KB
TokenServiceImpl.java 2KB
DictionaryServletContextListener.java 2KB
TokenEntity.java 2KB
PageUtils.java 2KB
DiquView.java 2KB
LaoshifanxiaoshenqingServiceImpl.java 1KB
FanxiaoshenqingServiceImpl.java 1KB
QingjiashenqingServiceImpl.java 1KB
UsersServiceImpl.java 1KB
XueshengliuyanServiceImpl.java 1KB
XueshengjujiaServiceImpl.java 1KB
XueshengdakaServiceImpl.java 1KB
共 542 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
职场程序猿
- 粉丝: 6132
- 资源: 3706
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 日志文件:日志概念、LogBack日志技术的概述、使用、logback.xml配置文件详解
- 基于python使用Drl来解决多智能体卸载问题+源码(期末作业&课程设计&项目开发)
- 科学计算领域中的Fortran语言基础知识与应用
- 4.健身房预约课程-微信小程序.zip
- 小乌龟键盘控制源码111111
- 电赛2023年本科组电子电路设计比赛指南与任务解析
- Delphi 12 控件之dspack For Delphi 10.2 - 视频播放组件包e963a-main.zip
- delphi 12 控件之FB4D – The OpenSource Cross-Platform Library for FirebaseFB4D-master.zip
- Rust语言入门与进阶教程
- delphi 12 控件之Delphi开发的微信电脑版登录工具ec617-main.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功