2023年10月24日 新增关闭教室定时任务
This commit is contained in:
parent
da94a1a426
commit
871cd07712
|
@ -0,0 +1,135 @@
|
|||
package org.jeecg.modules.kc.grab.SynchronizationService;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.net.url.UrlBuilder;
|
||||
import cn.hutool.core.util.CharsetUtil;
|
||||
import cn.hutool.crypto.SecureUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.beust.jcommander.internal.Sets;
|
||||
import com.xkcoding.http.HttpUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jeecg.modules.kc.grab.SynchronizationService.base.BaseSync;
|
||||
import org.jeecg.modules.kc.jiaoshi.entity.KcZhihuijiaoshi;
|
||||
import org.jeecg.modules.kc.jiaoshi.entity.KcZhihuijiaoshiOperateLog;
|
||||
import org.jeecg.modules.kc.jiaoshi.service.IKcZhihuijiaoshiOperateLogService;
|
||||
import org.jeecg.modules.kc.jiaoshi.service.IKcZhihuijiaoshiService;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
@Slf4j
|
||||
public class RefreshCloseLiveServer extends BaseSync {
|
||||
|
||||
@Autowired
|
||||
private IKcZhihuijiaoshiService kcZhihuijiaoshiService;
|
||||
|
||||
@Autowired
|
||||
private IKcZhihuijiaoshiOperateLogService kcZhihuijiaoshiOperateLogService;
|
||||
|
||||
/**
|
||||
* 若参数变量名修改 QuartzJobController中也需对应修改
|
||||
*/
|
||||
|
||||
@Override
|
||||
public void execute(JobExecutionContext jobExecutionContext) {
|
||||
start();
|
||||
run(getParamMap());
|
||||
end();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 有参定时任务实现
|
||||
* @param param 执行参数
|
||||
*/
|
||||
public void run(Map<String, Object> param){
|
||||
QueryWrapper<KcZhihuijiaoshi> qw = new QueryWrapper<KcZhihuijiaoshi>();
|
||||
qw.eq("xm","教师近景");
|
||||
List<KcZhihuijiaoshi> list = kcZhihuijiaoshiService.list(qw);
|
||||
// Map<Integer,Boolean> liveOnMap = Maps.newHashMap();
|
||||
Set<Integer> onList = Sets.newHashSet();
|
||||
Set<Integer> outList = Sets.newHashSet();
|
||||
list.forEach(x -> {
|
||||
try{
|
||||
String res = HttpUtil.get(x.getPullUrl());
|
||||
// liveOnMap.put(x.getId(),true);
|
||||
onList.add(x.getId());
|
||||
log.info("返回内容:" + res);//live_setParam_ret=ok
|
||||
} catch (Exception e){
|
||||
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=0", 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<String,String> 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());//教室编号
|
||||
operateLog.setJsmc(x.getJsmc());//教室名称
|
||||
operateLog.setOperateType("0");//操作类型(打开还是关闭)
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
if(!onList.isEmpty()){
|
||||
UpdateWrapper<KcZhihuijiaoshi> onUw = new UpdateWrapper<>();
|
||||
onUw.set("sfyx",0);
|
||||
onUw.in("id",onList);
|
||||
kcZhihuijiaoshiService.update(onUw);
|
||||
}
|
||||
|
||||
if(!outList.isEmpty()) {
|
||||
UpdateWrapper<KcZhihuijiaoshi> outUw = new UpdateWrapper<>();
|
||||
outUw.set("sfyx", 1);
|
||||
outUw.in("id", outList);
|
||||
kcZhihuijiaoshiService.update(outUw);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 无参定时任务实现
|
||||
*/
|
||||
public void run(){
|
||||
run(null);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue