Browse Source

将发送短信方法提取成公共方法

hejq 8 years ago
parent
commit
30e1885528

+ 6 - 21
src/main/java/com/uas/platform/b2b/erp/service/impl/TenderServiceImpl.java

@@ -1,6 +1,5 @@
 package com.uas.platform.b2b.erp.service.impl;
 
-import com.uas.sso.util.AccountUtils;
 import com.uas.platform.b2b.core.util.ContextUtils;
 import com.uas.platform.b2b.core.util.ThreadTask;
 import com.uas.platform.b2b.dao.*;
@@ -13,11 +12,12 @@ import com.uas.platform.b2b.event.PurchaseTenderSaveReleaseEvent;
 import com.uas.platform.b2b.model.*;
 import com.uas.platform.b2b.service.AttachService;
 import com.uas.platform.b2b.support.MessageConf;
+import com.uas.platform.b2b.support.SendMsgUtils;
 import com.uas.platform.b2b.support.SystemSession;
-import com.uas.platform.b2b.temporary.model.*;
+import com.uas.platform.b2b.temporary.model.DecideTender;
+import com.uas.platform.b2b.temporary.model.PurcTenderProd;
+import com.uas.platform.b2b.temporary.model.TenderContactInfo;
 import com.uas.platform.core.model.Constant;
-import com.uas.platform.core.util.HttpUtil;
-import com.uas.platform.core.util.serializer.FlexJsonUtils;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
@@ -102,11 +102,6 @@ public class TenderServiceImpl implements TenderService {
     @Autowired
     private VendorService vendorService;
 
-    /**
-     * 短信接口
-     */
-    final String messageUrl = "http://message.ubtob.com/sms/send";
-
     /**
      *  发布和保存
      * @param purchaseTender
@@ -606,21 +601,11 @@ public class TenderServiceImpl implements TenderService {
         List<SaleTender> saleTenders = saleTenderDao.findByEnUUAndCode(tender.getEnUU(), tender.getCode());
         for (SaleTender saleTender : saleTenders) {
             try {
-                SmsMessage sms = new SmsMessage();
                 List<Object> obj = new ArrayList<>();
-                // 招标方
-                obj.add(saleTender.getEnUU());
-                obj.add(saleTender.getEnterprise().getEnName());
-//                obj.add(saleTender.getRecorder().getUserName());
-                obj.add(saleTender.getEnterpriseBaseInfo().getEnName());
-                obj.add(saleTender.getCode());
                 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                 String date = dateFormat.format(saleTender.getDate());
-                obj.add(date);
-                sms.setParams(obj);
-                sms.setReceiver(saleTender.getUserTel());
-                sms.setTemplateId(messageConf.getMsgTenderForB2B());
-                HttpUtil.sendPost(messageUrl, FlexJsonUtils.toJsonDeep(sms));
+                String[] args = {String.valueOf(saleTender.getEnUU()), saleTender.getEnterprise().getEnName(), saleTender.getEnterpriseBaseInfo().getEnName(), saleTender.getCode(), date};
+                SendMsgUtils.sednMsg(saleTender.getUserTel(), messageConf.getMsgTenderForB2B(), args);
             } catch (Exception e) {
                 map.put("error", "发送知会短信失败,单号:" + tender.getCode());
                 e.printStackTrace();

+ 10 - 18
src/main/java/com/uas/platform/b2b/erp/service/impl/VendorServiceImpl.java

@@ -1,8 +1,6 @@
 package com.uas.platform.b2b.erp.service.impl;
 
 import com.alibaba.dubbo.common.utils.CollectionUtils;
-import com.uas.sso.entity.PartnershipRecordView;
-import com.uas.sso.util.AccountUtils;
 import com.uas.message.mail.service.MailService;
 import com.uas.platform.b2b.dao.CommonDao;
 import com.uas.platform.b2b.dao.InvitationRecordDao;
@@ -14,15 +12,16 @@ import com.uas.platform.b2b.erp.support.ErpBufferedLogger;
 import com.uas.platform.b2b.model.InvitationRecord;
 import com.uas.platform.b2b.model.Vendor;
 import com.uas.platform.b2b.support.MessageConf;
+import com.uas.platform.b2b.support.SendMsgUtils;
 import com.uas.platform.b2b.support.SysConf;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.temporary.model.PartnershipRecord;
-import com.uas.platform.b2b.temporary.model.SmsMessage;
 import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.Status;
-import com.uas.platform.core.util.HttpUtil;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
+import com.uas.sso.entity.PartnershipRecordView;
+import com.uas.sso.util.AccountUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -91,9 +90,9 @@ public class VendorServiceImpl implements VendorService{
                     record = info.covert();
                     //发送邮件前先进行判断,每天每个供应商只发送一封邮件(判断在erp已经做了,这边暂时不判断)
                     List<ErpInviteRecord> inviteRecords = getRecord(record.getVendname().trim());
-                    if(CollectionUtils.isEmpty(inviteRecords)) {
+                    if (CollectionUtils.isEmpty(inviteRecords)) {
                         // 发送邮件或短信成功才进行保存
-                        if(record.getVenduseremail() != null && record.getVenduseremail().contains("@") && !record.getVenduseremail().matches(CHINESE_REGEXP)) {
+                        if (record.getVenduseremail() != null && record.getVenduseremail().contains("@") && !record.getVenduseremail().matches(CHINESE_REGEXP)) {
                             Map<String, Object> model = new HashMap<String, Object>();
                             // 邮件信息
                             if (null != record.getVendusername()) {
@@ -115,17 +114,10 @@ public class VendorServiceImpl implements VendorService{
                                 e.printStackTrace();
                             }
                         }
-                        if(record.getVendusertel() != null && record.getVendusertel().matches(TEL_REGEXP)) {
+                        if (record.getVendusertel() != null && record.getVendusertel().matches(TEL_REGEXP)) {
                             try {
-                                SmsMessage sms = new SmsMessage();
-                                List<Object> obj = new ArrayList<Object>();
-                                obj.add(record.getVendusername());
-                                obj.add(record.getVendname());
-                                obj.add(info.getEn_adminname() + "(" + info.getEn_name()  + ")");
-                                sms.setParams(obj);
-                                sms.setReceiver(record.getVendusertel());
-                                sms.setTemplateId(messageConf.getMsgInvitationForERP());
-                                HttpUtil.sendPost(messageUrl, FlexJsonUtils.toJsonDeep(sms));
+                                String[] args = {record.getVendusername(), record.getVendname(), info.getEn_adminname() + "(" + info.getEn_name()  + ")"}
+;                               SendMsgUtils.sednMsg(record.getVendusertel(), messageConf.getMsgInvitationForERP(), args);
                                 record.setStatus(Status.DOWNLOADED.value());
                                 msgstatus = true;
                                 logger.log("erp邀请供应商注册", "短信邀请:" + record.getVendusertel(), 1);
@@ -133,13 +125,13 @@ public class VendorServiceImpl implements VendorService{
                                 e.printStackTrace();
                             }
                         }
-                        if(tplstatus || msgstatus) {
+                        if (tplstatus || msgstatus) {
                             invitationRecordDao.save(record);
                             //记录状态
                             addNewRecord(record.getVendusertel(), record.getVenduseremail(), sdf.format(new Date()), record.getVendname());
                         }
                         // 同步一个数据到账户中心(不是必须,不判断状态)
-                        if(record.getId() == null) {// 新增时候才进行同步
+                        if (record.getId() == null) {// 新增时候才进行同步
                             try {
                                 record.setUser(null);
                                 record.setId(null);

+ 7 - 34
src/main/java/com/uas/platform/b2b/service/impl/InvitationRecordServiceImpl.java

@@ -1,9 +1,7 @@
 package com.uas.platform.b2b.service.impl;
 
-import com.uas.platform.b2b.core.util.ThreadUtils;
-import com.uas.platform.b2b.support.SysConf;
-import com.uas.sso.util.AccountUtils;
 import com.uas.message.mail.service.MailService;
+import com.uas.platform.b2b.core.util.ThreadUtils;
 import com.uas.platform.b2b.dao.EnterpriseDao;
 import com.uas.platform.b2b.dao.InvitationRecordDao;
 import com.uas.platform.b2b.dao.ProductDao;
@@ -15,13 +13,14 @@ import com.uas.platform.b2b.model.User;
 import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.service.InvitationRecordService;
 import com.uas.platform.b2b.support.MessageConf;
+import com.uas.platform.b2b.support.SendMsgUtils;
+import com.uas.platform.b2b.support.SysConf;
 import com.uas.platform.b2b.support.SystemSession;
-import com.uas.platform.b2b.temporary.model.SmsMessage;
 import com.uas.platform.core.model.Constant;
-import com.uas.platform.core.util.HttpUtil;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
 import com.uas.search.b2b.model.PageParams;
 import com.uas.search.b2b.model.SPage;
+import com.uas.sso.util.AccountUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.ui.ModelMap;
@@ -62,11 +61,6 @@ public class InvitationRecordServiceImpl implements InvitationRecordService {
      */
     final String spaceRegisterSign = "enterpriseRegistration";
 
-	/**
-	 * 短信接口
-	 */
-	final String messageUrl = "http://message.ubtob.com/sms/send";
-
 	@Override
 	public ModelMap invite(InvitationRecord record) {
 		ModelMap map = new ModelMap();
@@ -173,30 +167,9 @@ public class InvitationRecordServiceImpl implements InvitationRecordService {
      * @param record 邀请记录
      */
     private void sendMsg(InvitationRecord record) {
-        try {
-            SmsMessage sms = new SmsMessage();
-            List<Object> obj = new ArrayList<Object>();
-            obj.add(record.getVendusername());
-            obj.add(record.getVendname());
-            obj.add(SystemSession.getUser().getUserName() + "("
-                    + SystemSession.getUser().getEnterprise().getEnName() + ")");
-            sms.setParams(obj);
-            sms.setReceiver(record.getVendusertel());
-            sms.setTemplateId(messageConf.getMsgInvitationForB2B());
-            final SmsMessage message = sms;
-            ThreadUtils.task(new Runnable() {
-                @Override
-                public void run() {
-                    try {
-                        HttpUtil.sendPost(messageUrl, FlexJsonUtils.toJsonDeep(message));
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
-                }
-            }).run();
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+    	String[] args = {record.getVendusername(), record.getVendname(), SystemSession.getUser().getUserName() + "("
+				+ SystemSession.getUser().getEnterprise().getEnName() + ")"};
+		SendMsgUtils.sednMsg(record.getVendusertel(), messageConf.getMsgAddPartForB2B(), args);
     }
 
 

+ 0 - 27
src/main/java/com/uas/platform/b2b/service/impl/PurchaseInquiryServiceImpl.java

@@ -1,13 +1,11 @@
 package com.uas.platform.b2b.service.impl;
 
-import com.alibaba.fastjson.JSON;
 import com.uas.message.mail.service.MailService;
 import com.uas.platform.b2b.core.util.*;
 import com.uas.platform.b2b.dao.*;
 import com.uas.platform.b2b.erp.model.Inquiry;
 import com.uas.platform.b2b.erp.model.QuotationDown;
 import com.uas.platform.b2b.erp.model.QuotationDownDetail;
-import com.uas.platform.b2b.erp.support.ErpBufferedLogger;
 import com.uas.platform.b2b.event.PurchaseInquiryItemDecideReleaseEvent;
 import com.uas.platform.b2b.event.PurchaseInquiryItemInvalidReleaseEvent;
 import com.uas.platform.b2b.event.PurchaseInquiryItemReplyReleaseEvent;
@@ -23,12 +21,10 @@ import com.uas.platform.b2b.support.MessageConf;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.XingePusher;
 import com.uas.platform.b2b.temporary.model.InquiryMessage;
-import com.uas.platform.b2b.temporary.model.SmsMessage;
 import com.uas.platform.b2b.temporary.model.UserInfo;
 import com.uas.platform.core.concurrent.IRunnable;
 import com.uas.platform.core.exception.IllegalOperatorException;
 import com.uas.platform.core.exception.IllegalStatusException;
-import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.Status;
@@ -120,8 +116,6 @@ public class PurchaseInquiryServiceImpl implements PurchaseInquiryService {
 	@Autowired
 	private PurchaseInquiryTempDao inquiryTempDao;
 
-	private final static ErpBufferedLogger logger = BufferedLoggerManager.getLogger(ErpBufferedLogger.class);
-
     static final String TEL_REGEXP = "^((\\(\\d{3}\\))|(\\d{3}\\-))?(13|15|18|17)\\d{9}$";
 
     static final String EMAIL_REGEXP = "\\w[-\\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\\.)+[A-Za-z]{2,14}";
@@ -278,12 +272,6 @@ public class PurchaseInquiryServiceImpl implements PurchaseInquiryService {
 				for (PurchaseInquiry inquiry : inquiries) {
 					// 一个询价单,给一个企业只发一封邮件
 					Set<Long> enUUs = new HashSet<>();
-					// 短信设置
-					SmsMessage sms = new SmsMessage();
-					List<Object> obj = new ArrayList<Object>();
-					obj.add(inquiry.getEnterprise().getEnName());
-					obj.add(inquiry.getCode());
-					sms.setParams(obj);
 					for (PurchaseInquiryItem inquiryItem : inquiry.getInquiryItems()) {
 						if (null != inquiryItem.getVendUU() && !enUUs.contains(inquiryItem.getVendUU())) {
 							// 查找业务员邮箱
@@ -329,7 +317,6 @@ public class PurchaseInquiryServiceImpl implements PurchaseInquiryService {
 									try {
 										// 调用自动询价消息模版id
 										mailService.send(messageConf.getTplAutoInquiryForB2B(), userEmail.getEmemail(), model);
-										System.out.println("发送邮件成功:" + JSON.toJSON(userEmail));
 										// 线程内无法访问Systemsession,会报nullPoint,采用存储过程
 										noticeDao.saveErpLog(userName, userIp, enUU, userUU, "发送询价单通知邮件", "发送成功,询价单号" + inquiry.getCode() + ",接收邮箱:" + userEmail.getEmemail());
 									} catch (Exception e) {
@@ -338,20 +325,6 @@ public class PurchaseInquiryServiceImpl implements PurchaseInquiryService {
 									}
 								}
 							}
-							// 发短信
-//							for (UserInfo userTel : userTels) {
-//								if(null != userTel.getEmphone() && userTel.getEmphone().matches(TEL_REGEXP)) {//手机号判断
-//                                    try {
-//                                        sms.setReceiver(userTel.getEmphone());
-//                                        sms.setTemplateId(messageConf.getMsgAutoInquiryForB2B());
-//                                        PSHttpUtils.sendPost(messageConf.getMessageUrl(), FlexJsonUtils.toJsonDeep(sms));
-//										noticeDao.saveErpLog(userName, userIp, enUU, userUU, "发送询价单通知短信", "发送成功,询价单号" + inquiry.getCode() + ",接收手机:" + userTel.getEmphone());
-//                                    } catch (Exception e) {
-//										noticeDao.saveErpLog(userName, userIp, enUU, userUU, "发送询价单通知短信", "发送失败,询价单号" + inquiry.getCode() + ",接收手机:" + userTel.getEmphone());
-//										e.printStackTrace();
-//                                    }
-//                                }
-//							}
 							enUUs.add(inquiryItem.getVendUU());
 						}
 					}

+ 43 - 0
src/main/java/com/uas/platform/b2b/support/SendMsgUtils.java

@@ -0,0 +1,43 @@
+package com.uas.platform.b2b.support;
+
+import com.uas.platform.b2b.core.util.ThreadUtils;
+import com.uas.platform.b2b.temporary.model.SmsMessage;
+import com.uas.platform.core.util.HttpUtil;
+import com.uas.platform.core.util.serializer.FlexJsonUtils;
+
+/**
+ * 短信发送配置
+ *
+ * Created by hejq on 2018-05-14.
+ */
+public class SendMsgUtils {
+
+    /**
+     * 短信接口
+     */
+    final static String messageUrl = "http://message.ubtob.com/sms/send";
+
+    /**
+     * 发送短信
+     *
+     * @param receiver 短信接收人,电话号码
+     * @param tempId 短信模板地址
+     * @param args 消息内容
+     */
+    public static void sednMsg(final String receiver, final String tempId, final String... args) {
+        ThreadUtils.task(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    SmsMessage sms = new SmsMessage();
+                    sms.setParams(args);
+                    sms.setReceiver(receiver);
+                    sms.setTemplateId(tempId);
+                    HttpUtil.sendPost(messageUrl, FlexJsonUtils.toJsonDeep(sms));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }).run();
+    }
+}

+ 3 - 5
src/main/java/com/uas/platform/b2b/temporary/model/SmsMessage.java

@@ -1,7 +1,5 @@
 package com.uas.platform.b2b.temporary.model;
 
-import java.util.List;
-
 public class SmsMessage {
 
 	/**
@@ -12,7 +10,7 @@ public class SmsMessage {
 	/**
 	 * 参数
 	 */
-	private List<Object> params;
+	private String[] params;
 
 	/**
 	 * 模板id
@@ -27,11 +25,11 @@ public class SmsMessage {
 		this.receiver = receiver;
 	}
 
-	public List<Object> getParams() {
+	public String[] getParams() {
 		return params;
 	}
 
-	public void setParams(List<Object> params) {
+	public void setParams(String[] params) {
 		this.params = params;
 	}
 

+ 10 - 64
src/main/java/com/uas/platform/b2b/v2/service/impl/InviteRecordServiceImpl.java

@@ -2,8 +2,6 @@ package com.uas.platform.b2b.v2.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.uas.sso.entity.PartnershipRecordView;
-import com.uas.sso.util.AccountUtils;
 import com.uas.platform.b2b.core.util.ThreadUtils;
 import com.uas.platform.b2b.dao.CommonDao;
 import com.uas.platform.b2b.dao.InvitationRecordDao;
@@ -16,23 +14,25 @@ import com.uas.platform.b2b.service.EnterpriseService;
 import com.uas.platform.b2b.service.InvitationRecordService;
 import com.uas.platform.b2b.service.UserService;
 import com.uas.platform.b2b.support.MessageConf;
-import com.uas.platform.b2b.temporary.model.SmsMessage;
+import com.uas.platform.b2b.support.SendMsgUtils;
 import com.uas.platform.b2b.v2.model.Invitation;
 import com.uas.platform.b2b.v2.service.InviteRecordService;
 import com.uas.platform.core.exception.IllegalOperatorException;
 import com.uas.platform.core.exception.NotFoundException;
 import com.uas.platform.core.model.Constant;
-import com.uas.platform.core.util.HttpUtil;
-import com.uas.platform.core.util.serializer.FlexJsonUtils;
 import com.uas.search.b2b.model.PageParams;
 import com.uas.search.b2b.model.SPage;
+import com.uas.sso.entity.PartnershipRecordView;
+import com.uas.sso.util.AccountUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.ui.ModelMap;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 
 /**
  * Created by hejq on 2018-03-22.
@@ -61,11 +61,6 @@ public class InviteRecordServiceImpl implements InviteRecordService {
     @Autowired
     private UserDao userDao;
 
-    /**
-     * 短信接口
-     */
-    final String messageUrl = "http://message.ubtob.com/sms/send";
-
     /**
      * 通过填写的名称检验企业是否已注册
      *
@@ -270,34 +265,6 @@ public class InviteRecordServiceImpl implements InviteRecordService {
         return map;
     }
 
-    /**
-     * 发送短信通知联系人
-     *
-     * @param enName 邀请企业名称
-     * @param contactTel 联系人
-     * @param userName 管理员姓名
-     * @param adnimTel 管理员电话
-     */
-    private void sendMsgToContact(final String enName, final String contactTel, final String userName, final String adnimTel) {
-        ThreadUtils.task(new Runnable() {
-            @Override
-            public void run() {
-                try {
-                    SmsMessage sms = new SmsMessage();
-                    List<Object> obj = new ArrayList<Object>();
-                    obj.add(enName);
-                    obj.add(userName + "(" + adnimTel + ")");
-                    sms.setParams(obj);
-                    sms.setReceiver(contactTel);
-                    sms.setTemplateId(messageConf.getMsgAddPartNoticeContact());
-                    HttpUtil.sendPost(messageUrl, FlexJsonUtils.toJsonDeep(sms));
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
-        }).run();
-    }
-
     /**
      * 发送短信通知管理员
      *
@@ -305,22 +272,8 @@ public class InviteRecordServiceImpl implements InviteRecordService {
      * @param adnimTel 管理员联系方式
      */
     private void sendMsgToManager(final String enName, final String adnimTel) {
-        ThreadUtils.task(new Runnable() {
-            @Override
-            public void run() {
-                try {
-                    SmsMessage sms = new SmsMessage();
-                    List<Object> obj = new ArrayList<Object>();
-                    obj.add(enName);
-                    sms.setParams(obj);
-                    sms.setReceiver(adnimTel);
-                    sms.setTemplateId(messageConf.getMsgAddPartNoticeManager());
-                    HttpUtil.sendPost(messageUrl, FlexJsonUtils.toJsonDeep(sms));
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
-        }).run();
+        String[] args = {enName};
+        SendMsgUtils.sednMsg(adnimTel, messageConf.getMsgInvitationForB2B(), args);
     }
 
     /**
@@ -401,15 +354,8 @@ public class InviteRecordServiceImpl implements InviteRecordService {
             @Override
             public void run() {
                 try {
-                    SmsMessage sms = new SmsMessage();
-                    List<Object> obj = new ArrayList<Object>();
-                    obj.add(record.getVendusername());
-                    obj.add(record.getVendname());
-                    obj.add(custUser.getUserName() + "(" + custEn.getEnName() + ")");
-                    sms.setParams(obj);
-                    sms.setReceiver(record.getVendusertel());
-                    sms.setTemplateId(messageConf.getMsgInvitationForB2B());
-                    HttpUtil.sendPost(messageUrl, FlexJsonUtils.toJsonDeep(sms));
+                    String[] args = {record.getVendusername(), record.getVendname(), custUser.getUserName() + "(" + custEn.getEnName() + ")"};
+                    SendMsgUtils.sednMsg(record.getVendusertel(), messageConf.getMsgInvitationForB2B(), args);
                 } catch (Exception e) {
                     e.printStackTrace();
                 }