From c5ab826b671d146dcf87e675212956c9a058987e Mon Sep 17 00:00:00 2001 From: wjm <484440634@qq.com> Date: Wed, 11 Dec 2024 23:28:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B3=A8=E9=87=8A=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/controller/CommonController.java | 448 +++++++++++------- 1 file changed, 266 insertions(+), 182 deletions(-) diff --git a/src/main/java/com/controller/CommonController.java b/src/main/java/com/controller/CommonController.java index 3d954b2..8bd3be9 100644 --- a/src/main/java/com/controller/CommonController.java +++ b/src/main/java/com/controller/CommonController.java @@ -28,202 +28,286 @@ 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{ - @Autowired - private CommonService commonService; +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 - */ - @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) { - Map params = new HashMap(); - params.put("table", tableName); - params.put("column", columnName); - if(StringUtils.isNotBlank(level)) { - params.put("level", level); - } - if(StringUtils.isNotBlank(parent)) { - params.put("parent", parent); - } - if(StringUtils.isNotBlank(conditionColumn)) { + private ConfigService configService; + + /** + * 获取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("tableName") String columnName, + @RequestParam(required = false) String conditionColumn, + @RequestParam(required = false) String conditionValue, String level, String parent) { + // 创建一个用于存储参数的Map对象 + Map params = new HashMap(); + params.put("table", tableName); + params.put("column", columnName); + if (StringUtils.isNotBlank(level)) { + params.put("level", level); + } + if (StringUtils.isNotBlank(parent)) { + params.put("parent", parent); + } + if (StringUtils.isNotBlank(conditionColumn)) { params.put("conditionColumn", conditionColumn); } - if(StringUtils.isNotBlank(conditionValue)) { + if (StringUtils.isNotBlank(conditionValue)) { params.put("conditionValue", conditionValue); } - List data = commonService.getOption(params); - return R.ok().put("data", data); - } - - /** - * 根据table中的column获取单条记录 - * @param table - * @param column - * @return - */ - @RequestMapping("/follow/{tableName}/{columnName}") - @IgnoreAuth - public R getFollowByOption(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName, @RequestParam String columnValue) { - Map params = new HashMap(); - params.put("table", tableName); - params.put("column", columnName); - params.put("columnValue", columnValue); - Map 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 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 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); - } - - /** - * 单列求和 - */ - @RequestMapping("/cal/{tableName}/{columnName}") - @IgnoreAuth - public R cal(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName) { - Map params = new HashMap(); - params.put("table", tableName); - params.put("column", columnName); - Map 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 params = new HashMap(); - params.put("table", tableName); - params.put("column", columnName); - List> result = commonService.selectGroup(params); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - for(Map m : result) { - for(String k : m.keySet()) { - if(m.get(k) instanceof Date) { - m.put(k, sdf.format((Date)m.get(k))); - } - } - } - return R.ok().put("data", result); - } - - /** - * (按值统计) - */ - @RequestMapping("/value/{tableName}/{xColumnName}/{yColumnName}") - @IgnoreAuth - public R value(@PathVariable("tableName") String tableName, @PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName) { - Map params = new HashMap(); - params.put("table", tableName); - params.put("xColumn", xColumnName); - params.put("yColumn", yColumnName); - List> result = commonService.selectValue(params); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - for(Map m : result) { - for(String k : m.keySet()) { - if(m.get(k) instanceof Date) { - m.put(k, sdf.format((Date)m.get(k))); - } - } - } - return R.ok().put("data", result); - } - - /** - * (按值统计)时间统计类型 - */ - @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) { - Map params = new HashMap(); - params.put("table", tableName); - params.put("xColumn", xColumnName); - params.put("yColumn", yColumnName); - params.put("timeStatType", timeStatType); - List> result = commonService.selectTimeStatValue(params); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - for(Map m : result) { - for(String k : m.keySet()) { - if(m.get(k) instanceof Date) { - m.put(k, sdf.format((Date)m.get(k))); - } - } - } - return R.ok().put("data", result); - } - - - -} + + // 调用commonService的getOption方法获取数据列表 + List data = commonService.getOption(params); + + // 返回包含数据列表的R对象,结果状态为成功 + return R.ok().put("data", data); + } + + /** + * 根据table中的column获取单条记录 + * 根据传入的表名、列名以及指定的列值,从指定表中获取满足条件的单条记录数据。 + * + * @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) { + // 创建一个用于存储参数的Map对象 + Map params = new HashMap(); + params.put("table", tableName); + params.put("column", columnName); + params.put("columnValue", columnValue); + + // 调用commonService的getFollowByOption方法获取单条记录数据 + Map result = commonService.getFollowByOption(params); + + // 返回包含单条记录数据的R对象,结果状态为成功 + return R.ok().put("data", result); + } + + /** + * 修改table表的sfsh状态 + * 根据传入的表名和一个包含修改信息的Map对象,调用commonService的sh方法来修改指定表的sfsh状态。 + * + * @param tableName 表名 + * @param map 包含修改信息的Map对象,具体内容由调用方确定,通常包含要修改的字段和对应的值等信息 + * @return 返回表示修改操作成功的R对象 + */ + @RequestMapping("/sh/{tableName}") + public R sh(@PathVariable("tableName") String tableName, @RequestBody Map map) { + map.put("table", tableName); + commonService.sh(map); + return R.ok(); + } + + /** + * 获取需要提醒的记录数 + * 根据传入的表名、列名、类型以及一个包含其他条件的Map对象,计算并获取满足条件的需要提醒的记录数量。 + * 当类型为2时,会根据传入的提醒开始时间和结束时间进行日期范围的计算和筛选。 + * + * @param tableName 表名 + * @param columnName 列名 + * @param type 类型参数,1表示数字类型的提醒条件,2表示日期类型的提醒条件 + * @param map 包含其他条件的Map对象,如提醒开始时间、提醒结束时间等(当type为2时相关) + * @return 返回包含需要提醒的记录数的R对象 + */ + @RequestMapping("/remind/{tableName}/{columnName}/{type}") + @IgnoreAuth + public R remindCount(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName, + @PathVariable("type") String type, @RequestParam Map 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 recommendEnd = Integer.parseInt(map.get("remindend").toString()); + c.setTime(new Date()); + 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 + public R cal(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName) { + Map params = new HashMap(); + params.put("table", tableName); + params.put("column", columnName); + + // 调用commonService的selectCal方法进行求和操作并获取结果 + Map result = commonService.selectCal(params); + + // 返回包含求和结果的R对象,结果状态为成功 + return R.ok().put("data", result); + } + + /** + * 分组统计 + * 根据传入的表名和列名,调用commonService的selectGroup方法对指定表中的指定列进行分组统计操作, + * 并对结果中的日期类型数据进行格式化处理后返回。 + * + * @param tableName 表名 + , @param columnName 列名 + * @return 返回包含分组统计结果的R对象 + */ + @RequestMapping("/group/{tableName}/{columnName}") + @IgnoreAuth + public R group(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName) { + Map params = new HashMap(); + params.put("table", tableName); + params.put("column", columnName); + + // 调用commonService的selectGroup方法进行分组统计操作并获取结果 + List> result = commonService.selectGroup(params); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + for (Map m : result) { + for (String k : m.keySet()) { + if (m.get(k) instanceof Date) { + m.put(k, sdf.format((Date) m.get(k))); + } + } + } + + // 返回包含分组统计结果的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) { + Map params = new HashMap(); + params.put("table", tableName); + params.put("xColumn", xColumnName); + params.put("yColumn", yColumnName); + + // 调用commonService的selectValue方法进行按值统计操作并获取结果 + List > result = commonService.selectValue(params); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + for (Map m : result) { + for (String k : m.keySet()) { + if (m.get(k) instanceof Date) { + m.put(k, sdf.format((Date) m.get(k))); + } + } + } + + // 返回包含按值统计结果的R对象,结果状态为成功 + return R.ok().put("data", result); + } + + /** + * (按值统计)时间统计类型 + * 根据传入的表名、x列名、y列名和时间统计类型,调用commonService的selectTimeStatValue方法对指定表中的指定列进行按值统计操作, + * 并对结果中的日期类型数据进行格式化处理后返回。 + * + * @param tableName 表名 + * @param yColumnName 用于统计的y列名 + * @param xColumnName 用于分组的x列名 + * @param timeStatType 时间统计类型参数 + * @return 返回包含按值统计结果的R对象 + */ + @RequestMapping("/value/{tableName}/{xColumnName}/{yColumnName}/{timeStatType}") + @IgnoreAuth + public R valueDay(@PathVariable("tableName") String tableName, @PathVariable("yColumnName") String yColumnName, + @PathVariable("xColumnName") String xColumnName, @PathVariable("timeStatType") String timeStatType) { + Map params = new HashMap(); + params.put("table", tableName); + params.put("xColumn", xColumnName); + params.put("yColumn", yColumnName); + params.put("timeStatType", timeStatType); + + // 调用commonService的selectTimeStatValue方法进行按值统计操作并获取结果 + List > result = commonService.selectTimeStatValue(params); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + for (Map m : result) { + for (String k : m.keySet()) { + if (m.get(k) instanceof Date) { + m.put(k, sdf.format((Date) m.get(k))); + } + } + } + + // 返回包含按值统计结果的R对象,结果状态为成功 + return R.ok().put("data", result); + } + +} \ No newline at end of file