|
|
@@ -161,7 +161,7 @@ public class FsStoreProductScrmServiceImpl implements IFsStoreProductScrmService
|
|
|
* @param productIds 需要删除的商品ID
|
|
|
* @return 结果
|
|
|
*/
|
|
|
-
|
|
|
+
|
|
|
@Override
|
|
|
public int deleteFsStoreProductByIds(Long[] productIds)
|
|
|
{
|
|
|
@@ -1027,4 +1027,100 @@ public class FsStoreProductScrmServiceImpl implements IFsStoreProductScrmService
|
|
|
public List<FsStoreProductActivityListVO> selectFsStoreProductByIdsAudit(String productIds) {
|
|
|
return fsStoreProductMapper.selectFsStoreProductByIdsAudit(productIds,medicalMallConfig);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public R bulkCopyFsStoreProductByIds(Long[] productIds) {
|
|
|
+ storeAuditLogUtil.addBatchAuditArray(productIds, "", "");
|
|
|
+ List<FsStoreProductScrm> list = fsStoreProductMapper.bulkCopyFsStoreProductByIds(productIds);
|
|
|
+ if(list != null && !list.isEmpty()){
|
|
|
+ for (FsStoreProductScrm product : list) {
|
|
|
+ List<FsStoreProductAttrValueScrm> param = fsStoreProductAttrValueMapper.selectFsStoreProductAttrValueByProductId(product.getProductId());
|
|
|
+ //获取店铺
|
|
|
+ FsStoreScrm store = fsStoreScrmService.selectFsStoreByStoreId(product.getStoreId());
|
|
|
+ if(store == null || 1 != store.getStatus()){
|
|
|
+ return R.error("ID为:" + product.getProductId() + "的店铺不存在或未启用");
|
|
|
+ }else{
|
|
|
+ //验证资质
|
|
|
+ switch (product.getProductType()){
|
|
|
+ case 1://非处方
|
|
|
+ break;
|
|
|
+ case 2://处方
|
|
|
+ if("".equals(store.getDrugLicense()) || LocalDate.now().isBefore(store.getDrugLicenseExpiryEnd())){
|
|
|
+ return R.error("ID为:" + product.getProductId() + "的店铺药品资质为空或已过期,请完善后再添加");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 3://食品
|
|
|
+ if("".equals(store.getFoodLicense()) || LocalDate.now().isBefore(store.getFoodLicenseExpiryEnd())){
|
|
|
+ return R.error("ID为:" + product.getProductId() + "的店铺食品资质为空或已过期,请完善后再添加");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 4://器械
|
|
|
+ if("".equals(store.getMedicalDevice3()) || LocalDate.now().isBefore(store.getMedicalDevice3ExpiryEnd())){
|
|
|
+ return R.error("ID为:" + product.getProductId() + "的店铺器械资质为空或已过期,请完善后再添加");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ return R.error("ID为:" + product.getProductId() + "的商品类型错误");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ fsStoreProductMapper.insertFsStoreProduct(product);
|
|
|
+ Long fsStoreProductId = product.getProductId();
|
|
|
+
|
|
|
+ storeAuditLogUtil.addOperLog(product.getProductId());
|
|
|
+
|
|
|
+ if (product.getSpecType().equals(0)) {
|
|
|
+ ProductArrtDTO fromatDetailDto = ProductArrtDTO.builder()
|
|
|
+ .value("规格")
|
|
|
+ .detail(ListUtil.toList("默认"))
|
|
|
+ .build();
|
|
|
+ List<ProductArrtDTO> items=new ArrayList<>();
|
|
|
+ items.add(fromatDetailDto);
|
|
|
+ param.get(0).setSku("默认");
|
|
|
+ addProductAttr(product.getProductId(),items,param);
|
|
|
+ } else {
|
|
|
+ List<FsStoreProductAttrScrm> items = fsStoreProductAttrMapper.selectFsStoreProductAttrByProductId(product.getProductId());
|
|
|
+
|
|
|
+ //清空attr
|
|
|
+ fsStoreProductAttrMapper.clear(fsStoreProductId);
|
|
|
+ //清空values
|
|
|
+ //查出商品属性所有ID;
|
|
|
+ List<FsStoreProductAttrValueScrm> attrValues=fsStoreProductAttrValueMapper.selectFsStoreProductAttrValueByProductId(fsStoreProductId);
|
|
|
+ fsStoreProductAttrValueMapper.deleteFsStoreProductAttrValueByProductId(fsStoreProductId);
|
|
|
+
|
|
|
+ //写入attr
|
|
|
+ for(FsStoreProductAttrScrm vo:items){
|
|
|
+ vo.setProductId(fsStoreProductId);
|
|
|
+ fsStoreProductAttrMapper.insertFsStoreProductAttr(vo);
|
|
|
+ }
|
|
|
+ Map<String,Object> map = new LinkedHashMap<>();
|
|
|
+ map.put("attr",items);
|
|
|
+ // map.put("value",values);
|
|
|
+
|
|
|
+ for(FsStoreProductAttrValueScrm val: param){
|
|
|
+ //更新套餐商品属性ID 获取套餐
|
|
|
+ Long id=val.getId();
|
|
|
+ if(val.getDetail()!=null){
|
|
|
+ List<String> stringList = new ArrayList<>(val.getDetail().values());
|
|
|
+ Collections.sort(stringList);
|
|
|
+ val.setSku(StrUtil.join(",",stringList));
|
|
|
+ }
|
|
|
+ val.setProductId(fsStoreProductId);
|
|
|
+ fsStoreProductAttrValueMapper.insertFsStoreProductAttrValue(val);
|
|
|
+ if(attrValues!=null && !attrValues.isEmpty()){
|
|
|
+ for(FsStoreProductAttrValueScrm attrValue:attrValues){
|
|
|
+ if(attrValue.getId().equals(id)){
|
|
|
+ fsStoreProductGroupMapper.updateProducts(attrValue.getId(),val.getId());
|
|
|
+ fsStoreProductPackageMapper.updateProducts(attrValue.getId(),val.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
}
|