|
@@ -1,26 +1,27 @@
|
|
package com.example.xiaoshiweixinback.service;
|
|
package com.example.xiaoshiweixinback.service;
|
|
|
|
|
|
-import co.elastic.clients.elasticsearch._types.aggregations.Aggregation;
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
-import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.example.xiaoshiweixinback.business.common.base.Records;
|
|
import com.example.xiaoshiweixinback.business.common.base.Records;
|
|
import com.example.xiaoshiweixinback.business.common.base.SystemFile;
|
|
import com.example.xiaoshiweixinback.business.common.base.SystemFile;
|
|
|
|
+import com.example.xiaoshiweixinback.business.utils.BatchNoUtil;
|
|
import com.example.xiaoshiweixinback.business.utils.CacheUtil;
|
|
import com.example.xiaoshiweixinback.business.utils.CacheUtil;
|
|
import com.example.xiaoshiweixinback.business.utils.LoginUtils;
|
|
import com.example.xiaoshiweixinback.business.utils.LoginUtils;
|
|
import com.example.xiaoshiweixinback.domain.AssoProductFile;
|
|
import com.example.xiaoshiweixinback.domain.AssoProductFile;
|
|
import com.example.xiaoshiweixinback.domain.Product;
|
|
import com.example.xiaoshiweixinback.domain.Product;
|
|
-import com.example.xiaoshiweixinback.domain.ProductCategory;
|
|
|
|
|
|
+import com.example.xiaoshiweixinback.domain.Ticket;
|
|
import com.example.xiaoshiweixinback.entity.dto.GetProductDTO;
|
|
import com.example.xiaoshiweixinback.entity.dto.GetProductDTO;
|
|
-import com.example.xiaoshiweixinback.entity.dto.ProductDTO;
|
|
|
|
|
|
+import com.example.xiaoshiweixinback.entity.product.ProductAddDTO;
|
|
|
|
+import com.example.xiaoshiweixinback.entity.product.ProductDTO;
|
|
import com.example.xiaoshiweixinback.entity.vo.PersonnelVO;
|
|
import com.example.xiaoshiweixinback.entity.vo.PersonnelVO;
|
|
import com.example.xiaoshiweixinback.entity.vo.ProductVO;
|
|
import com.example.xiaoshiweixinback.entity.vo.ProductVO;
|
|
import com.example.xiaoshiweixinback.mapper.ProductMapper;
|
|
import com.example.xiaoshiweixinback.mapper.ProductMapper;
|
|
import com.example.xiaoshiweixinback.service.common.FileManagerService;
|
|
import com.example.xiaoshiweixinback.service.common.FileManagerService;
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
@@ -77,7 +78,7 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> {
|
|
private void loadProduct(List<ProductVO> productVOS) {
|
|
private void loadProduct(List<ProductVO> productVOS) {
|
|
List<AssoProductFile> assoProductFiles = new ArrayList<>();
|
|
List<AssoProductFile> assoProductFiles = new ArrayList<>();
|
|
List<String> guids = new ArrayList<>();
|
|
List<String> guids = new ArrayList<>();
|
|
- if (productVOS == null||productVOS.size()==0) {
|
|
|
|
|
|
+ if (productVOS == null || productVOS.size() == 0) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
List<Integer> ids = productVOS.stream().map(ProductVO::getId).collect(Collectors.toList());
|
|
List<Integer> ids = productVOS.stream().map(ProductVO::getId).collect(Collectors.toList());
|
|
@@ -118,6 +119,44 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ public Integer addOrUpdateProduct(ProductAddDTO productAddDTO) {
|
|
|
|
+ Product product = new Product();
|
|
|
|
+ if (productAddDTO.getId() == null) {
|
|
|
|
+ product = this.addProduct(productAddDTO);
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ product = this.updateProduct(productAddDTO);
|
|
|
|
+ }
|
|
|
|
+ assoProductFileService.addOrUpdateProductFile(product.getId(), productAddDTO.getFileGuids());
|
|
|
|
+ return product.getId();
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ public Product addProduct(ProductAddDTO productAddDTO) {
|
|
|
|
+ Product product = new Product();
|
|
|
|
+ BeanUtils.copyProperties(productAddDTO, product);
|
|
|
|
+ PersonnelVO personnelVO = cacheUtil.getLoginUser(loginUtils.getId());
|
|
|
|
+ product.setCreateId(personnelVO.getUuid());
|
|
|
|
+ product.setIfCustomized(true);
|
|
|
|
+ product.insert();
|
|
|
|
+ return product;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ public Product updateProduct(ProductAddDTO productAddDTO) {
|
|
|
|
+ Product product = new Product();
|
|
|
|
+ product=this.getById(productAddDTO.getId());
|
|
|
|
+ product.setName(productAddDTO.getName());
|
|
|
|
+ product.setDescription(productAddDTO.getDescription());
|
|
|
|
+ product.setSearchCondition(productAddDTO.getSearchCondition());
|
|
|
|
+ product.setSellPlatform(productAddDTO.getSellPlatform());
|
|
|
|
+ product.setSourceFrom(productAddDTO.getSourceFrom());
|
|
|
|
+ product.updateById();
|
|
|
|
+ return product;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|