diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/dao/GoodsAllinone.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/dao/GoodsAllinone.java index baa468c9..b085f144 100644 --- a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/dao/GoodsAllinone.java +++ b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/dao/GoodsAllinone.java @@ -10,17 +10,17 @@ public class GoodsAllinone { LitemallGoodsSpecification[] specifications; LitemallGoodsAttribute[] attributes; // 这里采用 Product 再转换到 LitemallProduct - Product[] products; + LitemallProduct[] products; public LitemallGoods getGoods() { return goods; } - public Product[] getProducts() { + public LitemallProduct[] getProducts() { return products; } - public void setProducts(Product[] products) { + public void setProducts(LitemallProduct[] products) { this.products = products; } diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminCategoryController.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminCategoryController.java index 4444ee68..b2a350af 100644 --- a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminCategoryController.java +++ b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminCategoryController.java @@ -93,42 +93,13 @@ public class AdminCategoryController { // 所有一级分类目录 List l1CatList = categoryService.queryL1(); - HashMap data = new HashMap<>(l1CatList.size()); + List> data = new ArrayList<>(l1CatList.size()); for(LitemallCategory category : l1CatList){ - data.put(category.getId(), category.getName()); + Map d = new HashMap<>(2); + d.put("value", category.getId()); + d.put("label", category.getName()); + data.add(d); } return ResponseUtil.ok(data); } - - - - @GetMapping("/list2") - public Object list2(@LoginAdmin Integer adminId) { - if (adminId == null) { - return ResponseUtil.unlogin(); - } - - List l1CatList = categoryService.queryL1(); - List list = new ArrayList<>(l1CatList.size()); - - for(LitemallCategory l1 : l1CatList){ - CatVo l1CatVo = new CatVo(); - l1CatVo.setValue(l1.getId()); - l1CatVo.setLabel(l1.getName()); - - List l2CatList = categoryService.queryByPid(l1.getId()); - List children = new ArrayList<>(l2CatList.size()); - for(LitemallCategory l2 : l2CatList) { - CatVo l2CatVo = new CatVo(); - l2CatVo.setValue(l2.getId()); - l2CatVo.setLabel(l2.getName()); - children.add(l2CatVo); - } - l1CatVo.setChildren(children); - - list.add(l1CatVo); - } - return ResponseUtil.ok(list); - } - } diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminGoodsAttributeController.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminGoodsAttributeController.java deleted file mode 100644 index 6a5745c6..00000000 --- a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminGoodsAttributeController.java +++ /dev/null @@ -1,84 +0,0 @@ -package org.linlinjava.litemall.admin.web; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.linlinjava.litemall.admin.annotation.LoginAdmin; -import org.linlinjava.litemall.db.domain.LitemallGoodsAttribute; -import org.linlinjava.litemall.db.service.LitemallGoodsAttributeService; -import org.linlinjava.litemall.core.util.ResponseUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@RestController -@RequestMapping("/admin/goods-attribute") -public class AdminGoodsAttributeController { - private final Log logger = LogFactory.getLog(AdminGoodsAttributeController.class); - - @Autowired - private LitemallGoodsAttributeService goodsAttributeService; - - @GetMapping("/list") - public Object list(@LoginAdmin Integer adminId, - Integer goodsId, - @RequestParam(value = "page", defaultValue = "1") Integer page, - @RequestParam(value = "limit", defaultValue = "10") Integer limit, - String sort, String order){ - if(adminId == null){ - return ResponseUtil.unlogin(); - } - - List goodsAttributeList = goodsAttributeService.querySelective(goodsId, page, limit, sort, order); - int total = goodsAttributeService.countSelective(goodsId, page, limit, sort, order); - Map data = new HashMap<>(); - data.put("total", total); - data.put("items", goodsAttributeList); - - return ResponseUtil.ok(data); - } - - @PostMapping("/create") - public Object create(@LoginAdmin Integer adminId, @RequestBody LitemallGoodsAttribute goodsAttribute){ - if(adminId == null){ - return ResponseUtil.unlogin(); - } - goodsAttributeService.add(goodsAttribute); - return ResponseUtil.ok(goodsAttribute); - } - - @GetMapping("/read") - public Object read(@LoginAdmin Integer adminId, Integer id){ - if(adminId == null){ - return ResponseUtil.unlogin(); - } - - if(id == null){ - return ResponseUtil.badArgument(); - } - - LitemallGoodsAttribute goodsAttribute = goodsAttributeService.findById(id); - return ResponseUtil.ok(goodsAttribute); - } - - @PostMapping("/update") - public Object update(@LoginAdmin Integer adminId, @RequestBody LitemallGoodsAttribute goodsAttribute){ - if(adminId == null){ - return ResponseUtil.unlogin(); - } - goodsAttributeService.updateById(goodsAttribute); - return ResponseUtil.ok(goodsAttribute); - } - - @PostMapping("/delete") - public Object delete(@LoginAdmin Integer adminId, @RequestBody LitemallGoodsAttribute goodsAttribute){ - if(adminId == null){ - return ResponseUtil.unlogin(); - } - goodsAttributeService.deleteById(goodsAttribute.getId()); - return ResponseUtil.ok(); - } - -} diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminGoodsController.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminGoodsController.java index d4bcb58b..f58806a1 100644 --- a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminGoodsController.java +++ b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminGoodsController.java @@ -6,15 +6,10 @@ import org.apache.commons.logging.LogFactory; import org.linlinjava.litemall.admin.annotation.LoginAdmin; import org.linlinjava.litemall.admin.dao.GoodsAllinone; import org.linlinjava.litemall.admin.dao.Product; -import org.linlinjava.litemall.db.domain.LitemallGoods; -import org.linlinjava.litemall.db.domain.LitemallGoodsAttribute; -import org.linlinjava.litemall.db.domain.LitemallGoodsSpecification; -import org.linlinjava.litemall.db.domain.LitemallProduct; -import org.linlinjava.litemall.db.service.LitemallGoodsAttributeService; -import org.linlinjava.litemall.db.service.LitemallGoodsService; +import org.linlinjava.litemall.admin.util.CatVo; +import org.linlinjava.litemall.db.domain.*; +import org.linlinjava.litemall.db.service.*; import org.linlinjava.litemall.core.util.ResponseUtil; -import org.linlinjava.litemall.db.service.LitemallGoodsSpecificationService; -import org.linlinjava.litemall.db.service.LitemallProductService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.TransactionDefinition; @@ -24,10 +19,7 @@ import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.time.LocalDateTime; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; @RestController @RequestMapping("/admin/goods") @@ -45,6 +37,10 @@ public class AdminGoodsController { private LitemallGoodsAttributeService attributeService; @Autowired private LitemallProductService productService; + @Autowired + private LitemallCategoryService categoryService; + @Autowired + private LitemallBrandService brandService; @GetMapping("/list") public Object list(@LoginAdmin Integer adminId, @@ -65,49 +61,19 @@ public class AdminGoodsController { return ResponseUtil.ok(data); } - @PostMapping("/create") - public Object create(@LoginAdmin Integer adminId, @RequestBody LitemallGoods goods){ - if(adminId == null){ - return ResponseUtil.unlogin(); - } - goodsService.add(goods); - return ResponseUtil.ok(goods); - } - - @GetMapping("/read") - public Object read(@LoginAdmin Integer adminId, Integer id){ - if(adminId == null){ - return ResponseUtil.unlogin(); - } - - if(id == null){ - return ResponseUtil.badArgument(); - } - - LitemallGoods goods = goodsService.findById(id); - return ResponseUtil.ok(goods); - } - + /* + * TODO + * 目前商品修改的逻辑是 + * 1. 更新litemall_goods表 + * 2. 逻辑删除litemall_goods_specification、litemall_goods_attribute、litemall_product + * 3. 添加litemall_goods_specification、litemall_goods_attribute、litemall_product + * + * 这里商品三个表的数据采用删除再跟新的策略是因为 + * 商品编辑页面,管理员可以添加删除商品规格、添加删除商品属性,因此这里仅仅更新表是不可能的, + * 因此这里只能删除所有旧的数据,然后添加新的数据 + */ @PostMapping("/update") - public Object update(@LoginAdmin Integer adminId, @RequestBody LitemallGoods goods){ - if(adminId == null){ - return ResponseUtil.unlogin(); - } - goodsService.updateById(goods); - return ResponseUtil.ok(goods); - } - - @PostMapping("/delete") - public Object delete(@LoginAdmin Integer adminId, @RequestBody LitemallGoods goods){ - if(adminId == null){ - return ResponseUtil.unlogin(); - } - goodsService.deleteById(goods.getId()); - return ResponseUtil.ok(); - } - - @PostMapping("/publish") - public Object publish(@LoginAdmin Integer adminId, @RequestBody GoodsAllinone goodsAllinone){ + public Object update(@LoginAdmin Integer adminId, @RequestBody GoodsAllinone goodsAllinone){ if(adminId == null){ return ResponseUtil.unlogin(); } @@ -115,7 +81,88 @@ public class AdminGoodsController { LitemallGoods goods = goodsAllinone.getGoods(); LitemallGoodsAttribute[] attributes = goodsAllinone.getAttributes(); LitemallGoodsSpecification[] specifications = goodsAllinone.getSpecifications(); - Product[] products = goodsAllinone.getProducts(); + LitemallProduct[] products = goodsAllinone.getProducts(); + + // 开启事务管理 + DefaultTransactionDefinition def = new DefaultTransactionDefinition(); + def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); + TransactionStatus status = txManager.getTransaction(def); + try { + + // 商品基本信息表litemall_goods + goodsService.updateById(goods); + + Integer gid = goods.getId(); + specificationService.deleteByGid(gid); + attributeService.deleteByGid(gid); + productService.deleteByGid(gid); + + // 商品规格表litemall_goods_specification + Map specIds = new HashMap<>(); + for(LitemallGoodsSpecification specification : specifications){ + specification.setGoodsId(goods.getId()); + specification.setAddTime(LocalDateTime.now()); + specificationService.add(specification); + specIds.put(specification.getValue(), specification.getId()); + } + + // 商品参数表litemall_goods_attribute + for(LitemallGoodsAttribute attribute : attributes){ + attribute.setGoodsId(goods.getId()); + attribute.setAddTime(LocalDateTime.now()); + attributeService.add(attribute); + } + + // 商品货品表litemall_product + for(LitemallProduct product : products){ + product.setGoodsId(goods.getId()); + product.setAddTime(LocalDateTime.now()); + productService.add(product); + } + } catch (Exception ex) { + txManager.rollback(status); + logger.error("系统内部错误", ex); + } + txManager.commit(status); + + return ResponseUtil.ok(); + } + + @PostMapping("/delete") + public Object delete(@LoginAdmin Integer adminId, @RequestBody LitemallGoods goods){ + if(adminId == null){ + return ResponseUtil.unlogin(); + } + + // 开启事务管理 + DefaultTransactionDefinition def = new DefaultTransactionDefinition(); + def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); + TransactionStatus status = txManager.getTransaction(def); + try { + + Integer gid = goods.getId(); + goodsService.deleteById(gid); + specificationService.deleteByGid(gid); + attributeService.deleteByGid(gid); + productService.deleteByGid(gid); + } catch (Exception ex) { + txManager.rollback(status); + logger.error("系统内部错误", ex); + } + txManager.commit(status); + return ResponseUtil.ok(); + } + + @PostMapping("/create") + public Object create(@LoginAdmin Integer adminId, @RequestBody GoodsAllinone goodsAllinone){ + if(adminId == null){ + return ResponseUtil.unlogin(); + } + + LitemallGoods goods = goodsAllinone.getGoods(); + LitemallGoodsAttribute[] attributes = goodsAllinone.getAttributes(); + LitemallGoodsSpecification[] specifications = goodsAllinone.getSpecifications(); + LitemallProduct[] products = goodsAllinone.getProducts(); String name = goods.getName(); if(goodsService.checkExistByName(name)){ @@ -149,23 +196,10 @@ public class AdminGoodsController { } // 商品货品表litemall_product - for(Product product : products){ - LitemallProduct litemallProduct = new LitemallProduct(); - litemallProduct.setRetailPrice(product.getPrice()); - litemallProduct.setGoodsNumber(product.getNumber()); - litemallProduct.setUrl(product.getUrl()); - litemallProduct.setGoodsId(goods.getId()); - litemallProduct.setAddTime(LocalDateTime.now()); - - String[] values = product.getSpecifications(); - Integer[] ids = new Integer[values.length]; - for(int i = 0; i < values.length; i++){ - ids[i] = specIds.get(values[i]); - } - Arrays.sort(ids); - litemallProduct.setGoodsSpecificationIds(ids); - - productService.add(litemallProduct); + for(LitemallProduct product : products){ + product.setGoodsId(goods.getId()); + product.setAddTime(LocalDateTime.now()); + productService.add(product); } } catch (Exception ex) { txManager.rollback(status); @@ -175,4 +209,86 @@ public class AdminGoodsController { return ResponseUtil.ok(); } + + + + @GetMapping("/catAndBrand") + public Object list2(@LoginAdmin Integer adminId) { + if (adminId == null) { + return ResponseUtil.unlogin(); + } + + // http://element-cn.eleme.io/#/zh-CN/component/cascader + // 管理员设置“所属分类” + List l1CatList = categoryService.queryL1(); + List categoryList = new ArrayList<>(l1CatList.size()); + + for(LitemallCategory l1 : l1CatList){ + CatVo l1CatVo = new CatVo(); + l1CatVo.setValue(l1.getId()); + l1CatVo.setLabel(l1.getName()); + + List l2CatList = categoryService.queryByPid(l1.getId()); + List children = new ArrayList<>(l2CatList.size()); + for(LitemallCategory l2 : l2CatList) { + CatVo l2CatVo = new CatVo(); + l2CatVo.setValue(l2.getId()); + l2CatVo.setLabel(l2.getName()); + children.add(l2CatVo); + } + l1CatVo.setChildren(children); + + categoryList.add(l1CatVo); + } + + // http://element-cn.eleme.io/#/zh-CN/component/select + // 管理员设置“所属品牌商” + List list = brandService.all(); + List> brandList = new ArrayList<>(l1CatList.size()); + for(LitemallBrand brand : list){ + Map b = new HashMap<>(2); + b.put("value", brand.getId()); + b.put("label", brand.getName()); + brandList.add(b); + } + + Map data = new HashMap<>(); + data.put("categoryList" ,categoryList); + data.put("brandList", brandList); + return ResponseUtil.ok(data); + } + + @GetMapping("/detail") + public Object detail(@LoginAdmin Integer adminId, Integer id) { + if (adminId == null) { + return ResponseUtil.unlogin(); + } + + if (id == null) { + return ResponseUtil.badArgument(); + } + + LitemallGoods goods = goodsService.findById(id); + List products = productService.queryByGid(id); + List specifications = specificationService.queryByGid(id); + List attributes = attributeService.queryByGid(id); + + Integer categoryId = goods.getCategoryId(); + LitemallCategory category = categoryService.findById(categoryId); + Integer[] categoryIds = new Integer[]{}; + if (category != null) { + Integer parentCategoryId = category.getPid(); + categoryIds = new Integer[] {parentCategoryId, categoryId}; + } + + Map data = new HashMap<>(); + data.put("goods" ,goods); + data.put("specifications", specifications); + data.put("products", products); + data.put("attributes", attributes); + data.put("categoryIds", categoryIds); + + return ResponseUtil.ok(data); + } + } diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminGoodsSpecificationController.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminGoodsSpecificationController.java deleted file mode 100644 index 4f7e7310..00000000 --- a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminGoodsSpecificationController.java +++ /dev/null @@ -1,100 +0,0 @@ -package org.linlinjava.litemall.admin.web; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.linlinjava.litemall.admin.annotation.LoginAdmin; -import org.linlinjava.litemall.db.domain.LitemallGoodsSpecification; -import org.linlinjava.litemall.db.service.LitemallGoodsSpecificationService; -import org.linlinjava.litemall.core.util.ResponseUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.time.LocalDateTime; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@RestController -@RequestMapping("/admin/goods-specification") -public class AdminGoodsSpecificationController { - private final Log logger = LogFactory.getLog(AdminGoodsSpecificationController.class); - - @Autowired - private LitemallGoodsSpecificationService goodsSpecificationService; - - @GetMapping("/list") - public Object list(@LoginAdmin Integer adminId, - Integer goodsId, - @RequestParam(value = "page", defaultValue = "1") Integer page, - @RequestParam(value = "limit", defaultValue = "10") Integer limit, - String sort, String order){ - if(adminId == null){ - return ResponseUtil.unlogin(); - } - - List goodsSpecificationList = goodsSpecificationService.querySelective(goodsId, page, limit, sort, order); - int total = goodsSpecificationService.countSelective(goodsId, page, limit, sort, order); - Map data = new HashMap<>(); - data.put("total", total); - data.put("items", goodsSpecificationList); - - return ResponseUtil.ok(data); - } - - @PostMapping("/create") - public Object create(@LoginAdmin Integer adminId, @RequestBody LitemallGoodsSpecification goodsSpecification){ - if(adminId == null){ - return ResponseUtil.unlogin(); - } - goodsSpecification.setAddTime(LocalDateTime.now()); - goodsSpecificationService.add(goodsSpecification); - return ResponseUtil.ok(goodsSpecification); - } - - @GetMapping("/read") - public Object read(@LoginAdmin Integer adminId, Integer id){ - if(adminId == null){ - return ResponseUtil.unlogin(); - } - - if(id == null){ - return ResponseUtil.badArgument(); - } - - LitemallGoodsSpecification goodsSpecification = goodsSpecificationService.findById(id); - return ResponseUtil.ok(goodsSpecification); - } - - @PostMapping("/update") - public Object update(@LoginAdmin Integer adminId, @RequestBody LitemallGoodsSpecification goodsSpecification){ - if(adminId == null){ - return ResponseUtil.unlogin(); - } - goodsSpecificationService.updateById(goodsSpecification); - return ResponseUtil.ok(goodsSpecification); - } - - @PostMapping("/delete") - public Object delete(@LoginAdmin Integer adminId, @RequestBody LitemallGoodsSpecification goodsSpecification){ - if(adminId == null){ - return ResponseUtil.unlogin(); - } - goodsSpecificationService.deleteById(goodsSpecification.getId()); - return ResponseUtil.ok(); - } - - @GetMapping("/volist") - public Object volist(@LoginAdmin Integer adminId, Integer id){ - if(adminId == null){ - return ResponseUtil.unlogin(); - } - - if(id == null){ - return ResponseUtil.badArgument(); - } - - Object goodsSpecificationVoList = goodsSpecificationService.getSpecificationVoList(id); - return ResponseUtil.ok(goodsSpecificationVoList); - } - -} diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminOrderController.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminOrderController.java index a84a3600..f58c167b 100644 --- a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminOrderController.java +++ b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminOrderController.java @@ -112,8 +112,8 @@ public class AdminOrderController { for (LitemallOrderGoods orderGoods : orderGoodsList) { Integer productId = orderGoods.getProductId(); LitemallProduct product = productService.findById(productId); - Integer number = product.getGoodsNumber() + orderGoods.getNumber(); - product.setGoodsNumber(number); + Integer number = product.getNumber() + orderGoods.getNumber(); + product.setNumber(number); productService.updateById(product); } } catch (Exception ex) { @@ -162,7 +162,7 @@ public class AdminOrderController { order.setOrderStatus(OrderUtil.STATUS_SHIP); order.setShipSn(shipSn); order.setShipChannel(shipChannel); - order.setShipStartTime(LocalDateTime.now()); + order.setShipTime(LocalDateTime.now()); orderService.update(order); return ResponseUtil.ok(); @@ -207,8 +207,8 @@ public class AdminOrderController { for (LitemallOrderGoods orderGoods : orderGoodsList) { Integer productId = orderGoods.getProductId(); LitemallProduct product = productService.findById(productId); - Integer number = product.getGoodsNumber() + orderGoods.getNumber(); - product.setGoodsNumber(number); + Integer number = product.getNumber() + orderGoods.getNumber(); + product.setNumber(number); productService.updateById(product); } } catch (Exception ex) { @@ -242,9 +242,9 @@ public class AdminOrderController { List orderList = orderService.queryUnconfirm(); for(LitemallOrder order : orderList){ - LocalDateTime shipEnd = order.getShipEndTime(); + LocalDateTime ship = order.getShipTime(); LocalDateTime now = LocalDateTime.now(); - LocalDateTime expired = shipEnd.plusDays(7); + LocalDateTime expired = ship.plusDays(7); if(expired.isAfter(now)){ continue; } diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminProductController.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminProductController.java deleted file mode 100644 index af9a1758..00000000 --- a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminProductController.java +++ /dev/null @@ -1,127 +0,0 @@ -package org.linlinjava.litemall.admin.web; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.linlinjava.litemall.admin.annotation.LoginAdmin; -import org.linlinjava.litemall.db.domain.LitemallGoods; -import org.linlinjava.litemall.db.domain.LitemallProduct; -import org.linlinjava.litemall.db.service.LitemallGoodsService; -import org.linlinjava.litemall.db.service.LitemallGoodsSpecificationService; -import org.linlinjava.litemall.db.service.LitemallProductService; -import org.linlinjava.litemall.core.util.ResponseUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.math.BigDecimal; -import java.time.LocalDateTime; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@RestController -@RequestMapping("/admin/product") -public class AdminProductController { - private final Log logger = LogFactory.getLog(AdminProductController.class); - - @Autowired - private LitemallProductService productService; - @Autowired - private LitemallGoodsService goodsService; - @Autowired - private LitemallGoodsSpecificationService goodsSpecificationService; - - @GetMapping("/list") - public Object list(@LoginAdmin Integer adminId, - Integer goodsId, - @RequestParam(value = "page", defaultValue = "1") Integer page, - @RequestParam(value = "limit", defaultValue = "10") Integer limit, - String sort, String order){ - if(adminId == null){ - return ResponseUtil.unlogin(); - } - - List productList = productService.querySelective(goodsId, page, limit, sort, order); - int total = productService.countSelective(goodsId, page, limit, sort, order); - Map data = new HashMap<>(); - data.put("total", total); - data.put("items", productList); - - return ResponseUtil.ok(data); - } - - /** - * - * @param adminId - * @param litemallProduct - * @return - */ - @PostMapping("/create") - public Object create(@LoginAdmin Integer adminId, @RequestBody LitemallProduct litemallProduct){ - if(adminId == null){ - return ResponseUtil.unlogin(); - } - - Integer goodsId = litemallProduct.getGoodsId(); - if(goodsId == null){ - return ResponseUtil.badArgument(); - } - - LitemallGoods goods = goodsService.findById(goodsId); - if(goods == null){ - return ResponseUtil.badArgumentValue(); - } - - List productList = productService.queryByGid(goodsId); - if(productList.size() != 0){ - return ResponseUtil.badArgumentValue(); - } - - Integer[] goodsSpecificationIds = goodsSpecificationService.queryIdsByGid(goodsId); - if(goodsSpecificationIds.length == 0) { - return ResponseUtil.serious(); - } - - LitemallProduct product = new LitemallProduct(); - product.setGoodsId(goodsId); - product.setGoodsNumber(0); - product.setRetailPrice(new BigDecimal(0.00)); - product.setGoodsSpecificationIds(goodsSpecificationIds); - product.setAddTime(LocalDateTime.now()); - productService.add(product); - - return ResponseUtil.ok(); - } - - @GetMapping("/read") - public Object read(@LoginAdmin Integer adminId, Integer id){ - if(adminId == null){ - return ResponseUtil.unlogin(); - } - - if(id == null){ - return ResponseUtil.badArgument(); - } - - LitemallProduct product = productService.findById(id); - return ResponseUtil.ok(product); - } - - @PostMapping("/update") - public Object update(@LoginAdmin Integer adminId, @RequestBody LitemallProduct product){ - if(adminId == null){ - return ResponseUtil.unlogin(); - } - productService.updateById(product); - return ResponseUtil.ok(product); - } - - @PostMapping("/delete") - public Object delete(@LoginAdmin Integer adminId, @RequestBody LitemallProduct product){ - if(adminId == null){ - return ResponseUtil.unlogin(); - } - productService.deleteById(product.getId()); - return ResponseUtil.ok(); - } - -} diff --git a/litemall-admin/src/api/category.js b/litemall-admin/src/api/category.js index 9bf1c032..5e76bf0c 100644 --- a/litemall-admin/src/api/category.js +++ b/litemall-admin/src/api/category.js @@ -46,11 +46,3 @@ export function deleteCategory(data) { data }) } - -export function listCategory2(query) { - return request({ - url: '/category/list2', - method: 'get', - params: query - }) -} diff --git a/litemall-admin/src/api/goods-attribute.js b/litemall-admin/src/api/goods-attribute.js deleted file mode 100644 index e8500604..00000000 --- a/litemall-admin/src/api/goods-attribute.js +++ /dev/null @@ -1,41 +0,0 @@ -import request from '@/utils/request' - -export function listGoodsAttribute(query) { - return request({ - url: '/goods-attribute/list', - method: 'get', - params: query - }) -} - -export function createGoodsAttribute(data) { - return request({ - url: '/goods-attribute/create', - method: 'post', - data - }) -} - -export function readGoodsAttribute(data) { - return request({ - url: '/goods-attribute/read', - method: 'get', - data - }) -} - -export function updateGoodsAttribute(data) { - return request({ - url: '/goods-attribute/update', - method: 'post', - data - }) -} - -export function deleteGoodsAttribute(data) { - return request({ - url: '/goods-attribute/delete', - method: 'post', - data - }) -} diff --git a/litemall-admin/src/api/goods-specification.js b/litemall-admin/src/api/goods-specification.js deleted file mode 100644 index 69b6eb82..00000000 --- a/litemall-admin/src/api/goods-specification.js +++ /dev/null @@ -1,49 +0,0 @@ -import request from '@/utils/request' - -export function listGoodsSpecification(query) { - return request({ - url: '/goods-specification/list', - method: 'get', - params: query - }) -} - -export function createGoodsSpecification(data) { - return request({ - url: '/goods-specification/create', - method: 'post', - data - }) -} - -export function readGoodsSpecification(data) { - return request({ - url: '/goods-specification/read', - method: 'get', - data - }) -} - -export function updateGoodsSpecification(data) { - return request({ - url: '/goods-specification/update', - method: 'post', - data - }) -} - -export function deleteGoodsSpecification(data) { - return request({ - url: '/goods-specification/delete', - method: 'post', - data - }) -} - -export function listGoodsSpecificationVo(query) { - return request({ - url: '/goods-specification/volist', - method: 'get', - params: query - }) -} diff --git a/litemall-admin/src/api/goods.js b/litemall-admin/src/api/goods.js index 80cd8785..0ef2834c 100644 --- a/litemall-admin/src/api/goods.js +++ b/litemall-admin/src/api/goods.js @@ -8,30 +8,6 @@ export function listGoods(query) { }) } -export function createGoods(data) { - return request({ - url: '/goods/create', - method: 'post', - data - }) -} - -export function readGoods(data) { - return request({ - url: '/goods/read', - method: 'get', - data - }) -} - -export function updateGoods(data) { - return request({ - url: '/goods/update', - method: 'post', - data - }) -} - export function deleteGoods(data) { return request({ url: '/goods/delete', @@ -42,8 +18,31 @@ export function deleteGoods(data) { export function publishGoods(data) { return request({ - url: '/goods/publish', + url: '/goods/create', method: 'post', data }) } + +export function detailGoods(id) { + return request({ + url: '/goods/detail', + method: 'get', + params: { id } + }) +} + +export function editGoods(data) { + return request({ + url: '/goods/update', + method: 'post', + data + }) +} + +export function listCatAndBrand() { + return request({ + url: '/goods/catAndBrand', + method: 'get' + }) +} diff --git a/litemall-admin/src/api/product.js b/litemall-admin/src/api/product.js deleted file mode 100644 index 5e0bf765..00000000 --- a/litemall-admin/src/api/product.js +++ /dev/null @@ -1,41 +0,0 @@ -import request from '@/utils/request' - -export function listProduct(query) { - return request({ - url: '/product/list', - method: 'get', - params: query - }) -} - -export function createProduct(data) { - return request({ - url: '/product/create', - method: 'post', - data - }) -} - -export function readProduct(data) { - return request({ - url: '/product/read', - method: 'get', - data - }) -} - -export function updateProduct(data) { - return request({ - url: '/product/update', - method: 'post', - data - }) -} - -export function deleteProduct(data) { - return request({ - url: '/product/delete', - method: 'post', - data - }) -} diff --git a/litemall-admin/src/router/index.js b/litemall-admin/src/router/index.js index 6c6e76b6..af5fd599 100644 --- a/litemall-admin/src/router/index.js +++ b/litemall-admin/src/router/index.js @@ -98,12 +98,10 @@ export const asyncRouterMap = [ icon: 'chart' }, children: [ - { path: 'publish', component: _import('goods/publish'), name: 'publish', meta: { title: '商品上架', noCache: true }}, - { path: 'goods', component: _import('goods/goods'), name: 'goods', meta: { title: '商品管理', noCache: true }}, - { path: 'attribute', component: _import('goods/attribute'), name: 'attribute', meta: { title: '商品参数', noCache: true }}, - { path: 'specification', component: _import('goods/specification'), name: 'specification', meta: { title: '商品规格', noCache: true }}, - { path: 'product', component: _import('goods/product'), name: 'product', meta: { title: '货品管理', noCache: true }}, - { path: 'comment', component: _import('goods/comment'), name: 'comment', meta: { title: '用户评论', noCache: true }} + { path: 'list', component: _import('goods/list'), name: 'goodsList', meta: { title: '商品列表', noCache: true }}, + { path: 'create', component: _import('goods/create'), name: 'goodsCreate', meta: { title: '商品上架', noCache: true }}, + { path: 'edit', component: _import('goods/edit'), name: 'goodsEdit', meta: { title: '商品编辑', noCache: true }, hidden: true }, + { path: 'comment', component: _import('goods/comment'), name: 'goodsComment', meta: { title: '商品评论', noCache: true }} ] }, diff --git a/litemall-admin/src/views/goods/attribute.vue b/litemall-admin/src/views/goods/attribute.vue deleted file mode 100644 index a8562cbb..00000000 --- a/litemall-admin/src/views/goods/attribute.vue +++ /dev/null @@ -1,214 +0,0 @@ - - - diff --git a/litemall-admin/src/views/goods/comment.vue b/litemall-admin/src/views/goods/comment.vue index f2a7366f..150366b5 100644 --- a/litemall-admin/src/views/goods/comment.vue +++ b/litemall-admin/src/views/goods/comment.vue @@ -15,25 +15,25 @@ - + - + - + - + - + - + - +