| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579 |
- package com.uas.sso.service.impl;
- import com.uas.message.mail.service.MailService;
- import com.uas.message.sms.service.SmsService;
- import com.uas.sso.core.Const;
- import com.uas.sso.core.Status;
- import com.uas.sso.dao.PartnershipRecordDao;
- import com.uas.sso.dao.UserDao;
- import com.uas.sso.dao.UserspaceDao;
- import com.uas.sso.entity.*;
- import com.uas.sso.exception.VisibleError;
- import com.uas.sso.logging.LoggerManager;
- import com.uas.sso.logging.PartnershipBufferedLogger;
- import com.uas.sso.service.*;
- import com.uas.sso.support.SystemSession;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.data.domain.Page;
- import org.springframework.data.domain.PageRequest;
- import org.springframework.data.domain.Pageable;
- import org.springframework.data.domain.Sort;
- import org.springframework.data.jpa.domain.Specification;
- import org.springframework.stereotype.Service;
- import org.springframework.ui.ModelMap;
- import org.springframework.util.StringUtils;
- import javax.persistence.criteria.*;
- import java.sql.Timestamp;
- import java.util.ArrayList;
- import java.util.List;
- @Service
- public class PartnershipServiceImpl implements PartnershipService {
- @Autowired
- private UserspaceService userSpaceService;
- @Autowired
- private UserService userService;
- @Autowired
- private PartnershipRecordDao partnershipRecordDao;
- @Autowired
- private UserspaceDao userSpaceDao;
- @Autowired
- private SettingService settingService;
- @Autowired
- private MailService mailService;
- @Autowired
- private SmsService smsService;
- @Autowired
- private UserDao userDao;
- @Autowired
- private AppService appService;
- PartnershipBufferedLogger partnershipLog = LoggerManager.getLogger(PartnershipBufferedLogger.class);
- @Override
- public void sendRequestBySpaceUU(Long spaceUU) {
- // 获取申请者和被申请者企业uu号
- Userspace vendUserSpace = userSpaceService.findOne(spaceUU);
- UserAccount loginUser = SystemSession.getUserAccount();
- if (loginUser == null) {
- throw new VisibleError("未检测到当前用户信息,请先通过UAS系统或商务平台登录");
- }
- User custUser = userService.findOne(loginUser.getUserUU());
- Userspace custUserSpace = userSpaceService.findOne(loginUser.getSpaceUU());
- if (spaceUU.equals(loginUser.getSpaceUU())) {
- throw new VisibleError("不能添加自己企业为合作伙伴");
- }
- // 判断两个企业是否已经申请合作伙伴关系
- PartnershipRecord oldSendRecord = partnershipRecordDao.findByCustSpaceUUAndVendSpaceUU(custUserSpace.getSpaceUU(),
- vendUserSpace.getSpaceUU());
- if (oldSendRecord != null) {
- if (oldSendRecord.getStatusCode().equals(Status.UNAUDIT.getCode())) {
- throw new VisibleError("对该企业的申请已经存在,请不要重复申请");
- }
- if (oldSendRecord.getStatusCode().equals(Status.ENABLED.getCode())) {
- throw new VisibleError("该企业已经同意您的申请,请不要重复申请");
- }
- }
- // 判断被申请者有没有发出申请
- PartnershipRecord oldReceiveRecord = partnershipRecordDao.findByCustSpaceUUAndVendSpaceUU(vendUserSpace.getSpaceUU(),
- custUserSpace.getSpaceUU());
- if (oldReceiveRecord != null) {
- if (!oldReceiveRecord.getStatusCode().equals(Status.UNAPPLY.getCode())) {
- throw new VisibleError("该企业已经向您发出了申请,请注意查看您收到的申请记录");
- }
- }
- // 未申请或拒绝状态,添加一条记录
- PartnershipRecord record = new PartnershipRecord(loginUser.getAppId(), vendUserSpace, custUserSpace);
- record.setStatusCode(Status.UNAUDIT.getCode());
- record.setStatus(Status.UNAUDIT.getPhrase());
- record.setCustSpaceUU(custUserSpace.getSpaceUU());
- record.setVendSpaceUU(vendUserSpace == null ? null : vendUserSpace.getSpaceUU());
- record.setRequestDate(new Timestamp(System.currentTimeMillis()));
- // 可能发送过申请,添加id
- record.setId(oldSendRecord == null ? oldReceiveRecord == null ? null : oldReceiveRecord.getId() : oldSendRecord.getId());
- partnershipRecordDao.save(record);
- partnershipLog.info(record.getCustSpaceName() + "(" + record.getCustSpaceUU() + ")向" +
- record.getVendSpaceName() + "(" + record.getVendSpaceUU() + ")发出了建立合作关系的申请");
- }
- @Override
- public Page<PartnershipRecord> findAllSendUnAudit(String name, String businessCode, String custUserName,
- int pageNumber, int pageSize) {
- UserAccount loginUser = SystemSession.getUserAccount();
- if (loginUser == null) {
- throw new VisibleError("未检测到当前用户信息,请先通过UAS系统或商务平台登录");
- }
- Pageable pageable = new PageRequest(pageNumber, pageSize);
- return partnershipRecordDao.findAll(new Specification<PartnershipRecord>() {
- @Override
- public Predicate toPredicate(Root<PartnershipRecord> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
- List<Predicate> list = new ArrayList<>();
- list.add(cb.equal(root.join("vendSpace", JoinType.INNER).get("spaceName").as(String.class), name));
- list.add(cb.equal(root.join("vendSpace", JoinType.INNER).get("businessCode").as(String.class), businessCode));
- list.add(cb.equal(root.join("custSpace", JoinType.INNER).get("spaceName").as(String.class), custUserName));
- list.add(cb.equal(root.get("status").as(Short.class), Status.UNAUDIT.getCode()));
- Predicate[] predicates = new Predicate[list.size()];
- predicates = list.toArray(predicates);
- return cb.and(predicates);
- }
- }, pageable);
- }
- @Override
- public Page<PartnershipRecord> findAllSendEnable(String name, String businessCode, String custUserName,
- int pageNumber, int pageSize) {
- UserAccount loginUser = SystemSession.getUserAccount();
- if (loginUser == null) {
- throw new VisibleError("未检测到当前用户信息,请先通过UAS系统或商务平台登录");
- }
- Pageable pageable = new PageRequest(pageNumber, pageSize);
- return partnershipRecordDao.findAll(new Specification<PartnershipRecord>() {
- @Override
- public Predicate toPredicate(Root<PartnershipRecord> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
- List<Predicate> list = new ArrayList<>();
- list.add(cb.equal(root.join("vendSpace", JoinType.INNER).get("spaceName").as(String.class), name));
- list.add(cb.equal(root.join("vendSpace", JoinType.INNER).get("businessCode").as(String.class), businessCode));
- list.add(cb.equal(root.join("custSpace", JoinType.INNER).get("spaceName").as(String.class), custUserName));
- list.add(cb.equal(root.get("status").as(Short.class), Status.ENABLED.getCode()));
- Predicate[] predicates = new Predicate[list.size()];
- predicates = list.toArray(predicates);
- return cb.and(predicates);
- }
- }, pageable);
- }
- @Override
- public Page<PartnershipRecord> findAllSendUnApply(String name, String businessCode, String custUserName,
- int pageNumber, int pageSize) {
- UserAccount loginUser = SystemSession.getUserAccount();
- if (loginUser == null) {
- throw new VisibleError("未检测到当前用户信息,请先通过UAS系统或商务平台登录");
- }
- Pageable pageable = new PageRequest(pageNumber, pageSize);
- return partnershipRecordDao.findAll(new Specification<PartnershipRecord>() {
- @Override
- public Predicate toPredicate(Root<PartnershipRecord> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
- List<Predicate> list = new ArrayList<>();
- list.add(cb.equal(root.join("vendSpace", JoinType.INNER).get("spaceName").as(String.class), name));
- list.add(cb.equal(root.join("vendSpace", JoinType.INNER).get("businessCode").as(String.class), businessCode));
- list.add(cb.equal(root.join("custSpace", JoinType.INNER).get("spaceName").as(String.class), custUserName));
- list.add(cb.equal(root.get("status").as(Short.class), Status.UNAPPLY.getCode()));
- Predicate[] predicates = new Predicate[list.size()];
- predicates = list.toArray(predicates);
- return cb.and(predicates);
- }
- }, pageable);
- }
- @Override
- public Page<PartnershipRecord> findAllReceivedUnAudit(String name, String businessCode, String custUserName,
- int pageNumber, int pageSize) {
- UserAccount loginUser = SystemSession.getUserAccount();
- if (loginUser == null) {
- throw new VisibleError("未检测到当前用户信息,请先通过UAS系统或商务平台登录");
- }
- Pageable pageable = new PageRequest(pageNumber, pageSize);
- return partnershipRecordDao.findAll(new Specification<PartnershipRecord>() {
- @Override
- public Predicate toPredicate(Root<PartnershipRecord> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
- List<Predicate> list = new ArrayList<>();
- list.add(cb.equal(root.join("vendSpace", JoinType.INNER).get("spaceName").as(String.class), name));
- list.add(cb.equal(root.join("vendSpace", JoinType.INNER).get("businessCode").as(String.class), businessCode));
- list.add(cb.equal(root.join("custSpace", JoinType.INNER).get("spaceName").as(String.class), custUserName));
- list.add(cb.equal(root.get("status").as(Short.class), Status.UNAUDIT.getCode()));
- Predicate[] predicates = new Predicate[list.size()];
- predicates = list.toArray(predicates);
- return cb.and(predicates);
- }
- }, pageable);
- }
- //
- // @Override
- // public Page<PartnershipRecord> findAllReceivedEnable(String name, String businessCode, String custUserName,
- // int pageNumber, int pageSize) {
- // User user = SystemSession.getUser();
- // if (user == null) {
- // throw new VisibleError("未检测到当前用户信息,请先通过UAS系统或商务平台登录");
- // }
- // return partnershipRecordDao.findAllReceivedView(pageNumber, businessCode, custUserName, pageSize, name,
- // user.getSpaceUID(), Status.ENABLED.value());
- // }
- //
- // @Override
- // public Page<PartnershipRecord> findAllReceivedUnApply(String name, String businessCode, String custUserName,
- // int pageNumber, int pageSize) {
- // User user = SystemSession.getUser();
- // if (user == null) {
- // throw new VisibleError("未检测到当前用户信息,请先通过UAS系统或商务平台登录");
- // }
- // return partnershipRecordDao.findAllReceivedView(pageNumber, businessCode, custUserName, pageSize, name,
- // user.getSpaceUID(), Status.UNAPPLY.value());
- // }
- //
- // @Override
- // public PartnershipRecord findSendRequestById(Long id) {
- // return partnershipRecordDao.findById(id);
- // }
- //
- // @Override
- // public PartnershipRecord findReceivedRequestById(Long id) {
- // return partnershipRecordDao.findById(id);
- // }
- //
- // @Override
- // public void enable(Long id) {
- // User user = SystemSession.getUser();
- // PartnershipRecord partner = partnershipRecordDao.findById(id);
- // if (user == null) {
- // throw new VisibleError("未检测到当前用户信息,请先通过UAS系统或商务平台登录");
- // }
- // if (partner == null) {
- // throw new VisibleError("未找到该企业信息");
- // }
- // if (partner != null && user != null) {
- // logger.info(user.getName() + "同意了" + partner.getCustName() + "的请求");
- // partner.setStatus(Status.ENABLED.getPhrase());
- // partner.setStatusCode(Status.ENABLED.value());
- // partner.setOperateDate(new Date());
- // partner.setVendUserCode(user.getDialectUID());
- // partner.setVendUserTel(user.getUid());
- // partner.setVendUserEmail(user.getSecondUID());
- // partner.setVendUserName(user.getName());
- // partner.setId(id);
- // partnershipRecordDao.save(partner);
- // }
- //
- // }
- //
- // @Override
- // public void disable(Long id, String reason) {
- // User user = SystemSession.getUser();
- // if (user == null) {
- // throw new VisibleError("未检测到当期用户信息,请先通过UAS系统或商务平台登录");
- // } else {
- // PartnershipRecord partner = partnershipRecordDao.findById(id);
- // logger.info(user.getName() + "拒绝了" + partner.getCustName() + "的请求");
- // partner.setStatus(Status.UNAPPLY.getPhrase());
- // partner.setStatusCode(Status.UNAPPLY.value());
- // partner.setReason(reason);
- // partner.setOperateDate(new Date());
- // partner.setVendUserCode(user.getDialectUID());
- // partner.setVendUserName(user.getName());
- // partner.setVendUserEmail(user.getSecondUID());
- // partner.setVendUserName(user.getName());
- // partner.setId(id);
- // partnershipRecordDao.save(partner);
- // }
- // }
- //
- // @Override
- // public void resendRequestById(Long id) {
- // User user = SystemSession.getUser();
- // if (user == null) {
- // throw new VisibleError("未检测到当期用户信息,请先通过UAS系统或商务平台登录");
- // } else {
- // PartnershipRecord partner = partnershipRecordDao.findById(id);
- // logger.info(user.getDialectUID() + "向" + partner.getVendName() + "发出了建立合作关系的申请");
- // partner.setStatus(Status.UNAUDIT.getPhrase());
- // partner.setStatusCode(Status.UNAUDIT.value());
- // partner.setRequestDate(new Date());
- // partner.setCustUserCode(user.getDialectUID());
- // partner.setCustUserEmail(user.getSecondUID());
- // partner.setCustUserName(user.getName());
- // partner.setCustUserTel(user.getUid());
- // partnershipRecordDao.save(partner);
- // }
- // }
- //
- // @Override
- // public PartnershipRecord findBycustUIDAndVendUID(String custuid, String venduid) {
- // User user = SystemSession.getUser();
- // if (user == null) {
- // throw new VisibleError("未检测到当前用户信息,请先通过UAS系统或商务平台登录");
- // }
- // return partnershipRecordDao.findByCustUIDAndVendUID(custuid, venduid);
- // }
- //
- // @Override
- // public ModelMap getsendRequestCount() {
- // User user = SystemSession.getUser();
- // if(user==null){
- // throw new VisibleError("未检测到当前用户信息,请先通过UAS系统或商务平台登录");
- // }
- // ModelMap map = new ModelMap("全部", partnershipRecordDao.getAllSendCount(user.getSpaceUID()));
- // map.addAllAttributes(partnershipRecordDao.getSendRequestCount(user.getSpaceUID()));
- // return map;
- // }
- //
- // @Override
- // public ModelMap getreceivedRequestCount() {
- // User user = SystemSession.getUser();
- // if (user == null) {
- // throw new VisibleError("未检测到当前用户信息,请先通过UAS系统或商务平台登录");
- // }
- // ModelMap map = new ModelMap("全部", partnershipRecordDao.getAllReceivedCount(user.getSpaceUID()));
- // map.addAllAttributes(partnershipRecordDao.getReceivedRequestCount(user.getSpaceUID()));
- // return map;
- // }
- //
- @Override
- public Page<PartnershipRecord> findByBusinessCodeAndStatusCode(String businessCode, Integer statusCode, String keyword,
- int pageNumber, int pageSize) {
- Pageable pageable = new PageRequest(pageNumber, pageSize);
- return partnershipRecordDao.findAll(new Specification<PartnershipRecord>() {
- @Override
- public Predicate toPredicate(Root<PartnershipRecord> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
- // 添加排序
- Predicate preStatusCode = cb.equal(root.get("statusCode").as(Short.class), statusCode);
- query.orderBy(cb.desc(root.get("statusCode")));
- // 营业执照号为空,则查询所有的
- if (StringUtils.isEmpty(businessCode)) {
- if (!StringUtils.isEmpty(statusCode)) {
- query.where(cb.and(preStatusCode));
- }
- return query.getRestriction();
- }
- // 精确查询条件
- Predicate preVendBusinessCode = cb.equal(root.join("vendSpace", JoinType.INNER).get("businessCode").as(String.class), businessCode);
- Predicate preCustBusinessCode = cb.equal(root.join("custSpace", JoinType.INNER).get("businessCode").as(String.class), businessCode);
- // 关键词为空,只根据营业执照号查询
- if (StringUtils.isEmpty(keyword)) {
- if (!StringUtils.isEmpty(statusCode)) {
- query.where(cb.and(preStatusCode, cb.or(preVendBusinessCode, preCustBusinessCode)));
- return query.getRestriction();
- }
- query.where(cb.or(preVendBusinessCode, preCustBusinessCode));
- return query.getRestriction();
- }
- // 申请人模糊查询条件
- List<Predicate> keyCustPredicates = new ArrayList<Predicate>();
- keyCustPredicates.add(cb.like(root.join("custSpace", JoinType.INNER).get("spaceName").as(String.class), "%" + keyword + "%"));
- keyCustPredicates.add(cb.like(root.join("custSpace", JoinType.INNER).get("businessCode").as(String.class), "%" + keyword + "%"));
- keyCustPredicates.add(cb.like(root.join("custSpace", JoinType.INNER).get("profession").as(String.class), "%" + keyword + "%"));
- keyCustPredicates.add(cb.like(root.join("custSpace", JoinType.INNER).get("tags").as(String.class), "%" + keyword + "%"));
- keyCustPredicates.add(cb.like(root.join("custSpace", JoinType.INNER).get("spaceUU").as(String.class), "%" + keyword + "%"));
- keyCustPredicates.add(cb.like(root.join("custSpace", JoinType.INNER).get("regAddress").as(String.class), "%" + keyword + "%"));
- keyCustPredicates.add(cb.like(root.join("custSpace", JoinType.INNER).get("admin").get("vipName").as(String.class), "%" + keyword + "%"));
- keyCustPredicates.add(cb.like(root.join("custSpace", JoinType.INNER).get("admin").get("mobile").as(String.class), "%" + keyword + "%"));
- keyCustPredicates.add(cb.like(root.join("custSpace", JoinType.INNER).get("admin").get("email").as(String.class), "%" + keyword + "%"));
-
- // 接收人模糊查询条件
- List<Predicate> keyVendPredicates = new ArrayList<Predicate>();
- keyVendPredicates.add(cb.like(root.join("vendSpace", JoinType.INNER).get("spaceName").as(String.class), "%" + keyword + "%"));
- keyVendPredicates.add(cb.like(root.join("vendSpace", JoinType.INNER).get("businessCode").as(String.class), "%" + keyword + "%"));
- keyVendPredicates.add(cb.like(root.join("vendSpace", JoinType.INNER).get("profession").as(String.class), "%" + keyword + "%"));
- keyVendPredicates.add(cb.like(root.join("vendSpace", JoinType.INNER).get("tags").as(String.class), "%" + keyword + "%"));
- keyVendPredicates.add(cb.like(root.join("vendSpace", JoinType.INNER).get("spaceUU").as(String.class), "%" + keyword + "%"));
- keyVendPredicates.add(cb.like(root.join("vendSpace", JoinType.INNER).get("regAddress").as(String.class), "%" + keyword + "%"));
- keyVendPredicates.add(cb.like(root.join("vendSpace", JoinType.INNER).get("admin").get("vipName").as(String.class), "%" + keyword + "%"));
- keyVendPredicates.add(cb.like(root.join("vendSpace", JoinType.INNER).get("admin").get("mobile").as(String.class), "%" + keyword + "%"));
- keyVendPredicates.add(cb.like(root.join("vendSpace", JoinType.INNER).get("admin").get("email").as(String.class), "%" + keyword + "%"));
- Predicate[] custPredicates = new Predicate[keyCustPredicates.size()];
- Predicate[] vendPredicates = new Predicate[keyVendPredicates.size()];
- if (!StringUtils.isEmpty(statusCode)) {
- query.where(cb.and(preStatusCode, cb.or(cb.and(preVendBusinessCode, cb.or(keyCustPredicates.toArray(custPredicates))), cb.and(preCustBusinessCode, cb.or(keyVendPredicates.toArray(vendPredicates))))));
- return query.getRestriction();
- }
- query.where(cb.and(cb.or(cb.and(preVendBusinessCode, cb.or(keyCustPredicates.toArray(custPredicates))), cb.and(preCustBusinessCode, cb.or(keyVendPredicates.toArray(vendPredicates))))));
- return query.getRestriction();
- }
- }, pageable);
- }
- //
- // @Override
- // public Page<PartnershipRecord> findBySpaceUidAndStatusCodeFilterByPartnerUUs(String businessCode, Integer statusCode, String keyword, List<Long> partnerUUs,
- // int pageNumber, int pageSize) {
- // return partnershipRecordDao.findBySpaceUidAndStatusCodeFilterByPartnerUUs(businessCode, statusCode, keyword, partnerUUs, pageNumber,
- // pageSize);
- // }
- @Override
- public void addPartner(PartnershipRecord record) {
- // 根据营业执照号获取申请记录
- String custBusinessCode = StringUtils.isEmpty(record.getCustBusinessCode()) ? record.getCustSpace() == null ? null : record.getCustSpace().getBusinessCode() : record.getCustBusinessCode();
- String vendBusinessCode = StringUtils.isEmpty(record.getVendBusinessCode()) ? record.getVendSpace() == null ? null : record.getVendSpace().getBusinessCode() : record.getVendBusinessCode();
- if (custBusinessCode == null || vendBusinessCode == null) {
- throw new VisibleError("参数错误");
- }
- PartnershipRecord oldSendRecord = partnershipRecordDao.findByBusinessCode(custBusinessCode, vendBusinessCode);
- PartnershipRecord oldReceiveRecord = partnershipRecordDao.findByBusinessCode(vendBusinessCode, custBusinessCode);
- // 判断是否为已申请或已同意状态
- if (oldSendRecord != null && !oldSendRecord.getStatusCode().equals(Status.UNAPPLY.getCode())) {
- if (oldSendRecord.getStatusCode().equals(Status.UNAUDIT.getCode())) {
- throw new VisibleError("对该企业的申请已发出,请耐心等待对方审核");
- }
- if (oldSendRecord.getStatusCode().equals(Status.ENABLED.getCode())) {
- throw new VisibleError("您们已是合作伙伴,请不要重复申请");
- }
- }
- if (oldReceiveRecord != null && !oldReceiveRecord.getStatusCode().equals(Status.UNAPPLY.getCode())) {
- if (oldReceiveRecord.getStatusCode().equals(Status.UNAUDIT.getCode())) {
- throw new VisibleError("该企业已经向您发出了申请,请注意查看您收到的申请记录");
- }
- if (oldReceiveRecord.getStatusCode().equals(Status.ENABLED.getCode())) {
- throw new VisibleError("您们已是合作伙伴,请不要重复申请");
- }
- }
- // 未开通商务平台,提醒开通
- Userspace castSpace = userSpaceService.findByBusinessCode(custBusinessCode);
- Userspace vendSpace = userSpaceService.findByBusinessCode(vendBusinessCode);
- if (vendSpace == null) {
- ModelMap data = new ModelMap();
- data.put("vendorusername", record.getVendUserName());
- data.put("vendorname", record.getVendSpaceName());
- data.put("custname", castSpace.getSpaceName());
- Setting mailTplId = settingService.findOne("templateForSendEmailWhenAddPartner");
- if (!StringUtils.isEmpty(mailTplId) && !StringUtils.isEmpty(vendSpace.getAdmin().getEmail())) {
- mailService.send(mailTplId.getValue(), record.getVendUserEmail(), data);
- }
- Setting smsTplId = settingService.findOne("templateForSendSmsWhenAddPartner");
- if (!StringUtils.isEmpty(smsTplId) && !StringUtils.isEmpty(vendSpace.getAdmin().getMobile())) {
- smsService.send(smsTplId.getValue(), vendSpace.getAdmin().getMobile(),
- new Object[] { record.getVendUserName(), record.getVendSpaceName(), castSpace.getSpaceName() });
- }
- }
- // 未申请或拒绝状态,添加一条记录
- PartnershipRecord newRecord = new PartnershipRecord(record.getAppId(), vendSpace, castSpace);
- record.setStatusCode(Status.UNAUDIT.getCode());
- record.setStatus(Status.UNAUDIT.getPhrase());
- record.setRequestDate(new Timestamp(System.currentTimeMillis()));
- record.setId(oldSendRecord == null ? oldReceiveRecord == null ? null : oldReceiveRecord.getId() : oldSendRecord.getId());
- partnershipRecordDao.save(record);
- partnershipLog.info(record.getCustSpaceName() + "(" + record.getCustSpaceUU() + ")向" +
- record.getVendSpaceName() + "(" + record.getVendSpaceUU() + ")发出了建立合作关系的申请"); }
- @Override
- public ModelMap synchronizePartner(PartnershipRecord record) {
- ModelMap map = new ModelMap();
- PartnershipRecord oldSendRecord = partnershipRecordDao.findByBusinessCode(record.getCustBusinessCode(),
- record.getVendBusinessCode());
- PartnershipRecord oldReceiveRecord = partnershipRecordDao.findByBusinessCode(record.getVendBusinessCode(),
- record.getCustBusinessCode());
- if (oldSendRecord != null && !oldSendRecord.getStatusCode().equals(Status.ENABLED.getCode())) {
- oldSendRecord.setStatusCode(Status.ENABLED.getCode());
- oldSendRecord.setStatus(Status.ENABLED.getPhrase());
- oldSendRecord.setRequestDate(new Timestamp(System.currentTimeMillis()));
- oldSendRecord.setOperateDate(new Timestamp(System.currentTimeMillis()));
- partnershipRecordDao.save(oldSendRecord);
- partnershipLog.info(record.getCustSpaceName() + "(" + record.getCustSpaceUU() + ")与" +
- record.getVendSpaceName() + "(" + record.getVendSpaceUU() + ")通过单据交易建立了合作关系");
- }
- if (oldReceiveRecord != null && !oldReceiveRecord.getStatusCode().equals(Status.ENABLED.getCode())) {
- oldReceiveRecord.setStatusCode(Status.ENABLED.getCode());
- oldReceiveRecord.setStatus(Status.ENABLED.getPhrase());
- oldReceiveRecord.setRequestDate(new Timestamp(System.currentTimeMillis()));
- oldReceiveRecord.setOperateDate(new Timestamp(System.currentTimeMillis()));
- partnershipRecordDao.save(oldReceiveRecord);
- partnershipLog.info(record.getCustSpaceName() + "(" + record.getCustSpaceUU() + ")与" +
- record.getVendSpaceName() + "(" + record.getVendSpaceUU() + ")通过单据交易建立了合作关系");
- }
- if (oldSendRecord == null && oldReceiveRecord == null) {
- Userspace custSpace = userSpaceService.findByBusinessCode(record.getCustBusinessCode());
- Userspace vendSpace = userSpaceService.findByBusinessCode(record.getVendBusinessCode());
- record.setStatusCode(Status.ENABLED.getCode());
- record.setStatus(Status.ENABLED.getPhrase());
- record.setRequestDate(new Timestamp(System.currentTimeMillis()));
- record.setOperateDate(new Timestamp(System.currentTimeMillis()));
- record.setCustSpaceUU(custSpace == null ? null : custSpace.getSpaceUU());
- record.setVendSpaceUU(vendSpace == null ? null : vendSpace.getSpaceUU());
- partnershipRecordDao.save(record);
- partnershipLog.info(record.getCustSpaceName() + "(" + record.getCustSpaceUU() + ")与" +
- record.getVendSpaceName() + "(" + record.getVendSpaceUU() + ")通过单据交易建立了合作关系");
- map.put("success", "建立合作关系成功");
- }
- return map;
- }
- @Override
- public ModelMap acceptRequest(Long id, String vendUserTel, String appId) {
- PartnershipRecord record = partnershipRecordDao.findOne(id);
- ModelMap map = new ModelMap();
- User user = userService.findByMobile(vendUserTel);
- record.setAppId(appId);
- record.setOperateDate(new Timestamp(System.currentTimeMillis()));
- record.setVendUserName(user.getVipName());
- record.setStatus(Status.ENABLED.getPhrase());
- record.setStatusCode(Status.ENABLED.getCode());
- partnershipRecordDao.save(record);
- map.put("success", "审核成功");
- return map;
- }
- @Override
- public ModelMap rejectRequest(Long id, String reason, String vendUserTel, String appId) {
- PartnershipRecord record = partnershipRecordDao.findOne(id);
- ModelMap map = new ModelMap();
- User user = userDao.findByMobile(vendUserTel);
- record.setAppId(appId);
- record.setOperateDate(new Timestamp(System.currentTimeMillis()));
- record.setVendUserName(user.getVipName());
- record.setStatus(Status.UNAPPLY.getPhrase());
- record.setStatusCode(Status.UNAPPLY.getCode());
- record.setReason(reason);
- partnershipRecordDao.save(record);
- map.put("success", "审核成功");
- return map;
- }
- @Override
- public RequestStatus getRequestByBusinessCode(String custBusinessCode, String vendBusinessCode) {
- RequestStatus request = new RequestStatus();
- // 发出申请
- PartnershipRecord receivedRequest = partnershipRecordDao.findByBusinessCode(custBusinessCode, vendBusinessCode);
- if (receivedRequest != null) {
- request.setCustBusinessCode(receivedRequest.getCustSpace().getBusinessCode());
- request.setCustUU(receivedRequest.getCustSpace().getSpaceUU());
- request.setVendBusinessCode(receivedRequest.getVendSpace().getBusinessCode());
- request.setVendUU(receivedRequest.getVendSpace().getSpaceUU());
- request.setStatusCode(receivedRequest.getStatusCode());
- request.setMethod(Const.NO);
- if (receivedRequest.getStatusCode() == Status.UNAUDIT.getCode()) {
- request.setNeedAgreed(Const.YES);
- } else {
- request.setNeedAgreed(Const.NO);
- }
- }
- // 收到申请
- PartnershipRecord sendRequest = partnershipRecordDao.findByBusinessCode(vendBusinessCode, custBusinessCode);
- if (sendRequest != null) {
- request.setCustBusinessCode(receivedRequest.getCustSpace().getBusinessCode());
- request.setCustUU(receivedRequest.getCustSpace().getSpaceUU());
- request.setVendBusinessCode(receivedRequest.getVendSpace().getBusinessCode());
- request.setVendUU(receivedRequest.getVendSpace().getSpaceUU());
- request.setStatusCode(sendRequest.getStatusCode());
- request.setMethod(Const.YES);
- request.setNeedAgreed(Const.NO);
- }
- return request;
- }
- @Override
- public ModelMap getRequestTodo(String businessCode) {
- ModelMap map = new ModelMap();
- map.put("todo", partnershipRecordDao.getRequestTodo(businessCode));
- return map;
- }
- @Override
- public void invite(InvitationRecord record) {
- PartnershipRecord partnershipRecord = new PartnershipRecord();
- // partnershipRecordDao.saveInvitation(record);
- }
- }
|