diff --git a/framework/src/main/java/cn/lili/common/vo/SearchVO.java b/framework/src/main/java/cn/lili/common/vo/SearchVO.java index d0d6c818..3f752e79 100644 --- a/framework/src/main/java/cn/lili/common/vo/SearchVO.java +++ b/framework/src/main/java/cn/lili/common/vo/SearchVO.java @@ -31,8 +31,7 @@ public class SearchVO implements Serializable { if (StringUtils.isEmpty(startDate)) { return null; } - Date date = DateUtil.toDate(startDate, DateUtil.STANDARD_DATE_FORMAT); - return date; + return DateUtil.toDate(startDate, DateUtil.STANDARD_DATE_FORMAT); } public Date getConvertEndDate() { diff --git a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsServiceImpl.java b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsServiceImpl.java index 101ad3ee..683bf93b 100644 --- a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsServiceImpl.java @@ -119,7 +119,7 @@ public class GoodsServiceImpl extends ServiceImpl implements @Override public List getByBrandIds(List brandIds) { - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper(); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.in(Goods::getBrandId, brandIds); return list(lambdaQueryWrapper); } @@ -306,11 +306,7 @@ public class GoodsServiceImpl extends ServiceImpl implements } if (GoodsStatusEnum.DOWN.equals(goodsStatusEnum)) { - - //商品删除消息 - String destination = rocketmqCustomProperties.getGoodsTopic() + ":" + GoodsTagsEnum.GOODS_DELETE.name(); - //发送mq消息 - rocketMQTemplate.asyncSend(destination, JSONUtil.toJsonStr(goodsIds), RocketmqSendCallbackBuilder.commonCallback()); + this.deleteEsGoods(goodsIds); } return result; } @@ -340,6 +336,9 @@ public class GoodsServiceImpl extends ServiceImpl implements for (Goods goods : goodsList) { goodsSkuService.updateGoodsSkuStatus(goods); } + if (GoodsStatusEnum.DOWN.equals(goodsStatusEnum)) { + this.deleteEsGoods(goodsIds); + } return result; } @@ -361,10 +360,7 @@ public class GoodsServiceImpl extends ServiceImpl implements goodsSkuService.updateGoodsSkuStatus(goods); } - //商品删除消息 - String destination = rocketmqCustomProperties.getGoodsTopic() + ":" + GoodsTagsEnum.GOODS_DELETE.name(); - //发送mq消息 - rocketMQTemplate.asyncSend(destination, JSONUtil.toJsonStr(goodsIds), RocketmqSendCallbackBuilder.commonCallback()); + this.deleteEsGoods(goodsIds); return true; } @@ -447,6 +443,19 @@ public class GoodsServiceImpl extends ServiceImpl implements .eq(Goods::getMarketEnable, GoodsStatusEnum.UPPER.name())); } + + /** + * 发送删除es索引的信息 + * + * @param goodsIds 商品id + */ + private void deleteEsGoods(List goodsIds) { + //商品删除消息 + String destination = rocketmqCustomProperties.getGoodsTopic() + ":" + GoodsTagsEnum.GOODS_DELETE.name(); + //发送mq消息 + rocketMQTemplate.asyncSend(destination, JSONUtil.toJsonStr(goodsIds), RocketmqSendCallbackBuilder.commonCallback()); + } + /** * 添加商品默认图片 * @@ -522,8 +531,8 @@ public class GoodsServiceImpl extends ServiceImpl implements /** * 判断商品是否存在 * - * @param goodsId - * @return + * @param goodsId 商品id + * @return 商品信息 */ private Goods checkExist(String goodsId) { Goods goods = getById(goodsId); @@ -579,20 +588,6 @@ public class GoodsServiceImpl extends ServiceImpl implements } } - /** - * 获取UpdateWrapper(检查用户越权) - * - * @return updateWrapper - */ - private LambdaUpdateWrapper getUpdateWrapperByManagerAuthority() { - LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); - AuthUser authUser = this.checkStoreAuthority(); - if (authUser != null) { - updateWrapper.eq(Goods::getStoreId, authUser.getStoreId()); - } - return updateWrapper; - } - /** * 获取QueryWrapper(检查用户越权) * diff --git a/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberPointsHistoryServiceImpl.java b/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberPointsHistoryServiceImpl.java index 6f6736da..f1557ca6 100644 --- a/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberPointsHistoryServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberPointsHistoryServiceImpl.java @@ -1,27 +1,22 @@ package cn.lili.modules.member.serviceimpl; -import cn.lili.modules.member.entity.dos.Member; -import cn.lili.modules.member.entity.enums.PointTypeEnum; -import cn.lili.modules.member.mapper.MemberMapper; -import cn.lili.modules.member.service.MemberService; -import cn.lili.mybatis.util.PageUtil; +import cn.hutool.core.text.CharSequenceUtil; import cn.lili.common.utils.StringUtils; import cn.lili.common.vo.PageVO; +import cn.lili.modules.member.entity.dos.Member; import cn.lili.modules.member.entity.dos.MemberPointsHistory; import cn.lili.modules.member.entity.vo.MemberPointsHistoryVO; import cn.lili.modules.member.mapper.MemberPointsHistoryMapper; import cn.lili.modules.member.service.MemberPointsHistoryService; +import cn.lili.modules.member.service.MemberService; +import cn.lili.mybatis.util.PageUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.List; - /** * 会员积分历史业务层实现 * @@ -51,8 +46,8 @@ public class MemberPointsHistoryServiceImpl extends ServiceImpl MemberPointsHistoryList(PageVO page, String memberId, String memberName) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper() - .eq(memberId != null, MemberPointsHistory::getMemberId, memberId) - .like(memberName != null, MemberPointsHistory::getMemberName, memberName); + .eq(CharSequenceUtil.isNotEmpty(memberId), MemberPointsHistory::getMemberId, memberId) + .like(CharSequenceUtil.isNotEmpty(memberName), MemberPointsHistory::getMemberName, memberName); //如果排序为空,则默认创建时间倒序 if (StringUtils.isEmpty(page.getSort())) { page.setSort("createTime"); diff --git a/framework/src/main/java/cn/lili/modules/order/cart/entity/vo/CartSkuVO.java b/framework/src/main/java/cn/lili/modules/order/cart/entity/vo/CartSkuVO.java index 59058dde..59f2e7ea 100644 --- a/framework/src/main/java/cn/lili/modules/order/cart/entity/vo/CartSkuVO.java +++ b/framework/src/main/java/cn/lili/modules/order/cart/entity/vo/CartSkuVO.java @@ -3,12 +3,12 @@ package cn.lili.modules.order.cart.entity.vo; import cn.lili.modules.distribution.entity.dos.DistributionGoods; import cn.lili.modules.goods.entity.dos.GoodsSku; import cn.lili.modules.order.cart.entity.enums.CartTypeEnum; +import cn.lili.modules.promotion.tools.PromotionTools; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; -import java.util.HashMap; import java.util.Map; /** @@ -115,9 +115,6 @@ public class CartSkuVO extends CartBase implements Serializable { } public Map getPromotionMap() { - if (this.promotionMap == null) { - return new HashMap<>(); - } - return promotionMap; + return PromotionTools.filterInvalidPromotionsMap(this.promotionMap); } } diff --git a/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CheckDataRender.java b/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CheckDataRender.java index 6ddd6b2c..8012158f 100644 --- a/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CheckDataRender.java +++ b/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CheckDataRender.java @@ -22,7 +22,6 @@ import cn.lili.modules.order.cart.entity.vo.CartVO; import cn.lili.modules.order.cart.render.CartRenderStep; import cn.lili.modules.order.order.entity.dos.Order; import cn.lili.modules.order.order.service.OrderService; -import cn.lili.modules.promotion.entity.dos.BasePromotions; import cn.lili.modules.promotion.entity.dos.Coupon; import cn.lili.modules.promotion.entity.dos.Pintuan; import cn.lili.modules.promotion.entity.dos.PointsGoods; @@ -119,17 +118,6 @@ public class CheckDataRender implements CartRenderStep { //设置失效消息 cartSkuVO.setErrorMessage("商品库存不足,现有库存数量[" + dataSku.getQuantity() + "]"); } - //移除无效促销活动 - if (cartSkuVO.getPromotionMap() != null && !cartSkuVO.getPromotionMap().isEmpty()) { - cartSkuVO.setPromotionMap(cartSkuVO.getPromotionMap().entrySet().stream().filter(i -> { - JSONObject promotionsObj = JSONUtil.parseObj(i.getValue()); - BasePromotions basePromotions = promotionsObj.toBean(BasePromotions.class); - if (basePromotions.getStartTime() != null && basePromotions.getEndTime() != null) { - return basePromotions.getStartTime().getTime() <= System.currentTimeMillis() && basePromotions.getEndTime().getTime() >= System.currentTimeMillis(); - } - return true; - }).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue))); - } } } diff --git a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java index b2516414..206cfc32 100644 --- a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java @@ -797,7 +797,9 @@ public class OrderServiceImpl extends ServiceImpl implements if (count == 1) { //如果为开团订单,则发布一个一小时的延时任务,时间到达后,如果未成团则自动结束(未开启虚拟成团的情况下) PintuanOrderMessage pintuanOrderMessage = new PintuanOrderMessage(); - long startTime = DateUtil.offsetHour(new Date(), 1).getTime(); + //开团结束时间 +// long startTime = DateUtil.offsetHour(new Date(), 1).getTime(); + long startTime = DateUtil.offsetMinute(new Date(), 2).getTime(); pintuanOrderMessage.setOrderSn(parentOrderSn); pintuanOrderMessage.setPintuanId(pintuanId); TimeTriggerMsg timeTriggerMsg = new TimeTriggerMsg(TimeExecuteConstant.PROMOTION_EXECUTOR, diff --git a/framework/src/main/java/cn/lili/modules/permission/serviceimpl/SystemLogServiceImpl.java b/framework/src/main/java/cn/lili/modules/permission/serviceimpl/SystemLogServiceImpl.java index a1f21b30..1ea47de8 100644 --- a/framework/src/main/java/cn/lili/modules/permission/serviceimpl/SystemLogServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/permission/serviceimpl/SystemLogServiceImpl.java @@ -1,5 +1,6 @@ package cn.lili.modules.permission.serviceimpl; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.text.CharSequenceUtil; import cn.lili.common.vo.PageVO; import cn.lili.common.vo.SearchVO; @@ -101,11 +102,8 @@ public class SystemLogServiceImpl implements SystemLogService { //大于方法 filterBuilder.must( QueryBuilders.rangeQuery("createTime") - .gte(searchVo.getConvertStartDate().getTime())); - //小于方法 - filterBuilder.must( - QueryBuilders.rangeQuery("createTime") - .lt(searchVo.getConvertEndDate().getTime())); + .gte(DateUtil.format(searchVo.getConvertStartDate(), "dd/MM/yyyy")) + .lte(DateUtil.format(searchVo.getConvertEndDate(), "dd/MM/yyyy")).format("dd/MM/yyyy||yyyy")); nativeSearchQueryBuilder.withFilter(filterBuilder); } diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/KanjiaActivityGoodsServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/KanjiaActivityGoodsServiceImpl.java index 7b4e8db4..9a2f4d8f 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/KanjiaActivityGoodsServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/KanjiaActivityGoodsServiceImpl.java @@ -69,7 +69,7 @@ public class KanjiaActivityGoodsServiceImpl extends AbstractPromotionsServiceImp kanJiaActivityGoodsDTO.setStartTime(kanJiaActivityGoodsOperationDTO.getStartTime()); kanJiaActivityGoodsDTO.setEndTime(kanJiaActivityGoodsOperationDTO.getEndTime()); //检测同一时间段不能允许添加相同的商品 - if (this.checkSkuDuplicate(goodsSku.getId(), kanJiaActivityGoodsDTO) != null) { + if (this.checkSkuDuplicate(kanJiaActivityGoodsDTO) != null) { throw new ServiceException("商品id为" + goodsSku.getId() + "的商品已参加砍价商品活动!"); } kanJiaActivityGoodsDTO.setGoodsSku(goodsSku); @@ -172,13 +172,12 @@ public class KanjiaActivityGoodsServiceImpl extends AbstractPromotionsServiceImp /** * 检查砍价商品是否重复存在 * - * @param skuId 商品SkuId * @param kanJiaActivityGoodsDTO 砍价商品 * @return 积分商品信息 */ - private KanjiaActivityGoods checkSkuDuplicate(String skuId, KanjiaActivityGoodsDTO kanJiaActivityGoodsDTO) { + private KanjiaActivityGoods checkSkuDuplicate(KanjiaActivityGoodsDTO kanJiaActivityGoodsDTO) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("sku_id", skuId); + queryWrapper.eq("sku_id", kanJiaActivityGoodsDTO.getSkuId()); if (kanJiaActivityGoodsDTO != null && CharSequenceUtil.isNotEmpty(kanJiaActivityGoodsDTO.getId())) { queryWrapper.ne("id", kanJiaActivityGoodsDTO.getId()); } @@ -263,7 +262,7 @@ public class KanjiaActivityGoodsServiceImpl extends AbstractPromotionsServiceImp //检测开始结束时间是否正确 PromotionTools.checkPromotionTime(kanJiaActivityGoodsDTO.getStartTime(), kanJiaActivityGoodsDTO.getEndTime()); //检测同一时间段不能允许添加相同的商品 - if (this.checkSkuDuplicate(goodsSku.getId(), kanJiaActivityGoodsDTO) != null) { + if (this.checkSkuDuplicate(kanJiaActivityGoodsDTO) != null) { throw new ServiceException("商品id为" + goodsSku.getId() + "的商品已参加砍价商品活动!"); } this.promotionGoodsService.deletePromotionGoods(Collections.singletonList(kanJiaActivityGoodsDTO.getId())); diff --git a/framework/src/main/java/cn/lili/modules/promotion/tools/PromotionTools.java b/framework/src/main/java/cn/lili/modules/promotion/tools/PromotionTools.java index 48e9dfc8..125bde42 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/tools/PromotionTools.java +++ b/framework/src/main/java/cn/lili/modules/promotion/tools/PromotionTools.java @@ -3,6 +3,8 @@ package cn.lili.modules.promotion.tools; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.text.CharSequenceUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; import cn.lili.common.enums.PromotionTypeEnum; import cn.lili.common.enums.ResultCode; import cn.lili.common.exception.ServiceException; @@ -11,10 +13,9 @@ import cn.lili.modules.promotion.entity.dos.PromotionGoods; import cn.lili.modules.promotion.entity.enums.PromotionsStatusEnum; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import java.util.Arrays; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.function.Consumer; +import java.util.stream.Collectors; /** @@ -157,4 +158,19 @@ public class PromotionTools { return nextHour; } + public static Map filterInvalidPromotionsMap(Map map) { + if (map == null) { + return new HashMap<>(); + } + //移除无效促销活动 + return map.entrySet().stream().filter(i -> { + JSONObject promotionsObj = JSONUtil.parseObj(i.getValue()); + BasePromotions basePromotions = promotionsObj.toBean(BasePromotions.class); + if (basePromotions.getStartTime() != null && basePromotions.getEndTime() != null) { + return basePromotions.getStartTime().getTime() <= System.currentTimeMillis() && basePromotions.getEndTime().getTime() >= System.currentTimeMillis(); + } + return true; + }).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + } + } diff --git a/framework/src/main/java/cn/lili/modules/search/entity/dos/EsGoodsIndex.java b/framework/src/main/java/cn/lili/modules/search/entity/dos/EsGoodsIndex.java index 66ffdd64..9576d6b9 100644 --- a/framework/src/main/java/cn/lili/modules/search/entity/dos/EsGoodsIndex.java +++ b/framework/src/main/java/cn/lili/modules/search/entity/dos/EsGoodsIndex.java @@ -4,6 +4,7 @@ import cn.lili.common.enums.PromotionTypeEnum; import cn.lili.elasticsearch.EsSuffix; import cn.lili.modules.goods.entity.dos.GoodsSku; import cn.lili.modules.goods.entity.dto.GoodsParamsDTO; +import cn.lili.modules.promotion.tools.PromotionTools; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -378,4 +379,8 @@ public class EsGoodsIndex implements Serializable { this.releaseTime = new Date(); } } + + public Map getPromotionMap() { + return PromotionTools.filterInvalidPromotionsMap(this.promotionMap); + } }