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的OA办公系统毕业设计(源码+录像+说明).rar 【项目技术】 开发语言:Java 框架:ssm+vue 架构:B/S 数据库:mysql 【演示视频-编号:529】 https://pan.quark.cn/s/b3a97032fae7 【实现功能】 OA办公系统实现的功能包括日程管理,会议室管理,会议室预约管理,考勤管理,请假记录管理,个人便签管理,文件管理,通讯录管理等功能。
资源推荐
资源详情
资源评论
收起资源包目录
基于SSM+Vue的OA办公系统毕业设计(源码+录像+说明).rar (489个子文件)
3-build.bat 16B
2-run.bat 14B
1-install.bat 12B
app.6578b3bd.css 272KB
bootstrap.css 149KB
bootstrap.min.css 118KB
chunk-vendors.6d894868.css 37KB
style.css 2KB
glyphicons-halflings-regular.eot 20KB
index.html 920B
index.html 572B
favicon.ico 4KB
favicon.ico 4KB
CommonController.java 23KB
YonghuController.java 18KB
TongxunluController.java 11KB
DictionaryController.java 11KB
HuiyishiyuyueController.java 10KB
WenjianController.java 10KB
GerenbianqianController.java 10KB
KaoqinController.java 9KB
RichengController.java 9KB
QingjiajiluController.java 9KB
HuiyiController.java 9KB
HuiyishiController.java 9KB
NewsController.java 8KB
YonghuEntity.java 6KB
HuiyishiyuyueView.java 5KB
MPUtil.java 5KB
DictionaryServiceImpl.java 5KB
CommonServiceImpl.java 5KB
KaoqinEntity.java 5KB
TongxunluEntity.java 5KB
RichengEntity.java 5KB
UsersController.java 5KB
WenjianEntity.java 5KB
YonghuVO.java 5KB
DictionaryEntity.java 4KB
NewsEntity.java 4KB
YonghuModel.java 4KB
GerenbianqianEntity.java 4KB
QingjiajiluEntity.java 4KB
HuiyishiEntity.java 4KB
HuiyiEntity.java 4KB
KaoqinVO.java 4KB
TongxunluVO.java 4KB
WenjianView.java 4KB
RichengVO.java 4KB
CommonDao.java 4KB
BaiduUtil.java 4KB
WenjianVO.java 4KB
CommonService.java 4KB
PoiUtil.java 4KB
HuiyishiyuyueEntity.java 4KB
KaoqinModel.java 4KB
GerenbianqianView.java 3KB
TongxunluModel.java 3KB
RichengModel.java 3KB
QingjiajiluView.java 3KB
TongxunluView.java 3KB
RichengView.java 3KB
KaoqinView.java 3KB
DictionaryVO.java 3KB
WenjianModel.java 3KB
AuthorizationInterceptor.java 3KB
NewsVO.java 3KB
HuiyiView.java 3KB
DictionaryModel.java 3KB
GerenbianqianVO.java 3KB
QingjiajiluVO.java 3KB
NewsModel.java 3KB
ConfigController.java 3KB
HuiyishiVO.java 3KB
HuiyiVO.java 3KB
GerenbianqianModel.java 3KB
FileController.java 3KB
QingjiajiluModel.java 3KB
HuiyishiModel.java 3KB
HuiyiModel.java 3KB
Query.java 3KB
HuiyishiyuyueVO.java 3KB
TokenServiceImpl.java 2KB
HuiyishiyuyueModel.java 2KB
DictionaryServletContextListener.java 2KB
TokenEntity.java 2KB
PageUtils.java 2KB
UsersServiceImpl.java 1KB
HuiyishiyuyueServiceImpl.java 1KB
HuiyishiView.java 1KB
GerenbianqianServiceImpl.java 1KB
QingjiajiluServiceImpl.java 1KB
TongxunluServiceImpl.java 1KB
HuiyishiServiceImpl.java 1KB
WenjianServiceImpl.java 1KB
RichengServiceImpl.java 1KB
NewsView.java 1KB
YonghuView.java 1KB
YonghuServiceImpl.java 1KB
KaoqinServiceImpl.java 1KB
HuiyiServiceImpl.java 1KB
共 489 条
- 1
- 2
- 3
- 4
- 5
资源评论
职场程序猿
- 粉丝: 2375
- 资源: 3682
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C程序语言设计 课程设计-万年历程序
- 基于Vue和CSS的泛康云诊所前端设计源码
- stc15xx-STC8-sch-pcb-library-ver1.0 STC单片机的原理图和PCB库文件资料
- 基于Scala的微服务架构后台服务设计源码 - biBACK
- 基于Java的日志推送appender设计源码 - logback-push-appender
- MedievalV1PathTracingBack00000-1920x1080-7e4d63a5fecdc81444c4cacd46d528da.avif
- 基于Vue的医疗消毒检测管理系统设计源码
- 老公-2405282109.awb
- 老公-2405282044.awb
- 8bccc0032ca49b59886db7a4af668bf8.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功