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 com.entity.ConfigEntity;
import com.service.ConfigService;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
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.service.CommonService;
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列表(联动接口)
* @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获取单条记录
* @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 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", xColumnName);
params.put("yColumn", yColumnName);
List<Map<String, Object>> result = commonService.selectValue(params);
return R.ok().put("data", result);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Java毕业设计-基于SSM框架健身房管理系统(源码+说明+演示视频+数据库).zip 【项目技术】 开发语言:Java 框架:ssm 架构:B/S 数据库:mysql 【实现功能】 会员信息管理,健身房管理,教练信息管理,健身器材管理,课程信息管理,会员卡信息管。
资源推荐
资源详情
资源评论
收起资源包目录
Java毕业设计-基于SSM框架健身房管理系统(源码+说明+演示视频+数据库).zip (1046个子文件)
IndexAsideStatic.vue.bak 2KB
IndexAsideStatic.vue.bak 2KB
BreadCrumbs.vue.bak 2KB
BreadCrumbs.vue.bak 2KB
IndexHeader.vue.bak 2KB
IndexHeader.vue.bak 2KB
2-run.bat 14B
2-run.bat 14B
1-install.bat 12B
1-install.bat 12B
CommonController.class 10KB
CommonController.class 10KB
HuiyuanxinxiController.class 8KB
HuiyuanxinxiController.class 8KB
JiaolianxinxiController.class 8KB
JiaolianxinxiController.class 8KB
SijiaokechengxinxiController.class 8KB
SijiaokechengxinxiController.class 8KB
MPUtil.class 7KB
MPUtil.class 7KB
UserController.class 7KB
UserController.class 7KB
YuykechengxinxiController.class 5KB
YuykechengxinxiController.class 5KB
HuiyuankaxinxiController.class 5KB
HuiyuankaxinxiController.class 5KB
JianshenfangxinxiController.class 5KB
JianshenfangxinxiController.class 5KB
HuiyuankaleixingController.class 5KB
HuiyuankaleixingController.class 5KB
KechengxinxiController.class 5KB
KechengxinxiController.class 5KB
JianshenqicaixinxiController.class 5KB
JianshenqicaixinxiController.class 5KB
TokenServiceImpl.class 4KB
TokenServiceImpl.class 4KB
FileController.class 4KB
FileController.class 4KB
BaiduUtil.class 4KB
BaiduUtil.class 4KB
HuiyuanxinxiEntity.class 4KB
HuiyuanxinxiEntity.class 4KB
AuthorizationInterceptor.class 3KB
AuthorizationInterceptor.class 3KB
SijiaokechengxinxiEntity.class 3KB
SijiaokechengxinxiEntity.class 3KB
KechengxinxiEntity.class 3KB
KechengxinxiEntity.class 3KB
JiaolianxinxiEntity.class 3KB
JiaolianxinxiEntity.class 3KB
JianshenqicaixinxiEntity.class 3KB
JianshenqicaixinxiEntity.class 3KB
Query.class 3KB
Query.class 3KB
HuiyuankaxinxiEntity.class 3KB
HuiyuankaxinxiEntity.class 3KB
UserServiceImpl.class 3KB
UserServiceImpl.class 3KB
YuykechengxinxiEntity.class 3KB
YuykechengxinxiEntity.class 3KB
JianshenfangxinxiEntity.class 3KB
JianshenfangxinxiEntity.class 3KB
PageUtils.class 3KB
PageUtils.class 3KB
TokenEntity.class 3KB
TokenEntity.class 3KB
HuiyuanxinxiVO.class 2KB
HuiyuanxinxiVO.class 2KB
HuiyuanxinxiModel.class 2KB
HuiyuanxinxiModel.class 2KB
HuiyuankaleixingEntity.class 2KB
HuiyuankaleixingEntity.class 2KB
KechengxinxiVO.class 2KB
KechengxinxiVO.class 2KB
CommonServiceImpl.class 2KB
CommonServiceImpl.class 2KB
SijiaokechengxinxiVO.class 2KB
SijiaokechengxinxiVO.class 2KB
JianshenqicaixinxiServiceImpl.class 2KB
SijiaokechengxinxiServiceImpl.class 2KB
JianshenqicaixinxiServiceImpl.class 2KB
SijiaokechengxinxiServiceImpl.class 2KB
JianshenfangxinxiServiceImpl.class 2KB
JianshenfangxinxiServiceImpl.class 2KB
HuiyuankaleixingServiceImpl.class 2KB
HuiyuankaleixingServiceImpl.class 2KB
YuykechengxinxiServiceImpl.class 2KB
YuykechengxinxiServiceImpl.class 2KB
HuiyuankaxinxiServiceImpl.class 2KB
HuiyuankaxinxiServiceImpl.class 2KB
JiaolianxinxiServiceImpl.class 2KB
JiaolianxinxiServiceImpl.class 2KB
JianshenqicaixinxiVO.class 2KB
JianshenqicaixinxiVO.class 2KB
KechengxinxiServiceImpl.class 2KB
HuiyuanxinxiServiceImpl.class 2KB
KechengxinxiServiceImpl.class 2KB
HuiyuanxinxiServiceImpl.class 2KB
JiaolianxinxiVO.class 2KB
JiaolianxinxiVO.class 2KB
共 1046 条
- 1
- 2
- 3
- 4
- 5
- 6
- 11
资源评论
岛上程序猿
- 粉丝: 2432
- 资源: 4154
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功