From 19c32c2c80cc37b53ceadf746c4c6ef4b4f851bb Mon Sep 17 00:00:00 2001 From: 15004070936 <1097449274@qq.com> Date: Fri, 8 May 2026 14:18:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=95=86=E5=9F=8E=E5=95=86?= =?UTF-8?q?=E5=93=81=E5=B1=95=E7=A4=BA=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/mall/ProductController.java | 7 +++++- .../service/impl/ScClaTimeServiceImpl.java | 20 ++++++++++++--- .../mall/service/impl/MemberCartService.java | 25 +++++++++++++------ .../impl/ProductCategoryServiceImpl.java | 1 + .../mall/service/impl/ProductServiceImpl.java | 24 +++++++++++++----- .../resources/mapper/basic/YjStoreMapper.xml | 2 ++ .../resources/mapper/mall/ProductMapper.xml | 23 +++++++++++------ 7 files changed, 75 insertions(+), 27 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/mall/ProductController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/mall/ProductController.java index 49364e3..a3ae89e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/mall/ProductController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/mall/ProductController.java @@ -2,6 +2,7 @@ package com.ruoyi.web.controller.mall; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjectUtil; import com.ruoyi.RestResponse; import com.ruoyi.course.domain.req.ReqSearchClaTime; import com.ruoyi.course.domain.time.RespBusinessClaTimeCalendar; @@ -21,6 +22,7 @@ import org.springframework.data.domain.Pageable; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -65,7 +67,10 @@ public class ProductController { @PostMapping("/list") public ResponseEntity> queryGoodByPage(@RequestBody ProductQuery query, Pageable page) { List pageRes = productService.selectList(query, page); - return ResponseEntity.ok(new PageImpl<>(BeanUtil.copyToList(pageRes,AppProductVO.class), page, ((com.github.pagehelper.Page) pageRes).getTotal())); + if (ObjectUtil.isNotEmpty(pageRes)){ + return ResponseEntity.ok(new PageImpl<>(BeanUtil.copyToList(pageRes,AppProductVO.class), page, ((com.github.pagehelper.Page) pageRes).getTotal())); + } + return ResponseEntity.ok(new PageImpl<>(new ArrayList<>(), page, 0)); } /** diff --git a/ruoyi-system/src/main/java/com/ruoyi/course/service/impl/ScClaTimeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/course/service/impl/ScClaTimeServiceImpl.java index db7f3f9..8bf51eb 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/course/service/impl/ScClaTimeServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/course/service/impl/ScClaTimeServiceImpl.java @@ -12,7 +12,9 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Maps; import com.ruoyi.RestResponse; +import com.ruoyi.basic.domain.YjStore; import com.ruoyi.basic.service.YjAppUserService; +import com.ruoyi.basic.service.YjStoreService; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.entity.AppUser; import com.ruoyi.common.core.domain.entity.SysDept; @@ -69,7 +71,7 @@ public class ScClaTimeServiceImpl extends ServiceImpl list=claTimeMapper.getCourseList(date,null,appUser.getVisitStore()); return new RestResponse().setData(list); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/mall/service/impl/MemberCartService.java b/ruoyi-system/src/main/java/com/ruoyi/mall/service/impl/MemberCartService.java index 49f4bea..d8e58fb 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/mall/service/impl/MemberCartService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/mall/service/impl/MemberCartService.java @@ -1,6 +1,7 @@ package com.ruoyi.mall.service.impl; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -86,21 +87,29 @@ public class MemberCartService extends ServiceImpl //查门店 List storeIdList = memberCartList.stream().map(MemberCart::getStoreId).collect(Collectors.toList()); - QueryWrapper storeQw = new QueryWrapper<>(); - storeQw.in("dept_id", storeIdList); - Map storeMap = storeMapper.selectList(storeQw).stream().collect(Collectors.toMap(YjStore::getId, it -> it)); - Set keys= storeMap.keySet(); - for (Long key : keys) { - System.out.println(key); - YjStore y= storeMap.get(key); - System.out.println(y.getStoreName()); + + List storeList = new ArrayList<>(); + for (Long aLong : storeIdList) { + YjStore store= storeMapper.getOne(aLong); + if (ObjectUtil.isNotEmpty(store) && !storeList.contains(store)){ + storeList.add(store); + } + } + if (CollectionUtil.isEmpty(storeList)){ + return Collections.emptyList(); } + Map storeMap = storeList.stream().collect(Collectors.toMap(YjStore::getId, it -> it)); + Map> storeCartMap = memberCartList.stream().collect(Collectors.groupingBy(MemberCart::getStoreId)); List resList = new ArrayList<>(); + storeCartMap.forEach((storeId,cartList)->{ Map resMap = new HashMap<>(); List list = new ArrayList<>(); + if (!storeMap.containsKey(storeId)){ + return; + } resMap.put("storeName",storeMap.get(storeId).getStoreName()); for (MemberCart item:cartList){ diff --git a/ruoyi-system/src/main/java/com/ruoyi/mall/service/impl/ProductCategoryServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/mall/service/impl/ProductCategoryServiceImpl.java index 82dcdfc..a9cd864 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/mall/service/impl/ProductCategoryServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/mall/service/impl/ProductCategoryServiceImpl.java @@ -44,6 +44,7 @@ public class ProductCategoryServiceImpl extends ServiceImpl impl @Autowired private BrandMapper brandMapper; @Autowired - private ScClaTimeService scClaTimeService; + private YjStoreService storeService; /** * 查询商品信息 @@ -73,24 +75,34 @@ public class ProductServiceImpl extends ServiceImpl impl * @return 商品信息 */ public List selectList(ProductQuery query, Pageable page) { - if (page != null) { - PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); - } + + + Long categoryId = query.getCategoryId(); if (categoryId != null && categoryId.equals(1L)) { + YjStore store= storeService.getOne(Long.valueOf(query.getStoreId())); + if (store==null){ + return new ArrayList<>(); + } + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } QueryWrapper qw = new QueryWrapper<>(); qw.eq("publish_status", 1); - qw.orderByAsc("sort"); + qw.eq("category_id", categoryId); qw.eq("store_id", query.getStoreId());//门店id String search = query.getSearch(); if (StringUtils.isNoneEmpty(search)){ qw.like("name", "%".concat(query.getSearch().trim()).concat("%")); } + qw.orderByAsc("sort"); return productMapper.selectList(qw); } //商城商品 - + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } return productMapper.getMallProductList(categoryId,query.getSearch(),null); } diff --git a/ruoyi-system/src/main/resources/mapper/basic/YjStoreMapper.xml b/ruoyi-system/src/main/resources/mapper/basic/YjStoreMapper.xml index 0a64043..943d4a1 100644 --- a/ruoyi-system/src/main/resources/mapper/basic/YjStoreMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/basic/YjStoreMapper.xml @@ -7,6 +7,8 @@ from yj_store a,sys_dept b WHERE a.dept_id=b.dept_id and a.dept_id=#{deptId} + and b.status='0' + and b.delete_flag='0' and b.activation_date NOW() b.expiry_date diff --git a/ruoyi-system/src/main/resources/mapper/mall/ProductMapper.xml b/ruoyi-system/src/main/resources/mapper/mall/ProductMapper.xml index b459844..c6be25b 100644 --- a/ruoyi-system/src/main/resources/mapper/mall/ProductMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/mall/ProductMapper.xml @@ -99,17 +99,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.customer_service, a.instructor, a.tenant_id - from mall_product a LEFT JOIN mall_product_show b - on a.id=b.product_id + from mall_product a + INNER JOIN sys_dept dept ON a.store_id = dept.dept_id + LEFT JOIN mall_product_show b on a.id=b.product_id + WHERE + dept.status='0' and + dept.delete_flag='0' and + dept.activation_date NOW() dept.expiry_date and a.publish_status=1 and - (a.store_id=1 and a.category_id = #{categoryId} ) - or - (b.show_flag='1' + ( + (a.store_id=1 and a.category_id = #{categoryId} ) + or + (b.show_flag='1' and b.show_start_time NOW() b.show_end_time - and b.apply_status='2' - and b.show_category = #{categoryId} - ) + and b.apply_status='3' + and b.show_category = #{categoryId} + ) + ) and a.is_course = #{isCourse} and a.name like concat('%', #{search}, '%') order by b.sort,a.sort