Browse Source

微信推送6-16

master
fkf 2 years ago
parent
commit
c5430e8f79
  1. 107
      docs/databases/table_create_rms.sql
  2. 36
      yxt_supervise/supervise-rms/supervise-rms-api/src/main/java/com/supervise/rms/api/wechat/TemplateData.java
  3. 56
      yxt_supervise/supervise-rms/supervise-rms-api/src/main/java/com/supervise/rms/api/wechat/WeChatTemplateMsg.java
  4. 152
      yxt_supervise/supervise-rms/supervise-rms-biz/src/main/java/com/supervise/rms/biz/wechat/WechatRest.java

107
docs/databases/table_create_rms.sql

@ -123,4 +123,109 @@ CREATE TABLE `risk_blacklist` (
`objectSid` varchar(64) DEFAULT NULL COMMENT '风险对象Sid', `objectSid` varchar(64) DEFAULT NULL COMMENT '风险对象Sid',
`objectType` int(11) DEFAULT NULL COMMENT '风险对象类型1.供应商2.仓库3.门店', `objectType` int(11) DEFAULT NULL COMMENT '风险对象类型1.供应商2.仓库3.门店',
PRIMARY KEY (`id`) USING BTREE PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB COMMENT='风险黑名单'; ) ENGINE=InnoDB COMMENT='风险黑名单';
DROP TABLE IF EXISTS `business_risk_data`;
CREATE TABLE `business_risk_data` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'sid',
`lockVersion` int(11) NULL DEFAULT 0 COMMENT '版本锁',
`createTime` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
`modifyTime` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '修改时间',
`isEnable` int(11) NULL DEFAULT 1 COMMENT '是否可用:1可用,0不可用',
`state` int(11) NULL DEFAULT 1 COMMENT '状态',
`isDelete` int(11) NULL DEFAULT 0 COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改人sid',
`addReason` varchar(300) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '列入经营异常名录原因',
`addDate` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '列入日期',
`romoveReason` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '移出经营异常名录原因(保留字段)',
`removeDate` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '移出日期(保留字段)',
`decisionOffice` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '作出决定机关',
`removeDecisionOffice` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '移出决定机关(保留字段)',
`buSid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '企业时间Sid',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '任务执行数据表' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
DROP TABLE IF EXISTS `business_risk_date`;
CREATE TABLE `business_risk_date` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'sid',
`lockVersion` int(11) NULL DEFAULT 0 COMMENT '版本锁',
`createTime` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
`modifyTime` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '修改时间',
`isEnable` int(11) NULL DEFAULT 1 COMMENT '是否可用:1可用,0不可用',
`state` int(11) NULL DEFAULT 1 COMMENT '状态',
`isDelete` int(11) NULL DEFAULT 0 COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改人sid',
`executionTime` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '执行时间',
`businessName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '企业名称',
`OrderNumber` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '订单编号',
`verifyResult` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '风险编码 0代表无1代表有',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '任务执行时间表' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
DROP TABLE IF EXISTS `enterprise_information`;
CREATE TABLE `enterprise_information` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`sid` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NOT NULL COMMENT 'ids',
`enterpriseName` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '企业名称',
`enterpriseAbbreviation` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '企业简称',
`bankAccount` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '银行账户',
`accountNumber` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '账号',
`openingBankName` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '开户行',
`juridicalPerson` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '法人',
`businessLicenseNumber` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '营业执照号',
`address` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '地址',
`province` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '',
`city` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '',
`county` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '',
`contacts` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '联系人',
`telephone` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '电话',
`lockVersion` int(11) NULL DEFAULT 0 COMMENT '版本锁',
`createTime` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
`modifyTime` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '修改时间',
`isEnable` int(11) NULL DEFAULT 1 COMMENT '是否可用:1可用,0不可用',
`state` int(11) NULL DEFAULT 1 COMMENT '状态',
`isDelete` int(11) NULL DEFAULT 0 COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改人sid',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 14 CHARACTER SET = utf8 COLLATE = utf8_croatian_ci COMMENT = '企业信息' ROW_FORMAT = DYNAMIC;
SET FOREIGN_KEY_CHECKS = 1;
DROP TABLE IF EXISTS `push_information`;
CREATE TABLE `push_information` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`sid` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NOT NULL COMMENT 'sid',
`lockVersion` int(11) NULL DEFAULT 0 COMMENT '版本锁',
`createTime` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
`modifyTime` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '修改时间',
`isEnable` int(11) NULL DEFAULT 1 COMMENT '是否可用:1可用,0不可用',
`state` int(11) NULL DEFAULT 1 COMMENT '状态',
`isDelete` int(11) NULL DEFAULT 0 COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改人sid',
`enterpriseName` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '企业名称',
`contacts` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '联系人',
`telephone` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '电话',
`openId` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '微信公众号唯一标识',
`bankAccount` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '银行账号',
`openingBankName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '开户行',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '推送人员表' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

36
yxt_supervise/supervise-rms/supervise-rms-api/src/main/java/com/supervise/rms/api/wechat/TemplateData.java

@ -0,0 +1,36 @@
package com.supervise.rms.api.wechat;
import lombok.Data;
/**
* @author feikefei
* @create 2023-06-08-9:17
*/
@Data
public class TemplateData {
private String value;
private String color;
public TemplateData(String value) {
this.value = value;
color = "#FF0000";
}
public TemplateData(String value, String color) {
this.value = value;
this.color = color;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
}

56
yxt_supervise/supervise-rms/supervise-rms-api/src/main/java/com/supervise/rms/api/wechat/WeChatTemplateMsg.java

@ -0,0 +1,56 @@
package com.supervise.rms.api.wechat;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
/**
* @author feikefei
* @create 2023-06-08-9:17
*/
@Data
public class WeChatTemplateMsg {
private String template_id;
private String touser;
private String url;
private String client_msg_id;
Map<String, String> miniprogram = new HashMap<>();
//private Miniprogram miniprogram;
private String topcolor;
private Map<String,TemplateData> data;
public String getTemplate_id() {
return template_id;
}
public void setTemplate_id(String template_id) {
this.template_id = template_id;
}
public String getTouser() {
return touser;
}
public void setTouser(String touser) {
this.touser = touser;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getTopcolor() {
return topcolor;
}
public void setTopcolor(String topcolor) {
this.topcolor = topcolor;
}
public Map<String,TemplateData> getData() {
return data;
}
public void setData(Map<String,TemplateData> data) {
this.data = data;
}
}

152
yxt_supervise/supervise-rms/supervise-rms-biz/src/main/java/com/supervise/rms/biz/wechat/WechatRest.java

@ -0,0 +1,152 @@
package com.supervise.rms.biz.wechat;
import com.alibaba.fastjson.JSONObject;
import com.supervise.rms.api.businessriskdate.BusinessRiskDate;
import com.supervise.rms.api.pusinformation.PushInformation;
import com.supervise.rms.api.wechat.TemplateData;
import com.supervise.rms.api.wechat.WeChatTemplateMsg;
import com.supervise.rms.biz.businessriskdate.BusinessRiskDateService;
import com.supervise.rms.biz.pusinformation.PushInformationService;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author feikefei
* @create 2023-06-08-10:17
*/
@Api(tags = "测试")
@RestController
@RequestMapping("v1/wechat")
public class WechatRest {
@Autowired
private PushInformationService pushInformationService;
@Autowired
private BusinessRiskDateService businessRiskDateService;
@Value("${wechat.appId}")
private String appId;
@Value("${wechat.sppSecret}")
private String sppSecret;
@Value("${wechat.WX_URL_ACCESS_TOKEN}")
private String WX_URL_ACCESS_TOKEN;
@Value("${wechat.WX_URL_MESSAGE_SEND}")
private String WX_URL_MESSAGE_SEND;
//0 30 9 ? * 2 每周一九点半
@PostMapping("/sendMessage")
public void sendMessage(@RequestBody WeChatTemplateMsg data) throws Exception {
String t = "imkugi6AM3SgT-GUciOMlkhPQUbfAiooDWxslzgO4Lc";
String accessToken = getAccessToken(appId,sppSecret);
String wxUrl = WX_URL_MESSAGE_SEND.replace("ACCESS_TOKEN", accessToken);
//查询库中openId
List<PushInformation> pushInformations = pushInformationService.selectPushInformationList();
for (PushInformation pushInformation : pushInformations) {
//查询库中查询到所有企业的信息
List<BusinessRiskDate> businessRiskDate = businessRiskDateService.selectBusinessRiskDateByName(pushInformation.getEnterpriseName());
BusinessRiskDate riskDate = businessRiskDate.get(0);
RestTemplate restTemplate = new RestTemplate();
Map<String, Object> sendBody = new HashMap<>();
setTemplateStyle(riskDate,sendBody,t,wxUrl,pushInformation,restTemplate,riskDate.getVerifyResult(),businessRiskDate);
}
// String openId="o7sGD6r8GP3VEjA9iJz3us6Xg0aM";
// // 模板参数
// Map<String, Object> sendMag = new HashMap<String, Object>();
// // openId代表一个唯一微信用户,即微信消息的接收人
// //String openId = "oLcw_5ti_iJpwibmL0QxfK2ZG9qQ";
// // 公众号的模板id(也有相应的接口可以查询到)
// String templateId = "fVgBuwpLC43YkeGWfl1Vw0mW0Qu5WP2giD77TfKAEc4";
//// String t = "EOXA31TBtu_v8wHRq4OBo2kTUeBtiIOi4MIEpWNP4bM";
// // 微信的基础accessToken
//// String accessToken = getAccessToken(appId,sppSecret);
//// String wxUrl = WX_URL_MESSAGE_SEND.replace("ACCESS_TOKEN", accessToken);
// /**
// * 其他模板可以从模板库中自己添加
// * 模板ID
// * B0YStqTYdjHhY9Da9Sy2NM7HXxxxxxxxxxxxxxx
// * 开发者调用模板消息接口时需提供模板ID
// * 标题
// * 产品兑付成功提醒
// * 行业
// * 金融业 - 证券|基金|理财|信托
// * 详细内容
// * {{first.DATA}}
// * 产品名称:{{keyword1.DATA}}
// * 当期兑付本金:{{keyword2.DATA}}
// * 当期兑付利息:{{keyword3.DATA}}
// * 已兑付期数:{{keyword4.DATA}}
// * 兑付日期:{{keyword5.DATA}}
// * {{remark.DATA}}
// */
// sendMag.put("buName", new TemplateData("石家庄瀚川商贸有限公司"));
// sendMag.put("addReason", new TemplateData("未依照《企业信息公示暂行条例》第八条规定的期限公示年度报告的"));
// sendMag.put("addDate", new TemplateData("2017-07-03 00:00:00"));
// sendMag.put("romoveReason", new TemplateData(""));
// sendMag.put("removeDate", new TemplateData(""));
// sendMag.put("decisionOffice", new TemplateData("监督管理局"));
// sendMag.put("removeDecisionOffice", new TemplateData("123456"));
//// Map<String, String> miniprogram = new HashMap<>();
//// miniprogram.put("appid","wx0f6062989ab28c91");
//// miniprogram.put("pagepath","pages/index/index");
// RestTemplate restTemplate = new RestTemplate();
// //拼接base参数
// Map<String, Object> sendBody = new HashMap<>();
//// sendBody.put("miniprogram",miniprogram);
// sendBody.put("touser", openId); // openId
// sendBody.put("url", "www.baidu.com"); // 点击模板信息跳转地址
// sendBody.put("topcolor", "#FF0000"); // 顶色
// sendBody.put("data", sendMag); // 模板参数
// sendBody.put("template_id", t);// 模板Id
//
// ResponseEntity<String> forEntity = restTemplate.postForEntity(wxUrl, sendBody, String.class);
// JSONObject jsonObject = JSONObject.parseObject(forEntity.getBody());
// String messageCode = jsonObject.getString("errcode");
// String msgId = jsonObject.getString("msgid");
// System.out.println("messageCode : " + messageCode + ", msgId: " +msgId);
// //return forEntity.getBody();
}
public String getAccessToken(String appId,String appsecret){
String url = WX_URL_ACCESS_TOKEN.replace("APPID", appId).replace("APPSECRET", appsecret);
RestTemplate restTemplate=new RestTemplate();
String re= restTemplate.getForObject(url,String.class);
JSONObject jsonObject= JSONObject.parseObject(re);
String at=jsonObject.getString("access_token");
return at;
}
public void setTemplateStyle(BusinessRiskDate riskDate, Map<String, Object> sendBody,String t,String wxUrl,PushInformation pushInformation,RestTemplate restTemplate,String verifyResult,List<BusinessRiskDate> businessRiskDate){
Map<String, Object> sendMag = new HashMap<>();
sendMag.put("thing2", new TemplateData(riskDate.getBusinessName()));
if (verifyResult.equals("0")){
sendMag.put("thing5", new TemplateData("该公司暂无风险"));
}else {
sendMag.put("thing5", new TemplateData("该企业有"+businessRiskDate.size())+"条风险");
}
sendMag.put("time6", new TemplateData(riskDate.getExecutionTime()));
Map<String, String> miniprogram = new HashMap<>();
miniprogram.put("appid","wx11565021714ba796");
miniprogram.put("pagepath","pages/index/enterpriseRisk?id=1111");
//拼接base参数 ?businessName="+riskDate.getBusinessName()+"&executionTime="+riskDate.getExecutionTime()
sendBody.put("miniprogram",miniprogram);
sendBody.put("touser", pushInformation.getOpenId()); // openId
sendBody.put("url", ""); // 点击模板信息跳转地址
sendBody.put("topcolor", "#FF0000"); // 顶色
sendBody.put("data", sendMag); // 模板参数
sendBody.put("template_id", t);// 模板Id
ResponseEntity<String> forEntity = restTemplate.postForEntity(wxUrl, sendBody, String.class);
JSONObject jsonObject = JSONObject.parseObject(forEntity.getBody());
String messageCode = jsonObject.getString("errcode");
String msgId = jsonObject.getString("msgid");
System.out.println("messageCode : " + messageCode + ", msgId: " +msgId);
}
}
Loading…
Cancel
Save