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

This commit is contained in:
pserimal
2023-06-16 16:10:26 +08:00
101 changed files with 2615 additions and 195 deletions

View File

@@ -130,6 +130,20 @@
<orderEntry type="library" name="Maven: com.squareup.okio:okio:1.17.2" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:ons20190214:1.0.0" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:endpoint-util:0.0.6" level="project" />
<orderEntry type="library" name="Maven: com.aliyun.oss:aliyun-sdk-oss:3.13.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.12" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.13" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.13" level="project" />
<orderEntry type="library" name="Maven: org.jdom:jdom2:2.0.6" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.jettison:jettison:1.1" level="project" />
<orderEntry type="library" name="Maven: stax:stax-api:1.0.1" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-core:4.5.10" level="project" />
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
<orderEntry type="library" name="Maven: io.opentracing:opentracing-api:0.33.0" level="project" />
<orderEntry type="library" name="Maven: io.opentracing:opentracing-util:0.33.0" level="project" />
<orderEntry type="library" name="Maven: io.opentracing:opentracing-noop:0.33.0" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-ram:3.1.0" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-kms:2.11.0" level="project" />
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.3.2" level="project" />
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:4.5" level="project" />
<orderEntry type="library" name="Maven: redis.clients:jedis:2.8.0" level="project" />
@@ -142,5 +156,19 @@
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.6" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.groovy:groovy:2.5.10" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:dytnsapi20200217:1.0.28" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:ocr20191230:1.0.26" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:openplatform20191219:5.0.0" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:oss-client:3.0.3" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:tea-xml:0.1.1" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:tea-rpc-util:0.1.2" level="project" />
<orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:tea-rpc:0.1.3" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:oss-util:1.0.2" level="project" />
<orderEntry type="library" name="Maven: org.dom4j:dom4j:2.1.3" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:tea-fileform:0.0.3" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:darabonba-array:0.1.0" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:darabonba-number:0.0.3" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjrt:1.9.5" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.5" level="project" />
</component>
</module>

View File

@@ -68,6 +68,18 @@
<groupId>com.aliyun</groupId>
<artifactId>dytnsapi20200217</artifactId>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>ocr20191230</artifactId>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
</dependency>
</dependencies>
</project>

View File

@@ -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);
}

View File

@@ -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());
}
}
}

View File

@@ -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);
}
}
}

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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;
}

View File

@@ -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);
}

View File

@@ -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);

View File

@@ -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);
}

View File

@@ -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);
/**

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -61,6 +61,12 @@ public interface ZoneService {
*/
List<ZoneCheckVO> checkZone(IntentAreaSettingRequest intentAreaSettingRequest);
/**
* 查询所有绑定战区的组织机构
* @return
*/
List<String> queryAllBingZoneRegionList(String type);
}

View File

@@ -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());

View File

@@ -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);
}
}
}

View File

@@ -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;
}
}
}

View File

@@ -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;
}
}

View File

@@ -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);
}
}

View File

@@ -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());
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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<>();
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}