diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/KcBdgxbcopy/controller/KcBdgxbcopyController.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/KcBdgxbcopy/controller/KcBdgxbcopyController.java new file mode 100644 index 00000000..8fdcc48a --- /dev/null +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/KcBdgxbcopy/controller/KcBdgxbcopyController.java @@ -0,0 +1,176 @@ +package org.jeecg.modules.kc.KcBdgxbcopy.controller; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +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.util.oConvertUtils; +import org.jeecg.modules.kc.KcBdgxbcopy.entity.KcBdgxbcopy; +import org.jeecg.modules.kc.KcBdgxbcopy.service.IKcBdgxbcopyService; + +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.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.jeecg.common.system.base.controller.JeecgController; +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; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.apache.shiro.authz.annotation.RequiresPermissions; + + /** + * @Description: 公众号推送openid + * @Author: jeecg-boot + * @Date: 2023-05-17 + * @Version: V1.0 + */ +@Api(tags="公众号推送openid") +@RestController +@RequestMapping("/KcBdgxbcopy/kcBdgxbcopy") +@Slf4j +public class KcBdgxbcopyController extends JeecgController { + @Autowired + private IKcBdgxbcopyService kcBdgxbcopyService; + + /** + * 分页列表查询 + * + * @param kcBdgxbcopy + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "公众号推送openid-分页列表查询") + @ApiOperation(value="公众号推送openid-分页列表查询", notes="公众号推送openid-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(KcBdgxbcopy kcBdgxbcopy, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(kcBdgxbcopy, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = kcBdgxbcopyService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param kcBdgxbcopy + * @return + */ + @AutoLog(value = "公众号推送openid-添加") + @ApiOperation(value="公众号推送openid-添加", notes="公众号推送openid-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody KcBdgxbcopy kcBdgxbcopy) { + kcBdgxbcopyService.save(kcBdgxbcopy); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param kcBdgxbcopy + * @return + */ + @AutoLog(value = "公众号推送openid-编辑") + @ApiOperation(value="公众号推送openid-编辑", notes="公众号推送openid-编辑") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody KcBdgxbcopy kcBdgxbcopy) { + kcBdgxbcopyService.updateById(kcBdgxbcopy); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "公众号推送openid-通过id删除") + @ApiOperation(value="公众号推送openid-通过id删除", notes="公众号推送openid-通过id删除") + @RequiresPermissions("KcBdgxbcopy:kc_bdgxbcopy:delete") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + kcBdgxbcopyService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "公众号推送openid-批量删除") + @ApiOperation(value="公众号推送openid-批量删除", notes="公众号推送openid-批量删除") + @RequiresPermissions("KcBdgxbcopy:kc_bdgxbcopy:deleteBatch") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.kcBdgxbcopyService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "公众号推送openid-通过id查询") + @ApiOperation(value="公众号推送openid-通过id查询", notes="公众号推送openid-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + KcBdgxbcopy kcBdgxbcopy = kcBdgxbcopyService.getById(id); + if(kcBdgxbcopy==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(kcBdgxbcopy); + } + + /** + * 导出excel + * + * @param request + * @param kcBdgxbcopy + */ + @RequiresPermissions("KcBdgxbcopy:kc_bdgxbcopy:exportXls") + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, KcBdgxbcopy kcBdgxbcopy) { + return super.exportXls(request, kcBdgxbcopy, KcBdgxbcopy.class, "公众号推送openid"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequiresPermissions("KcBdgxbcopy:kc_bdgxbcopy:importExcel") + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, KcBdgxbcopy.class); + } + +} diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/KcBdgxbcopy/entity/KcBdgxbcopy.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/KcBdgxbcopy/entity/KcBdgxbcopy.java new file mode 100644 index 00000000..177aee28 --- /dev/null +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/KcBdgxbcopy/entity/KcBdgxbcopy.java @@ -0,0 +1,50 @@ +package org.jeecg.modules.kc.KcBdgxbcopy.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 公众号推送openid + * @Author: jeecg-boot + * @Date: 2023-05-17 + * @Version: V1.0 + */ +@Data +@TableName("kc_bdgxbcopy") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="kc_bdgxbcopy对象", description="公众号推送openid") +public class KcBdgxbcopy implements Serializable { + private static final long serialVersionUID = 1L; + + /**openid*/ + @Excel(name = "openid", width = 15) + @ApiModelProperty(value = "openid") + private java.lang.String openid; + /**userid*/ + @Excel(name = "userid", width = 15) + @ApiModelProperty(value = "userid") + private java.lang.String userid; + /**bdtime*/ + @Excel(name = "bdtime", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "bdtime") + private java.util.Date bdtime; + + @TableField(exist = false) + private String ywTime; +} diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/KcBdgxbcopy/mapper/KcBdgxbcopyMapper.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/KcBdgxbcopy/mapper/KcBdgxbcopyMapper.java new file mode 100644 index 00000000..4508300a --- /dev/null +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/KcBdgxbcopy/mapper/KcBdgxbcopyMapper.java @@ -0,0 +1,24 @@ +package org.jeecg.modules.kc.KcBdgxbcopy.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.kc.KcBdgxbcopy.entity.KcBdgxbcopy; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 公众号推送openid + * @Author: jeecg-boot + * @Date: 2023-05-17 + * @Version: V1.0 + */ +public interface KcBdgxbcopyMapper extends BaseMapper { + + void saveStudentKqtx(KcBdgxbcopy kcBdgxbcopy); + + void saveTeacherKqtx(KcBdgxbcopy kcBdgxbcopy); + + void saveStudentMrtx(KcBdgxbcopy kcBdgxbcopy); + + void saveTeacherMrtx(KcBdgxbcopy kcBdgxbcopy); +} diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/KcBdgxbcopy/mapper/xml/KcBdgxbcopyMapper.xml b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/KcBdgxbcopy/mapper/xml/KcBdgxbcopyMapper.xml new file mode 100644 index 00000000..539f3e78 --- /dev/null +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/KcBdgxbcopy/mapper/xml/KcBdgxbcopyMapper.xml @@ -0,0 +1,193 @@ + + + + + + INSERT INTO kc_messagelistcopy ( id, touser, template_id, tourl, firstdata, remarkdata, keyword1, keyword2, keyword3, scheduleddatetime ) SELECT + 0,-- id: + bd.openid,-- touser:oak6lwA02iVyBKrVSok4uUpzeBmY + 'KtWw0lwQ8FOgJdKgrmya0eoafGkMfMN8ECdZs8oSJys',-- template_id: + 'https://zxkccxwebvpnnenueducn/index',-- tourl: + CONCAT( xk.xm, '同学,您有课程即将开始:' ),-- firstdata: + '',-- remarkdata + kt.kcmc,-- keyword1: + CONCAT( skrq, ' 第', hh, '节' ),-- keyword2: + CASE-- keyword3 + + WHEN skxs = '0' THEN + zbfs + WHEN skxs = '1' THEN + skdd + WHEN skxs = '2' THEN + CONCAT( skdd, '以及', zbfs ) + END, + CASE-- scheduleddatetime: + + WHEN hh = '01、02' THEN + CONCAT( CURRENT_DATE, ' 07:00' ) + WHEN hh = '03、04' THEN + CONCAT( CURRENT_DATE, ' 09:00' ) + WHEN hh = '05、06' THEN + CONCAT( CURRENT_DATE, ' 13:00' ) + WHEN hh = '07、08' THEN + CONCAT( CURRENT_DATE, ' 15:00' ) + WHEN hh = '09、10' THEN + CONCAT( CURRENT_DATE, ' 17:00' ) + WHEN hh = '11、12' THEN + CONCAT( CURRENT_DATE, ' 19:00' ) + END + FROM + kc_xuekeduiyingbiao xk, + kc_ketangbiao kt, + kc_kechengtixingdingyue kd, + kc_bdgxbcopy bd + WHERE + xk.rwbh = kt.rwbh + AND xk.xh = kd.userid + AND xk.xh = bd.userid + AND kd.kqtx = 1 + AND kt.skrq = #{ywTime} + + + + INSERT INTO kc_messagelistcopy ( id, touser, template_id, tourl, firstdata, remarkdata,.keyword1, keyword2, keyword3, scheduleddatetime ) SELECT + 0, + bd.openid, + 'KtWw0lwQ8FOgJdKgrmya0eoafGkMfMN8ECdZs8oSJys', + 'https://zxkccx.webvpn.nenu.edu.cn/index', + CONCAT( kt.skjs, '老师,您有课程即将开始:' ), + '', + kcmc, + CONCAT( skrq, ' 第', hh, '节' ), + CASE + + WHEN skxs = '0' THEN + zbfs + WHEN skxs = '1' THEN + skdd + WHEN skxs = '2' THEN + CONCAT( skdd, '以及', zbfs ) + END, + CASE + + WHEN hh = '01、02' THEN + CONCAT( CURRENT_DATE, ' 07:00' ) + WHEN hh = '03、04' THEN + CONCAT( CURRENT_DATE, ' 09:00' ) + WHEN hh = '05、06' THEN + CONCAT( CURRENT_DATE, ' 13:00' ) + WHEN hh = '07、08' THEN + CONCAT( CURRENT_DATE, ' 15:00' ) + WHEN hh = '09、10' THEN + CONCAT( CURRENT_DATE, ' 17:00' ) + WHEN hh = '11、12' THEN + CONCAT( CURRENT_DATE, ' 19:00' ) + END + FROM + kc_kechengtixingdingyue kd, + kc_ketangbiao kt, + kc_bdgxbcopy bd + WHERE + kd.userid = kt.jgh + AND kd.userid = bd.userid + AND kd.kqtx = 1 + AND skrq = #{ywTime} + + + + INSERT INTO kc_messagelistcopy ( id, touser, template_id, tourl, firstdata, remarkdata, keyword1, keyword2, keyword3, scheduleddatetime ) SELECT + 0,-- id: + bd.openid,-- touser:oak6lwA02iVyBKrVSok4uUpzeBmY + 'KtWw0lwQ8FOgJdKgrmya0eoafGkMfMN8ECdZs8oSJys',-- template_id:KtWw0lwQ8FOgJdKgrmya0eoafGkMfMN8ECdZs8oSJys + 'https://zxkccx.webvpn.nenu.edu.cn/index',-- tourl:https://zxkccx.webvpn.nenu.edu.cn/index + CONCAT( xk.xm, '同学,您明天的课程安排如下:' ),-- firstdata:吴一凡同学,您明天的课程安排如下: + '',-- remarkdata: + concat(-- keyword1:2022-12-20 星期二 + #{ywTime},-- [2022-12-20 明天日期] + CASE + + WHEN kt.WEEK = '1' THEN + ' 星期一' + WHEN kt.WEEK = '2' THEN + ' 星期二' + WHEN kt.WEEK = '3' THEN + ' 星期三' + WHEN kt.WEEK = '4' THEN + ' 星期四' + WHEN kt.WEEK = '5' THEN + ' 星期五' + WHEN kt.WEEK = '6' THEN + ' 星期六' + WHEN kt.WEEK = '7' THEN + ' 星期日' + END + ), + GROUP_CONCAT( ' 第', hh, '节', kt.kcmc ),-- keyword2: 第07、08节传播统计学, 第01、02节灯光设计实验, 第09、10节传媒符号学, 第05、06节传媒伦理与法规 + '',-- keyword3 + concat(#{ywTime},' 16:00') -- scheduleddatetime:2022-12-19 16:00 [2022-12-19 当天日期] + + FROM + kc_kechengtixingdingyue kd, + kc_xuekeduiyingbiao xk, + kc_ketangbiao kt, + kc_bdgxbcopy bd + WHERE + kd.userid = xk.xh + AND xk.rwbh = kt.rwbh + AND xk.xh = bd.userid + AND kd.mrkctx = 1 + AND skrq = #{ywTime} + GROUP BY + bd.openid, + xk.xm, + WEEK + + + + INSERT INTO kc_messagelistcopy ( id, touser, template_id, tourl, firstdata, remarkdata, keyword1, keyword2, keyword3, scheduleddatetime ) SELECT + 0,-- id: + bd.openid,-- touser:oak6lwAa1epMAgwQziF2K9yBkiLE + 'KtWw0lwQ8FOgJdKgrmya0eoafGkMfMN8ECdZs8oSJys',-- template_id:KtWw0lwQ8FOgJdKgrmya0eoafGkMfMN8ECdZs8oSJys + 'https://zxkccx.webvpn.nenu.edu.cn/index',-- tourl:https://zxkccx.webvpn.nenu.edu.cn/index + CONCAT( kt.skjs, '老师,您明天的课程安排如下:' ),-- firstdata:张靖波老师,您明天的课程安排如下: + '',-- remarkdata: + concat(-- keyword1:2022-12-20 星期二 + #{ywTime},-- [2022-12-20 明天日期] + CASE + + WHEN WEEK = '1' THEN + ' 星期一' + WHEN WEEK = '2' THEN + ' 星期二' + WHEN WEEK = '3' THEN + ' 星期三' + WHEN WEEK = '4' THEN + ' 星期四' + WHEN WEEK = '5' THEN + ' 星期五' + WHEN WEEK = '6' THEN + ' 星期六' + WHEN WEEK = '7' THEN + ' 星期日' + END + ), + GROUP_CONCAT( ' 第', hh, '节', kt.kcmc ),-- keyword2: 第01、02节信息技术1(计算机基础), 第03、04节信息技术1(计算机基础) + '',-- keyword3 + concat(#{ywTime},' 16:00') -- scheduleddatetime:2022-12-19 16:00 [2022-12-19 当天日期] + + FROM + kc_kechengtixingdingyue kd, + kc_ketangbiao kt, + kc_bdgxbcopy bd + WHERE + kd.userid = kt.jgh + AND kd.userid = bd.userid + AND kd.mrkctx = 1 + AND skrq = #{ywTime} + GROUP BY + bd.openid, + kt.skjs, + WEEK + + + \ No newline at end of file diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/KcBdgxbcopy/service/IKcBdgxbcopyService.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/KcBdgxbcopy/service/IKcBdgxbcopyService.java new file mode 100644 index 00000000..bfc3b69f --- /dev/null +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/KcBdgxbcopy/service/IKcBdgxbcopyService.java @@ -0,0 +1,21 @@ +package org.jeecg.modules.kc.KcBdgxbcopy.service; + +import org.jeecg.modules.kc.KcBdgxbcopy.entity.KcBdgxbcopy; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 公众号推送openid + * @Author: jeecg-boot + * @Date: 2023-05-17 + * @Version: V1.0 + */ +public interface IKcBdgxbcopyService extends IService { + + void saveStudentKqtx(KcBdgxbcopy kcBdgxbcopy); + + void saveTeacherKqtx(KcBdgxbcopy kcBdgxbcopy); + + void saveStudentMrtx(KcBdgxbcopy kcBdgxbcopy); + + void saveTeacherMrtx(KcBdgxbcopy kcBdgxbcopy); +} diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/KcBdgxbcopy/service/impl/KcBdgxbcopyServiceImpl.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/KcBdgxbcopy/service/impl/KcBdgxbcopyServiceImpl.java new file mode 100644 index 00000000..be0d0e9a --- /dev/null +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/KcBdgxbcopy/service/impl/KcBdgxbcopyServiceImpl.java @@ -0,0 +1,38 @@ +package org.jeecg.modules.kc.KcBdgxbcopy.service.impl; + +import org.jeecg.modules.kc.KcBdgxbcopy.entity.KcBdgxbcopy; +import org.jeecg.modules.kc.KcBdgxbcopy.mapper.KcBdgxbcopyMapper; +import org.jeecg.modules.kc.KcBdgxbcopy.service.IKcBdgxbcopyService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 公众号推送openid + * @Author: jeecg-boot + * @Date: 2023-05-17 + * @Version: V1.0 + */ +@Service +public class KcBdgxbcopyServiceImpl extends ServiceImpl implements IKcBdgxbcopyService { + + @Override + public void saveStudentKqtx(KcBdgxbcopy kcBdgxbcopy) { + baseMapper.saveStudentKqtx(kcBdgxbcopy); + } + + @Override + public void saveTeacherKqtx(KcBdgxbcopy kcBdgxbcopy) { + baseMapper.saveTeacherKqtx(kcBdgxbcopy); + } + + @Override + public void saveStudentMrtx(KcBdgxbcopy kcBdgxbcopy) { + baseMapper.saveStudentMrtx(kcBdgxbcopy); + } + + @Override + public void saveTeacherMrtx(KcBdgxbcopy kcBdgxbcopy) { + baseMapper.saveTeacherMrtx(kcBdgxbcopy); + } +} diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/grab/SynchronizationService/SyncWechartDsrw.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/grab/SynchronizationService/SyncWechartDsrw.java new file mode 100644 index 00000000..4806697e --- /dev/null +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/grab/SynchronizationService/SyncWechartDsrw.java @@ -0,0 +1,72 @@ +package org.jeecg.modules.kc.grab.SynchronizationService; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.compress.utils.Lists; +import org.jeecg.common.util.DateUtils; +import org.jeecg.modules.kc.KcBdgxbcopy.entity.KcBdgxbcopy; +import org.jeecg.modules.kc.KcBdgxbcopy.service.IKcBdgxbcopyService; +import org.jeecg.modules.kc.grab.SynchronizationService.base.BaseSync; +import org.jeecg.modules.kc.grab.exports.entity.TFwdtBkjxtkpj; +import org.jeecg.modules.kc.grab.exports.service.ITFwdtBkjxtkpjService; +import org.jeecg.modules.kc.grab.imports.entity.Xxhbbkjxtkpj; +import org.jeecg.modules.kc.grab.imports.entity.Xxhbsynclog; +import org.jeecg.modules.kc.grab.imports.service.IXxhbbkjxtkpjService; +import org.jeecg.modules.kc.ktgl.service.IKcKetangbiaoService; +import org.jeecg.modules.kc.qa.service.IKcEvaluationService; +import org.jeecg.modules.kc.qa.service.IKcEvaluationsService; +import org.quartz.JobExecutionContext; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 微信生成推送信息 + */ +@Slf4j +public class SyncWechartDsrw extends BaseSync { + + @Autowired + private IKcBdgxbcopyService kcBdgxbcopyService; + + /** + * 若参数变量名修改 QuartzJobController中也需对应修改 + */ + + @Override + public void execute(JobExecutionContext jobExecutionContext) { + start(); + run(getParamMap()); + end(); + } + + + /** + * 有参定时任务实现 + * @param param + */ + public void run(Map param){ + KcBdgxbcopy kcBdgxbcopy = new KcBdgxbcopy(); + kcBdgxbcopy.setYwTime(DateUtils.formatDate(new Date(),"yyyy-MM-dd")); + // 1、写入学生课前提醒 + kcBdgxbcopyService.saveStudentKqtx(kcBdgxbcopy); + // 2、写入教师课前提醒 + kcBdgxbcopyService.saveTeacherKqtx(kcBdgxbcopy); + // 3、写入学生明日课程提醒 + kcBdgxbcopyService.saveStudentMrtx(kcBdgxbcopy); + // 4、写入教师明日课程提醒 + kcBdgxbcopyService.saveTeacherMrtx(kcBdgxbcopy); + } + + /** + * 无参定时任务实现 + */ + public void run(){ + run(null); + } + +} diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/grab/SynchronizationService/SyncWechartTsxx.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/grab/SynchronizationService/SyncWechartTsxx.java new file mode 100644 index 00000000..f2a5c4f8 --- /dev/null +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/grab/SynchronizationService/SyncWechartTsxx.java @@ -0,0 +1,124 @@ +package org.jeecg.modules.kc.grab.SynchronizationService; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.xkcoding.http.HttpUtil; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.util.DateUtils; +import org.jeecg.modules.kc.KcBdgxbcopy.entity.KcBdgxbcopy; +import org.jeecg.modules.kc.KcBdgxbcopy.service.IKcBdgxbcopyService; +import org.jeecg.modules.kc.grab.SynchronizationService.base.BaseSync; +import org.jeecg.modules.kc.kcMessagelistcopy.entity.KcMessagelistcopy; +import org.jeecg.modules.kc.kcMessagelistcopy.service.IKcMessagelistcopyService; +import org.jeecg.modules.wxgzh.WeChatTemplateMsg; +import org.quartz.JobExecutionContext; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.client.RestTemplate; + +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * 微信推送信息 + */ +@Slf4j +public class SyncWechartTsxx extends BaseSync { + @Autowired + private IKcMessagelistcopyService kcMessagelistcopyService; + + // appId + private static final String appId = "wx59920eb69d611d7f"; + + // appIdSecret + private static final String appIdSecret = "60b429xxxxxxxxxxxxxxx"; + /** + * 若参数变量名修改 QuartzJobController中也需对应修改 + */ + + @Override + public void execute(JobExecutionContext jobExecutionContext) { + start(); + run(getParamMap()); + end(); + } + + + /** + * 有参定时任务实现 + * @param param + */ + public void run(Map param){ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Calendar nowTime = Calendar.getInstance(); + nowTime.add(Calendar.MINUTE, 30);//30分钟后的时间 + + Calendar nowTime2 = Calendar.getInstance(); + nowTime2.add(Calendar.MINUTE, -30);//30分钟前的时间 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.ge("scheduleddatetime",DateUtils.formatDate(nowTime2,"yyyy-MM-dd HH:mm:ss")); + queryWrapper.le("scheduleddatetime",DateUtils.formatDate(nowTime,"yyyy-MM-dd HH:mm:ss")); + queryWrapper.eq("status","0"); + List list =kcMessagelistcopyService.list(); + for(KcMessagelistcopy KcMessagelistcopy:list){ + + // 模板参数 + Map sendMag = new HashMap(); + // openId代表一个唯一微信用户,即微信消息的接收人 + String openId = KcMessagelistcopy.getTouser(); + // 微信的基础accessToken + String urlToken = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+ appId +"&secret=" + appIdSecret; + String res = HttpUtil.get(urlToken); + JSONObject jsonTokenObject = JSONObject.parseObject(res); + String accessToken = jsonTokenObject.getString("access_token"); + String url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken; + + /** + * 其他模板可以从模板库中自己添加 + * 模板ID + * KtWw0lwQ8FOgJdKgrmya0eoafGkMfMN8ECdZs8oSJys + * 开发者调用模板消息接口时需提供模板ID + * 标题 上课提醒 + * 行业 教育 - 院校 + * 详细内容 + * {{first.DATA}} + * 课程:{{keyword1.DATA}} + * 时间:{{keyword2.DATA}} + * 地点:{{keyword3.DATA}} + * {{remark.DATA}} + */ + sendMag.put("first", new WeChatTemplateMsg(KcMessagelistcopy.getFirstdata())); + sendMag.put("keyword1", new WeChatTemplateMsg(KcMessagelistcopy.getKeyword1())); + sendMag.put("keyword2", new WeChatTemplateMsg(KcMessagelistcopy.getKeyword2())); + sendMag.put("keyword3", new WeChatTemplateMsg(KcMessagelistcopy.getKeyword3())); + sendMag.put("remark", new WeChatTemplateMsg(KcMessagelistcopy.getRemarkdata())); + RestTemplate restTemplate = new RestTemplate(); + //拼接base参数 + Map sendBody = new HashMap<>(); + sendBody.put("touser", openId); // openId + sendBody.put("url", KcMessagelistcopy.getTourl()); // 点击模板信息跳转地址 + sendBody.put("topcolor", "#FF0000"); // 顶色 + sendBody.put("data", sendMag); // 模板参数 + sendBody.put("template_id", KcMessagelistcopy.getTemplateId()); // 模板Id + ResponseEntity forEntity = restTemplate.postForEntity(url, sendBody, String.class); + log.info("结果是: {}",forEntity.getBody()); + JSONObject jsonObject = JSONObject.parseObject(forEntity.getBody()); + // 0 + String messageCode = jsonObject.getString("errcode"); + // 2431260672639467520 + String msgId = jsonObject.getString("msgid"); + System.out.println("messageCode : " + messageCode + ", msgId: " +msgId); + KcMessagelistcopy.setStatus("1"); + kcMessagelistcopyService.updateById(KcMessagelistcopy); + } + + } + + /** + * 无参定时任务实现 + */ + public void run(){ + run(null); + } + +} diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/tencent/utils/TencentUtils.java b/jeecg-module-main/src/main/java/org/jeecg/modules/tencent/utils/TencentUtils.java index 49cefdef..2418f720 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/tencent/utils/TencentUtils.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/tencent/utils/TencentUtils.java @@ -22,6 +22,8 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.util.DateUtils; +import org.jeecg.modules.kc.KcBdgxbcopy.entity.KcBdgxbcopy; +import org.jeecg.modules.kc.KcBdgxbcopy.service.IKcBdgxbcopyService; import org.jeecg.modules.kc.ktgl.entity.KcKetangbiao; import org.jeecg.modules.kc.ktgl.service.IKcKetangbiaoService; import org.springframework.beans.factory.annotation.Autowired; @@ -51,6 +53,8 @@ public class TencentUtils extends JeecgController queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("openid",openid); + List list = kcBdgxbcopyService.list(queryWrapper); + if(list == null || list.size() == 0){ + KcBdgxbcopy kcBdgxbcopy = new KcBdgxbcopy(); + kcBdgxbcopy.setOpenid(openid); + kcBdgxbcopy.setUserid(code); + kcBdgxbcopy.setBdtime(new Date()); + kcBdgxbcopyService.save(kcBdgxbcopy); + } return openid; } }