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
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Mysql数据库,Java语言,Spring Boot框架。整个系统包含3种角色:管理员,教师,学生。 管理员权限操作的功能包括查看学生的健康信息,管理聊天室信息,对教师,学生请假,学生,公告信息进行管理。 教师权限操作的功能包括发布聊天信息,回复聊天信息,查看学生健康信息,审核学生请假信息,查看学生信息等。 学生权限操作的功能包括管理聊天室的聊天信息,可以添加请假信息,查看教师对学生请假的处理结果信息,登记并管理学生自己的健康信息等。
资源推荐
资源详情
资源评论
收起资源包目录
基于springboot校园疫情防控系统设计与实现(毕业论文) (422个子文件)
3-build.bat 16B
2-run.bat 14B
1-install.bat 12B
app.796ceece.css 264KB
app.c41ca58a.css 264KB
chunk-vendors.6d894868.css 37KB
chunk-vendors.a72b0961.css 37KB
style.css 2KB
index.html 930B
index.html 582B
favicon.ico 4KB
favicon.ico 4KB
CommonController.java 23KB
YonghuController.java 18KB
JiaoshiController.java 17KB
XueshengqingjiaController.java 12KB
ForumController.java 11KB
DictionaryController.java 11KB
ShangbaoController.java 10KB
NewsController.java 8KB
ForumView.java 8KB
XueshengqingjiaEntity.java 7KB
YonghuEntity.java 7KB
ForumEntity.java 6KB
XueshengqingjiaVO.java 6KB
JiaoshiEntity.java 6KB
XueshengqingjiaView.java 6KB
XueshengqingjiaModel.java 5KB
YonghuVO.java 5KB
MPUtil.java 5KB
DictionaryServiceImpl.java 5KB
CommonServiceImpl.java 5KB
UsersController.java 5KB
ForumVO.java 5KB
YonghuModel.java 5KB
ShangbaoView.java 5KB
JiaoshiVO.java 5KB
DictionaryEntity.java 4KB
ShangbaoEntity.java 4KB
ForumModel.java 4KB
NewsEntity.java 4KB
JiaoshiModel.java 4KB
CommonDao.java 4KB
BaiduUtil.java 4KB
FileController.java 4KB
CommonService.java 4KB
PoiUtil.java 4KB
DictionaryVO.java 3KB
ShangbaoVO.java 3KB
AuthorizationInterceptor.java 3KB
NewsVO.java 3KB
DictionaryModel.java 3KB
ShangbaoModel.java 3KB
NewsModel.java 3KB
ConfigController.java 3KB
Query.java 3KB
TokenServiceImpl.java 2KB
DictionaryServletContextListener.java 2KB
TokenEntity.java 2KB
PageUtils.java 2KB
YonghuView.java 2KB
JiaoshiView.java 2KB
InterceptorConfig.java 2KB
UsersServiceImpl.java 1KB
XueshengqingjiaServiceImpl.java 1KB
ShangbaoServiceImpl.java 1KB
JiaoshiServiceImpl.java 1KB
NewsView.java 1KB
YonghuServiceImpl.java 1KB
ForumServiceImpl.java 1KB
NewsServiceImpl.java 1KB
UsersEntity.java 1KB
SpringContextUtils.java 1KB
ValidatorUtils.java 1KB
SQLFilter.java 1KB
DictionaryView.java 1KB
HttpClientUtils.java 1013B
xiaoyuanyiqingfangkongApplication.java 948B
ConfigEntity.java 930B
ConfigServiceImpl.java 929B
R.java 884B
EIException.java 845B
JQPageInfo.java 790B
FileUtil.java 759B
TokenService.java 752B
MyThreadMethod.java 737B
TypeEnum.java 728B
UsersService.java 622B
MyMetaObjectHandler.java 620B
DictionaryService.java 614B
CommonUtil.java 568B
XueshengqingjiaDao.java 567B
UsersDao.java 562B
TokenDao.java 560B
DictionaryDao.java 539B
ShangbaoDao.java 529B
MybatisPlusConfig.java 523B
JiaoshiDao.java 521B
YonghuDao.java 516B
ForumDao.java 514B
共 422 条
- 1
- 2
- 3
- 4
- 5
资源评论
code.song
- 粉丝: 1101
- 资源: 1287
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Vue3、.NET8的mes-TMom生产制造系统设计源码
- 基于FPGA的灰度直方图均衡算法IP verilog源码 适用于Altera平台,封装好的IP,可直接在Qsys中调用 本为封装好的IP源码,经过Modelsim仿真验证和开发板功能验证OK
- 基于Python和HTML的气象数据分析系统设计与实现源码
- 基于Spring Boot的quartz分布式定时任务设计源码
- 安川代码移植的主板原理图 无pcb 采用瑞萨芯片
- 基于Python的平面五杆机构狗腿形态学/小贱钟模拟器设计源码
- PSO-BP粒子群优化BP神经网络多输入多输出(Matlab完整源码和数据)
- Pscad仿真模型程序-中低压交直流混合微电网协调控制和并离网切仿真 具体工况:DC-AC-LVGrid-End1:并离网切仿真,负载和电源功率不扰动DC-AC-LVGrid-End2:并离网切,负载
- 基于Java的跨平台数据流处理框架Sylph设计源码
- 基于Java语言的公开Webservice调用天气预报功能设计源码
- 基于Java及HTML的温州理工学院web应用系统开发课程课件设计源码
- 基于Vue3框架的LYMusic音乐网站设计源码
- 基于ThinkPHP的caozha-tp-comment轻量级评论系统设计源码
- HFSS仿真实例模型文件
- 基于阿里巴巴Java开发手册的在线版JavaScript+CSS+HTML设计源码
- 基于Java OSS API的统一对象存储操作设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功