|
|
@@ -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;
|
|
|
}
|