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 org.apache.commons.lang3.StringUtils;
import org.json.JSONObject;
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{
@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列表(联动接口)
* @param table
* @param column
* @return
*/
@IgnoreAuth
@RequestMapping("/option/{tableName}/{columnName}")
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获取单条记录
* @param table
* @param column
* @return
*/
@IgnoreAuth
@RequestMapping("/follow/{tableName}/{columnName}")
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 table
* @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
*/
@IgnoreAuth
@RequestMapping("/remind/{tableName}/{columnName}/{type}")
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("/cal/{tableName}/{columnName}")
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);
}
/**
* 分组统计
*/
@IgnoreAuth
@RequestMapping("/group/{tableName}/{columnName}")
public R group(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName) {
Map<String, Object> params = new HashMap<String, Object>();
params.put("table", tableName);
params.put("column", columnName);
List<Map<String, Object>> result = commonService.selectGroup(params);
return R.ok().put("data", result);
}
/**
* (按值统计)
*/
@IgnoreAuth
@RequestMapping("/value/{tableName}/{xColumnName}/{yColumnName}")
public R value(@PathVariable("tableName") String tableName, @PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName) {
Map<String, Object> params = new HashMap<String, Object>();
params.put("table", tableName);
params.put("xColumn",
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
BOOT-00001前后端分离个人财务管理系统源码+数据库.rar (275个子文件)
CommonController.class 10KB
YonghuxinxiController.class 8KB
MPUtil.class 7KB
UserController.class 6KB
ShouzhitongjibiaoController.class 6KB
ZhaiwutongjibiaoController.class 6KB
TouzitongjibiaoController.class 6KB
RichangkaixiaoController.class 6KB
ZichanguanliController.class 5KB
LicaijihuaController.class 5KB
KaixiaoleixingController.class 5KB
LicaituijianController.class 5KB
TokenServiceImpl.class 5KB
FileController.class 4KB
LicaijihuaEntity.class 4KB
TouzitongjibiaoEntity.class 4KB
BaiduUtil.class 4KB
LicaituijianEntity.class 4KB
ShouzhitongjibiaoServiceImpl.class 4KB
ZhaiwutongjibiaoServiceImpl.class 4KB
TouzitongjibiaoServiceImpl.class 4KB
RichangkaixiaoServiceImpl.class 4KB
KaixiaoleixingServiceImpl.class 4KB
ZichanguanliServiceImpl.class 4KB
LicaituijianServiceImpl.class 4KB
YonghuxinxiServiceImpl.class 4KB
LicaijihuaServiceImpl.class 4KB
ZhaiwutongjibiaoEntity.class 4KB
ConfigController.class 4KB
YonghuxinxiEntity.class 4KB
ZichanguanliEntity.class 4KB
RichangkaixiaoEntity.class 3KB
AuthorizationInterceptor.class 3KB
ShouzhitongjibiaoEntity.class 3KB
Query.class 3KB
UserServiceImpl.class 3KB
PageUtils.class 3KB
TokenEntity.class 3KB
KaixiaoleixingEntity.class 3KB
InterceptorConfig.class 2KB
LicaijihuaModel.class 2KB
LicaijihuaVO.class 2KB
TouzitongjibiaoModel.class 2KB
TouzitongjibiaoVO.class 2KB
CommonServiceImpl.class 2KB
ZhaiwutongjibiaoModel.class 2KB
ZhaiwutongjibiaoVO.class 2KB
R.class 2KB
ShouzhitongjibiaoService.class 2KB
UserEntity.class 2KB
ZhaiwutongjibiaoService.class 2KB
LicaituijianModel.class 2KB
TouzitongjibiaoService.class 2KB
SpringContextUtils.class 2KB
LicaituijianVO.class 2KB
ValidatorUtils.class 2KB
ShouzhitongjibiaoDao.class 2KB
RichangkaixiaoService.class 2KB
KaixiaoleixingService.class 2KB
ZhaiwutongjibiaoDao.class 2KB
TouzitongjibiaoDao.class 2KB
ZichanguanliService.class 2KB
LicaituijianService.class 2KB
YonghuxinxiService.class 2KB
KaixiaoleixingDao.class 2KB
RichangkaixiaoDao.class 2KB
LicaijihuaService.class 2KB
ZichanguanliModel.class 2KB
LicaituijianDao.class 2KB
ZichanguanliDao.class 2KB
ZichanguanliVO.class 2KB
YonghuxinxiDao.class 2KB
LicaijihuaDao.class 2KB
RichangkaixiaoModel.class 2KB
RichangkaixiaoVO.class 2KB
ConfigServiceImpl.class 2KB
HttpClientUtils.class 2KB
YonghuxinxiModel.class 1KB
YonghuxinxiVO.class 1KB
ShouzhitongjibiaoModel.class 1KB
ShouzhitongjibiaoVO.class 1KB
EIException.class 1KB
JQPageInfo.class 1KB
ConfigEntity.class 1KB
SQLFilter.class 1KB
TokenService.class 1KB
ShouzhitongjibiaoView.class 1KB
ZhaiwutongjibiaoView.class 1KB
TouzitongjibiaoView.class 1KB
KaixiaoleixingView.class 1KB
RichangkaixiaoView.class 1KB
LicaituijianView.class 1KB
ZichanguanliView.class 1KB
YonghuxinxiView.class 1KB
LicaijihuaView.class 1KB
CommonUtil.class 1KB
CommonDao.class 1KB
CommonService.class 1004B
TokenDao.class 969B
FileUtil.class 964B
共 275 条
- 1
- 2
- 3
资源评论
DEMO_BROTHER
- 粉丝: 369
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- java毕业设计-基于SSM框架的传统服饰文化体验平台【代码+部署教程】
- 优化领域的模拟退火算法详解与实战
- NewFileTime-x64.zip.fgpg
- 基于Python和HTML的Chinese-estate-helper房地产爬虫及可视化设计源码
- 基于SpringBoot2.7.7的当当书城Java后端设计源码
- 基于Python和Go语言的开发工具集成与验证设计源码
- 基于Python与JavaScript的国内供应商管理系统设计源码
- aspose.words-20.12-jdk17
- 基于czsc库的Python时间序列分析设计源码
- 基于Java、CSS、JavaScript、HTML的跨语言智联平台设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功