添加微信推送机制
This commit is contained in:
parent
7bada91cf3
commit
cc5047758f
|
@ -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<KcBdgxbcopy, IKcBdgxbcopyService> {
|
||||
@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<IPage<KcBdgxbcopy>> queryPageList(KcBdgxbcopy kcBdgxbcopy,
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
QueryWrapper<KcBdgxbcopy> queryWrapper = QueryGenerator.initQueryWrapper(kcBdgxbcopy, req.getParameterMap());
|
||||
Page<KcBdgxbcopy> page = new Page<KcBdgxbcopy>(pageNo, pageSize);
|
||||
IPage<KcBdgxbcopy> 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<String> 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<String> 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<String> 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<String> 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<KcBdgxbcopy> 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);
|
||||
}
|
||||
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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<KcBdgxbcopy> {
|
||||
|
||||
void saveStudentKqtx(KcBdgxbcopy kcBdgxbcopy);
|
||||
|
||||
void saveTeacherKqtx(KcBdgxbcopy kcBdgxbcopy);
|
||||
|
||||
void saveStudentMrtx(KcBdgxbcopy kcBdgxbcopy);
|
||||
|
||||
void saveTeacherMrtx(KcBdgxbcopy kcBdgxbcopy);
|
||||
}
|
|
@ -0,0 +1,193 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.jeecg.modules.kc.KcBdgxbcopy.mapper.KcBdgxbcopyMapper">
|
||||
|
||||
<insert id="saveStudentKqtx">
|
||||
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>
|
||||
|
||||
<insert id="saveTeacherKqtx">
|
||||
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>
|
||||
|
||||
<insert id="saveStudentMrtx">
|
||||
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>
|
||||
|
||||
<insert id="saveTeacherMrtx">
|
||||
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
|
||||
</insert>
|
||||
|
||||
</mapper>
|
|
@ -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<KcBdgxbcopy> {
|
||||
|
||||
void saveStudentKqtx(KcBdgxbcopy kcBdgxbcopy);
|
||||
|
||||
void saveTeacherKqtx(KcBdgxbcopy kcBdgxbcopy);
|
||||
|
||||
void saveStudentMrtx(KcBdgxbcopy kcBdgxbcopy);
|
||||
|
||||
void saveTeacherMrtx(KcBdgxbcopy kcBdgxbcopy);
|
||||
}
|
|
@ -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<KcBdgxbcopyMapper, KcBdgxbcopy> 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);
|
||||
}
|
||||
}
|
|
@ -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<String, Object> 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);
|
||||
}
|
||||
|
||||
}
|
|
@ -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<String, Object> 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<KcMessagelistcopy> 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<KcMessagelistcopy> list =kcMessagelistcopyService.list();
|
||||
for(KcMessagelistcopy KcMessagelistcopy:list){
|
||||
|
||||
// 模板参数
|
||||
Map<String, WeChatTemplateMsg> sendMag = new HashMap<String, WeChatTemplateMsg>();
|
||||
// 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<String, Object> 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<String> 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);
|
||||
}
|
||||
|
||||
}
|
|
@ -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<KcKetangbiao, IKcKetangbiaoS
|
|||
private static final UserClient USER_CLIENT;
|
||||
private static final Gson GSON = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
|
||||
|
||||
@Autowired
|
||||
private IKcBdgxbcopyService kcBdgxbcopyService;
|
||||
|
||||
private static final String AppId = "214887356";
|
||||
private static final String SdkId = "21830121448";
|
||||
|
@ -233,6 +237,18 @@ public class TencentUtils extends JeecgController<KcKetangbiao, IKcKetangbiaoS
|
|||
JSONObject json = JSONObject.parseObject(jsonString);
|
||||
String openid = json.getString("openid");
|
||||
System.out.println("openid###############"+openid);
|
||||
|
||||
|
||||
QueryWrapper<KcBdgxbcopy> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("openid",openid);
|
||||
List<KcBdgxbcopy> 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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue