|
@@ -3,10 +3,7 @@ package cn.iocoder.yudao.module.crm.service.contract;
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.collection.ListUtil;
|
|
import cn.hutool.core.collection.ListUtil;
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
-import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.ContractCreateReqVO;
|
|
|
|
-import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.ContractExportReqVO;
|
|
|
|
-import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.ContractPageReqVO;
|
|
|
|
-import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.ContractUpdateReqVO;
|
|
|
|
|
|
+import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.*;
|
|
import cn.iocoder.yudao.module.crm.convert.contract.ContractConvert;
|
|
import cn.iocoder.yudao.module.crm.convert.contract.ContractConvert;
|
|
import cn.iocoder.yudao.module.crm.dal.dataobject.contract.ContractDO;
|
|
import cn.iocoder.yudao.module.crm.dal.dataobject.contract.ContractDO;
|
|
import cn.iocoder.yudao.module.crm.dal.mysql.contract.ContractMapper;
|
|
import cn.iocoder.yudao.module.crm.dal.mysql.contract.ContractMapper;
|
|
@@ -19,6 +16,8 @@ import java.util.List;
|
|
|
|
|
|
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.crm.enums.ErrorCodeConstants.CONTRACT_NOT_EXISTS;
|
|
import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.CONTRACT_NOT_EXISTS;
|
|
|
|
+import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.CONTRACT_TRANSFER_FAIL_PERMISSION_DENIED;
|
|
|
|
+import static cn.iocoder.yudao.module.crm.framework.utils.AuthUtil.isReadAndWrite;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 合同 Service 实现类
|
|
* 合同 Service 实现类
|
|
@@ -58,10 +57,12 @@ public class ContractServiceImpl implements ContractService {
|
|
contractMapper.deleteById(id);
|
|
contractMapper.deleteById(id);
|
|
}
|
|
}
|
|
|
|
|
|
- private void validateContractExists(Long id) {
|
|
|
|
- if (contractMapper.selectById(id) == null) {
|
|
|
|
|
|
+ private ContractDO validateContractExists(Long id) {
|
|
|
|
+ ContractDO contract = contractMapper.selectById(id);
|
|
|
|
+ if (contract == null) {
|
|
throw exception(CONTRACT_NOT_EXISTS);
|
|
throw exception(CONTRACT_NOT_EXISTS);
|
|
}
|
|
}
|
|
|
|
+ return contract;
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -87,4 +88,21 @@ public class ContractServiceImpl implements ContractService {
|
|
return contractMapper.selectList(exportReqVO);
|
|
return contractMapper.selectList(exportReqVO);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public void contractTransfer(CrmContractTransferReqVO reqVO, Long userId) {
|
|
|
|
+ // 1. 校验合同是否存在
|
|
|
|
+ ContractDO contract = validateContractExists(reqVO.getId());
|
|
|
|
+ // 1.2. 校验用户是否拥有读写权限
|
|
|
|
+ if (!isReadAndWrite(contract.getRwUserIds(), userId)) {
|
|
|
|
+ throw exception(CONTRACT_TRANSFER_FAIL_PERMISSION_DENIED);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 2. 更新新的负责人
|
|
|
|
+ ContractDO updateContract = ContractConvert.INSTANCE.convert(contract, reqVO, userId);
|
|
|
|
+ contractMapper.updateById(updateContract);
|
|
|
|
+
|
|
|
|
+ // 3. TODO 记录合同转移日志
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|