Browse Source

企业注册时检验邀请注册信息

hejq 7 years ago
parent
commit
7947948fbc

+ 11 - 6
src/main/java/com/uas/platform/b2b/dao/InvitationRecordDao.java

@@ -1,13 +1,18 @@
 package com.uas.platform.b2b.dao;
 
-import java.util.List;
-
+import com.uas.platform.b2b.model.InvitationRecord;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.stereotype.Repository;
 
-import com.uas.platform.b2b.model.InvitationRecord;
+import java.util.List;
 
+/**
+ * 邀请注册记录
+ * 
+ * @author hejq
+ * @date 2018-08-01 9:13
+ */
 @Repository
 public interface InvitationRecordDao
 		extends JpaRepository<InvitationRecord, Long>, JpaSpecificationExecutor<InvitationRecord> {
@@ -19,7 +24,7 @@ public interface InvitationRecordDao
 	 * @param vendname
 	 * @return
 	 */
-	public InvitationRecord findByUseruuAndVendname(Long useruu, String vendname);
+	InvitationRecord findByUseruuAndVendname(Long useruu, String vendname);
 
 	/**
 	 * 查询个人的邀请记录
@@ -27,7 +32,7 @@ public interface InvitationRecordDao
 	 * @param useruu
 	 * @return
 	 */
-	public List<InvitationRecord> findByUseruu(Long useruu);
+	List<InvitationRecord> findByUseruu(Long useruu);
 
 	/**
 	 * 通过邀请企业uu号和供应商名称查询邀请记录
@@ -36,7 +41,7 @@ public interface InvitationRecordDao
 	 * @param vendname
 	 * @return
 	 */
-	public InvitationRecord findByEnuuAndVendname(Long enuu, String vendname);
+	InvitationRecord findByEnuuAndVendname(Long enuu, String vendname);
 
 	/**
 	 * 通过被邀请企业的名称查询邀请记录

+ 14 - 26
src/main/java/com/uas/platform/b2b/v2/controller/EnterpriseController.java

@@ -1,18 +1,11 @@
 package com.uas.platform.b2b.v2.controller;
 
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
 import com.uas.platform.b2b.core.util.ThreadUtils;
 import com.uas.platform.b2b.model.Enterprise;
 import com.uas.platform.b2b.model.EnterpriseBaseInfo;
 import com.uas.platform.b2b.publicapi.service.InviteRecordService;
-import com.uas.platform.b2b.support.CommBufferedLogger;
-import com.uas.platform.b2b.support.SysConf;
 import com.uas.platform.b2b.temporary.model.UserSpaceDetail;
 import com.uas.platform.b2b.v2.service.EnterpriseService;
-import com.uas.platform.core.logging.BufferedLoggerManager;
-import com.uas.sso.common.util.HttpUtil;
-import com.uas.sso.common.util.HttpUtil.ResponseWrap;
 import com.uas.sso.entity.UserSpaceView;
 import com.uas.sso.entity.UserView;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,6 +14,12 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 
+/**
+ * 企业信息接口
+ * 
+ * @author hejq
+ * @date 2018-08-01 9:05
+ */
 @Controller("v2.EnterpriseController")
 @RequestMapping(value = "/public/enterprise")
 public class EnterpriseController {
@@ -31,15 +30,18 @@ public class EnterpriseController {
 	@Autowired
     private InviteRecordService inviteRecordService;
 
-	@Autowired
-	private SysConf conf;
-
 	@SuppressWarnings("deprecation")
 	@Autowired
 	private com.uas.platform.b2b.service.EnterpriseService enterService;
 
-	private final static CommBufferedLogger logger = BufferedLoggerManager.getLogger(CommBufferedLogger.class);
-
+    /**
+     * 企业信息保存
+     *
+     * @param userSpaceDetail 账户中心企业资料
+     * @param admin 注册人信息
+     * @return
+     * @throws Exception
+     */
 	@RequestMapping(method = RequestMethod.POST)
 	@ResponseBody
 	public UserSpaceView save(UserSpaceView userSpaceDetail, UserView admin) throws Exception {
@@ -47,24 +49,10 @@ public class EnterpriseController {
 			userSpaceDetail.setAdmin(admin);
 			Enterprise enterprise = enterpriseService.save(userSpaceDetail);
 			userSpaceDetail.setSpaceUU(enterprise.getUu());
-			// 为兼容以前模式,同时知会下管理系统。管理系统主要为了获取企业uu
 		}
 		return null;
 	}
 
-	private String syncToManager(UserSpaceView userSpaceDetail) throws Exception {
-		JSONObject formData = JSON.parseObject(JSON.toJSONString(userSpaceDetail));
-		ResponseWrap res = HttpUtil.doPost(conf.getManageInner() + "/public/enterprise", formData);
-		Long enUU = userSpaceDetail.getSpaceUU();
-		if (!res.isSuccess()) {
-			logger.log("同步数据", "error", "同步企业数据到管理平台失败",enUU != null ? enUU : 0L);
-			throw new Exception(res.getContent());
-		} else {
-			logger.log("同步数据", "success", "同步企业数据到管理平台成功", enUU != null ? Long.valueOf(enUU) : 0L);
-			return JSON.parseObject(res.getContent()).getString("dialectUID");
-		}
-	}
-
 	@RequestMapping(method = RequestMethod.DELETE)
 	@ResponseBody
 	public void remove(UserSpaceView userSpace) {

+ 79 - 9
src/main/java/com/uas/platform/b2b/v2/service/impl/EnterpriseServiceImpl.java

@@ -1,18 +1,20 @@
 package com.uas.platform.b2b.v2.service.impl;
 
-import com.uas.platform.b2b.dao.RoleDao;
-import com.uas.platform.b2b.model.Role;
-import com.uas.sso.entity.UserSpaceView;
-import com.uas.sso.entity.UserSpaceDetail;
+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.RoleDao;
 import com.uas.platform.b2b.dao.UserDao;
 import com.uas.platform.b2b.model.Enterprise;
+import com.uas.platform.b2b.model.InvitationRecord;
+import com.uas.platform.b2b.model.Role;
 import com.uas.platform.b2b.model.User;
 import com.uas.platform.b2b.support.CommBufferedLogger;
 import com.uas.platform.b2b.v2.service.EnterpriseService;
 import com.uas.platform.core.logging.BufferedLoggerManager;
+import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.Status;
-import com.uas.sso.entity.UserView;
+import com.uas.sso.entity.UserSpaceView;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
@@ -22,18 +24,28 @@ import java.util.Date;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-import java.util.logging.Logger;
 
+/**
+ * 企业信息接口
+ * 
+ * @author hejq
+ * @date 2018-08-01 9:08
+ */
 @Service("v2.EnterpriseService")
 public class EnterpriseServiceImpl implements EnterpriseService {
 
 	@Autowired
 	private EnterpriseDao enterpriseDao;
+
 	@Autowired
 	private UserDao userDao;
+
 	@Autowired
 	private RoleDao roleDao;
 
+	@Autowired
+    private InvitationRecordDao recordDao;
+
 	private final static CommBufferedLogger logger = BufferedLoggerManager.getLogger(CommBufferedLogger.class);
 
 	@Override
@@ -81,8 +93,10 @@ public class EnterpriseServiceImpl implements EnterpriseService {
 		}
 		user.addEnterprise(enterprise);
 		// 将用户设置为管理员,只对用户的当前企业的角色进行修改
-		Set<Role> existRoles = new HashSet<Role>(); // 新用户注册企业时为空
-		if (!CollectionUtils.isEmpty(user.getRoles())) { // 老用户注册新企业
+		// 新用户注册企业时为空
+		Set<Role> existRoles = new HashSet<Role>();
+		// 老用户注册新企业
+		if (!CollectionUtils.isEmpty(user.getRoles())) {
 			existRoles = user.getRoles();
 		}
 		// 设置为本企业管理员
@@ -129,7 +143,63 @@ public class EnterpriseServiceImpl implements EnterpriseService {
 
 	@Override
 	public Enterprise save(Enterprise enterprise) {
-		return enterpriseDao.save(enterprise);
+	    final Enterprise enterpriseInfo = enterpriseDao.save(enterprise);
+	    // 邀请记录链接注册,同步信息到邀请注册记录
+        if (null != enterprise.getInviteUU() && null != enterprise.getInviteUserUU()) {
+            ThreadUtils.task(new Runnable() {
+                @Override
+                public void run() {
+                    mergeInvitation(enterpriseInfo);
+                }
+            });
+        }
+		return enterpriseInfo;
 	}
 
+    /**
+     * 更新邀请注册信息
+     *
+     * @param enterpriseInfo 企业信息
+     */
+    private void mergeInvitation(Enterprise enterpriseInfo) {
+        InvitationRecord record = recordDao.findByUseruuAndVendname(enterpriseInfo.getInviteUserUU(), enterpriseInfo.getEnName());
+        Enterprise inviteEnterprise = enterpriseDao.findOne(enterpriseInfo.getInviteUU());
+        User inviteUser = userDao.findOne(enterpriseInfo.getInviteUserUU());
+        if (null != inviteEnterprise && null != inviteUser) {
+            if (null != record) {
+                record.setEnuu(inviteEnterprise.getInviteUU());
+                record.setBussinesscode(inviteEnterprise.getEnBussinessCode());
+                record.setUserTel(inviteUser.getUserTel());
+                record.setActive(Constant.YES);
+                recordDao.save(record);
+            } else {
+                record = new InvitationRecord();
+                record.setEnuu(inviteEnterprise.getInviteUU());
+                record.setBussinesscode(inviteEnterprise.getEnBussinessCode());
+                record.setUserTel(inviteUser.getUserTel());
+                record.setActive(Constant.YES);
+                record.setVendname(enterpriseInfo.getEnName());
+                record.setVenduseremail(enterpriseInfo.getEnEmail());
+                record.setVendusertel(enterpriseInfo.getEnTel());
+                record.setVendusername(enterpriseInfo.getContactMan());
+                User admin = userDao.findOne(enterpriseInfo.getEnAdminuu());
+                Date inviteDate = null != null ? new Date(enterpriseInfo.getInviteTime()) : new Date(System.currentTimeMillis());
+                record.setDate(inviteDate);
+                record.setVenduu(enterpriseInfo.getUu());
+                record.setSource(enterpriseInfo.getInviteSource() != null ? enterpriseInfo.getInviteSource() : "B2B");
+                record.setStatus(Status.NOT_UPLOAD.value());
+                if (null != admin) {
+                    record.setVenduseremail(admin.getUserEmail());
+                    record.setVendusertel(admin.getUserTel());
+                    record.setVendusername(admin.getUserName());
+                }
+                recordDao.save(record);
+                String inviteInfo = "企业名称: " + enterpriseInfo.getEnName() + ";"
+                        + "邀请企业: " + inviteEnterprise.getEnName() + "(" + inviteEnterprise.getUu() + ");"
+                        + "邀请人: " + inviteUser.getUserName() + "(" + inviteUser.getUserUU() + ")";
+                logger.log("添加合作伙伴", "企业注册添加合作伙伴", String.format("%s" + inviteInfo) , enterpriseInfo.getUu());
+            }
+        }
+    }
+
 }