Merge remote-tracking branch 'origin/cc_20230520_partner' into cc_20230520_partner
This commit is contained in:
@@ -4,6 +4,7 @@ package com.cool.store.handler;
|
||||
import com.cool.store.exception.ApiException;
|
||||
import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.response.error.ErrorResponse;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||
@@ -15,23 +16,27 @@ import org.springframework.web.bind.annotation.RestControllerAdvice;
|
||||
* @Description: 自定义异常处理
|
||||
* @date 2023-06-13 19:42
|
||||
*/
|
||||
@Slf4j
|
||||
@RestControllerAdvice
|
||||
public class CustomExceptionHandler {
|
||||
|
||||
@ExceptionHandler(value = ServiceException.class)
|
||||
public ResponseEntity<ErrorResponse> handleCustomException(ServiceException e) {
|
||||
log.error(e.getMessage(), e);
|
||||
ErrorResponse errorResponse = new ErrorResponse(e.getErrorCode(), e.getMessage());
|
||||
return new ResponseEntity<>(errorResponse, HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
|
||||
@ExceptionHandler(value = ApiException.class)
|
||||
public ResponseEntity<ErrorResponse> handleCustomException(ApiException e) {
|
||||
log.error(e.getMessage(), e);
|
||||
ErrorResponse errorResponse = new ErrorResponse(e.getErrorCode(), e.getMessage());
|
||||
return new ResponseEntity<>(errorResponse, HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
|
||||
@ExceptionHandler(value = Exception.class)
|
||||
public ResponseEntity<ErrorResponse> handleException(Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
ErrorResponse errorResponse = new ErrorResponse(HttpStatus.INTERNAL_SERVER_ERROR.value(), e.getMessage());
|
||||
return new ResponseEntity<>(errorResponse, HttpStatus.INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.cool.store.dto.enterprise.AuthScopeDTO;
|
||||
import com.cool.store.dto.enterprise.EnterpriseUserDTO;
|
||||
import com.cool.store.dto.enterprise.SysDepartmentDTO;
|
||||
import com.cool.store.dto.login.UserIdInfoDTO;
|
||||
import com.cool.store.dto.message.SendCardMessageDTO;
|
||||
import com.cool.store.dto.response.ResultDTO;
|
||||
import com.cool.store.entity.EnterpriseUserDO;
|
||||
import com.cool.store.enums.ErrorCodeEnum;
|
||||
@@ -17,6 +18,7 @@ import com.cool.store.utils.RestTemplateUtil;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -311,4 +313,23 @@ public class ISVHttpRequest {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送飞书卡片消息
|
||||
* @param param
|
||||
*/
|
||||
public void sendFeiShuCardMessage(SendCardMessageDTO param) throws ApiException{
|
||||
if(CollectionUtils.isEmpty(param.getUserIds()) || StringUtils.isAnyBlank(param.getTitle(), param.getContent(), param.getMessageUrl()) || Objects.isNull(param.getMessageType())){
|
||||
return;
|
||||
}
|
||||
String url = isvDomain + "/sendFeiShuCardMessage";
|
||||
ResultDTO responseEntity = null;
|
||||
try {
|
||||
responseEntity = httpRestTemplateService.postForObject(url, param, ResultDTO.class);
|
||||
log.info("url:{}, response:{}", url, JSONObject.toJSONString(responseEntity));
|
||||
} catch (Exception e) {
|
||||
log.info("调用isv出错{}", e);
|
||||
throw new ApiException(e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
package com.cool.store.mq;
|
||||
|
||||
|
||||
import com.aliyun.openservices.ons.api.Constants;
|
||||
import com.aliyun.openservices.ons.api.Message;
|
||||
import com.cool.store.constants.CommonConstants;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.aspectj.lang.JoinPoint;
|
||||
import org.aspectj.lang.annotation.AfterReturning;
|
||||
import org.aspectj.lang.annotation.Aspect;
|
||||
import org.aspectj.lang.annotation.Before;
|
||||
import org.aspectj.lang.annotation.Pointcut;
|
||||
import org.slf4j.MDC;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 切面处理类,操作日志异常日志记录处理
|
||||
* @author jiangjixiang
|
||||
*/
|
||||
@Aspect
|
||||
@Component
|
||||
@Slf4j
|
||||
public class RocketMqLogAspect {
|
||||
|
||||
|
||||
/**
|
||||
* 设置操作异常切入点记录异常日志 扫描所有controller包下操作
|
||||
*/
|
||||
@Pointcut(value = "execution(public * com.cool.store.mq.consumer.listener..*.consume(..))")
|
||||
public void rocketMqMdc() {
|
||||
}
|
||||
|
||||
/**
|
||||
* 正常返回通知,拦截用户操作日志,连接点正常执行完成后执行, 如果连接点抛出异常,则不会执行
|
||||
*
|
||||
* @param joinPoint 切入点
|
||||
* @param keys 返回结果
|
||||
*/
|
||||
@Before(value = "rocketMqMdc()")
|
||||
public void mqBeforeLog(JoinPoint joinPoint) {
|
||||
try {
|
||||
Object[] args = joinPoint.getArgs();
|
||||
Message message = (Message)args[0];
|
||||
String traceId = message.getMsgID() + Constants.TOPIC_PARTITION_SEPARATOR + message.getReconsumeTimes();
|
||||
Map<String, String> context = MDC.getCopyOfContextMap();
|
||||
if(Objects.isNull(context)){
|
||||
MDC.put(CommonConstants.REQUEST_ID, traceId);
|
||||
}
|
||||
} catch (IllegalArgumentException e) {
|
||||
log.info("MDC mqBeforeLog", e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@AfterReturning(value = "rocketMqMdc()")
|
||||
public void doAfterReturning(JoinPoint joinPoint){
|
||||
try {
|
||||
MDC.clear();
|
||||
} catch (Exception e) {
|
||||
log.info("MDC doAfterReturning", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,7 @@ import com.aliyun.openservices.ons.api.Message;
|
||||
import com.aliyun.openservices.ons.api.MessageListener;
|
||||
import com.cool.store.constants.CommonConstants;
|
||||
import com.cool.store.dto.buser.UserEventDTO;
|
||||
import com.cool.store.dto.dept.DepartmentEventDTO;
|
||||
import com.cool.store.enums.RocketMqTagEnum;
|
||||
import com.cool.store.service.EnterpriseSyncService;
|
||||
import com.cool.store.utils.RedisUtilPool;
|
||||
@@ -45,13 +46,19 @@ public class FeiShuEventListener implements MessageListener {
|
||||
RocketMqTagEnum tag = RocketMqTagEnum.getByTag(message.getTag());
|
||||
switch (tag){
|
||||
case USER_EVENT:
|
||||
UserEventDTO reqBody = JSONObject.parseObject(text, UserEventDTO.class);
|
||||
enterpriseSyncService.userUpdateEvent(reqBody);
|
||||
UserEventDTO userBody = JSONObject.parseObject(text, UserEventDTO.class);
|
||||
enterpriseSyncService.userUpdateEvent(userBody);
|
||||
break;
|
||||
case AUTH_SCOPE_CHANGE:
|
||||
enterpriseSyncService.syncAll();
|
||||
break;
|
||||
case DEPT_EVENT:
|
||||
DepartmentEventDTO deptBody = JSONObject.parseObject(text, DepartmentEventDTO.class);
|
||||
enterpriseSyncService.deptUpdateEvent(deptBody);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
}catch (Exception e){
|
||||
log.error("DingMsgDealListener consume dealAddressBookChange error",e);
|
||||
return Action.ReconsumeLater;
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.cool.store.service;
|
||||
|
||||
import com.cool.store.dto.partner.DescribePhoneNumberDTO;
|
||||
import com.cool.store.exception.ApiException;
|
||||
import com.cool.store.vo.cuser.IdentityCardInfoVO;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: AliyunService
|
||||
* @Description:阿里云相关服务
|
||||
* @date 2023-06-15 20:04
|
||||
*/
|
||||
public interface AliyunService {
|
||||
|
||||
/**
|
||||
* 获取手机号归属信息
|
||||
* @param phoneNumber
|
||||
* @return
|
||||
*/
|
||||
DescribePhoneNumberDTO getPhoneNumberAttribute(String phoneNumber);
|
||||
|
||||
/**
|
||||
* 根据身份证正面获取信息
|
||||
* @param faceImageUrl
|
||||
* @return
|
||||
*/
|
||||
IdentityCardInfoVO getIdentityCardInfo(String faceImageUrl) throws ApiException;
|
||||
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.cool.store.service;
|
||||
|
||||
import com.cool.store.dto.buser.UserEventDTO;
|
||||
import com.cool.store.dto.dept.DepartmentEventDTO;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
@@ -17,4 +18,10 @@ public interface EnterpriseSyncService {
|
||||
* @param param
|
||||
*/
|
||||
void userUpdateEvent(UserEventDTO param);
|
||||
|
||||
/**
|
||||
* 部门事件
|
||||
* @param param
|
||||
*/
|
||||
void deptUpdateEvent(DepartmentEventDTO param);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.cool.store.service;
|
||||
|
||||
import com.cool.store.exception.ApiException;
|
||||
import com.cool.store.request.CreateQualifyVerifyReq;
|
||||
|
||||
/**
|
||||
* @Author: young.yu
|
||||
* @Date: 2023-06-14 13:51
|
||||
* @Description:
|
||||
*/
|
||||
public interface FlowService {
|
||||
void createQualifyVerify(CreateQualifyVerifyReq request) throws ApiException;
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ public interface HyPartnerInterviewPlanService {
|
||||
* @param pageNumber
|
||||
* @return
|
||||
*/
|
||||
PageInfo<PartnerInterviewInfoVO> getPartnerInterviewInfoList(String userId,Integer pageSize,Integer pageNumber);
|
||||
PageInfo<PartnerInterviewInfoVO> getPartnerInterviewInfoList(String userId,String type,Integer pageSize,Integer pageNumber);
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -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,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);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@ public class AdvanceSettingServiceImpl implements AdvanceSettingService {
|
||||
if (advancedSettingRequest.getId()!=null){
|
||||
//修改
|
||||
updateAdvanceSetting(userId,advancedSettingRequest);
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
HyAdvancedSettingDO hyAdvancedSettingDO = new HyAdvancedSettingDO();
|
||||
hyAdvancedSettingDO.setCreateUserId(userId);
|
||||
@@ -38,7 +39,7 @@ public class AdvanceSettingServiceImpl implements AdvanceSettingService {
|
||||
|
||||
private Boolean updateAdvanceSetting(String userId, AdvancedSettingRequest advancedSettingRequest) {
|
||||
HyAdvancedSettingDO hyAdvancedSettingDO = new HyAdvancedSettingDO();
|
||||
hyAdvancedSettingDO.setCreateUserId(userId);
|
||||
hyAdvancedSettingDO.setUpdateUserId(userId);
|
||||
hyAdvancedSettingDO.setId(advancedSettingRequest.getId());
|
||||
hyAdvancedSettingDO.setPartnerUrl(advancedSettingRequest.getPartnerUrl());
|
||||
hyAdvancedSettingDO.setTencentVideoAccount(advancedSettingRequest.getTencentVideoAccount());
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.aliyun.dytnsapi20200217.Client;
|
||||
import com.aliyun.dytnsapi20200217.models.DescribePhoneNumberOperatorAttributeRequest;
|
||||
import com.aliyun.dytnsapi20200217.models.DescribePhoneNumberOperatorAttributeResponse;
|
||||
import com.aliyun.ocr20191230.models.RecognizeIdentityCardResponse;
|
||||
import com.aliyun.ocr20191230.models.RecognizeIdentityCardResponseBody;
|
||||
import com.aliyun.teaopenapi.models.Config;
|
||||
import com.cool.store.dto.partner.DescribePhoneNumberDTO;
|
||||
import com.cool.store.enums.ErrorCodeEnum;
|
||||
import com.cool.store.exception.ApiException;
|
||||
import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.service.AliyunService;
|
||||
import com.cool.store.vo.cuser.IdentityCardInfoVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: AliyunServiceImpl
|
||||
* @Description:
|
||||
* @date 2023-06-15 20:04
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class AliyunServiceImpl implements AliyunService {
|
||||
|
||||
@Override
|
||||
public DescribePhoneNumberDTO getPhoneNumberAttribute(String phoneNumber) {
|
||||
try {
|
||||
Config config = new Config();
|
||||
//todo zcb ak sk替换
|
||||
config.accessKeyId = "LTAI5t9RaXvABZbHvoXjDFJ1";
|
||||
config.accessKeySecret = "zhOK7WWo3yGoUWkOMaatty19k25CMd";
|
||||
Client client = new Client(config);
|
||||
DescribePhoneNumberOperatorAttributeRequest request = new DescribePhoneNumberOperatorAttributeRequest();
|
||||
request.authCode = "Y81FVZepk6";
|
||||
request.inputNumber = phoneNumber;
|
||||
request.mask = "NORMAL";
|
||||
DescribePhoneNumberOperatorAttributeResponse response = client.describePhoneNumberOperatorAttribute(request);
|
||||
String code = response.body.code;
|
||||
if (!com.aliyun.teautil.Common.equalString(code, "OK")) {
|
||||
log.error("错误信息:" , response.body.message + "");
|
||||
throw new ServiceException(ErrorCodeEnum.GET_PHONENUMBER_INFO_ERROR);
|
||||
}
|
||||
return JSONObject.parseObject(JSONObject.toJSONString(response.body.data), DescribePhoneNumberDTO.class);
|
||||
} catch (Exception e) {
|
||||
log.error("获取手机号异常:", e);
|
||||
throw new ServiceException(ErrorCodeEnum.GET_PHONENUMBER_INFO_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public IdentityCardInfoVO getIdentityCardInfo(String faceImageUrl) throws ApiException {
|
||||
//todo zcb ak sk替换
|
||||
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
|
||||
.setAccessKeyId("LTAI5t9RaXvABZbHvoXjDFJ1")
|
||||
.setAccessKeySecret("zhOK7WWo3yGoUWkOMaatty19k25CMd");
|
||||
// 访问的域名
|
||||
config.endpoint = "ocr.cn-shanghai.aliyuncs.com";
|
||||
try {
|
||||
com.aliyun.ocr20191230.Client client = new com.aliyun.ocr20191230.Client(config);
|
||||
URL url = new URL(faceImageUrl);
|
||||
InputStream inputStream = url.openConnection().getInputStream();
|
||||
com.aliyun.ocr20191230.models.RecognizeIdentityCardAdvanceRequest recognizeIdentityCardAdvanceRequest = new com.aliyun.ocr20191230.models.RecognizeIdentityCardAdvanceRequest()
|
||||
.setImageURLObject(inputStream)
|
||||
.setSide("face");
|
||||
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
|
||||
RecognizeIdentityCardResponse idCardResponse = client.recognizeIdentityCardAdvance(recognizeIdentityCardAdvanceRequest, runtime);
|
||||
log.info("身份证解析结果:{}", JSONObject.toJSONString(idCardResponse));
|
||||
RecognizeIdentityCardResponseBody.RecognizeIdentityCardResponseBodyDataFrontResult frontResult = Optional.ofNullable(idCardResponse).map(o -> o.getBody()).map(o -> o.data).map(o -> o.frontResult).orElse(null);
|
||||
String username = frontResult.name;
|
||||
String liveAddress = frontResult.address;
|
||||
String birthdate = frontResult.birthDate;
|
||||
if(StringUtils.isNotBlank(birthdate)){
|
||||
birthdate = convertDate(birthdate, "yyyyMMdd");
|
||||
}
|
||||
String sex = frontResult.gender;
|
||||
String idCard = frontResult.IDNumber;
|
||||
String nation = frontResult.nationality;
|
||||
IdentityCardInfoVO result = new IdentityCardInfoVO(username, liveAddress, birthdate, sex, idCard, nation);
|
||||
log.info("身份证解析:{}", JSONObject.toJSONString(result));
|
||||
return result;
|
||||
} catch (com.aliyun.tea.TeaException e) {
|
||||
log.error("身份证解析报错TeaException:{}", e);
|
||||
throw new ApiException(e.getMessage());
|
||||
} catch (MalformedURLException e) {
|
||||
log.error("身份证解析报错MalformedURLException:{}", e);
|
||||
throw new ApiException(e.getMessage());
|
||||
} catch (IOException e) {
|
||||
log.error("身份证解析报错IOException:{}", e);
|
||||
throw new ApiException(e.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error("身份证解析报错Exception:{}", e);
|
||||
throw new ApiException(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public static String convertDate(String date, String format) {
|
||||
try {
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
|
||||
LocalDate localDate = LocalDate.parse(date, formatter);
|
||||
return localDate.toString();
|
||||
} catch (Exception e) {
|
||||
throw new ServiceException(ErrorCodeEnum.DATA_CONVERT_ERROR);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,11 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cool.store.constants.CommonConstants;
|
||||
import com.cool.store.dao.*;
|
||||
import com.cool.store.dto.buser.UserEventDTO;
|
||||
import com.cool.store.dto.calendar.DeleteCalendarEventDTO;
|
||||
import com.cool.store.dto.dept.DepartmentEventDTO;
|
||||
import com.cool.store.dto.enterprise.*;
|
||||
import com.cool.store.entity.*;
|
||||
import com.cool.store.enums.DataSourceEnum;
|
||||
@@ -204,4 +206,19 @@ public class EnterpriseSyncServiceImpl implements EnterpriseSyncService {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deptUpdateEvent(DepartmentEventDTO param) {
|
||||
log.info("部门变更:{}", JSONObject.toJSONString(param));
|
||||
switch (parseValue(param.getEventType())){
|
||||
case DEPARTMENT_CREATED:
|
||||
break;
|
||||
case DEPARTMENT_UPDATED:
|
||||
break;
|
||||
case DEPARTMENT_DELETED:
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,188 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cool.store.dao.EnterpriseUserDAO;
|
||||
import com.cool.store.dto.login.UserIdInfoDTO;
|
||||
import com.cool.store.dto.mdm.AccessTokenDTO;
|
||||
import com.cool.store.dto.response.MDMResultDTO;
|
||||
import com.cool.store.entity.*;
|
||||
import com.cool.store.enums.DataSourceEnum;
|
||||
import com.cool.store.enums.ErrorCodeEnum;
|
||||
import com.cool.store.enums.WorkflowStatusEnum;
|
||||
import com.cool.store.exception.ApiException;
|
||||
import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.mapper.DingdingUserMapper;
|
||||
import com.cool.store.mapper.HyPartnerCertificationInfoMapper;
|
||||
import com.cool.store.mapper.HyPartnerInterviewMapper;
|
||||
import com.cool.store.mapper.HyPartnerLineInfoMapper;
|
||||
import com.cool.store.request.CreateQualifyVerifyReq;
|
||||
import com.cool.store.request.RpcCreateQualifyVerfyReq;
|
||||
import com.cool.store.request.RpcGetMdmTokenReq;
|
||||
import com.cool.store.service.FlowService;
|
||||
import com.cool.store.utils.RedisUtilPool;
|
||||
import com.cool.store.utils.RestTemplateUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @Author: young.yu
|
||||
* @Date: 2023-06-14 14:22
|
||||
* @Description:
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class FlowServiceImpl implements FlowService {
|
||||
|
||||
// @Value("${hs.mdm.baseUrl}")
|
||||
private String mdmBaseUrl;
|
||||
@Autowired
|
||||
private RedisUtilPool redisUtilPool;
|
||||
|
||||
@Autowired
|
||||
private HyPartnerLineInfoMapper hyPartnerLineInfoMapper;
|
||||
|
||||
@Autowired
|
||||
private EnterpriseUserDAO enterpriseUserDAO;
|
||||
|
||||
@Autowired
|
||||
private DingdingUserMapper dingdingUserMapper;
|
||||
|
||||
@Autowired
|
||||
private HyPartnerInterviewMapper hyPartnerInterviewMapper;
|
||||
|
||||
@Autowired
|
||||
private HyPartnerCertificationInfoMapper hyPartnerCertificationInfoMapper;
|
||||
|
||||
@Override
|
||||
public void createQualifyVerify(CreateQualifyVerifyReq request) throws ApiException {
|
||||
//1.发起加盟商资质审核
|
||||
RpcCreateQualifyVerfyReq rpcRequest = new RpcCreateQualifyVerfyReq();
|
||||
rpcRequest.setIntendedSignDate(request.getWantSignTime());
|
||||
rpcRequest.setFraSource("HSAYPartner");
|
||||
rpcRequest.setAmtDeposit(Integer.valueOf(request.getSecurityFund()));
|
||||
|
||||
//获取授权码
|
||||
String authCode = null;
|
||||
if (StringUtils.isBlank(request.getLineId())) {
|
||||
//根据线索id获取线索信息
|
||||
HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoMapper.selectByPrimaryKeySelective(Long.valueOf(request.getLineId()));
|
||||
if (!Objects.isNull(hyPartnerLineInfoDO)) {
|
||||
String investmentManagerId = hyPartnerLineInfoDO.getInvestmentManager();
|
||||
EnterpriseUserDO enterpriseUserDO = enterpriseUserDAO.getUserInfoById(investmentManagerId);
|
||||
if (!Objects.isNull(enterpriseUserDO)) {
|
||||
String jobNumber = enterpriseUserDO.getJobnumber();
|
||||
String mobile = enterpriseUserDO.getMobile();
|
||||
DingdingUserDO dingdingUserDO = dingdingUserMapper.selectDingDingUserByMobile(mobile);
|
||||
if (Objects.isNull(dingdingUserDO)) {
|
||||
throw new ServiceException(ErrorCodeEnum.DINGDING_USER_NOT_EXIST);
|
||||
}
|
||||
rpcRequest.setDingUserId(dingdingUserDO.getUserid());
|
||||
authCode = generateAuthCode(jobNumber);
|
||||
rpcRequest.setAuthCode(authCode);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
rpcRequest.setIntendedSigner(request.getIntentionSignerUsername());
|
||||
rpcRequest.setIntendedSignerTel(request.getIntentionSignerMobile());
|
||||
|
||||
String qualifyVerifyId = createQualifyVerify(rpcRequest);
|
||||
//2.更新审核信息
|
||||
HyPartnerCertificationInfoDO partnerCertificationInfoDO = new HyPartnerCertificationInfoDO();
|
||||
partnerCertificationInfoDO.setPartnerId(request.getPartnerId());
|
||||
partnerCertificationInfoDO.setPartnerLineId(Long.valueOf(request.getLineId()));
|
||||
partnerCertificationInfoDO.setPartnerInterviewId(Long.valueOf(request.getInterviewId()));
|
||||
partnerCertificationInfoDO.setPartnership(String.valueOf(request.getPartnership()));
|
||||
partnerCertificationInfoDO.setWantSignTime(DateUtil.parseDate(request.getWantSignTime()));
|
||||
partnerCertificationInfoDO.setPartnerFee(request.getPartnerFee());
|
||||
partnerCertificationInfoDO.setSecurityFund(request.getSecurityFund());
|
||||
partnerCertificationInfoDO.setTechnicalServiceFee(request.getTechnicalServiceFee());
|
||||
partnerCertificationInfoDO.setIntentionMoney(request.getIntentionMoney());
|
||||
partnerCertificationInfoDO.setIntentionSignerUsername(request.getIntentionSignerUsername());
|
||||
partnerCertificationInfoDO.setIntentionSignerMobile(request.getIntentionSignerMobile());
|
||||
partnerCertificationInfoDO.setIntentionEdu(request.getIntentionEdu());
|
||||
partnerCertificationInfoDO.setRealControlUsername(request.getRealControlUsername());
|
||||
partnerCertificationInfoDO.setRealControlIdcard(request.getRealControlIdcard());
|
||||
partnerCertificationInfoDO.setSignerRealControlRelation(request.getSignerRealControlRelation());
|
||||
partnerCertificationInfoDO.setSignerOtherRealControlRelation(request.getSignerOtherRealControlRelation());
|
||||
partnerCertificationInfoDO.setSignerRealControlRelationCert(request.getSignerRealControlRelationCert());
|
||||
partnerCertificationInfoDO.setCreateTime(new Date());
|
||||
partnerCertificationInfoDO.setUpdateTime(new Date());
|
||||
hyPartnerCertificationInfoMapper.updateByPrimaryKeySelective(partnerCertificationInfoDO);
|
||||
//3.更新面试信息
|
||||
//根据面试id获取面试信息
|
||||
HyPartnerInterviewDO hyPartnerInterviewDO = hyPartnerInterviewMapper.selectByPrimaryKeySelective(request.getInterviewId());
|
||||
if (Objects.isNull(hyPartnerInterviewDO)) {
|
||||
throw new ServiceException(ErrorCodeEnum.INTERVIEW_NOT_EXIST);
|
||||
}
|
||||
hyPartnerInterviewDO.setQualifyVerifyId(qualifyVerifyId);
|
||||
hyPartnerInterviewDO.setUpdateTime(new Date());
|
||||
//更新
|
||||
hyPartnerInterviewDO.setStatus(Integer.valueOf(WorkflowStatusEnum.INTERVIEW_4.getCode()));
|
||||
hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
|
||||
|
||||
}
|
||||
|
||||
|
||||
public String createQualifyVerify(RpcCreateQualifyVerfyReq rpcRequest) throws ApiException{
|
||||
String url = mdmBaseUrl + "/api/openapi/runtime/form/startFraQualExam";
|
||||
ResponseEntity<MDMResultDTO> responseEntity = null;
|
||||
try {
|
||||
RpcGetMdmTokenReq rpcGetMDMTokenReq = new RpcGetMdmTokenReq();
|
||||
Map<String, String> headers = new HashMap<>();
|
||||
headers.put("Authorization", getMdmAccessToken(rpcGetMDMTokenReq));
|
||||
responseEntity = RestTemplateUtil.post(url, headers,rpcRequest, MDMResultDTO.class);
|
||||
log.info("url:{}, response:{}", url, JSONObject.toJSONString(responseEntity));
|
||||
if (Objects.nonNull(responseEntity.getBody()) && responseEntity.getBody().isSuccess()) {
|
||||
return JSONObject.toJSONString(responseEntity.getBody().getData());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.info("调用MDM接口出错{}", e);
|
||||
throw new ApiException(e.getMessage());
|
||||
}
|
||||
return null;
|
||||
|
||||
}
|
||||
|
||||
public String getMdmAccessToken(RpcGetMdmTokenReq rpcGetMDMTokenReq) throws ApiException {
|
||||
String url = mdmBaseUrl + "/api/oauth2/accessToken";
|
||||
ResponseEntity<MDMResultDTO> responseEntity = null;
|
||||
try {
|
||||
responseEntity = RestTemplateUtil.post(url,rpcGetMDMTokenReq, MDMResultDTO.class);
|
||||
log.info("url:{}, response:{}", url, JSONObject.toJSONString(responseEntity));
|
||||
if (Objects.nonNull(responseEntity.getBody()) && responseEntity.getBody().isSuccess()) {
|
||||
AccessTokenDTO accessTokenDTO = JSONObject.parseObject(JSONObject.toJSONString(responseEntity.getBody().getData()), AccessTokenDTO.class);
|
||||
if(accessTokenDTO==null || StringUtils.isBlank(accessTokenDTO.getAccessToken())){
|
||||
throw new ServiceException("获取Mdm token失败!");
|
||||
}
|
||||
return accessTokenDTO.getAccessToken();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.info("调用MDM接口出错{}", e);
|
||||
throw new ApiException(e.getMessage());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 生成授权码
|
||||
*
|
||||
* @param jobNumber
|
||||
* @return
|
||||
*/
|
||||
public String generateAuthCode(String jobNumber) {
|
||||
String prefix = jobNumber + DateUtil.format(new Date(), "yyyyMMdd");
|
||||
return prefix + redisUtilPool.incrby(prefix, 1, 60 * 60 * 25);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
@@ -62,28 +70,19 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
|
||||
List<HyPartnerUserInfoDO> hyPartnerUserInfoDOS = hyPartnerUserInfoDAO.selectByPartnerIds(partnerIds);
|
||||
Map<String, HyPartnerUserInfoDO> infoDOMap = hyPartnerUserInfoDOS.stream().collect(Collectors.toMap(HyPartnerUserInfoDO::getPartnerId, data -> data));
|
||||
List<PartnerIntentApplyInfoVO> result = new ArrayList<>();
|
||||
String finalWorkflowStatus = workflowStatus;
|
||||
list.stream().forEach(x->{
|
||||
PartnerIntentApplyInfoVO pat = partnerIntentApplyInfoDTOToVo(x);
|
||||
HyPartnerUserInfoDO infoDOMapOrDefault = infoDOMap.getOrDefault(x.getPartnerId(), new HyPartnerUserInfoDO());
|
||||
pat.setPartnerUserName(infoDOMapOrDefault.getUsername());
|
||||
pat.setPartnerUserPhone(infoDOMapOrDefault.getMobile());
|
||||
pat.setWorkflowStatus(finalWorkflowStatus);
|
||||
result.add(pat);
|
||||
});
|
||||
partnerIntentApplyInfo.setList(result);
|
||||
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 +101,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
|
||||
@@ -111,7 +172,7 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
|
||||
PartnerIntentApplyInfoVO partnerIntentApplyInfoVO = new PartnerIntentApplyInfoVO();
|
||||
partnerIntentApplyInfoVO.setId(partnerIntentApplyInfoDTO.getId());
|
||||
partnerIntentApplyInfoVO.setPartnerId(partnerIntentApplyInfoDTO.getPartnerId());
|
||||
partnerIntentApplyInfoVO.setPartnerLineId(partnerIntentApplyInfoDTO.getPartnerLineId());
|
||||
partnerIntentApplyInfoVO.setLineId(partnerIntentApplyInfoDTO.getPartnerLineId());
|
||||
partnerIntentApplyInfoVO.setPartnerSubmitTime(partnerIntentApplyInfoDTO.getPartnerSubmitTime());
|
||||
partnerIntentApplyInfoVO.setAcceptAdjustType(partnerIntentApplyInfoDTO.getAcceptAdjustType());
|
||||
partnerIntentApplyInfoVO.setLiveArea(partnerIntentApplyInfoDTO.getLiveArea());
|
||||
@@ -121,4 +182,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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -3,9 +3,11 @@ package com.cool.store.service.impl;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.cool.store.constants.CommonConstants;
|
||||
import com.cool.store.dao.HyPartnerInterviewPlanDAO;
|
||||
import com.cool.store.dao.HyPartnerLineInfoDAO;
|
||||
import com.cool.store.dao.HyPartnerUserInfoDAO;
|
||||
import com.cool.store.dto.partner.PartnerInterviewInfoDTO;
|
||||
import com.cool.store.entity.HyPartnerInterviewPlanDO;
|
||||
import com.cool.store.entity.HyPartnerLineInfoDO;
|
||||
import com.cool.store.entity.HyPartnerUserInfoDO;
|
||||
import com.cool.store.enums.WorkflowStageEnum;
|
||||
import com.cool.store.enums.WorkflowStatusEnum;
|
||||
@@ -39,6 +41,8 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan
|
||||
@Resource
|
||||
HyPartnerUserInfoDAO hyPartnerUserInfoDAO;
|
||||
|
||||
@Resource
|
||||
HyPartnerLineInfoDAO hyPartnerLineInfoDAO;
|
||||
|
||||
@Override
|
||||
public List<InterviewDetailInfoVO> getInterviewPlanList(String userId) {
|
||||
@@ -63,17 +67,34 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageInfo<PartnerInterviewInfoVO> getPartnerInterviewInfoList(String userId ,Integer pageSize,Integer pageNumber) {
|
||||
public PageInfo<PartnerInterviewInfoVO> getPartnerInterviewInfoList(String userId ,String type,Integer pageSize,Integer pageNumber) {
|
||||
String workflowStatus = "";
|
||||
if (CommonConstants.PENDING.equals(type)) {
|
||||
workflowStatus = WorkflowStatusEnum.RESERVATION_1.getCode();
|
||||
}
|
||||
if (CommonConstants.FOLLOW.equals(type)) {
|
||||
workflowStatus = WorkflowStatusEnum.RESERVATION_0.getCode();
|
||||
}
|
||||
PageHelper.startPage(pageNumber,pageSize);
|
||||
//查询预约面试列表
|
||||
PageInfo partnerInterviewInfoList = hyPartnerInterviewPlanDAO.getPartnerInterviewInfoList(userId, WorkflowStageEnum.RESERVATION.getCode(), WorkflowStatusEnum.RESERVATION_0.getCode());
|
||||
PageInfo partnerInterviewInfoList = hyPartnerInterviewPlanDAO.getPartnerInterviewInfoList(userId, WorkflowStageEnum.RESERVATION.getCode(), workflowStatus);
|
||||
List<PartnerInterviewInfoDTO> list = partnerInterviewInfoList.getList();
|
||||
if (CollectionUtils.isEmpty(list)){
|
||||
return partnerInterviewInfoList;
|
||||
}
|
||||
List<PartnerInterviewInfoVO> result = new ArrayList<>();
|
||||
List<String> partnerIds = list.stream().map(PartnerInterviewInfoDTO::getPartnerId).collect(Collectors.toList());
|
||||
List<HyPartnerUserInfoDO> hyPartnerUserInfoDOS = hyPartnerUserInfoDAO.selectByPartnerIds(partnerIds);
|
||||
Map<String, HyPartnerUserInfoDO> userNameMap = hyPartnerUserInfoDOS.stream().collect(Collectors.toMap(HyPartnerUserInfoDO::getPartnerId, Data->Data));
|
||||
List<Long> lineIds = list.stream().map(PartnerInterviewInfoDTO::getPartnerLineId).collect(Collectors.toList());
|
||||
List<HyPartnerLineInfoDO> hyPartnerLineInfoDOS= hyPartnerLineInfoDAO.getHyPartnerLineInfoListByIds(lineIds);
|
||||
Map<Long, HyPartnerLineInfoDO> hyPartnerLineInfoDOMap = hyPartnerLineInfoDOS.stream().collect(Collectors.toMap(HyPartnerLineInfoDO::getId, data -> data));
|
||||
list.stream().forEach(x->{
|
||||
PartnerInterviewInfoVO partnerInterviewInfoVO = convertPartnerInterviewInfoDTOToVo(x);
|
||||
partnerInterviewInfoVO.setPartnerPhone(userNameMap.getOrDefault(x.getPartnerId(),new HyPartnerUserInfoDO()).getUsername());
|
||||
partnerInterviewInfoVO.setPartnerPhone(userNameMap.getOrDefault(x.getPartnerId(),new HyPartnerUserInfoDO()).getMobile());
|
||||
partnerInterviewInfoVO.setLineStatus(hyPartnerLineInfoDOMap.getOrDefault(x.getPartnerLineId(),new HyPartnerLineInfoDO()).getLineStatus());
|
||||
partnerInterviewInfoVO.setLineId(hyPartnerLineInfoDOMap.getOrDefault(x.getPartnerLineId(),new HyPartnerLineInfoDO()).getId());
|
||||
result.add(partnerInterviewInfoVO);
|
||||
});
|
||||
partnerInterviewInfoList.setList(result);
|
||||
@@ -97,9 +118,19 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan
|
||||
if (CollectionUtils.isEmpty(list)){
|
||||
return partnerInterviewInfoList;
|
||||
}
|
||||
List<String> partnerIds = list.stream().map(PartnerInterviewInfoDTO::getPartnerId).collect(Collectors.toList());
|
||||
List<HyPartnerUserInfoDO> hyPartnerUserInfoDOS = hyPartnerUserInfoDAO.selectByPartnerIds(partnerIds);
|
||||
Map<String, HyPartnerUserInfoDO> userNameMap = hyPartnerUserInfoDOS.stream().collect(Collectors.toMap(HyPartnerUserInfoDO::getPartnerId, Data->Data));
|
||||
List<Long> lineIds = list.stream().map(PartnerInterviewInfoDTO::getPartnerLineId).collect(Collectors.toList());
|
||||
List<HyPartnerLineInfoDO> hyPartnerLineInfoDOS= hyPartnerLineInfoDAO.getHyPartnerLineInfoListByIds(lineIds);
|
||||
Map<Long, HyPartnerLineInfoDO> hyPartnerLineInfoDOMap = hyPartnerLineInfoDOS.stream().collect(Collectors.toMap(HyPartnerLineInfoDO::getId, data -> data));
|
||||
List<PartnerInterviewInfoVO> result = new ArrayList<>();
|
||||
list.stream().forEach(x->{
|
||||
PartnerInterviewInfoVO partnerInterviewInfoVO = convertPartnerInterviewInfoDTOToVo(x);
|
||||
partnerInterviewInfoVO.setPartnerPhone(userNameMap.getOrDefault(x.getPartnerId(),new HyPartnerUserInfoDO()).getUsername());
|
||||
partnerInterviewInfoVO.setPartnerPhone(userNameMap.getOrDefault(x.getPartnerId(),new HyPartnerUserInfoDO()).getMobile());
|
||||
partnerInterviewInfoVO.setLineStatus(hyPartnerLineInfoDOMap.getOrDefault(x.getPartnerLineId(),new HyPartnerLineInfoDO()).getLineStatus());
|
||||
partnerInterviewInfoVO.setLineId(hyPartnerLineInfoDOMap.getOrDefault(x.getPartnerLineId(),new HyPartnerLineInfoDO()).getId());
|
||||
result.add(partnerInterviewInfoVO);
|
||||
});
|
||||
partnerInterviewInfoList.setList(result);
|
||||
@@ -135,9 +166,12 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan
|
||||
partnerInterviewInfoVO.setProcessInfo(partnerInterviewInfoDTO.getProcessInfo());
|
||||
partnerInterviewInfoVO.setCreateTime(DateUtil.format(partnerInterviewInfoDTO.getCreateTime(),CoolDateUtils.DATE_FORMAT_SEC));
|
||||
partnerInterviewInfoVO.setRoomId(partnerInterviewInfoDTO.getRoomId());
|
||||
partnerInterviewInfoVO.setDeadline(partnerInterviewInfoDTO.getDeadline());
|
||||
partnerInterviewInfoVO.setStartTime(DateUtil.format(partnerInterviewInfoDTO.getStartTime(),CoolDateUtils.DATE_FORMAT_SEC));
|
||||
partnerInterviewInfoVO.setStatus(partnerInterviewInfoDTO.getStatus());
|
||||
partnerInterviewInfoVO.setAuthCode(partnerInterviewInfoDTO.getAuthCode());
|
||||
partnerInterviewInfoVO.setEndTime(DateUtil.format(partnerInterviewInfoDTO.getEndTime(),CoolDateUtils.DATE_FORMAT_SEC));
|
||||
partnerInterviewInfoVO.setApproveTime(partnerInterviewInfoDTO.getApproveTime());
|
||||
return partnerInterviewInfoVO;
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -41,6 +41,8 @@ public class OpenAreaServiceImpl implements OpenAreaService {
|
||||
List<HyOpenAreaInfoDO> hyOpenAreaInfoDOS = hyOpenAreaInfoDAO.queryByKeyword(keyword,flag);
|
||||
Set<Long> longSet = hyOpenAreaInfoDOS.stream().map(HyOpenAreaInfoDO::getId).collect(Collectors.toSet());
|
||||
|
||||
List<HyOpenAreaInfoDO> result = new ArrayList<>();
|
||||
result.addAll(hyOpenAreaInfoDOS);
|
||||
hyOpenAreaInfoDOS.stream().forEach(x->{
|
||||
Long parentId = x.getParentId();
|
||||
|
||||
@@ -48,11 +50,11 @@ public class OpenAreaServiceImpl implements OpenAreaService {
|
||||
//添加到集合中
|
||||
longSet.add(x.getParentId());
|
||||
HyOpenAreaInfoDO hyOpenAreaInfoDO = longHyOpenAreaInfoDOMap.get(parentId);
|
||||
hyOpenAreaInfoDOS.add(hyOpenAreaInfoDO);
|
||||
result.add(hyOpenAreaInfoDO);
|
||||
}
|
||||
});
|
||||
|
||||
JSONArray objects = buildTree(JSONArray.parseArray(JSONObject.toJSONString(hyOpenAreaInfoDOS)), "id", "parentId","childNode" );
|
||||
JSONArray objects = buildTree(JSONArray.parseArray(JSONObject.toJSONString(result)), "id", "parentId","childNode" );
|
||||
List<OpenAreaTreeVO> openAreaTreeVOS = JSONObject.parseArray(objects.toJSONString(), OpenAreaTreeVO.class);
|
||||
return openAreaTreeVOS;
|
||||
}
|
||||
@@ -128,7 +130,8 @@ public class OpenAreaServiceImpl implements OpenAreaService {
|
||||
@Override
|
||||
public PageInfo<OpenAreaVO> queryKeyOpenAreaList(Integer pageSize, Integer pageNumber) {
|
||||
PageHelper.startPage(pageNumber,pageSize);
|
||||
PageInfo hyOpenAreaInfoDOPageInfo = hyOpenAreaInfoDAO.queryKeyOpenArea();
|
||||
List<HyOpenAreaInfoDO> hyOpenAreaInfoDOS = hyOpenAreaInfoDAO.queryKeyOpenArea();
|
||||
PageInfo hyOpenAreaInfoDOPageInfo = new PageInfo<>(hyOpenAreaInfoDOS);
|
||||
if (hyOpenAreaInfoDOPageInfo==null){
|
||||
return new PageInfo<>();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -85,10 +85,13 @@ public class ZoneServiceImpl implements ZoneService {
|
||||
HyIntendDevZoneInfoDO hyIntendDevZoneInfoDO = new HyIntendDevZoneInfoDO();
|
||||
hyIntendDevZoneInfoDO.setId(intentAreaSettingRequest.getId());
|
||||
hyIntendDevZoneInfoDO.setZoneName(intentAreaSettingRequest.getZoneName());
|
||||
hyIntendDevZoneInfoDO.setUpdateUserId(userId);
|
||||
hyIntendDevZoneInfoDO.setAssociatedRegionId(CollectionUtils.isNotEmpty(intentAreaSettingRequest.getOrgIdList())?JSONObject.toJSONString(intentAreaSettingRequest.getOrgIdList()):"");
|
||||
hyIntendDevZoneInfoDAO.updateByPrimaryKeySelective(hyIntendDevZoneInfoDO);
|
||||
//添加战区映射的意向区域
|
||||
hyIntendDevMappingDAO.deleteByOpenAreaIds(intentAreaSettingRequest.getOpenAreaIdList(),intentAreaSettingRequest.getType());
|
||||
hyIntendDevMappingDAO.deleteByMappingIds(Arrays.asList(intentAreaSettingRequest.getId())
|
||||
,intentAreaSettingRequest.getType());
|
||||
List<Long> openAreaIdList = intentAreaSettingRequest.getOpenAreaIdList();
|
||||
List<HyIntendDevelopementMappingDO> list = new ArrayList<>();
|
||||
openAreaIdList.stream().forEach(x->{
|
||||
@@ -106,7 +109,7 @@ public class ZoneServiceImpl implements ZoneService {
|
||||
@Override
|
||||
public PageInfo<ZoneVO> getZoneList(String type, Integer pageSize, Integer pageNum) {
|
||||
PageHelper.startPage(pageNum,pageSize);
|
||||
PageInfo hyIntendDevZoneInfoList = hyIntendDevZoneInfoDAO.getHyIntendDevZoneInfoList(type);
|
||||
PageInfo hyIntendDevZoneInfoList = new PageInfo(hyIntendDevZoneInfoDAO.getHyIntendDevZoneInfoList(type));
|
||||
List<ZoneVO> result = new ArrayList<>();
|
||||
List<HyIntendDevZoneInfoDO> list = hyIntendDevZoneInfoList.getList();
|
||||
if (CollectionUtils.isEmpty(list)){
|
||||
@@ -145,6 +148,8 @@ public class ZoneServiceImpl implements ZoneService {
|
||||
List<String> regionIds = JSONObject.parseArray(hyIntendDevZoneInfoDO.getAssociatedRegionId(), String.class);
|
||||
Map<String, String> regionMap = regionDAO.getRegionMap(regionIds);
|
||||
zoneVO = handleZoneVO(regionMap, hyIntendDevZoneInfoDO);
|
||||
}
|
||||
if (enterpriseUserDO!=null){
|
||||
zoneVO.setUpdateUserName(enterpriseUserDO.getName());
|
||||
}
|
||||
List<ZoneCheckDTO> zoneCheckDTOS = hyIntendDevMappingDAO.selectByMappingIdList(Arrays.asList(zoneId));
|
||||
@@ -201,13 +206,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 = new PageInfo<>(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