Browse Source

更新邀请注册记录相关功能

hejq 8 years ago
parent
commit
52af754764

+ 56 - 0
src/main/java/com/uas/platform/b2b/model/InvitationRecord.java

@@ -154,6 +154,30 @@ public class InvitationRecord implements Serializable {
 	@Transient
 	private String inviteEnName;
 
+    /**
+     * 地址
+     */
+	@Transient
+    private String enAddress;
+
+    /**
+     * 法人
+     */
+	@Transient
+    private String enCorporation;
+
+    /**
+     * 管理员姓名
+     */
+	@Transient
+    private String adminName;
+
+    /**
+     * 企业电话
+     */
+	@Transient
+    private String enTel;
+
 	public Long getId() {
 		return id;
 	}
@@ -329,4 +353,36 @@ public class InvitationRecord implements Serializable {
 	public void setInviteEnName(String inviteEnName) {
 		this.inviteEnName = inviteEnName;
 	}
+
+    public String getEnAddress() {
+        return enAddress;
+    }
+
+    public void setEnAddress(String enAddress) {
+        this.enAddress = enAddress;
+    }
+
+    public String getEnCorporation() {
+        return enCorporation;
+    }
+
+    public void setEnCorporation(String enCorporation) {
+        this.enCorporation = enCorporation;
+    }
+
+    public String getAdminName() {
+        return adminName;
+    }
+
+    public void setAdminName(String adminName) {
+        this.adminName = adminName;
+    }
+
+    public String getEnTel() {
+        return enTel;
+    }
+
+    public void setEnTel(String enTel) {
+        this.enTel = enTel;
+    }
 }

+ 15 - 0
src/main/java/com/uas/platform/b2b/service/InvitationRecordService.java

@@ -69,4 +69,19 @@ public interface InvitationRecordService {
 	 * @return
 	 */
 	List<InvitationRecord> findByVendUU(Long enuu);
+
+    /**
+     * 发送邮件通知
+     *
+     * @param record 邀请记录
+     */
+	void sendEmail(final InvitationRecord record);
+
+    /**
+     * 同步到账户中心
+     *
+     * @param record 邀请记录
+     * @param businessCode 营业执照
+     */
+    void syncToAccount(InvitationRecord record, String businessCode);
 }

+ 144 - 79
src/main/java/com/uas/platform/b2b/service/impl/InvitationRecordServiceImpl.java

@@ -1,5 +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.dao.EnterpriseDao;
@@ -25,6 +27,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.ui.ModelMap;
 import org.springframework.util.CollectionUtils;
 
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 @Service
@@ -51,6 +54,14 @@ public class InvitationRecordServiceImpl implements InvitationRecordService {
 	@Autowired
     private ProductDao productDao;
 
+	@Autowired
+    private SysConf sysConf;
+
+    /**
+     * 企业注册标志
+     */
+    final String spaceRegisterSign = "enterpriseRegistration";
+
 	/**
 	 * 短信接口
 	 */
@@ -61,7 +72,6 @@ public class InvitationRecordServiceImpl implements InvitationRecordService {
 		ModelMap map = new ModelMap();
 		List<Enterprise> enterprises = enterpriseDao.findByEnName(record.getVendname());
 		if (!CollectionUtils.isEmpty(enterprises)) {
-//			throw new IllegalAccessError("该企业已注册!");
 			map.put("error", "该企业已注册!");
 			return map;
 		}
@@ -80,16 +90,6 @@ public class InvitationRecordServiceImpl implements InvitationRecordService {
 				enuu = record.getEnuu();
 			}
 		}
-		Map<String, Object> model = new HashMap<String, Object>();
-		// 邮件信息
-		if (null != record.getVendusername()) {
-			model.put("vendorusername", record.getVendusername().trim());
-		}
-		model.put("vendorname", record.getVendname().trim());
-		model.put("custname", SystemSession.getUser().getUserName() + "("
-				+ SystemSession.getUser().getEnterprise().getEnName() + ")");
-		model.put("inviteuid", SystemSession.getUser().getEnterprise().getEnBussinessCode());
-		model.put("inviteUserCode", SystemSession.getUser().getUserUU());
 		// 先判断记录
 		InvitationRecord oldrecord = invitationRecordDao.findByUseruuAndVendname(useruu, record.getVendname());
 			if (record.getId() != null) { // 如果是已存在的,直接替换
@@ -112,27 +112,10 @@ public class InvitationRecordServiceImpl implements InvitationRecordService {
 			}
 			record = invitationRecordDao.save(oldrecord);
 			if (oldrecord.getVenduseremail() != null) {
-				try {
-					mailService.send(messageConf.getTplInvitationForB2B(), record.getVenduseremail(), model);
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
+			    sendEmail(record);
 			}
-			if(oldrecord.getVendusertel()!=null){
-				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());
-					HttpUtil.sendPost(messageUrl, FlexJsonUtils.toJsonDeep(sms));
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
+			if (oldrecord.getVendusertel() != null) {
+				sendMsg(record);
 			}
 			map.put("success", "邀请已发送");
 		} else {
@@ -143,23 +126,10 @@ public class InvitationRecordServiceImpl implements InvitationRecordService {
 			record.setActive(Constant.NO);
 			record = invitationRecordDao.save(record);
 			if (record.getVenduseremail() != null) {
-				mailService.send(messageConf.getTplInvitationForB2B(), record.getVenduseremail(), model);
+				sendEmail(record);
 			}
 			if (record.getVendusertel() != null) {
-				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());
-					HttpUtil.sendPost(messageUrl, FlexJsonUtils.toJsonDeep(sms));
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
+				sendMsg(record);
 			}
 			if (record.getId() != null) {
 				map.put("success", "邀请已发送");
@@ -167,20 +137,104 @@ public class InvitationRecordServiceImpl implements InvitationRecordService {
 				map.put("error", "邀请发送失败");
 			}
 		}
-		// 同步一个数据到账户中心(不是必须,不判断状态)
-		try {
-			record.setUser(null);
-			record.setId(null);
-			record.setSamecount(null);
-			record.setVenduu(null);
-			record.setBussinesscode(SystemSession.getUser().getEnterprise().getEnBussinessCode());
-			AccountUtils.synchroInvitation(FlexJsonUtils.toJsonDeep(record));
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return map;
+        syncToAccount(record, SystemSession.getUser().getEnterprise().getEnBussinessCode());
+        return map;
 	}
 
+    /**
+     * 同步到账户中心
+     *
+     * @param record 邀请记录
+     * @param businessCode 营业执照
+     */
+    @Override
+    public void syncToAccount(InvitationRecord record, String businessCode) {
+        // 同步一个数据到账户中心(不是必须,不判断状态)
+        try {
+            record.setUser(null);
+            record.setId(null);
+            record.setSamecount(null);
+            record.setVenduu(null);
+            record.setBussinesscode(businessCode);
+            AccountUtils.synchroInvitation(FlexJsonUtils.toJsonDeep(record));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 发送短信通知
+     *
+     * @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();
+        }
+    }
+
+
+    /**
+     * 发送邮件通知
+     *
+     * @param record 邀请记录
+     */
+    @Override
+    public void sendEmail(final InvitationRecord record) {
+        Map<String, Object> model = new HashMap<String, Object>();
+        // 邮件信息
+        if (null != record.getVendusername()) {
+            model.put("vendorusername", record.getVendusername().trim());
+        }
+        Enterprise e = enterpriseDao.findOne(record.getEnuu());
+        User u = userDao.findOne(record.getUseruu());
+        model.put("vendorname", record.getVendname().trim());
+        model.put("custname", u.getUserName() + "(" + e.getEnName() + ")");
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+        String time = sdf.format(new Date());
+        String url = sysConf.getRegisterUrl();
+        if (url.contains(spaceRegisterSign)) {
+            url = url + "?inviteUserUU=" + record.getUseruu() + "&inviteSpaceUU=" + record.getEnuu()
+                    + "&invitationTime=" + time + "&source=" + record.getSource();
+        } else {
+            url = url + "/enterpriseRegistration?inviteUserUU=" + record.getUseruu() + "&inviteSpaceUU=" + record.getEnuu()
+                    + "&invitationTime=" + time + "&source=" + record.getSource();
+        }
+        model.put("registerUrl", url);
+        final Map<String, Object> modMap = model;
+        ThreadUtils.task(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    mailService.send(messageConf.getTplInvitationForB2B(), record.getVenduseremail(), modMap);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }).run();
+    }
+
 	@Override
 	public ModelMap reInvite(Long id) {
 		return invite(invitationRecordDao.findOne(id));
@@ -207,16 +261,7 @@ public class InvitationRecordServiceImpl implements InvitationRecordService {
             for (InvitationRecord record : invitatrecords.getContent()) {
             	if (null != record.getVenduu()) {
             		Enterprise e = enterpriseDao.findOne(record.getVenduu());
-					record.setProductNum(productDao.countByEnUU(record.getVenduu()));
-            		if (null != e.getInviteUU()) {
-            			Enterprise inviteEn = enterpriseDao.findOne(e.getInviteUU());
-            			record.setInviteEnName(inviteEn != null ? inviteEn.getEnName() : null);
-					}
-					if (null != e.getInviteUserUU()) {
-            			User inviteUser = userDao.findOne(e.getInviteUserUU());
-						record.setInviteUserName(inviteUser != null ? inviteUser.getUserName() : null);
-					}
-					record.setRegisterDate(e.getEnDate());
+					covert(record, e);
 				} else {
 					List<Enterprise> enters = enterpriseDao.findByEnName(record.getVendname());
 					if (!CollectionUtils.isEmpty(enters)) {
@@ -225,16 +270,7 @@ public class InvitationRecordServiceImpl implements InvitationRecordService {
 							record.setActive(Constant.YES);
 							record.setSamecount(enters.size());
 							record.setVenduu(e.getUu());
-							record.setRegisterDate(e.getEnDate());
-							record.setProductNum(productDao.countByEnUU(e.getUu()));
-							if (null != e.getInviteUU()) {
-								Enterprise inviteEn = enterpriseDao.findOne(e.getInviteUU());
-								record.setInviteEnName(inviteEn != null ? inviteEn.getEnName() : null);
-							}
-							if (null != e.getInviteUserUU()) {
-								User inviteUser = userDao.findOne(e.getInviteUserUU());
-								record.setInviteUserName(inviteUser != null ? inviteUser.getUserName() : null);
-							}
+							record = covert(record, e);
 						} else {
 							record.setActive(Constant.NO);
 							record.setSamecount(enters.size());
@@ -250,7 +286,36 @@ public class InvitationRecordServiceImpl implements InvitationRecordService {
 		return invitatrecords;
 	}
 
-	@Override
+    /**
+     * 将企业信息封装到邀请记录
+     *
+     * @param record 邀请记录
+     * @param e 企业信息
+     * @return
+     */
+    private InvitationRecord covert(InvitationRecord record, Enterprise e) {
+        record.setProductNum(productDao.countByEnUU(record.getVenduu()));
+        if (null != e.getInviteUU()) {
+            Enterprise inviteEn = enterpriseDao.findOne(e.getInviteUU());
+            record.setInviteEnName(inviteEn != null ? inviteEn.getEnName() : null);
+        }
+        if (null != e.getInviteUserUU()) {
+            User inviteUser = userDao.findOne(e.getInviteUserUU());
+            record.setInviteUserName(inviteUser != null ? inviteUser.getUserName() : null);
+        }
+        record.setRegisterDate(e.getEnDate());
+        record.setEnAddress(e.getEnAddress());
+        record.setEnCorporation(e.getEnCorporation());
+        if (null != e.getEnAdminuu()) {
+            User admin = userDao.findOne(e.getEnAdminuu());
+            if (null != admin) {
+                record.setAdminName(admin.getUserName());
+            }
+        }
+        return record;
+    }
+
+    @Override
 	public List<EnterpriseBaseInfo> findByName(String name) {
 		List<EnterpriseBaseInfo> baseInfoList = new ArrayList<EnterpriseBaseInfo>();
 		List<Enterprise> enterprises = enterpriseDao.findByName(name);

+ 2 - 48
src/main/java/com/uas/platform/b2b/v2/service/impl/InviteRecordServiceImpl.java

@@ -4,7 +4,6 @@ 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.message.mail.service.MailService;
 import com.uas.platform.b2b.core.util.ThreadUtils;
 import com.uas.platform.b2b.dao.CommonDao;
 import com.uas.platform.b2b.dao.InvitationRecordDao;
@@ -59,9 +58,6 @@ public class InviteRecordServiceImpl implements InviteRecordService {
     @Autowired
     private MessageConf messageConf;
 
-    @Autowired
-    private MailService mailService;
-
     @Autowired
     private UserDao userDao;
 
@@ -239,8 +235,6 @@ public class InviteRecordServiceImpl implements InviteRecordService {
                 @Override
                 public void run() {
                     try {
-//                        smsService.send(messageConf.getMsgAddPartForB2B(), adminTel1,
-//                                new Object[] { userName, custName, enName });
                         // 发送给管理员
                         sendMsgToManager(enName, adminTel1);
                     } catch (Exception e) {
@@ -392,17 +386,7 @@ public class InviteRecordServiceImpl implements InviteRecordService {
                 throw new IllegalOperatorException("邀请发送失败");
             }
         }
-        // 同步一个数据到账户中心(不是必须,不判断状态)
-        try {
-            record.setUser(null);
-            record.setId(null);
-            record.setSamecount(null);
-            record.setVenduu(null);
-            record.setBussinesscode(custEn.getEnBussinessCode());
-            AccountUtils.synchroInvitation(FlexJsonUtils.toJsonDeep(record));
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        invitationRecordService.syncToAccount(record, custEn.getEnBussinessCode());
         return map;
     }
 
@@ -472,7 +456,7 @@ public class InviteRecordServiceImpl implements InviteRecordService {
                 invite(record);
                 // 发送邮件
                 if (null != record.getVenduseremail() && record.getVenduseremail().contains("@")) {
-                    sendEmail(record);
+                    invitationRecordService.sendEmail(record);
                 }
                 size++;
                 if (successStr.length() > 0) {
@@ -496,36 +480,6 @@ public class InviteRecordServiceImpl implements InviteRecordService {
         return map;
     }
 
-    /**
-     * 发送邮件通知
-     *
-     * @param record
-     */
-    private void sendEmail(final InvitationRecord record) {
-        Map<String, Object> model = new HashMap<String, Object>();
-        // 邮件信息
-        if (null != record.getVendusername()) {
-            model.put("vendorusername", record.getVendusername().trim());
-        }
-        Enterprise e = enterpriseService.findByEnUU(record.getEnuu());
-        User u = userDao.findOne(record.getUseruu());
-        model.put("vendorname", record.getVendname().trim());
-        model.put("custname", u.getUserName() + "(" + e.getEnName() + ")");
-        model.put("inviteuid", e.getEnBussinessCode());
-        model.put("inviteUserCode", u.getUserUU());
-        final Map<String, Object> modMap = model;
-        ThreadUtils.task(new Runnable() {
-            @Override
-            public void run() {
-                try {
-                    mailService.send(messageConf.getTplInvitationForB2B(), record.getVenduseremail(), modMap);
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
-        }).run();
-    }
-
     /**
      * 更新邀请注册记录企业信息
      *