From 255e304fd3969026e92dff51e8796e04b1f34403 Mon Sep 17 00:00:00 2001 From: Gauthier LO Date: Fri, 4 Aug 2023 12:43:45 +0200 Subject: [PATCH] feature: product list page with editing feature --- .../controller/admin/ProductController.java | 13 +++++++++++++ .../modules/business/mapper/ProductMapper.java | 5 ++++- .../business/mapper/xml/ProductMapper.xml | 14 +++++++++++++- .../business/service/IProductService.java | 3 ++- .../service/impl/ProductServiceImpl.java | 7 ++++++- .../jeecg/modules/business/vo/ProductsParam.java | 16 ++++++++++++++++ 6 files changed, 54 insertions(+), 4 deletions(-) create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/ProductsParam.java diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/ProductController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/ProductController.java index 888e1df0a..8d5053d1d 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/ProductController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/ProductController.java @@ -10,6 +10,7 @@ import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.jeecg.modules.business.vo.ProductsParam; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.entity.ExportParams; @@ -260,4 +261,16 @@ public class ProductController { return Result.OK("文件导入失败!"); } + @PostMapping(value="/editBatch") + public Result editBatch(@RequestBody ProductsParam productsParam) { + List products = new ArrayList<>(); + for(String id : productsParam.getIds()) { + Product product = new Product(); + product.setId(id); + product.setWeight(productsParam.getWeight()); + products.add(product); + } + productService.updateWeightBatch(products); + return Result.ok("Updated all products"); + } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/ProductMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/ProductMapper.java index a751c136a..500531aa1 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/ProductMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/ProductMapper.java @@ -1,8 +1,11 @@ package org.jeecg.modules.business.mapper; +import org.apache.ibatis.annotations.Param; import org.jeecg.modules.business.entity.Product; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import java.util.List; + /** * @Description: 商品 * @Author: jeecg-boot @@ -10,5 +13,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; * @Version: V1.0 */ public interface ProductMapper extends BaseMapper { - + void updateWeightBatch(@Param("products") List product); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/ProductMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/ProductMapper.xml index b2649cc11..66a49fb3c 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/ProductMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/ProductMapper.xml @@ -1,5 +1,17 @@ - + + UPDATE product p + SET p.update_time = NOW(), + weight = case id + + when #{item.id} then #{item.weight} + + end + where id in + + #{item.id} + + \ No newline at end of file diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IProductService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IProductService.java index 477ef6a21..007474bac 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IProductService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IProductService.java @@ -36,5 +36,6 @@ public interface IProductService extends IService { * 批量删除一对多 */ public void delBatchMain (Collection idList); - + + public void updateWeightBatch (List productList); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/ProductServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/ProductServiceImpl.java index b2a35aca8..2e5b60050 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/ProductServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/ProductServiceImpl.java @@ -73,5 +73,10 @@ public class ProductServiceImpl extends ServiceImpl impl productMapper.deleteById(id); } } - + + @Override + @Transactional + public void updateWeightBatch (List productList) { + productMapper.updateWeightBatch(productList); + } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/ProductsParam.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/ProductsParam.java new file mode 100644 index 000000000..8a681ea73 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/ProductsParam.java @@ -0,0 +1,16 @@ +package org.jeecg.modules.business.vo; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.List; + +public class ProductsParam { + private final List ids; + private final int weight; + public ProductsParam(@JsonProperty("ids") List ids, @JsonProperty("weight") int weight){ + this.ids = ids; + this.weight = weight; + } + public List getIds() { return ids; } + public int getWeight() { return weight; } +}