Commit 72f35ef0 authored by yanghao's avatar yanghao

chore: 客户更新 更新时可更新多条

parent 45923591
package cn.iocoder.yudao.module.customer.service.customerFollowup; package cn.iocoder.yudao.module.customer.service.customerFollowup;
import java.text.MessageFormat; import cn.hutool.core.collection.CollectionUtil;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.*;
import javax.annotation.Resource;
import cn.iocoder.yudao.framework.apollo.core.event.OrderNumberLogEvent; import cn.iocoder.yudao.framework.apollo.core.event.OrderNumberLogEvent;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.code.CodeUtils; import cn.iocoder.yudao.framework.common.util.code.CodeUtils;
import cn.iocoder.yudao.framework.i18n.core.I18nMessage; import cn.iocoder.yudao.framework.i18n.core.I18nMessage;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.service.AbstractService;
import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils;
import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO;
import cn.iocoder.yudao.framework.security.core.LoginUser; import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.customer.convert.customerFollowup.CustomerFollowupConvert;
import cn.iocoder.yudao.module.customer.dal.dataobject.customer.CustomerDO; import cn.iocoder.yudao.module.customer.dal.dataobject.customer.CustomerDO;
import cn.iocoder.yudao.module.customer.dal.dataobject.customerContacts.CustomerContactsDO; import cn.iocoder.yudao.module.customer.dal.dataobject.customerContacts.CustomerContactsDO;
import cn.iocoder.yudao.module.customer.dal.dataobject.customerFollowup.CustomerFollowupDO;
import cn.iocoder.yudao.module.customer.dal.mysql.customer.CustomerMapper; import cn.iocoder.yudao.module.customer.dal.mysql.customer.CustomerMapper;
import cn.iocoder.yudao.module.customer.dal.mysql.customerContacts.CustomerContactsMapper; import cn.iocoder.yudao.module.customer.dal.mysql.customerContacts.CustomerContactsMapper;
import cn.iocoder.yudao.module.customer.dal.mysql.customerFollowup.CustomerFollowupMapper;
import cn.iocoder.yudao.module.customer.enums.ErrorCodeConstants; import cn.iocoder.yudao.module.customer.enums.ErrorCodeConstants;
import cn.iocoder.yudao.module.customer.service.customerOperateLog.CustomerOperateLogService; import cn.iocoder.yudao.module.customer.service.customerOperateLog.CustomerOperateLogService;
import cn.iocoder.yudao.module.customer.vo.customerFollowup.CustomerFollowupCreateReqVO;
import cn.iocoder.yudao.module.customer.vo.customerFollowup.CustomerFollowupQueryVO;
import cn.iocoder.yudao.module.customer.vo.customerFollowup.CustomerFollowupUpdateReqVO;
import cn.iocoder.yudao.module.customer.vo.customerFollowup.CustomerFollowupUpdateStatusReqVO;
import cn.iocoder.yudao.module.customer.vo.customerOperateLog.CustomerOperateLogCreateReqVO; import cn.iocoder.yudao.module.customer.vo.customerOperateLog.CustomerOperateLogCreateReqVO;
import cn.iocoder.yudao.module.ecw.enums.CustomerFollowupStatusEnum; import cn.iocoder.yudao.module.ecw.enums.CustomerFollowupStatusEnum;
import cn.iocoder.yudao.module.ecw.enums.CustomerOperateTypeEnum; import cn.iocoder.yudao.module.ecw.enums.CustomerOperateTypeEnum;
...@@ -29,15 +32,15 @@ import org.springframework.context.ApplicationContext; ...@@ -29,15 +32,15 @@ import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO;
import cn.iocoder.yudao.framework.mybatis.core.service.AbstractService; import javax.annotation.Resource;
import cn.iocoder.yudao.module.customer.vo.customerFollowup.*; import java.util.ArrayList;
import cn.iocoder.yudao.module.customer.dal.dataobject.customerFollowup.CustomerFollowupDO; import java.util.Collection;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import java.util.List;
import cn.iocoder.yudao.module.customer.convert.customerFollowup.CustomerFollowupConvert;
import cn.iocoder.yudao.module.customer.dal.mysql.customerFollowup.CustomerFollowupMapper;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.customer.enums.ErrorCodeConstants.*; import static cn.iocoder.yudao.module.customer.enums.ErrorCodeConstants.FOLLOWUP_ALREADY_SUBMITTED;
import static cn.iocoder.yudao.module.customer.enums.ErrorCodeConstants.FOLLOWUP_NOT_EXISTS;
/** /**
* 客户跟进 Service 实现类 * 客户跟进 Service 实现类
...@@ -194,42 +197,58 @@ public class CustomerFollowupServiceImpl extends AbstractService<CustomerFollowu ...@@ -194,42 +197,58 @@ public class CustomerFollowupServiceImpl extends AbstractService<CustomerFollowu
@Override @Override
public void updateFollowupStatus(CustomerFollowupUpdateStatusReqVO updateStatusReqVO) { public void updateFollowupStatus(CustomerFollowupUpdateStatusReqVO updateStatusReqVO) {
Long id = updateStatusReqVO.getId(); Long updateId = updateStatusReqVO.getId();
CustomerFollowupDO customerFollowupDO = followupMapper.selectById(id); List<Long> ids = updateStatusReqVO.getIds();
if (customerFollowupDO == null) {
throw exception(FOLLOWUP_NOT_EXISTS);
}
if (CustomerFollowupStatusEnum.Commited.getValue().equals(customerFollowupDO.getStatus())) { List<Long> idList = new ArrayList<>();
throw exception(FOLLOWUP_ALREADY_SUBMITTED); // id + ids 到idList
if (updateId!= null) {
idList.add(updateId);
}
if (CollectionUtil.isNotEmpty(ids)) {
idList.addAll(ids);
} }
customerFollowupDO.setStatus(updateStatusReqVO.getStatus()); for (Long id : idList) {
followupMapper.updateById(customerFollowupDO); CustomerFollowupDO customerFollowupDO = followupMapper.selectById(id);
if (customerFollowupDO == null) {
throw exception(FOLLOWUP_NOT_EXISTS);
}
Long customerId = customerFollowupDO.getCustomerId(); if (CustomerFollowupStatusEnum.Commited.getValue().equals(customerFollowupDO.getStatus())) {
if (customerId != null) { throw exception(FOLLOWUP_ALREADY_SUBMITTED);
CustomerDO customer = customerMapper.selectById(customerId); }
if (customer != null) { }
// 插入日志 for (Long id : idList) {
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); CustomerFollowupDO customerFollowupDO = followupMapper.selectById(id);
//保存客户捞取记录
CustomerOperateLogCreateReqVO customerOperateLogCreateReqVO = new CustomerOperateLogCreateReqVO() customerFollowupDO.setStatus(updateStatusReqVO.getStatus());
.setOperator(loginUser == null ? null : loginUser.getId()) followupMapper.updateById(customerFollowupDO);
.setOperatorName(loginUser == null ? null : loginUser.getNickname())
.setCustomerId(customer.getId())
.setNumber(customer.getNumber()) Long customerId = customerFollowupDO.getCustomerId();
.setName(customer.getName()) if (customerId != null) {
.setNewCustomerService(customer.getCustomerService()) CustomerDO customer = customerMapper.selectById(customerId);
.setOldCustomerService(customer.getCustomerService()) if (customer != null) {
.setOldEstimateEnterOpenSeaTime(customer.getEstimateEnterOpenSeaTime())
.setNewEstimateEnterOpenSeaTime(customer.getEstimateEnterOpenSeaTime()) // 插入日志
.setOperateType(CustomerOperateTypeEnum.FOLLOWUP_COMMIT.getValue()) LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
.setRemark("提交跟进纪录"); //保存客户捞取记录
customerOperateLogService.createOperateLog(customerOperateLogCreateReqVO); CustomerOperateLogCreateReqVO customerOperateLogCreateReqVO = new CustomerOperateLogCreateReqVO()
.setOperator(loginUser == null ? null : loginUser.getId())
.setOperatorName(loginUser == null ? null : loginUser.getNickname())
.setCustomerId(customer.getId())
.setNumber(customer.getNumber())
.setName(customer.getName())
.setNewCustomerService(customer.getCustomerService())
.setOldCustomerService(customer.getCustomerService())
.setOldEstimateEnterOpenSeaTime(customer.getEstimateEnterOpenSeaTime())
.setNewEstimateEnterOpenSeaTime(customer.getEstimateEnterOpenSeaTime())
.setOperateType(CustomerOperateTypeEnum.FOLLOWUP_COMMIT.getValue())
.setRemark("提交跟进纪录");
customerOperateLogService.createOperateLog(customerOperateLogCreateReqVO);
}
} }
} }
} }
......
...@@ -7,6 +7,7 @@ import lombok.EqualsAndHashCode; ...@@ -7,6 +7,7 @@ import lombok.EqualsAndHashCode;
import lombok.ToString; import lombok.ToString;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.List;
@ApiModel("管理后台 - 客户跟进更新状态 Request VO") @ApiModel("管理后台 - 客户跟进更新状态 Request VO")
@Data @Data
...@@ -17,6 +18,11 @@ public class CustomerFollowupUpdateStatusReqVO { ...@@ -17,6 +18,11 @@ public class CustomerFollowupUpdateStatusReqVO {
@NotNull(message = "主键不能为空") @NotNull(message = "主键不能为空")
private Long id; private Long id;
//ids
@ApiModelProperty(value = "主键列表", required = true)
@NotNull(message = "主键列表不能为空")
private List<Long> ids;
@ApiModelProperty(value = "状态 字典customer_followup_status") @ApiModelProperty(value = "状态 字典customer_followup_status")
private Integer status; private Integer status;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment