From 5fab6f7b6c5386608ff002c1f758bbd43e126030 Mon Sep 17 00:00:00 2001 From: feijinping Date: Sun, 29 Jan 2023 14:09:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=93=81=E8=AF=A6=E6=83=85=E7=95=8C?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fjp/lc/test/service/ServiceTest.java | 12 +++++++- .../com/cyl/h5/controller/CartController.java | 28 +++++++++++++++++++ .../com/cyl/h5/controller/GoodController.java | 11 +++++--- .../com/cyl/h5/pojo/vo/ProductDetail.java | 15 ++++++++++ .../com/cyl/pms/service/ProductService.java | 20 +++++++++++++ .../cyl/ums/service/MemberCartService.java | 20 +++++++++++-- 6 files changed, 99 insertions(+), 7 deletions(-) create mode 100644 ruoyi-mall/src/main/java/com/cyl/h5/controller/CartController.java create mode 100644 ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/ProductDetail.java diff --git a/ruoyi-admin/src/test/java/com/fjp/lc/test/service/ServiceTest.java b/ruoyi-admin/src/test/java/com/fjp/lc/test/service/ServiceTest.java index 4420fe0..9518cde 100644 --- a/ruoyi-admin/src/test/java/com/fjp/lc/test/service/ServiceTest.java +++ b/ruoyi-admin/src/test/java/com/fjp/lc/test/service/ServiceTest.java @@ -1,12 +1,22 @@ package com.fjp.lc.test.service; +import com.cyl.ums.service.MemberCartService; import com.ruoyi.RuoYiApplication; +import org.junit.Test; import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = RuoYiApplication.class) +@ActiveProfiles("dev") public class ServiceTest { - + @Autowired + private MemberCartService memberCartService; + @Test + public void test1() { + memberCartService.mineCartNum(); + } } diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/CartController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/CartController.java new file mode 100644 index 0000000..4370f21 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/CartController.java @@ -0,0 +1,28 @@ +package com.cyl.h5.controller; + +import com.cyl.pms.domain.ProductCategory; +import com.cyl.ums.service.MemberCartService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("/h5/cart") +public class CartController { + @Autowired + private MemberCartService memberCartService; + + /** + * 当前用户的购物车商品数量 + * + * @return + */ + @GetMapping("goodscount") + public ResponseEntity allCategories() { + return ResponseEntity.ok(memberCartService.mineCartNum()); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/GoodController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/GoodController.java index d047afb..84d6938 100644 --- a/ruoyi-mall/src/main/java/com/cyl/h5/controller/GoodController.java +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/GoodController.java @@ -1,6 +1,7 @@ package com.cyl.h5.controller; import com.cyl.h5.pojo.dto.ProductDTO; +import com.cyl.h5.pojo.vo.ProductDetail; import com.cyl.pms.convert.ProductConvert; import com.cyl.pms.domain.Product; import com.cyl.pms.pojo.query.ProductQuery; @@ -10,10 +11,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -30,4 +28,9 @@ public class GoodController { List pageRes = productService.selectList(query, page); return ResponseEntity.ok(new PageImpl<>(productConvert.dos2dtos(pageRes), page, ((com.github.pagehelper.Page) pageRes).getTotal())); } + @GetMapping("/detail") + public ResponseEntity queryDetail(@RequestParam Long id) { + ProductDetail detail = productService.queryDetail(id); + return ResponseEntity.ok(detail); + } } diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/ProductDetail.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/ProductDetail.java new file mode 100644 index 0000000..a80f798 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/ProductDetail.java @@ -0,0 +1,15 @@ +package com.cyl.h5.pojo.vo; + +import com.cyl.pms.domain.Brand; +import com.cyl.pms.domain.Product; +import com.cyl.pms.domain.Sku; +import lombok.Data; + +import java.util.List; + +@Data +public class ProductDetail { + private Product product; + private List skus; + private Brand brand; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/pms/service/ProductService.java b/ruoyi-mall/src/main/java/com/cyl/pms/service/ProductService.java index d77569f..697e455 100644 --- a/ruoyi-mall/src/main/java/com/cyl/pms/service/ProductService.java +++ b/ruoyi-mall/src/main/java/com/cyl/pms/service/ProductService.java @@ -5,16 +5,21 @@ import java.util.*; import java.time.LocalDateTime; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments; +import com.cyl.h5.pojo.vo.ProductDetail; import com.cyl.pms.convert.ProductConvert; +import com.cyl.pms.domain.Brand; import com.cyl.pms.domain.Sku; +import com.cyl.pms.mapper.BrandMapper; import com.cyl.pms.mapper.SkuMapper; import com.cyl.pms.pojo.vo.ProductVO; import com.github.pagehelper.PageHelper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.apache.commons.lang3.StringUtils; +import org.springframework.security.core.parameters.P; import org.springframework.stereotype.Service; import com.cyl.pms.mapper.ProductMapper; import com.cyl.pms.domain.Product; @@ -35,6 +40,8 @@ public class ProductService { @Autowired private SkuMapper skuMapper; @Autowired + private BrandMapper brandMapper; + @Autowired private ProductConvert convert; /** @@ -186,4 +193,17 @@ public class ProductService { public int deleteById(Long id) { return productMapper.deleteById(id); } + + public ProductDetail queryDetail(Long id) { + ProductDetail res = new ProductDetail(); + Product d = productMapper.selectById(id); + res.setProduct(d); + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + qw.eq(Sku::getProductId, id); + res.setSkus(skuMapper.selectList(qw)); + if (d.getBrandId() != null) { + res.setBrand(brandMapper.selectById(d.getBrandId())); + } + return res; + } } diff --git a/ruoyi-mall/src/main/java/com/cyl/ums/service/MemberCartService.java b/ruoyi-mall/src/main/java/com/cyl/ums/service/MemberCartService.java index 8e03747..4495371 100644 --- a/ruoyi-mall/src/main/java/com/cyl/ums/service/MemberCartService.java +++ b/ruoyi-mall/src/main/java/com/cyl/ums/service/MemberCartService.java @@ -3,8 +3,12 @@ package com.cyl.ums.service; import java.util.Arrays; import java.util.List; import java.time.LocalDateTime; + +import cn.hutool.crypto.SecureUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; +import com.ruoyi.common.utils.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.apache.commons.lang3.StringUtils; @@ -16,7 +20,6 @@ import com.cyl.ums.pojo.query.MemberCartQuery; /** * 购物车Service业务层处理 * - * * @author zcc */ @Service @@ -38,7 +41,7 @@ public class MemberCartService { * 查询购物车列表 * * @param query 查询条件 - * @param page 分页条件 + * @param page 分页条件 * @return 购物车 */ public List selectList(MemberCartQuery query, Pageable page) { @@ -111,4 +114,17 @@ public class MemberCartService { public int deleteById(Long id) { return memberCartMapper.deleteById(id); } + + public Integer mineCartNum() { + Long userId = SecurityUtils.getUserId(); + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("member_id", userId); + qw.eq("status", 1); + qw.select("sum(quantity) quantity"); + MemberCart c = memberCartMapper.selectOne(qw); + if (c == null) { + return 0; + } + return c.getQuantity(); + } }