From de1ed8141da7f8ad19f4f97be5d742d628667b89 Mon Sep 17 00:00:00 2001 From: bai <1643359946@qq.com> Date: Mon, 30 Oct 2023 01:39:48 +0800 Subject: [PATCH] =?UTF-8?q?2023=E5=B9=B410=E6=9C=8830=E6=97=A5=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/httpController.java | 57 +++- .../RefreshLiveServer.java | 220 ++++++++++----- .../controller/KcZhihuijiaoshiController.java | 252 ++++++++++-------- .../KcZhihuijiaoshiMonitorLogController.java | 152 +++++++++++ .../KcZhihuijiaoshiStateLogController.java | 167 ++++++++++++ .../entity/KcZhihuijiaoshiMonitorLog.java | 78 ++++++ .../entity/KcZhihuijiaoshiStateLog.java | 98 +++++++ .../KcZhihuijiaoshiMonitorLogMapper.java | 17 ++ .../mapper/KcZhihuijiaoshiStateLogMapper.java | 17 ++ .../xml/KcZhihuijiaoshiMonitorLogMapper.xml | 5 + .../xml/KcZhihuijiaoshiStateLogMapper.xml | 5 + .../IKcZhihuijiaoshiMonitorLogService.java | 14 + .../IKcZhihuijiaoshiStateLogService.java | 14 + .../KcZhihuijiaoshiMonitorLogServiceImpl.java | 19 ++ .../KcZhihuijiaoshiStateLogServiceImpl.java | 19 ++ pom.xml | 8 +- 16 files changed, 938 insertions(+), 204 deletions(-) create mode 100644 jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/controller/KcZhihuijiaoshiMonitorLogController.java create mode 100644 jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/controller/KcZhihuijiaoshiStateLogController.java create mode 100644 jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/entity/KcZhihuijiaoshiMonitorLog.java create mode 100644 jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/entity/KcZhihuijiaoshiStateLog.java create mode 100644 jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/mapper/KcZhihuijiaoshiMonitorLogMapper.java create mode 100644 jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/mapper/KcZhihuijiaoshiStateLogMapper.java create mode 100644 jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/mapper/xml/KcZhihuijiaoshiMonitorLogMapper.xml create mode 100644 jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/mapper/xml/KcZhihuijiaoshiStateLogMapper.xml create mode 100644 jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/service/IKcZhihuijiaoshiMonitorLogService.java create mode 100644 jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/service/IKcZhihuijiaoshiStateLogService.java create mode 100644 jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/service/impl/KcZhihuijiaoshiMonitorLogServiceImpl.java create mode 100644 jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/service/impl/KcZhihuijiaoshiStateLogServiceImpl.java diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/httpinterface/controller/httpController.java b/jeecg-module-main/src/main/java/org/jeecg/modules/httpinterface/controller/httpController.java index 5f5356c3..121e3958 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/httpinterface/controller/httpController.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/httpinterface/controller/httpController.java @@ -18,7 +18,9 @@ import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.modules.kc.grab.exports.entity.TBks; import org.jeecg.modules.kc.grab.exports.service.ITBksService; import org.jeecg.modules.kc.jiaoshi.entity.KcZhihuijiaoshi; +import org.jeecg.modules.kc.jiaoshi.entity.KcZhihuijiaoshiMonitorLog; import org.jeecg.modules.kc.jiaoshi.entity.KcZhihuijiaoshiOperateLog; +import org.jeecg.modules.kc.jiaoshi.service.IKcZhihuijiaoshiMonitorLogService; import org.jeecg.modules.kc.jiaoshi.service.IKcZhihuijiaoshiOperateLogService; import org.jeecg.modules.kc.jiaoshi.service.IKcZhihuijiaoshiService; import org.springframework.beans.factory.annotation.Autowired; @@ -48,6 +50,10 @@ public class httpController extends JeecgController { @Autowired private IKcZhihuijiaoshiOperateLogService kcZhihuijiaoshiOperateLogService; + @Autowired + private IKcZhihuijiaoshiMonitorLogService kcZhihuijiaoshiMonitorLogService;//操作与状态日志 + + @AutoLog(value = "对外部访问接口-通过IDS访问奥威亚接口") @ApiOperation(value="T_BKS-抓取-通过id查询", notes="T_BKS-抓取-通过id查询") @GetMapping(value = "/runAvyApiByIds") @@ -63,6 +69,19 @@ public class httpController extends JeecgController { list.forEach(x -> { KcZhihuijiaoshiOperateLog operateLog = new KcZhihuijiaoshiOperateLog(); + operateLog.setJxlId(x.getJxlId());//教学楼ID + operateLog.setJxlName(x.getJxlName());//教学楼名称 + operateLog.setJsbh(x.getJsbh());//教室编号 + operateLog.setJsmc(x.getJsmc());//教室名称 + operateLog.setOperateType(type);//操作类型(打开还是关闭) + operateLog.setLogType(2);//日志类型 + operateLog.setOperateResultType("0");//调用成功还是失败 + + KcZhihuijiaoshiMonitorLog mnitorLog = new KcZhihuijiaoshiMonitorLog(); + mnitorLog.setJxlId(x.getJxlId());//教学楼ID + mnitorLog.setJxlName(x.getJxlName());//教学楼名称 + mnitorLog.setJsbh(x.getJsbh());//教室编号 + mnitorLog.setJsmc(x.getJsmc());//教室名称 //访问。汇总结果 //http://${ip}/cgi-bin/plat.cgi?action=9&user=${user}&pwsd=${getMd5Str(pwd)}&command=1 String hex = Convert.toHex("live_setParam_enable=" + type, CharsetUtil.CHARSET_UTF_8); @@ -84,27 +103,25 @@ public class httpController extends JeecgController { rm.put("jsmc",x.getJsmc()); rm.put("url",buildUrl); operateLog.setOperateUrl(buildUrl);//操作URL - operateLog.setJxlId(x.getJxlId());//教学楼ID - operateLog.setJxlName(x.getJxlName());//教学楼名称 - operateLog.setJsbh(x.getJsbh());//教室编号 - operateLog.setJsmc(x.getJsmc());//教室名称 - operateLog.setOperateType(type);//操作类型(打开还是关闭) - operateLog.setLogType(2);//日志类型 - operateLog.setOperateResultType("0");//调用成功还是失败 + mnitorLog.setLogType(2);//默认调用成功失败 try{ String resText = HttpUtil.get(buildUrl); log.info("奥威亚返回接口内容:" + resText);//live_setParam_ret=ok rm.put("resText",resText); operateLog.setOperateResult(resText); + mnitorLog.setLogType(2);//调用成功 // res.setResult(rm); } catch (Exception e){ log.error(e.getMessage(),e); rm.put("resText",e.getMessage()); operateLog.setOperateResultType("1"); operateLog.setOperateResult(e.getMessage()); + mnitorLog.setLogType(3);//调用失败 // res.setResult(rm); }finally { kcZhihuijiaoshiOperateLogService.save(operateLog); + //保存操作详细日志 + kcZhihuijiaoshiMonitorLogService.save(mnitorLog); } //解析,决定最后返回结果 }); @@ -131,6 +148,20 @@ public class httpController extends JeecgController { list.forEach(x -> { KcZhihuijiaoshiOperateLog operateLog = new KcZhihuijiaoshiOperateLog(); + operateLog.setJxlId(x.getJxlId());//教学楼ID + operateLog.setJxlName(x.getJxlName());//教学楼名称 + operateLog.setJsbh(x.getJsbh());//教室编号 + operateLog.setJsmc(x.getJsmc());//教室名称 + operateLog.setOperateType(type);//操作类型(打开还是关闭) + operateLog.setLogType(2);//日志类型 + operateLog.setOperateResultType("0");//调用成功还是失败 + + KcZhihuijiaoshiMonitorLog mnitorLog = new KcZhihuijiaoshiMonitorLog(); + mnitorLog.setJxlId(x.getJxlId());//教学楼ID + mnitorLog.setJxlName(x.getJxlName());//教学楼名称 + mnitorLog.setJsbh(x.getJsbh());//教室编号 + mnitorLog.setJsmc(x.getJsmc());//教室名称 + //访问。汇总结果 //http://${ip}/cgi-bin/plat.cgi?action=9&user=${user}&pwsd=${getMd5Str(pwd)}&command=1 String hex = Convert.toHex("live_setParam_enable=" + type, CharsetUtil.CHARSET_UTF_8); @@ -152,27 +183,25 @@ public class httpController extends JeecgController { rm.put("jsmc",x.getJsmc()); rm.put("url",buildUrl); operateLog.setOperateUrl(buildUrl);//操作URL - operateLog.setJxlId(x.getJxlId());//教学楼ID - operateLog.setJxlName(x.getJxlName());//教学楼名称 - operateLog.setJsbh(x.getJsbh());//教室编号 - operateLog.setJsmc(x.getJsmc());//教室名称 - operateLog.setOperateType(type);//操作类型(打开还是关闭) - operateLog.setLogType(2);//日志类型 - operateLog.setOperateResultType("0");//调用成功还是失败 + mnitorLog.setLogType(2);//默认调用成功失败 try{ String resText = HttpUtil.get(buildUrl); log.info("奥威亚返回接口内容:" + resText);//live_setParam_ret=ok rm.put("resText",resText); operateLog.setOperateResult(resText); + mnitorLog.setLogType(2);//调用成功 // res.setResult(rm); } catch (Exception e){ log.error(e.getMessage(),e); rm.put("resText",e.getMessage()); operateLog.setOperateResultType("1"); operateLog.setOperateResult(e.getMessage()); + mnitorLog.setLogType(3);//调用失败 // res.setResult(rm); }finally { kcZhihuijiaoshiOperateLogService.save(operateLog); + //保存操作详细日志 + kcZhihuijiaoshiMonitorLogService.save(mnitorLog); } //解析,决定最后返回结果 }); diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/grab/SynchronizationService/RefreshLiveServer.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/grab/SynchronizationService/RefreshLiveServer.java index f5f42b9a..422c9645 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/grab/SynchronizationService/RefreshLiveServer.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/grab/SynchronizationService/RefreshLiveServer.java @@ -6,29 +6,46 @@ import cn.hutool.core.util.CharsetUtil; import cn.hutool.crypto.SecureUtil; import cn.hutool.http.HttpUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; -import com.beust.jcommander.internal.Sets; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.jeecg.modules.kc.grab.SynchronizationService.base.BaseSync; +import org.jeecg.modules.kc.jiaoshi.controller.KcZhihuijiaoshiController; import org.jeecg.modules.kc.jiaoshi.entity.KcZhihuijiaoshi; +import org.jeecg.modules.kc.jiaoshi.entity.KcZhihuijiaoshiMonitorLog; import org.jeecg.modules.kc.jiaoshi.entity.KcZhihuijiaoshiOperateLog; +import org.jeecg.modules.kc.jiaoshi.entity.KcZhihuijiaoshiStateLog; +import org.jeecg.modules.kc.jiaoshi.service.IKcZhihuijiaoshiMonitorLogService; import org.jeecg.modules.kc.jiaoshi.service.IKcZhihuijiaoshiOperateLogService; import org.jeecg.modules.kc.jiaoshi.service.IKcZhihuijiaoshiService; +import org.jeecg.modules.kc.jiaoshi.service.IKcZhihuijiaoshiStateLogService; import org.quartz.JobExecutionContext; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.util.List; import java.util.Map; -import java.util.Set; +import java.util.stream.Collectors; @Slf4j +@Component public class RefreshLiveServer extends BaseSync { @Autowired private IKcZhihuijiaoshiService kcZhihuijiaoshiService; @Autowired - private IKcZhihuijiaoshiOperateLogService kcZhihuijiaoshiOperateLogService; + private KcZhihuijiaoshiController kcZhihuijiaoshiController; + + @Autowired + private IKcZhihuijiaoshiOperateLogService kcZhihuijiaoshiOperateLogService;//真实操作日志 + + @Autowired + private IKcZhihuijiaoshiMonitorLogService kcZhihuijiaoshiMonitorLogService;//操作与状态日志 + + @Autowired + private IKcZhihuijiaoshiStateLogService kcZhihuijiaoshiStateLogService;//直播状态日志 /** * 若参数变量名修改 QuartzJobController中也需对应修改 @@ -41,50 +58,21 @@ public class RefreshLiveServer extends BaseSync { end(); } - - /** - * 有参定时任务实现 - * @param param 执行参数 - */ public void run(Map param){ - QueryWrapper qw = new QueryWrapper(); - qw.eq("xm","教师近景"); - List list = kcZhihuijiaoshiService.list(qw); -// Map liveOnMap = Maps.newHashMap(); - Set onList = Sets.newHashSet(); - Set outList = Sets.newHashSet(); - list.forEach(x -> { - try{ - String res = com.xkcoding.http.HttpUtil.get(x.getPullUrl()); -// liveOnMap.put(x.getId(),true); - onList.add(x.getId()); - log.info("返回内容:" + res);//live_setParam_ret=ok - } catch (Exception e){ + //新版,查询当前是否有课 + KcZhihuijiaoshi jiaoshi = new KcZhihuijiaoshi(); + jiaoshi.setXm("教师近景"); + jiaoshi.setChangshang("奥威亚"); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("xm","教师近景"); + queryWrapper.eq("changshang","奥威亚"); + IPage pageList = kcZhihuijiaoshiController.queryPageListN(jiaoshi, 1,-1,queryWrapper); + if(pageList != null){ + List list = pageList.getRecords(); + //正在上课的数据 + List skzList = list.stream().filter(x -> x.getNowIsClass() != null && x.getNowIsClass()).collect(Collectors.toList()); + skzList.forEach(x -> { KcZhihuijiaoshiOperateLog operateLog = new KcZhihuijiaoshiOperateLog(); -// liveOnMap.put(x.getId(),false); - outList.add(x.getId()); - log.error(e.getMessage(),e); - //打开推送开关 - //访问。汇总结果 - //http://${ip}/cgi-bin/plat.cgi?action=9&user=${user}&pwsd=${getMd5Str(pwd)}&command=1 - String hex = Convert.toHex("live_setParam_enable=1", CharsetUtil.CHARSET_UTF_8); - String buildUrl = UrlBuilder.create() - .setScheme("http") - .setHost(x.getIp()) - .addPath("/cgi-bin") - .addPath("/plat.cgi") - .addQuery("action", "9") - .addQuery("user", x.getUser()) - .addQuery("pwsd", SecureUtil.md5(x.getMima())) - .addQuery("command", "1") - .addQuery("data", hex) - .build(); - log.info("访问奥威亚接口地址"+buildUrl); -// Map rm = Maps.newHashMap(); -// rm.put("xm",x.getXm()); -// rm.put("jsmc",x.getJsmc()); -// rm.put("url",buildUrl); - operateLog.setOperateUrl(buildUrl);//操作URL operateLog.setJxlId(x.getJxlId());//教学楼ID operateLog.setJxlName(x.getJxlName());//教学楼名称 operateLog.setJsbh(x.getJsbh());//教室编号 @@ -92,37 +80,121 @@ public class RefreshLiveServer extends BaseSync { operateLog.setOperateType("1");//操作类型(打开还是关闭) operateLog.setLogType(1);//日志类型 operateLog.setOperateResultType("0");//调用成功还是失败 - try{ - String resText = HttpUtil.get(buildUrl); - log.info("奥威亚返回接口内容:" + resText);//live_setParam_ret=ok -// rm.put("resText",resText); - operateLog.setOperateResult(resText); -// res.setResult(rm); - } catch (Exception e2){ - log.error(e2.getMessage(),e2); -// rm.put("resText",e2.getMessage()); - operateLog.setOperateResultType("1"); - operateLog.setOperateResult(e2.getMessage()); -// res.setResult(rm); - }finally { - kcZhihuijiaoshiOperateLogService.save(operateLog); - } + KcZhihuijiaoshiMonitorLog mnitorLog = new KcZhihuijiaoshiMonitorLog(); + mnitorLog.setJxlId(x.getJxlId());//教学楼ID + mnitorLog.setJxlName(x.getJxlName());//教学楼名称 + mnitorLog.setJsbh(x.getJsbh());//教室编号 + mnitorLog.setJsmc(x.getJsmc());//教室名称 + try { + String res = com.xkcoding.http.HttpUtil.get(x.getPullUrl()); + log.info("返回内容:" + res);//live_setParam_ret=ok + //记录日志 + mnitorLog.setLogType(1);//播放成功 + } catch (Exception e){ + //播放失败 + //开启 + log.error(e.getMessage(),e); + //打开推送开关 + //访问。汇总结果 + //http://${ip}/cgi-bin/plat.cgi?action=9&user=${user}&pwsd=${getMd5Str(pwd)}&command=1 + String hex = Convert.toHex("live_setParam_enable=1", CharsetUtil.CHARSET_UTF_8); + String buildUrl = UrlBuilder.create() + .setScheme("http") + .setHost(x.getIp()) + .addPath("/cgi-bin") + .addPath("/plat.cgi") + .addQuery("action", "9") + .addQuery("user", x.getUser()) + .addQuery("pwsd", SecureUtil.md5(x.getMima())) + .addQuery("command", "1") + .addQuery("data", hex) + .build(); + log.info("访问奥威亚接口地址"+buildUrl); + operateLog.setOperateUrl(buildUrl);//操作URL + mnitorLog.setLogType(2);//默认调用成功失败 + try{ + String resText = HttpUtil.get(buildUrl); + log.info("奥威亚返回接口内容:" + resText);//live_setParam_ret=ok + operateLog.setOperateResult(resText); + mnitorLog.setLogType(2);//调用成功 + } catch (Exception e2){ + log.error(e2.getMessage(),e2); + operateLog.setOperateResultType("1"); + operateLog.setOperateResult(e2.getMessage()); + mnitorLog.setLogType(3);//调用失败 + }finally { + kcZhihuijiaoshiOperateLogService.save(operateLog); + } + }finally { + //保存操作详细日志 + kcZhihuijiaoshiMonitorLogService.save(mnitorLog); + } + }); + + } + } + + /** + * 刷新日志 + */ + public void refreshState(){ + QueryWrapper qw = new QueryWrapper(); + //qw.eq("xm","教师近景"); + + List list = kcZhihuijiaoshiService.list(qw); + + //删除旧数据 + kcZhihuijiaoshiStateLogService.remove(new QueryWrapper<>()); + Map stateLogMap = Maps.newHashMap(); + + list.forEach(x -> { + KcZhihuijiaoshiStateLog stateLog = null; + if(stateLogMap.containsKey(x.getJsbh())){ + stateLog = stateLogMap.get(x.getJsbh()); + }else{ + KcZhihuijiaoshiStateLog _stateLog = new KcZhihuijiaoshiStateLog(); + _stateLog.setJxlId(x.getJxlId());//教学楼ID + _stateLog.setJxlName(x.getJxlName());//教学楼名称 + _stateLog.setJsbh(x.getJsbh());//教室编号 + _stateLog.setJsmc(x.getJsmc());//教室名称 + stateLogMap.put(x.getJsbh(),_stateLog); + stateLog = _stateLog; + } + try{ + String res = com.xkcoding.http.HttpUtil.get(x.getPullUrl()); + log.info("返回内容:" + res); + switch (x.getXm()){ + case "教师近景": stateLog.setLbzj("green");break; + case "教师全景": stateLog.setJsqj("green");break; + case "学生全景": stateLog.setXsqj("green");break; + case "PPT": stateLog.setPpt("green");break; + default: + } + } catch (Exception e){ + //失败 + switch (x.getXm()){ + case "教师近景": stateLog.setLbzj("red");break; + case "教师全景": stateLog.setJsqj("red");break; + case "学生全景": stateLog.setXsqj("red");break; + case "PPT": stateLog.setPpt("red");break; + default: + } } }); -// if(!onList.isEmpty()){ -// UpdateWrapper onUw = new UpdateWrapper<>(); -// onUw.set("sfyx",0); -// onUw.in("id",onList); -// kcZhihuijiaoshiService.update(onUw); -// } -// -// if(!outList.isEmpty()) { -// UpdateWrapper outUw = new UpdateWrapper<>(); -// outUw.set("sfyx", 1); -// outUw.in("id", outList); -// kcZhihuijiaoshiService.update(outUw); -// } + //重新计算内容 + stateLogMap.forEach((k,v) -> { + int num = (StringUtils.equals("green",v.getLbzj())?1:0) + (StringUtils.equals("green",v.getJsqj())?1:0) + (StringUtils.equals("green",v.getXsqj())?1:0) + (StringUtils.equals("green",v.getPpt())?1:0); + v.setGreenNum(num); + if(num == 4){ + v.setType("green"); + }else if(num == 0){ + v.setType("red"); + }else{ + v.setType("yellow"); + } + }); + kcZhihuijiaoshiStateLogService.saveBatch(stateLogMap.values()); } /** diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/controller/KcZhihuijiaoshiController.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/controller/KcZhihuijiaoshiController.java index e49d7c61..5f83cce8 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/controller/KcZhihuijiaoshiController.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/controller/KcZhihuijiaoshiController.java @@ -21,6 +21,7 @@ import org.apache.commons.lang.StringUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.kc.grab.SynchronizationService.RefreshLiveServer; import org.jeecg.modules.kc.jiaoshi.entity.KcJiaoxuelouInfo; import org.jeecg.modules.kc.jiaoshi.entity.KcZhihuijiaoshi; import org.jeecg.modules.kc.jiaoshi.service.IKcJiaoxuelouInfoService; @@ -31,6 +32,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; +import org.jeecg.modules.kc.jiaoshi.service.IKcZhihuijiaoshiStateLogService; import org.jeecg.modules.kc.kcJieci.entity.KcJieci; import org.jeecg.modules.kc.kcJieci.service.IKcJieciService; import org.jeecg.modules.kc.ktgl.entity.KcKetangbiao; @@ -45,6 +47,7 @@ import org.jeecgframework.poi.excel.entity.ImportParams; import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.jeecg.common.system.base.controller.JeecgController; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; @@ -81,6 +84,13 @@ public class KcZhihuijiaoshiController extends JeecgController queryPageListN(KcZhihuijiaoshi kcZhihuijiaoshi, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + QueryWrapper queryWrapper) { + Page page = new Page(pageNo, pageSize); + IPage pageList = kcZhihuijiaoshiService.page(page, queryWrapper); + //查询今天的课, + DateTime starTime = DateTime.now(); + + String nowTimeStr = starTime.toString("HHmm"); + int nowTimeNum = Integer.parseInt(nowTimeStr); + starTime = DateUtil.endOfDay(starTime);//校正为今天末尾 + String nowStr = starTime.toString("yyyy-MM-dd"); + + QueryWrapper ktqw = new QueryWrapper<>(); + ktqw.apply("skrq >= STR_TO_DATE('"+nowStr+"', '%Y-%m-%d')"); + ktqw.apply("skrq < DATE_ADD(STR_TO_DATE('"+nowStr+"','%Y-%m-%d'),INTERVAL 1 DAY)"); + List kcKetangbiaoList = kcKetangbiaoService.list(ktqw); + + starTime = starTime.offset(DateField.DAY_OF_MONTH,1);//明天 + String nowStr2 = starTime.toString("yyyy-MM-dd"); + + QueryWrapper nextDayKtqw = new QueryWrapper<>(); + nextDayKtqw.eq("hh","01、02");//明天的只查01、02这个节次的 + nextDayKtqw.apply("skrq >= STR_TO_DATE('"+nowStr2+"', '%Y-%m-%d')"); + nextDayKtqw.apply("skrq < DATE_ADD(STR_TO_DATE('"+nowStr2+"','%Y-%m-%d'),INTERVAL 1 DAY)"); + List nextDayKcKetangbiaoList = kcKetangbiaoService.list(nextDayKtqw); + + //查询全部的教学楼 + //QueryWrapper jxlqw = new QueryWrapper<>(); + List jiaoxuelouInfoList = kcJiaoxuelouInfoService.list(); + + Map jiaoxuelouInfoMap = jiaoxuelouInfoList.stream().collect(Collectors.toMap(KcJiaoxuelouInfo::getId,a -> a, (a,b) -> a)); + + //下一节次映射表 + Map nextJcMap = Maps.newHashMap(); + nextJcMap.put("01、02","03、04"); + nextJcMap.put("03、04","05、06"); + nextJcMap.put("05、06","07、08"); + nextJcMap.put("07、08","09、10"); + nextJcMap.put("09、10","11、12"); + nextJcMap.put("11、12","01、02"); + + //查询节次时间 + QueryWrapper jcqw = new QueryWrapper<>(); + jcqw.like("jieci","、"); + List kcJieciList= kcJieciService.list(jcqw); + Map kcJieciMap = Maps.newHashMap(); + Set nextKcJieciSet = Sets.newHashSet(); + kcJieciList.forEach(x -> { + JieciIntTime jieciIntTime = new JieciIntTime(); + jieciIntTime.setKsTime(Integer.parseInt(x.getHhks())+30);//提前30分钟 + jieciIntTime.setJsTime(Integer.parseInt(x.getHhjs())); + + if(jieciIntTime.getKsTime() <= nowTimeNum && nowTimeNum <= jieciIntTime.getJsTime()){ + //符合当前节 + kcJieciMap.put(x.getJieci(), jieciIntTime); + } + //下一节次 + + }); + //补充进下一节次里 + kcJieciMap.forEach((k,v) -> { + if(nextJcMap.containsKey(k)){ + String nextKey = nextJcMap.get(k); + //if(kcJieciMap.containsKey(nextKey)){ + nextKcJieciSet.add(nextKey);//存下一节课,占个可以就行 + //} + } + }); + + //根据节次信息包装进Map + Set kcKetangbiaoNowSet = Sets.newHashSet(); + Set kcKetangbiaoNextSet = Sets.newHashSet(); + + kcKetangbiaoList.forEach(x -> { + //匹配是否在上课范围内 + if(kcJieciMap.containsKey(x.getHh())){ + kcKetangbiaoNowSet.add(x.getJsbh()); + } + //下一节不是01、02的归类为明天的 + if(nextKcJieciSet.contains(x.getHh()) && !StringUtils.equals(x.getHh(),"01、02")){ + kcKetangbiaoNextSet.add(x.getJsbh()); + } + }); + if(kcJieciMap.isEmpty() || kcJieciMap.containsKey("11、12")){//当前没有节次,当前匹配节次为最后一节,使用明天的课程填充进去 + nextDayKcKetangbiaoList.forEach(x -> { + if(StringUtils.equals(x.getHh(),"01、02")){ + kcKetangbiaoNextSet.add(x.getJsbh()); + } + }); + } + + //计算哪节在时间范围内 + + //装填到数据里 + pageList.getRecords().forEach(x -> { + //jsbh 教室编号 + //sksj 上课时间 + //hh 节次 + //kcJieciMap.containsKey(x.getHh) + + //nowTimeNum + if(kcKetangbiaoNowSet.contains(x.getJsbh())){ + x.setNowIsClass(true); + } +// x.setNowIsClass(true);//debug + if(kcKetangbiaoNextSet.contains(x.getJsbh())){ + x.setNextIsClass(true); + } + if(jiaoxuelouInfoMap.containsKey(x.getJxlId())){ + KcJiaoxuelouInfo info = jiaoxuelouInfoMap.get(x.getJxlId()); + x.setJsNum(StringUtils.defaultString(info.getJsNum(),"0")); + } + }); + return pageList; + } + + /** * 分页列表查询 * @@ -106,118 +236,7 @@ public class KcZhihuijiaoshiController extends JeecgController queryWrapper = QueryGenerator.initQueryWrapper(kcZhihuijiaoshi, req.getParameterMap()); - Page page = new Page(pageNo, pageSize); - IPage pageList = kcZhihuijiaoshiService.page(page, queryWrapper); - //查询今天的课, - DateTime starTime = DateTime.now(); - - String nowTimeStr = starTime.toString("HHmm"); - int nowTimeNum = Integer.parseInt(nowTimeStr); - starTime = DateUtil.endOfDay(starTime);//校正为今天末尾 - String nowStr = starTime.toString("yyyy-MM-dd"); - - QueryWrapper ktqw = new QueryWrapper<>(); - ktqw.apply("skrq >= STR_TO_DATE('"+nowStr+"', '%Y-%m-%d')"); - ktqw.apply("skrq < DATE_ADD(STR_TO_DATE('"+nowStr+"','%Y-%m-%d'),INTERVAL 1 DAY)"); - List kcKetangbiaoList = kcKetangbiaoService.list(ktqw); - - starTime = starTime.offset(DateField.DAY_OF_MONTH,1);//明天 - String nowStr2 = starTime.toString("yyyy-MM-dd"); - - QueryWrapper nextDayKtqw = new QueryWrapper<>(); - nextDayKtqw.eq("hh","01、02");//明天的只查01、02这个节次的 - nextDayKtqw.apply("skrq >= STR_TO_DATE('"+nowStr2+"', '%Y-%m-%d')"); - nextDayKtqw.apply("skrq < DATE_ADD(STR_TO_DATE('"+nowStr2+"','%Y-%m-%d'),INTERVAL 1 DAY)"); - List nextDayKcKetangbiaoList = kcKetangbiaoService.list(nextDayKtqw); - - //查询全部的教学楼 - //QueryWrapper jxlqw = new QueryWrapper<>(); - List jiaoxuelouInfoList = kcJiaoxuelouInfoService.list(); - - Map jiaoxuelouInfoMap = jiaoxuelouInfoList.stream().collect(Collectors.toMap(KcJiaoxuelouInfo::getId,a -> a, (a,b) -> a)); - - //下一节次映射表 - Map nextJcMap = Maps.newHashMap(); - nextJcMap.put("01、02","03、04"); - nextJcMap.put("03、04","05、06"); - nextJcMap.put("05、06","07、08"); - nextJcMap.put("07、08","09、10"); - nextJcMap.put("09、10","11、12"); - nextJcMap.put("11、12","01、02"); - - //查询节次时间 - QueryWrapper jcqw = new QueryWrapper<>(); - jcqw.like("jieci","、"); - List kcJieciList= kcJieciService.list(jcqw); - Map kcJieciMap = Maps.newHashMap(); - Set nextKcJieciSet = Sets.newHashSet(); - kcJieciList.forEach(x -> { - JieciIntTime jieciIntTime = new JieciIntTime(); - jieciIntTime.setKsTime(Integer.parseInt(x.getHhks())+30);//提前30分钟 - jieciIntTime.setJsTime(Integer.parseInt(x.getHhjs())); - - if(jieciIntTime.getKsTime() <= nowTimeNum && nowTimeNum <= jieciIntTime.getJsTime()){ - //符合当前节 - kcJieciMap.put(x.getJieci(), jieciIntTime); - } - //下一节次 - - }); - //补充进下一节次里 - kcJieciMap.forEach((k,v) -> { - if(nextJcMap.containsKey(k)){ - String nextKey = nextJcMap.get(k); - //if(kcJieciMap.containsKey(nextKey)){ - nextKcJieciSet.add(nextKey);//存下一节课,占个可以就行 - //} - } - }); - - //根据节次信息包装进Map - Set kcKetangbiaoNowSet = Sets.newHashSet(); - Set kcKetangbiaoNextSet = Sets.newHashSet(); - - kcKetangbiaoList.forEach(x -> { - //匹配是否在上课范围内 - if(kcJieciMap.containsKey(x.getHh())){ - kcKetangbiaoNowSet.add(x.getJsbh()); - } - //下一节不是01、02的归类为明天的 - if(nextKcJieciSet.contains(x.getHh()) && !StringUtils.equals(x.getHh(),"01、02")){ - kcKetangbiaoNextSet.add(x.getJsbh()); - } - }); - if(kcJieciMap.isEmpty() || kcJieciMap.containsKey("11、12")){//当前没有节次,当前匹配节次为最后一节,使用明天的课程填充进去 - nextDayKcKetangbiaoList.forEach(x -> { - if(StringUtils.equals(x.getHh(),"01、02")){ - kcKetangbiaoNextSet.add(x.getJsbh()); - } - }); - } - - - - //计算哪节在时间范围内 - - //装填到数据里 - pageList.getRecords().forEach(x -> { - //jsbh 教室编号 - //sksj 上课时间 - //hh 节次 - //kcJieciMap.containsKey(x.getHh) - - //nowTimeNum - if(kcKetangbiaoNowSet.contains(x.getJsbh())){ - x.setNowIsClass(true); - } - if(kcKetangbiaoNextSet.contains(x.getJsbh())){ - x.setNextIsClass(true); - } - if(jiaoxuelouInfoMap.containsKey(x.getJxlId())){ - KcJiaoxuelouInfo info = jiaoxuelouInfoMap.get(x.getJxlId()); - x.setJsNum(StringUtils.defaultString(info.getJsNum(),"0")); - } - }); + IPage pageList = queryPageListN(kcZhihuijiaoshi,pageNo,pageSize,queryWrapper); return Result.OK(pageList); } @@ -377,5 +396,14 @@ public class KcZhihuijiaoshiController extends JeecgController refreshLogs(){ + refreshLiveServer.refreshState(); + return Result.OK(kcZhihuijiaoshiStateLogService.list()); + } } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/controller/KcZhihuijiaoshiMonitorLogController.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/controller/KcZhihuijiaoshiMonitorLogController.java new file mode 100644 index 00000000..ef9fcb43 --- /dev/null +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/controller/KcZhihuijiaoshiMonitorLogController.java @@ -0,0 +1,152 @@ +package org.jeecg.modules.kc.jiaoshi.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.modules.kc.jiaoshi.entity.KcZhihuijiaoshiMonitorLog; +import org.jeecg.modules.kc.jiaoshi.service.IKcZhihuijiaoshiMonitorLogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; + + /** + * @Description: 状态日志 + * @Author: jeecg-boot + * @Date: 2023-10-29 + * @Version: V1.0 + */ +@Slf4j +@Api(tags="状态日志") +@RestController +@RequestMapping("/jiaoshi/kcZhihuijiaoshiMonitorLog") +public class KcZhihuijiaoshiMonitorLogController extends JeecgController { + @Autowired + private IKcZhihuijiaoshiMonitorLogService kcZhihuijiaoshiMonitorLogService; + + /** + * 分页列表查询 + * + * @param kcZhihuijiaoshiMonitorLog + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @AutoLog(value = "状态日志-分页列表查询") + @ApiOperation(value="状态日志-分页列表查询", notes="状态日志-分页列表查询") + @GetMapping(value = "/list") + public Result queryPageList(KcZhihuijiaoshiMonitorLog kcZhihuijiaoshiMonitorLog, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(kcZhihuijiaoshiMonitorLog, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = kcZhihuijiaoshiMonitorLogService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param kcZhihuijiaoshiMonitorLog + * @return + */ + @AutoLog(value = "状态日志-添加") + @ApiOperation(value="状态日志-添加", notes="状态日志-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody KcZhihuijiaoshiMonitorLog kcZhihuijiaoshiMonitorLog) { + kcZhihuijiaoshiMonitorLogService.save(kcZhihuijiaoshiMonitorLog); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param kcZhihuijiaoshiMonitorLog + * @return + */ + @AutoLog(value = "状态日志-编辑") + @ApiOperation(value="状态日志-编辑", notes="状态日志-编辑") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody KcZhihuijiaoshiMonitorLog kcZhihuijiaoshiMonitorLog) { + kcZhihuijiaoshiMonitorLogService.updateById(kcZhihuijiaoshiMonitorLog); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "状态日志-通过id删除") + @ApiOperation(value="状态日志-通过id删除", notes="状态日志-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + kcZhihuijiaoshiMonitorLogService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "状态日志-批量删除") + @ApiOperation(value="状态日志-批量删除", notes="状态日志-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.kcZhihuijiaoshiMonitorLogService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @AutoLog(value = "状态日志-通过id查询") + @ApiOperation(value="状态日志-通过id查询", notes="状态日志-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + KcZhihuijiaoshiMonitorLog kcZhihuijiaoshiMonitorLog = kcZhihuijiaoshiMonitorLogService.getById(id); + return Result.OK(kcZhihuijiaoshiMonitorLog); + } + + /** + * 导出excel + * + * @param request + * @param kcZhihuijiaoshiMonitorLog + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, KcZhihuijiaoshiMonitorLog kcZhihuijiaoshiMonitorLog) { + return super.exportXls(request, kcZhihuijiaoshiMonitorLog, KcZhihuijiaoshiMonitorLog.class, "状态日志"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, KcZhihuijiaoshiMonitorLog.class); + } + +} diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/controller/KcZhihuijiaoshiStateLogController.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/controller/KcZhihuijiaoshiStateLogController.java new file mode 100644 index 00000000..49929faa --- /dev/null +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/controller/KcZhihuijiaoshiStateLogController.java @@ -0,0 +1,167 @@ +package org.jeecg.modules.kc.jiaoshi.controller; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.kc.jiaoshi.entity.KcZhihuijiaoshiStateLog; +import org.jeecg.modules.kc.jiaoshi.service.IKcZhihuijiaoshiStateLogService; +import java.util.Date; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; + + /** + * @Description: 状态日志 + * @Author: jeecg-boot + * @Date: 2023-10-29 + * @Version: V1.0 + */ +@Slf4j +@Api(tags="状态日志") +@RestController +@RequestMapping("/jiaoshi/kcZhihuijiaoshiStateLog") +public class KcZhihuijiaoshiStateLogController extends JeecgController { + @Autowired + private IKcZhihuijiaoshiStateLogService kcZhihuijiaoshiStateLogService; + + /** + * 分页列表查询 + * + * @param kcZhihuijiaoshiStateLog + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @AutoLog(value = "状态日志-分页列表查询") + @ApiOperation(value="状态日志-分页列表查询", notes="状态日志-分页列表查询") + @GetMapping(value = "/list") + public Result queryPageList(KcZhihuijiaoshiStateLog kcZhihuijiaoshiStateLog, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(kcZhihuijiaoshiStateLog, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = kcZhihuijiaoshiStateLogService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param kcZhihuijiaoshiStateLog + * @return + */ + @AutoLog(value = "状态日志-添加") + @ApiOperation(value="状态日志-添加", notes="状态日志-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody KcZhihuijiaoshiStateLog kcZhihuijiaoshiStateLog) { + kcZhihuijiaoshiStateLogService.save(kcZhihuijiaoshiStateLog); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param kcZhihuijiaoshiStateLog + * @return + */ + @AutoLog(value = "状态日志-编辑") + @ApiOperation(value="状态日志-编辑", notes="状态日志-编辑") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody KcZhihuijiaoshiStateLog kcZhihuijiaoshiStateLog) { + kcZhihuijiaoshiStateLogService.updateById(kcZhihuijiaoshiStateLog); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "状态日志-通过id删除") + @ApiOperation(value="状态日志-通过id删除", notes="状态日志-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + kcZhihuijiaoshiStateLogService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "状态日志-批量删除") + @ApiOperation(value="状态日志-批量删除", notes="状态日志-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.kcZhihuijiaoshiStateLogService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @AutoLog(value = "状态日志-通过id查询") + @ApiOperation(value="状态日志-通过id查询", notes="状态日志-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + KcZhihuijiaoshiStateLog kcZhihuijiaoshiStateLog = kcZhihuijiaoshiStateLogService.getById(id); + return Result.OK(kcZhihuijiaoshiStateLog); + } + + /** + * 导出excel + * + * @param request + * @param kcZhihuijiaoshiStateLog + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, KcZhihuijiaoshiStateLog kcZhihuijiaoshiStateLog) { + return super.exportXls(request, kcZhihuijiaoshiStateLog, KcZhihuijiaoshiStateLog.class, "状态日志"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, KcZhihuijiaoshiStateLog.class); + } + +} diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/entity/KcZhihuijiaoshiMonitorLog.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/entity/KcZhihuijiaoshiMonitorLog.java new file mode 100644 index 00000000..d0adf2a3 --- /dev/null +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/entity/KcZhihuijiaoshiMonitorLog.java @@ -0,0 +1,78 @@ +package org.jeecg.modules.kc.jiaoshi.entity; + +import java.io.Serializable; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.jeecg.common.aspect.annotation.Dict; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; + +/** + * @Description: 状态日志 + * @Author: jeecg-boot + * @Date: 2023-10-29 + * @Version: V1.0 + */ +@Data +@TableName("kc_zhihuijiaoshi_monitor_log") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="kc_zhihuijiaoshi_monitor_log对象", description="状态日志") +public class KcZhihuijiaoshiMonitorLog { + + /**id*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "id") + private java.lang.String id; + /**日志类型(1:播放正常 | 2:播放失败,拉起成功 | 3:播放失败,拉起失败)*/ + @Excel(name = "日志类型(1:播放正常 | 2:播放失败,拉起成功 | 3:播放失败,拉起失败)", width = 15) + @ApiModelProperty(value = "日志类型(1:播放正常 | 2:播放失败,拉起成功 | 3:播放失败,拉起失败)") + private java.lang.Integer logType; + /**教学楼编号*/ + @Excel(name = "教学楼编号", width = 15) + @ApiModelProperty(value = "教学楼编号") + private java.lang.String jxlId; + /**教学楼名称*/ + @Excel(name = "教学楼名称", width = 15) + @ApiModelProperty(value = "教学楼名称") + private java.lang.String jxlName; + /**教室编号*/ + @Excel(name = "教室编号", width = 15) + @ApiModelProperty(value = "教室编号") + private java.lang.String jsbh; + /**教室名称*/ + @Excel(name = "教室名称", width = 15) + @ApiModelProperty(value = "教室名称") + private java.lang.String jsmc; + /**创建人*/ + @Excel(name = "创建人", width = 15) + @ApiModelProperty(value = "创建人") + @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname") + private java.lang.String createBy; + /**创建时间*/ + @Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建时间") + private java.util.Date createTime; + /**更新人*/ + @Excel(name = "更新人", width = 15) + @ApiModelProperty(value = "更新人") + @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname") + private java.lang.String updateBy; + /**更新时间*/ + @Excel(name = "更新时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新时间") + private java.util.Date updateTime; +} diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/entity/KcZhihuijiaoshiStateLog.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/entity/KcZhihuijiaoshiStateLog.java new file mode 100644 index 00000000..477c125b --- /dev/null +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/entity/KcZhihuijiaoshiStateLog.java @@ -0,0 +1,98 @@ +package org.jeecg.modules.kc.jiaoshi.entity; + +import java.io.Serializable; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.jeecg.common.aspect.annotation.Dict; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; + +/** + * @Description: 状态日志 + * @Author: jeecg-boot + * @Date: 2023-10-29 + * @Version: V1.0 + */ +@Data +@TableName("kc_zhihuijiaoshi_state_log") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="kc_zhihuijiaoshi_state_log对象", description="状态日志") +public class KcZhihuijiaoshiStateLog { + + /**id*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "id") + private java.lang.String id; + /**教学楼编号*/ + @Excel(name = "教学楼编号", width = 15) + @ApiModelProperty(value = "教学楼编号") + private java.lang.String jxlId; + /**教学楼名称*/ + @Excel(name = "教学楼名称", width = 15) + @ApiModelProperty(value = "教学楼名称") + private java.lang.String jxlName; + /**教室编号*/ + @Excel(name = "教室编号", width = 15) + @ApiModelProperty(value = "教室编号") + private java.lang.String jsbh; + /**教室名称*/ + @Excel(name = "教室名称", width = 15) + @ApiModelProperty(value = "教室名称") + private java.lang.String jsmc; + /**教师近景(录播主机*/ + @Excel(name = "教师近景(录播主机", width = 15) + @ApiModelProperty(value = "教师近景(录播主机)") + private java.lang.String lbzj; + /**教师全景*/ + @Excel(name = "教师全景", width = 15) + @ApiModelProperty(value = "教师全景") + private java.lang.String jsqj; + /**学生全景*/ + @Excel(name = "学生全景", width = 15) + @ApiModelProperty(value = "学生全景") + private java.lang.String xsqj; + /**PPT*/ + @Excel(name = "PPT", width = 15) + @ApiModelProperty(value = "PPT") + private java.lang.String ppt; + /**绿色的数量*/ + @Excel(name = "绿色的数量", width = 15) + @ApiModelProperty(value = "绿色的数量") + private java.lang.Integer greenNum; + /**状态指示灯(green: 直播正常, yellow: 部分异常,red: 设备异常)*/ + @Excel(name = "状态指示灯(green: 直播正常, yellow: 部分异常,red: 设备异常)", width = 15) + @ApiModelProperty(value = "状态指示灯(green: 直播正常, yellow: 部分异常,red: 设备异常)") + private java.lang.String type; + /**创建人*/ + @Excel(name = "创建人", width = 15) + @ApiModelProperty(value = "创建人") + @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname") + private java.lang.String createBy; + /**创建时间*/ + @Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建时间") + private java.util.Date createTime; + /**更新人*/ + @Excel(name = "更新人", width = 15) + @ApiModelProperty(value = "更新人") + @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname") + private java.lang.String updateBy; + /**更新时间*/ + @Excel(name = "更新时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新时间") + private java.util.Date updateTime; +} diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/mapper/KcZhihuijiaoshiMonitorLogMapper.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/mapper/KcZhihuijiaoshiMonitorLogMapper.java new file mode 100644 index 00000000..cfb3e6ea --- /dev/null +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/mapper/KcZhihuijiaoshiMonitorLogMapper.java @@ -0,0 +1,17 @@ +package org.jeecg.modules.kc.jiaoshi.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.kc.jiaoshi.entity.KcZhihuijiaoshiMonitorLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 状态日志 + * @Author: jeecg-boot + * @Date: 2023-10-29 + * @Version: V1.0 + */ +public interface KcZhihuijiaoshiMonitorLogMapper extends BaseMapper { + +} diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/mapper/KcZhihuijiaoshiStateLogMapper.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/mapper/KcZhihuijiaoshiStateLogMapper.java new file mode 100644 index 00000000..6b142e93 --- /dev/null +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/mapper/KcZhihuijiaoshiStateLogMapper.java @@ -0,0 +1,17 @@ +package org.jeecg.modules.kc.jiaoshi.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.kc.jiaoshi.entity.KcZhihuijiaoshiStateLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 状态日志 + * @Author: jeecg-boot + * @Date: 2023-10-29 + * @Version: V1.0 + */ +public interface KcZhihuijiaoshiStateLogMapper extends BaseMapper { + +} diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/mapper/xml/KcZhihuijiaoshiMonitorLogMapper.xml b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/mapper/xml/KcZhihuijiaoshiMonitorLogMapper.xml new file mode 100644 index 00000000..b3a78443 --- /dev/null +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/mapper/xml/KcZhihuijiaoshiMonitorLogMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/mapper/xml/KcZhihuijiaoshiStateLogMapper.xml b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/mapper/xml/KcZhihuijiaoshiStateLogMapper.xml new file mode 100644 index 00000000..40628560 --- /dev/null +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/mapper/xml/KcZhihuijiaoshiStateLogMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/service/IKcZhihuijiaoshiMonitorLogService.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/service/IKcZhihuijiaoshiMonitorLogService.java new file mode 100644 index 00000000..61248296 --- /dev/null +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/service/IKcZhihuijiaoshiMonitorLogService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.kc.jiaoshi.service; + +import org.jeecg.modules.kc.jiaoshi.entity.KcZhihuijiaoshiMonitorLog; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 状态日志 + * @Author: jeecg-boot + * @Date: 2023-10-29 + * @Version: V1.0 + */ +public interface IKcZhihuijiaoshiMonitorLogService extends IService { + +} diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/service/IKcZhihuijiaoshiStateLogService.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/service/IKcZhihuijiaoshiStateLogService.java new file mode 100644 index 00000000..18d19c62 --- /dev/null +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/service/IKcZhihuijiaoshiStateLogService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.kc.jiaoshi.service; + +import org.jeecg.modules.kc.jiaoshi.entity.KcZhihuijiaoshiStateLog; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 状态日志 + * @Author: jeecg-boot + * @Date: 2023-10-29 + * @Version: V1.0 + */ +public interface IKcZhihuijiaoshiStateLogService extends IService { + +} diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/service/impl/KcZhihuijiaoshiMonitorLogServiceImpl.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/service/impl/KcZhihuijiaoshiMonitorLogServiceImpl.java new file mode 100644 index 00000000..e5973754 --- /dev/null +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/service/impl/KcZhihuijiaoshiMonitorLogServiceImpl.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.kc.jiaoshi.service.impl; + +import org.jeecg.modules.kc.jiaoshi.entity.KcZhihuijiaoshiMonitorLog; +import org.jeecg.modules.kc.jiaoshi.mapper.KcZhihuijiaoshiMonitorLogMapper; +import org.jeecg.modules.kc.jiaoshi.service.IKcZhihuijiaoshiMonitorLogService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 状态日志 + * @Author: jeecg-boot + * @Date: 2023-10-29 + * @Version: V1.0 + */ +@Service +public class KcZhihuijiaoshiMonitorLogServiceImpl extends ServiceImpl implements IKcZhihuijiaoshiMonitorLogService { + +} diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/service/impl/KcZhihuijiaoshiStateLogServiceImpl.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/service/impl/KcZhihuijiaoshiStateLogServiceImpl.java new file mode 100644 index 00000000..40ea723e --- /dev/null +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/service/impl/KcZhihuijiaoshiStateLogServiceImpl.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.kc.jiaoshi.service.impl; + +import org.jeecg.modules.kc.jiaoshi.entity.KcZhihuijiaoshiStateLog; +import org.jeecg.modules.kc.jiaoshi.mapper.KcZhihuijiaoshiStateLogMapper; +import org.jeecg.modules.kc.jiaoshi.service.IKcZhihuijiaoshiStateLogService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 状态日志 + * @Author: jeecg-boot + * @Date: 2023-10-29 + * @Version: V1.0 + */ +@Service +public class KcZhihuijiaoshiStateLogServiceImpl extends ServiceImpl implements IKcZhihuijiaoshiStateLogService { + +} diff --git a/pom.xml b/pom.xml index ecbf0da0..88567540 100644 --- a/pom.xml +++ b/pom.xml @@ -138,10 +138,10 @@ pegdown ${pegdown.version} - - - - + + org.jeecgframework.boot + jeecg-boot-base-core +