diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/controller/ZyInfoController.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/controller/ZyInfoController.java index eeddf570..fc080326 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/controller/ZyInfoController.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/controller/ZyInfoController.java @@ -778,18 +778,19 @@ public class ZyInfoController extends JeecgController { //微信通知点击后跳转的页面 private static final String domainTo = "https://zxkccx.webvpn.nenu.edu.cn"; + public void sendWxmessage(KcWechatSendLog kcWechatSendLog) { String openId = kcWechatSendLog.getOpenid();//曹老师账号 - System.out.println("openId:"+openId+""); - if(org.apache.commons.lang3.StringUtils.isNotEmpty(openId)){ + System.out.println("openId:" + openId + ""); + if (org.apache.commons.lang3.StringUtils.isNotEmpty(openId)) { try { - String urlToken = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid="+ appId +"&corpsecret=" + appIdSecret; - System.out.println("urlToken: "+ urlToken); + String urlToken = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + appId + "&corpsecret=" + appIdSecret; + System.out.println("urlToken: " + urlToken); String res = HttpUtil.get(urlToken); JSONObject jsonObjectToken = JSONObject.parseObject(res); - System.out.println("jsonObjectToken:{}"+ jsonObjectToken); + System.out.println("jsonObjectToken:{}" + jsonObjectToken); String accessToken = jsonObjectToken.getString("access_token"); - System.out.println("accessToken:{}"+ accessToken); + System.out.println("accessToken:{}" + accessToken); // 微信的基础accessToken String url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + accessToken; @@ -797,7 +798,7 @@ public class ZyInfoController extends JeecgController { // 1、xx老师,你好,您本学期(2023秋)听课要求为:5次,当前实际听课次数:3次,请尽快完成本学期的听课任务。 String html = kcWechatSendLog.getYtkcs(); - html = html + "\n查看"; + html = html + "\n查看"; sendMag.put("content", html);//授课老师推送内容 RestTemplate restTemplate = new RestTemplate(); //拼接base参数 @@ -805,17 +806,17 @@ public class ZyInfoController extends JeecgController { sendBody.put("touser", openId); // openId sendBody.put("msgtype", "text"); // 消息类型,此时固定为:text sendBody.put("agentid", agentid); // 企业id - sendBody.put("text",sendMag); //发送内容 + sendBody.put("text", sendMag); //发送内容 ResponseEntity forEntity = restTemplate.postForEntity(url, sendBody, String.class); JSONObject jsonObject2 = JSONObject.parseObject(forEntity.getBody()); System.out.println("jsonObject2 : " + jsonObject2); String messageCode = jsonObject2.getString("errcode"); String msgId = jsonObject2.getString("msgid"); - System.out.println("messageCode : " + messageCode + ", msgId: " +msgId); - }catch (Exception e) { + System.out.println("messageCode : " + messageCode + ", msgId: " + msgId); + } catch (Exception e) { e.printStackTrace(); } - }else{ + } else { } } @@ -880,14 +881,13 @@ public class ZyInfoController extends JeecgController { } try { KcWechatSendLog kcWechatSendLog = new KcWechatSendLog(); - kcWechatSendLog.setOpenid("2016900057");//指定曹老师账号 -// kcWechatSendLog.setOpenid(xxhbbks.getXh()); +// kcWechatSendLog.setOpenid("2016900057");//指定曹老师账号 + kcWechatSendLog.setOpenid(xxhbbks.getXh()); kcWechatSendLog.setYtkcs(zyDbtx.getContent()); sendWxmessage(kcWechatSendLog); } catch (Exception e) { e.printStackTrace(); } - break; } } } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/service/impl/ZyInfoServiceImpl.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/service/impl/ZyInfoServiceImpl.java index 96f44ec6..c7a7fe27 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/service/impl/ZyInfoServiceImpl.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/service/impl/ZyInfoServiceImpl.java @@ -1,19 +1,36 @@ package org.jeecg.modules.kc.zyInfo.service.impl; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.xkcoding.http.HttpUtil; +import org.apache.commons.lang.StringUtils; +import org.apache.shiro.SecurityUtils; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.modules.kc.grab.imports.entity.Xxhbbks; +import org.jeecg.modules.kc.grab.imports.service.IXxhbbksService; +import org.jeecg.modules.kc.kcWechatSendLog.entity.KcWechatSendLog; +import org.jeecg.modules.kc.ktgl.entity.KcKechengbiao; +import org.jeecg.modules.kc.ktgl.service.IKcKechengbiaoService; +import org.jeecg.modules.kc.zyDbtx.entity.ZyDbtx; +import org.jeecg.modules.kc.zyDbtx.service.IZyDbtxService; import org.jeecg.modules.kc.zyInfo.entity.ZyInfo; import org.jeecg.modules.kc.zyInfo.entity.ZyInfoSys; import org.jeecg.modules.kc.zyInfo.mapper.ZyInfoMapper; import org.jeecg.modules.kc.zyInfo.service.IZyInfoService; import org.jeecg.modules.tools.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.web.client.RestTemplate; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @Description: 作业发布 @@ -24,6 +41,13 @@ import java.util.List; @Service public class ZyInfoServiceImpl extends ServiceImpl implements IZyInfoService { + @Autowired + private IKcKechengbiaoService kcKechengbiaoService; + @Autowired + private IZyDbtxService zyDbtxService; + @Autowired + private IXxhbbksService xxhbbksService; + @Override public IPage stuList(Page page, QueryWrapper queryWrapper) { return baseMapper.stuList(page, queryWrapper); @@ -54,11 +78,133 @@ public class ZyInfoServiceImpl extends ServiceImpl impleme QueryWrapper zyInfoQueryWrapper = new QueryWrapper<>(); zyInfoQueryWrapper.le("start_time", DateUtils.format(new Date(),"yyyy-MM-dd HH:mm:ss")); zyInfoQueryWrapper.eq("zy_status","0"); - List list = baseMapper.selectList(zyInfoQueryWrapper); - for(ZyInfo par : list){ - par.setZyStatus("1"); - baseMapper.updateById(par); + List list2 = baseMapper.selectList(zyInfoQueryWrapper); + if(list2.size()>0){ + + + for(ZyInfo zyInfo : list2){ + zyInfo.setZyStatus("1"); + baseMapper.updateById(zyInfo); + + try { + + QueryWrapper kcKechengbiaoQueryWrapper = new QueryWrapper<>(); + kcKechengbiaoQueryWrapper.eq("rwbh",zyInfo.getRwbh()); + kcKechengbiaoQueryWrapper.eq("jgh",zyInfo.getCreateBy()); + kcKechengbiaoQueryWrapper.eq("xqxn",zyInfo.getXnxq()); + kcKechengbiaoQueryWrapper.last("limit 1"); + KcKechengbiao kcKechengbiao = kcKechengbiaoService.getOne(kcKechengbiaoQueryWrapper); + + QueryWrapper zyDbtxQueryWrapper = new QueryWrapper<>(); + zyDbtxQueryWrapper.eq("type",zyInfo.getZyLeixing());//发送作业 + zyDbtxQueryWrapper.eq("rwbh",zyInfo.getRwbh()); + List dbtxlist = zyDbtxService.list(zyDbtxQueryWrapper); + String xharrs[] = new String[dbtxlist.size()]; + for(int i=0;i queryWrapper = new QueryWrapper<>(); + queryWrapper.apply("a.xh = b.xh"); + queryWrapper.eq("b.KCAPZBBH",zyInfo2.getRwbh()); + if(xharrs.length>0){ + queryWrapper.notIn("a.xh",xharrs); + } + List list = xxhbbksService.getXsxkbAllList(queryWrapper); + + + + for(Xxhbbks xxhbbks:list) { + + //作业代办提醒 + ZyDbtx zyDbtx = new ZyDbtx(); + zyDbtx.setCreateBy(xxhbbks.getXh()); + zyDbtx.setMainId(zyInfo.getId()); + zyDbtx.setRwbh(zyInfo.getRwbh()); + String hpts = ""; + if(StringUtils.equals(zyInfo.getXshpkg(),"1")){ + hpts = "互评时间:"+ org.jeecg.common.util.DateUtils.formatDate(zyInfo.getXshpkssj(),"yyyy-MM-dd HH:mm")+" ~ "+ org.jeecg.common.util.DateUtils.formatDate(zyInfo.getXshpjssj(),"yyyy-MM-dd HH:mm"); + } + + if(StringUtils.equals(zyInfo.getZyLeixing(),"0")) { + zyDbtx.setType("0");//0发布作业 1评分 2测验 3问卷 4讨论 + zyDbtx.setContent(kcKechengbiao.getSkjs() + "老师主讲的[" + kcKechengbiao.getKcmc() + "]课程于" + org.jeecg.common.util.DateUtils.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss") + "发布了一篇题目为“" + zyInfo.getTitle() + "”的作业,该作业提交时间为:" + org.jeecg.common.util.DateUtils.formatDate(zyInfo.getStartTime(), "yyyy-MM-dd HH:mm") + " ~ " + org.jeecg.common.util.DateUtils.formatDate(zyInfo.getEndTime(), "yyyy-MM-dd HH:mm") + ",请按时完成! " + hpts); + }else if (StringUtils.equals(zyInfo.getZyLeixing(),"1")){ + zyDbtx.setType("10");//0发布作业 1评分 2测验 3问卷 4讨论 + zyDbtx.setContent(kcKechengbiao.getSkjs() + "老师主讲的[" + kcKechengbiao.getKcmc() + "]课程于" + org.jeecg.common.util.DateUtils.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss") + "发布了一篇题目为“" + zyInfo.getTitle() + "”的期末考试,该期末考试提交时间为:" + org.jeecg.common.util.DateUtils.formatDate(zyInfo.getStartTime(), "yyyy-MM-dd HH:mm") + " ~ " + org.jeecg.common.util.DateUtils.formatDate(zyInfo.getEndTime(), "yyyy-MM-dd HH:mm") + ",请按时完成! " + hpts); + } + zyDbtx.setFlag("0"); + zyDbtx.setFbr(kcKechengbiao.getSkjs()); + zyDbtxService.save(zyDbtx); + + try { + KcWechatSendLog kcWechatSendLog = new KcWechatSendLog(); + kcWechatSendLog.setOpenid(xxhbbks.getXh()); + kcWechatSendLog.setYtkcs(zyDbtx.getContent()); + sendWxmessage(kcWechatSendLog); + } catch (Exception e) { + e.printStackTrace(); + } + } + + } catch (Exception e) { + e.printStackTrace(); + } + + } } + } + // appId + private static final String appId = "wx031697a8ca09a5ce";//东师 + + private static final String agentid = "1000065";// + // appIdSecret + private static final String appIdSecret = "6Qhnge3xfzAQMDX2TcjEyE0vUGP96hP9OTYUsYBze2Y";//东师 + + //微信通知点击后跳转的页面 + private static final String domainTo = "https://zxkccx.webvpn.nenu.edu.cn"; + + public void sendWxmessage(KcWechatSendLog kcWechatSendLog) { + String openId = kcWechatSendLog.getOpenid();//曹老师账号 + System.out.println("openId:" + openId + ""); + if (org.apache.commons.lang3.StringUtils.isNotEmpty(openId)) { + try { + String urlToken = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + appId + "&corpsecret=" + appIdSecret; + System.out.println("urlToken: " + urlToken); + String res = HttpUtil.get(urlToken); + JSONObject jsonObjectToken = JSONObject.parseObject(res); + System.out.println("jsonObjectToken:{}" + jsonObjectToken); + String accessToken = jsonObjectToken.getString("access_token"); + System.out.println("accessToken:{}" + accessToken); + + // 微信的基础accessToken + String url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + accessToken; + Map sendMag = new HashMap<>(); + +// 1、xx老师,你好,您本学期(2023秋)听课要求为:5次,当前实际听课次数:3次,请尽快完成本学期的听课任务。 + String html = kcWechatSendLog.getYtkcs(); + html = html + "\n查看"; + sendMag.put("content", html);//授课老师推送内容 + RestTemplate restTemplate = new RestTemplate(); + //拼接base参数 + Map sendBody = new HashMap<>(); + sendBody.put("touser", openId); // openId + sendBody.put("msgtype", "text"); // 消息类型,此时固定为:text + sendBody.put("agentid", agentid); // 企业id + sendBody.put("text", sendMag); //发送内容 + ResponseEntity forEntity = restTemplate.postForEntity(url, sendBody, String.class); + JSONObject jsonObject2 = JSONObject.parseObject(forEntity.getBody()); + System.out.println("jsonObject2 : " + jsonObject2); + String messageCode = jsonObject2.getString("errcode"); + String msgId = jsonObject2.getString("msgid"); + System.out.println("messageCode : " + messageCode + ", msgId: " + msgId); + } catch (Exception e) { + e.printStackTrace(); + } + } else { + } + } }