Browse Source

首投有效素材明细表 导入失败,添加消息发送

zhaoxian 1 year ago
parent
commit
0e4a2617e2

+ 5 - 1
ruixuan-common/pom.xml

@@ -92,7 +92,11 @@
             <groupId>commons-io</groupId>
             <artifactId>commons-io</artifactId>
         </dependency>
-
+        <dependency>
+            <groupId>com.github.binarywang</groupId>
+            <artifactId>weixin-java-cp</artifactId>
+            <version>3.6.0</version>
+        </dependency>
         <!-- 文件上传工具类 -->
         <dependency>
             <groupId>commons-fileupload</groupId>

+ 65 - 0
ruixuan-common/src/main/java/com/ruixuan/common/weixin/CorpWexinUtils.java

@@ -0,0 +1,65 @@
+package com.ruixuan.common.weixin;
+
+import com.alibaba.fastjson.JSONObject;
+import com.ruixuan.common.utils.Check;
+import lombok.extern.slf4j.Slf4j;
+import lombok.val;
+import me.chanjar.weixin.common.error.WxErrorException;
+import me.chanjar.weixin.cp.api.WxCpService;
+import me.chanjar.weixin.cp.api.impl.WxCpServiceImpl;
+import me.chanjar.weixin.cp.bean.WxCpMessage;
+import me.chanjar.weixin.cp.config.impl.WxCpDefaultConfigImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+@Slf4j
+public class CorpWexinUtils {
+    private String CORP_ID = "ww24b8a47826f5875f";
+    private Integer AGENT_ID = 1000002;
+    private String CORP_SECRET = "MJIlySADGPlgvADnkFQPUpfZD4yV-4WN6066OgNnb0s";
+    private String TOKEN = "hcst2019";
+    private String AES_KEY = "hcst2019";
+
+
+    private static Map<String, WexinConfig> configMap = new HashMap<>();
+
+    private Map<String, WexinConfig> getConfigMap() {
+
+        WxCpService wxCpService = new WxCpServiceImpl();
+        WexinConfig config = new WexinConfig();
+        val configStorage = new WxCpDefaultConfigImpl();
+        configStorage.setCorpId(CORP_ID);
+        configStorage.setAgentId(AGENT_ID);
+        configStorage.setCorpSecret(CORP_SECRET);
+        configStorage.setToken(TOKEN);
+        configStorage.setAesKey(AES_KEY);
+        wxCpService.setWxCpConfigStorage(configStorage);
+        config.setWxCpService(wxCpService);
+        configMap.put(configStorage.getCorpId(), config);
+        return configMap;
+    }
+
+    public void sendMessage(JSONObject userInfo, String content) {
+        if (Check.isNullMap(configMap)) {
+            getConfigMap();
+        }
+        WxCpMessage message = new WxCpMessage();
+        message.setMsgType("text");
+        message.setContent(content);
+        message.setAgentId(1000002);
+        message.setToUser(userInfo.getString("wexin_id"));
+        try {
+            WexinConfig config = configMap.get(userInfo.getString("corp_id"));
+            WxCpService wxCpService = config.getWxCpService();
+            wxCpService.messageSend(message);
+        } catch (WxErrorException e) {
+            log.error("发送信息失败,userId:{}", userInfo.getString("wexin_id"));
+            e.printStackTrace();
+
+        }
+    }
+}

+ 56 - 0
ruixuan-common/src/main/java/com/ruixuan/common/weixin/WexinConfig.java

@@ -0,0 +1,56 @@
+package com.ruixuan.common.weixin;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import me.chanjar.weixin.cp.api.WxCpService;
+
+import java.util.Date;
+
+/**
+ * 企业微信配置信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class WexinConfig {
+
+    /**
+     * id
+     */
+    private Integer id;
+    /**
+     * corpId
+     */
+    private String corpId;
+    /**
+     * agentId
+     */
+    private Integer agentId;
+    /**
+     * corpSecret
+     */
+    private String corpSecret;
+    /**
+     * aesKey
+     */
+    private String aesKey;
+    /**
+     * token
+     */
+    private String token;
+    /**
+     * remarks
+     */
+    private String remarks;
+    /**
+     * createTime
+     */
+    private Date createTime;
+    /**
+     * updateTime
+     */
+    private Date updateTime;
+
+    private WxCpService wxCpService;
+}

+ 20 - 9
ruixuan-live/src/main/java/com/ruixuan/isc/controller/KuaishouItemCollectSamplesController.java

@@ -10,14 +10,13 @@ import com.kuaidi100.sdk.request.SubscribeParam;
 import com.kuaidi100.sdk.request.SubscribeParameters;
 import com.kuaidi100.sdk.request.SubscribeReq;
 import com.kuaidi100.sdk.response.SubscribeResp;
-import com.monitorjbl.xlsx.StreamingReader;
 import com.ruixuan.common.core.controller.BaseController;
 import com.ruixuan.common.core.domain.AjaxResult;
 import com.ruixuan.common.core.domain.entity.SysUser;
 import com.ruixuan.common.core.page.TableDataInfo;
 import com.ruixuan.common.utils.Check;
 import com.ruixuan.common.utils.DateUtils;
-import com.ruixuan.common.utils.file.FileUtil;
+import com.ruixuan.common.weixin.CorpWexinUtils;
 import com.ruixuan.data.utils.ExportExcelUtils;
 import com.ruixuan.isc.entity.KuaishouItemCollectSampleExpress;
 import com.ruixuan.isc.entity.KuaishouItemCollectSampleLog;
@@ -35,10 +34,6 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.io.IOUtils;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -55,10 +50,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
-import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.UnsupportedEncodingException;
 import java.math.BigDecimal;
@@ -1055,9 +1047,28 @@ public class KuaishouItemCollectSamplesController extends BaseController {
         try {
             promoterService.importExcelMaterials(file);
         } catch (Exception e) {
+            send(file.getOriginalFilename());
             e.printStackTrace();
         }
     }
+
+    @Autowired
+    private CorpWexinUtils corpWexinUtils;
+
+    private void send(String fileName) {
+        String date = DateUtils.getDate();
+        JSONObject weChat = new JSONObject();
+        weChat.put("wexin_id", "ZhaoXiAn");
+        weChat.put("corp_id", "ww24b8a47826f5875f");
+        StringBuilder text = new StringBuilder();
+        text.append("上传首投有效素材失败通知:").append("<br/>")
+                .append("excel目录:").append("/data/excel/").append(date + "/").append("<br/>")
+                .append("excel名称:").append(fileName).append("<br/>")
+                .append("下载并重新上传!").append("<br/>")
+                .append("ruixuan项目,本地Postman路径:").append("<br/>")
+                .append("http://192.168.1.181:9003/itemCollectSamples/importExcelMaterials").append("<br/>");
+        corpWexinUtils.sendMessage(weChat, text.toString());
+    }
 }
 
 

+ 1 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/service/impl/KuaishouPromoterServiceImpl.java

@@ -866,6 +866,7 @@ public class KuaishouPromoterServiceImpl implements IKuaishouPromoterService {
             dataList = this.analysisBIGBIGFile(file, path.toString());
         } catch (Exception e) {
             e.printStackTrace();
+            throw new InterruptedException("解析excel失败");
         } finally {
             LoadFileUtil.delFile(path.toString());
         }