添加日志
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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 b.deleted = 0
|
||||
<if test="workflowStage!=null and workflowStage!=''">
|
||||
and hpli.workflow_stage = #{workflowStage}
|
||||
</if>
|
||||
|
||||
@@ -462,14 +462,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>
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -71,4 +71,6 @@ public class PrivateSeaLineDTO {
|
||||
|
||||
private Long interviewPlanId;
|
||||
|
||||
private Date startTime;
|
||||
|
||||
}
|
||||
|
||||
@@ -18,4 +18,6 @@ public class TransferInvestmentManagerRequest {
|
||||
|
||||
private String userId;
|
||||
|
||||
private String userName;
|
||||
|
||||
}
|
||||
|
||||
@@ -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<>();
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
|
||||
@@ -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);
|
||||
|
||||
/**
|
||||
* 公海线索
|
||||
|
||||
@@ -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
|
||||
@@ -133,17 +138,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)).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 +185,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 +205,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)).build();
|
||||
lineLogInfo.setData(logDTO);
|
||||
hyPartnerTaskInfoLogDAO.addOperateLog(lineLogInfo);
|
||||
});
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
@@ -204,10 +243,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 +255,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)).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);
|
||||
@@ -249,16 +299,28 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
|
||||
hyPartnerBaseInfoDO.setPartnerId(hyPartnerLineInfo.getPartnerId());
|
||||
hyPartnerBaseInfoDO.setPartnerLineId(newHyPartnerLineInfoDO.getId());
|
||||
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;
|
||||
}
|
||||
|
||||
@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);
|
||||
}
|
||||
String oldWorkflowStage = hyPartnerLineInfoDO.getWorkflowStage();
|
||||
String oldWorkflowStatus = hyPartnerLineInfoDO.getWorkflowStatus();
|
||||
//通过
|
||||
if ("pass".equals(closeFollowRequest.getType())){
|
||||
hyPartnerLineInfoDO.setWorkflowStage(WorkflowStageEnum.RESERVATION.getCode());
|
||||
@@ -271,7 +333,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 +356,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 +375,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)).build();
|
||||
lineLogInfo.setData(log);
|
||||
hyPartnerTaskInfoLogDAO.addOperateLog(lineLogInfo);
|
||||
}
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public PageInfo<PublicSeaLineListVo> publicSeaLineList(String userId, LineRequest lineRequest) {
|
||||
//确认是招商经理还是部门负责人
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user