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

This commit is contained in:
zhangchenbiao
2023-06-28 14:53:45 +08:00
41 changed files with 469 additions and 128 deletions

View File

@@ -46,6 +46,7 @@ public enum ErrorCodeEnum {
GET_INFO_ERROR(1021078, "获取信息异常", null),
GET_PHONENUMBER_INFO_ERROR(1021079, "手机号归属地获取异常", null),
IDENTITY_CARD_PARSE_FAIL(1021080, "身份证解析失败", null),
WECHAT_BIND_OTHER_MOBILE(1021081, "该微信已绑定其它手机号,请核对", null),
PARAMS_REQUIRED(400002, "参数缺失!", null),
DATA_CONVERT_ERROR(400002, "日期转换异常!", null),
PARENT_NODE_NOT_EXIST(400002, "父节点不存在", null),
@@ -58,6 +59,7 @@ public enum ErrorCodeEnum {
PARTNER_BASEINFO_NOT_EXIST(500005, "基本信息不存在!", null),
INTENT_INFO_NOT_EXIST(500006, "意向信息不存在!", null),
INTENT_AREA_NOT_BING_ZONE(500007, "意向区域没有绑定战区 分配招商经理失败!", null),
PUBLIC_LINE_NOT_OPERATE(500008, "公海线索不允许操作!", null),
INTERVIEW_ENTER_FAIL(1021101, "进入面试间失败", null),
DINGDING_USER_NOT_EXIST(1021102, "用户钉钉信息不存在,无法发起资质审核!", null),

View File

@@ -8,19 +8,21 @@ package com.cool.store.enums;
*/
public enum OperateLogFieldValueEnum {
ALLOCATION_USERID("allocationUserId","分配人ID"),
ALLOCATION_USERNAME("allocationUsername","分配人姓名"),
MOBILE("mobile","手机号"),
OPERATE_TIME("operateTime","操作时间"),
OPERATE_USER_ID("operateUserId","操作人姓名"),
OPERATE_USER_NAME("operateUsername","操作人姓名"),
REASON("reason","原因"),
PASS_REASON("pass_reason","通过原因"),
REJECT_PUBLIC_REASON("reject_public_reason", "公开拒绝原因"),
REJECT_REAL_REASON("reject_real_reason", "真实拒绝原因"),
CERTIFY_FILE("certify_file", "上传的证明文件或凭证"),
BEFORE_INVESTMENT_MANAGER_USERNAME("before_investment_manager_username", "转让前的招商经理姓名"),
BEFORE_INVESTMENT_MANAGER_MOBILE("before_investment_manager_mobile", "转让前的招商经理手机号"),
AFTER_INVESTMENT_MANAGER_USERNAME("after_investment_manager_username", "转让后的招商经理姓名"),
AFTER_INVESTMENT_MANAGER_MOBILE("after_investment_manager_mobile", "转让后的招商经理手机好"),
PASS_REASON("passReason","通过原因"),
REJECT_PUBLIC_REASON("rejectPublicReason", "公开拒绝原因"),
REJECT_REAL_REASON("rejectRealReason", "真实拒绝原因"),
CERTIFY_FILE("certifyFile", "上传的证明文件或凭证"),
BEFORE_INVESTMENT_MANAGER_USERNAME("beforeInvestmentManagerUsername", "转让前的招商经理姓名"),
BEFORE_INVESTMENT_MANAGER_MOBILE("beforeInvestmentManagerMobile", "转让前的招商经理手机号"),
AFTER_INVESTMENT_MANAGER_USERNAME("afterInvestmentManagerUsername", "转让后的招商经理姓名"),
AFTER_INVESTMENT_MANAGER_MOBILE("afterInvestmentManagerMobile", "转让后的招商经理手机好"),
;

View File

@@ -13,11 +13,11 @@ import static com.cool.store.enums.OperateLogFieldValueEnum.*;
*/
public enum OperateTypeEnum {
ALLOCATION_INVESTMENT_MANAGER("allocation_investment_manager", "分配招商经理", Arrays.asList(ALLOCATION_USERNAME, MOBILE, OPERATE_TIME)),
ADD_BLACKLIST("add_blacklist", "加入黑名单", Arrays.asList(OPERATE_USER_NAME, MOBILE, OPERATE_TIME, REASON)),
REMOVE_BLACKLIST("add_blacklist", "移除黑名单", Arrays.asList(OPERATE_USER_NAME, MOBILE, OPERATE_TIME, REASON)),
CLOSE_FOLLOW("close_follow", "结束跟进", Arrays.asList(OPERATE_USER_NAME, MOBILE, OPERATE_TIME, REJECT_PUBLIC_REASON, REJECT_REAL_REASON, CERTIFY_FILE)),
TRANSFER_INVESTMENT_MANAGER("transfer_investment_manager", "转让招商经理", Arrays.asList(OPERATE_USER_NAME, MOBILE, OPERATE_TIME, BEFORE_INVESTMENT_MANAGER_USERNAME, BEFORE_INVESTMENT_MANAGER_MOBILE, AFTER_INVESTMENT_MANAGER_USERNAME, AFTER_INVESTMENT_MANAGER_MOBILE));
ALLOCATION_INVESTMENT_MANAGER("allocation_investment_manager", "分配招商经理", Arrays.asList(ALLOCATION_USERID,ALLOCATION_USERNAME, MOBILE, OPERATE_TIME)),
ADD_BLACKLIST("add_blacklist", "加入黑名单", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, REASON)),
REMOVE_BLACKLIST("add_blacklist", "移除黑名单", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, REASON)),
CLOSE_FOLLOW("close_follow", "结束跟进", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, REJECT_PUBLIC_REASON, REJECT_REAL_REASON, CERTIFY_FILE)),
TRANSFER_INVESTMENT_MANAGER("transfer_investment_manager", "转让招商经理", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, BEFORE_INVESTMENT_MANAGER_USERNAME, BEFORE_INVESTMENT_MANAGER_MOBILE, AFTER_INVESTMENT_MANAGER_USERNAME, AFTER_INVESTMENT_MANAGER_MOBILE));
;

View File

@@ -1,5 +1,12 @@
package com.cool.store.enums;
import org.apache.commons.lang3.StringUtils;
import java.util.Arrays;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* @Author suzhuhong
* @Date 2023/6/9 16:35

View File

@@ -46,8 +46,8 @@ public class CoolDateUtils {
* @param day
* @return
*/
public static Date getDateFormatDayMinTime(int day){
LocalDate today = LocalDate.now();
public static Date getDateFormatDayMinTime(Date date,int day){
LocalDate today = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
LocalDate thirdDay = today.plusDays(day);
LocalDateTime thirdDayMidnight = LocalDateTime.of(thirdDay, LocalTime.MIDNIGHT);
LocalDateTime thirdDay235959 = thirdDayMidnight.with(LocalTime.MIN);
@@ -55,6 +55,16 @@ public class CoolDateUtils {
return Date.from(zonedDateTime.toInstant());
}
public static void main(String[] args) {
// 创建一个Date对象
Date date = new Date();
// 将Date对象转换为LocalDate对象
LocalDate today = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
System.out.println("LocalDate: " + today);
}
/**

View File

@@ -61,11 +61,11 @@ public class HyPartnerInterviewPlanDAO {
* @param currentDate
* @return
*/
public List<HyPartnerInterviewPlanDO> getInterviewPlanList(String userId, String currentDate){
public List<HyPartnerInterviewPlanDO> getInterviewPlanList(String userId, String currentTime,String currentDay){
if (StringUtils.isEmpty(userId)){
return new ArrayList<>();
}
return hyPartnerInterviewPlanMapper.getInterviewPlanList(userId,currentDate);
return hyPartnerInterviewPlanMapper.getInterviewPlanList(userId,currentTime,currentDay);
}
/**

View File

@@ -1,9 +1,11 @@
package com.cool.store.dao;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.dto.log.LineLogInfo;
import com.cool.store.entity.HyPartnerTaskInfoLogDO;
import com.cool.store.enums.OperateTypeEnum;
import com.cool.store.mapper.HyPartnerTaskInfoLogMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
@@ -14,6 +16,7 @@ import javax.annotation.Resource;
* @Version 1.0
*/
@Repository
@Slf4j
public class HyPartnerTaskInfoLogDAO {
@@ -38,6 +41,7 @@ public class HyPartnerTaskInfoLogDAO {
return;
}
HyPartnerTaskInfoLogDO logInfo = LineLogInfo.convertDO(lineLogInfo);
log.info("logInfo:{}", JSONObject.toJSON(lineLogInfo));
insertSelective(logInfo);
}

View File

@@ -60,7 +60,8 @@ public interface HyPartnerInterviewPlanMapper {
* @return
*/
List<HyPartnerInterviewPlanDO> getInterviewPlanList(@Param("userId") String userId,
@Param("currentDate") String currentDate);
@Param("currentTime") String currentTime,
@Param("currentDay") String currentDay);
/**
* 工作台 招商经理 预约面试时间 合格资格面试 列表

View File

@@ -45,6 +45,12 @@
<if test="record.partnership != null">
partnership,
</if>
<if test="record.qualifyVerifyId != null">
qualify_verify_id,
</if>
<if test="record.intentionContractNo != null">
intention_contract_no,
</if>
<if test="record.wantSignTime != null">
want_sign_time,
</if>
@@ -104,6 +110,12 @@
<if test="record.partnership != null">
#{record.partnership},
</if>
<if test="record.qualifyVerifyId != null">
#{record.qualifyVerifyId},
</if>
<if test="record.intentionContractNo != null">
#{record.intentionContractNo},
</if>
<if test="record.wantSignTime != null">
#{record.wantSignTime},
</if>

View File

@@ -260,22 +260,23 @@
a.workflow_status as workflowStatus,
b.id as id,
b.create_time as partnerSubmitTime,
b.live_area as liveArea,
b.want_shop_area as wantShopArea,
b.accept_adjust_type as acceptAdjustType,
b.deadline as deadline
from hy_partner_line_info a left join hy_partner_intent_info b on a.id = b.partner_line_id
<where>
<if test="userId!=null and userId!=''">
and a.investment_manager = #{userId}
</if>
<if test="workflowStage!=null and workflowStage!=''">
and a.workflow_stage= #{workflowStage}
</if>
<if test="workflowStatus!=null and workflowStatus!=''">
and a.workflow_status = #{workflowStatus}
</if>
</where>
b.deadline as deadline,
hpuinfo.live_area as liveArea,
hpuinfo.want_shop_area as wantShopArea,
hpuinfo.accept_adjust_type as acceptAdjustType
from hy_partner_line_info a
left join hy_partner_intent_info b on a.id = b.partner_line_id
LEFT JOIN hy_partner_user_info hpuinfo ON a.partner_id = hpuinfo.partner_id
where deleted = 0 and line_status!=3
<if test="userId!=null and userId!=''">
and a.investment_manager = #{userId}
</if>
<if test="workflowStage!=null and workflowStage!=''">
and a.workflow_stage= #{workflowStage}
</if>
<if test="workflowStatus!=null and workflowStatus!=''">
and a.workflow_status = #{workflowStatus}
</if>
order by b.create_time
</select>

View File

@@ -283,8 +283,8 @@
<if test="userId!=null and userId!=''">
and interviewer = #{userId}
</if>
<if test="currentDate!=null and currentDate!=''">
and interview_date = #{currentDate}
<if test="currentDay!=null and currentDay!=''">
and interview_date = #{currentDay}
</if>
and (start_time>now() or (start_time<![CDATA[<]]>now() and room_status!=2))
and application_approved = 1
@@ -312,6 +312,7 @@
left join hy_partner_interview a on hpli.id = a.partner_line_id
left join hy_partner_interview_plan b on a.interview_plan_id = b.id
<where>
and hpli.deleted = 0 and hpli.line_status!=3 and b.deleted = 0
<if test="workflowStage!=null and workflowStage!=''">
and hpli.workflow_stage = #{workflowStage}
</if>

View File

@@ -267,11 +267,10 @@
IFNULL(sum(if(workflow_stage=2 and workflow_status = 1,1,0)),0) as reservationInterviewCount,
IFNULL(sum(if(workflow_stage=3 and workflow_status = 4,1,0)),0) as qualifiedInterviewCount
from hy_partner_line_info
<where>
<if test="userId!=null and userId!=''">
and investment_manager = #{userId}
</if>
</where>
where deleted = 0 and line_status!=3
<if test="userId!=null and userId!=''">
and investment_manager = #{userId}
</if>
</select>
@@ -281,11 +280,10 @@
IFNULL(sum(if(workflow_stage=2 and workflow_status = 0,1,0)),0) as reservationInterviewCount,
IFNULL(sum(if(workflow_stage=3 and workflow_status = 5,1,0)),0) as qualifiedInterviewCount
from hy_partner_line_info
<where>
<if test="userId!=null and userId!=''">
and investment_manager = #{userId}
</if>
</where>
where deleted = 0 and line_status!=3
<if test="userId!=null and userId!=''">
and investment_manager = #{userId}
</if>
</select>
<select id="selectPartnerLineInfoAndBaseInfo" resultType="com.cool.store.dto.partner.PartnerLineInfoAndBaseInfoDTO">
@@ -300,6 +298,7 @@
b.user_portrait as user_portrait,
b.id as partnerBaseInfoId,
b.pass_reason as passCause,
b.id_card as idCard,
b.certify_file as certifyFile,
b.pass_time as passTime,
b.pass_user_id as passUserId,
@@ -308,9 +307,11 @@
hpuinfo.accept_adjust_type as acceptAdjustType,
hpuinfo.mobile as partnerUserPhone,
hpuinfo.username as partnerUserName,
hpuc.channel_name as channelName
hpuc.channel_name as channelName,
hpii.education as education
from hy_partner_line_info a
left join hy_partner_base_info b on a.id = b.partner_line_id
LEFT JOIN hy_partner_intent_info hpii ON a.id = hpii.partner_line_id
LEFT JOIN hy_partner_user_info hpuinfo ON a.partner_id = hpuinfo.partner_id
LEFT JOIN hy_partner_user_channel hpuc ON a.user_channel_id = hpuc.channel_id
<where>
@@ -462,14 +463,15 @@
hpuinfo.shop_name as storeName,
hpuinfo.recommend_partner_name as recommendPartnerName,
eu.name as investmentManagerName,
hpip.id as interviewPlanId
hpip.id as interviewPlanId,
hpip.start_time as startTime
FROM
hy_partner_line_info hpli
LEFT JOIN hy_partner_intent_info hpii ON hpli.id = hpii.partner_line_id
LEFT JOIN hy_partner_user_info hpuinfo ON hpli.partner_id = hpuinfo.partner_id
LEFT JOIN enterprise_user eu ON hpli.investment_manager = eu.user_id
LEFT JOIN hy_partner_interview_plan hpip on hpli.id = hpip.partner_line_id
WHERE line_status in (1,2)
WHERE hpli.line_status in (1,2) and hpli.deleted = 0
<if test="keyword!=null and keyword!='' and keywordType!=null and keywordType=='name'">
AND (eu.name like concat('%',#{keyword},'%') or hpuinfo.username like concat('%',#{keyword},'%'))
</if>
@@ -533,7 +535,7 @@
SELECT MAX(h2.create_time)
FROM hy_partner_line_info h2
WHERE h1.partner_id = h2.partner_id
and h2.deleted= 1
and (h2.deleted = 1 or (h2.deleted=0 and h2.line_status=0 and h2.close_time is not null))
<if test="partnerIdList!=null and partnerIdList.size>0">
<foreach collection="partnerIdList" item="partnerId" open="and h1.partner_id in (" close=")" separator=",">
#{partnerId}
@@ -546,7 +548,7 @@
<select id="getFollowCountList" resultType="com.cool.store.dto.partner.LineCountDTO">
SELECT partner_id, IFNULL(COUNT(1), 0) AS followCount
FROM hy_partner_line_info
where deleted = 1
where (deleted = 1 or (deleted=0 and line_status=0 and close_time is not null))
GROUP BY partner_id;
</select>
@@ -567,7 +569,7 @@
<select id="getLineFollowHistoryList" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"></include>
FROM hy_partner_line_info
where (deleted = 1 or (deleted=0 and line_status=0))
where (deleted = 1 or (deleted=0 and line_status=0 and close_time is not null))
and partner_id = #{partner_id}
</select>

View File

@@ -0,0 +1,23 @@
package com.cool.store.dto.log;
import lombok.Builder;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2023/6/27 15:52
* @Version 1.0
*/
@Data
@Builder
public class AllocationInvestmentManagerLogDTO {
private String allocationUserId;
private String allocationUsername;
private String mobile;
private String operateTime;
}

View File

@@ -0,0 +1,25 @@
package com.cool.store.dto.log;
import lombok.Builder;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2023/6/27 16:51
* @Version 1.0
*/
@Data
@Builder
public class BlackListLogDTO {
private String operateTime;
private String operateUsername;
private String operateUserId;
private String mobile;
private String reason;
}

View File

@@ -0,0 +1,31 @@
package com.cool.store.dto.log;
import lombok.Builder;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2023/6/27 19:46
* @Version 1.0
*/
@Data
@Builder
public class CloseOrPassFollowLogDTO {
private String operateTime;
private String operateUsername;
private String operateUserId;
private String mobile;
private String passReason;
private String certifyFile;
private String rejectPublicReason;
private String rejectRealReason;
}

View File

@@ -29,6 +29,7 @@ public class LineLogInfo<T> {
@ApiModelProperty("hy_partner_line_info.id")
private Long partnerLineId;
@ApiModelProperty("操作人id")
private String operateUserId;
@@ -42,7 +43,7 @@ public class LineLogInfo<T> {
private WorkflowStageEnum workflowStage;
@ApiModelProperty("流程子状态")
private WorkflowStatusEnum workflowStatus;
private String workflowStatus;
@ApiModelProperty("备注")
private String message;
@@ -50,6 +51,22 @@ public class LineLogInfo<T> {
@ApiModelProperty("数据处理字段")
private T data;
public LineLogInfo(){
}
public LineLogInfo(String partnerId, Long partnerLineId, String operateUserId, String operateUsername,
OperateTypeEnum operateType, WorkflowStageEnum workflowStage,
String workflowStatus, String message) {
this.partnerId = partnerId;
this.partnerLineId = partnerLineId;
this.operateUserId = operateUserId;
this.operateUsername = operateUsername;
this.operateType = operateType;
this.workflowStage = workflowStage;
this.workflowStatus = workflowStatus;
this.message = message;
}
public static boolean checkParams(LineLogInfo params){
if(StringUtils.isAnyBlank(params.getPartnerId(), params.getOperateUserId(), params.getOperateUsername())){
log.info("lineLogInfo string:{}", JSONObject.toJSONString(params));
@@ -69,7 +86,7 @@ public class LineLogInfo<T> {
result.setPartnerLineId(params.getPartnerLineId());
result.setOperateType(params.getOperateType().getCode());
result.setWorkflowStage(params.getWorkflowStage().getCode());
result.setWorkflowStatus(params.getWorkflowStatus().getCode());
result.setWorkflowStatus(params.getWorkflowStatus());
result.setOperateUserId(params.getOperateUserId());
result.setOperateUsername(params.getOperateUsername());
result.setMessage(params.getMessage());
@@ -81,6 +98,9 @@ public class LineLogInfo<T> {
List<Map<String, Object>> fieldMapList = new ArrayList<>();
for (OperateLogFieldValueEnum field : filedList) {
Map<String, Object> fieldMap = new HashMap<>();
if(jsonObject.get(field.getCode())==null){
continue;
}
fieldMap.put("code",field.getCode());
fieldMap.put("name",field.getName());
fieldMap.put("value",jsonObject.get(field.getCode()));

View File

@@ -0,0 +1,31 @@
package com.cool.store.dto.log;
import lombok.Builder;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2023/6/27 20:20
* @Version 1.0
*/
@Data
@Builder
public class TransferInvestmentManagerLogDTO {
private String operateTime;
private String operateUsername;
private String operateUserId;
private String mobile;
private String beforeInvestmentManagerUsername;
private String beforeInvestmentManagerMobile;
private String afterInvestmentManagerUsername;
private String afterInvestmentManagerMobile;
}

View File

@@ -78,4 +78,8 @@ public class PartnerLineInfoAndBaseInfoDTO {
private Integer acceptAdjustType;
private String channelName;
private String idCard;
private String education;
}

View File

@@ -71,4 +71,6 @@ public class PrivateSeaLineDTO {
private Long interviewPlanId;
private Date startTime;
}

View File

@@ -100,6 +100,12 @@ public class RpcCreateQualifyVerifyReq {
@ApiModelProperty(value = "实控人手机号", required = true)
private String skrPhone;
@ApiModelProperty("客户/招商经理钉钉id")
private String userCustDingUserId;
@ApiModelProperty("选址开发主管钉钉id")
private String userSiteDevDingUserId;
}
@ApiModelProperty(value = "数据体", required = true)

View File

@@ -18,4 +18,6 @@ public class TransferInvestmentManagerRequest {
private String userId;
private String userName;
}

View File

@@ -72,11 +72,11 @@ public class PartnerIntentApplyInfoVO {
partnerIntentApplyInfoVO.setId(partnerIntentApplyInfoDTO.getId());
partnerIntentApplyInfoVO.setPartnerId(partnerIntentApplyInfoDTO.getPartnerId());
partnerIntentApplyInfoVO.setLineId(partnerIntentApplyInfoDTO.getPartnerLineId());
partnerIntentApplyInfoVO.setPartnerSubmitTime( DateUtil.format(partnerIntentApplyInfoDTO.getPartnerSubmitTime(), CoolDateUtils.DATE_FORMAT_SEC));
partnerIntentApplyInfoVO.setPartnerSubmitTime( DateUtil.format(partnerIntentApplyInfoDTO.getPartnerSubmitTime(), CoolDateUtils.DATE_FORMAT_SEC_2));
partnerIntentApplyInfoVO.setAcceptAdjustType(partnerIntentApplyInfoDTO.getAcceptAdjustType());
partnerIntentApplyInfoVO.setLiveArea(partnerIntentApplyInfoDTO.getLiveArea());
partnerIntentApplyInfoVO.setWantShopArea(partnerIntentApplyInfoDTO.getWantShopArea());
String deadLine = DateUtil.format(partnerIntentApplyInfoDTO.getDeadline(), CoolDateUtils.DATE_FORMAT_SEC);
String deadLine = DateUtil.format(partnerIntentApplyInfoDTO.getDeadline(), CoolDateUtils.DATE_FORMAT_SEC_2);
partnerIntentApplyInfoVO.setDeadline(deadLine);
HyPartnerUserInfoDO infoDOMapOrDefault = infoDOMap.getOrDefault(partnerIntentApplyInfoDTO.getPartnerId(), new HyPartnerUserInfoDO());
partnerIntentApplyInfoVO.setPartnerUserName(infoDOMapOrDefault.getUsername());

View File

@@ -86,4 +86,8 @@ public class PartnerLineInfoAndBaseInfoVO {
@ApiModelProperty("线索来源名称")
private String channelName;
private String education;
private String idCard;
}

View File

@@ -95,7 +95,7 @@ public class PartnerLineInfoVO {
result.setWorkflowStage(line.getWorkflowStage());
result.setWorkflowStatus(line.getWorkflowStatus());
result.setLineStatus(line.getLineStatus());
String deadLine = DateUtil.format(line.getDeadline(), CoolDateUtils.DATE_FORMAT_SEC);
String deadLine = DateUtil.format(line.getDeadline(), CoolDateUtils.DATE_FORMAT_SEC_2);
result.setDeadline(deadLine);
result.setPassReason(line.getPassReason());
result.setRejectPublicReason(line.getRejectPublicReason());

View File

@@ -85,6 +85,8 @@ public class PrivateSeaLineListVo {
private Long interviewPlanId;
private Date startTime;
public static List<PrivateSeaLineListVo> convertList(List<PrivateSeaLineDTO> list, Map<String, String> finalDevManagerMap, Map<String, String> wantShopAreaNameMap){
List<PrivateSeaLineListVo> resultList = new ArrayList<>();
@@ -94,7 +96,7 @@ public class PrivateSeaLineListVo {
privateSeaLineListVo.setLineStatus(x.getLineStatus());
privateSeaLineListVo.setPartnerId(x.getPartnerId());
privateSeaLineListVo.setWorkflowStatus(x.getWorkflowStatus());
String deadLine = DateUtil.format(x.getDeadline(), CoolDateUtils.DATE_FORMAT_SEC);
String deadLine = DateUtil.format(x.getDeadline(), CoolDateUtils.DATE_FORMAT_SEC_2);
privateSeaLineListVo.setDeadline(deadLine);
privateSeaLineListVo.setPartnerUserPhone(x.getPartnerUserPhone());
privateSeaLineListVo.setPartnerUserName(x.getPartnerUserName());
@@ -104,7 +106,7 @@ public class PrivateSeaLineListVo {
privateSeaLineListVo.setInvestmentManagerName(x.getInvestmentManagerName());
privateSeaLineListVo.setStoreCode(x.getStoreCode());
privateSeaLineListVo.setStoreName(x.getStoreName());
String updateTime = DateUtil.format(x.getUpdateTime(), CoolDateUtils.DATE_FORMAT_SEC);
String updateTime = DateUtil.format(x.getUpdateTime(), CoolDateUtils.DATE_FORMAT_SEC_2);
privateSeaLineListVo.setUpdateTime(updateTime);
privateSeaLineListVo.setRecommendPartnerId(x.getRecommendPartnerId());
privateSeaLineListVo.setAcceptAdjustType(x.getAcceptAdjustType());
@@ -116,6 +118,7 @@ public class PrivateSeaLineListVo {
privateSeaLineListVo.setInterviewPlanId(x.getInterviewPlanId());
privateSeaLineListVo.setWantShopArea(x.getWantShopArea());
privateSeaLineListVo.setWorkflowStage(x.getWorkflowStage());
privateSeaLineListVo.setStartTime(x.getStartTime());
privateSeaLineListVo.setDevelopmentManagerName(finalDevManagerMap.get(x.getDevelopmentManager()));
resultList.add(privateSeaLineListVo);
}

View File

@@ -12,6 +12,8 @@ public class LoginUserInfo {
private String corpId;
private String mobile;
private String accessToken;
/**

View File

@@ -32,7 +32,7 @@ public interface HyPartnerBaseInfoService {
Boolean changeBinding(String idCard, Long lineId, PartnerUserInfoVO currentUser);
HyPartnerBaseInfoDO generateBaseInfo(HyPartnerUserInfoDO hyPartnerUserInfoDO, Long partnerLineId);
HyPartnerBaseInfoDO generateBaseInfo(HyPartnerUserInfoDO hyPartnerUserInfoDO, Long partnerLineId, String userPortrait);

View File

@@ -4,6 +4,7 @@ import com.cool.store.vo.InterviewDetailInfoVO;
import com.cool.store.vo.PartnerInterviewInfoVO;
import com.github.pagehelper.PageInfo;
import java.util.Date;
import java.util.List;
/**
@@ -18,7 +19,7 @@ public interface HyPartnerInterviewPlanService {
* @param userId
* @return
*/
List<InterviewDetailInfoVO> getInterviewPlanList(String userId);
List<InterviewDetailInfoVO> getInterviewPlanList(String userId, Date dateTime);
/**
* getPartnerInterviewInfoList

View File

@@ -1,5 +1,6 @@
package com.cool.store.service;
import com.cool.store.context.LoginUserInfo;
import com.cool.store.entity.HyPartnerLineInfoDO;
import com.cool.store.exception.ApiException;
import com.cool.store.request.CloseFollowRequest;
@@ -56,7 +57,7 @@ public interface HyPartnerLineInfoService {
* @param lineId
* @return
*/
Boolean transferInvestmentManager(String userId,Long lineId);
Boolean transferInvestmentManager(LoginUserInfo user,String userId,String userName,Long lineId);
/**
* 分配招商经理
@@ -64,7 +65,7 @@ public interface HyPartnerLineInfoService {
* @param lineIdList
* @return
*/
Boolean allocationInvestmentManager(String userId, List<Long> lineIdList);
Boolean allocationInvestmentManager(LoginUserInfo user, List<Long> lineIdList);
/**
@@ -81,7 +82,7 @@ public interface HyPartnerLineInfoService {
* @param joinReason
* @return
*/
Boolean joinBlackList(String userId, Long lineId, Integer status, String joinReason);
Boolean joinBlackList(LoginUserInfo user, Long lineId, Integer status, String joinReason);
/**
* 移除黑名单
@@ -90,7 +91,7 @@ public interface HyPartnerLineInfoService {
* @param removeReason
* @return
*/
Boolean removeBlackList( Long lineId, Integer status, String removeReason);
Boolean removeBlackList( LoginUserInfo userInfo,Long lineId, Integer status, String removeReason);
/**
* 结束或者通过线索
@@ -98,7 +99,7 @@ public interface HyPartnerLineInfoService {
* @param closeFollowRequest
* @return
*/
Boolean closeOrPassFollow(String userId,CloseFollowRequest closeFollowRequest);
Boolean closeOrPassFollow(LoginUserInfo user,CloseFollowRequest closeFollowRequest);
/**
* 公海线索

View File

@@ -64,8 +64,8 @@ public class DeskServiceImpl implements DeskService {
InterviewScheduleInfoVO interviewScheduleInfoVO = new InterviewScheduleInfoVO();
//查询面试数量
String currentDate = DateUtil.format(dateTime, CoolDateUtils.DATE_FORMAT_SEC);
String startTime = DateUtil.format(CoolDateUtils.getDateFormatDayMinTime(1), CoolDateUtils.DATE_FORMAT_SEC);
String currentDate = DateUtil.format(dateTime, CoolDateUtils.DATE_FORMAT_DAY);
String startTime = DateUtil.format(CoolDateUtils.getDateFormatDayMinTime(dateTime,1), CoolDateUtils.DATE_FORMAT_SEC);
String endTime = DateUtil.format(CoolDateUtils.getDateFormatDay(7), CoolDateUtils.DATE_FORMAT_SEC);
SpecialDateRangeInterviewCountDTO interviewCount = hyPartnerInterviewPlanDAO.getInterviewCount(userId, currentDate, startTime, endTime);
@@ -74,7 +74,7 @@ public class DeskServiceImpl implements DeskService {
//查询面试列表
//当天时间 与入参无关
List<InterviewDetailInfoVO> interviewPlanList = hyPartnerInterviewPlanService.getInterviewPlanList(userId);
List<InterviewDetailInfoVO> interviewPlanList = hyPartnerInterviewPlanService.getInterviewPlanList(userId,dateTime);
interviewScheduleInfoVO.setInterviewDetailInfoVOS(interviewPlanList);
return interviewScheduleInfoVO;

View File

@@ -93,6 +93,15 @@ public class FlowServiceImpl implements FlowService {
@Override
@Transactional
public void createQualifyVerify(CreateQualifyVerifyReq request) throws ApiException, IOException {
//根据面试id获取面试信息
HyPartnerInterviewDO hyPartnerInterviewDO = hyPartnerInterviewMapper.selectByPrimaryKeySelective(request.getInterviewId());
if (Objects.isNull(hyPartnerInterviewDO)) {
throw new ServiceException(ErrorCodeEnum.INTERVIEW_NOT_EXIST);
}
//根据面试状态限制
if (!hyPartnerInterviewDO.getStatus().equals(Integer.parseInt(WorkflowStatusEnum.INTERVIEW_4.getCode()))) {
throw new ApiException(ErrorCodeEnum.INTERVIEW_STATUS_ERROR);
}
//1.发起加盟商资质审核
RpcCreateQualifyVerifyReq rpcRequest = new RpcCreateQualifyVerifyReq();
RpcCreateQualifyVerifyReq.Data dataBody = new RpcCreateQualifyVerifyReq().new Data();
@@ -101,8 +110,12 @@ public class FlowServiceImpl implements FlowService {
fraSource.setText("沪上阿姨合伙人");
dataBody.setFraSource(fraSource);
//copy properties
BeanUtil.copyProperties(request, rpcRequest);
dataBody.setIntendedSignDate(request.getWantSignTime());
BeanUtil.copyProperties(request, dataBody);
//日期格式问题
if (request.getWantSignTime().endsWith("00:00:00")) {
dataBody.setIntendedSignDate(request.getWantSignTime());
}
dataBody.setIntendedSignDate(request.getWantSignTime() + " 00:00:00");
dataBody.setAmtDeposit(request.getSecurityFund());
dataBody.setIntendedSigner(request.getIntentionSignerUsername());
dataBody.setIntendedSignerTel(request.getIntentionSignerMobile());
@@ -126,10 +139,13 @@ public class FlowServiceImpl implements FlowService {
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();
String developmentDirectorId = hyPartnerLineInfoDO.getDevelopmentDirector();
EnterpriseUserDO investmentManager = enterpriseUserDAO.getUserInfoById(investmentManagerId);
EnterpriseUserDO developmentDirector = enterpriseUserDAO.getUserInfoById(developmentDirectorId);
//招商经理信息(客户经理)
if (!Objects.isNull(investmentManager)) {
String jobNumber = investmentManager.getJobnumber();
String mobile = investmentManager.getMobile();
DingdingUserDO dingdingUserDO = dingdingUserMapper.selectDingDingUserByMobile(mobile);
if (Objects.isNull(dingdingUserDO)) {
throw new ServiceException(ErrorCodeEnum.DINGDING_USER_NOT_EXIST);
@@ -137,6 +153,16 @@ public class FlowServiceImpl implements FlowService {
rpcRequest.setDingUserId(dingdingUserDO.getUserid());
authCode = generateAuthCode(jobNumber);
rpcRequest.getData().setAuthCode(authCode);
rpcRequest.getData().setUserCustDingUserId(dingdingUserDO.getUserid());
}
//开发主管信息
if (!Objects.isNull(developmentDirector)) {
String mobile = developmentDirector.getMobile();
DingdingUserDO dingdingUserDO = dingdingUserMapper.selectDingDingUserByMobile(mobile);
if (Objects.isNull(dingdingUserDO)) {
throw new ServiceException(ErrorCodeEnum.DINGDING_USER_NOT_EXIST);
}
rpcRequest.getData().setUserSiteDevDingUserId(dingdingUserDO.getUserid());
}
}
@@ -157,7 +183,6 @@ public class FlowServiceImpl implements FlowService {
partnerCertificationInfoDO.setPartnerInterviewId(Long.valueOf(request.getInterviewId()));
partnerCertificationInfoDO.setPartnership(String.valueOf(request.getPartnership()));
partnerCertificationInfoDO.setWantSignTime(DateUtil.parse(request.getWantSignTime()));
partnerCertificationInfoDO.setPartnerFee(request.getPartnerFee().toString());
partnerCertificationInfoDO.setSecurityFund(request.getSecurityFund().toString());
partnerCertificationInfoDO.setTechnicalServiceFee(request.getTechnicalServiceFee().toString());
@@ -179,14 +204,10 @@ public class FlowServiceImpl implements FlowService {
hyPartnerCertificationInfoMapper.insertSelective(partnerCertificationInfoDO);
//3.更新面试信息
//根据面试id获取面试信息
HyPartnerInterviewDO hyPartnerInterviewDO = hyPartnerInterviewMapper.selectByPrimaryKeySelective(request.getInterviewId());
if (Objects.isNull(hyPartnerInterviewDO)) {
throw new ServiceException(ErrorCodeEnum.INTERVIEW_NOT_EXIST);
}
hyPartnerInterviewDO.setUpdateTime(new Date());
//更新面试信息
//更新面试状态
hyPartnerInterviewDO.setStatus(null);
interviewDAO.updateInterviewWorkflowStatus(request.getInterviewPlanId(), WorkflowStatusEnum.INTERVIEW_5);
hyPartnerInterviewDO.setAuthCode(authCode);
hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
@@ -273,7 +294,7 @@ public class FlowServiceImpl implements FlowService {
param.add("file", resource);
//上传文件
responseEntity = RestTemplateUtil.post(url, headers, param, MDMResultDTO.class);
log.info("url:{}, header:{}, request:{} response statusCode:{}", url, JSONObject.toJSONString(headers), JSONObject.toJSONString(param, SerializerFeature.IgnoreErrorGetter), JSONObject.toJSONString(responseEntity.getStatusCode()));
log.info("url:{}, header:{}, response statusCode:{}", url, JSONObject.toJSONString(headers), JSONObject.toJSONString(responseEntity.getStatusCode()));
Map<String, String> data = (Map<String, String>) responseEntity.getBody().getData();
SkrRelshipProve skrRelshipProve= BeanUtil.fillBeanWithMap(data, new SkrRelshipProve(), false);
relshipProves.add(skrRelshipProve);
@@ -284,7 +305,6 @@ public class FlowServiceImpl implements FlowService {
outputStream.close();
}
}
return relshipProves;
}

View File

@@ -180,7 +180,7 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService {
}
@Override
public HyPartnerBaseInfoDO generateBaseInfo(HyPartnerUserInfoDO hyPartnerUserInfoDO, Long partnerLineId) {
public HyPartnerBaseInfoDO generateBaseInfo(HyPartnerUserInfoDO hyPartnerUserInfoDO, Long partnerLineId, String userPortrait) {
HyPartnerBaseInfoDO hyPartnerBaseInfoDO = hyPartnerBaseInfoDAO.getByPartnerIdAndLineId(hyPartnerUserInfoDO.getPartnerId(), partnerLineId);
if(hyPartnerBaseInfoDO == null){
hyPartnerBaseInfoDO = new HyPartnerBaseInfoDO();
@@ -190,6 +190,9 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService {
hyPartnerBaseInfoDO.setUsername(hyPartnerUserInfoDO.getUsername());
hyPartnerBaseInfoDO.setStatus(Integer.valueOf(WorkflowStatusEnum.INTENT_0.getCode()));
hyPartnerBaseInfoDO.setSex(1);
if(StringUtils.isNotBlank(userPortrait)){
hyPartnerBaseInfoDO.setUserPortrait(userPortrait);
}
hyPartnerBaseInfoDAO.insertSelective(hyPartnerBaseInfoDO);
}
return hyPartnerBaseInfoDO;

View File

@@ -11,6 +11,7 @@ import com.cool.store.entity.HyPartnerIntentInfoDO;
import com.cool.store.entity.HyPartnerLineInfoDO;
import com.cool.store.entity.HyPartnerUserInfoDO;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.LineStatusEnum;
import com.cool.store.enums.WorkflowStageEnum;
import com.cool.store.enums.WorkflowStatusEnum;
import com.cool.store.exception.ServiceException;
@@ -19,6 +20,7 @@ import com.cool.store.request.IndustryCognitionInfoRequest;
import com.cool.store.request.PartnerIntentInfoRequest;
import com.cool.store.request.PartnerWantShopInfoRequest;
import com.cool.store.service.HyPartnerIntentInfoService;
import com.cool.store.service.HyPartnerLineInfoService;
import com.cool.store.utils.RedisUtilPool;
import com.cool.store.utils.StringUtil;
import com.cool.store.vo.PartnerIntentApplyInfoVO;
@@ -62,6 +64,8 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
private RedisUtilPool redisUtilPool;
@Resource
HyOpenAreaInfoDAO hyOpenAreaInfoDAO;
@Resource
HyPartnerLineInfoService hyPartnerLineInfoService;
@Override
public PageInfo<PartnerIntentApplyInfoVO> getPartnerIntentApplyList(String userId, String type, Integer pageSize, Integer pageNumber) {
@@ -147,12 +151,21 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
hyPartnerIntentInfoDAO.updateByPrimaryKeySelective(intentInfoDO);
}
redisUtilPool.delKey(cacheKey);
if(StringUtils.isNotBlank(request.getWantShopArea())){
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(request.getPartnerId());
hyPartnerUserInfoDO.setWantShopArea(request.getWantShopArea());
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(request.getPartnerId());
if(!request.getWantShopArea().equals(hyPartnerUserInfoDO.getWantShopArea()) || !request.getAcceptAdjustType().equals(hyPartnerUserInfoDO.getAcceptAdjustType())){
hyPartnerUserInfoDO.setLiveArea(request.getLiveArea());
hyPartnerUserInfoDO.setWantShopArea(request.getWantShopArea());
hyPartnerUserInfoDO.setAcceptAdjustType(request.getAcceptAdjustType());
hyPartnerUserInfoDAO.updateByPrimaryKeySelective(hyPartnerUserInfoDO);
// 更新线索状态和招商经理
HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(request.getPartnerLineId());
Boolean flag = hyPartnerLineInfoService.assignFollowUser(request.getPartnerId(), request.getWantShopArea(), request.getAcceptAdjustType());
hyPartnerLineInfoDO.setLineStatus(flag ? LineStatusEnum.PRIVATE_SEAS.getCode() : LineStatusEnum.PUBLIC_SEAS.getCode());
if (flag){
String investmentManager = hyPartnerLineInfoService.getAssignFollowUser(request.getPartnerId(), "intent");
hyPartnerLineInfoDO.setInvestmentManager(investmentManager);
}
hyPartnerLineInfoDAO.updateByPrimaryKeySelective(hyPartnerLineInfoDO);
HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(Long.valueOf(request.getWantShopArea()));
return hyOpenAreaInfoDO != null ? hyOpenAreaInfoDO.getAreaStatus() : null;
}
@@ -333,7 +346,8 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
intentInfoDO.setWantShopArea(request.getWantShopArea());
intentInfoDO.setAcceptAdjustType(request.getAcceptAdjustType());
intentInfoDO.setIsHaveWantShop(request.getIsHaveWantShop());
if (CollectionUtils.isNotEmpty(request.getWantShopInfo())){
intentInfoDO.setWantShopInfo("");
if (CollectionUtils.isNotEmpty(request.getWantShopInfo()) && request.getIsHaveWantShop() == 1){
intentInfoDO.setWantShopInfo(JSONObject.toJSONString(request.getWantShopInfo()));
}
intentInfoDO.setMaxBudget(request.getMaxBudget());

View File

@@ -67,9 +67,10 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan
@Override
public List<InterviewDetailInfoVO> getInterviewPlanList(String userId) {
String currentTime = DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_DAY);
List<HyPartnerInterviewPlanDO> interviewPlanList = hyPartnerInterviewPlanDAO.getInterviewPlanList(userId, currentTime);
public List<InterviewDetailInfoVO> getInterviewPlanList(String userId,Date dateTime) {
String currentDay = DateUtil.format(dateTime, CoolDateUtils.DATE_FORMAT_DAY);
String currentTime = DateUtil.format(dateTime, CoolDateUtils.DATE_FORMAT_SEC);
List<HyPartnerInterviewPlanDO> interviewPlanList = hyPartnerInterviewPlanDAO.getInterviewPlanList(userId, currentTime,currentDay);
if (CollectionUtils.isEmpty(interviewPlanList)){
return Lists.newArrayList();
}
@@ -267,14 +268,14 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan
partnerInterviewInfoVO.setPartnerId(partnerInterviewInfoDTO.getPartnerId());
partnerInterviewInfoVO.setInterviewerId(partnerInterviewInfoDTO.getInterviewer());
partnerInterviewInfoVO.setProcessInfo(partnerInterviewInfoDTO.getProcessInfo());
partnerInterviewInfoVO.setCreateTime(DateUtil.format(partnerInterviewInfoDTO.getCreateTime(),CoolDateUtils.DATE_FORMAT_SEC));
partnerInterviewInfoVO.setCreateTime(DateUtil.format(partnerInterviewInfoDTO.getCreateTime(),CoolDateUtils.DATE_FORMAT_SEC_2));
partnerInterviewInfoVO.setRoomId(partnerInterviewInfoDTO.getRoomId());
partnerInterviewInfoVO.setDeadline(DateUtil.format(partnerInterviewInfoDTO.getDeadline(),CoolDateUtils.DATE_FORMAT_SEC));
partnerInterviewInfoVO.setStartTime(DateUtil.format(partnerInterviewInfoDTO.getStartTime(),CoolDateUtils.DATE_FORMAT_SEC));
partnerInterviewInfoVO.setDeadline(DateUtil.format(partnerInterviewInfoDTO.getDeadline(),CoolDateUtils.DATE_FORMAT_SEC_2));
partnerInterviewInfoVO.setStartTime(DateUtil.format(partnerInterviewInfoDTO.getStartTime(),CoolDateUtils.DATE_FORMAT_SEC_2));
partnerInterviewInfoVO.setStatus(partnerInterviewInfoDTO.getStatus());
partnerInterviewInfoVO.setAuthCode(partnerInterviewInfoDTO.getAuthCode());
partnerInterviewInfoVO.setEndTime(DateUtil.format(partnerInterviewInfoDTO.getEndTime(),CoolDateUtils.DATE_FORMAT_SEC));
partnerInterviewInfoVO.setApproveTime(DateUtil.format(partnerInterviewInfoDTO.getApproveTime(),CoolDateUtils.DATE_FORMAT_SEC));
partnerInterviewInfoVO.setEndTime(DateUtil.format(partnerInterviewInfoDTO.getEndTime(),CoolDateUtils.DATE_FORMAT_SEC_2));
partnerInterviewInfoVO.setApproveTime(DateUtil.format(partnerInterviewInfoDTO.getApproveTime(),CoolDateUtils.DATE_FORMAT_SEC_2));
return partnerInterviewInfoVO;
}

View File

@@ -5,8 +5,10 @@ import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.constants.CommonConstants;
import com.cool.store.constants.RedisConstant;
import com.cool.store.context.LoginUserInfo;
import com.cool.store.dao.*;
import com.cool.store.dto.buser.UserPositionAndUserScopeDTO;
import com.cool.store.dto.log.*;
import com.cool.store.dto.partner.*;
import com.cool.store.entity.*;
import com.cool.store.enums.*;
@@ -27,6 +29,7 @@ import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -73,6 +76,8 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
private HyPartnerBaseInfoService hyPartnerBaseInfoService;
@Resource
WorkFlowService workFlowService;
@Resource
HyPartnerTaskInfoLogDAO hyPartnerTaskInfoLogDAO;
@Override
@@ -94,7 +99,6 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST);
}
PartnerLineInfoAndBaseInfoVO partnerLineInfoAndBaseInfoVO = convertPartnerLineInfoAndBaseInfoDTOToVo(partnerLineInfoAndBaseInfoDTO);
EnterpriseUserDO userInfo = enterpriseUserDAO.getUserInfoById(partnerLineInfoAndBaseInfoDTO.getPassUserId());
if (userInfo!=null){
partnerLineInfoAndBaseInfoVO.setPassUserName(userInfo.getName());
@@ -133,17 +137,40 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
}
@Override
public Boolean transferInvestmentManager(String userId, Long lineId) {
public Boolean transferInvestmentManager(LoginUserInfo user,String userId,String userName, Long lineId) {
if (StringUtil.isBlank(userId)||lineId==null){
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
}
HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(lineId);
hyPartnerLineInfoDAO.updateInvestmentManager(userId, Arrays.asList(lineId));
List<String> userIdList = new ArrayList<>();
userIdList.add(userId);
if (StringUtils.isNotEmpty(hyPartnerLineInfoDO.getInvestmentManager())){
userIdList.add(hyPartnerLineInfoDO.getInvestmentManager());
}
List<EnterpriseUserDO> userList = enterpriseUserDAO.getUserInfoByUserIds(userIdList);
Map<String, EnterpriseUserDO> userDOMap = userList.stream().collect(Collectors.toMap(EnterpriseUserDO::getUserId, data -> data));
//添加日志
LineLogInfo lineLogInfo = new LineLogInfo(hyPartnerLineInfoDO.getPartnerId(), hyPartnerLineInfoDO.getId(), user.getUserId(),
user.getName(), OperateTypeEnum.TRANSFER_INVESTMENT_MANAGER,
WorkflowStageEnum.getWorkflowStageByCode(hyPartnerLineInfoDO.getWorkflowStage()),
hyPartnerLineInfoDO.getWorkflowStatus(), "");
TransferInvestmentManagerLogDTO logDTO = TransferInvestmentManagerLogDTO.builder().operateUserId(user.getUserId()).operateUsername(user.getName())
.beforeInvestmentManagerUsername(userDOMap.getOrDefault(hyPartnerLineInfoDO.getInvestmentManager(),new EnterpriseUserDO()).getName())
.beforeInvestmentManagerMobile(userDOMap.getOrDefault(hyPartnerLineInfoDO.getInvestmentManager(),new EnterpriseUserDO()).getMobile())
.afterInvestmentManagerMobile(userDOMap.getOrDefault(userId,new EnterpriseUserDO()).getMobile())
.afterInvestmentManagerUsername(userDOMap.getOrDefault(userId,new EnterpriseUserDO()).getName())
.mobile(user.getMobile()).operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC_2)).build();
lineLogInfo.setData(logDTO);
hyPartnerTaskInfoLogDAO.addOperateLog(lineLogInfo);
return Boolean.TRUE;
}
@Override
public Boolean allocationInvestmentManager(String userId, List<Long> lineIdList) {
if (StringUtil.isBlank(userId)|| CollectionUtils.isEmpty(lineIdList)){
public Boolean allocationInvestmentManager(LoginUserInfo user, List<Long> lineIdList) {
if (user==null|| CollectionUtils.isEmpty(lineIdList)){
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
}
//加盟上线索集合
@@ -157,7 +184,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
closeLineList.stream().forEach(x->{
HyPartnerLineInfoDO hyPartnerLineInfoDO = new HyPartnerLineInfoDO();
hyPartnerLineInfoDO.setPartnerId(x.getPartnerId());
hyPartnerLineInfoDO.setInvestmentManager(userId);
hyPartnerLineInfoDO.setInvestmentManager(user.getUserId());
hyPartnerLineInfoDO.setWorkflowStage(WorkflowStageEnum.INTENT.getCode());
hyPartnerLineInfoDO.setWorkflowStatus(WorkflowStatusEnum.INTENT_0.getCode());
hyPartnerLineInfoDO.setLineStatus(1);
@@ -177,8 +204,19 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
//没有结束的线索直接分配招商经理
List<HyPartnerLineInfoDO> otherLineList = partnerLineInfoList.stream().filter(x -> x.getCloseTime() == null).collect(Collectors.toList());
List<Long> otherLineIdList = otherLineList.stream().map(HyPartnerLineInfoDO::getId).collect(Collectors.toList());
hyPartnerLineInfoDAO.updateInvestmentManager(userId, otherLineIdList);
hyPartnerLineInfoDAO.updateInvestmentManager(user.getUserId(), otherLineIdList);
//添加日志
partnerLineInfoList.forEach(x->{
LineLogInfo lineLogInfo = new LineLogInfo(x.getPartnerId(), x.getId(), user.getUserId(),
user.getName(), OperateTypeEnum.ALLOCATION_INVESTMENT_MANAGER,
WorkflowStageEnum.getWorkflowStageByCode(x.getWorkflowStage()),
x.getWorkflowStatus(), "");
AllocationInvestmentManagerLogDTO logDTO = AllocationInvestmentManagerLogDTO.builder().allocationUserId(user.getUserId()).allocationUsername(user.getName())
.mobile(user.getMobile()).operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC_2)).build();
lineLogInfo.setData(logDTO);
hyPartnerTaskInfoLogDAO.addOperateLog(lineLogInfo);
});
return Boolean.TRUE;
}
@@ -204,10 +242,11 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
}
@Override
public Boolean joinBlackList(String userId,Long lineId, Integer status, String joinReason) {
public Boolean joinBlackList(LoginUserInfo user, Long lineId, Integer status, String joinReason) {
if (lineId==null){
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
}
HyPartnerLineInfoDO line = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(lineId);
//加入黑名单 阶段回到第一步待提交状态
HyPartnerLineInfoDO hyPartnerLineInfoDO = new HyPartnerLineInfoDO();
hyPartnerLineInfoDO.setId(lineId);
@@ -215,16 +254,26 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
hyPartnerLineInfoDO.setJoinBlackReason(joinReason);
hyPartnerLineInfoDO.setRejectRealReason(joinReason);
hyPartnerLineInfoDO.setCloseTime(new Date());
hyPartnerLineInfoDO.setCloseUserId(userId);
hyPartnerLineInfoDO.setCloseUserId(user.getUserId());
hyPartnerLineInfoDO.setWorkflowStage(WorkflowStageEnum.INTENT.getCode());
hyPartnerLineInfoDO.setWorkflowStatus(WorkflowStatusEnum.INTENT_0.getCode());
hyPartnerLineInfoDAO.updateByPrimaryKeySelective(hyPartnerLineInfoDO);
//添加日志
LineLogInfo lineLogInfo = new LineLogInfo(line.getPartnerId(), line.getId(), user.getUserId(),
user.getName(), OperateTypeEnum.ADD_BLACKLIST,
WorkflowStageEnum.getWorkflowStageByCode(line.getWorkflowStage()),
line.getWorkflowStatus(), "");
BlackListLogDTO logDTO = BlackListLogDTO.builder().operateUserId(user.getUserId()).reason(joinReason).operateUsername(user.getName())
.mobile(user.getMobile()).operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC_2)).build();
lineLogInfo.setData(logDTO);
hyPartnerTaskInfoLogDAO.addOperateLog(lineLogInfo);
return Boolean.TRUE;
}
@Override
public Boolean removeBlackList(Long lineId, Integer status, String removeReason) {
public Boolean removeBlackList(LoginUserInfo user,Long lineId, Integer status, String removeReason) {
//移除黑名单 黑名单线索置为删除状态 新增一条线索
if (lineId==null){
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
@@ -245,20 +294,38 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
newHyPartnerLineInfoDO.setLineStatus(status);
hyPartnerLineInfoDAO.insertSelective(newHyPartnerLineInfoDO);
HyPartnerBaseInfoDO oldHyPartnerBaseInfoDO = hyPartnerBaseInfoDAO.getByPartnerLineId(lineId);
HyPartnerBaseInfoDO hyPartnerBaseInfoDO = new HyPartnerBaseInfoDO();
hyPartnerBaseInfoDO.setPartnerId(hyPartnerLineInfo.getPartnerId());
hyPartnerBaseInfoDO.setPartnerLineId(newHyPartnerLineInfoDO.getId());
hyPartnerBaseInfoDO.setUserPortrait(oldHyPartnerBaseInfoDO.getUserPortrait());
hyPartnerBaseInfoDAO.insertSelective(hyPartnerBaseInfoDO);
//添加日志
LineLogInfo lineLogInfo = new LineLogInfo(hyPartnerLineInfo.getPartnerId(), hyPartnerLineInfo.getId(), user.getUserId(),
user.getName(), OperateTypeEnum.REMOVE_BLACKLIST,
WorkflowStageEnum.getWorkflowStageByCode(hyPartnerLineInfo.getWorkflowStage()),
hyPartnerLineInfo.getWorkflowStatus(), "");
BlackListLogDTO logDTO = BlackListLogDTO.builder().operateUserId(user.getUserId()).reason(removeReason).operateUsername(user.getName())
.mobile(user.getMobile()).operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC_2)).build();
lineLogInfo.setData(logDTO);
hyPartnerTaskInfoLogDAO.addOperateLog(lineLogInfo);
return Boolean.TRUE;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean closeOrPassFollow(String userId,CloseFollowRequest closeFollowRequest) {
public Boolean closeOrPassFollow(LoginUserInfo user,CloseFollowRequest closeFollowRequest) {
HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(closeFollowRequest.getLineId());
if (hyPartnerLineInfoDO==null){
throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST);
}
if (hyPartnerLineInfoDO.getLineStatus()==0){
throw new ServiceException(ErrorCodeEnum.PUBLIC_LINE_NOT_OPERATE);
}
String oldWorkflowStage = hyPartnerLineInfoDO.getWorkflowStage();
String oldWorkflowStatus = hyPartnerLineInfoDO.getWorkflowStatus();
//通过
if ("pass".equals(closeFollowRequest.getType())){
hyPartnerLineInfoDO.setWorkflowStage(WorkflowStageEnum.RESERVATION.getCode());
@@ -271,7 +338,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
HyPartnerBaseInfoDO hy = hyPartnerBaseInfoDAO.getByPartnerLineId(hyPartnerLineInfoDO.getId());
hy.setPassReason(closeFollowRequest.getPassReason());
hy.setPassTime(new Date());
hy.setPassUserId(userId);
hy.setPassUserId(user.getUserId());
if (CollectionUtils.isNotEmpty(closeFollowRequest.getCertifyFile())){
hy.setCertifyFile(JSONObject.toJSONString(closeFollowRequest.getCertifyFile()));
}
@@ -294,7 +361,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
}
hyPartnerLineInfoDO.setLineStatus(LineStatusEnum.PUBLIC_SEAS.getCode());
hyPartnerLineInfoDO.setCloseTime(new Date());
hyPartnerLineInfoDO.setCloseUserId(userId);
hyPartnerLineInfoDO.setCloseUserId(user.getUserId());
//各阶段单独的逻辑
workFlowService.endProcess(WorkflowStageEnum.getWorkflowStageByCode(hyPartnerLineInfoDO.getWorkflowStage()),closeFollowRequest);
}
@@ -313,9 +380,25 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
hyPartnerLineInfoDO.setCloseTime(new Date());
}
hyPartnerLineInfoDAO.updateByPrimaryKeySelective(hyPartnerLineInfoDO);
//通过 拒绝添加日志
if ("pass".equals(closeFollowRequest.getType())||"reject".equals(closeFollowRequest.getType())){
LineLogInfo lineLogInfo = new LineLogInfo(hyPartnerLineInfoDO.getPartnerId(), hyPartnerLineInfoDO.getId(), user.getUserId(),
user.getName(), OperateTypeEnum.REMOVE_BLACKLIST,
WorkflowStageEnum.getWorkflowStageByCode(oldWorkflowStage),
oldWorkflowStatus, "");
CloseOrPassFollowLogDTO log = CloseOrPassFollowLogDTO.builder().operateUserId(user.getUserId()).passReason(closeFollowRequest.getPassReason()).rejectRealReason(closeFollowRequest.getRejectRealReason())
.operateUsername(user.getName()).rejectPublicReason(closeFollowRequest.getRejectPublicReason()).certifyFile(JSONObject.toJSONString(closeFollowRequest.getCertifyFile()))
.mobile(user.getMobile()).operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC_2)).build();
lineLogInfo.setData(log);
hyPartnerTaskInfoLogDAO.addOperateLog(lineLogInfo);
}
return Boolean.TRUE;
}
@Override
public PageInfo<PublicSeaLineListVo> publicSeaLineList(String userId, LineRequest lineRequest) {
//确认是招商经理还是部门负责人
@@ -356,13 +439,13 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
list.forEach(x->{
PublicSeaLineListVo publicSeaLineListVo = new PublicSeaLineListVo();
publicSeaLineListVo.setPartnerId(x.getPartnerId());
publicSeaLineListVo.setCreateTime(DateUtil.format(x.getCreateTime(),CoolDateUtils.DATE_FORMAT_SEC));
publicSeaLineListVo.setCreateTime(DateUtil.format(x.getCreateTime(),CoolDateUtils.DATE_FORMAT_SEC_2));
publicSeaLineListVo.setPartnerUserName(x.getUserName());
publicSeaLineListVo.setPartnerUserPhone(x.getMobile());
DescribePhoneNumberDTO phoneNumberAttribute = aliyunService.getPhoneNumberAttribute(x.getMobile());
publicSeaLineListVo.setPhoneAddress(phoneNumberAttribute.getCity());
publicSeaLineListVo.setWantShopArea(x.getWantShopArea());
publicSeaLineListVo.setUpdateTime(DateUtil.format(x.getUpdateTime(),CoolDateUtils.DATE_FORMAT_SEC));
publicSeaLineListVo.setUpdateTime(DateUtil.format(x.getUpdateTime(),CoolDateUtils.DATE_FORMAT_SEC_2));
publicSeaLineListVo.setId(x.getLineId());
publicSeaLineListVo.setAcceptAdjustType(x.getAcceptAdjustType());
publicSeaLineListVo.setFollowCount(countMap.getOrDefault(x.getPartnerId(),0));
@@ -370,7 +453,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
publicSeaLineListVo.setRejectPublicReason(hy.getRejectPublicReason());
publicSeaLineListVo.setRejectRealReason(hy.getRejectRealReason());
publicSeaLineListVo.setWantShopAreaName(wantShopAreaNameMap.get(x.getWantShopArea()));
String closeTime = DateUtil.format(hy.getCloseTime(), CoolDateUtils.DATE_FORMAT_SEC);
String closeTime = DateUtil.format(hy.getCloseTime(), CoolDateUtils.DATE_FORMAT_SEC_2);
publicSeaLineListVo.setLastCloseDate(closeTime);
publicSeaLineListVo.setLastInvestmentManager(nameMobileMap.get(hy.getInvestmentManager()));
result.add(publicSeaLineListVo);
@@ -430,9 +513,9 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
List<LineFollowHistoryVO> result = new ArrayList<>();
lineFollowHistoryList.forEach(x->{
LineFollowHistoryVO lineFollowHistoryVO = new LineFollowHistoryVO();
lineFollowHistoryVO.setCloseCause(x.getRejectPublicReason());
lineFollowHistoryVO.setCloseTime( DateUtil.format(x.getCloseTime(), CoolDateUtils.DATE_FORMAT_SEC));
lineFollowHistoryVO.setStartTime(DateUtil.format(x.getCreateTime(), CoolDateUtils.DATE_FORMAT_SEC));
lineFollowHistoryVO.setCloseCause(x.getRejectRealReason());
lineFollowHistoryVO.setCloseTime( DateUtil.format(x.getCloseTime(), CoolDateUtils.DATE_FORMAT_SEC_2));
lineFollowHistoryVO.setStartTime(DateUtil.format(x.getCreateTime(), CoolDateUtils.DATE_FORMAT_SEC_2));
result.add(lineFollowHistoryVO);
});
return result;
@@ -576,7 +659,8 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
// 生成一条新线索
HyPartnerLineInfoDO newLineInfoDO = this.generateDefaultLineInfo(hyPartnerLineInfoDO.getPartnerId(), hyPartnerUserInfoDO.getWantShopArea(), hyPartnerUserInfoDO.getAcceptAdjustType());
// 生成一条意向基本信息
hyPartnerBaseInfoService.generateBaseInfo(hyPartnerUserInfoDO, newLineInfoDO.getId());
HyPartnerBaseInfoDO oldBaseInfoDO = hyPartnerBaseInfoDAO.getByPartnerIdAndLineId(hyPartnerUserInfoDO.getPartnerId(), lineId);
hyPartnerBaseInfoService.generateBaseInfo(hyPartnerUserInfoDO, newLineInfoDO.getId(), oldBaseInfoDO.getUserPortrait());
return newLineInfoDO.getId();
}
return hyPartnerLineInfoDO.getId();
@@ -594,8 +678,8 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
blackListVO.setPartnerId(partnerBlackListDTO.getPartnerId());
blackListVO.setPartnerUserName(partnerBlackListDTO.getPartnerUserName());
blackListVO.setPartnerUserPhone(partnerBlackListDTO.getMobile());
String createTime = DateUtil.format(partnerBlackListDTO.getCreateTime(), CoolDateUtils.DATE_FORMAT_SEC);
String closeTime = DateUtil.format(partnerBlackListDTO.getCloseTime(), CoolDateUtils.DATE_FORMAT_SEC);
String createTime = DateUtil.format(partnerBlackListDTO.getCreateTime(), CoolDateUtils.DATE_FORMAT_SEC_2);
String closeTime = DateUtil.format(partnerBlackListDTO.getCloseTime(), CoolDateUtils.DATE_FORMAT_SEC_2);
blackListVO.setCreateTime(createTime);
blackListVO.setCloseTime(closeTime);
blackListVO.setJoinBlackReason(partnerBlackListDTO.getJoinBlackReason());
@@ -631,12 +715,14 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
partnerLineInfoAndBaseInfoVO.setAcceptAdjustType(partnerLineInfoAndBaseInfoDTO.getAcceptAdjustType());
partnerLineInfoAndBaseInfoVO.setWantShopArea(partnerLineInfoAndBaseInfoDTO.getWantShopArea());
partnerLineInfoAndBaseInfoVO.setLiveArea(partnerLineInfoAndBaseInfoDTO.getLiveArea());
partnerLineInfoAndBaseInfoVO.setIdCard(partnerLineInfoAndBaseInfoDTO.getIdCard());
partnerLineInfoAndBaseInfoVO.setChannelName(partnerLineInfoAndBaseInfoDTO.getChannelName());
if (StringUtil.isNotEmpty(partnerLineInfoAndBaseInfoDTO.getCertifyFile())){
partnerLineInfoAndBaseInfoVO.setPassCertifyFile(JSONObject.parseArray(partnerLineInfoAndBaseInfoDTO.getCertifyFile(), String.class));
}
partnerLineInfoAndBaseInfoVO.setPassUserId(partnerLineInfoAndBaseInfoDTO.getPassUserId());
partnerLineInfoAndBaseInfoVO.setPassTime(DateUtil.format(partnerLineInfoAndBaseInfoDTO.getPassTime(),CoolDateUtils.DATE_FORMAT_SEC));
partnerLineInfoAndBaseInfoVO.setEducation(partnerLineInfoAndBaseInfoDTO.getEducation());
partnerLineInfoAndBaseInfoVO.setPassTime(DateUtil.format(partnerLineInfoAndBaseInfoDTO.getPassTime(),CoolDateUtils.DATE_FORMAT_SEC_2));
return partnerLineInfoAndBaseInfoVO;
}

View File

@@ -75,6 +75,7 @@ public class LoginServiceImpl implements LoginService {
enterpriseUser.setFaceUrl(finalAvatar);
currentUser.setUserId(enterpriseUser.getUserId());
currentUser.setIsAdmin(enterpriseUser.getIsAdmin());
currentUser.setMobile(enterpriseUser.getMobile());
currentUser.setSysRole(sysRole);
currentUser.setCorpId(corpId);
currentUser.setAvatar(enterpriseUser.getAvatar());

View File

@@ -9,6 +9,7 @@ import com.cool.store.entity.HyPartnerLineInfoDO;
import com.cool.store.entity.HyPartnerUserInfoDO;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.exception.ServiceException;
import com.cool.store.request.PartnerIntentInfoRequest;
import com.cool.store.request.PartnerUserInfoRequest;
import com.cool.store.request.PartnerWantShopInfoRequest;
import com.cool.store.service.HyPartnerBaseInfoService;
@@ -98,7 +99,7 @@ public class PartnerUserInfoServiceImpl implements PartnerUserInfoService {
// 生成一条线索
HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoService.generateDefaultLineInfo(hyPartnerUserInfoDO.getPartnerId(), partnerUserInfoRequest.getWantShopArea(), partnerUserInfoRequest.getAcceptAdjustType());
// 生成一条意向基本信息
hyPartnerBaseInfoService.generateBaseInfo(hyPartnerUserInfoDO, hyPartnerLineInfoDO.getId());
hyPartnerBaseInfoService.generateBaseInfo(hyPartnerUserInfoDO, hyPartnerLineInfoDO.getId(), null);
HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(Long.valueOf(partnerUserInfoRequest.getWantShopArea()));
List<HyOpenAreaInfoDO> hyOpenAreaInfoDOS = null;
if(hyOpenAreaInfoDO != null){
@@ -112,9 +113,9 @@ public class PartnerUserInfoServiceImpl implements PartnerUserInfoService {
applyBaseInfoVO.setProvinceHasOpenArea(true);
}
applyBaseInfoVO.setLineStatus(hyPartnerLineInfoDO.getLineStatus());
String cacheKey = MessageFormat.format(RedisConstant.PARTNER_WANTSHOPINFO_CACHE_KEY, partnerUserInfoRequest.getPartnerId(), hyPartnerLineInfoDO.getId());
String cacheKey = MessageFormat.format(RedisConstant.PARTNER_INTENTINFO_CACHE_KEY, partnerUserInfoRequest.getPartnerId(), hyPartnerLineInfoDO.getId());
if (StringUtils.isNotBlank(redisUtilPool.getString(cacheKey))) {
PartnerWantShopInfoRequest request = JSONObject.parseObject(redisUtilPool.getString(cacheKey), PartnerWantShopInfoRequest.class);
PartnerIntentInfoRequest request = JSONObject.parseObject(redisUtilPool.getString(cacheKey), PartnerIntentInfoRequest.class);
if(!partnerUserInfoRequest.getWantShopArea().equals(request.getWantShopArea())){
request.setWantShopArea(partnerUserInfoRequest.getWantShopArea());
}

View File

@@ -113,6 +113,9 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService {
}else {
hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(hyPartnerUserPlatformBindDO.getPartnerId());
}
if(!hyPartnerUserInfoDO.getMobile().equals(phoneInfoDTO.getPhoneInfo().getPhoneNumber())){
throw new ServiceException(ErrorCodeEnum.WECHAT_BIND_OTHER_MOBILE);
}
BeanUtil.copyProperties(hyPartnerUserInfoDO, userInfoVO);
HyPartnerLineInfoDO lineInfoDO = hyPartnerLineInfoDAO.getByPartnerId(hyPartnerUserInfoDO.getPartnerId());
if (lineInfoDO != null){

View File

@@ -170,7 +170,7 @@ public class ZoneServiceImpl implements ZoneService {
ZoneVO zoneVO = new ZoneVO();
zoneVO.setZoneName(hyIntendDevZoneInfoDO.getZoneName());
zoneVO.setId(hyIntendDevZoneInfoDO.getId());
zoneVO.setUpdateTime(DateUtil.format(hyIntendDevZoneInfoDO.getUpdateTime(), CoolDateUtils.DATE_FORMAT_SEC));
zoneVO.setUpdateTime(DateUtil.format(hyIntendDevZoneInfoDO.getUpdateTime(), CoolDateUtils.DATE_FORMAT_SEC_2));
List<OrganizationVO> organizationVOS = new ArrayList<>();
if (StringUtil.isNotEmpty(hyIntendDevZoneInfoDO.getAssociatedRegionId())){
List<String> regionIds = JSONObject.parseArray(hyIntendDevZoneInfoDO.getAssociatedRegionId(), String.class);

View File

@@ -194,14 +194,14 @@ public class DeskController {
@ApiOperation("分配招商经理/批量分配招商经理")
public ResponseResult<Boolean> allocationInvestmentManager(@RequestBody AllocationInvestmentManagerRequest request){
return ResponseResult.success(hyPartnerLineInfoService.allocationInvestmentManager(request.getUserId(),request.getLineIdList()));
return ResponseResult.success(hyPartnerLineInfoService.allocationInvestmentManager(CurrentUserHolder.getUser(),request.getLineIdList()));
}
@PostMapping(path = "/transferInvestmentManager")
@ApiOperation("转让招商经理")
public ResponseResult<Boolean> transferInvestmentManager(@RequestBody TransferInvestmentManagerRequest request){
return ResponseResult.success(hyPartnerLineInfoService.transferInvestmentManager(request.getUserId(),request.getLineId()));
return ResponseResult.success(hyPartnerLineInfoService.transferInvestmentManager(CurrentUserHolder.getUser(),request.getUserId(),request.getUserName(),request.getLineId()));
}
@@ -230,21 +230,21 @@ public class DeskController {
@ApiOperation("移出黑名单")
public ResponseResult<Boolean> removeBlackList(@RequestBody LineBlackListRequest lineBlackListRequest){
return ResponseResult.success(hyPartnerLineInfoService.removeBlackList(lineBlackListRequest.getLineId(), LineStatusEnum.PUBLIC_SEAS.getCode(),lineBlackListRequest.getCause()));
return ResponseResult.success(hyPartnerLineInfoService.removeBlackList(CurrentUserHolder.getUser(),lineBlackListRequest.getLineId(), LineStatusEnum.PUBLIC_SEAS.getCode(),lineBlackListRequest.getCause()));
}
@PostMapping(path = "/joinBlackList")
@ApiOperation("加入黑名单")
public ResponseResult<Boolean> joinBlackList(@RequestBody LineBlackListRequest lineBlackListRequest){
return ResponseResult.success(hyPartnerLineInfoService.joinBlackList(CurrentUserHolder.getUserId(),lineBlackListRequest.getLineId(),LineStatusEnum.BLACKLIST.getCode(),lineBlackListRequest.getCause()));
return ResponseResult.success(hyPartnerLineInfoService.joinBlackList(CurrentUserHolder.getUser(),lineBlackListRequest.getLineId(),LineStatusEnum.BLACKLIST.getCode(),lineBlackListRequest.getCause()));
}
@PostMapping(path = "/closeOrPassFollow")
@ApiOperation("意向申请审核 结束跟进/通过流程")
public ResponseResult<Boolean> closeOrPassFollow(@RequestBody CloseFollowRequest closeFollowRequest){
return ResponseResult.success(hyPartnerLineInfoService.closeOrPassFollow(CurrentUserHolder.getUserId(),closeFollowRequest));
return ResponseResult.success(hyPartnerLineInfoService.closeOrPassFollow(CurrentUserHolder.getUser(),closeFollowRequest));
}

View File

@@ -110,6 +110,12 @@ public class PartnerController {
return ResponseResult.success(hyPartnerClerkService.submitPartnerClerkInfo(partnerClerkInfoRequest));
}
@PostMapping(path = "/submitPartnerIntentInfo")
@ApiOperation("提意向书意向信息/行业认知")
public ResponseResult<String> submitPartnerIntentInfo(@RequestBody PartnerIntentInfoRequest partnerIntentInfoRequest){
return ResponseResult.success(hyPartnerIntentInfoService.submitPartnerIntentInfo(partnerIntentInfoRequest));
}
@PostMapping(path = "/submitWantShopInfo")
@ApiOperation("提意向书意向信息")
public ResponseResult<String> submitWantShopInfo(@RequestBody PartnerWantShopInfoRequest request){
@@ -176,6 +182,15 @@ public class PartnerController {
return ResponseResult.success(hyPartnerClerkService.queryPartnerClerkInfo(userInfoVO.getPartnerId(), lineId));
}
@GetMapping(path = "/queryPartnerIntentInfo")
@ApiOperation("查看意向申请书-意向信息/行业信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "lineId", value = "线索ID", required = false),
})
public ResponseResult<PartnerIntentInfoVO> queryPartnerIntentInfo(@RequestParam(value = "lineId",required = false)Long lineId){
PartnerUserInfoVO userInfoVO = PartnerUserHolder.getUser();
return ResponseResult.success(hyPartnerIntentInfoService.queryPartnerIntentInfo(userInfoVO, lineId));
}
@GetMapping(path = "/queryWantShopInfo")
@ApiOperation("查看意向申请书-意向信息")