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.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", tableName);
params.put("column", columnName);
List<Map<String, Object>> result = commonService.selectGroup(params);
return R.ok().put("data", result);
}
/**
没有合适的资源?快使用搜索试试~ 我知道了~
【计算机程序设计项目源码】ssm352摊位管理系统+jsp.zip
共1213个文件
js:293个
png:181个
gif:156个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 122 浏览量
2024-09-27
13:00:43
上传
评论
收藏 45.67MB ZIP 举报
温馨提示
具体系统介绍看我的博客空间 搜索对应的题目,本代码适合学习java 代码springboot 如自己能力有限 运行不出来,可以联系作者购买人工远程调试服务
资源推荐
资源详情
资源评论
收起资源包目录
【计算机程序设计项目源码】ssm352摊位管理系统+jsp.zip (1213个子文件)
CommonController.class 14KB
WodeController.class 10KB
ShenqingController.class 10KB
YonghuController.class 10KB
TaanweiController.class 9KB
DictionaryController.class 8KB
NewsController.class 8KB
MPUtil.class 7KB
UserController.class 6KB
DictionaryServiceImpl.class 6KB
YonghuEntity.class 5KB
ShenqingView.class 5KB
TokenServiceImpl.class 4KB
FileController.class 4KB
WodeView.class 4KB
TaanweiEntity.class 4KB
NewsEntity.class 4KB
ShenqingEntity.class 4KB
DictionaryEntity.class 4KB
BaiduUtil.class 4KB
ConfigController.class 4KB
AuthorizationInterceptor.class 3KB
CommonServiceImpl.class 3KB
WodeEntity.class 3KB
DictionaryServletContextListener.class 3KB
YonghuVO.class 3KB
Query.class 3KB
YonghuModel.class 3KB
UserServiceImpl.class 3KB
PageUtils.class 3KB
TokenEntity.class 3KB
TaanweiVO.class 2KB
NewsVO.class 2KB
DictionaryVO.class 2KB
ShenqingVO.class 2KB
TaanweiModel.class 2KB
NewsModel.class 2KB
DictionaryModel.class 2KB
ShenqingModel.class 2KB
ShenqingServiceImpl.class 2KB
TaanweiServiceImpl.class 2KB
YonghuServiceImpl.class 2KB
WodeServiceImpl.class 2KB
NewsServiceImpl.class 2KB
R.class 2KB
TaanweiView.class 2KB
ValidatorUtils.class 2KB
UserEntity.class 2KB
WodeVO.class 2KB
SpringContextUtils.class 2KB
ConfigServiceImpl.class 2KB
HttpClientUtils.class 1KB
WodeModel.class 1KB
TypeEnum.class 1KB
DictionaryView.class 1KB
YonghuView.class 1KB
JQPageInfo.class 1KB
EIException.class 1KB
NewsView.class 1KB
ConfigEntity.class 1KB
SQLFilter.class 1KB
CommonDao.class 1KB
CommonService.class 1KB
TokenService.class 1KB
CommonUtil.class 1KB
FileUtil.class 934B
TokenDao.class 907B
UserDao.class 900B
MyMetaObjectHandler.class 900B
UserService.class 871B
DictionaryDao.class 684B
ShenqingDao.class 676B
TaanweiDao.class 672B
YonghuDao.class 668B
WodeDao.class 660B
NewsDao.class 660B
StringUtil.class 634B
DictionaryService.class 491B
ShenqingService.class 433B
TaanweiService.class 430B
IgnoreAuth.class 428B
ConfigService.class 427B
YonghuService.class 427B
NewsService.class 421B
WodeService.class 421B
APPLoginUser.class 395B
LoginUser.class 389B
ConfigDao.class 269B
bootstrap.min.css 141KB
bootstrap.css 120KB
layui.css 73KB
style.css 66KB
ueditor.css 44KB
ueditor.css 44KB
styles.css 40KB
ueditor.min.css 34KB
ueditor.min.css 34KB
font-awesome.min.css 30KB
jquery.treetable.theme.default.css 25KB
animate.css 23KB
共 1213 条
- 1
- 2
- 3
- 4
- 5
- 6
- 13
资源评论
翰文编程
- 粉丝: 1w+
- 资源: 2072
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Java的论坛云计算学习论坛设计与实现
- 基于SpringBoot和Vue的在线考试管理系统试题库与试卷系统设计源码
- 基于微信小程序的校园水果订单小程序设计源码
- 基于JavaWeb的美食系统设计与实现-采用SSM框架和MYSQL数据库
- factoryio2.5工厂流水线仿真程序 使用简单的梯形图与SCL语言编写,通俗易懂,起到抛砖引玉的作用,比较适合有动手能力的入门初学者 软件环境: 1、西门子编程软件:TIA Portal V1
- 基于Vue框架的新技术专题前后端全栈开发设计源码
- mnist手写数字识别GUI Python3.7 使用cnn模型
- 32ISP source code
- 基于JavaScript的濒危海洋生物知识科普系统设计源码
- 基于JavaScript与CSS的丰富Web弹出层组件设计源码
- 基于SpringBoot+Netty的湖南大学计算机网络课程设计EmailSystem后端代码源码
- 安卓手机系统2023最新版本 android 11(API 30)
- 基于Vue3和Activiti深度定制的AntFlow workflow设计源码
- matlab simulink电动汽车建模:四轮电动汽车电助力转向建模(电动汽车EPS) 整车模型采取八自由度整车(四轮转动,横向纵向,绕z轴旋转,绕y轴俯仰) 模型主要包括驾驶员模型,转向系模型
- 基于SpringBoot架构的校园二手交易系统的设计与实现
- 基于JSP/Java SSM框架的精品课程在线学习系统设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功