|
|
@@ -1,9 +1,15 @@
|
|
|
package com.uas.platform.b2bManage.service.impl;
|
|
|
|
|
|
import com.uas.platform.b2bManage.core.util.StringUtils;
|
|
|
+import com.uas.platform.b2bManage.dao.EnterpriseBaseInfoDao;
|
|
|
import com.uas.platform.b2bManage.dao.InviteDao;
|
|
|
+import com.uas.platform.b2bManage.dao.UserBaseInfoDao;
|
|
|
+import com.uas.platform.b2bManage.model.EnterpriseBaseInfo;
|
|
|
import com.uas.platform.b2bManage.model.Invite;
|
|
|
+import com.uas.platform.b2bManage.model.UserBaseInfo;
|
|
|
+import com.uas.platform.b2bManage.page.exception.IllegalOperatorException;
|
|
|
import com.uas.platform.b2bManage.service.InviteService;
|
|
|
+import com.uas.platform.b2bManage.support.MyException;
|
|
|
import com.uas.platform.core.model.PageInfo;
|
|
|
import com.uas.platform.core.persistence.criteria.CriterionExpression;
|
|
|
import com.uas.platform.core.persistence.criteria.LogicalExpression;
|
|
|
@@ -13,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.domain.Page;
|
|
|
import org.springframework.data.jpa.domain.Specification;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.ui.ModelMap;
|
|
|
|
|
|
import javax.persistence.criteria.CriteriaBuilder;
|
|
|
import javax.persistence.criteria.CriteriaQuery;
|
|
|
@@ -36,6 +43,12 @@ public class InviteServiceImpl extends BaseService implements InviteService {
|
|
|
@Autowired
|
|
|
private InviteDao inviteDao;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private EnterpriseBaseInfoDao enterpriseBaseInfoDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private UserBaseInfoDao userBaseInfoDao;
|
|
|
+
|
|
|
/**
|
|
|
* 通过分页信息获取邀请注册记录
|
|
|
*
|
|
|
@@ -95,4 +108,119 @@ public class InviteServiceImpl extends BaseService implements InviteService {
|
|
|
}
|
|
|
return invites;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 通过企业UU,填写的邀请用户信息,企业信息更新邀请记录
|
|
|
+ *
|
|
|
+ * @param enUU 注册的企业UU
|
|
|
+ * @param userMessage 邀请人信息(姓名、手机、UU号等)
|
|
|
+ * @param enterMessage 邀请企业信息(名称、UU号、营业执照等)
|
|
|
+ * @return
|
|
|
+ * @throws MyException 抛出异常
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ModelMap editInvite(Long enUU, String userMessage, String enterMessage) throws MyException {
|
|
|
+ if (StringUtils.isEmpty(userMessage) || StringUtils.isEmpty(enterMessage)) {
|
|
|
+ throw new MyException("邀请人或邀请企业信息不能为空");
|
|
|
+ }
|
|
|
+ // 校验用户信息
|
|
|
+ Long userUU = invalidUserInfo(userMessage);
|
|
|
+ Long inviteUU = invalidEnterpriseInfo(enterMessage);
|
|
|
+ String sql = "update sec$enterprises set en_inviteuu = " + inviteUU +
|
|
|
+ ", en_inviteuseruu = " + userUU + " where en_uu = " + enUU;
|
|
|
+ jdbcTemplate.execute(sql);
|
|
|
+ return new ModelMap("content", inviteDao.findOne(enUU));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 校验用户信息
|
|
|
+ *
|
|
|
+ * @param userMessage 用户关键字
|
|
|
+ * @return
|
|
|
+ * @throws MyException
|
|
|
+ */
|
|
|
+ private Long invalidUserInfo(String userMessage) throws MyException {
|
|
|
+ UserBaseInfo userBaseInfo = new UserBaseInfo();
|
|
|
+ List<UserBaseInfo> userList = userBaseInfoDao.findByEmail(userMessage.trim());
|
|
|
+ if (userMessage.matches(UU_REGEXP) && !userMessage.matches(TEL_REGEXP)) {
|
|
|
+ userBaseInfo = userBaseInfoDao.findOne(Long.valueOf(userMessage));
|
|
|
+ if (null == userBaseInfo) {
|
|
|
+ throw new MyException(NOT_FOUND_CODE, "未找到关于[" + userMessage + "]的用户信息");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (null == userBaseInfo.getUu() && userMessage.matches(EMAIL_REGEXP)) {
|
|
|
+ if (userList.size() > 1) {
|
|
|
+ throw new MyException("[" + userMessage + "]存在多条用户信息,请更新邀请用户信息");
|
|
|
+ } else if (userList.size() == 1) {
|
|
|
+ userBaseInfo = userList.get(0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (null == userBaseInfo.getUu() && userMessage.matches(TEL_REGEXP)) {
|
|
|
+ userList = userBaseInfoDao.findByTel(userMessage.trim());
|
|
|
+ if (userList.size() > 1) {
|
|
|
+ throw new MyException("[" + userMessage + "]存在多条用户信息,请更新邀请用户信息");
|
|
|
+ } else if (userList.size() == 1) {
|
|
|
+ userBaseInfo = userList.get(0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (null == userBaseInfo.getUu()) {
|
|
|
+ userList = userBaseInfoDao.findByName(userMessage.trim());
|
|
|
+ if (userList.size() > 1) {
|
|
|
+ throw new MyException("[" + userMessage + "]存在多条用户信息,请更新邀请用户信息");
|
|
|
+ } else if (userList.size() == 1) {
|
|
|
+ userBaseInfo = userList.get(0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (null == userBaseInfo.getUu()) {
|
|
|
+ throw new MyException(NOT_FOUND_CODE, "未找到关于[" + userMessage + "]的用户信息");
|
|
|
+ }
|
|
|
+ return userBaseInfo.getUu();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 校验企业信息
|
|
|
+ *
|
|
|
+ * @param enterMessage 企业关键字
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private Long invalidEnterpriseInfo(String enterMessage) throws MyException {
|
|
|
+ EnterpriseBaseInfo baseInfo = new EnterpriseBaseInfo();
|
|
|
+ if (enterMessage.matches(UU_REGEXP)) {
|
|
|
+ baseInfo = enterpriseBaseInfoDao.findOne(Long.valueOf(enterMessage));
|
|
|
+ if (null == baseInfo.getUu()) {
|
|
|
+ throw new MyException(NOT_FOUND_CODE, "未找到关于[" + enterMessage + "]的企业信息");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (null == baseInfo.getUu()) {
|
|
|
+ List<EnterpriseBaseInfo> baseInfoList = enterpriseBaseInfoDao.findByEnBussinessCode(enterMessage.trim());
|
|
|
+ if (baseInfoList.size() > 1) {
|
|
|
+ throw new MyException("[" + enterMessage + "]存在多条企业信息,请更新邀请企业信息");
|
|
|
+ } else if (baseInfoList.size() == 1) {
|
|
|
+ baseInfo = baseInfoList.get(0);
|
|
|
+ }
|
|
|
+ if (null == baseInfo.getUu()) {
|
|
|
+ baseInfoList = enterpriseBaseInfoDao.findByEnName(enterMessage.trim());
|
|
|
+ if (baseInfoList.size() > 1) {
|
|
|
+ throw new MyException("[" + enterMessage + "]存在多条企业信息,请更新邀请企业信息");
|
|
|
+ } else if (baseInfoList.size() == 1) {
|
|
|
+ baseInfo = baseInfoList.get(0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (null == baseInfo.getUu()) {
|
|
|
+ throw new MyException("未找到关于[" + enterMessage + "]的企业信息");
|
|
|
+ }
|
|
|
+ return baseInfo.getUu();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 清除邀请记录
|
|
|
+ *
|
|
|
+ * @param enUU 企业UU
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void deleteByUU(Long enUU) {
|
|
|
+ String sql = "update sec$enterprises set en_inviteuu = null, en_inviteuseruu = null where en_uu = " + enUU;
|
|
|
+ jdbcTemplate.execute(sql);
|
|
|
+ }
|
|
|
}
|