Просмотр исходного кода

修改短信功能和邮件功能的实现,由Dubbo调用改为调用http实现

suntg 8 лет назад
Родитель
Сommit
4af54046ce

+ 152 - 0
src/main/java/com/uas/platform/b2c/common/base/service/impl/RestMailServiceImpl.java

@@ -0,0 +1,152 @@
+package com.uas.platform.b2c.common.base.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 com.uas.platform.b2c.core.utils.FastjsonUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+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 suntg
+ * @since 2017年10月20日15:12:47
+ */
+@Service
+public class RestMailServiceImpl implements MailService {
+
+    private RestTemplate restTemplate;
+
+    /**
+     * 邮件服务主机地址
+     */
+    private static final String MAIL_CONSOLE_HOST = "http://10.10.100.23:28029/";
+
+    /**
+     * 发送邮件给单个人url
+     */
+    private static final String MAIL_SEND_URL = MAIL_CONSOLE_HOST  + "mail/send";
+
+    /**
+     * 发送邮件给多个人 url
+     */
+    private static final String MAIL_SEND_MANY_URL = MAIL_CONSOLE_HOST + "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_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_SEND_MANY_URL, formEntity, String.class);
+        List<MailLog> mailLogs = FastjsonUtils.fromJsonArray(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) {
+        // 没用到,暂无实现
+    }
+}

+ 156 - 0
src/main/java/com/uas/platform/b2c/common/base/service/impl/RestSmsServiceImpl.java

@@ -0,0 +1,156 @@
+package com.uas.platform.b2c.common.base.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.uas.message.common.domain.Page;
+import com.uas.message.common.domain.SimpleMessage;
+import com.uas.message.mail.domain.MailLog;
+import com.uas.message.sms.domain.SmsLog;
+import com.uas.message.sms.service.SmsService;
+import com.uas.platform.b2c.core.utils.FastjsonUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+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.util.CollectionUtils;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * 基于RestTemplate实现的短信息发送接口
+ * @author suntg
+ * @since 2017年10月20日15:13:23
+ */
+@Service
+public class RestSmsServiceImpl implements SmsService {
+
+    private RestTemplate restTemplate;
+
+    /**
+     * 短信服务主机地址
+     */
+    private static final String SMS_CONSOLE_HOST = "http://10.10.100.23:28029/";
+
+    /**
+     * 发送短信给单个人url
+     */
+    private static final String SMS_SEND_URL = SMS_CONSOLE_HOST  + "sms/send";
+
+    /**
+     * 发送短信给多个人 url
+     */
+    private static final String SMS_SEND_MANY_URL = SMS_CONSOLE_HOST + "sms/send/o2m";
+
+    @Autowired
+    public RestSmsServiceImpl(RestTemplate restTemplate) {
+        this.restTemplate = restTemplate;
+    }
+
+    @Override
+    public List<Map<String, Object>> sendByDefault(String[] strings, String s) {
+        return null;
+    }
+
+    @Override
+    public SmsLog send(SimpleMessage simpleMessage) {
+        return null;
+    }
+
+    @Override
+    public List<SmsLog> sendAll(SimpleMessage simpleMessage) {
+        return null;
+    }
+
+    /**
+     * 发送短信给个人
+     * @param templateId
+     * @param receiver
+     * @param params
+     * @return
+     */
+    @Override
+    public SmsLog send(String templateId, String receiver, 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<SmsLog> responseEntity = restTemplate.postForEntity(SMS_SEND_URL, formEntity, SmsLog.class);
+        return responseEntity.getBody();
+    }
+
+    /**
+     * 发送短信给多个人
+     * @param templateId
+     * @param receivers
+     * @param params
+     * @return
+     */
+    @Override
+    public List<SmsLog> sendAll(String templateId, Set<String> receivers, 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(SMS_SEND_MANY_URL, formEntity, String.class);
+        List<SmsLog> mailLogs = FastjsonUtils.fromJsonArray(responseEntity.getBody(), SmsLog.class);
+        return mailLogs;
+    }
+
+    /**
+     * 发送多个发送请求
+     * @param list
+     * @return
+     */
+    @Override
+    public List<SmsLog> sendAll(List<SimpleMessage> list) {
+        if(! CollectionUtils.isEmpty(list)) {
+            for(SimpleMessage message : list) {
+                send(message.getTemplateId(), message.getReceiver(), message.getParams());
+            }
+        }
+        return null;
+    }
+
+    @Override
+    public Page<SmsLog> findLogs(int i, int i1) {
+        return null;
+    }
+
+    @Override
+    public Page<SmsLog> findLogs(String s, int i, int i1) {
+        return null;
+    }
+
+    @Override
+    public Page<SmsLog> findLogs(boolean b, int i, int i1) {
+        return null;
+    }
+
+    @Override
+    public Page<SmsLog> findLogs(String s, String s1, Boolean aBoolean, int i, int i1) {
+        return null;
+    }
+
+    @Override
+    public void deleteLogs(String s) {
+
+    }
+}

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

@@ -19,12 +19,5 @@
 		interface="com.uas.search.service.OrderSearchService" timeout="10000"
 		group="${dubbo.group}" />
 
-	<!-- 邮件服务 -->
-	<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="10000" />
 
 </beans>