Merge remote-tracking branch 'origin/cc_20230520_partner' into cc_20230520_partner

This commit is contained in:
zhangchenbiao
2023-06-20 22:15:24 +08:00
30 changed files with 282 additions and 142 deletions

View File

@@ -37,11 +37,12 @@ public class OSSServer {
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
try {
// 创建PutObjectRequest对象
// 创建PutObjectRequest对象
objectName = "partner/" + corpId + "/" + objectName;
PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, objectName, inputStream);
// 创建PutObject请求。
ossClient.putObject(putObjectRequest);
return cdnUrl + "/partner/" + corpId + "/" + objectName;
return cdnUrl + "/" + objectName;
} catch (OSSException oe) {
log.error("Caught an OSSException, which means your request made it to OSS, "
+ "but was rejected with an error response for some reason.");

View File

@@ -38,7 +38,7 @@ public interface HyPartnerIntentInfoService {
*/
Boolean updatePartnerIntentInfo(BaseUserInfoRequest baseUserInfoRequest);
Boolean submitPartnerIntentInfo(PartnerIntentInfoRequest partnerIntentInfoRequest);
String submitPartnerIntentInfo(PartnerIntentInfoRequest partnerIntentInfoRequest);
PartnerIntentInfoVO queryPartnerIntentInfo(String partnerId, Long lineId);

View File

@@ -19,10 +19,10 @@ public interface InterviewService {
/**
* 根据面试会议计划id查询面试信息
* @param interviewPlanId
* @param request
* @return
*/
InterviewVO getInterviewInfo(String interviewPlanId);
InterviewVO getInterviewInfo(QueryByInterviewPlanIdReq request);
/**
* 委托他人

View File

@@ -3,6 +3,7 @@ package com.cool.store.service;
import com.cool.store.dto.wx.MiniProgramLoginDTO;
import com.cool.store.request.MobileUpdateRequest;
import com.cool.store.vo.PartnerUserInfoVO;
/**
* @author zhangchenbiao
* @FileName: WechatMiniAppService
@@ -11,9 +12,10 @@ import com.cool.store.vo.PartnerUserInfoVO;
*/
public interface WechatMiniAppService {
PartnerUserInfoVO miniProgramLogin(MiniProgramLoginDTO param);
String getUserPhoneNumber(String mobileCode);
String updateUserPhoneNumber(MobileUpdateRequest request, PartnerUserInfoVO userInfoVO);
PartnerUserInfoVO getUserInfo(String mobile, String openId);

View File

@@ -277,12 +277,13 @@ public class FlowServiceImpl implements FlowService {
//上传 OSS
String passImageUrl = ossServer.uploadFileServer(inputStream, "passLetter/" + passCode + ".png");
//计算有效期截止日期
DateTime expiryDate = DateUtil.offsetDay(passTime, 60);
Date expiryDate = DateUtil.offsetDay(passTime, 60);
expiryDate = DateUtil.endOfDay(expiryDate);
HyPartnerInterviewDO interviewDO = new HyPartnerInterviewDO();
interviewDO.setId(Long.parseLong(interviewId));
interviewDO.setPassCode(passCode);
interviewDO.setPassTime(passTime);
interviewDO.setExpiryDate(expiryDate);
interviewDO.setExpiryDate(DateUtil.formatDateTime(expiryDate));
interviewDO.setPassPdfUrl(passPdfUrl);
interviewDO.setPassImageUrl(passImageUrl);
hyPartnerInterviewMapper.updateByPrimaryKeySelective(interviewDO);

View File

@@ -78,6 +78,17 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService {
fillBaseInfo(baseInfoDO, request);
hyPartnerBaseInfoDAO.updateByPrimaryKeySelective(baseInfoDO);
}
if(request.getSubmitFlag()){
// 更新线索表状态
HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(request.getPartnerLineId());
hyPartnerLineInfoDO.setWorkflowStatus(WorkflowStatusEnum.INTENT_1.getCode());
hyPartnerLineInfoDAO.updateByPrimaryKeySelective(hyPartnerLineInfoDO);
// 更新意向基本信息表状态
HyPartnerBaseInfoDO hyPartnerBaseInfoDO = hyPartnerBaseInfoDAO.getByPartnerIdAndLineId(request.getPartnerId(), request.getPartnerLineId());
hyPartnerBaseInfoDO.setStatus(Integer.valueOf(WorkflowStatusEnum.INTENT_1.getCode()));
hyPartnerBaseInfoDAO.updateByPrimaryKeySelective(hyPartnerBaseInfoDO);
}
// 清空暂存信息
redisUtilPool.delKey(cacheKey);
return Boolean.TRUE;
}

View File

@@ -6,6 +6,7 @@ import com.cool.store.constants.CommonConstants;
import com.cool.store.constants.RedisConstant;
import com.cool.store.dao.*;
import com.cool.store.dto.partner.PartnerIntentApplyInfoDTO;
import com.cool.store.entity.HyOpenAreaInfoDO;
import com.cool.store.entity.HyPartnerIntentInfoDO;
import com.cool.store.entity.HyPartnerUserInfoDO;
import com.cool.store.enums.ErrorCodeEnum;
@@ -22,6 +23,7 @@ import com.cool.store.vo.PartnerIntentInfoVO;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.google.common.collect.Lists;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
@@ -52,6 +54,10 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
HyPartnerBaseInfoDAO hyPartnerBaseInfoDAO;
@Resource
private RedisUtilPool redisUtilPool;
@Resource
EnterpriseUserDAO enterpriseUserDAO;
@Resource
HyOpenAreaInfoDAO hyOpenAreaInfoDAO;
@Override
public PageInfo<PartnerIntentApplyInfoVO> getPartnerIntentApplyList(String userId, String type, Integer pageSize, Integer pageNumber) {
@@ -104,8 +110,6 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
return Boolean.TRUE;
}
@Resource
EnterpriseUserDAO enterpriseUserDAO;
@Override
public PartnerIntentInfoVO getPartnerIntentApplyDetail(Long lineId) {
HyPartnerIntentInfoDO hyPartnerIntentInfoDO= hyPartnerIntentInfoDAO.selectByLineId(lineId);
@@ -116,20 +120,21 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(hyPartnerIntentInfoDO.getPartnerId());
partnerIntentInfoVO.setPartnerUserName(hyPartnerUserInfoDO.getUsername());
partnerIntentInfoVO.setPartnerUserPhone(hyPartnerUserInfoDO.getMobile());
//todo su 手机号归属地 意向申请区域名称
HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(Long.valueOf(hyPartnerUserInfoDO.getWantShopArea()));
partnerIntentInfoVO.setWantShopAreaName(hyOpenAreaInfoDO.getAreaName());
return partnerIntentInfoVO;
}
@Override
public Boolean submitPartnerIntentInfo(PartnerIntentInfoRequest request) {
public String submitPartnerIntentInfo(PartnerIntentInfoRequest request) {
if (StringUtil.isBlank(request.getPartnerId()) || Objects.isNull(request.getPartnerLineId())){
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
}
String cacheKey = MessageFormat.format(RedisConstant.PARTNER_INTENTINFO_CACHE_KEY, request.getPartnerId(), request.getPartnerLineId());
if(!request.getSubmitFlag()){
// 自动保存时
redisUtilPool.setString(cacheKey, JSONObject.toJSONString(request), RedisConstant.ONE_DAY_SECONDS);
return Boolean.TRUE;
}
if (StringUtil.isBlank(request.getPartnerId()) || Objects.isNull(request.getPartnerLineId())){
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
return "";
}
HyPartnerIntentInfoDO intentInfoDO = hyPartnerIntentInfoDAO.getByPartnerIdAndLineId(request.getPartnerId(), request.getPartnerLineId());
if(intentInfoDO == null){
@@ -141,7 +146,11 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
hyPartnerIntentInfoDAO.updateByPrimaryKeySelective(intentInfoDO);
}
redisUtilPool.delKey(cacheKey);
return true;
if(StringUtils.isNotBlank(request.getWantShopArea())){
HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(Long.valueOf(request.getWantShopArea()));
return hyOpenAreaInfoDO != null ? hyOpenAreaInfoDO.getAreaStatus() : null;
}
return null;
}
@Override
@@ -169,7 +178,9 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
intentInfoDO.setWantShopInfo(request.getWantShopInfo());
intentInfoDO.setMaxBudget(request.getMaxBudget());
intentInfoDO.setMoneySource(request.getMoneySource());
intentInfoDO.setMoneyProve(String.join(",", request.getMoneyProve()));
if(CollectionUtils.isNotEmpty(request.getMoneyProve())){
intentInfoDO.setMoneyProve(String.join(",", request.getMoneyProve()));
}
intentInfoDO.setEducation(request.getEducation());
intentInfoDO.setWorkYear(request.getWorkYear());
intentInfoDO.setIsHaveWorkExp(request.getIsHaveWorkExp());

View File

@@ -80,16 +80,24 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST);
}
PartnerLineInfoAndBaseInfoVO partnerLineInfoAndBaseInfoVO = convertPartnerLineInfoAndBaseInfoDTOToVo(partnerLineInfoAndBaseInfoDTO);
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(partnerLineInfoAndBaseInfoVO.getPartnerUserId());
if (hyPartnerUserInfoDO!=null){
partnerLineInfoAndBaseInfoVO.setPartnerUserName(hyPartnerUserInfoDO.getUsername());
partnerLineInfoAndBaseInfoVO.setPartnerUserPhone(hyPartnerUserInfoDO.getMobile());
}
EnterpriseUserDO userInfo = enterpriseUserDAO.getUserInfoById(partnerLineInfoAndBaseInfoDTO.getPassUserId());
if (userInfo!=null){
partnerLineInfoAndBaseInfoVO.setPassUserName(userInfo.getName());
}
//todo su 1、招商经理名称 手机号归属地 2、加盟商手机号归属地
if (StringUtils.isNotEmpty(partnerLineInfoAndBaseInfoVO.getPartnerUserPhone())){
DescribePhoneNumberDTO phoneNumberAttribute = aliyunService.getPhoneNumberAttribute(partnerLineInfoAndBaseInfoVO.getPartnerUserPhone());
partnerLineInfoAndBaseInfoVO.setPhoneAddress(phoneNumberAttribute!=null?phoneNumberAttribute.getCity():"");
}
if (StringUtils.isNotEmpty(partnerLineInfoAndBaseInfoDTO.getWantShopArea())){
HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(Long.valueOf(partnerLineInfoAndBaseInfoDTO.getWantShopArea()));
partnerLineInfoAndBaseInfoVO.setWantShopAreaName(hyOpenAreaInfoDO.getAreaName());
}
EnterpriseUserDO investmentManager = enterpriseUserDAO.getUserInfoById(partnerLineInfoAndBaseInfoVO.getInvestmentManager());
if (investmentManager!=null){
partnerLineInfoAndBaseInfoVO.setInvestmentManagerName(investmentManager.getName());
partnerLineInfoAndBaseInfoVO.setInvestmentManagerPhone(investmentManager.getMobile());
}
return partnerLineInfoAndBaseInfoVO;
}
@@ -157,10 +165,16 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
PageHelper.startPage(LineRequest.getPageNum(),LineRequest.getPageSize());
PageInfo blackListDTOPageInfo = new PageInfo(hyPartnerLineInfoDAO.getBlackList(LineRequest.getUserNameKeyword(), LineRequest.getPhoneKeyword(),LineRequest.getIntentArea(), LineRequest.getAcceptAdjustType()));
List<PartnerBlackListDTO> list = blackListDTOPageInfo.getList();
List<String> closeUserIdList = list.stream().map(PartnerBlackListDTO::getCloseUserId).collect(Collectors.toList());
List<EnterpriseUserDO> userInfoByUserIds = enterpriseUserDAO.getUserInfoByUserIds(closeUserIdList);
Map<String, String> userPhoneMap = userInfoByUserIds.stream().collect(Collectors.toMap(EnterpriseUserDO::getUserId, EnterpriseUserDO::getMobile));
List<BlackListVO> result = new ArrayList<>();
list.stream().forEach(x->{
BlackListVO blackListVO = convertPartnerBlackListDTOToVo(x);
//todo su 员工名称手机号 手机号归属地
blackListVO.setCloseUserPhone(userPhoneMap.get(x.getCloseUserId()));
if (StringUtils.isNotEmpty(x.getMobile())){
blackListVO.setPhoneAddress(aliyunService.getPhoneNumberAttribute(x.getMobile()).getCity());
}
result.add(blackListVO);
});
blackListDTOPageInfo.setList(result);
@@ -213,9 +227,6 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
if (hyPartnerLineInfoDO==null){
throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST);
}
if (WorkflowStageEnum.INTENT.getCode().equals(hyPartnerLineInfoDO.getWorkflowStage())){
throw new ServiceException(ErrorCodeEnum.WORK_FLOW_STAGE_PASS_ERROR);
}
//通过
if ("pass".equals(closeFollowRequest.getType())){
hyPartnerLineInfoDO.setWorkflowStage(WorkflowStageEnum.RESERVATION.getCode());
@@ -285,7 +296,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
PublicSeaLineListVo publicSeaLineListVo = new PublicSeaLineListVo();
publicSeaLineListVo.setPartnerId(x.getPartnerId());
publicSeaLineListVo.setCreateTime(x.getCreateTime());
publicSeaLineListVo.setCreateTime(DateUtil.format(x.getCreateTime(),CoolDateUtils.DATE_FORMAT_SEC));
publicSeaLineListVo.setPartnerUserName(x.getUserName());
publicSeaLineListVo.setPartnerUserPhone(x.getMobile());
DescribePhoneNumberDTO phoneNumberAttribute = aliyunService.getPhoneNumberAttribute(x.getMobile());
@@ -300,7 +311,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
publicSeaLineListVo.setRejectRealReason(hy.getRejectRealReason());
publicSeaLineListVo.setLastCloseDate(hy.getCloseTime());
publicSeaLineListVo.setLastInvestmentManager(hy.getInvestmentManager());
publicSeaLineListVo.setPartnerUserPhone(mobileMap.get(hy.getInvestmentManager()));
publicSeaLineListVo.setLastInvestmentManager(mobileMap.get(hy.getInvestmentManager()));
result.add(publicSeaLineListVo);
});
publicSeaLineList.setList(result);
@@ -362,10 +373,12 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
// todo wxp 需要加条件
HyPartnerLineInfoDO lineInfoDO = hyPartnerLineInfoDAO.getByPartnerId(partnerId);
BeanUtil.copyProperties(lineInfoDO, lineBaseInfoVO);
String coolingPeriodFirstLoginCacheKey = MessageFormat.format(RedisConstant.COOLINGPERIOD_FIRSTLOGIN_KEY, partnerId);
String coolingPeriodFirstLoginCacheKey = MessageFormat.format(RedisConstant.COOLINGPERIOD_FIRSTLOGIN_KEY, lineInfoDO.getId());
String value = redisUtilPool.getString(coolingPeriodFirstLoginCacheKey);
lineBaseInfoVO.setCoolDownFirstLoginFlag(StringUtils.isNotBlank(value));
lineBaseInfoVO.setPartnerLineId(lineInfoDO.getId());
lineBaseInfoVO.setCause(lineInfoDO.getRejectPublicReason());
return lineBaseInfoVO;
}
@@ -455,6 +468,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
blackListVO.setCloseTime(partnerBlackListDTO.getCloseTime());
blackListVO.setJoinBlackReason(partnerBlackListDTO.getJoinBlackReason());
blackListVO.setCloseUserId(partnerBlackListDTO.getCloseUserId());
blackListVO.setCloseUserPhone(partnerBlackListDTO.getCloseUserId());
return blackListVO;
}
@@ -476,6 +490,13 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
partnerLineInfoAndBaseInfoVO.setWorkflowStage(partnerLineInfoAndBaseInfoDTO.getWorkflowStage());
partnerLineInfoAndBaseInfoVO.setWorkflowStatus(partnerLineInfoAndBaseInfoDTO.getWorkflowStatus());
partnerLineInfoAndBaseInfoVO.setPassCause(partnerLineInfoAndBaseInfoDTO.getPassCause());
partnerLineInfoAndBaseInfoVO.setLineStatus(partnerLineInfoAndBaseInfoDTO.getLineStatus());
partnerLineInfoAndBaseInfoVO.setInvestmentManagerPhone(partnerLineInfoAndBaseInfoDTO.getInvestmentManagerPhone());
partnerLineInfoAndBaseInfoVO.setPartnerUserPhone(partnerLineInfoAndBaseInfoDTO.getPartnerUserPhone());
partnerLineInfoAndBaseInfoVO.setPartnerUserName(partnerLineInfoAndBaseInfoDTO.getPartnerUserName());
partnerLineInfoAndBaseInfoVO.setAcceptAdjustType(partnerLineInfoAndBaseInfoDTO.getAcceptAdjustType());
partnerLineInfoAndBaseInfoVO.setWantShopArea(partnerLineInfoAndBaseInfoDTO.getWantShopArea());
partnerLineInfoAndBaseInfoVO.setLiveArea(partnerLineInfoAndBaseInfoDTO.getLiveArea());
if (StringUtil.isNotEmpty(partnerLineInfoAndBaseInfoDTO.getPassCertifyFile())){
partnerLineInfoAndBaseInfoVO.setPassCertifyFile(JSONObject.parseArray(partnerLineInfoAndBaseInfoDTO.getPassCertifyFile(), String.class));
}

View File

@@ -8,6 +8,7 @@ import com.cool.store.dto.calendar.UpdateCalendarEventDTO;
import com.cool.store.dto.calendar.UserCalendarsEventDTO;
import com.cool.store.dto.message.SendCardMessageDTO;
import com.cool.store.dto.partner.EnterInterviewDto;
import com.cool.store.entity.EnterpriseUserDO;
import com.cool.store.entity.HyPartnerInterviewDO;
import com.cool.store.entity.HyPartnerInterviewPlanDO;
import com.cool.store.entity.HyPartnerLineInfoDO;
@@ -18,10 +19,13 @@ import com.cool.store.enums.WorkflowStatusEnum;
import com.cool.store.exception.ApiException;
import com.cool.store.exception.ServiceException;
import com.cool.store.http.ISVHttpRequest;
import com.cool.store.mapper.EnterpriseUserMapper;
import com.cool.store.mapper.HyPartnerInterviewMapper;
import com.cool.store.mapper.HyPartnerInterviewPlanMapper;
import com.cool.store.mapper.HyPartnerLineInfoMapper;
import com.cool.store.request.*;
import com.cool.store.service.EnterpriseUserService;
import com.cool.store.service.HyPartnerInterviewPlanService;
import com.cool.store.service.InterviewService;
import com.cool.store.utils.StringUtil;
import com.cool.store.utils.TRTCUtils;
@@ -59,9 +63,6 @@ public class InterviewServiceImpl implements InterviewService {
@Autowired
private HyPartnerInterviewPlanMapper hyPartnerInterviewPlanMapper;
@Autowired
private HyPartnerInterviewMapper interviewMapper;
@Autowired
private HyPartnerInterviewMapper hyPartnerInterviewMapper;
@@ -70,6 +71,10 @@ public class InterviewServiceImpl implements InterviewService {
@Autowired
private HyPartnerLineInfoMapper hyPartnerLineInfoMapper;
@Autowired
private EnterpriseUserService enterpriseUserService;
@Override
public List<InterviewVO> getInterviewList(GetInterviewListReq request) {
List<InterviewVO> interviewList = hyPartnerInterviewPlanMapper.getInterviewList(request);
@@ -77,7 +82,8 @@ public class InterviewServiceImpl implements InterviewService {
}
@Override
public InterviewVO getInterviewInfo(String interviewPlanId) {
public InterviewVO getInterviewInfo(QueryByInterviewPlanIdReq request) {
String interviewPlanId = request.getInterviewPlanId();
InterviewVO vo = hyPartnerInterviewPlanMapper.getInterviewInfo(interviewPlanId);
//将 processInfo 解析为 List
if (!StringUtils.isEmpty(vo.getProcessInfo())) {
@@ -92,6 +98,17 @@ public class InterviewServiceImpl implements InterviewService {
EnterpriseUserBaseInfoVO recorderInfo = hyPartnerInterviewPlanMapper.getEnterpriseUserBaseInfo(vo.getRecorderId());
vo.setRecorderName(recorderInfo.getName());
vo.setRecorderMobile(recorderInfo.getMobile());
//查询开发主管信息
if (request.getNeedDevelopmentDirector() != null && request.getNeedDevelopmentDirector()) {
//查询所属战区
String affiliationZoneId = hyPartnerLineInfoMapper.getAffiliationZoneIdByInterviewPlanId(interviewPlanId);
if (affiliationZoneId == null) {
return vo;
}
//查询开发主管
EnterpriseUserDO development = enterpriseUserService.getDevelopmentByZoneId(Long.parseLong(affiliationZoneId));
vo.setDevelopmentDirector(development);
}
return vo;
}
@@ -191,17 +208,31 @@ public class InterviewServiceImpl implements InterviewService {
@Transactional
public EnterInterviewVO enterInterviewRoom(EnterInterviewDto dto) {
try {
HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO();
hyPartnerInterviewDO.setInterviewPlanId(Long.parseLong(dto.getInterviewPlanId()));
//1. 将面试状态改为 --> 2已开始
interviewMapper.updateInterviewStatus(dto.getInterviewPlanId(), 2);
hyPartnerInterviewDO.setStatus(2);
//3. 修改面试实际开始时间,以第一个人进来的时间为准,后续不再修改
interviewMapper.updateActualStartTime(dto.getInterviewPlanId(), DateUtil.now());
hyPartnerInterviewDO.setInterviewer(DateUtil.now());
//4. 修改加盟商或面试官进入面试时间
interviewMapper.updateEnterTime(dto.getInterviewPlanId(), dto.getUserType(), DateUtil.now());
//加盟商
if (dto.getUserType().equals(2)) {
hyPartnerInterviewDO.setPartnerEnterTime(DateUtil.date());
} else if (dto.getUserType().equals(1)) {
hyPartnerInterviewDO.setInterviewerEnterTime(DateUtil.date());
}
//更新
hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
hyPartnerInterviewPlanDO.setId(Long.parseLong(dto.getInterviewPlanId()));
//5. 加盟商如果进入了,就修改面试计划表 is_partner_interview 字段
interviewMapper.updateWhetherPartnerEnter(dto.getInterviewPlanId());
//6. 查询对应的面试官id、姓名及加盟商姓名
EnterInterviewVO vo = interviewMapper.getInterviewerByInterviewPlanId(dto.getInterviewPlanId());
//生成 userSign
hyPartnerInterviewPlanDO.setIsPartnerInterview(1);
//6. 修改房间状态为已开放
hyPartnerInterviewPlanDO.setRoomStatus(1);
hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(hyPartnerInterviewPlanDO);
//7. 查询对应的面试官id、姓名及加盟商姓名
EnterInterviewVO vo = hyPartnerInterviewMapper.getInterviewerByInterviewPlanId(dto.getInterviewPlanId());
//8. 生成 userSign
String userSig = TRTCUtils.genUserSig(sdkAppId, key, dto.getUserId());
vo.setUserSign(userSig);
return vo;

View File

@@ -4,6 +4,7 @@ import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.cool.store.dto.partner.EnterInterviewDto;
import com.cool.store.entity.HyPartnerInterviewDO;
import com.cool.store.entity.HyPartnerInterviewPlanDO;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.WorkflowStatusEnum;
@@ -15,6 +16,7 @@ import com.cool.store.request.ModifyInterviewTimeReq;
import com.cool.store.service.PartnerInterviewService;
import com.cool.store.utils.TRTCUtils;
import com.cool.store.vo.EnterInterviewVO;
import com.cool.store.vo.EnterpriseUserBaseInfoVO;
import com.cool.store.vo.PartnerInterviewInfoVO;
import com.cool.store.vo.PartnerPassLetterDetailVO;
import com.cool.store.vo.interview.InterviewVO;
@@ -64,17 +66,33 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService {
@Transactional
public EnterInterviewVO enterInterviewRoom(EnterInterviewDto dto) {
try {
HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO();
hyPartnerInterviewDO.setInterviewPlanId(Long.parseLong(dto.getInterviewPlanId()));
//1. 将面试状态改为 --> 2已开始
interviewMapper.updateInterviewStatus(dto.getInterviewPlanId(), 2);
hyPartnerInterviewDO.setStatus(2);
//3. 修改面试实际开始时间,以第一个人进来的时间为准,后续不再修改
interviewMapper.updateActualStartTime(dto.getInterviewPlanId(), DateUtil.now());
hyPartnerInterviewDO.setInterviewerEnterTime(DateUtil.date());
//4. 修改加盟商或面试官进入面试时间
interviewMapper.updateEnterTime(dto.getInterviewPlanId(), dto.getUserType(), DateUtil.now());
//加盟商
if (dto.getUserType().equals(2)) {
hyPartnerInterviewDO.setPartnerEnterTime(DateUtil.date());
} else if (dto.getUserType().equals(1)) {
hyPartnerInterviewDO.setInterviewerEnterTime(DateUtil.date());
}
//更新
interviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
hyPartnerInterviewPlanDO.setId(Long.parseLong(dto.getInterviewPlanId()));
//5. 加盟商如果进入了,就修改面试计划表 is_partner_interview 字段
interviewMapper.updateWhetherPartnerEnter(dto.getInterviewPlanId());
//6. 查询对应的面试官id、姓名及加盟商姓名
if (dto.getUserType().equals(2)) {
hyPartnerInterviewPlanDO.setIsPartnerInterview(1);
}
//6. 修改房间状态为已开放
hyPartnerInterviewPlanDO.setRoomStatus(1);
interviewPlanMapper.updateByPrimaryKeySelective(hyPartnerInterviewPlanDO);
//7. 查询对应的面试官id、姓名及加盟商姓名
EnterInterviewVO vo = interviewMapper.getInterviewerByInterviewPlanId(dto.getInterviewPlanId());
//生成 userSign
//8. 生成 userSign
String userSig = TRTCUtils.genUserSig(sdkAppId, key, dto.getUserId());
vo.setUserSign(userSig);
return vo;

View File

@@ -2,9 +2,11 @@ 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;
@@ -24,6 +26,9 @@ import javax.annotation.Resource;
@Service
public class PartnerUserInfoServiceImpl implements PartnerUserInfoService {
@Autowired
private HyPartnerBaseInfoDAO hyPartnerBaseInfoDAO;
@Autowired
private HyPartnerUserInfoDAO hyPartnerUserInfoDAO;
@@ -96,16 +101,29 @@ public class PartnerUserInfoServiceImpl implements PartnerUserInfoService {
hyPartnerUserInfoDAO.updateByPrimaryKeySelective(hyPartnerUserInfoDO);
// 生成一条线索
HyPartnerLineInfoDO exsitLineInfoDO = hyPartnerLineInfoDAO.getByPartnerId(hyPartnerUserInfoDO.getPartnerId());
if(exsitLineInfoDO == null){
HyPartnerLineInfoDO hyPartnerLineInfoDO = new HyPartnerLineInfoDO();
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.getLineStatus(Long.valueOf(partnerUserInfoRequest.getWantShopArea()), partnerUserInfoRequest.getAcceptAdjustType());
hyPartnerLineInfoDO.setLineStatus(flag ? LineStatusEnum.PRIVATE_SEAS.getCode() : LineStatusEnum.PUBLIC_SEAS.getCode());
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);
}
HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(Long.valueOf(partnerUserInfoRequest.getWantShopArea()));
return hyOpenAreaInfoDO != null ? hyOpenAreaInfoDO.getAreaStatus() : "";
}

View File

@@ -4,12 +4,14 @@ import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject;
import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils;
import com.cool.store.constants.CommonConstants;
import com.cool.store.dao.HyOpenAreaInfoDAO;
import com.cool.store.dao.HyPartnerLineInfoDAO;
import com.cool.store.dao.HyPartnerUserInfoDAO;
import com.cool.store.dao.HyPartnerUserPlatformBindDAO;
import com.cool.store.dto.wx.CodeSessionDTO;
import com.cool.store.dto.wx.MiniProgramLoginDTO;
import com.cool.store.dto.wx.PhoneInfoDTO;
import com.cool.store.entity.HyOpenAreaInfoDO;
import com.cool.store.entity.HyPartnerLineInfoDO;
import com.cool.store.entity.HyPartnerUserInfoDO;
import com.cool.store.entity.HyPartnerUserPlatformBindDO;
@@ -31,7 +33,6 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.MessageFormat;
import java.util.Date;
import java.util.Objects;
/**
* @author zhangchenbiao
@@ -53,6 +54,8 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService {
private HyPartnerUserPlatformBindDAO hyPartnerUserPlatformBindDAO;
@Resource
private HyPartnerLineInfoDAO hyPartnerLineInfoDAO;
@Resource
HyOpenAreaInfoDAO hyOpenAreaInfoDAO;
@Value("${weixin.appId}")
private String wxAppId;
@@ -118,6 +121,18 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService {
return userInfoVO;
}
@Override
public String getUserPhoneNumber(String mobileCode) {
// 获取小程序token
String accessToken = wechatRest.getAccessToken(wxAppId, wxAppSecret);
// 获取手机号码
PhoneInfoDTO phoneInfoDTO = wechatRest.getUserPhoneNumber(mobileCode, accessToken);
if(phoneInfoDTO != null && phoneInfoDTO.getPhoneInfo() != null && StringUtils.isNotBlank(phoneInfoDTO.getPhoneInfo().getPhoneNumber())){
return phoneInfoDTO.getPhoneInfo().getPhoneNumber();
}
return null;
}
@Override
public String updateUserPhoneNumber(MobileUpdateRequest request, PartnerUserInfoVO userInfoVO) {
String newMobile = "";
@@ -154,6 +169,14 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService {
BeanUtil.copyProperties(hyPartnerUserInfoDO, userInfoVO);
HyPartnerUserPlatformBindDO hyPartnerUserPlatformBindDO = hyPartnerUserPlatformBindDAO.getByPartnerId(hyPartnerUserInfoDO.getPartnerId());
userInfoVO.setOpenid(hyPartnerUserPlatformBindDO.getPlatformUserId());
if(StringUtils.isNotBlank(hyPartnerUserInfoDO.getWantShopArea())){
HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(Long.valueOf(hyPartnerUserInfoDO.getWantShopArea()));
userInfoVO.setWantShopAreaName(hyOpenAreaInfoDO.getAreaPath().replace("/", ""));
}
HyPartnerLineInfoDO lineInfoDO = hyPartnerLineInfoDAO.getByPartnerId(hyPartnerUserInfoDO.getPartnerId());
if (lineInfoDO != null){
userInfoVO.setPartnerLineId(lineInfoDO.getId());
}
return userInfoVO;
}