Browse Source

更新邮件发送为HTTP请求方式

hejq 7 years ago
parent
commit
973ce52a07

+ 20 - 0
src/main/java/com/uas/platform/b2b/config/RestTemplateConfig.java

@@ -0,0 +1,20 @@
+package com.uas.platform.b2b.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.client.RestTemplate;
+
+/**
+ * RestTemplate配置bean
+ * @author suntg
+ * @create 2017/2/15
+ * @version 2017年8月2日16:07:06 suntg 修改文件类名
+ */
+@Configuration
+public class RestTemplateConfig {
+
+    @Bean
+    public RestTemplate restTemplate() {
+        return new RestTemplate();
+    }
+}

+ 5 - 12
src/main/java/com/uas/platform/b2b/erp/service/impl/VendorServiceImpl.java

@@ -30,10 +30,13 @@ import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
- * Created by hejq on 2017-09-29.
+ * 供应商资料
+ *
+ * @author hejq
+ * @date 2018-07-04 16:02
  */
 @Service
-public class VendorServiceImpl implements VendorService{
+public class VendorServiceImpl implements VendorService {
 
     @Autowired
     private InvitationRecordDao invitationRecordDao;
@@ -53,11 +56,6 @@ public class VendorServiceImpl implements VendorService{
     @Autowired
     private CommonDao commonDao;
 
-    /**
-     * 短信接口
-     */
-    final String messageUrl = "http://message.ubtob.com/sms/send";
-
     /**
      * 日期格式
      */
@@ -73,11 +71,6 @@ public class VendorServiceImpl implements VendorService{
      */
     private static final String CHINESE_REGEXP = "^[\u4e00-\u9fa5]*$";
 
-    /**
-     * 匹配英文正则式
-     */
-    private static final String ENGLISH_REGEXP = "^[A-Za-z]+$";
-
     private final static ErpBufferedLogger logger = BufferedLoggerManager.getLogger(ErpBufferedLogger.class);
 
     @Override

+ 11 - 3
src/main/java/com/uas/platform/b2b/service/impl/InvitationRecordServiceImpl.java

@@ -29,6 +29,11 @@ import org.springframework.util.CollectionUtils;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
+/**
+ * 邀请注册
+ *
+ * @author hejq
+ */
 @Service
 public class InvitationRecordServiceImpl implements InvitationRecordService {
 
@@ -72,13 +77,15 @@ public class InvitationRecordServiceImpl implements InvitationRecordService {
 		Long useruu = SystemSession.getUser().getUserUU();
 		Long enuu = SystemSession.getUser().getEnterprise().getUu();
 		// UAS邀请注册通过Systemsession获取的用户UU不是当前用户UU,所以参数传过来
-		if (record.getUseruu() != null) { // 用户存在才设置进去,不然数据库会报错
+		// 用户存在才设置进去,不然数据库会报错
+		if (record.getUseruu() != null) {
 			User erpUser = userDao.findOne(record.getUseruu());
 			if (erpUser != null) {
 				useruu = record.getUseruu();
 			}
 		}
-		if (record.getEnuu() != null) { // 企业信息也一样
+		// 企业信息也一样
+		if (record.getEnuu() != null) {
 			Enterprise enterprise = enterpriseDao.findOne(record.getEnuu());
 			if (enterprise != null) {
 				enuu = record.getEnuu();
@@ -86,7 +93,8 @@ public class InvitationRecordServiceImpl implements InvitationRecordService {
 		}
 		// 先判断记录
 		InvitationRecord oldrecord = invitationRecordDao.findByUseruuAndVendname(useruu, record.getVendname());
-			if (record.getId() != null) { // 如果是已存在的,直接替换
+		// 如果是已存在的,直接替换
+		if (record.getId() != null) {
 			oldrecord = invitationRecordDao.findOne(record.getId());
 		}
 		if (oldrecord != null) {

+ 154 - 0
src/main/java/com/uas/platform/b2b/service/impl/RestMailServiceImpl.java

@@ -0,0 +1,154 @@
+package com.uas.platform.b2b.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.uas.message.common.domain.MapMessage;
+import com.uas.message.common.domain.Page;
+import com.uas.message.mail.domain.MailLog;
+import com.uas.message.mail.service.MailService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * 基于RestTemplate实现邮件发送
+ *
+ * @author hejq
+ * @date 2018-07-04
+ */
+@Service
+public class RestMailServiceImpl implements MailService {
+
+    private RestTemplate restTemplate;
+
+    /**
+     * 邮件服务主机地址
+     */
+    @Value("#{sys.messageServiceIp ?: 'http://message.ubtob.com/'}")
+    private String MAIL_CONSOLE_HOST;
+
+    /**
+     * 发送邮件给单个人url
+     */
+    private String MAIL_SEND_URL = "mail/send";
+
+    /**
+     * 发送邮件给多个人 url
+     */
+    private String MAIL_SEND_MANY_URL = "mail/send/o2m";
+
+    @Autowired
+    public RestMailServiceImpl(RestTemplate restTemplate) {
+        this.restTemplate = restTemplate;
+    }
+
+    @Override
+    public List<Map<String, Object>> sendByDefault(String[] strings, String s, String s1) {
+        // 暂未使用
+        return null;
+    }
+
+    @Override
+    public MailLog send(MapMessage mapMessage) {
+        // 暂未使用
+        return null;
+    }
+
+    @Override
+    public List<MailLog> sendAll(MapMessage mapMessage) {
+        // 暂未使用
+        return null;
+    }
+
+    /**
+     * 发送邮件给个人
+     * @param templateId
+     * @param receiver
+     * @param params
+     * @return
+     */
+    @Override
+    public MailLog send(String templateId, String receiver, Map<String, Object> params) {
+        HttpHeaders headers = new HttpHeaders();
+        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
+        headers.setContentType(type);
+        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
+
+        JSONObject object = new JSONObject();
+        object.put("templateId", templateId);
+        object.put("receiver", receiver);
+        object.put("params", params);
+
+        HttpEntity<String> formEntity = new HttpEntity<String>(object.toJSONString(), headers);
+        ResponseEntity<MailLog> responseEntity = restTemplate.postForEntity(MAIL_CONSOLE_HOST + MAIL_SEND_URL, formEntity, MailLog.class);
+        return responseEntity.getBody();
+    }
+
+    /**
+     * 发送邮件给多个人
+     * @param templateId
+     * @param receivers
+     * @param params
+     * @return
+     */
+    @Override
+    public List<MailLog> sendAll(String templateId, Set<String> receivers, Map<String, Object> params) {
+        HttpHeaders headers = new HttpHeaders();
+        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
+        headers.setContentType(type);
+        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
+
+        JSONObject object = new JSONObject();
+        object.put("templateId", templateId);
+        object.put("receivers", receivers);
+        object.put("params", params);
+
+        HttpEntity<String> formEntity = new HttpEntity<String>(object.toJSONString(), headers);
+        ResponseEntity<String> responseEntity = restTemplate.postForEntity(MAIL_CONSOLE_HOST + MAIL_SEND_MANY_URL, formEntity, String.class);
+        List<MailLog> mailLogs = JSONObject.parseArray(responseEntity.getBody(), MailLog.class);
+        return mailLogs;
+    }
+
+    @Override
+    public List<MailLog> sendAll(List<MapMessage> list) {
+        // 暂未使用
+        return null;
+    }
+
+    @Override
+    public Page<MailLog> findLogs(int i, int i1) {
+        // 暂未使用
+        return null;
+    }
+
+    @Override
+    public Page<MailLog> findLogs(String s, int i, int i1) {
+        // 暂未使用
+        return null;
+    }
+
+    @Override
+    public Page<MailLog> findLogs(boolean b, int i, int i1) {
+        // 暂未使用
+        return null;
+    }
+
+    @Override
+    public Page<MailLog> findLogs(String s, String s1, Boolean aBoolean, int i, int i1) {
+        // 暂未使用
+        return null;
+    }
+
+    @Override
+    public void deleteLogs(String s) {
+        // 暂未使用
+    }
+}

+ 4 - 1
src/main/resources/dev/sys.properties

@@ -14,4 +14,7 @@ reportUploadUrl=http://192.168.253.121:8090/report/fileUpload?userName=B2B%s
 productServiceUrl=http://218.17.158.219:24000/
 
 #inquiry service url
-inquiryServiceUrl=http://218.17.158.219:24000/
+inquiryServiceUrl=http://218.17.158.219:24000/
+
+#message service ip
+messageServiceIp=http://message.ubtob.com/

+ 4 - 1
src/main/resources/prod/sys.properties

@@ -14,4 +14,7 @@ reportUploadUrl=http://pre-print.ubtob.com/report/fileUpload?userName=B2B%s
 productServiceUrl=https://api-product.usoftmall.com/
 
 #inquiry service url
-inquiryServiceUrl=https://api-inquiry.usoftmall.com/
+inquiryServiceUrl=https://api-inquiry.usoftmall.com/
+
+#message service ip
+messageServiceIp=http://message.ubtob.com/

+ 0 - 8
src/main/resources/spring/dubbo-consumer.xml

@@ -13,12 +13,4 @@
 		interface="com.uas.search.b2b.service.SearchService" timeout="10000"
 		group="${dubbo.group}" owner="${dubbo.owner}" />
 
-	<!-- 邮件服务 -->
-	<dubbo:reference id="mailService"
-		interface="com.uas.message.mail.service.MailService" timeout="10000" />
-	
-	<!-- 消费短信服务 -->
-	<dubbo:reference id="smsService"
-		interface="com.uas.message.sms.service.SmsService" timeout="30000" />
-
 </beans>

+ 4 - 1
src/main/resources/test/sys.properties

@@ -16,4 +16,7 @@ productServiceUrl=http://218.17.158.219:24000
 
 #inquiry service url
 inquiryServiceUrl=http://218.17.158.219:24000
-#inquiryServiceUrl=http://10.1.51.83:8080/
+#inquiryServiceUrl=http://10.1.51.83:8080/
+
+#message service ip
+messageServiceIp=http://message.ubtob.com/