Merge remote-tracking branch 'origin/cc_20230520_partner' into cc_20230520_partner
# Conflicts: # coolstore-partner-webc/src/main/java/com/cool/store/controller/PartnerController.java
This commit is contained in:
@@ -41,6 +41,11 @@
|
||||
<groupId>com.aliyun</groupId>
|
||||
<artifactId>ons20190214</artifactId>
|
||||
</dependency>
|
||||
<!-- OSS -->
|
||||
<dependency>
|
||||
<groupId>com.aliyun.oss</groupId>
|
||||
<artifactId>aliyun-sdk-oss</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.github.pagehelper</groupId>
|
||||
<artifactId>pagehelper</artifactId>
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
package com.cool.store.oss;
|
||||
|
||||
import com.aliyun.oss.ClientException;
|
||||
import com.aliyun.oss.OSS;
|
||||
import com.aliyun.oss.OSSClientBuilder;
|
||||
import com.aliyun.oss.OSSException;
|
||||
import com.aliyun.oss.model.PutObjectRequest;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
public class OSSServer {
|
||||
|
||||
@Value("${oss.accessKeyId:null}")
|
||||
private String accessKeyId;
|
||||
@Value("${oss.accessKeySecret:null}")
|
||||
private String accessKeySecret;
|
||||
@Value("${oss.endpoint:null}")
|
||||
private String endpoint;
|
||||
@Value("${oss.bucket:null}")
|
||||
private String bucket;
|
||||
@Value("${corp.id:null}")
|
||||
private String corpId;
|
||||
|
||||
/**
|
||||
* 服务端上传文件的方法
|
||||
* ObjectName 为文件存放位置 + 名字,不可包含 bucket
|
||||
*/
|
||||
public String uploadFileServer(InputStream inputStream, String objectName) {
|
||||
// 创建OSSClient实例。
|
||||
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
|
||||
try {
|
||||
// 创建PutObjectRequest对象。
|
||||
PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, objectName, inputStream);
|
||||
// 创建PutObject请求。
|
||||
ossClient.putObject(putObjectRequest);
|
||||
return "http://" + bucket + "." + endpoint + "/" + 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.");
|
||||
log.error("Error Message:" + oe.getErrorMessage());
|
||||
log.error("Error Code:" + oe.getErrorCode());
|
||||
log.error("Request ID:" + oe.getRequestId());
|
||||
log.error("Host ID:" + oe.getHostId());
|
||||
} catch (ClientException ce) {
|
||||
log.error("Caught an ClientException, which means the client encountered "
|
||||
+ "a serious internal problem while trying to communicate with OSS, "
|
||||
+ "such as not being able to access the network.");
|
||||
log.error("Error Message:" + ce.getMessage());
|
||||
} catch (RuntimeException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
finally {
|
||||
if (ossClient != null) {
|
||||
ossClient.shutdown();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.cool.store.service;
|
||||
import com.cool.store.entity.EnterpriseUserDO;
|
||||
import com.cool.store.request.EnterpriseUserRequest;
|
||||
import com.cool.store.vo.EnterpriseUserSingleInfoVO;
|
||||
import com.cool.store.vo.buser.EnterpriseUserPageVO;
|
||||
|
||||
import java.util.List;
|
||||
@@ -16,4 +17,12 @@ public interface EnterpriseUserService {
|
||||
|
||||
EnterpriseUserDO getUserInfoByUserId(String userId);
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
List<EnterpriseUserSingleInfoVO> getInvestmentManagerList(String type,String userId,String keyword);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.cool.store.service;
|
||||
|
||||
import com.cool.store.request.AddTagsRequest;
|
||||
import com.cool.store.request.PartnerBaseInfoRequest;
|
||||
import com.cool.store.vo.PartnerBaseInfoVO;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
@@ -16,4 +18,8 @@ public interface HyPartnerBaseInfoService {
|
||||
* @return
|
||||
*/
|
||||
Boolean addTags(AddTagsRequest addTagsRequest);
|
||||
|
||||
Boolean submitPartnerBaseInfo(PartnerBaseInfoRequest request);
|
||||
|
||||
PartnerBaseInfoVO queryPartnerBaseInfo(String partnerId, Long lineId);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.cool.store.service;
|
||||
|
||||
import com.cool.store.request.PartnerClerkInfoRequest;
|
||||
import com.cool.store.vo.PartnerClerkVO;
|
||||
|
||||
import java.util.List;
|
||||
@@ -19,6 +20,10 @@ public interface HyPartnerClerkService {
|
||||
*/
|
||||
List<PartnerClerkVO> getPartnerClerkList(Long lineId);
|
||||
|
||||
Boolean submitPartnerClerkInfo(PartnerClerkInfoRequest request);
|
||||
|
||||
List<PartnerClerkVO> queryPartnerClerkInfo(String partnerId, Long lineId);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package com.cool.store.service;
|
||||
|
||||
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.github.pagehelper.PageInfo;
|
||||
|
||||
/**
|
||||
@@ -27,7 +29,7 @@ public interface HyPartnerIntentInfoService {
|
||||
* @param lineId
|
||||
* @return
|
||||
*/
|
||||
PartnerIntentApplyInfoVO getPartnerIntentApplyInfo(Long lineId);
|
||||
PartnerIntentInfoVO getPartnerIntentApplyDetail(Long lineId);
|
||||
|
||||
/**
|
||||
* 员工端 修改加盟商意向信息
|
||||
@@ -36,4 +38,8 @@ public interface HyPartnerIntentInfoService {
|
||||
*/
|
||||
Boolean updatePartnerIntentInfo(BaseUserInfoRequest baseUserInfoRequest);
|
||||
|
||||
Boolean submitPartnerIntentInfo(PartnerIntentInfoRequest partnerIntentInfoRequest);
|
||||
|
||||
PartnerIntentInfoVO queryPartnerIntentInfo(String partnerId, Long lineId);
|
||||
|
||||
}
|
||||
|
||||
@@ -2,10 +2,7 @@ package com.cool.store.service;
|
||||
|
||||
import com.cool.store.request.CloseFollowRequest;
|
||||
import com.cool.store.request.LineRequest;
|
||||
import com.cool.store.vo.BlackListVO;
|
||||
import com.cool.store.vo.PartnerLineInfoAndBaseInfoVO;
|
||||
import com.cool.store.vo.PartnerLineInfoVO;
|
||||
import com.cool.store.vo.StageCountVO;
|
||||
import com.cool.store.vo.*;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
|
||||
import java.util.List;
|
||||
@@ -99,5 +96,13 @@ public interface HyPartnerLineInfoService {
|
||||
*/
|
||||
Boolean closeOrPassFollow(String userId,CloseFollowRequest closeFollowRequest);
|
||||
|
||||
/**
|
||||
* 公海线索
|
||||
* @param userId
|
||||
* @param lineRequest
|
||||
* @return
|
||||
*/
|
||||
PageInfo<PublicSeaLineListVo> publicSeaLineList(String userId,LineRequest lineRequest);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
package com.cool.store.service;
|
||||
|
||||
import com.cool.store.dto.partner.EnterInterviewDto;
|
||||
import com.cool.store.request.EntrustOthersReq;
|
||||
import com.cool.store.request.FinishInterviewReq;
|
||||
import com.cool.store.request.GetInterviewListReq;
|
||||
import com.cool.store.request.ModifyInterviewTimeReq;
|
||||
import com.cool.store.vo.EnterInterviewVO;
|
||||
import com.cool.store.vo.interview.InterviewVO;
|
||||
|
||||
import java.util.List;
|
||||
@@ -39,4 +41,13 @@ public interface InterviewService {
|
||||
* @param request
|
||||
*/
|
||||
void finishInterview(FinishInterviewReq request);
|
||||
|
||||
/**
|
||||
* 进入面试间的方法
|
||||
* 修改一些面试状态
|
||||
* 最后返回 userSign 用于进入腾讯云音视频房间
|
||||
* @return userSign 进入视频所需签名
|
||||
*/
|
||||
EnterInterviewVO enterInterviewRoom(EnterInterviewDto dto);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.cool.store.service;
|
||||
|
||||
import com.cool.store.dto.partner.EnterInterviewDto;
|
||||
import com.cool.store.vo.PartnerEnterInterviewVO;
|
||||
import com.cool.store.vo.EnterInterviewVO;
|
||||
import com.cool.store.vo.PartnerInterviewInfoVO;
|
||||
import com.cool.store.vo.PartnerPassLetterDetailVO;
|
||||
|
||||
@@ -20,7 +20,7 @@ public interface PartnerInterviewService {
|
||||
* 最后返回 userSign 用于进入腾讯云音视频房间
|
||||
* @return userSign 进入视频所需签名
|
||||
*/
|
||||
PartnerEnterInterviewVO enterInterviewRoom(EnterInterviewDto dto);
|
||||
EnterInterviewVO enterInterviewRoom(EnterInterviewDto dto);
|
||||
|
||||
/**
|
||||
* 获取通知函详情
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
package com.cool.store.service;
|
||||
|
||||
import com.cool.store.entity.HyPartnerUserInfoDO;
|
||||
|
||||
public interface PartnerUserInfoService {
|
||||
|
||||
HyPartnerUserInfoDO selectByPartnerId(String partnerId);
|
||||
|
||||
Boolean queryJoinNotice(String partnerId);
|
||||
|
||||
Boolean completeJoinNotice(String partnerId);
|
||||
}
|
||||
|
||||
@@ -61,6 +61,12 @@ public interface ZoneService {
|
||||
*/
|
||||
List<ZoneCheckVO> checkZone(IntentAreaSettingRequest intentAreaSettingRequest);
|
||||
|
||||
/**
|
||||
* 查询所有绑定战区的组织机构
|
||||
* @return
|
||||
*/
|
||||
List<String> queryAllBingZoneRegionList(String type);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,11 +1,19 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
import com.cool.store.constants.CommonConstants;
|
||||
import com.cool.store.dao.*;
|
||||
import com.cool.store.entity.*;
|
||||
import com.cool.store.service.EnterpriseUserService;
|
||||
import com.cool.store.service.ZoneService;
|
||||
import com.cool.store.vo.EnterpriseUserSingleInfoVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
@@ -22,10 +30,61 @@ public class EnterpriseUserServiceImpl implements EnterpriseUserService {
|
||||
private EnterpriseUserDAO enterpriseUserDAO;
|
||||
@Resource
|
||||
private EnterpriseUserRoleDAO enterpriseUserRoleDAO;
|
||||
@Resource
|
||||
ZoneService zoneService;
|
||||
@Resource
|
||||
RegionDAO regionDAO;
|
||||
@Resource
|
||||
UserRegionMappingDAO userRegionMappingDAO;
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public EnterpriseUserDO getUserInfoByUserId(String userId) {
|
||||
return enterpriseUserDAO.getUserInfoById(userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<EnterpriseUserSingleInfoVO> getInvestmentManagerList(String type,String userId, String keyword) {
|
||||
//查询当前人员信息
|
||||
EnterpriseUserDO userInfo = enterpriseUserDAO.getUserInfoById(userId);
|
||||
|
||||
//当前登录人所在组织机构
|
||||
List<String> regionIds = userRegionMappingDAO.getRegionIdsByUserId(userId);
|
||||
|
||||
//所有绑定了战区的组织机构
|
||||
List<String> list = zoneService.queryAllBingZoneRegionList("intend");
|
||||
HashSet<String> regionList = new HashSet<>();
|
||||
regionIds.forEach(x->{
|
||||
if (list.contains(x)){
|
||||
regionList.add(x);
|
||||
}
|
||||
});
|
||||
//分配
|
||||
//如果是招商经理 只能分配给自己
|
||||
//如果是负责人 分配给负责人所在战区人员
|
||||
List<EnterpriseUserDO> enterpriseUserDOS = new ArrayList<>();
|
||||
if (CommonConstants.ALLOCATION.equals(type)){
|
||||
if (userInfo.getIsLeader()){
|
||||
enterpriseUserDOS = enterpriseUserDAO.searchUserByRegionIdsAndKeyword(new ArrayList<>(regionList), keyword, Boolean.TRUE);
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(regionList)){
|
||||
//只有招商经理本人
|
||||
enterpriseUserDOS.add(userInfo);
|
||||
}
|
||||
}
|
||||
//转交 所有的招商经理
|
||||
if (CommonConstants.TRANSFER.equals(type)){
|
||||
enterpriseUserDOS = enterpriseUserDAO.searchUserByRegionIdsAndKeyword(new ArrayList<>(regionList), keyword, Boolean.TRUE);
|
||||
}
|
||||
List<EnterpriseUserSingleInfoVO> enterpriseUserSingleInfoVOS = new ArrayList<>();
|
||||
enterpriseUserDOS.forEach(x->{
|
||||
EnterpriseUserSingleInfoVO enterpriseUserSingleInfoVO = new EnterpriseUserSingleInfoVO();
|
||||
enterpriseUserSingleInfoVO.setUserId(x.getUserId());
|
||||
enterpriseUserSingleInfoVO.setUserName(x.getName());
|
||||
enterpriseUserSingleInfoVO.setMobile(x.getMobile());
|
||||
enterpriseUserSingleInfoVOS.add(enterpriseUserSingleInfoVO);
|
||||
});
|
||||
return enterpriseUserSingleInfoVOS;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,16 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cool.store.dao.HyPartnerBaseInfoDAO;
|
||||
import com.cool.store.dao.HyPartnerLineInfoDAO;
|
||||
import com.cool.store.entity.HyPartnerBaseInfoDO;
|
||||
import com.cool.store.enums.ErrorCodeEnum;
|
||||
import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.request.AddTagsRequest;
|
||||
import com.cool.store.request.PartnerBaseInfoRequest;
|
||||
import com.cool.store.service.HyPartnerBaseInfoService;
|
||||
import com.cool.store.vo.PartnerBaseInfoVO;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -29,4 +35,49 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService {
|
||||
hyPartnerBaseInfoDAO.updateByPrimaryKeySelective(hyPartnerBaseInfoDO);
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* //前提 未提交加盟申请
|
||||
* //成功 意向区域变更成功 失败 您已进入意向申请流程,当前不可变更意向区域
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Boolean submitPartnerBaseInfo(PartnerBaseInfoRequest request) {
|
||||
HyPartnerBaseInfoDO baseInfoDO = hyPartnerBaseInfoDAO.getByPartnerIdAndLineId(request.getPartnerId(), request.getPartnerLineId());
|
||||
if(baseInfoDO == null){
|
||||
baseInfoDO = new HyPartnerBaseInfoDO();
|
||||
fillBaseInfo(baseInfoDO, request);
|
||||
hyPartnerBaseInfoDAO.insertSelective(baseInfoDO);
|
||||
}else {
|
||||
fillBaseInfo(baseInfoDO, request);
|
||||
hyPartnerBaseInfoDAO.updateByPrimaryKeySelective(baseInfoDO);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PartnerBaseInfoVO queryPartnerBaseInfo(String partnerId, Long lineId) {
|
||||
HyPartnerBaseInfoDO hyPartnerBaseInfoDO = hyPartnerBaseInfoDAO.getByPartnerIdAndLineId(partnerId, lineId);
|
||||
if (hyPartnerBaseInfoDO == null){
|
||||
throw new ServiceException(ErrorCodeEnum.PARTNER_BASEINFO_NOT_EXIST);
|
||||
}
|
||||
PartnerBaseInfoVO baseInfoVO = new PartnerBaseInfoVO();
|
||||
BeanUtil.copyProperties(hyPartnerBaseInfoDO, baseInfoVO);
|
||||
return baseInfoVO;
|
||||
}
|
||||
|
||||
private void fillBaseInfo(HyPartnerBaseInfoDO baseInfoDO, PartnerBaseInfoRequest request) {
|
||||
baseInfoDO.setPartnerId(request.getPartnerId());
|
||||
baseInfoDO.setPartnerLineId(request.getPartnerLineId());
|
||||
baseInfoDO.setMobile(request.getMobile());
|
||||
baseInfoDO.setUsername(request.getUsername());
|
||||
baseInfoDO.setSex(request.getSex());
|
||||
baseInfoDO.setNation(request.getNation());
|
||||
baseInfoDO.setBirthdate(request.getBirthdate());
|
||||
baseInfoDO.setIdCard(request.getIdCard());
|
||||
baseInfoDO.setIdCardPhotoFront(request.getIdCardPhotoFront());
|
||||
baseInfoDO.setIdCardPhotoBlack(request.getIdCardPhotoBlack());
|
||||
baseInfoDO.setLiveAddress(request.getLiveAddress());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
import com.cool.store.dao.HyPartnerClerkDAO;
|
||||
import com.cool.store.entity.HyPartnerClerkDO;
|
||||
import com.cool.store.service.HyPartnerClerkService;
|
||||
import com.cool.store.vo.PartnerClerkVO;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2023/6/15 11:05
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Service
|
||||
public class HyPartnerClerkImpl implements HyPartnerClerkService {
|
||||
|
||||
@Resource
|
||||
HyPartnerClerkDAO hyPartnerClerkDAO;
|
||||
|
||||
|
||||
@Override
|
||||
public List<PartnerClerkVO> getPartnerClerkList(Long lineId) {
|
||||
List<HyPartnerClerkDO> hyPartnerClerkList = hyPartnerClerkDAO.getHyPartnerClerkList(lineId);
|
||||
List<PartnerClerkVO> result= new ArrayList<>();
|
||||
hyPartnerClerkList.forEach(x->{
|
||||
PartnerClerkVO partnerClerkVO = new PartnerClerkVO();
|
||||
partnerClerkVO.setPartnerId(x.getPartnerId());
|
||||
partnerClerkVO.setPartnerLineId(x.getPartnerLineId());
|
||||
partnerClerkVO.setAge(x.getAge());
|
||||
partnerClerkVO.setChooseReason(x.getChooseReason());
|
||||
partnerClerkVO.setUsername(x.getUsername());
|
||||
partnerClerkVO.setRelationship(x.getRelationship());
|
||||
result.add(partnerClerkVO);
|
||||
});
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.cool.store.dao.HyPartnerClerkDAO;
|
||||
import com.cool.store.entity.HyPartnerClerkDO;
|
||||
import com.cool.store.enums.ErrorCodeEnum;
|
||||
import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.request.PartnerClerkInfoRequest;
|
||||
import com.cool.store.service.HyPartnerClerkService;
|
||||
import com.cool.store.utils.StringUtil;
|
||||
import com.cool.store.vo.PartnerClerkVO;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author wxp
|
||||
* @Date 2023/6/14 21:37
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Service
|
||||
public class HyPartnerClerkServiceImpl implements HyPartnerClerkService {
|
||||
|
||||
@Resource
|
||||
HyPartnerClerkDAO hyPartnerClerkDAO;
|
||||
|
||||
@Override
|
||||
public List<PartnerClerkVO> getPartnerClerkList(Long lineId) {
|
||||
List<HyPartnerClerkDO> hyPartnerClerkList = hyPartnerClerkDAO.getHyPartnerClerkList(lineId);
|
||||
List<PartnerClerkVO> result= new ArrayList<>();
|
||||
hyPartnerClerkList.forEach(x->{
|
||||
PartnerClerkVO partnerClerkVO = new PartnerClerkVO();
|
||||
partnerClerkVO.setPartnerId(x.getPartnerId());
|
||||
partnerClerkVO.setPartnerLineId(x.getPartnerLineId());
|
||||
partnerClerkVO.setAge(x.getAge());
|
||||
partnerClerkVO.setChooseReason(x.getChooseReason());
|
||||
partnerClerkVO.setUsername(x.getUsername());
|
||||
partnerClerkVO.setRelationship(x.getRelationship());
|
||||
result.add(partnerClerkVO);
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean submitPartnerClerkInfo(PartnerClerkInfoRequest request) {
|
||||
if (StringUtil.isBlank(request.getPartnerId()) || Objects.isNull(request.getPartnerLineId()) || CollectionUtils.isEmpty(request.getPartnerClerkRequestList())){
|
||||
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
|
||||
}
|
||||
hyPartnerClerkDAO.deleteByPartnerIdAndLineId(request.getPartnerId(), request.getPartnerLineId());
|
||||
List<HyPartnerClerkDO> clerkDOList = new ArrayList<>();
|
||||
request.getPartnerClerkRequestList().stream().forEach(x->{
|
||||
HyPartnerClerkDO clerkDO = new HyPartnerClerkDO();
|
||||
clerkDO.setPartnerLineId(request.getPartnerLineId());
|
||||
clerkDO.setPartnerId(request.getPartnerId());
|
||||
clerkDO.setUsername(x.getUsername());
|
||||
clerkDO.setRelationship(x.getRelationship());
|
||||
clerkDO.setAge(x.getAge());
|
||||
clerkDO.setChooseReason(x.getChooseReason());
|
||||
clerkDOList.add(clerkDO);
|
||||
});
|
||||
hyPartnerClerkDAO.batchInsert(clerkDOList);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PartnerClerkVO> queryPartnerClerkInfo(String partnerId, Long lineId) {
|
||||
List<HyPartnerClerkDO> clerkDOList = hyPartnerClerkDAO.listByPartnerIdAndLineId(partnerId, lineId);
|
||||
List<PartnerClerkVO> clerkVOList = ListUtils.emptyIfNull(clerkDOList).stream().map(clerkDO -> {
|
||||
PartnerClerkVO clerkVO = new PartnerClerkVO();
|
||||
BeanUtil.copyProperties(clerkDO, clerkVO);
|
||||
return clerkVO;
|
||||
}).collect(Collectors.toList());
|
||||
return clerkVOList;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,27 +1,35 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.cool.store.constants.CommonConstants;
|
||||
import com.cool.store.dao.HyPartnerBaseInfoDAO;
|
||||
import com.cool.store.dao.HyPartnerIntentInfoDAO;
|
||||
import com.cool.store.dao.HyPartnerLineInfoDAO;
|
||||
import com.cool.store.dao.HyPartnerUserInfoDAO;
|
||||
import com.cool.store.dto.partner.PartnerIntentApplyInfoDTO;
|
||||
import com.cool.store.entity.HyPartnerIntentInfoDO;
|
||||
import com.cool.store.entity.HyPartnerUserInfoDO;
|
||||
import com.cool.store.enums.ErrorCodeEnum;
|
||||
import com.cool.store.enums.WorkflowStageEnum;
|
||||
import com.cool.store.enums.WorkflowStatusEnum;
|
||||
import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.request.BaseUserInfoRequest;
|
||||
import com.cool.store.request.PartnerIntentInfoRequest;
|
||||
import com.cool.store.service.HyPartnerIntentInfoService;
|
||||
import com.cool.store.utils.StringUtil;
|
||||
import com.cool.store.vo.PartnerIntentApplyInfoVO;
|
||||
import com.cool.store.vo.PartnerIntentInfoVO;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.google.common.collect.Lists;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -73,17 +81,6 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
|
||||
return partnerIntentApplyInfo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PartnerIntentApplyInfoVO getPartnerIntentApplyInfo(Long lineId) {
|
||||
PartnerIntentApplyInfoDTO partnerIntentApplyInfoDTO= hyPartnerIntentInfoDAO.selectByLineId(lineId);
|
||||
PartnerIntentApplyInfoVO partnerIntentApplyInfoVO = partnerIntentApplyInfoDTOToVo(partnerIntentApplyInfoDTO);
|
||||
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(partnerIntentApplyInfoDTO.getPartnerId());
|
||||
partnerIntentApplyInfoVO.setPartnerUserName(hyPartnerUserInfoDO.getUsername());
|
||||
partnerIntentApplyInfoVO.setPartnerUserPhone(hyPartnerUserInfoDO.getMobile());
|
||||
//todo su 手机号归属地 意向申请区域名称
|
||||
return partnerIntentApplyInfoVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean updatePartnerIntentInfo(BaseUserInfoRequest baseUserInfoRequest) {
|
||||
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(String.valueOf(baseUserInfoRequest.getPartnerId()));
|
||||
@@ -102,6 +99,68 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PartnerIntentInfoVO getPartnerIntentApplyDetail(Long lineId) {
|
||||
HyPartnerIntentInfoDO hyPartnerIntentInfoDO= hyPartnerIntentInfoDAO.selectByLineId(lineId);
|
||||
PartnerIntentInfoVO partnerIntentInfoVO = convertPartnerIntentApplyInfoDOToVO(hyPartnerIntentInfoDO);
|
||||
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(hyPartnerIntentInfoDO.getPartnerId());
|
||||
partnerIntentInfoVO.setPartnerUserName(hyPartnerUserInfoDO.getUsername());
|
||||
partnerIntentInfoVO.setPartnerUserPhone(hyPartnerUserInfoDO.getMobile());
|
||||
//todo su 手机号归属地 意向申请区域名称
|
||||
return partnerIntentInfoVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean submitPartnerIntentInfo(PartnerIntentInfoRequest request) {
|
||||
if (StringUtil.isBlank(request.getPartnerId()) || Objects.isNull(request.getPartnerLineId())){
|
||||
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
|
||||
}
|
||||
HyPartnerIntentInfoDO intentInfoDO = hyPartnerIntentInfoDAO.getByPartnerIdAndLineId(request.getPartnerId(), request.getPartnerLineId());
|
||||
if(intentInfoDO == null){
|
||||
intentInfoDO = new HyPartnerIntentInfoDO();
|
||||
fillIntentInfo(intentInfoDO, request);
|
||||
hyPartnerIntentInfoDAO.insertSelective(intentInfoDO);
|
||||
}else {
|
||||
fillIntentInfo(intentInfoDO, request);
|
||||
hyPartnerIntentInfoDAO.updateByPrimaryKeySelective(intentInfoDO);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PartnerIntentInfoVO queryPartnerIntentInfo(String partnerId, Long lineId) {
|
||||
HyPartnerIntentInfoDO intentInfoDO = hyPartnerIntentInfoDAO.getByPartnerIdAndLineId(partnerId, lineId);
|
||||
if (intentInfoDO == null){
|
||||
throw new ServiceException(ErrorCodeEnum.INTENT_INFO_NOT_EXIST);
|
||||
}
|
||||
PartnerIntentInfoVO intentInfoVO = new PartnerIntentInfoVO();
|
||||
BeanUtil.copyProperties(intentInfoDO, intentInfoVO);
|
||||
return intentInfoVO;
|
||||
}
|
||||
|
||||
private void fillIntentInfo(HyPartnerIntentInfoDO intentInfoDO, PartnerIntentInfoRequest request) {
|
||||
intentInfoDO.setPartnerId(request.getPartnerId());
|
||||
intentInfoDO.setPartnerLineId(request.getPartnerLineId());
|
||||
intentInfoDO.setLiveArea(request.getLiveArea());
|
||||
intentInfoDO.setWantShopArea(request.getWantShopArea());
|
||||
intentInfoDO.setAcceptAdjustType(request.getAcceptAdjustType());
|
||||
intentInfoDO.setIsHaveWantShop(request.getIsHaveWantShop());
|
||||
intentInfoDO.setWantShopInfo(request.getWantShopInfo());
|
||||
intentInfoDO.setMaxBudget(request.getMaxBudget());
|
||||
intentInfoDO.setMoneySource(request.getMoneySource());
|
||||
intentInfoDO.setMoneyProve(String.join(",", request.getMoneyProve()));
|
||||
intentInfoDO.setEducation(request.getEducation());
|
||||
intentInfoDO.setWorkYear(request.getWorkYear());
|
||||
intentInfoDO.setIsHaveWorkExp(request.getIsHaveWorkExp());
|
||||
intentInfoDO.setWorkExp(request.getWorkExp());
|
||||
intentInfoDO.setIsConsumer(request.getIsConsumer());
|
||||
intentInfoDO.setOtherBand(request.getOtherBand());
|
||||
intentInfoDO.setBrandStrength(request.getBrandStrength());
|
||||
intentInfoDO.setNeedImprove(request.getNeedImprove());
|
||||
intentInfoDO.setStrength(request.getStrength());
|
||||
intentInfoDO.setWeakness(request.getWeakness());
|
||||
}
|
||||
|
||||
/**
|
||||
* partnerIntentApplyInfoDTOToVo
|
||||
* @param partnerIntentApplyInfoDTO
|
||||
@@ -121,4 +180,37 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param hyPartnerIntentInfoDO
|
||||
* @return
|
||||
*/
|
||||
private PartnerIntentInfoVO convertPartnerIntentApplyInfoDOToVO(HyPartnerIntentInfoDO hyPartnerIntentInfoDO){
|
||||
PartnerIntentInfoVO partnerIntentInfoVO = new PartnerIntentInfoVO();
|
||||
partnerIntentInfoVO.setId(hyPartnerIntentInfoDO.getId());
|
||||
partnerIntentInfoVO.setPartnerId(hyPartnerIntentInfoDO.getPartnerId());
|
||||
partnerIntentInfoVO.setPartnerLineId(hyPartnerIntentInfoDO.getPartnerLineId());
|
||||
partnerIntentInfoVO.setAcceptAdjustType(hyPartnerIntentInfoDO.getAcceptAdjustType());
|
||||
partnerIntentInfoVO.setLiveArea(hyPartnerIntentInfoDO.getLiveArea());
|
||||
partnerIntentInfoVO.setWantShopArea(hyPartnerIntentInfoDO.getWantShopArea());
|
||||
partnerIntentInfoVO.setEducation(hyPartnerIntentInfoDO.getEducation());
|
||||
partnerIntentInfoVO.setMaxBudget(hyPartnerIntentInfoDO.getMaxBudget());
|
||||
partnerIntentInfoVO.setBrandStrength(hyPartnerIntentInfoDO.getBrandStrength());
|
||||
partnerIntentInfoVO.setIsConsumer(hyPartnerIntentInfoDO.getIsConsumer());
|
||||
partnerIntentInfoVO.setIsHaveWantShop(hyPartnerIntentInfoDO.getIsHaveWantShop());
|
||||
partnerIntentInfoVO.setIsHaveWorkExp(hyPartnerIntentInfoDO.getIsHaveWorkExp());
|
||||
partnerIntentInfoVO.setMoneyProve(StringUtil.isEmpty(hyPartnerIntentInfoDO.getMoneyProve())?
|
||||
Lists.newArrayList(): JSONObject.parseArray(hyPartnerIntentInfoDO.getMoneyProve(),String.class));
|
||||
partnerIntentInfoVO.setMoneySource(hyPartnerIntentInfoDO.getMoneySource());
|
||||
partnerIntentInfoVO.setWorkYear(hyPartnerIntentInfoDO.getWorkYear());
|
||||
partnerIntentInfoVO.setWeakness(hyPartnerIntentInfoDO.getWeakness());
|
||||
partnerIntentInfoVO.setCreateTime(hyPartnerIntentInfoDO.getCreateTime());
|
||||
partnerIntentInfoVO.setOtherBand(hyPartnerIntentInfoDO.getOtherBand());
|
||||
partnerIntentInfoVO.setStrength(hyPartnerIntentInfoDO.getStrength());
|
||||
partnerIntentInfoVO.setNeedImprove(hyPartnerIntentInfoDO.getNeedImprove());
|
||||
return partnerIntentInfoVO;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -2,11 +2,12 @@ package com.cool.store.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cool.store.dao.EnterpriseUserDAO;
|
||||
import com.cool.store.dao.HyPartnerLineInfoDAO;
|
||||
import com.cool.store.dao.HyPartnerUserInfoDAO;
|
||||
import com.cool.store.dto.partner.PartnerBlackListDTO;
|
||||
import com.cool.store.dto.partner.PartnerLineInfoAndBaseInfoDTO;
|
||||
import com.cool.store.dto.partner.StageCountDTO;
|
||||
import com.cool.store.dao.UserRegionMappingDAO;
|
||||
import com.cool.store.dto.partner.*;
|
||||
import com.cool.store.entity.EnterpriseUserDO;
|
||||
import com.cool.store.entity.HyPartnerLineInfoDO;
|
||||
import com.cool.store.entity.HyPartnerUserInfoDO;
|
||||
import com.cool.store.enums.ErrorCodeEnum;
|
||||
@@ -16,24 +17,20 @@ import com.cool.store.enums.WorkflowStatusEnum;
|
||||
import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.request.CloseFollowRequest;
|
||||
import com.cool.store.request.LineRequest;
|
||||
import com.cool.store.service.EnterpriseUserService;
|
||||
import com.cool.store.service.HyPartnerLineInfoService;
|
||||
import com.cool.store.utils.CoolDateUtils;
|
||||
import com.cool.store.utils.StringUtil;
|
||||
import com.cool.store.vo.BlackListVO;
|
||||
import com.cool.store.vo.PartnerLineInfoAndBaseInfoVO;
|
||||
import com.cool.store.vo.PartnerLineInfoVO;
|
||||
import com.cool.store.vo.StageCountVO;
|
||||
import com.cool.store.vo.*;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.google.common.collect.Lists;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -48,6 +45,10 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
|
||||
HyPartnerLineInfoDAO hyPartnerLineInfoDAO;
|
||||
@Resource
|
||||
HyPartnerUserInfoDAO hyPartnerUserInfoDAO;
|
||||
@Resource
|
||||
EnterpriseUserDAO enterpriseUserDAO;
|
||||
@Resource
|
||||
UserRegionMappingDAO userRegionMappingDAO;
|
||||
|
||||
@Override
|
||||
public StageCountVO selectStagePendingCount(String userId) {
|
||||
@@ -138,7 +139,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
|
||||
@Override
|
||||
public PageInfo<BlackListVO> getBlackList(LineRequest LineRequest) {
|
||||
PageHelper.startPage(LineRequest.getPageNum(),LineRequest.getPageSize());
|
||||
PageInfo blackListDTOPageInfo = hyPartnerLineInfoDAO.getBlackList(LineRequest.getKeyWord(), LineRequest.getIntentArea(), LineRequest.getAcceptAdjustType());
|
||||
PageInfo blackListDTOPageInfo = hyPartnerLineInfoDAO.getBlackList(LineRequest.getUserNameKeyword(), LineRequest.getPhoneKeyword(),LineRequest.getIntentArea(), LineRequest.getAcceptAdjustType());
|
||||
List<PartnerBlackListDTO> list = blackListDTOPageInfo.getList();
|
||||
List<BlackListVO> result = new ArrayList<>();
|
||||
list.stream().forEach(x->{
|
||||
@@ -228,6 +229,68 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
|
||||
hyPartnerLineInfoDAO.updateByPrimaryKeySelective(hyPartnerLineInfoDO);
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageInfo<PublicSeaLineListVo> publicSeaLineList(String userId, LineRequest lineRequest) {
|
||||
//确认是招商经理还是部门负责人
|
||||
EnterpriseUserDO userInfo = enterpriseUserDAO.getUserInfoById(userId);
|
||||
List<String> userIds = new ArrayList<>();
|
||||
if (userInfo.getIsLeader()){
|
||||
if (StringUtil.isNotEmpty(userInfo.getLeaderDeptIds())){
|
||||
List<String> regionIds = JSONObject.parseArray(userInfo.getLeaderDeptIds(), String.class);
|
||||
List<EnterpriseUserDO> enterpriseUserDOS = enterpriseUserDAO.searchUserByRegionIdsAndKeyword(regionIds, null, true);
|
||||
userIds =enterpriseUserDOS.stream().map(EnterpriseUserDO::getUserId).collect(Collectors.toList());
|
||||
}
|
||||
}else {
|
||||
userIds = Arrays.asList(userId);
|
||||
}
|
||||
PageHelper.startPage(lineRequest.getPageNum(),lineRequest.getPageSize());
|
||||
PageInfo publicSeaLineList = hyPartnerLineInfoDAO.getPublicSeaLineList(lineRequest.getUserNameKeyword(), lineRequest.getPhoneKeyword(),
|
||||
lineRequest.getIntentArea(), lineRequest.getAcceptAdjustType(), lineRequest.getUpdateStartTime(), lineRequest.getUpdateEndTime(), userIds);
|
||||
|
||||
List<PublicSeaLineDTO> list = publicSeaLineList.getList();
|
||||
if (CollectionUtils.isEmpty(list)){
|
||||
return new PageInfo<>();
|
||||
}
|
||||
//上一次结束的线索
|
||||
List<String> partnerIdList = list.stream().map(PublicSeaLineDTO::getPartnerId).collect(Collectors.toList());
|
||||
List<HyPartnerLineInfoDO> partnerLastLine = hyPartnerLineInfoDAO.getPartnerLastLine(partnerIdList);
|
||||
List<String> investmentManagerIds = partnerLastLine.stream().map(HyPartnerLineInfoDO::getInvestmentManager).collect(Collectors.toList());
|
||||
List<EnterpriseUserDO> userInfoList = enterpriseUserDAO.getUserInfoByUserIds(investmentManagerIds);
|
||||
Map<String, String> mobileMap = userInfoList.stream().filter(x ->
|
||||
StringUtil.isNotEmpty(x.getMobile())).collect(Collectors.toMap(EnterpriseUserDO::getUserId, EnterpriseUserDO::getMobile));
|
||||
Map<String, HyPartnerLineInfoDO> hyPartnerLineInfoDOMap = partnerLastLine.stream().collect(Collectors.toMap(HyPartnerLineInfoDO::getPartnerId, data -> data));
|
||||
|
||||
List<LineCountDTO> followCountList = hyPartnerLineInfoDAO.getFollowCountList(partnerIdList);
|
||||
Map<String, Integer> countMap = followCountList.stream().collect(Collectors.toMap(LineCountDTO::getPartnerId, LineCountDTO::getFollowCount));
|
||||
|
||||
List<PublicSeaLineListVo> result = new ArrayList<>();
|
||||
list.forEach(x->{
|
||||
PublicSeaLineListVo publicSeaLineListVo = new PublicSeaLineListVo();
|
||||
|
||||
publicSeaLineListVo.setPartnerId(x.getPartnerId());
|
||||
publicSeaLineListVo.setCreateTime(x.getCreateTime());
|
||||
publicSeaLineListVo.setPartnerUserName(x.getUserName());
|
||||
publicSeaLineListVo.setPartnerUserPhone(x.getMobile());
|
||||
// TODO: 2023/6/15 手机号归属地
|
||||
publicSeaLineListVo.setPhoneAddress("");
|
||||
publicSeaLineListVo.setWantShopArea(x.getWantShopArea());
|
||||
publicSeaLineListVo.setId(x.getLineId());
|
||||
publicSeaLineListVo.setAcceptAdjustType(x.getAcceptAdjustType());
|
||||
publicSeaLineListVo.setFollowCount(countMap.getOrDefault(x.getPartnerId(),0));
|
||||
|
||||
HyPartnerLineInfoDO hy = hyPartnerLineInfoDOMap.getOrDefault(x.getPartnerId(), new HyPartnerLineInfoDO());
|
||||
publicSeaLineListVo.setRejectPublicReason(hy.getRejectPublicReason());
|
||||
publicSeaLineListVo.setRejectRealReason(hy.getRejectRealReason());
|
||||
publicSeaLineListVo.setLastCloseDate(hy.getCloseTime());
|
||||
publicSeaLineListVo.setLastInvestmentManager(hy.getInvestmentManager());
|
||||
publicSeaLineListVo.setPartnerUserPhone(mobileMap.get(hy.getInvestmentManager()));
|
||||
result.add(publicSeaLineListVo);
|
||||
});
|
||||
publicSeaLineList.setList(result);
|
||||
return publicSeaLineList;
|
||||
}
|
||||
|
||||
/**
|
||||
* convertPartnerBlackListDTOToVo
|
||||
* @param partnerBlackListDTO
|
||||
|
||||
@@ -2,8 +2,11 @@ package com.cool.store.service.impl;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
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.exception.ServiceException;
|
||||
import com.cool.store.mapper.HyPartnerInterviewMapper;
|
||||
import com.cool.store.mapper.HyPartnerInterviewPlanMapper;
|
||||
import com.cool.store.request.EntrustOthersReq;
|
||||
@@ -11,10 +14,14 @@ import com.cool.store.request.FinishInterviewReq;
|
||||
import com.cool.store.request.GetInterviewListReq;
|
||||
import com.cool.store.request.ModifyInterviewTimeReq;
|
||||
import com.cool.store.service.InterviewService;
|
||||
import com.cool.store.utils.TRTCUtils;
|
||||
import com.cool.store.vo.EnterInterviewVO;
|
||||
import com.cool.store.vo.interview.InterviewVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@@ -28,9 +35,18 @@ import java.util.List;
|
||||
@Service
|
||||
public class InterviewServiceImpl implements InterviewService {
|
||||
|
||||
@Value("${trtc.sdkAppId}")
|
||||
private Long sdkAppId;
|
||||
|
||||
@Value("${trtc.secretKey}")
|
||||
private String key;
|
||||
|
||||
@Autowired
|
||||
private HyPartnerInterviewPlanMapper hyPartnerInterviewPlanMapper;
|
||||
|
||||
@Autowired
|
||||
private HyPartnerInterviewMapper interviewMapper;
|
||||
|
||||
@Autowired
|
||||
private HyPartnerInterviewMapper hyPartnerInterviewMapper;
|
||||
@Override
|
||||
@@ -97,6 +113,35 @@ public class InterviewServiceImpl implements InterviewService {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 进入面试间的方法
|
||||
* 修改一些面试状态
|
||||
* 最后返回 userSign 用于进入腾讯云音视频房间
|
||||
*
|
||||
* @return userSign 进入视频所需签名
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public EnterInterviewVO enterInterviewRoom(EnterInterviewDto dto) {
|
||||
try {
|
||||
//1. 将面试状态改为 --> 2已开始
|
||||
interviewMapper.updateInterviewStatus(dto.getInterviewId(), 2);
|
||||
//3. 修改面试实际开始时间,以第一个人进来的时间为准,后续不再修改
|
||||
interviewMapper.updateActualStartTime(dto.getInterviewId(), DateUtil.now());
|
||||
//4. 修改加盟商或面试官进入面试时间
|
||||
interviewMapper.updateEnterTime(dto.getInterviewId(), dto.getUserType(), DateUtil.now());
|
||||
//5. 加盟商如果进入了,就修改面试计划表 is_partner_interview 字段
|
||||
interviewMapper.updateWhetherPartnerEnter(dto.getInterviewId());
|
||||
//6. 查询对应的面试官id、姓名及加盟商姓名
|
||||
EnterInterviewVO vo = interviewMapper.getInterviewerByInterviewId(dto.getInterviewId());
|
||||
//生成 userSign
|
||||
String userSig = TRTCUtils.genUserSig(sdkAppId, key, dto.getUserId());
|
||||
vo.setUserSign(userSig);
|
||||
return vo;
|
||||
} catch (Exception e) {
|
||||
throw new ServiceException(ErrorCodeEnum.INTERVIEW_ENTER_FAIL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -2,16 +2,16 @@ package com.cool.store.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.cool.store.dto.partner.EnterInterviewDto;
|
||||
import com.cool.store.enums.ErrorCodeEnum;
|
||||
import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.mapper.HyPartnerInterviewMapper;
|
||||
import com.cool.store.oss.OSSServer;
|
||||
import com.cool.store.service.PartnerInterviewService;
|
||||
import com.cool.store.utils.PDFUtils;
|
||||
import com.cool.store.utils.PassLetterUtils;
|
||||
import com.cool.store.utils.TRTCUtils;
|
||||
import com.cool.store.vo.PartnerEnterInterviewVO;
|
||||
import com.cool.store.vo.EnterInterviewVO;
|
||||
import com.cool.store.vo.PartnerInterviewInfoVO;
|
||||
import com.cool.store.vo.PartnerPassLetterDetailVO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -19,8 +19,7 @@ import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.io.*;
|
||||
|
||||
@Service
|
||||
public class PartnerInterviewServiceImpl implements PartnerInterviewService {
|
||||
@@ -28,6 +27,9 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService {
|
||||
@Autowired
|
||||
private HyPartnerInterviewMapper interviewMapper;
|
||||
|
||||
@Autowired
|
||||
private OSSServer ossServer;
|
||||
|
||||
@Value("${trtc.sdkAppId}")
|
||||
private Long sdkAppId;
|
||||
|
||||
@@ -54,7 +56,7 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService {
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public PartnerEnterInterviewVO enterInterviewRoom(EnterInterviewDto dto) {
|
||||
public EnterInterviewVO enterInterviewRoom(EnterInterviewDto dto) {
|
||||
try {
|
||||
//1. 将面试状态改为 --> 2已开始
|
||||
interviewMapper.updateInterviewStatus(dto.getInterviewId(), 2);
|
||||
@@ -64,13 +66,11 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService {
|
||||
interviewMapper.updateEnterTime(dto.getInterviewId(), dto.getUserType(), DateUtil.now());
|
||||
//5. 加盟商如果进入了,就修改面试计划表 is_partner_interview 字段
|
||||
interviewMapper.updateWhetherPartnerEnter(dto.getInterviewId());
|
||||
//6. 查询对应的面试官id
|
||||
String interviewId = interviewMapper.getInterviewerByInterviewId(dto.getInterviewId());
|
||||
//6. 查询对应的面试官id、姓名及加盟商姓名
|
||||
EnterInterviewVO vo = interviewMapper.getInterviewerByInterviewId(dto.getInterviewId());
|
||||
//生成 userSign
|
||||
String userSig = TRTCUtils.genUserSig(sdkAppId, key, dto.getUserId());
|
||||
PartnerEnterInterviewVO vo = new PartnerEnterInterviewVO();
|
||||
vo.setUserSign(userSig);
|
||||
vo.setInterviewerId(interviewId);
|
||||
return vo;
|
||||
} catch (Exception e) {
|
||||
throw new ServiceException(ErrorCodeEnum.INTERVIEW_ENTER_FAIL);
|
||||
@@ -84,17 +84,8 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService {
|
||||
@Override
|
||||
public PartnerPassLetterDetailVO passLetterDetail(String interviewId) {
|
||||
PartnerPassLetterDetailVO vo = interviewMapper.getPassLetterDetail(interviewId);
|
||||
//有效期为审批通过次日起第 60 天的 23:59:59,由此倒推 createTime
|
||||
DateTime expiryDate = DateUtil.parseDate(vo.getExpiryDate());
|
||||
DateTime createTime = DateUtil.offsetDay(expiryDate, -61);
|
||||
vo.setCreateTime(DateUtil.format(createTime, "yyyy-MM-dd"));
|
||||
//解析意向开店区域为市级行政区
|
||||
String verifyCity = vo.getVerifyCity();
|
||||
if (verifyCity == null) {
|
||||
String passCode = PassLetterUtils.genPassLetter(vo.getPartnerName(), verifyCity, vo.getPassCode(), createTime);
|
||||
vo.setPassCode(passCode);
|
||||
return vo;
|
||||
}
|
||||
String[] split = verifyCity.split("/");
|
||||
//根据长度来取市级行政区域
|
||||
if (split.length == 2) {
|
||||
@@ -106,9 +97,35 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService {
|
||||
} else {
|
||||
System.out.println("wrong");
|
||||
}
|
||||
String passCode = PassLetterUtils.genPassLetter(vo.getPartnerName(), verifyCity, vo.getPassCode(), createTime);
|
||||
vo.setPassCode(passCode);
|
||||
// TODO 调用生成通过函和修改数据库数据的方法
|
||||
String passCode = genPassLetterAndUpdateDB(vo, interviewId);
|
||||
//再查一次 vo
|
||||
vo = interviewMapper.getPassLetterDetail(interviewId);
|
||||
//有效期为审批通过次日起第 60 天的 23:59:59,由此倒推 createTime
|
||||
DateTime expiryDate = DateUtil.parseDate(vo.getExpiryDate());
|
||||
DateTime createTime = DateUtil.offsetDay(expiryDate, -60);
|
||||
vo.setCreateTime(DateUtil.format(createTime, "yyyy-MM-dd"));
|
||||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO 暂时将生成 passLetter 并上传 OSS 和修改数据库对应信息的方法放在这里,实际应该在 800 的回调方法中
|
||||
* @return passCode
|
||||
*/
|
||||
private String genPassLetterAndUpdateDB(PartnerPassLetterDetailVO passLetterDetail, String interviewId) {
|
||||
//已经有 passCode 的话就不要再生成了,默认上游全部数据都正确
|
||||
if (ObjectUtil.isEmpty(passLetterDetail.getPassCode())) {
|
||||
DateTime createTime = DateUtil.date();
|
||||
String code = passLetterDetail.getPassCode() == null ? PassLetterUtils.genPassCode(createTime) : passLetterDetail.getPassCode();
|
||||
ByteArrayOutputStream outputStream = PassLetterUtils.genPassLetter(passLetterDetail.getPartnerName(), code, passLetterDetail.getVerifyCity(), createTime);
|
||||
ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
|
||||
String passFileUrl = ossServer.uploadFileServer(inputStream, "partner/passLetter/" + code + ".pdf");
|
||||
//计算有效期截至日期
|
||||
DateTime expiryDate = DateUtil.offsetDay(createTime, 60);
|
||||
String expiryDateStr = DateUtil.format(expiryDate, "yyyy-MM-dd") + " 23:59:59";
|
||||
interviewMapper.updatePassLetterInfo(code, passFileUrl, expiryDateStr, interviewId);
|
||||
}
|
||||
return passLetterDetail.getPassCode();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
import com.cool.store.constants.CommonConstants;
|
||||
import com.cool.store.dao.HyPartnerUserInfoDAO;
|
||||
import com.cool.store.entity.HyPartnerUserInfoDO;
|
||||
import com.cool.store.enums.ErrorCodeEnum;
|
||||
import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.service.PartnerUserInfoService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -11,4 +15,27 @@ public class PartnerUserInfoServiceImpl implements PartnerUserInfoService {
|
||||
@Autowired
|
||||
private HyPartnerUserInfoDAO hyPartnerUserInfoDAO;
|
||||
|
||||
@Override
|
||||
public HyPartnerUserInfoDO selectByPartnerId(String partnerId) {
|
||||
return hyPartnerUserInfoDAO.selectByPartnerId(partnerId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean queryJoinNotice(String partnerId) {
|
||||
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(partnerId);
|
||||
if (hyPartnerUserInfoDO==null){
|
||||
throw new ServiceException(ErrorCodeEnum.PARTNER_USER_NOT_EXIST);
|
||||
}
|
||||
return hyPartnerUserInfoDO.getIsWritePartnerKnow() == 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean completeJoinNotice(String partnerId) {
|
||||
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(partnerId);
|
||||
if (hyPartnerUserInfoDO == null){
|
||||
throw new ServiceException(ErrorCodeEnum.PARTNER_USER_NOT_EXIST);
|
||||
}
|
||||
hyPartnerUserInfoDAO.updateJoinKnowById(CommonConstants.ONE, hyPartnerUserInfoDO.getId());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -201,13 +201,26 @@ public class ZoneServiceImpl implements ZoneService {
|
||||
List<Long> openAreaIdList = list.stream().map(ZoneCheckDTO::getOpenAreaMappingId).collect(Collectors.toList());
|
||||
List<HyOpenAreaInfoDO> hyOpenAreaInfoDOList = openAreaInfoDAO.selectByIds(openAreaIdList);
|
||||
Map<Long, String> areaNameMap = hyOpenAreaInfoDOList.stream().collect(Collectors.toMap(HyOpenAreaInfoDO::getId, HyOpenAreaInfoDO::getAreaName));
|
||||
List<ZoneCheckVO> reslut = new ArrayList<>();
|
||||
List<ZoneCheckVO> result = new ArrayList<>();
|
||||
list.forEach(x->{
|
||||
ZoneCheckVO zoneCheckVO = new ZoneCheckVO();
|
||||
zoneCheckVO.setZoneName(x.getZoneName());
|
||||
String areaName = areaNameMap.get(x.getOpenAreaMappingId());
|
||||
zoneCheckVO.setAreaName(areaName);
|
||||
result.add(zoneCheckVO);
|
||||
});
|
||||
return reslut;
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> queryAllBingZoneRegionList(String type) {
|
||||
PageInfo<HyIntendDevZoneInfoDO> intend = hyIntendDevZoneInfoDAO.getHyIntendDevZoneInfoList(type);
|
||||
List<HyIntendDevZoneInfoDO> list = intend.getList();
|
||||
List<String> resultList = list.stream().filter(x->StringUtil.isNotEmpty(x.getAssociatedRegionId()))
|
||||
.flatMap(HyIntendDevZoneInfoDO -> JSONObject.parseArray(HyIntendDevZoneInfoDO.getAssociatedRegionId(), String.class).stream())
|
||||
.collect(Collectors.toList());
|
||||
return resultList;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user