| | |
| | | import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService; |
| | | import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateReqBO; |
| | | import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionTransferReqBO; |
| | | import cn.iocoder.yudao.module.crm.service.product.CrmProductService; |
| | | import cn.iocoder.yudao.module.mdm.api.item.MdmItemApi; |
| | | import cn.iocoder.yudao.module.mdm.api.item.dto.MdmItemRespDTO; |
| | | import cn.iocoder.yudao.module.system.api.user.AdminUserApi; |
| | | import com.mzt.logapi.context.LogRecordContext; |
| | | import com.mzt.logapi.service.impl.DiffParseFunction; |
| | |
| | | import java.util.Collection; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Set; |
| | | |
| | | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| | | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*; |
| | |
| | | @Resource |
| | | private CrmContactBusinessService contactBusinessService; |
| | | @Resource |
| | | private CrmProductService productService; |
| | | private MdmItemApi mdmItemApi; |
| | | |
| | | @Resource |
| | | private AdminUserApi adminUserApi; |
| | |
| | | } |
| | | |
| | | private List<CrmBusinessProductDO> validateBusinessProducts(List<CrmBusinessSaveReqVO.BusinessProduct> list) { |
| | | // 1. 校验产品存在 |
| | | productService.validProductList(convertSet(list, CrmBusinessSaveReqVO.BusinessProduct::getProductId)); |
| | | // 1. 校验物料存在 |
| | | Set<Long> itemIds = convertSet(list, CrmBusinessSaveReqVO.BusinessProduct::getProductId); |
| | | Map<Long, MdmItemRespDTO> itemMap = mdmItemApi.getItemMap(itemIds); |
| | | for (Long itemId : itemIds) { |
| | | if (itemMap.get(itemId) == null) { |
| | | throw exception(PRODUCT_NOT_EXISTS); |
| | | } |
| | | } |
| | | // 2. 转化为 CrmBusinessProductDO 列表 |
| | | return convertList(list, o -> BeanUtils.toBean(o, CrmBusinessProductDO.class, |
| | | item -> item.setTotalPrice(MoneyUtils.priceMultiply(item.getBusinessPrice(), item.getCount())))); |