From 32362f86aff6b987963343821d7775224c564fc4 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期四, 20 一月 2022 21:56:39 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity
---
service-job/src/main/java/com/java110/job/adapt/Repair/MachineDistributeLeaflets.java | 98 ++++++++++++++++++++++++++++++++
java110-utils/src/main/java/com/java110/utils/util/ImageUtils.java | 24 ++++++++
2 files changed, 121 insertions(+), 1 deletions(-)
diff --git a/java110-utils/src/main/java/com/java110/utils/util/ImageUtils.java b/java110-utils/src/main/java/com/java110/utils/util/ImageUtils.java
index dd1f33a..b5d33d5 100755
--- a/java110-utils/src/main/java/com/java110/utils/util/ImageUtils.java
+++ b/java110-utils/src/main/java/com/java110/utils/util/ImageUtils.java
@@ -15,6 +15,8 @@
*/
package com.java110.utils.util;
+import org.apache.commons.codec.digest.DigestUtils;
+
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
@@ -51,6 +53,28 @@
}
+ public static String getMd5ByImgUrl(String url) {
+ String suffix = url.substring(url.lastIndexOf(".") + 1);
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ try {
+ URL urls = new URL(url);
+
+ Image image = Toolkit.getDefaultToolkit().getImage(urls);
+ BufferedImage biOut = toBufferedImage(image);
+ ImageIO.write(biOut, suffix, baos);
+ return DigestUtils.md5Hex(baos.toByteArray());
+ } catch (Exception e) {
+ return "";
+ }finally {
+ try {
+ baos.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ }
+
public static BufferedImage toBufferedImage(Image image) {
if (image instanceof BufferedImage) {
return (BufferedImage) image;
diff --git a/service-job/src/main/java/com/java110/job/adapt/Repair/MachineDistributeLeaflets.java b/service-job/src/main/java/com/java110/job/adapt/Repair/MachineDistributeLeaflets.java
index 2585c58..9eb484b 100755
--- a/service-job/src/main/java/com/java110/job/adapt/Repair/MachineDistributeLeaflets.java
+++ b/service-job/src/main/java/com/java110/job/adapt/Repair/MachineDistributeLeaflets.java
@@ -2,8 +2,11 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
+import com.java110.core.factory.CommunitySettingFactory;
import com.java110.core.factory.WechatFactory;
+import com.java110.core.log.LoggerFactory;
import com.java110.dto.community.CommunityDto;
+import com.java110.dto.file.FileRelDto;
import com.java110.dto.owner.OwnerAppUserDto;
import com.java110.dto.repair.RepairDto;
import com.java110.dto.repair.RepairUserDto;
@@ -15,6 +18,7 @@
import com.java110.entity.wechat.Content;
import com.java110.entity.wechat.Data;
import com.java110.entity.wechat.PropertyFeeTemplateMessage;
+import com.java110.intf.common.IFileRelInnerServiceSMO;
import com.java110.intf.community.ICommunityInnerServiceSMO;
import com.java110.intf.community.IRepairInnerServiceSMO;
import com.java110.intf.community.IRepairUserInnerServiceSMO;
@@ -25,10 +29,11 @@
import com.java110.intf.user.IUserInnerServiceSMO;
import com.java110.job.adapt.DatabusAdaptImpl;
import com.java110.utils.cache.MappingCache;
+import com.java110.utils.util.ImageUtils;
import com.java110.utils.util.StringUtil;
import org.slf4j.Logger;
-import com.java110.core.log.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
@@ -73,6 +78,9 @@
@Autowired
private IOwnerAppUserInnerServiceSMO ownerAppUserInnerServiceSMO;
+
+ @Autowired
+ private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
//妯℃澘淇℃伅鎺ㄩ�佸湴鍧�
private static String sendMsgUrl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=";
@@ -130,10 +138,13 @@
paramIn.put("staffId", staffId);
paramIn.put("repairObjId", repairObjId);
paramIn.put("preStaffId", preStaffId);
+ paramIn.put("repairId", repairId);
//缁欑淮淇笀鍌呮帹閫佷俊鎭�
sendMsg(paramIn, communityDtos.get(0));
//娲惧崟鎴愬姛缁欎笟涓绘帹閫佷俊鎭�
publishMsg(paramIn, communityDtos.get(0));
+ //涓轰紒涓氬井淇$兢鍙戞秷鎭�
+ sendMsgToWechatGroup(paramIn, communityDtos.get(0));
} else if (repairState.equals("1100") && (repairWay.equals("100") || repairWay.equals("300"))) {
String staffId = "";
if (repairUserDtos.size() > 1) {
@@ -310,6 +321,91 @@
}
}
+
+ private void sendMsgToWechatGroup(JSONObject paramIn, CommunityDto communityDto) {
+
+ //鏌ヨ鍏紬鍙烽厤缃�
+ String url = CommunitySettingFactory.getRemark(communityDto.getCommunityId(), "WECHAT_SEND_REPAIR_URL");
+ if (StringUtil.isEmpty(url)) {
+ return;
+ }
+
+ JSONObject rebootParam = new JSONObject();
+ rebootParam.put("msgtype", "markdown");
+ JSONObject rebootMarkdown = new JSONObject();
+ rebootParam.put("markdown", rebootMarkdown);
+
+
+ //鑾峰彇鍏蜂綋浣嶇疆
+ String address = "";
+ if (communityDto.getName().equals(paramIn.getString("repairObjName"))) {
+ address = paramIn.getString("repairObjName");
+ } else {
+ address = communityDto.getName() + paramIn.getString("repairObjName");
+ }
+
+ //鏍规嵁 userId 鏌ヨ鍒皁penId
+ UserDto userDto = new UserDto();
+ userDto.setUserId(paramIn.getString("staffId"));
+ List<UserDto> userDtos = userInnerServiceSMO.getUsers(userDto);
+ String staffName = "";
+ if (userDtos != null && userDtos.size() > 0) {
+ staffName = userDtos.get(0).getName();
+ }
+ String content = staffName + " 鎮ㄦ湁鏂扮殑缁翠慨浠诲姟锛岀淮淇俊鎭涓嬶細\n";
+
+ content += ("> 鏍囬锛�<font color=\"comment\">" + paramIn.getString("repairName") + "</font> \n");
+ content += ("> 鐢佃瘽锛�<font color=\"comment\">" + paramIn.getString("tel") + "</font> \n");
+ content += ("> 鏃堕棿锛�<font color=\"comment\">" + paramIn.getString("time") + "</font> \n");
+ content += ("> 鍐呭锛�<font color=\"comment\">" + paramIn.getString("context") + "</font> \n");
+ content += ("> 浣嶇疆锛�<font color=\"comment\">" + address + "</font> \n");
+ content += ("> 鍗曞彿锛�<font color=\"comment\">" + paramIn.getString("repairId") + "</font> \n");
+
+ rebootMarkdown.put("content", content);
+ logger.info("鍙戦�佹秷鎭唴瀹�:{}", content);
+ ResponseEntity<String> responseEntity = outRestTemplate.postForEntity(url, rebootParam.toJSONString(), String.class);
+ logger.info("浼佷笟寰俊杩斿洖鍐呭:{}", responseEntity);
+
+
+ if (responseEntity.getStatusCode() != HttpStatus.OK) {
+ return;
+ }
+
+ String imgUrl = MappingCache.getValue("IMG_PATH");
+ imgUrl += (!StringUtil.isEmpty(imgUrl) && imgUrl.endsWith("/") ? "" : "/");
+ FileRelDto fileRelDto = new FileRelDto();
+ fileRelDto.setObjId(paramIn.getString("repairId"));
+ List<FileRelDto> fileRelDtos = fileRelInnerServiceSMOImpl.queryFileRels(fileRelDto);
+
+ if (fileRelDtos == null || fileRelDtos.size() < 1) {
+ return;
+ }
+
+ rebootParam = JSONObject.parseObject(" {\n" +
+ " \"msgtype\":\"image\",\n" +
+ " \"image\":{\n" +
+ " }\n" +
+ " }");
+
+
+ JSONObject image = rebootParam.getJSONObject("image");
+
+ String imageUrl = "";
+ for (FileRelDto tmpFileRelDto : fileRelDtos) {
+
+ if (!tmpFileRelDto.getRelTypeCd().equals(FileRelDto.REL_TYPE_CD_REPAIR)) { //缁翠慨鍥剧墖
+ continue;
+ }
+ imageUrl = imgUrl + tmpFileRelDto.getFileRealName();
+ image.put("base64", ImageUtils.getBase64ByImgUrl(imageUrl));
+ image.put("md5", ImageUtils.getMd5ByImgUrl(imageUrl));
+ responseEntity = outRestTemplate.postForEntity(url, rebootParam.toJSONString(), String.class);
+ logger.debug("杩斿洖淇℃伅锛�"+responseEntity);
+ }
+
+ }
+
+
/**
* 娲惧崟(鎶㈠崟)鎴愬姛鍚庣粰涓氫富鎺ㄩ�佷俊鎭�
*
--
Gitblit v1.8.0