添加日志

This commit is contained in:
苏竹红
2023-06-27 20:46:38 +08:00
parent 3f316e2658
commit 1a993548ed
19 changed files with 273 additions and 39 deletions

View File

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

View File

@@ -13,11 +13,11 @@ import static com.cool.store.enums.OperateLogFieldValueEnum.*;
*/ */
public enum OperateTypeEnum { public enum OperateTypeEnum {
ALLOCATION_INVESTMENT_MANAGER("allocation_investment_manager", "分配招商经理", Arrays.asList(ALLOCATION_USERNAME, MOBILE, OPERATE_TIME)), ALLOCATION_INVESTMENT_MANAGER("allocation_investment_manager", "分配招商经理", Arrays.asList(ALLOCATION_USERID,ALLOCATION_USERNAME, MOBILE, OPERATE_TIME)),
ADD_BLACKLIST("add_blacklist", "加入黑名单", Arrays.asList(OPERATE_USER_NAME, MOBILE, OPERATE_TIME, REASON)), ADD_BLACKLIST("add_blacklist", "加入黑名单", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, REASON)),
REMOVE_BLACKLIST("add_blacklist", "移除黑名单", Arrays.asList(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_NAME, MOBILE, OPERATE_TIME, REJECT_PUBLIC_REASON, REJECT_REAL_REASON, CERTIFY_FILE)), 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_NAME, MOBILE, OPERATE_TIME, BEFORE_INVESTMENT_MANAGER_USERNAME, BEFORE_INVESTMENT_MANAGER_MOBILE, AFTER_INVESTMENT_MANAGER_USERNAME, AFTER_INVESTMENT_MANAGER_MOBILE)); 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; 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 * @Author suzhuhong
* @Date 2023/6/9 16:35 * @Date 2023/6/9 16:35

View File

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

View File

@@ -312,6 +312,7 @@
left join hy_partner_interview a on hpli.id = a.partner_line_id 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 left join hy_partner_interview_plan b on a.interview_plan_id = b.id
<where> <where>
and hpli.deleted = 0 and b.deleted = 0
<if test="workflowStage!=null and workflowStage!=''"> <if test="workflowStage!=null and workflowStage!=''">
and hpli.workflow_stage = #{workflowStage} and hpli.workflow_stage = #{workflowStage}
</if> </if>

View File

@@ -462,14 +462,15 @@
hpuinfo.shop_name as storeName, hpuinfo.shop_name as storeName,
hpuinfo.recommend_partner_name as recommendPartnerName, hpuinfo.recommend_partner_name as recommendPartnerName,
eu.name as investmentManagerName, eu.name as investmentManagerName,
hpip.id as interviewPlanId hpip.id as interviewPlanId,
hpip.start_time as startTime
FROM FROM
hy_partner_line_info hpli hy_partner_line_info hpli
LEFT JOIN hy_partner_intent_info hpii ON hpli.id = hpii.partner_line_id 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 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 enterprise_user eu ON hpli.investment_manager = eu.user_id
LEFT JOIN hy_partner_interview_plan hpip on hpli.id = hpip.partner_line_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'"> <if test="keyword!=null and keyword!='' and keywordType!=null and keywordType=='name'">
AND (eu.name like concat('%',#{keyword},'%') or hpuinfo.username like concat('%',#{keyword},'%')) AND (eu.name like concat('%',#{keyword},'%') or hpuinfo.username like concat('%',#{keyword},'%'))
</if> </if>

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

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

View File

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

View File

@@ -85,6 +85,8 @@ public class PrivateSeaLineListVo {
private Long interviewPlanId; private Long interviewPlanId;
private Date startTime;
public static List<PrivateSeaLineListVo> convertList(List<PrivateSeaLineDTO> list, Map<String, String> finalDevManagerMap, Map<String, String> wantShopAreaNameMap){ public static List<PrivateSeaLineListVo> convertList(List<PrivateSeaLineDTO> list, Map<String, String> finalDevManagerMap, Map<String, String> wantShopAreaNameMap){
List<PrivateSeaLineListVo> resultList = new ArrayList<>(); List<PrivateSeaLineListVo> resultList = new ArrayList<>();
@@ -116,6 +118,7 @@ public class PrivateSeaLineListVo {
privateSeaLineListVo.setInterviewPlanId(x.getInterviewPlanId()); privateSeaLineListVo.setInterviewPlanId(x.getInterviewPlanId());
privateSeaLineListVo.setWantShopArea(x.getWantShopArea()); privateSeaLineListVo.setWantShopArea(x.getWantShopArea());
privateSeaLineListVo.setWorkflowStage(x.getWorkflowStage()); privateSeaLineListVo.setWorkflowStage(x.getWorkflowStage());
privateSeaLineListVo.setStartTime(x.getStartTime());
privateSeaLineListVo.setDevelopmentManagerName(finalDevManagerMap.get(x.getDevelopmentManager())); privateSeaLineListVo.setDevelopmentManagerName(finalDevManagerMap.get(x.getDevelopmentManager()));
resultList.add(privateSeaLineListVo); resultList.add(privateSeaLineListVo);
} }

View File

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

View File

@@ -1,5 +1,6 @@
package com.cool.store.service; package com.cool.store.service;
import com.cool.store.context.LoginUserInfo;
import com.cool.store.entity.HyPartnerLineInfoDO; import com.cool.store.entity.HyPartnerLineInfoDO;
import com.cool.store.exception.ApiException; import com.cool.store.exception.ApiException;
import com.cool.store.request.CloseFollowRequest; import com.cool.store.request.CloseFollowRequest;
@@ -56,7 +57,7 @@ public interface HyPartnerLineInfoService {
* @param lineId * @param lineId
* @return * @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 * @param lineIdList
* @return * @return
*/ */
Boolean allocationInvestmentManager(String userId, List<Long> lineIdList); Boolean allocationInvestmentManager(LoginUserInfo user, List<Long> lineIdList);
/** /**
@@ -81,7 +82,7 @@ public interface HyPartnerLineInfoService {
* @param joinReason * @param joinReason
* @return * @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 * @param removeReason
* @return * @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 * @param closeFollowRequest
* @return * @return
*/ */
Boolean closeOrPassFollow(String userId,CloseFollowRequest closeFollowRequest); Boolean closeOrPassFollow(LoginUserInfo user,CloseFollowRequest closeFollowRequest);
/** /**
* 公海线索 * 公海线索

View File

@@ -5,8 +5,10 @@ import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.cool.store.constants.CommonConstants; import com.cool.store.constants.CommonConstants;
import com.cool.store.constants.RedisConstant; import com.cool.store.constants.RedisConstant;
import com.cool.store.context.LoginUserInfo;
import com.cool.store.dao.*; import com.cool.store.dao.*;
import com.cool.store.dto.buser.UserPositionAndUserScopeDTO; import com.cool.store.dto.buser.UserPositionAndUserScopeDTO;
import com.cool.store.dto.log.*;
import com.cool.store.dto.partner.*; import com.cool.store.dto.partner.*;
import com.cool.store.entity.*; import com.cool.store.entity.*;
import com.cool.store.enums.*; import com.cool.store.enums.*;
@@ -27,6 +29,7 @@ import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -73,6 +76,8 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
private HyPartnerBaseInfoService hyPartnerBaseInfoService; private HyPartnerBaseInfoService hyPartnerBaseInfoService;
@Resource @Resource
WorkFlowService workFlowService; WorkFlowService workFlowService;
@Resource
HyPartnerTaskInfoLogDAO hyPartnerTaskInfoLogDAO;
@Override @Override
@@ -133,17 +138,40 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
} }
@Override @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){ if (StringUtil.isBlank(userId)||lineId==null){
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
} }
HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(lineId);
hyPartnerLineInfoDAO.updateInvestmentManager(userId, Arrays.asList(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)).build();
lineLogInfo.setData(logDTO);
hyPartnerTaskInfoLogDAO.addOperateLog(lineLogInfo);
return Boolean.TRUE; return Boolean.TRUE;
} }
@Override @Override
public Boolean allocationInvestmentManager(String userId, List<Long> lineIdList) { public Boolean allocationInvestmentManager(LoginUserInfo user, List<Long> lineIdList) {
if (StringUtil.isBlank(userId)|| CollectionUtils.isEmpty(lineIdList)){ if (user==null|| CollectionUtils.isEmpty(lineIdList)){
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
} }
//加盟上线索集合 //加盟上线索集合
@@ -157,7 +185,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
closeLineList.stream().forEach(x->{ closeLineList.stream().forEach(x->{
HyPartnerLineInfoDO hyPartnerLineInfoDO = new HyPartnerLineInfoDO(); HyPartnerLineInfoDO hyPartnerLineInfoDO = new HyPartnerLineInfoDO();
hyPartnerLineInfoDO.setPartnerId(x.getPartnerId()); hyPartnerLineInfoDO.setPartnerId(x.getPartnerId());
hyPartnerLineInfoDO.setInvestmentManager(userId); hyPartnerLineInfoDO.setInvestmentManager(user.getUserId());
hyPartnerLineInfoDO.setWorkflowStage(WorkflowStageEnum.INTENT.getCode()); hyPartnerLineInfoDO.setWorkflowStage(WorkflowStageEnum.INTENT.getCode());
hyPartnerLineInfoDO.setWorkflowStatus(WorkflowStatusEnum.INTENT_0.getCode()); hyPartnerLineInfoDO.setWorkflowStatus(WorkflowStatusEnum.INTENT_0.getCode());
hyPartnerLineInfoDO.setLineStatus(1); hyPartnerLineInfoDO.setLineStatus(1);
@@ -177,8 +205,19 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
//没有结束的线索直接分配招商经理 //没有结束的线索直接分配招商经理
List<HyPartnerLineInfoDO> otherLineList = partnerLineInfoList.stream().filter(x -> x.getCloseTime() == null).collect(Collectors.toList()); List<HyPartnerLineInfoDO> otherLineList = partnerLineInfoList.stream().filter(x -> x.getCloseTime() == null).collect(Collectors.toList());
List<Long> otherLineIdList = otherLineList.stream().map(HyPartnerLineInfoDO::getId).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)).build();
lineLogInfo.setData(logDTO);
hyPartnerTaskInfoLogDAO.addOperateLog(lineLogInfo);
});
return Boolean.TRUE; return Boolean.TRUE;
} }
@@ -204,10 +243,11 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
} }
@Override @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){ if (lineId==null){
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
} }
HyPartnerLineInfoDO line = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(lineId);
//加入黑名单 阶段回到第一步待提交状态 //加入黑名单 阶段回到第一步待提交状态
HyPartnerLineInfoDO hyPartnerLineInfoDO = new HyPartnerLineInfoDO(); HyPartnerLineInfoDO hyPartnerLineInfoDO = new HyPartnerLineInfoDO();
hyPartnerLineInfoDO.setId(lineId); hyPartnerLineInfoDO.setId(lineId);
@@ -215,16 +255,26 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
hyPartnerLineInfoDO.setJoinBlackReason(joinReason); hyPartnerLineInfoDO.setJoinBlackReason(joinReason);
hyPartnerLineInfoDO.setRejectRealReason(joinReason); hyPartnerLineInfoDO.setRejectRealReason(joinReason);
hyPartnerLineInfoDO.setCloseTime(new Date()); hyPartnerLineInfoDO.setCloseTime(new Date());
hyPartnerLineInfoDO.setCloseUserId(userId); hyPartnerLineInfoDO.setCloseUserId(user.getUserId());
hyPartnerLineInfoDO.setWorkflowStage(WorkflowStageEnum.INTENT.getCode()); hyPartnerLineInfoDO.setWorkflowStage(WorkflowStageEnum.INTENT.getCode());
hyPartnerLineInfoDO.setWorkflowStatus(WorkflowStatusEnum.INTENT_0.getCode()); hyPartnerLineInfoDO.setWorkflowStatus(WorkflowStatusEnum.INTENT_0.getCode());
hyPartnerLineInfoDAO.updateByPrimaryKeySelective(hyPartnerLineInfoDO); 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)).build();
lineLogInfo.setData(logDTO);
hyPartnerTaskInfoLogDAO.addOperateLog(lineLogInfo);
return Boolean.TRUE; return Boolean.TRUE;
} }
@Override @Override
public Boolean removeBlackList(Long lineId, Integer status, String removeReason) { public Boolean removeBlackList(LoginUserInfo user,Long lineId, Integer status, String removeReason) {
//移除黑名单 黑名单线索置为删除状态 新增一条线索 //移除黑名单 黑名单线索置为删除状态 新增一条线索
if (lineId==null){ if (lineId==null){
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
@@ -249,16 +299,28 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
hyPartnerBaseInfoDO.setPartnerId(hyPartnerLineInfo.getPartnerId()); hyPartnerBaseInfoDO.setPartnerId(hyPartnerLineInfo.getPartnerId());
hyPartnerBaseInfoDO.setPartnerLineId(newHyPartnerLineInfoDO.getId()); hyPartnerBaseInfoDO.setPartnerLineId(newHyPartnerLineInfoDO.getId());
hyPartnerBaseInfoDAO.insertSelective(hyPartnerBaseInfoDO); 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)).build();
lineLogInfo.setData(logDTO);
hyPartnerTaskInfoLogDAO.addOperateLog(lineLogInfo);
return Boolean.TRUE; return Boolean.TRUE;
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Boolean closeOrPassFollow(String userId,CloseFollowRequest closeFollowRequest) { public Boolean closeOrPassFollow(LoginUserInfo user,CloseFollowRequest closeFollowRequest) {
HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(closeFollowRequest.getLineId()); HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(closeFollowRequest.getLineId());
if (hyPartnerLineInfoDO==null){ if (hyPartnerLineInfoDO==null){
throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST); throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST);
} }
String oldWorkflowStage = hyPartnerLineInfoDO.getWorkflowStage();
String oldWorkflowStatus = hyPartnerLineInfoDO.getWorkflowStatus();
//通过 //通过
if ("pass".equals(closeFollowRequest.getType())){ if ("pass".equals(closeFollowRequest.getType())){
hyPartnerLineInfoDO.setWorkflowStage(WorkflowStageEnum.RESERVATION.getCode()); hyPartnerLineInfoDO.setWorkflowStage(WorkflowStageEnum.RESERVATION.getCode());
@@ -271,7 +333,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
HyPartnerBaseInfoDO hy = hyPartnerBaseInfoDAO.getByPartnerLineId(hyPartnerLineInfoDO.getId()); HyPartnerBaseInfoDO hy = hyPartnerBaseInfoDAO.getByPartnerLineId(hyPartnerLineInfoDO.getId());
hy.setPassReason(closeFollowRequest.getPassReason()); hy.setPassReason(closeFollowRequest.getPassReason());
hy.setPassTime(new Date()); hy.setPassTime(new Date());
hy.setPassUserId(userId); hy.setPassUserId(user.getUserId());
if (CollectionUtils.isNotEmpty(closeFollowRequest.getCertifyFile())){ if (CollectionUtils.isNotEmpty(closeFollowRequest.getCertifyFile())){
hy.setCertifyFile(JSONObject.toJSONString(closeFollowRequest.getCertifyFile())); hy.setCertifyFile(JSONObject.toJSONString(closeFollowRequest.getCertifyFile()));
} }
@@ -294,7 +356,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
} }
hyPartnerLineInfoDO.setLineStatus(LineStatusEnum.PUBLIC_SEAS.getCode()); hyPartnerLineInfoDO.setLineStatus(LineStatusEnum.PUBLIC_SEAS.getCode());
hyPartnerLineInfoDO.setCloseTime(new Date()); hyPartnerLineInfoDO.setCloseTime(new Date());
hyPartnerLineInfoDO.setCloseUserId(userId); hyPartnerLineInfoDO.setCloseUserId(user.getUserId());
//各阶段单独的逻辑 //各阶段单独的逻辑
workFlowService.endProcess(WorkflowStageEnum.getWorkflowStageByCode(hyPartnerLineInfoDO.getWorkflowStage()),closeFollowRequest); workFlowService.endProcess(WorkflowStageEnum.getWorkflowStageByCode(hyPartnerLineInfoDO.getWorkflowStage()),closeFollowRequest);
} }
@@ -313,9 +375,25 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
hyPartnerLineInfoDO.setCloseTime(new Date()); hyPartnerLineInfoDO.setCloseTime(new Date());
} }
hyPartnerLineInfoDAO.updateByPrimaryKeySelective(hyPartnerLineInfoDO); 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)).build();
lineLogInfo.setData(log);
hyPartnerTaskInfoLogDAO.addOperateLog(lineLogInfo);
}
return Boolean.TRUE; return Boolean.TRUE;
} }
@Override @Override
public PageInfo<PublicSeaLineListVo> publicSeaLineList(String userId, LineRequest lineRequest) { public PageInfo<PublicSeaLineListVo> publicSeaLineList(String userId, LineRequest lineRequest) {
//确认是招商经理还是部门负责人 //确认是招商经理还是部门负责人

View File

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

View File

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