Browse Source

邀请注册相关问题的处理

hejq 8 years ago
parent
commit
82268d6276

+ 2 - 2
src/main/java/com/uas/platform/b2b/controller/InvitationRecordController.java

@@ -156,8 +156,8 @@ public class InvitationRecordController {
 	private ModelMap setenterprise() {
         String url = ContextUtils.getBean(SysConf.class).getRegisterUrl();
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-        url = url + "?inviteUserCode=" + SystemSession.getUser().getUserUU() + "&inviteuid="
-                + SystemSession.getUser().getEnterprise().getEnBussinessCode() + "&invitationTime=" + sdf.format(new Date()) + "&source=B2B";
+        url = url + "?inviteUserUU=" + SystemSession.getUser().getUserUU() + "&inviteSpaceUU="
+                + SystemSession.getUser().getEnterprise().getUu() + "&invitationTime=" + sdf.format(new Date()) + "&source=B2B";
         logger.log("邀请注册", "获取邀请链接", url);
 		return new ModelMap("url", url);
 	}

+ 8 - 0
src/main/java/com/uas/platform/b2b/dao/InvitationRecordDao.java

@@ -45,4 +45,12 @@ public interface InvitationRecordDao
 	 * @return
 	 */
 	List<InvitationRecord> findByVendname(String vednName);
+
+	/**
+	 * 通过注册UU号查询邀请记录
+	 *
+	 * @param enuu uu号
+	 * @return
+	 */
+    List<InvitationRecord> findByVenduu(Long enuu);
 }

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

@@ -142,6 +142,18 @@ public class InvitationRecord implements Serializable {
 	@Transient
 	private Date registerDate;
 
+	/**
+	 * 邀请注册的人,记录是从哪个链接去注册的
+	 */
+	@Transient
+	private String inviteUserName;
+
+	/**
+	 * 邀请注册的企业,记录是从哪个链接去注册的
+	 */
+	@Transient
+	private String inviteEnName;
+
 	public Long getId() {
 		return id;
 	}
@@ -301,4 +313,20 @@ public class InvitationRecord implements Serializable {
     public void setRegisterDate(Date registerDate) {
         this.registerDate = registerDate;
     }
+
+	public String getInviteUserName() {
+		return inviteUserName;
+	}
+
+	public void setInviteUserName(String inviteUserName) {
+		this.inviteUserName = inviteUserName;
+	}
+
+	public String getInviteEnName() {
+		return inviteEnName;
+	}
+
+	public void setInviteEnName(String inviteEnName) {
+		this.inviteEnName = inviteEnName;
+	}
 }

+ 8 - 1
src/main/java/com/uas/platform/b2b/service/InvitationRecordService.java

@@ -1,6 +1,5 @@
 package com.uas.platform.b2b.service;
 
-import com.uas.platform.b2b.model.Enterprise;
 import com.uas.platform.b2b.model.EnterpriseBaseInfo;
 import com.uas.platform.b2b.model.InvitationRecord;
 import com.uas.search.b2b.model.PageParams;
@@ -62,4 +61,12 @@ public interface InvitationRecordService {
 	 * 通过被邀请企业的名称查询邀请记录
 	 */
 	List<InvitationRecord> findbyVendName(String name);
+
+	/**
+	 * 通过注册UU号查询邀请记录
+	 *
+	 * @param enuu 注册UU号
+	 * @return
+	 */
+	List<InvitationRecord> findByVendUU(Long enuu);
 }

+ 50 - 17
src/main/java/com/uas/platform/b2b/service/impl/InvitationRecordServiceImpl.java

@@ -205,23 +205,45 @@ public class InvitationRecordServiceImpl implements InvitationRecordService {
 		}
 		if (!CollectionUtils.isEmpty(invitatrecords.getContent())) {
             for (InvitationRecord record : invitatrecords.getContent()) {
-                List<Enterprise> enters = enterpriseDao.findByEnName(record.getVendname());
-                if (!CollectionUtils.isEmpty(enters)) {
-                    if (enters.size() == 1) {
-                        record.setActive(Constant.YES);
-                        record.setSamecount(enters.size());
-                        record.setVenduu(enters.get(0).getUu());
-                        record.setRegisterDate(enters.get(0).getEnDate());
-						record.setProductNum(productDao.countByEnUU(enters.get(0).getUu()));
-                    } else {
-                        record.setActive(Constant.NO);
-                        record.setSamecount(enters.size());
-                    }
-                } else {
-                    record.setActive(Constant.NO);
-                    record.setSamecount(enters.size());
-                }
-                invitationRecordDao.save(record);
+            	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);
+					}
+				} else {
+					List<Enterprise> enters = enterpriseDao.findByEnName(record.getVendname());
+					if (!CollectionUtils.isEmpty(enters)) {
+						if (enters.size() == 1) {
+							Enterprise e = enters.get(0);
+							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);
+							}
+						} else {
+							record.setActive(Constant.NO);
+							record.setSamecount(enters.size());
+						}
+					} else {
+						record.setActive(Constant.NO);
+						record.setSamecount(enters.size());
+					}
+					invitationRecordDao.save(record);
+				}
             }
         }
 		return invitatrecords;
@@ -261,4 +283,15 @@ public class InvitationRecordServiceImpl implements InvitationRecordService {
 	public List<InvitationRecord> findbyVendName(String name) {
 		return invitationRecordDao.findByVendname(name);
 	}
+
+    /**
+     * 通过注册UU号查询邀请记录
+     *
+     * @param enuu 注册UU号
+     * @return
+     */
+    @Override
+    public List<InvitationRecord> findByVendUU(Long enuu) {
+        return invitationRecordDao.findByVenduu(enuu);
+    }
 }

+ 20 - 1
src/main/java/com/uas/platform/b2b/v2/controller/EnterpriseController.java

@@ -1,7 +1,10 @@
 package com.uas.platform.b2b.v2.controller;
 
+import com.uas.platform.b2b.core.util.ThreadUtils;
+import com.uas.platform.b2b.model.EnterpriseBaseInfo;
 import com.uas.platform.b2b.support.CommBufferedLogger;
 import com.uas.platform.b2b.temporary.model.UserSpaceDetail;
+import com.uas.platform.b2b.v2.service.InviteRecordService;
 import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.sso.entity.UserSpaceView;
 import com.uas.sso.entity.UserView;
@@ -26,6 +29,9 @@ public class EnterpriseController {
 	@Autowired
 	private EnterpriseService enterpriseService;
 
+	@Autowired
+    private InviteRecordService inviteRecordService;
+
 	@Autowired
 	private SysConf conf;
 
@@ -89,7 +95,20 @@ public class EnterpriseController {
 			enterprise.setEnAddress(userSpaceDetail.getAddress());
 			enterprise.setEnBussinessCode(userSpaceDetail.getBusinessCode());
 			try {
-				enterpriseService.save(enterprise);
+				final EnterpriseBaseInfo baseInfo = new EnterpriseBaseInfo(enterpriseService.save(enterprise));
+                // 如果改了名字,需要去更新邀请记录里面的信息
+                if (!enterprise.getEnName().equals(userSpaceDetail.getName())) {
+                    ThreadUtils.task(new Runnable() {
+                        @Override
+                        public void run() {
+                            try {
+                                inviteRecordService.updateVendName(baseInfo);
+                            } catch (Exception e) {
+                                e.printStackTrace();
+                            }
+                        }
+                    }).run();
+                }
 				return "success";
 			} catch (Exception e) {
 				e.printStackTrace();

+ 8 - 0
src/main/java/com/uas/platform/b2b/v2/service/InviteRecordService.java

@@ -1,5 +1,6 @@
 package com.uas.platform.b2b.v2.service;
 
+import com.uas.platform.b2b.model.Enterprise;
 import com.uas.platform.b2b.model.EnterpriseBaseInfo;
 import com.uas.platform.b2b.model.InvitationRecord;
 import com.uas.platform.b2b.v2.model.Invitation;
@@ -85,4 +86,11 @@ public interface InviteRecordService {
      * @return
      */
     ModelMap inviteByBatch(Long enUU, Long userUU, List<InvitationRecord> records, String source);
+
+    /**
+     * 更新邀请注册记录企业信息
+     *
+     * @param e 企业信息
+     */
+    void updateVendName(EnterpriseBaseInfo e);
 }

+ 45 - 5
src/main/java/com/uas/platform/b2b/v2/service/impl/InviteRecordServiceImpl.java

@@ -444,7 +444,12 @@ public class InviteRecordServiceImpl implements InviteRecordService {
      */
     @Override
     public ModelMap inviteByBatch(Long enUU, Long userUU, List<InvitationRecord> records, String source) {
+        ModelMap map = new ModelMap();
         Enterprise ve = enterpriseService.findByEnUU(enUU);
+        int size = 0;
+        int fsize = 0;
+        StringBuffer successStr = new StringBuffer();
+        StringBuffer failStr = new StringBuffer();
         if (null == ve) {
             throw new IllegalOperatorException(enUU + "对应的企业不存在!");
         }
@@ -463,13 +468,32 @@ public class InviteRecordServiceImpl implements InviteRecordService {
             record.setActive(Constant.NO);
             record.setSource(source);
             record.setEnuu(enUU);
-            invite(record);
-            // 发送邮件
-            if (null != record.getVenduseremail() && record.getVenduseremail().contains("@")) {
-                sendEmail(record);
+            try {
+                invite(record);
+                // 发送邮件
+                if (null != record.getVenduseremail() && record.getVenduseremail().contains("@")) {
+                    sendEmail(record);
+                }
+                size++;
+                if (successStr.length() > 0) {
+                    successStr.append(";");
+                }
+                successStr.append(record.getVendname());
+            } catch (Exception e) {
+                fsize++;
+                if (failStr.length() > 0) {
+                    failStr.append(";");
+                }
+                failStr.append(record.getVendname());
             }
         }
-        return new ModelMap("success", "邀请已发送,共" + records.size() + "条");
+        if (size > 0) {
+            map.put("success", "发送成" + size + "条," + successStr + "发送成功");
+        }
+        if (fsize > 0) {
+            map.put("error", "发送失败" + fsize + "条," + failStr + "发送失败");
+        }
+        return map;
     }
 
     /**
@@ -501,4 +525,20 @@ public class InviteRecordServiceImpl implements InviteRecordService {
             }
         }).run();
     }
+
+    /**
+     * 更新邀请注册记录企业信息
+     *
+     * @param e 企业信息
+     */
+    @Override
+    public void updateVendName(EnterpriseBaseInfo e) {
+        List<InvitationRecord> recordList = invitationRecordService.findByVendUU(e.getUu());
+        if (!CollectionUtils.isEmpty(recordList)) {
+            for (InvitationRecord record : recordList) {
+                record.setVendname(e.getEnName());
+            }
+            invitationRecordDao.save(recordList);
+        }
+    }
 }