|
|
@@ -1,5 +1,7 @@
|
|
|
package com.uas.platform.b2b.service.impl;
|
|
|
|
|
|
+import com.uas.platform.b2b.core.util.ThreadUtils;
|
|
|
+import com.uas.platform.b2b.support.SysConf;
|
|
|
import com.uas.sso.util.AccountUtils;
|
|
|
import com.uas.message.mail.service.MailService;
|
|
|
import com.uas.platform.b2b.dao.EnterpriseDao;
|
|
|
@@ -25,6 +27,7 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.ui.ModelMap;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
|
|
|
@Service
|
|
|
@@ -51,6 +54,14 @@ public class InvitationRecordServiceImpl implements InvitationRecordService {
|
|
|
@Autowired
|
|
|
private ProductDao productDao;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private SysConf sysConf;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 企业注册标志
|
|
|
+ */
|
|
|
+ final String spaceRegisterSign = "enterpriseRegistration";
|
|
|
+
|
|
|
/**
|
|
|
* 短信接口
|
|
|
*/
|
|
|
@@ -61,7 +72,6 @@ public class InvitationRecordServiceImpl implements InvitationRecordService {
|
|
|
ModelMap map = new ModelMap();
|
|
|
List<Enterprise> enterprises = enterpriseDao.findByEnName(record.getVendname());
|
|
|
if (!CollectionUtils.isEmpty(enterprises)) {
|
|
|
-// throw new IllegalAccessError("该企业已注册!");
|
|
|
map.put("error", "该企业已注册!");
|
|
|
return map;
|
|
|
}
|
|
|
@@ -80,16 +90,6 @@ public class InvitationRecordServiceImpl implements InvitationRecordService {
|
|
|
enuu = record.getEnuu();
|
|
|
}
|
|
|
}
|
|
|
- Map<String, Object> model = new HashMap<String, Object>();
|
|
|
- // 邮件信息
|
|
|
- if (null != record.getVendusername()) {
|
|
|
- model.put("vendorusername", record.getVendusername().trim());
|
|
|
- }
|
|
|
- model.put("vendorname", record.getVendname().trim());
|
|
|
- model.put("custname", SystemSession.getUser().getUserName() + "("
|
|
|
- + SystemSession.getUser().getEnterprise().getEnName() + ")");
|
|
|
- model.put("inviteuid", SystemSession.getUser().getEnterprise().getEnBussinessCode());
|
|
|
- model.put("inviteUserCode", SystemSession.getUser().getUserUU());
|
|
|
// 先判断记录
|
|
|
InvitationRecord oldrecord = invitationRecordDao.findByUseruuAndVendname(useruu, record.getVendname());
|
|
|
if (record.getId() != null) { // 如果是已存在的,直接替换
|
|
|
@@ -112,27 +112,10 @@ public class InvitationRecordServiceImpl implements InvitationRecordService {
|
|
|
}
|
|
|
record = invitationRecordDao.save(oldrecord);
|
|
|
if (oldrecord.getVenduseremail() != null) {
|
|
|
- try {
|
|
|
- mailService.send(messageConf.getTplInvitationForB2B(), record.getVenduseremail(), model);
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
+ sendEmail(record);
|
|
|
}
|
|
|
- if(oldrecord.getVendusertel()!=null){
|
|
|
- try {
|
|
|
- SmsMessage sms = new SmsMessage();
|
|
|
- List<Object> obj = new ArrayList<Object>();
|
|
|
- obj.add(record.getVendusername());
|
|
|
- obj.add(record.getVendname());
|
|
|
- obj.add(SystemSession.getUser().getUserName() + "("
|
|
|
- + SystemSession.getUser().getEnterprise().getEnName() + ")");
|
|
|
- sms.setParams(obj);
|
|
|
- sms.setReceiver(record.getVendusertel());
|
|
|
- sms.setTemplateId(messageConf.getMsgInvitationForB2B());
|
|
|
- HttpUtil.sendPost(messageUrl, FlexJsonUtils.toJsonDeep(sms));
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
+ if (oldrecord.getVendusertel() != null) {
|
|
|
+ sendMsg(record);
|
|
|
}
|
|
|
map.put("success", "邀请已发送");
|
|
|
} else {
|
|
|
@@ -143,23 +126,10 @@ public class InvitationRecordServiceImpl implements InvitationRecordService {
|
|
|
record.setActive(Constant.NO);
|
|
|
record = invitationRecordDao.save(record);
|
|
|
if (record.getVenduseremail() != null) {
|
|
|
- mailService.send(messageConf.getTplInvitationForB2B(), record.getVenduseremail(), model);
|
|
|
+ sendEmail(record);
|
|
|
}
|
|
|
if (record.getVendusertel() != null) {
|
|
|
- try {
|
|
|
- SmsMessage sms = new SmsMessage();
|
|
|
- List<Object> obj = new ArrayList<Object>();
|
|
|
- obj.add(record.getVendusername());
|
|
|
- obj.add(record.getVendname());
|
|
|
- obj.add(SystemSession.getUser().getUserName() + "("
|
|
|
- + SystemSession.getUser().getEnterprise().getEnName() + ")");
|
|
|
- sms.setParams(obj);
|
|
|
- sms.setReceiver(record.getVendusertel());
|
|
|
- sms.setTemplateId(messageConf.getMsgInvitationForB2B());
|
|
|
- HttpUtil.sendPost(messageUrl, FlexJsonUtils.toJsonDeep(sms));
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
+ sendMsg(record);
|
|
|
}
|
|
|
if (record.getId() != null) {
|
|
|
map.put("success", "邀请已发送");
|
|
|
@@ -167,20 +137,104 @@ public class InvitationRecordServiceImpl implements InvitationRecordService {
|
|
|
map.put("error", "邀请发送失败");
|
|
|
}
|
|
|
}
|
|
|
- // 同步一个数据到账户中心(不是必须,不判断状态)
|
|
|
- try {
|
|
|
- record.setUser(null);
|
|
|
- record.setId(null);
|
|
|
- record.setSamecount(null);
|
|
|
- record.setVenduu(null);
|
|
|
- record.setBussinesscode(SystemSession.getUser().getEnterprise().getEnBussinessCode());
|
|
|
- AccountUtils.synchroInvitation(FlexJsonUtils.toJsonDeep(record));
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- return map;
|
|
|
+ syncToAccount(record, SystemSession.getUser().getEnterprise().getEnBussinessCode());
|
|
|
+ return map;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 同步到账户中心
|
|
|
+ *
|
|
|
+ * @param record 邀请记录
|
|
|
+ * @param businessCode 营业执照
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void syncToAccount(InvitationRecord record, String businessCode) {
|
|
|
+ // 同步一个数据到账户中心(不是必须,不判断状态)
|
|
|
+ try {
|
|
|
+ record.setUser(null);
|
|
|
+ record.setId(null);
|
|
|
+ record.setSamecount(null);
|
|
|
+ record.setVenduu(null);
|
|
|
+ record.setBussinesscode(businessCode);
|
|
|
+ AccountUtils.synchroInvitation(FlexJsonUtils.toJsonDeep(record));
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 发送短信通知
|
|
|
+ *
|
|
|
+ * @param record 邀请记录
|
|
|
+ */
|
|
|
+ private void sendMsg(InvitationRecord record) {
|
|
|
+ try {
|
|
|
+ SmsMessage sms = new SmsMessage();
|
|
|
+ List<Object> obj = new ArrayList<Object>();
|
|
|
+ obj.add(record.getVendusername());
|
|
|
+ obj.add(record.getVendname());
|
|
|
+ obj.add(SystemSession.getUser().getUserName() + "("
|
|
|
+ + SystemSession.getUser().getEnterprise().getEnName() + ")");
|
|
|
+ sms.setParams(obj);
|
|
|
+ sms.setReceiver(record.getVendusertel());
|
|
|
+ sms.setTemplateId(messageConf.getMsgInvitationForB2B());
|
|
|
+ final SmsMessage message = sms;
|
|
|
+ ThreadUtils.task(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ try {
|
|
|
+ HttpUtil.sendPost(messageUrl, FlexJsonUtils.toJsonDeep(message));
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }).run();
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 发送邮件通知
|
|
|
+ *
|
|
|
+ * @param record 邀请记录
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void sendEmail(final InvitationRecord record) {
|
|
|
+ Map<String, Object> model = new HashMap<String, Object>();
|
|
|
+ // 邮件信息
|
|
|
+ if (null != record.getVendusername()) {
|
|
|
+ model.put("vendorusername", record.getVendusername().trim());
|
|
|
+ }
|
|
|
+ Enterprise e = enterpriseDao.findOne(record.getEnuu());
|
|
|
+ User u = userDao.findOne(record.getUseruu());
|
|
|
+ model.put("vendorname", record.getVendname().trim());
|
|
|
+ model.put("custname", u.getUserName() + "(" + e.getEnName() + ")");
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
|
|
|
+ String time = sdf.format(new Date());
|
|
|
+ String url = sysConf.getRegisterUrl();
|
|
|
+ if (url.contains(spaceRegisterSign)) {
|
|
|
+ url = url + "?inviteUserUU=" + record.getUseruu() + "&inviteSpaceUU=" + record.getEnuu()
|
|
|
+ + "&invitationTime=" + time + "&source=" + record.getSource();
|
|
|
+ } else {
|
|
|
+ url = url + "/enterpriseRegistration?inviteUserUU=" + record.getUseruu() + "&inviteSpaceUU=" + record.getEnuu()
|
|
|
+ + "&invitationTime=" + time + "&source=" + record.getSource();
|
|
|
+ }
|
|
|
+ model.put("registerUrl", url);
|
|
|
+ final Map<String, Object> modMap = model;
|
|
|
+ ThreadUtils.task(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ try {
|
|
|
+ mailService.send(messageConf.getTplInvitationForB2B(), record.getVenduseremail(), modMap);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }).run();
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public ModelMap reInvite(Long id) {
|
|
|
return invite(invitationRecordDao.findOne(id));
|
|
|
@@ -203,32 +257,65 @@ public class InvitationRecordServiceImpl implements InvitationRecordService {
|
|
|
invitatrecords = searchService.getInvitationByKeyword(keyword, params);
|
|
|
} catch (Exception e) {
|
|
|
}
|
|
|
- List<InvitationRecord> records = invitatrecords.getContent();
|
|
|
- if (!CollectionUtils.isEmpty(records)) {
|
|
|
- for (InvitationRecord record : records) {
|
|
|
- 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.setProductNum(productDao.countByEnUU(enters.get(0).getUu()));
|
|
|
- record.setRegisterDate(enters.get(0).getEnDate());
|
|
|
- } else {
|
|
|
- record.setActive(Constant.NO);
|
|
|
- record.setSamecount(enters.size());
|
|
|
- }
|
|
|
- } else {
|
|
|
- record.setActive(Constant.NO);
|
|
|
- record.setSamecount(enters.size());
|
|
|
- }
|
|
|
- invitationRecordDao.save(record);
|
|
|
+ if (!CollectionUtils.isEmpty(invitatrecords.getContent())) {
|
|
|
+ for (InvitationRecord record : invitatrecords.getContent()) {
|
|
|
+ if (null != record.getVenduu()) {
|
|
|
+ Enterprise e = enterpriseDao.findOne(record.getVenduu());
|
|
|
+ covert(record, e);
|
|
|
+ } 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 = covert(record, e);
|
|
|
+ } else {
|
|
|
+ record.setActive(Constant.NO);
|
|
|
+ record.setSamecount(enters.size());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ record.setActive(Constant.NO);
|
|
|
+ record.setSamecount(enters.size());
|
|
|
+ }
|
|
|
+ invitationRecordDao.save(record);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
return invitatrecords;
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
+ /**
|
|
|
+ * 将企业信息封装到邀请记录
|
|
|
+ *
|
|
|
+ * @param record 邀请记录
|
|
|
+ * @param e 企业信息
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private InvitationRecord covert(InvitationRecord record, Enterprise e) {
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ record.setRegisterDate(e.getEnDate());
|
|
|
+ record.setEnAddress(e.getEnAddress());
|
|
|
+ record.setEnCorporation(e.getEnCorporation());
|
|
|
+ if (null != e.getEnAdminuu()) {
|
|
|
+ User admin = userDao.findOne(e.getEnAdminuu());
|
|
|
+ if (null != admin) {
|
|
|
+ record.setAdminName(admin.getUserName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return record;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public List<EnterpriseBaseInfo> findByName(String name) {
|
|
|
List<EnterpriseBaseInfo> baseInfoList = new ArrayList<EnterpriseBaseInfo>();
|
|
|
List<Enterprise> enterprises = enterpriseDao.findByName(name);
|
|
|
@@ -262,4 +349,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);
|
|
|
+ }
|
|
|
}
|