Browse Source

Merge remote-tracking branch 'origin/master'

lizeyu 1 year ago
parent
commit
8ada429a38

+ 2 - 6
src/main/java/com/hz/employmentsite/AppConfig.java

@@ -73,14 +73,10 @@ public class AppConfig {
     public String wxAppId;
     @Value("${appconfig.wxconfig.appSecret}")
     public String wxAppSecret;
-    @Value("${appconfig.wxconfig.messageTemplateId}")
-    public String wxMessageTemplateId;
-    @Value("${appconfig.wxconfig.redirectURI}")
-    public String wxRedirectURI;
+    @Value("${appconfig.wxconfig.wxMessageBaseUrl}")
+    public String wxMessageBaseUrl;
     @Value("${appconfig.wxconfig.accessScope}")
     public String wxAccessScope;
-    @Value("${appconfig.wxconfig.testOpenId}")
-    public String testOpenId;
 
 
 

+ 6 - 0
src/main/java/com/hz/employmentsite/jobs/sendWxMessageJob.java

@@ -1,6 +1,7 @@
 package com.hz.employmentsite.jobs;
 
 import com.hz.employmentsite.AppConfig;
+import com.hz.employmentsite.services.service.jobUserManager.RecommendMgtService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
@@ -12,12 +13,17 @@ public class sendWxMessageJob {
     @Autowired
     private AppConfig appConfig;
 
+    @Autowired
+    private RecommendMgtService recommendMgtService;
+
     @Scheduled(cron="${appconfig.jobconfig.send-wxmessage-cron}")
     public void syncClassData() {
         if (appConfig.jobconfig_isRunJob) {
             log.info("开始推送微信通知");
             try {
 
+                recommendMgtService.sendWxMessage();
+
             } catch (Exception e) {
                 log.info("推送微信通知数据错误:" + e.getMessage());
             }

+ 22 - 5
src/main/java/com/hz/employmentsite/services/impl/WechatServiceImpl.java

@@ -2,10 +2,9 @@ package com.hz.employmentsite.services.impl;
 
 import com.hz.employmentsite.AppConfig;
 import com.hz.employmentsite.mapper.WxMessagestatusMapper;
+import com.hz.employmentsite.mapper.WxMessagetempsettingFieldMapper;
 import com.hz.employmentsite.mapper.WxMessagetempsettingMapper;
-import com.hz.employmentsite.model.WxMessagestatus;
-import com.hz.employmentsite.model.WxMessagestatusExample;
-import com.hz.employmentsite.model.WxMessagetempsetting;
+import com.hz.employmentsite.model.*;
 import com.hz.employmentsite.services.service.WechatService;
 import com.hz.employmentsite.util.StringUtils;
 import lombok.extern.slf4j.Slf4j;
@@ -36,6 +35,9 @@ public class WechatServiceImpl implements WechatService {
     @Autowired
     private WxMessagetempsettingMapper wxMessagetempsettingMapper;
 
+    @Autowired
+    private WxMessagetempsettingFieldMapper wxMessagetempsettingFieldMapper;
+
     @Autowired
     private StringUtils stringUtils;
 
@@ -72,7 +74,7 @@ public class WechatServiceImpl implements WechatService {
                 .toUser(openId)//要推送的用户openid
                 .data(data) //数据
                 .templateId(templateId)//模版id
-                .url(url) // 点击详情跳转地址
+                .url(appConfig.wxMessageBaseUrl + url) // 点击详情跳转地址
                 .build();
         //发起推送
         try {
@@ -117,6 +119,12 @@ public class WechatServiceImpl implements WechatService {
 
             wxMessagestatusMapper.insert(wxMessagestatus);
         }
+        else{
+            wxMessagestatus.setContent(sendData.toString());
+            wxMessagestatus.setModifyTime(new Date());
+
+            wxMessagestatusMapper.updateByPrimaryKey(wxMessagestatus);
+        }
 
         try {
             sendMsg(openId, templateId, url, sendData);
@@ -135,11 +143,20 @@ public class WechatServiceImpl implements WechatService {
     }
 
     @Override
-    public List<WxMessagetempsetting> getWxMessagetempsettingList(){
+    public List<WxMessagetempsetting> getWxMessagetempsettingList() {
         List<WxMessagetempsetting> dataList = wxMessagetempsettingMapper.selectByExample(null);
 
         return dataList;
     }
 
+    @Override
+    public List<WxMessagetempsettingField> getWxMessagetempFieldList(String templateNo) {
+        WxMessagetempsettingFieldExample exp = new WxMessagetempsettingFieldExample();
+        WxMessagetempsettingFieldExample.Criteria cri = exp.or();
+        cri.andTemplateNoEqualTo(templateNo);
+
+        return wxMessagetempsettingFieldMapper.selectByExample(exp);
+    }
+
 
 }

+ 58 - 22
src/main/java/com/hz/employmentsite/services/impl/jobUserManager/RecommendMgtServiceImpl.java

@@ -7,6 +7,7 @@ import com.hz.employmentsite.mapper.PcRecommendMgtMapper;
 import com.hz.employmentsite.mapper.cquery.RecommendMgtCQuery;
 import com.hz.employmentsite.model.PcRecommendMgt;
 import com.hz.employmentsite.model.WxMessagetempsetting;
+import com.hz.employmentsite.model.WxMessagetempsettingField;
 import com.hz.employmentsite.services.service.WechatService;
 import com.hz.employmentsite.services.service.jobUserManager.RecommendMgtService;
 import com.hz.employmentsite.util.StringUtils;
@@ -123,43 +124,78 @@ public class RecommendMgtServiceImpl implements RecommendMgtService {
     }
 
 
-    public void SendWxMessage() {
+    @Override
+    public void sendWxMessage() {
+        sendUser();
+
+        sendCompany();
+    }
+
+    private void sendUser() {
         List<HashMap<String, Object>> toUserList = recommendMgtCQuery.getCompanypostToUsermessageList();
-        List<HashMap<String, Object>> toCompanyList = recommendMgtCQuery.getUserhuntpostToCompanymessageList();
 
         WxMessagetempsetting toUserTemp = wechatService.getWxMessagetempsettingList().stream().filter(it -> it.getTemplateNo().equals("toUser")).findFirst().orElse(null);
-        WxMessagetempsetting toCompanyTemp = wechatService.getWxMessagetempsettingList().stream().filter(it -> it.getTemplateNo().equals("toUser")).findFirst().orElse(null);
 
         if (toUserTemp != null) {
-            toUserList.forEach(item -> {
-                try {
-                    String recommendmgtid = item.get("recommendmgtid").toString();
+            List<WxMessagetempsettingField> fieldList = wechatService.getWxMessagetempFieldList(toUserTemp.getTemplateNo());
+            if (fieldList.size() > 0) {
+                toUserList.forEach(item -> {
+                    try {
+                        String recommendmgtid = item.get("recommendmgtid").toString();
 
-                    PcRecommendMgt pcRecommendMgt = pcRecommendMgtMapper.selectByPrimaryKey(recommendmgtid);
+                        PcRecommendMgt pcRecommendMgt = pcRecommendMgtMapper.selectByPrimaryKey(recommendmgtid);
 
-                    /*List<String> fields = Arrays.stream(toUserTemp.getFields().split("\\,")).toList();*/
+                        Map<String, String> data = new HashMap<>();
+                        fieldList.forEach(field -> {
+                            data.put(field.getWxFieldName(), item.get(field.getSysFieldName()).toString());
+                        });
 
-                   /* Map<String, String> data = new HashMap<>();
-                    fields.forEach(field->{
-                        data.put(field, item.get("field").toString());
-                    });*/
 
+                        boolean result = wechatService.sendMsg(item.get("userOpenId").toString(), recommendmgtid, toUserTemp.getUrl() + "?recommendmgtid=" + recommendmgtid, toUserTemp.getTemplateId(), data);
 
-                    /*boolean result = wechatService.sendMsg(item.get("userOpenId").toString(), recommendmgtid, toUserTemp.getUrl(), toUserTemp.getTemplateId(), data);
+                        if (result) {
+                            pcRecommendMgt.setIsSendUser(true);
+                            pcRecommendMgtMapper.updateByPrimaryKey(pcRecommendMgt);
+                        }
+                    } catch (Exception e) {
 
-                    if (result) {
-                        pcRecommendMgt.setIsSendUser(true);
-                        pcRecommendMgtMapper.updateByPrimaryKey(pcRecommendMgt);
-                    }*/
-                } catch (Exception e) {
-
-                }
-            });
+                    }
+                });
+            }
         }
+    }
+
+    private void sendCompany() {
+        List<HashMap<String, Object>> toCompanyList = recommendMgtCQuery.getUserhuntpostToCompanymessageList();
+
+        WxMessagetempsetting toCompanyTemp = wechatService.getWxMessagetempsettingList().stream().filter(it -> it.getTemplateNo().equals("toCompany")).findFirst().orElse(null);
 
         if (toCompanyTemp != null) {
+            List<WxMessagetempsettingField> fieldList = wechatService.getWxMessagetempFieldList(toCompanyTemp.getTemplateNo());
+            if (fieldList.size() > 0) {
+                toCompanyList.forEach(item -> {
+                    try {
+                        String recommendmgtid = item.get("recommendmgtid").toString();
+
+                        PcRecommendMgt pcRecommendMgt = pcRecommendMgtMapper.selectByPrimaryKey(recommendmgtid);
+
+                        Map<String, String> data = new HashMap<>();
+                        fieldList.forEach(field -> {
+                            data.put(field.getWxFieldName(), item.get(field.getSysFieldName()).toString());
+                        });
 
-        }
 
+                        boolean result = wechatService.sendMsg(item.get("companyOpenId").toString(), recommendmgtid, toCompanyTemp.getUrl() + "?recommendmgtid=" + recommendmgtid, toCompanyTemp.getTemplateId(), data);
+
+                        if (result) {
+                            pcRecommendMgt.setIsSendUser(true);
+                            pcRecommendMgtMapper.updateByPrimaryKey(pcRecommendMgt);
+                        }
+                    } catch (Exception e) {
+
+                    }
+                });
+            }
+        }
     }
 }

+ 3 - 0
src/main/java/com/hz/employmentsite/services/service/WechatService.java

@@ -1,6 +1,7 @@
 package com.hz.employmentsite.services.service;
 
 import com.hz.employmentsite.model.WxMessagetempsetting;
+import com.hz.employmentsite.model.WxMessagetempsettingField;
 import me.chanjar.weixin.common.error.WxErrorException;
 
 import java.util.List;
@@ -16,4 +17,6 @@ public interface WechatService {
 
     List<WxMessagetempsetting> getWxMessagetempsettingList();
 
+    List<WxMessagetempsettingField> getWxMessagetempFieldList(String templateNo);
+
 }

+ 2 - 0
src/main/java/com/hz/employmentsite/services/service/jobUserManager/RecommendMgtService.java

@@ -51,4 +51,6 @@ public interface RecommendMgtService {
                                                  Integer type, Integer cultureLeve, Integer keyPersonType);
 
     List<ProfessionLevel> getProfessionLevelList();
+
+    void sendWxMessage();
 }

+ 2 - 4
src/main/resources/application.yml

@@ -103,7 +103,7 @@ appconfig:
     class-cron: '0 0 5 1 * ?'
     student-cron: '0 0 6 1 * ?'
     teacher-cron: '0 0 7 1 * ?'
-    send-wxmessage-cron: '0 0/5 * * * ?'
+    send-wxmessage-cron: '0 0/5 * * 1 ?'
 
   #同步教务系统组织结构数据配置
   educonfig:
@@ -121,9 +121,7 @@ appconfig:
   wxconfig:
     appId: 'wx737c2a7879b897c1'
     appSecret: '0d37c99bf2edd9ef3d839869bfa724ad'
-    messageTemplateId: '-R2xeAeey7rOKN5VAuUr8cFMsJFlFp7ksN7m6H5_5VU'
-    redirectURI: 'http://www.bowintek.com/hzyz/mobile'
+    wxMessageBaseUrl: 'http://www.bowintek.com/hzyz/mobile/index.html/#'
     accessScope: 'snsapi_base'
-    testOpenId: ''
 
 

+ 2 - 2
src/main/resources/mapping/cquery/RecommendMgtCQuery.xml

@@ -126,7 +126,7 @@
                  inner join pc_company c on b.CompanyID = c.CompanyID
                  inner join pc_jobhunt d on a.JobHuntID = d.JobHuntID
                  inner join pc_jobuser e on d.JobUserID = e.JobuserID
-        where (a.isSendUser = 0 || a.isSendUser is null)
+        where (a.isSendUser = 0 || a.isSendUser is null) and e.openId is not null
     </select>
     <select id="getUserhuntpostToCompanymessageList" resultType="java.util.HashMap">
         select a.recommendmgtid,c.openId as companyOpenId,
@@ -136,7 +136,7 @@
                  inner join pc_company c on b.CompanyID = c.CompanyID
                  inner join pc_jobhunt d on a.JobHuntID = d.JobHuntID
                  inner join pc_jobuser e on d.JobUserID = e.JobuserID
-        where (a.isSendCompany = 0 || a.isSendCompany is null)
+        where (a.isSendCompany = 0 || a.isSendCompany is null) and c.openId is not null
     </select>
 
 </mapper>