意向书联调

This commit is contained in:
wxp01309236
2023-06-21 19:52:46 +08:00
parent ad21c8727e
commit b25bf8f614
10 changed files with 103 additions and 54 deletions

View File

@@ -1,6 +1,7 @@
package com.cool.store.service;
import com.cool.store.entity.HyPartnerBaseInfoDO;
import com.cool.store.entity.HyPartnerUserInfoDO;
import com.cool.store.request.AddTagsRequest;
import com.cool.store.request.PartnerBaseInfoRequest;
import com.cool.store.vo.PartnerBaseInfoVO;
@@ -31,5 +32,8 @@ public interface HyPartnerBaseInfoService {
Boolean changeBinding(String idCard, Long lineId, PartnerUserInfoVO currentUser);
HyPartnerBaseInfoDO generateBaseInfo(HyPartnerUserInfoDO hyPartnerUserInfoDO, Long partnerLineId);
}

View File

@@ -4,6 +4,7 @@ import com.cool.store.request.BaseUserInfoRequest;
import com.cool.store.request.PartnerIntentInfoRequest;
import com.cool.store.vo.PartnerIntentApplyInfoVO;
import com.cool.store.vo.PartnerIntentInfoVO;
import com.cool.store.vo.PartnerUserInfoVO;
import com.github.pagehelper.PageInfo;
/**
@@ -40,6 +41,6 @@ public interface HyPartnerIntentInfoService {
String submitPartnerIntentInfo(PartnerIntentInfoRequest partnerIntentInfoRequest);
PartnerIntentInfoVO queryPartnerIntentInfo(String partnerId, Long lineId);
PartnerIntentInfoVO queryPartnerIntentInfo(PartnerUserInfoVO userInfoVO, Long lineId);
}

View File

@@ -1,5 +1,6 @@
package com.cool.store.service;
import com.cool.store.entity.HyPartnerLineInfoDO;
import com.cool.store.request.CloseFollowRequest;
import com.cool.store.request.LineRequest;
import com.cool.store.request.PrivateSeaLineListRequest;
@@ -148,4 +149,15 @@ public interface HyPartnerLineInfoService {
InterviewVO getInterviewInfo(Long lineId);
/**
* 生成一条默认线索
* @param partnerId
* @param wantShopArea
* @param acceptAdjustType
* @return
*/
HyPartnerLineInfoDO generateDefaultLineInfo(String partnerId, String wantShopArea, Integer acceptAdjustType);
Long checkGenerateNewLineId(Long lineId);
}

View File

@@ -5,8 +5,10 @@ import com.alibaba.fastjson.JSONObject;
import com.cool.store.constants.RedisConstant;
import com.cool.store.dao.HyPartnerBaseInfoDAO;
import com.cool.store.dao.HyPartnerLineInfoDAO;
import com.cool.store.dao.HyPartnerUserInfoDAO;
import com.cool.store.entity.HyPartnerBaseInfoDO;
import com.cool.store.entity.HyPartnerLineInfoDO;
import com.cool.store.entity.HyPartnerUserInfoDO;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.LineStatusEnum;
import com.cool.store.enums.WorkflowStageEnum;
@@ -25,6 +27,7 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.MessageFormat;
import java.util.Collections;
import java.util.Date;
/**
@@ -44,6 +47,9 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService {
@Resource
HyPartnerLineInfoDAO hyPartnerLineInfoDAO;
@Resource
HyPartnerUserInfoDAO hyPartnerUserInfoDAO;
@Resource
private RedisUtilPool redisUtilPool;
@@ -153,6 +159,22 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService {
return true;
}
@Override
public HyPartnerBaseInfoDO generateBaseInfo(HyPartnerUserInfoDO hyPartnerUserInfoDO, Long partnerLineId) {
HyPartnerBaseInfoDO hyPartnerBaseInfoDO = hyPartnerBaseInfoDAO.getByPartnerIdAndLineId(hyPartnerUserInfoDO.getPartnerId(), partnerLineId);
if(hyPartnerBaseInfoDO == null){
hyPartnerBaseInfoDO = new HyPartnerBaseInfoDO();
hyPartnerBaseInfoDO.setPartnerId(hyPartnerUserInfoDO.getPartnerId());
hyPartnerBaseInfoDO.setPartnerLineId(partnerLineId);
hyPartnerBaseInfoDO.setMobile(hyPartnerUserInfoDO.getMobile());
hyPartnerBaseInfoDO.setUsername(hyPartnerUserInfoDO.getUsername());
hyPartnerBaseInfoDO.setStatus(Integer.valueOf(WorkflowStatusEnum.INTENT_0.getCode()));
hyPartnerBaseInfoDO.setSex(1);
hyPartnerBaseInfoDAO.insertSelective(hyPartnerBaseInfoDO);
}
return hyPartnerBaseInfoDO;
}
private void fillBaseInfoIdCard(HyPartnerBaseInfoDO newBaseInfo, String idCard, String idCardPhotoFront, String idCardPhotoBlack,
String username, Integer sex, Date birthdate, String nation, String liveAddress, Integer status) {
newBaseInfo.setIdCard(idCard);

View File

@@ -22,6 +22,7 @@ import com.cool.store.utils.RedisUtilPool;
import com.cool.store.utils.StringUtil;
import com.cool.store.vo.PartnerIntentApplyInfoVO;
import com.cool.store.vo.PartnerIntentInfoVO;
import com.cool.store.vo.PartnerUserInfoVO;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.google.common.collect.Lists;
@@ -51,14 +52,10 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
@Resource
HyPartnerUserInfoDAO hyPartnerUserInfoDAO;
@Resource
HyPartnerLineInfoDAO hyPartnerLineInfoDAO;
@Resource
HyPartnerBaseInfoDAO hyPartnerBaseInfoDAO;
@Resource
private RedisUtilPool redisUtilPool;
@Resource
EnterpriseUserDAO enterpriseUserDAO;
@Resource
HyOpenAreaInfoDAO hyOpenAreaInfoDAO;
@Override
@@ -152,14 +149,15 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
}
@Override
public PartnerIntentInfoVO queryPartnerIntentInfo(String partnerId, Long lineId) {
String cacheKey = MessageFormat.format(RedisConstant.PARTNER_INTENTINFO_CACHE_KEY, partnerId, lineId);
public PartnerIntentInfoVO queryPartnerIntentInfo(PartnerUserInfoVO userInfoVO, Long lineId) {
String cacheKey = MessageFormat.format(RedisConstant.PARTNER_INTENTINFO_CACHE_KEY, userInfoVO.getPartnerId(), lineId);
if (StringUtils.isNotBlank(redisUtilPool.getString(cacheKey))) {
PartnerIntentInfoVO intentInfoVO = JSONObject.parseObject(redisUtilPool.getString(cacheKey), PartnerIntentInfoVO.class);
return intentInfoVO;
}
HyPartnerIntentInfoDO intentInfoDO = hyPartnerIntentInfoDAO.getByPartnerIdAndLineId(partnerId, lineId);
HyPartnerIntentInfoDO intentInfoDO = hyPartnerIntentInfoDAO.getByPartnerIdAndLineId(userInfoVO.getPartnerId(), lineId);
PartnerIntentInfoVO intentInfoVO = new PartnerIntentInfoVO();
intentInfoVO.setWantShopArea(userInfoVO.getWantShopArea());
if (intentInfoDO != null){
BeanUtil.copyProperties(intentInfoDO, intentInfoVO);
}

View File

@@ -17,6 +17,7 @@ import com.cool.store.request.PrivateSeaLineListRequest;
import com.cool.store.request.QueryByInterviewPlanIdReq;
import com.cool.store.service.AliyunService;
import com.cool.store.service.EnterpriseUserService;
import com.cool.store.service.HyPartnerBaseInfoService;
import com.cool.store.service.HyPartnerLineInfoService;
import com.cool.store.service.InterviewService;
import com.cool.store.utils.CoolDateUtils;
@@ -28,7 +29,6 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -52,8 +52,6 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
@Resource
EnterpriseUserDAO enterpriseUserDAO;
@Resource
UserRegionMappingDAO userRegionMappingDAO;
@Resource
private RedisUtilPool redisUtilPool;
@Resource
HyOpenAreaInfoDAO hyOpenAreaInfoDAO;
@@ -71,6 +69,8 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
InterviewService interviewService;
@Resource
HyPartnerInterviewPlanDAO hyPartnerInterviewPlanDAO;
@Resource
private HyPartnerBaseInfoService hyPartnerBaseInfoService;
@Override
@@ -511,6 +511,42 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
}
return null;
}
@Override
public HyPartnerLineInfoDO generateDefaultLineInfo(String partnerId, String wantShopArea, Integer acceptAdjustType) {
// 生成一条线索
HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoDAO.getByPartnerId(partnerId);
if(hyPartnerLineInfoDO == null){
hyPartnerLineInfoDO = new HyPartnerLineInfoDO();
hyPartnerLineInfoDO.setPartnerId(partnerId);
hyPartnerLineInfoDO.setWorkflowStage(WorkflowStageEnum.INTENT.getCode());
hyPartnerLineInfoDO.setWorkflowStatus(WorkflowStatusEnum.INTENT_0.getCode());
Boolean flag = this.assignFollowUser(hyPartnerLineInfoDO.getPartnerId(), wantShopArea, acceptAdjustType);
hyPartnerLineInfoDO.setLineStatus(flag ? LineStatusEnum.PRIVATE_SEAS.getCode() : LineStatusEnum.PUBLIC_SEAS.getCode());
if (flag){
hyPartnerLineInfoDO.setInvestmentManager("ou_7a6a19ae800afde783b0ec2dabaabf95");
}
hyPartnerLineInfoDAO.insertSelective(hyPartnerLineInfoDO);
}
return hyPartnerLineInfoDO;
}
@Override
public Long checkGenerateNewLineId(Long lineId) {
HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(lineId);
// 15天之后可以继续填写意向信息把之前的线索删除
if(hyPartnerLineInfoDO != null && hyPartnerLineInfoDO.getCloseTime() != null &&
CoolDateUtils.getDateBefore(hyPartnerLineInfoDO.getCloseTime(), 15).before(new Date())){
//将老的线索置为删除状态
hyPartnerLineInfoDAO.batchDeleted(Collections.singletonList(hyPartnerLineInfoDO.getId()));
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(hyPartnerLineInfoDO.getPartnerId());
// 生成一条新线索
HyPartnerLineInfoDO newLineInfoDO = this.generateDefaultLineInfo(hyPartnerLineInfoDO.getPartnerId(), hyPartnerUserInfoDO.getWantShopArea(), hyPartnerUserInfoDO.getAcceptAdjustType());
// 生成一条意向基本信息
hyPartnerBaseInfoService.generateBaseInfo(hyPartnerUserInfoDO, newLineInfoDO.getId());
return newLineInfoDO.getId();
}
return hyPartnerLineInfoDO.getId();
}
/**
@@ -583,4 +619,5 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
stageCountVO.setReservationInterviewCount(stageCountDTO.getReservationInterviewCount());
return stageCountVO;
}
}

View File

@@ -3,18 +3,14 @@ package com.cool.store.service.impl;
import com.cool.store.constants.CommonConstants;
import com.cool.store.dao.HyOpenAreaInfoDAO;
import com.cool.store.dao.HyPartnerBaseInfoDAO;
import com.cool.store.dao.HyPartnerLineInfoDAO;
import com.cool.store.dao.HyPartnerUserInfoDAO;
import com.cool.store.entity.HyOpenAreaInfoDO;
import com.cool.store.entity.HyPartnerBaseInfoDO;
import com.cool.store.entity.HyPartnerLineInfoDO;
import com.cool.store.entity.HyPartnerUserInfoDO;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.LineStatusEnum;
import com.cool.store.enums.WorkflowStageEnum;
import com.cool.store.enums.WorkflowStatusEnum;
import com.cool.store.exception.ServiceException;
import com.cool.store.request.PartnerUserInfoRequest;
import com.cool.store.service.HyPartnerBaseInfoService;
import com.cool.store.service.HyPartnerLineInfoService;
import com.cool.store.service.PartnerUserInfoService;
import com.cool.store.vo.InviteCodeDetailVO;
@@ -26,17 +22,14 @@ import javax.annotation.Resource;
@Service
public class PartnerUserInfoServiceImpl implements PartnerUserInfoService {
@Autowired
private HyPartnerBaseInfoDAO hyPartnerBaseInfoDAO;
@Autowired
private HyPartnerUserInfoDAO hyPartnerUserInfoDAO;
@Resource
private HyPartnerLineInfoDAO hyPartnerLineInfoDAO;
HyPartnerLineInfoService hyPartnerLineInfoService;
@Resource
HyPartnerLineInfoService hyPartnerLineInfoService;
private HyPartnerBaseInfoService hyPartnerBaseInfoService;
@Resource
HyOpenAreaInfoDAO hyOpenAreaInfoDAO;
@@ -99,33 +92,10 @@ public class PartnerUserInfoServiceImpl implements PartnerUserInfoService {
hyPartnerUserInfoDO.setRecommendPartnerName(partnerUserInfoRequest.getRecommendPartnerName());
hyPartnerUserInfoDO.setRecommendPartnerMobile(partnerUserInfoRequest.getRecommendPartnerMobile());
hyPartnerUserInfoDAO.updateByPrimaryKeySelective(hyPartnerUserInfoDO);
// 生成一条线索
HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoDAO.getByPartnerId(hyPartnerUserInfoDO.getPartnerId());
if(hyPartnerLineInfoDO == null){
hyPartnerLineInfoDO = new HyPartnerLineInfoDO();
hyPartnerLineInfoDO.setPartnerId(hyPartnerUserInfoDO.getPartnerId());
hyPartnerLineInfoDO.setWorkflowStage(WorkflowStageEnum.INTENT.getCode());
hyPartnerLineInfoDO.setWorkflowStatus(WorkflowStatusEnum.INTENT_0.getCode());
Boolean flag = hyPartnerLineInfoService.assignFollowUser(hyPartnerLineInfoDO.getPartnerId(), partnerUserInfoRequest.getWantShopArea(), partnerUserInfoRequest.getAcceptAdjustType());
hyPartnerLineInfoDO.setLineStatus(flag ? LineStatusEnum.PRIVATE_SEAS.getCode() : LineStatusEnum.PUBLIC_SEAS.getCode());
if (flag){
hyPartnerLineInfoDO.setInvestmentManager("ou_7a6a19ae800afde783b0ec2dabaabf95");
}
hyPartnerLineInfoDAO.insertSelective(hyPartnerLineInfoDO);
}
// 生成意向基本信息
HyPartnerBaseInfoDO hyPartnerBaseInfoDO = hyPartnerBaseInfoDAO.getByPartnerIdAndLineId(hyPartnerUserInfoDO.getPartnerId(), hyPartnerLineInfoDO.getId());
if(hyPartnerBaseInfoDO == null){
hyPartnerBaseInfoDO = new HyPartnerBaseInfoDO();
hyPartnerBaseInfoDO.setPartnerId(hyPartnerUserInfoDO.getPartnerId());
hyPartnerBaseInfoDO.setPartnerLineId(hyPartnerLineInfoDO.getId());
hyPartnerBaseInfoDO.setMobile(hyPartnerUserInfoDO.getMobile());
hyPartnerBaseInfoDO.setUsername(hyPartnerUserInfoDO.getUsername());
hyPartnerBaseInfoDO.setStatus(Integer.valueOf(WorkflowStatusEnum.INTENT_0.getCode()));
hyPartnerBaseInfoDO.setSex(1);
hyPartnerBaseInfoDAO.insertSelective(hyPartnerBaseInfoDO);
}
HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoService.generateDefaultLineInfo(hyPartnerUserInfoDO.getPartnerId(), partnerUserInfoRequest.getWantShopArea(), partnerUserInfoRequest.getAcceptAdjustType());
// 生成一条意向基本信息
hyPartnerBaseInfoService.generateBaseInfo(hyPartnerUserInfoDO, hyPartnerLineInfoDO.getId());
HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(Long.valueOf(partnerUserInfoRequest.getWantShopArea()));
return hyOpenAreaInfoDO != null ? hyOpenAreaInfoDO.getAreaStatus() : "";
}

View File

@@ -171,7 +171,7 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService {
userInfoVO.setOpenid(hyPartnerUserPlatformBindDO.getPlatformUserId());
if(StringUtils.isNotBlank(hyPartnerUserInfoDO.getWantShopArea())){
HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(Long.valueOf(hyPartnerUserInfoDO.getWantShopArea()));
userInfoVO.setWantShopAreaName(hyOpenAreaInfoDO.getAreaPath().replace("/", ""));
userInfoVO.setWantShopAreaName(hyOpenAreaInfoDO.getAreaPath().replace("/", " ").trim());
}
HyPartnerLineInfoDO lineInfoDO = hyPartnerLineInfoDAO.getByPartnerId(hyPartnerUserInfoDO.getPartnerId());
if (lineInfoDO != null){