Browse Source

1.商家端商品平台分类设置改为非必填 2.平台端新增商品平台分类设置功能业务

multiwx
dy-hu 11 months ago
parent
commit
090d470098
  1. 16
      cereshop-admin/src/main/java/com/shop/cereshop/admin/controller/CanvasController.java
  2. 2
      cereshop-admin/src/main/java/com/shop/cereshop/admin/dao/product/CereShopProductDAO.java
  3. 31
      cereshop-admin/src/main/java/com/shop/cereshop/admin/page/product/ProductClassSetParam.java
  4. 10
      cereshop-admin/src/main/java/com/shop/cereshop/admin/page/product/ShopProduct.java
  5. 7
      cereshop-admin/src/main/java/com/shop/cereshop/admin/service/product/CereShopProductService.java
  6. 7
      cereshop-admin/src/main/java/com/shop/cereshop/admin/service/product/impl/CereProductClassifyServiceImpl.java
  7. 22
      cereshop-admin/src/main/java/com/shop/cereshop/admin/service/product/impl/CereShopProductServiceImpl.java
  8. 6
      cereshop-admin/src/main/resources/mybatis/mapper/product/CereShopProductDAO.xml
  9. 2
      cereshop-business/src/main/java/com/shop/cereshop/business/param/product/ProductSaveParam.java
  10. 5
      cereshop-business/src/main/resources/mybatis/mapper/product/CereShopProductDAO.xml
  11. 3
      doc/3.0/update.sql

16
cereshop-admin/src/main/java/com/shop/cereshop/admin/controller/CanvasController.java

@ -381,4 +381,20 @@ public class CanvasController {
return new Result(result);
}
/**
* 设置商品平台分类
* @param param
* @return
*/
@PostMapping(value = "setProdClass")
@NoRepeatSubmit
@ApiOperation(value = "设置商品平台分类")
@NoRepeatWebLog
public Result setProdClass(@RequestBody ProductClassSetParam param, HttpServletRequest request) throws CoBusinessException{
//获取当前登录账户
CerePlatformUser user = (CerePlatformUser) request.getAttribute("user");
cereShopProductService.setProdClass(param);
return new Result(user.getUsername(),"设置商品平台分类", GsonUtil.objectToGson(param));
}
}

2
cereshop-admin/src/main/java/com/shop/cereshop/admin/dao/product/CereShopProductDAO.java

@ -54,4 +54,6 @@ public interface CereShopProductDAO extends BaseMapper<CereShopProduct> {
List<Long> findProudctIdListByShopId(Long shopId);
List<CereSkuName> findSkuNameListByProductId(Long productId);
int updateProdClass(Long prodId, Long classId);
}

31
cereshop-admin/src/main/java/com/shop/cereshop/admin/page/product/ProductClassSetParam.java

@ -0,0 +1,31 @@
/*
* Copyright (C) 2017-2021
* All rights reserved, Designed By 深圳中科鑫智科技有限公司
* Copyright authorization contact 18814114118
*/
package com.shop.cereshop.admin.page.product;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 设置商品平台分类
*/
@Data
@ApiModel(value = "ProductClassSetParam", description = "设置商品平台分类")
public class ProductClassSetParam {
/**
* 商品id
*/
@ApiModelProperty(value = "商品id")
private Long productId;
/**
* 平台分类id
*/
@ApiModelProperty(value = "平台分类id")
private Long classId;
}

10
cereshop-admin/src/main/java/com/shop/cereshop/admin/page/product/ShopProduct.java

@ -5,6 +5,7 @@
*/
package com.shop.cereshop.admin.page.product;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -96,4 +97,13 @@ public class ShopProduct {
@ApiModelProperty(value = "品牌id")
private Long brandId;
/**
* 关联分类id
*/
@ApiModelProperty(value = "关联分类id")
private Long classifyId;
@TableField(exist = false)
private String classifyName;
}

7
cereshop-admin/src/main/java/com/shop/cereshop/admin/service/product/CereShopProductService.java

@ -5,10 +5,7 @@
*/
package com.shop.cereshop.admin.service.product;
import com.shop.cereshop.admin.page.product.ProductDetail;
import com.shop.cereshop.admin.page.product.ProductExamineParam;
import com.shop.cereshop.admin.page.product.ProductExportDTO;
import com.shop.cereshop.admin.page.product.ProductUpdateParam;
import com.shop.cereshop.admin.page.product.*;
import com.shop.cereshop.admin.param.product.CanvasAdminProductParam;
import com.shop.cereshop.admin.param.product.ProductGetAllParam;
import com.shop.cereshop.commons.domain.common.Page;
@ -40,4 +37,6 @@ public interface CereShopProductService {
Integer activityStock, Integer totalStock, long millSeconds);
List<ProductExportDTO> getExportList(ProductGetAllParam param);
void setProdClass(ProductClassSetParam param) throws CoBusinessException;
}

7
cereshop-admin/src/main/java/com/shop/cereshop/admin/service/product/impl/CereProductClassifyServiceImpl.java

@ -289,11 +289,16 @@ public class CereProductClassifyServiceImpl implements CereProductClassifyServic
classifyIdList.addAll(classifies.stream().map(CereProductClassify::getClassifyId).collect(Collectors.toList()));
for (CereProductClassify a : classifies) {
//查询所有三级分类
a.setChilds(cereProductClassifyDAO.findByPid(a.getClassifyId()));
List<CereProductClassify> thirdClassList = cereProductClassifyDAO.findByPid(a.getClassifyId());
if (ObjectUtil.isNotEmpty(thirdClassList)){
a.setChilds(thirdClassList);
classifyIdList.addAll(a.getChilds().stream().map(CereProductClassify::getClassifyId).collect(Collectors.toList()));
}
}
if (ObjectUtil.isNotEmpty(classifies)){
classify.setChilds(classifies);
}
}
if(ObjectUtil.isNotEmpty(classifyIdList)) {
classifyIdList = classifyIdList.stream().filter(item -> item != null && item > 0).distinct().collect(Collectors.toList());

22
cereshop-admin/src/main/java/com/shop/cereshop/admin/service/product/impl/CereShopProductServiceImpl.java

@ -5,6 +5,7 @@
*/
package com.shop.cereshop.admin.service.product.impl;
import cn.hutool.core.util.ObjectUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.shop.cereshop.admin.dao.brand.BrandDAO;
@ -15,6 +16,7 @@ import com.shop.cereshop.admin.param.product.ProductGetAllParam;
import com.shop.cereshop.admin.redis.service.api.StringRedisService;
import com.shop.cereshop.admin.service.log.CerePlatformLogService;
import com.shop.cereshop.admin.service.order.CereShopOrderService;
import com.shop.cereshop.admin.service.product.CereProductClassifyService;
import com.shop.cereshop.admin.service.product.CereProductImageService;
import com.shop.cereshop.admin.service.product.CereProductSkuService;
import com.shop.cereshop.admin.service.product.CereShopProductService;
@ -25,6 +27,7 @@ import com.shop.cereshop.commons.constant.RefreshSkuRealInfoSourceEnum;
import com.shop.cereshop.commons.domain.brand.Brand;
import com.shop.cereshop.commons.domain.common.Page;
import com.shop.cereshop.commons.domain.express.HttpResult;
import com.shop.cereshop.commons.domain.product.CereProductClassify;
import com.shop.cereshop.commons.domain.product.CereProductSku;
import com.shop.cereshop.commons.domain.product.CereShopProduct;
import com.shop.cereshop.commons.domain.product.CereSkuName;
@ -74,6 +77,9 @@ public class CereShopProductServiceImpl implements CereShopProductService {
@Autowired
private CereShopOrderService cereShopOrderService;
@Autowired
private CereProductClassifyService classifyService;
@Override
public Page getProducts(CanvasAdminProductParam param) throws CoBusinessException,Exception {
PageHelper.startPage(param.getPage(),param.getPageSize());
@ -124,6 +130,17 @@ public class CereShopProductServiceImpl implements CereShopProductService {
public Page getAll(ProductGetAllParam param) throws CoBusinessException {
PageHelper.startPage(param.getPage(),param.getPageSize());
List<ShopProduct> list=cereShopProductDAO.getAll(param);
list.forEach(shopProduct -> {
CereProductClassify classify = null;
try {
classify = classifyService.getById(shopProduct.getClassifyId());
} catch (CoBusinessException e) {
e.printStackTrace();
}
if (ObjectUtil.isNotEmpty(classify)){
shopProduct.setClassifyName(classify.getClassifyName());
}
});
PageInfo<ShopProduct> pageInfo=new PageInfo<>(list);
return new Page(pageInfo.getList(),pageInfo.getTotal());
}
@ -327,4 +344,9 @@ public class CereShopProductServiceImpl implements CereShopProductService {
stringRedisService.set(skuTotalStockKey, sku.getTotal());
}
}
@Override
public void setProdClass(ProductClassSetParam param) throws CoBusinessException {
cereShopProductDAO.updateProdClass(param.getProductId(), param.getClassId());
}
}

6
cereshop-admin/src/main/resources/mybatis/mapper/product/CereShopProductDAO.xml

@ -409,7 +409,7 @@
<select id="getAll" parameterType="com.shop.cereshop.admin.param.product.ProductGetAllParam" resultType="com.shop.cereshop.admin.page.product.ShopProduct">
SELECT a.product_id,a.product_name,c.price,concat('¥',c.price,'~¥',d.price) sectionPrice,
IF(f.image IS NULL OR f.image='',b.product_image,f.image) image,e.shop_name,
c.stock_number,a.shelve_state,a.fictitious_number,a.create_time,g.volume from cere_shop_product a
c.stock_number,a.shelve_state,a.fictitious_number,a.create_time,g.volume,a.classify_id from cere_shop_product a
LEFT JOIN (SELECT a.product_id,a.product_image from cere_product_image a,
cere_shop_product b where a.product_id=b.product_id GROUP BY a.product_id) b ON a.product_id=b.product_id
LEFT JOIN (SELECT a.product_id,a.sku_id,MIN(a.price) price,
@ -470,4 +470,8 @@
from cere_sku_name a join cere_product_sku b on a.sku_id = b.sku_id
where b.product_id = #{productId}
</select>
<update id="updateProdClass">
update cere_shop_product set classify_id = #{classId} where product_id = #{prodId}
</update>
</mapper>

2
cereshop-business/src/main/java/com/shop/cereshop/business/param/product/ProductSaveParam.java

@ -60,7 +60,7 @@ public class ProductSaveParam {
* 关联分类id
*/
@ApiModelProperty(value = "关联分类id")
@NotNull(message = "分类不能为空")
// @NotNull(message = "分类不能为空")
private Long classifyId;
/**

5
cereshop-business/src/main/resources/mybatis/mapper/product/CereShopProductDAO.xml

@ -69,9 +69,10 @@
<if test="shopGroupId != null">
shop_group_id = #{shopGroupId,jdbcType=BIGINT},
</if>
<if test="classifyId != null">
<!-- <if test="classifyId != null">
classify_id = #{classifyId,jdbcType=BIGINT},
</if>-->
classify_id = #{classifyId,jdbcType=BIGINT},
</if>
<if test="shopGroupBusinessId != null">
shop_group_business_id = #{shopGroupBusinessId,jdbcType=BIGINT},
</if>

3
doc/3.0/update.sql

@ -282,3 +282,6 @@ ALTER TABLE `cere_shop_product` MODIFY COLUMN `supplier_name` varchar(100) DEFAU
ALTER TABLE `cere_shop_product_lang_info` MODIFY COLUMN `product_name` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品名称';
ALTER TABLE `cere_shop_product_lang_info` MODIFY COLUMN `product_brief` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '卖点简介';
#商品平台端分类改为非必填
ALTER TABLE `cere_shop_product` MODIFY COLUMN `classify_id` bigint DEFAULT NULL COMMENT '关联分类id';
Loading…
Cancel
Save