商品分组,可售时间管控
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package com.czg.service.product.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.ObjUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.czg.constant.CacheConstant;
|
||||
@@ -72,7 +73,7 @@ public class UProductServiceImpl extends ServiceImpl<ProductMapper, Product> imp
|
||||
@Override
|
||||
@Cacheable(value = CacheConstant.USER_CLIENT_GROUPS_PRODUCT, key = "#shopId", unless = "#result.isEmpty()")
|
||||
public List<ShopGroupProductVo> queryGroupProductList(Long shopId) {
|
||||
List<ShopGroupProductVo> groupList = prodGroupMapper.selectListByQueryAs(query().select(ProdGroup::getId, ProdGroup::getName).eq(ProdGroup::getShopId, shopId).eq(ProdGroup::getStatus, StatusEnum.ENABLED.value()).orderBy(ProdGroup::getSort, true), ShopGroupProductVo.class);
|
||||
List<ShopGroupProductVo> groupList = prodGroupMapper.selectListByQueryAs(query().select(ProdGroup::getId, ProdGroup::getName, ProdGroup::getUseTime, ProdGroup::getSaleStartTime, ProdGroup::getSaleEndTime).eq(ProdGroup::getShopId, shopId).eq(ProdGroup::getStatus, StatusEnum.ENABLED.value()).orderBy(ProdGroup::getSort, true), ShopGroupProductVo.class);
|
||||
List<ShopProductVo> productAllList = productMapper.selectGroupProductList(shopId);
|
||||
productAllList.forEach(item -> {
|
||||
item.setIsSaleTime(calcIsSaleTime(item.getDays(), item.getStartTime(), item.getEndTime()));
|
||||
@@ -96,6 +97,10 @@ public class UProductServiceImpl extends ServiceImpl<ProductMapper, Product> imp
|
||||
productList.add(product);
|
||||
}
|
||||
}
|
||||
Integer isSaleTime = calcIsSaleTime(group.getUseTime(), group.getSaleStartTime(), group.getSaleEndTime());
|
||||
productList.parallelStream().forEach(product -> {
|
||||
product.setIsSaleTime(isSaleTime);
|
||||
});
|
||||
group.setProductList(productList);
|
||||
}
|
||||
return groupList.stream().filter(group -> CollUtil.isNotEmpty(group.getProductList())).toList();
|
||||
@@ -154,6 +159,28 @@ public class UProductServiceImpl extends ServiceImpl<ProductMapper, Product> imp
|
||||
return YesNoEnum.NO.value();
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算是否在可售时间内
|
||||
*
|
||||
* @param useTime 开启时间管控 0:否;1:是
|
||||
* @param startTime 起售时间
|
||||
* @param endTime 停售时间
|
||||
* @return 是否可售时间 1-是,0-否
|
||||
*/
|
||||
private Integer calcIsSaleTime(Integer useTime, LocalTime startTime, LocalTime endTime) {
|
||||
if (NumberUtil.nullToZero(useTime) == 0) {
|
||||
return YesNoEnum.NO.value();
|
||||
}
|
||||
if (ObjUtil.isNull(startTime) || ObjUtil.isNull(endTime)) {
|
||||
return YesNoEnum.NO.value();
|
||||
}
|
||||
LocalTime now = LocalTime.now().withNano(0);
|
||||
if (now.isAfter(startTime) && now.isBefore(endTime)) {
|
||||
return YesNoEnum.YES.value();
|
||||
}
|
||||
return YesNoEnum.NO.value();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前日期是星期几的英文名称
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user