微信消息推送逻辑变更为绑定了并且在关注才推送

This commit is contained in:
XZW 2020-03-20 12:24:21 +08:00
parent 62c2d90890
commit 54fda51084

View File

@ -92,7 +92,7 @@ public class WechatMessagePush implements Job{
int con=0;
// 查询所有需要发送还款提醒的数据
String selSql="SELECT CI.CUSTOMERNAME AS CUST_NAME,WUI.MOBILE_,WUI.CERTID_,LCI.CONTRACT_NUMBER,CI.CUSTOMER_NUM,LRP.PLAN_LIST,LCI.ID AS CONTRACT_ID,CI.CUSTOMERID,WUI.OPENID,CONCAT('/wechat/menu?type=payments&id=',LCI.CONTRACT_NUMBER) AS LINK,CONCAT(CONVERT(YEAR(LRP.PLAN_DATE), CHAR),'年',CONVERT(MONTH(LRP.PLAN_DATE), CHAR),'月',CONVERT(DAY(LRP.PLAN_DATE), CHAR),'日') AS KEYWORD1,CONCAT('第', LRP.PLAN_LIST, '期') KEYWORD2,CONCAT(IFNULL(LRP.RENT,0)-IFNULL(LRI.RENT,0), '元') KEYWORD3 FROM WECHAT_USER_INFO WUI LEFT JOIN CUSTOMER_INFO CI ON CI.CERTID = WUI.CERTID_ LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CUSTOMER_ID = CI.CUSTOMERID AND LUL.IS_MAIN = 'Y' LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LUL.CONTRACT_ID AND LCI.CONTRACT_STATUS = '31' LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,SUM(RENT) AS RENT FROM LC_RENT_INCOME GROUP BY CONTRACT_ID,PLAN_LIST)LRI ON LRI.CONTRACT_ID=LRP.CONTRACT_ID AND LRI.PLAN_LIST=LRP.PLAN_LIST WHERE WUI.BINDING_STATUS = 'Y' AND (TIMESTAMPDIFF(DAY,DATE_FORMAT(NOW(), '%Y-%m-%d'),DATE_FORMAT(LRP.PLAN_DATE, '%Y-%m-%d')) <= 3 AND TIMESTAMPDIFF(DAY,DATE_FORMAT(NOW(), '%Y-%m-%d'),DATE_FORMAT(LRP.PLAN_DATE, '%Y-%m-%d')) >= 0) AND IFNULL(LRP.RENT,0)-IFNULL(LRI.RENT,0)>0 AND NOT EXISTS (SELECT 1 FROM WECHAT_MESSAGE_RECORD WHERE OPENID = WUI.OPENID AND SEND_TYPE = '1' AND CONTRACT_NUMBER = LCI.CONTRACT_NUMBER AND PLAN_LIST = LRP.PLAN_LIST AND SEND_STATUS = 'Y') LIMIT 0, 50000 ";
String selSql="SELECT CI.CUSTOMERNAME AS CUST_NAME,WUI.MOBILE_,WUI.CERTID_,LCI.CONTRACT_NUMBER,CI.CUSTOMER_NUM,LRP.PLAN_LIST,LCI.ID AS CONTRACT_ID,CI.CUSTOMERID,WUI.OPENID,CONCAT('/wechat/menu?type=payments&id=',LCI.CONTRACT_NUMBER) AS LINK,CONCAT(CONVERT(YEAR(LRP.PLAN_DATE), CHAR),'年',CONVERT(MONTH(LRP.PLAN_DATE), CHAR),'月',CONVERT(DAY(LRP.PLAN_DATE), CHAR),'日') AS KEYWORD1,CONCAT('第', LRP.PLAN_LIST, '期') KEYWORD2,CONCAT(IFNULL(LRP.RENT,0)-IFNULL(LRI.RENT,0), '元') KEYWORD3 FROM WECHAT_USER_INFO WUI LEFT JOIN CUSTOMER_INFO CI ON CI.CERTID = WUI.CERTID_ LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CUSTOMER_ID = CI.CUSTOMERID AND LUL.IS_MAIN = 'Y' LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LUL.CONTRACT_ID AND LCI.CONTRACT_STATUS = '31' LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,SUM(RENT) AS RENT FROM LC_RENT_INCOME GROUP BY CONTRACT_ID,PLAN_LIST)LRI ON LRI.CONTRACT_ID=LRP.CONTRACT_ID AND LRI.PLAN_LIST=LRP.PLAN_LIST WHERE WUI.BINDING_STATUS = 'Y' AND WUI.ATTENTION_STATUS<>'N' AND (TIMESTAMPDIFF(DAY,DATE_FORMAT(NOW(), '%Y-%m-%d'),DATE_FORMAT(LRP.PLAN_DATE, '%Y-%m-%d')) <= 3 AND TIMESTAMPDIFF(DAY,DATE_FORMAT(NOW(), '%Y-%m-%d'),DATE_FORMAT(LRP.PLAN_DATE, '%Y-%m-%d')) >= 0) AND IFNULL(LRP.RENT,0)-IFNULL(LRI.RENT,0)>0 AND NOT EXISTS (SELECT 1 FROM WECHAT_MESSAGE_RECORD WHERE OPENID = WUI.OPENID AND SEND_TYPE = '1' AND CONTRACT_NUMBER = LCI.CONTRACT_NUMBER AND PLAN_LIST = LRP.PLAN_LIST AND SEND_STATUS = 'Y') LIMIT 0, 50000 ";
ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql));
while(rs.next()) {
@ -172,7 +172,7 @@ public class WechatMessagePush implements Job{
int con=0;
// 查询所有需要发送还款提醒的数据
String selSql="SELECT CI.CUSTOMERNAME AS CUST_NAME,WUI.MOBILE_,WUI.CERTID_,LCI.CONTRACT_NUMBER,CI.CUSTOMER_NUM,LRP.PLAN_LIST,LCI.ID AS CONTRACT_ID,CI.CUSTOMERID,WUI.OPENID,CONCAT('/wechat/menu?type=payments&id=',LCI.CONTRACT_NUMBER) AS LINK,CONCAT(CONVERT(YEAR(LRP.PLAN_DATE), CHAR),'年',CONVERT(MONTH(LRP.PLAN_DATE), CHAR),'月',CONVERT(DAY(LRP.PLAN_DATE), CHAR),'日') AS KEYWORD1,CONCAT(ROUND((LRP.RENT + ROUND(IFNULL(getRentPenalty3(LRP.PAYMENT_NUMBER,LRP.PLAN_LIST,IFNULL(LRI.HIRE_DATE,DATE_FORMAT(NOW(), '%y/%m/%d'))),0),2)) - (IFNULL(LRI.RENT, 0) + IFNULL(LRI.PENALTY, 0)),2),'元') AS KEYWORD2,CONCAT((LRP.RENT - IFNULL(LRI.RENT, 0)),'元') AS KEYWORD3,CONCAT(ROUND(IFNULL(getRentPenalty(LRP.PAYMENT_NUMBER,LRP.PLAN_LIST,IFNULL(LRI.HIRE_DATE,DATE_FORMAT(NOW(), '%y/%m/%d'))),0),2),'元') AS KEYWORD4 FROM WECHAT_USER_INFO WUI LEFT JOIN CUSTOMER_INFO CI ON CI.CERTID = WUI.CERTID_ LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CUSTOMER_ID = CI.CUSTOMERID AND LUL.IS_MAIN = 'Y' LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LUL.CONTRACT_ID AND LCI.CONTRACT_STATUS = '31' LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,MAX(PLAN_DATE) AS PLAN_DATE,MAX(PAYMENT_NUMBER) AS PAYMENT_NUMBER,SUM(RENT) AS RENT,SUM(IFNULL(PENALTY, 0)) AS PENALTY FROM LC_RENT_PLAN WHERE TIMESTAMPDIFF(DAY,DATE_FORMAT(PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d')) >= 3 GROUP BY CONTRACT_ID,PLAN_LIST) LRP ON LRP.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,SUM(RENT) AS RENT,SUM(IFNULL(PENALTY, 0)) AS PENALTY,MAX(HIRE_DATE) AS HIRE_DATE FROM LC_RENT_INCOME GROUP BY CONTRACT_ID,PLAN_LIST) LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID AND LRI.PLAN_LIST = LRP.PLAN_LIST WHERE WUI.BINDING_STATUS = 'Y' AND (IFNULL(LRP.RENT, 0)+ ROUND(IFNULL(getRentPenalty3(LRP.PAYMENT_NUMBER,LRP.PLAN_LIST,IFNULL(LRI.HIRE_DATE,DATE_FORMAT(NOW(), '%y/%m/%d'))),0),2)- IFNULL(LRI.RENT, 0) - IFNULL(LRI.PENALTY, 0)) > 0 AND NOT EXISTS (SELECT 1 FROM WECHAT_MESSAGE_RECORD WHERE OPENID = WUI.OPENID AND SEND_TYPE = '2' AND CONTRACT_NUMBER = LCI.CONTRACT_NUMBER AND PLAN_LIST = LRP.PLAN_LIST AND SEND_STATUS = 'Y') ORDER BY LRP.PLAN_LIST LIMIT 0, 50000 ";
String selSql="SELECT CI.CUSTOMERNAME AS CUST_NAME,WUI.MOBILE_,WUI.CERTID_,LCI.CONTRACT_NUMBER,CI.CUSTOMER_NUM,LRP.PLAN_LIST,LCI.ID AS CONTRACT_ID,CI.CUSTOMERID,WUI.OPENID,CONCAT('/wechat/menu?type=payments&id=',LCI.CONTRACT_NUMBER) AS LINK,CONCAT(CONVERT(YEAR(LRP.PLAN_DATE), CHAR),'年',CONVERT(MONTH(LRP.PLAN_DATE), CHAR),'月',CONVERT(DAY(LRP.PLAN_DATE), CHAR),'日') AS KEYWORD1,CONCAT(ROUND((LRP.RENT + ROUND(IFNULL(getRentPenalty3(LRP.PAYMENT_NUMBER,LRP.PLAN_LIST,IFNULL(LRI.HIRE_DATE,DATE_FORMAT(NOW(), '%y/%m/%d'))),0),2)) - (IFNULL(LRI.RENT, 0) + IFNULL(LRI.PENALTY, 0)),2),'元') AS KEYWORD2,CONCAT((LRP.RENT - IFNULL(LRI.RENT, 0)),'元') AS KEYWORD3,CONCAT(ROUND(IFNULL(getRentPenalty(LRP.PAYMENT_NUMBER,LRP.PLAN_LIST,IFNULL(LRI.HIRE_DATE,DATE_FORMAT(NOW(), '%y/%m/%d'))),0),2),'元') AS KEYWORD4 FROM WECHAT_USER_INFO WUI LEFT JOIN CUSTOMER_INFO CI ON CI.CERTID = WUI.CERTID_ LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CUSTOMER_ID = CI.CUSTOMERID AND LUL.IS_MAIN = 'Y' LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LUL.CONTRACT_ID AND LCI.CONTRACT_STATUS = '31' LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,MAX(PLAN_DATE) AS PLAN_DATE,MAX(PAYMENT_NUMBER) AS PAYMENT_NUMBER,SUM(RENT) AS RENT,SUM(IFNULL(PENALTY, 0)) AS PENALTY FROM LC_RENT_PLAN WHERE TIMESTAMPDIFF(DAY,DATE_FORMAT(PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d')) >= 3 GROUP BY CONTRACT_ID,PLAN_LIST) LRP ON LRP.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,SUM(RENT) AS RENT,SUM(IFNULL(PENALTY, 0)) AS PENALTY,MAX(HIRE_DATE) AS HIRE_DATE FROM LC_RENT_INCOME GROUP BY CONTRACT_ID,PLAN_LIST) LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID AND LRI.PLAN_LIST = LRP.PLAN_LIST WHERE WUI.BINDING_STATUS = 'Y' AND WUI.ATTENTION_STATUS<>'N' AND (IFNULL(LRP.RENT, 0)+ ROUND(IFNULL(getRentPenalty3(LRP.PAYMENT_NUMBER,LRP.PLAN_LIST,IFNULL(LRI.HIRE_DATE,DATE_FORMAT(NOW(), '%y/%m/%d'))),0),2)- IFNULL(LRI.RENT, 0) - IFNULL(LRI.PENALTY, 0)) > 0 AND NOT EXISTS (SELECT 1 FROM WECHAT_MESSAGE_RECORD WHERE OPENID = WUI.OPENID AND SEND_TYPE = '2' AND CONTRACT_NUMBER = LCI.CONTRACT_NUMBER AND PLAN_LIST = LRP.PLAN_LIST AND SEND_STATUS = 'Y') ORDER BY LRP.PLAN_LIST LIMIT 0, 50000 ";
ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql));
// 循环, 逐条发送
while(rs.next()) {