Merge remote-tracking branch 'origin/cc_20230520_partner' into cc_20230520_partner
This commit is contained in:
@@ -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),
|
||||
|
||||
@@ -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", "转让后的招商经理手机好"),
|
||||
;
|
||||
|
||||
|
||||
|
||||
@@ -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));
|
||||
|
||||
;
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
/**
|
||||
* 工作台 招商经理 预约面试时间 合格资格面试 列表
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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()));
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -78,4 +78,8 @@ public class PartnerLineInfoAndBaseInfoDTO {
|
||||
private Integer acceptAdjustType;
|
||||
|
||||
private String channelName;
|
||||
|
||||
private String idCard;
|
||||
|
||||
private String education;
|
||||
}
|
||||
|
||||
@@ -71,4 +71,6 @@ public class PrivateSeaLineDTO {
|
||||
|
||||
private Long interviewPlanId;
|
||||
|
||||
private Date startTime;
|
||||
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -18,4 +18,6 @@ public class TransferInvestmentManagerRequest {
|
||||
|
||||
private String userId;
|
||||
|
||||
private String userName;
|
||||
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -86,4 +86,8 @@ public class PartnerLineInfoAndBaseInfoVO {
|
||||
|
||||
@ApiModelProperty("线索来源名称")
|
||||
private String channelName;
|
||||
|
||||
private String education;
|
||||
|
||||
private String idCard;
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -12,6 +12,8 @@ public class LoginUserInfo {
|
||||
|
||||
private String corpId;
|
||||
|
||||
private String mobile;
|
||||
|
||||
private String accessToken;
|
||||
|
||||
/**
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
/**
|
||||
* 公海线索
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
@@ -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){
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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("查看意向申请书-意向信息")
|
||||
|
||||
Reference in New Issue
Block a user