|
|
|
@ -28,33 +28,51 @@ import com.baidu.aip.face.MatchRequest;
|
|
|
|
|
import com.baidu.aip.util.Base64Util;
|
|
|
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
|
|
|
|
import com.entity.ConfigEntity;
|
|
|
|
|
// 导入相关的服务类和工具类
|
|
|
|
|
import com.service.CommonService;
|
|
|
|
|
import com.service.ConfigService;
|
|
|
|
|
import com.utils.BaiduUtil;
|
|
|
|
|
import com.utils.FileUtil;
|
|
|
|
|
import com.utils.R;
|
|
|
|
|
import com.utils.CommonUtil;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 通用接口
|
|
|
|
|
* 该类作为一个Spring的RestController,提供了一系列通用的接口方法,用于处理不同类型的业务逻辑,
|
|
|
|
|
* 如获取数据选项、根据条件获取记录、修改数据状态、统计数据等操作。
|
|
|
|
|
*/
|
|
|
|
|
@RestController
|
|
|
|
|
public class CommonController {
|
|
|
|
|
|
|
|
|
|
// 自动注入CommonService,用于处理通用的业务逻辑
|
|
|
|
|
@Autowired
|
|
|
|
|
private CommonService commonService;
|
|
|
|
|
|
|
|
|
|
// 定义百度AI人脸识别客户端对象,初始化为null
|
|
|
|
|
private static AipFace client = null;
|
|
|
|
|
|
|
|
|
|
// 自动注入ConfigService,可能用于获取配置相关信息
|
|
|
|
|
@Autowired
|
|
|
|
|
private ConfigService configService;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取table表中的column列表(联动接口)
|
|
|
|
|
* @param table
|
|
|
|
|
* @param column
|
|
|
|
|
* @return
|
|
|
|
|
* 获取table表中的column列表(联动接口)
|
|
|
|
|
* 根据传入的表名、列名以及一些可选的条件参数,获取指定表中指定列的列表数据,可能用于下拉框等联动选择场景。
|
|
|
|
|
*
|
|
|
|
|
* @param tableName 表名
|
|
|
|
|
* @param columnName 列名
|
|
|
|
|
* @param conditionColumn 可选的条件列名,用于进一步筛选数据
|
|
|
|
|
* @param conditionValue 可选的条件值,与conditionColumn配合使用来筛选数据
|
|
|
|
|
* @param level 可选的层级参数,可能用于表示数据的层次结构相关的筛选
|
|
|
|
|
* @param parent 可选的父级参数,可能用于表示数据的父子关系相关的筛选
|
|
|
|
|
* @return 返回包含获取到的列列表数据的R对象,R对象通常用于封装返回结果信息
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping("/option/{tableName}/{columnName}")
|
|
|
|
|
@IgnoreAuth
|
|
|
|
|
public R getOption(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName,@RequestParam(required = false) String conditionColumn,@RequestParam(required = false) String conditionValue,String level,String parent) {
|
|
|
|
|
public R getOption(@PathVariable("tableName") String tableName, @PathVariable("tableName") String columnName,
|
|
|
|
|
@RequestParam(required = false) String conditionColumn,
|
|
|
|
|
@RequestParam(required = false) String conditionValue, String level, String parent) {
|
|
|
|
|
// 创建一个用于存储参数的Map对象
|
|
|
|
|
Map<String, Object> params = new HashMap<String, Object>();
|
|
|
|
|
params.put("table", tableName);
|
|
|
|
|
params.put("column", columnName);
|
|
|
|
@ -70,32 +88,47 @@ public class CommonController{
|
|
|
|
|
if (StringUtils.isNotBlank(conditionValue)) {
|
|
|
|
|
params.put("conditionValue", conditionValue);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 调用commonService的getOption方法获取数据列表
|
|
|
|
|
List<String> data = commonService.getOption(params);
|
|
|
|
|
|
|
|
|
|
// 返回包含数据列表的R对象,结果状态为成功
|
|
|
|
|
return R.ok().put("data", data);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据table中的column获取单条记录
|
|
|
|
|
* @param table
|
|
|
|
|
* @param column
|
|
|
|
|
* @return
|
|
|
|
|
* 根据传入的表名、列名以及指定的列值,从指定表中获取满足条件的单条记录数据。
|
|
|
|
|
*
|
|
|
|
|
* @param tableName 表名
|
|
|
|
|
* @param columnName 列名
|
|
|
|
|
* @param columnValue 用于筛选的列值,根据该值在指定列中查找匹配的记录
|
|
|
|
|
* @return 返回包含获取到的单条记录数据的R对象
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping("/follow/{tableName}/{columnName}")
|
|
|
|
|
@IgnoreAuth
|
|
|
|
|
public R getFollowByOption(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName, @RequestParam String columnValue) {
|
|
|
|
|
public R getFollowByOption(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName,
|
|
|
|
|
@RequestParam String columnValue) {
|
|
|
|
|
// 创建一个用于存储参数的Map对象
|
|
|
|
|
Map<String, Object> params = new HashMap<String, Object>();
|
|
|
|
|
params.put("table", tableName);
|
|
|
|
|
params.put("column", columnName);
|
|
|
|
|
params.put("columnValue", columnValue);
|
|
|
|
|
|
|
|
|
|
// 调用commonService的getFollowByOption方法获取单条记录数据
|
|
|
|
|
Map<String, Object> result = commonService.getFollowByOption(params);
|
|
|
|
|
|
|
|
|
|
// 返回包含单条记录数据的R对象,结果状态为成功
|
|
|
|
|
return R.ok().put("data", result);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 修改table表的sfsh状态
|
|
|
|
|
* @param table
|
|
|
|
|
* @param map
|
|
|
|
|
* @return
|
|
|
|
|
* 根据传入的表名和一个包含修改信息的Map对象,调用commonService的sh方法来修改指定表的sfsh状态。
|
|
|
|
|
*
|
|
|
|
|
* @param tableName 表名
|
|
|
|
|
* @param map 包含修改信息的Map对象,具体内容由调用方确定,通常包含要修改的字段和对应的值等信息
|
|
|
|
|
* @return 返回表示修改操作成功的R对象
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping("/sh/{tableName}")
|
|
|
|
|
public R sh(@PathVariable("tableName") String tableName, @RequestBody Map<String, Object> map) {
|
|
|
|
@ -106,11 +139,14 @@ public class CommonController{
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取需要提醒的记录数
|
|
|
|
|
* @param tableName
|
|
|
|
|
* @param columnName
|
|
|
|
|
* @param type 1:数字 2:日期
|
|
|
|
|
* @param map
|
|
|
|
|
* @return
|
|
|
|
|
* 根据传入的表名、列名、类型以及一个包含其他条件的Map对象,计算并获取满足条件的需要提醒的记录数量。
|
|
|
|
|
* 当类型为2时,会根据传入的提醒开始时间和结束时间进行日期范围的计算和筛选。
|
|
|
|
|
*
|
|
|
|
|
* @param tableName 表名
|
|
|
|
|
* @param columnName 列名
|
|
|
|
|
* @param type 类型参数,1表示数字类型的提醒条件,2表示日期类型的提醒条件
|
|
|
|
|
* @param map 包含其他条件的Map对象,如提醒开始时间、提醒结束时间等(当type为2时相关)
|
|
|
|
|
* @return 返回包含需要提醒的记录数的R对象
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping("/remind/{tableName}/{columnName}/{type}")
|
|
|
|
|
@IgnoreAuth
|
|
|
|
@ -133,20 +169,28 @@ public class CommonController{
|
|
|
|
|
map.put("remindstart", sdf.format(remindStartDate));
|
|
|
|
|
}
|
|
|
|
|
if (map.get("remindend")!= null) {
|
|
|
|
|
Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
|
|
|
|
|
Integer recommendEnd = Integer.parseInt(map.get("remindend").toString());
|
|
|
|
|
c.setTime(new Date());
|
|
|
|
|
c.add(Calendar.DAY_OF_MONTH,remindEnd);
|
|
|
|
|
c.add(Calendar.DAY_OF_MONTH, recommendEnd);
|
|
|
|
|
remindEndDate = c.getTime();
|
|
|
|
|
map.put("remindend", sdf.format(remindEndDate));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 调用commonService的remindCount方法获取需要提醒的记录数
|
|
|
|
|
int count = commonService.remindCount(map);
|
|
|
|
|
|
|
|
|
|
// 返回包含记录数的R对象,结果状态为成功
|
|
|
|
|
return R.ok().put("count", count);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 单列求和
|
|
|
|
|
* 根据传入的表名和列名,调用commonService的selectCal方法对指定表中的指定列进行求和操作,并返回结果。
|
|
|
|
|
*
|
|
|
|
|
* @param tableName 表名
|
|
|
|
|
* @param columnName 列名
|
|
|
|
|
* @return 返回包含求和结果的R对象
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping("/cal/{tableName}/{columnName}")
|
|
|
|
|
@IgnoreAuth
|
|
|
|
@ -154,12 +198,22 @@ public class CommonController{
|
|
|
|
|
Map<String, Object> params = new HashMap<String, Object>();
|
|
|
|
|
params.put("table", tableName);
|
|
|
|
|
params.put("column", columnName);
|
|
|
|
|
|
|
|
|
|
// 调用commonService的selectCal方法进行求和操作并获取结果
|
|
|
|
|
Map<String, Object> result = commonService.selectCal(params);
|
|
|
|
|
|
|
|
|
|
// 返回包含求和结果的R对象,结果状态为成功
|
|
|
|
|
return R.ok().put("data", result);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 分组统计
|
|
|
|
|
* 根据传入的表名和列名,调用commonService的selectGroup方法对指定表中的指定列进行分组统计操作,
|
|
|
|
|
* 并对结果中的日期类型数据进行格式化处理后返回。
|
|
|
|
|
*
|
|
|
|
|
* @param tableName 表名
|
|
|
|
|
, @param columnName 列名
|
|
|
|
|
* @return 返回包含分组统计结果的R对象
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping("/group/{tableName}/{columnName}")
|
|
|
|
|
@IgnoreAuth
|
|
|
|
@ -167,7 +221,10 @@ public class CommonController{
|
|
|
|
|
Map<String, Object> params = new HashMap<String, Object>();
|
|
|
|
|
params.put("table", tableName);
|
|
|
|
|
params.put("column", columnName);
|
|
|
|
|
|
|
|
|
|
// 调用commonService的selectGroup方法进行分组统计操作并获取结果
|
|
|
|
|
List<Map<String, Object>> result = commonService.selectGroup(params);
|
|
|
|
|
|
|
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
|
for (Map<String, Object> m : result) {
|
|
|
|
|
for (String k : m.keySet()) {
|
|
|
|
@ -176,20 +233,33 @@ public class CommonController{
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 返回包含分组统计结果的R对象,结果状态为成功
|
|
|
|
|
return R.ok().put("data", result);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* (按值统计)
|
|
|
|
|
* 根据传入的表名、x列名和y列名,调用commonService的selectValue方法对指定表中的指定列进行按值统计操作,
|
|
|
|
|
* 并对结果中的日期类型数据进行格式化处理后返回。
|
|
|
|
|
*
|
|
|
|
|
* @param tableName 表名
|
|
|
|
|
* @param yColumnName 用于统计的y列名
|
|
|
|
|
* @param xColumnName 用于分组的x列名
|
|
|
|
|
* @return 返回包含按值统计结果的R对象
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping("/value/{tableName}/{xColumnName}/{yColumnName}")
|
|
|
|
|
@IgnoreAuth
|
|
|
|
|
public R value(@PathVariable("tableName") String tableName, @PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName) {
|
|
|
|
|
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);
|
|
|
|
|
|
|
|
|
|
// 调用commonService的selectValue方法进行按值统计操作并获取结果
|
|
|
|
|
List<Map<String, Object> > result = commonService.selectValue(params);
|
|
|
|
|
|
|
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
|
for (Map<String, Object> m : result) {
|
|
|
|
|
for (String k : m.keySet()) {
|
|
|
|
@ -198,21 +268,35 @@ public class CommonController{
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 返回包含按值统计结果的R对象,结果状态为成功
|
|
|
|
|
return R.ok().put("data", result);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* (按值统计)时间统计类型
|
|
|
|
|
* 根据传入的表名、x列名、y列名和时间统计类型,调用commonService的selectTimeStatValue方法对指定表中的指定列进行按值统计操作,
|
|
|
|
|
* 并对结果中的日期类型数据进行格式化处理后返回。
|
|
|
|
|
*
|
|
|
|
|
* @param tableName 表名
|
|
|
|
|
* @param yColumnName 用于统计的y列名
|
|
|
|
|
* @param xColumnName 用于分组的x列名
|
|
|
|
|
* @param timeStatType 时间统计类型参数
|
|
|
|
|
* @return 返回包含按值统计结果的R对象
|
|
|
|
|
*/
|
|
|
|
|
@IgnoreAuth
|
|
|
|
|
@RequestMapping("/value/{tableName}/{xColumnName}/{yColumnName}/{timeStatType}")
|
|
|
|
|
public R valueDay(@PathVariable("tableName") String tableName, @PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName, @PathVariable("timeStatType") String timeStatType) {
|
|
|
|
|
@IgnoreAuth
|
|
|
|
|
public R valueDay(@PathVariable("tableName") String tableName, @PathVariable("yColumnName") String yColumnName,
|
|
|
|
|
@PathVariable("xColumnName") String xColumnName, @PathVariable("timeStatType") String timeStatType) {
|
|
|
|
|
Map<String, Object> params = new HashMap<String, Object>();
|
|
|
|
|
params.put("table", tableName);
|
|
|
|
|
params.put("xColumn", xColumnName);
|
|
|
|
|
params.put("yColumn", yColumnName);
|
|
|
|
|
params.put("timeStatType", timeStatType);
|
|
|
|
|
|
|
|
|
|
// 调用commonService的selectTimeStatValue方法进行按值统计操作并获取结果
|
|
|
|
|
List<Map<String, Object> > result = commonService.selectTimeStatValue(params);
|
|
|
|
|
|
|
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
|
for (Map<String, Object> m : result) {
|
|
|
|
|
for (String k : m.keySet()) {
|
|
|
|
@ -221,9 +305,9 @@ public class CommonController{
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 返回包含按值统计结果的R对象,结果状态为成功
|
|
|
|
|
return R.ok().put("data", result);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|