diff --git a/yshop-app/src/main/java/co/yixiang/modules/activity/rest/StoreCombinationController.java b/yshop-app/src/main/java/co/yixiang/modules/activity/rest/StoreCombinationController.java index c263bc16..25676097 100644 --- a/yshop-app/src/main/java/co/yixiang/modules/activity/rest/StoreCombinationController.java +++ b/yshop-app/src/main/java/co/yixiang/modules/activity/rest/StoreCombinationController.java @@ -20,6 +20,7 @@ import co.yixiang.modules.activity.param.PinkCancelParam; import co.yixiang.modules.activity.param.PinkShareParam; import co.yixiang.modules.activity.service.YxStoreCombinationService; import co.yixiang.modules.activity.service.YxStorePinkService; +import co.yixiang.modules.activity.vo.CombinationQueryVo; import co.yixiang.modules.activity.vo.PinkInfoVo; import co.yixiang.modules.activity.vo.StoreCombinationVo; import co.yixiang.modules.activity.vo.YxStoreCombinationQueryVo; @@ -80,8 +81,8 @@ public class StoreCombinationController { @ApiImplicitParam(name = "limit", value = "页大小,默认为10", paramType = "query", dataType = "int") }) @ApiOperation(value = "拼团产品列表",notes = "拼团产品列表") - public ApiResult> getList(@RequestParam(value = "page",defaultValue = "1") int page, - @RequestParam(value = "limit",defaultValue = "10") int limit){ + public ApiResult getList(@RequestParam(value = "page",defaultValue = "1") int page, + @RequestParam(value = "limit",defaultValue = "10") int limit){ return ApiResult.ok(storeCombinationService.getList(page, limit)); } diff --git a/yshop-app/src/main/java/co/yixiang/modules/shop/rest/IndexController.java b/yshop-app/src/main/java/co/yixiang/modules/shop/rest/IndexController.java index 8ed18ac4..48f3cc73 100644 --- a/yshop-app/src/main/java/co/yixiang/modules/shop/rest/IndexController.java +++ b/yshop-app/src/main/java/co/yixiang/modules/shop/rest/IndexController.java @@ -71,9 +71,9 @@ public class IndexController { .banner(systemGroupDataService.getDatas(ShopConstants.YSHOP_HOME_BANNER)) .bastList(storeProductService.getList(1,6, ProductEnum.TYPE_1.getValue())) .benefit(storeProductService.getList(1,10,ProductEnum.TYPE_4.getValue())) - .combinationList(storeCombinationService.getList(1,4)) + .combinationList(storeCombinationService.getList(1,8).getStoreCombinationQueryVos()) .firstList(storeProductService.getList(1,6,ProductEnum.TYPE_3.getValue())) - .likeInfo(storeProductService.getList(1,4,ProductEnum.TYPE_2.getValue())) + .likeInfo(storeProductService.getList(1,8,ProductEnum.TYPE_2.getValue())) .mapKey(RedisUtil.get(ShopKeyUtils.getTengXunMapKey())) .menus(systemGroupDataService.getDatas(ShopConstants.YSHOP_HOME_MENUS)) .roll(systemGroupDataService.getDatas(ShopConstants.YSHOP_HOME_ROLL_NEWS)) diff --git a/yshop-mall/src/main/java/co/yixiang/modules/activity/service/YxStoreCombinationService.java b/yshop-mall/src/main/java/co/yixiang/modules/activity/service/YxStoreCombinationService.java index 9343ed9f..71a64554 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/activity/service/YxStoreCombinationService.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/activity/service/YxStoreCombinationService.java @@ -12,6 +12,7 @@ import co.yixiang.common.service.BaseService; import co.yixiang.modules.activity.domain.YxStoreCombination; import co.yixiang.modules.activity.service.dto.YxStoreCombinationDto; import co.yixiang.modules.activity.service.dto.YxStoreCombinationQueryCriteria; +import co.yixiang.modules.activity.vo.CombinationQueryVo; import co.yixiang.modules.activity.vo.StoreCombinationVo; import co.yixiang.modules.activity.vo.YxStoreCombinationQueryVo; import org.springframework.data.domain.Pageable; @@ -35,7 +36,7 @@ public interface YxStoreCombinationService extends BaseService getList(int page, int limit); + CombinationQueryVo getList(int page, int limit); /** * 获取拼团详情 diff --git a/yshop-mall/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreCombinationServiceImpl.java b/yshop-mall/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreCombinationServiceImpl.java index 20d4786c..fde52efe 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreCombinationServiceImpl.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreCombinationServiceImpl.java @@ -23,6 +23,7 @@ import co.yixiang.enums.SpecTypeEnum; import co.yixiang.exception.BadRequestException; import co.yixiang.modules.activity.domain.YxStoreCombination; import co.yixiang.modules.activity.domain.YxStorePink; +import co.yixiang.modules.activity.domain.YxStoreSeckill; import co.yixiang.modules.activity.domain.YxStoreVisit; import co.yixiang.modules.activity.service.YxStoreCombinationService; import co.yixiang.modules.activity.service.YxStorePinkService; @@ -32,12 +33,15 @@ import co.yixiang.modules.activity.service.dto.YxStoreCombinationQueryCriteria; import co.yixiang.modules.activity.service.mapper.YxStoreCombinationMapper; import co.yixiang.modules.activity.service.mapper.YxStorePinkMapper; import co.yixiang.modules.activity.service.mapper.YxStoreVisitMapper; +import co.yixiang.modules.activity.vo.CombinationQueryVo; import co.yixiang.modules.activity.vo.StoreCombinationVo; import co.yixiang.modules.activity.vo.YxStoreCombinationQueryVo; +import co.yixiang.modules.product.domain.YxStoreProduct; import co.yixiang.modules.product.domain.YxStoreProductAttrValue; import co.yixiang.modules.product.service.YxStoreProductAttrService; import co.yixiang.modules.product.service.YxStoreProductAttrValueService; import co.yixiang.modules.product.service.YxStoreProductReplyService; +import co.yixiang.modules.product.service.YxStoreProductService; import co.yixiang.modules.product.service.dto.FromatDetailDto; import co.yixiang.modules.product.service.dto.ProductFormatDto; import co.yixiang.modules.product.service.dto.ProductResultDto; @@ -47,8 +51,10 @@ import co.yixiang.modules.template.service.YxShippingTemplatesService; import co.yixiang.utils.FileUtil; import co.yixiang.utils.RedisUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.pagehelper.PageInfo; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; @@ -59,6 +65,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.math.BigDecimal; import java.util.*; +import java.util.stream.Collectors; /** @@ -90,6 +97,9 @@ public class YxStoreCombinationServiceImpl extends BaseServiceImpl getList(int page, int limit) { + public CombinationQueryVo getList(int page, int limit) { + CombinationQueryVo combinationQueryVo = new CombinationQueryVo(); + Date nowTime = new Date(); Page pageModel = new Page<>(page, limit); - return yxStoreCombinationMapper.getCombList(pageModel); + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.lambda() + .eq(YxStoreCombination::getIsShow,1) + .le(YxStoreCombination::getStartTime,nowTime) + .ge(YxStoreCombination::getStopTime,nowTime) + .orderByDesc(YxStoreCombination::getSort); + IPage yxStoreCombinationIPage = yxStoreCombinationMapper.selectPage(pageModel, wrapper); + + List collect = yxStoreCombinationIPage.getRecords().stream().map(i -> { + YxStoreCombinationQueryVo yxStoreCombinationQueryVo = new YxStoreCombinationQueryVo(); + YxStoreProduct product = storeProductService.getById(i.getProductId()); + BeanUtils.copyProperties(i, yxStoreCombinationQueryVo); + yxStoreCombinationQueryVo.setSales(product.getSales()); + yxStoreCombinationQueryVo.setProductPrice(product.getPrice()); + return yxStoreCombinationQueryVo; + }).collect(Collectors.toList()); + combinationQueryVo.setStoreCombinationQueryVos(collect); + combinationQueryVo.setLastPage(yxStoreCombinationIPage.getPages()); + return combinationQueryVo; } diff --git a/yshop-mall/src/main/java/co/yixiang/modules/activity/service/mapper/YxStoreCombinationMapper.java b/yshop-mall/src/main/java/co/yixiang/modules/activity/service/mapper/YxStoreCombinationMapper.java index fd72fdde..a6e8ac8b 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/activity/service/mapper/YxStoreCombinationMapper.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/activity/service/mapper/YxStoreCombinationMapper.java @@ -12,6 +12,8 @@ import co.yixiang.common.mapper.CoreMapper; import co.yixiang.modules.activity.domain.YxStoreCombination; import co.yixiang.modules.activity.vo.YxStoreCombinationQueryVo; import co.yixiang.modules.product.vo.YxStoreProductQueryVo; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -34,6 +36,8 @@ public interface YxStoreCombinationMapper extends CoreMapper " AND c.stop_time > now() ORDER BY c.sort desc,c.id desc") List getCombList(Page page); + IPage selectPage(IPage page, @Param("ew") Wrapper queryWrapper); + @Select("SELECT c.id,c.effective_time as effectiveTime,c.image,c.people,c.price,c.browse," + "c.description,c.image,c.images,c.info," + "c.product_id as productId,c.sales,c.start_time as startTime" + diff --git a/yshop-mall/src/main/java/co/yixiang/modules/activity/vo/CombinationQueryVo.java b/yshop-mall/src/main/java/co/yixiang/modules/activity/vo/CombinationQueryVo.java new file mode 100644 index 00000000..5202a3c3 --- /dev/null +++ b/yshop-mall/src/main/java/co/yixiang/modules/activity/vo/CombinationQueryVo.java @@ -0,0 +1,14 @@ +package co.yixiang.modules.activity.vo; + +import lombok.Data; + +import java.util.List; + +@Data +public class CombinationQueryVo { + + private List storeCombinationQueryVos; + + private Long lastPage; + +}