Browse Source

更新增加邀请注册方法

hejq 7 years ago
parent
commit
740b8635d0

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

@@ -140,7 +140,7 @@ public class InvitationRecordController {
 	/**
 	 * 获取邀请链接接口
 	 *
-	 * @return
+	 * @return 邀请链接
 	 */
 	@RequestMapping(value = "/inviteUrl", method = RequestMethod.GET)
 	private ModelMap setenterprise() {
@@ -154,10 +154,10 @@ public class InvitationRecordController {
     /**
      * 邀请注册如果已注册增加添加合作伙伴接口
      *
-     * @param inviteEnUU 被邀请的企业UU
-     * @param inviteUserName 被邀请的用户姓名
-     * @param inviteUserTel 被邀请的用户联系方式
-     * @return
+     * @param inviteEnUU 		被邀请的企业UU
+     * @param inviteUserName 	被邀请的用户姓名
+     * @param inviteUserTel 	被邀请的用户联系方式
+     * @return ModelMap
      * @throws Exception
      */
 	@RequestMapping(value = "/addPart", method = RequestMethod.POST)

+ 1 - 1
src/main/java/com/uas/platform/b2b/publicapi/controller/InviteRecordController.java

@@ -178,7 +178,7 @@ public class InviteRecordController {
         enUU = checkByBusinessCode(enUU, businessCode);
         userUU = checkByUserTel(userUU, userTel);
         logger.log("邀请注册", "分类获取邀请总数", null, userUU, enUU);
-        return inviteRecordService.getInvationCount(userUU, enUU);
+        return inviteRecordService.getInvitationCount(userUU, enUU);
     }
 
     /**

+ 3 - 2
src/main/java/com/uas/platform/b2b/publicapi/service/InviteRecordService.java

@@ -12,7 +12,8 @@ import java.util.List;
 /**
  *  用户邀请记录公共接口
  *
- * Created by hejq on 2018-03-22.
+ * @author hejq
+ * @date 2018-03-22
  */
 public interface InviteRecordService {
 
@@ -42,7 +43,7 @@ public interface InviteRecordService {
      * @param enUU 企业UU
      * @return
      */
-    ModelMap getInvationCount(Long userUU, Long enUU);
+    ModelMap getInvitationCount(Long userUU, Long enUU);
 
     /**
      * 分月获取邀请数量

+ 145 - 98
src/main/java/com/uas/platform/b2b/publicapi/service/impl/InviteRecordServiceImpl.java

@@ -35,7 +35,10 @@ import java.util.Date;
 import java.util.List;
 
 /**
- * Created by hejq on 2018-03-22.
+ * 邀请注册接口
+ *
+ * @author hejq
+ * @date 2018-03-22
  */
 @Service
 public class InviteRecordServiceImpl implements InviteRecordService {
@@ -116,7 +119,7 @@ public class InviteRecordServiceImpl implements InviteRecordService {
      * @return
      */
     @Override
-    public ModelMap getInvationCount(Long userUU, Long enUU) {
+    public ModelMap getInvitationCount(Long userUU, Long enUU) {
         ModelMap map = new ModelMap();
         String allSql = "select COALESCE(sum(count), 0) from v$invitation where useruu = " + userUU;
         String todoSql = "select COALESCE(sum(count), 0) from v$invitation where active = 0 and useruu = " + userUU;
@@ -173,33 +176,85 @@ public class InviteRecordServiceImpl implements InviteRecordService {
      */
     @Override
     public ModelMap addPartner(Long userUU, Long enUU, Long inviteEnUU, String inviteUserName, String inviteUserTel, String app) throws Exception {
-        ModelMap map = new ModelMap();
-        PartnershipRecordView record = new PartnershipRecordView();
+        // 先检验邀请方与被邀请方是否已注册
         Enterprise c = enterpriseService.findByEnUU(inviteEnUU);
         if (null == c) {
             throw new IllegalOperatorException("添加合作伙伴的企业未注册");
         }
-        record.setCustName(c.getEnName());
-        record.setCustUID(c.getEnBussinessCode());
-        String adnimTel = null;
-        User user = new User();
-        if (null != c.getEnAdminuu()) {
-            user = userService.findUserByUserUU(c.getEnAdminuu());
-            if (null != user) {
-                record.setCustUserCode(user.getUserUU());
-                record.setCustUserEmail(user.getUserEmail());
-                record.setCustUserName(user.getUserName());
-                record.setCustUserTel(user.getUserTel());
-                adnimTel = user.getUserTel();
-            }
-        }
         Enterprise v = enterpriseService.findByEnUU(enUU);
         if (null == v) {
             throw new NotFoundException(enUU + "对应企业未注册");
         }
+        ModelMap map = new ModelMap();
+        PartnershipRecordView record = new PartnershipRecordView();
+
+        // 设置邀请方企业信息
+        setCustomer(c, record);
+
+        // 设置邀请方用户信息
+        String adminTel = null;
+        String contactTel = null;
+
+        // 这里针对邀请人和管理员都会发送短信通知,所以执行两次方法
+        if (!StringUtils.isEmpty(inviteUserTel)) {
+            setCustomerUserByTel(inviteUserTel, record, inviteUserName);
+            contactTel = inviteUserTel;
+        }
+        if (null != c.getEnAdminuu()) {
+            setCustomerUser(record, c.getEnAdminuu());
+            if (null != record.getCustUserTel()) {
+                adminTel = record.getCustUserTel();
+            }
+        }
+        record.setAppId(app);
+
+        // 设置被邀请方信息
+        setVendInfo(record, v, userUU);
+        final String enName = v.getEnName();
+        final String contactPhone = contactTel;
+        final String adminPhone = adminTel;
+
+        // 发送短信通知
+        if (adminTel.equals(contactTel)) {
+            // 相同的人调用通知接口
+            ThreadUtils.task(() -> {
+                // 发送给管理员
+                sendMsgToManager(enName, adminPhone);}).run();
+
+        } else { // 针对不同的人调用不同的接口
+            ThreadUtils.task(() -> {
+                // 发送给管理员
+                sendMsgToManager(enName, adminPhone);
+            }).task(() -> {
+                // 发送给联系人
+                sendMsgToManager(enName, contactPhone);
+            }).run();
+        }
+        try {
+            String result = AccountUtils.addNewRecord(record);
+            JSONObject object = JSON.parseObject(result);
+            String errorMsg = object.getString("error");
+            if (!StringUtils.isEmpty(errorMsg)) {
+                throw new IllegalOperatorException(errorMsg);
+            } else {
+                map.put("success", object.getString("success"));
+            }
+        } catch (RuntimeException e) {
+            throw new IllegalOperatorException("申请发送失败");
+        }
+        return map;
+    }
+
+    /**
+     * 设置被邀请方用户信息
+     *
+     * @param record 邀请记录
+     * @param userUU 用户UU
+     * @param v 被邀请方企业信息
+     */
+    private void setVendInfo(PartnershipRecordView record, Enterprise v, Long userUU) {
         record.setVendName(v.getEnName());
         record.setVendUID(v.getEnBussinessCode());
-        record.setAppId(app);
         record.setVendUserCode(userUU);
         User vu = userService.findUserByUserUU(userUU);
         if (null != vu) {
@@ -207,73 +262,63 @@ public class InviteRecordServiceImpl implements InviteRecordService {
             record.setVendUserName(vu.getUserName());
             record.setVendUserTel(vu.getUserTel());
         }
-        String contactTel = null;
-        User cu = new User();
-        if (!StringUtils.isEmpty(inviteUserTel)) {
-            List<User> users = userDao.findUserByUserTel(inviteUserTel);
-            if (!CollectionUtils.isEmpty(users)) {
-                cu = users.get(0);
-                String userName = StringUtils.isEmpty(inviteUserName) ? cu.getUserName() : inviteUserName;
-                record.setCustUserCode(cu.getUserUU());
-                record.setCustUserEmail(cu.getUserEmail());
-                record.setCustUserName(userName);
-                record.setCustUserTel(cu.getUserTel());
-                contactTel = cu.getUserTel();
-            }
+    }
+
+    /**
+     * 通过邀请人电话设置邀请用户信息
+     *
+     * @param inviteUserTel     邀请用户电话
+     * @param record            邀请记录
+     * @param inviteUserName    邀请用户联系方式
+     */
+    private void setCustomerUserByTel(String inviteUserTel, PartnershipRecordView record, String inviteUserName) {
+        List<User> users = userDao.findUserByUserTel(inviteUserTel);
+        if (!CollectionUtils.isEmpty(users)) {
+            User cu = users.get(0);
+            String userName = StringUtils.isEmpty(inviteUserName) ? cu.getUserName() : inviteUserName;
+            record.setCustUserCode(cu.getUserUU());
+            record.setCustUserEmail(cu.getUserEmail());
+            record.setCustUserName(userName);
+            record.setCustUserTel(cu.getUserTel());
         }
-        final String enName = v.getEnName();
-        final String contactTel1 = contactTel;
-        final String adminTel1 = adnimTel;
-        // 发送短信通知
-        if (adnimTel.equals(contactTel)) {// 相同的人调用通知接口
-            ThreadUtils.task(new Runnable() {
-                @Override
-                public void run() {
-                    try {
-                        // 发送给管理员
-                        sendMsgToManager(enName, adminTel1);
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
-                }
-            }).run();
+    }
 
-        } else { // 针对不同的人调用不同的接口
-            ThreadUtils.task(new Runnable() {
-                @Override
-                public void run() {
-                    try {
-                        // 发送给管理员
-                        sendMsgToManager(enName, adminTel1);
+    /**
+     * 设置邀请方企业信息
+     *
+     * @param c 邀请方企业信息
+     * @param record 邀请记录
+     */
+    private void setCustomer(Enterprise c, PartnershipRecordView record) {
+        record.setCustName(c.getEnName());
+        record.setCustUID(c.getEnBussinessCode());
+    }
 
-                        // 发送给联系人
-                        sendMsgToManager(enName, contactTel1);
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
-                }
-            }).run();
-        }
-        String result = AccountUtils.addNewRecord(record);
-        JSONObject object = JSON.parseObject(result);
-        String errorMsg = object.getString("error");
-        if (!StringUtils.isEmpty(errorMsg)) {
-            throw new IllegalOperatorException(errorMsg);
-        } else {
-            map.put("success", object.getString("success"));
+    /**
+     * 设置邀请人信息
+     *
+     * @param record 邀请记录
+     * @param adminUU 管理员UU号
+     */
+    private void setCustomerUser(PartnershipRecordView record, Long adminUU) {
+        User user = userService.findUserByUserUU(adminUU);
+        if (null != user) {
+            record.setCustUserCode(user.getUserUU());
+            record.setCustUserEmail(user.getUserEmail());
+            record.setCustUserName(user.getUserName());
+            record.setCustUserTel(user.getUserTel());
         }
-        return map;
     }
 
     /**
      * 发送短信通知管理员
      *
      * @param enName 邀请企业
-     * @param adnimTel 管理员联系方式
+     * @param adminTel 管理员联系方式
      */
-    private void sendMsgToManager(final String enName, final String adnimTel) {
+    private void sendMsgToManager(final String enName, final String adminTel) {
         String[] args = {enName};
-        SendMsgUtils.sendMsg(adnimTel, messageConf.getMsgInvitationForB2B(), args);
+        SendMsgUtils.sendMsg(adminTel, messageConf.getMsgInvitationForB2B(), args);
     }
 
     /**
@@ -287,8 +332,8 @@ public class InviteRecordServiceImpl implements InviteRecordService {
         if (StringUtils.isEmpty(record.getUseruu()) || StringUtils.isEmpty(record.getEnuu())) {
             throw new IllegalOperatorException("邀请人或企业不能为空");
         }
-        User custUser = userService.findUserByUserUU(record.getUseruu());
-        if (StringUtils.isEmpty(custUser)) {
+        User customerUser = userService.findUserByUserUU(record.getUseruu());
+        if (StringUtils.isEmpty(customerUser)) {
             throw new IllegalOperatorException(record.getUseruu() + ",不存在邀请人信息");
         }
         final Enterprise custEn = enterpriseService.findByEnUU(record.getEnuu());
@@ -301,28 +346,29 @@ public class InviteRecordServiceImpl implements InviteRecordService {
            throw new IllegalOperatorException(record.getVendname() + "已注册!");
         }
         // 先判断记录
-        InvitationRecord oldrecord = invitationRecordDao.findByUseruuAndVendname(record.getUseruu(), record.getVendname());
-        if (record.getId() != null) { // 如果是已存在的,直接替换
-            oldrecord = invitationRecordDao.findOne(record.getId());
+        InvitationRecord oldRecord = invitationRecordDao.findByUseruuAndVendname(record.getUseruu(), record.getVendname());
+        if (record.getId() != null) {
+            // 如果是已存在的,直接替换
+            oldRecord = invitationRecordDao.findOne(record.getId());
         }
-        if (oldrecord != null) {
-            oldrecord.setCount(oldrecord.getCount() + 1);
-            oldrecord.setDate(new Date());
+        if (oldRecord != null) {
+            oldRecord.setCount(oldRecord.getCount() + 1);
+            oldRecord.setDate(new Date());
             if (record.getVendname() != null) {
-                oldrecord.setVendname(record.getVendname());
+                oldRecord.setVendname(record.getVendname());
             }
             if (record.getVendusername() != null) {
-                oldrecord.setVendusername(record.getVendusername());
+                oldRecord.setVendusername(record.getVendusername());
             }
             if (record.getVendusertel() != null) {
-                oldrecord.setVendusertel(record.getVendusertel().trim());
+                oldRecord.setVendusertel(record.getVendusertel().trim());
             }
             if (record.getVenduseremail() != null) {
-                oldrecord.setVenduseremail(record.getVenduseremail().trim());
+                oldRecord.setVenduseremail(record.getVenduseremail().trim());
             }
-            record = invitationRecordDao.save(oldrecord);
-            if (oldrecord.getVendusertel() != null) {
-                sendMsg(record, custUser, custEn);
+            record = invitationRecordDao.save(oldRecord);
+            if (oldRecord.getVendusertel() != null) {
+                sendMsg(record, customerUser, custEn);
             }
             map.put("success", "邀请已发送");
         } else {
@@ -331,7 +377,7 @@ public class InviteRecordServiceImpl implements InviteRecordService {
             record.setActive(Constant.NO);
             record = invitationRecordDao.save(record);
             if (record.getVendusertel() != null) {
-                sendMsg(record, custUser, custEn);
+                sendMsg(record, customerUser, custEn);
             }
             if (record.getId() != null) {
                 map.put("success", "邀请已发送");
@@ -345,12 +391,13 @@ public class InviteRecordServiceImpl implements InviteRecordService {
 
     /**
      * 发送短信
+     *
      * @param record 邀请记录
-     * @param custUser 当前用户
-     * @param custEn 当前企业
+     * @param customerUser 当前用户
+     * @param customerEnterprise 当前企业
      */
-    private void sendMsg(final InvitationRecord record, final User custUser, final Enterprise custEn) {
-        String[] args = {record.getVendusername(), record.getVendname(), custUser.getUserName() + "(" + custEn.getEnName() + ")"};
+    private void sendMsg(final InvitationRecord record, final User customerUser, final Enterprise customerEnterprise) {
+        String[] args = {record.getVendusername(), record.getVendname(), customerUser.getUserName() + "(" + customerEnterprise.getEnName() + ")"};
         SendMsgUtils.sendMsg(record.getVendusertel(), messageConf.getMsgInvitationForB2B(), args);
     }
 
@@ -368,7 +415,7 @@ public class InviteRecordServiceImpl implements InviteRecordService {
         ModelMap map = new ModelMap();
         Enterprise ve = enterpriseService.findByEnUU(enUU);
         int size = 0;
-        int fsize = 0;
+        int failureSize = 0;
         StringBuffer successStr = new StringBuffer();
         StringBuffer failStr = new StringBuffer();
         if (null == ve) {
@@ -401,7 +448,7 @@ public class InviteRecordServiceImpl implements InviteRecordService {
                 }
                 successStr.append(record.getVendname());
             } catch (Exception e) {
-                fsize++;
+                failureSize++;
                 if (failStr.length() > 0) {
                     failStr.append(";");
                 }
@@ -411,8 +458,8 @@ public class InviteRecordServiceImpl implements InviteRecordService {
         if (size > 0) {
             map.put("success", "发送成" + size + "条," + successStr + "发送成功");
         }
-        if (fsize > 0) {
-            map.put("error", "发送失败" + fsize + "条," + failStr + "发送失败");
+        if (failureSize > 0) {
+            map.put("error", "发送失败" + failureSize + "条," + failStr + "发送失败");
         }
         return map;
     }