优化代码修复bug

This commit is contained in:
paulGao 2022-01-04 19:55:51 +08:00
parent 383cbc0b53
commit ddd7c336cf
10 changed files with 64 additions and 70 deletions

View File

@ -31,8 +31,7 @@ public class SearchVO implements Serializable {
if (StringUtils.isEmpty(startDate)) { if (StringUtils.isEmpty(startDate)) {
return null; return null;
} }
Date date = DateUtil.toDate(startDate, DateUtil.STANDARD_DATE_FORMAT); return DateUtil.toDate(startDate, DateUtil.STANDARD_DATE_FORMAT);
return date;
} }
public Date getConvertEndDate() { public Date getConvertEndDate() {

View File

@ -119,7 +119,7 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
@Override @Override
public List<Goods> getByBrandIds(List<String> brandIds) { public List<Goods> getByBrandIds(List<String> brandIds) {
LambdaQueryWrapper<Goods> lambdaQueryWrapper = new LambdaQueryWrapper<Goods>(); LambdaQueryWrapper<Goods> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(Goods::getBrandId, brandIds); lambdaQueryWrapper.in(Goods::getBrandId, brandIds);
return list(lambdaQueryWrapper); return list(lambdaQueryWrapper);
} }
@ -306,11 +306,7 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
} }
if (GoodsStatusEnum.DOWN.equals(goodsStatusEnum)) { if (GoodsStatusEnum.DOWN.equals(goodsStatusEnum)) {
this.deleteEsGoods(goodsIds);
//商品删除消息
String destination = rocketmqCustomProperties.getGoodsTopic() + ":" + GoodsTagsEnum.GOODS_DELETE.name();
//发送mq消息
rocketMQTemplate.asyncSend(destination, JSONUtil.toJsonStr(goodsIds), RocketmqSendCallbackBuilder.commonCallback());
} }
return result; return result;
} }
@ -340,6 +336,9 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
for (Goods goods : goodsList) { for (Goods goods : goodsList) {
goodsSkuService.updateGoodsSkuStatus(goods); goodsSkuService.updateGoodsSkuStatus(goods);
} }
if (GoodsStatusEnum.DOWN.equals(goodsStatusEnum)) {
this.deleteEsGoods(goodsIds);
}
return result; return result;
} }
@ -361,10 +360,7 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
goodsSkuService.updateGoodsSkuStatus(goods); goodsSkuService.updateGoodsSkuStatus(goods);
} }
//商品删除消息 this.deleteEsGoods(goodsIds);
String destination = rocketmqCustomProperties.getGoodsTopic() + ":" + GoodsTagsEnum.GOODS_DELETE.name();
//发送mq消息
rocketMQTemplate.asyncSend(destination, JSONUtil.toJsonStr(goodsIds), RocketmqSendCallbackBuilder.commonCallback());
return true; return true;
} }
@ -447,6 +443,19 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
.eq(Goods::getMarketEnable, GoodsStatusEnum.UPPER.name())); .eq(Goods::getMarketEnable, GoodsStatusEnum.UPPER.name()));
} }
/**
* 发送删除es索引的信息
*
* @param goodsIds 商品id
*/
private void deleteEsGoods(List<String> 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<GoodsMapper, Goods> implements
/** /**
* 判断商品是否存在 * 判断商品是否存在
* *
* @param goodsId * @param goodsId 商品id
* @return * @return 商品信息
*/ */
private Goods checkExist(String goodsId) { private Goods checkExist(String goodsId) {
Goods goods = getById(goodsId); Goods goods = getById(goodsId);
@ -579,20 +588,6 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
} }
} }
/**
* 获取UpdateWrapper检查用户越权
*
* @return updateWrapper
*/
private LambdaUpdateWrapper<Goods> getUpdateWrapperByManagerAuthority() {
LambdaUpdateWrapper<Goods> updateWrapper = new LambdaUpdateWrapper<>();
AuthUser authUser = this.checkStoreAuthority();
if (authUser != null) {
updateWrapper.eq(Goods::getStoreId, authUser.getStoreId());
}
return updateWrapper;
}
/** /**
* 获取QueryWrapper检查用户越权 * 获取QueryWrapper检查用户越权
* *

View File

@ -1,27 +1,22 @@
package cn.lili.modules.member.serviceimpl; package cn.lili.modules.member.serviceimpl;
import cn.lili.modules.member.entity.dos.Member; import cn.hutool.core.text.CharSequenceUtil;
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.lili.common.utils.StringUtils; import cn.lili.common.utils.StringUtils;
import cn.lili.common.vo.PageVO; 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.dos.MemberPointsHistory;
import cn.lili.modules.member.entity.vo.MemberPointsHistoryVO; import cn.lili.modules.member.entity.vo.MemberPointsHistoryVO;
import cn.lili.modules.member.mapper.MemberPointsHistoryMapper; import cn.lili.modules.member.mapper.MemberPointsHistoryMapper;
import cn.lili.modules.member.service.MemberPointsHistoryService; 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.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/** /**
* 会员积分历史业务层实现 * 会员积分历史业务层实现
* *
@ -51,8 +46,8 @@ public class MemberPointsHistoryServiceImpl extends ServiceImpl<MemberPointsHist
@Override @Override
public IPage<MemberPointsHistory> MemberPointsHistoryList(PageVO page, String memberId, String memberName) { public IPage<MemberPointsHistory> MemberPointsHistoryList(PageVO page, String memberId, String memberName) {
LambdaQueryWrapper<MemberPointsHistory> lambdaQueryWrapper = new LambdaQueryWrapper<MemberPointsHistory>() LambdaQueryWrapper<MemberPointsHistory> lambdaQueryWrapper = new LambdaQueryWrapper<MemberPointsHistory>()
.eq(memberId != null, MemberPointsHistory::getMemberId, memberId) .eq(CharSequenceUtil.isNotEmpty(memberId), MemberPointsHistory::getMemberId, memberId)
.like(memberName != null, MemberPointsHistory::getMemberName, memberName); .like(CharSequenceUtil.isNotEmpty(memberName), MemberPointsHistory::getMemberName, memberName);
//如果排序为空则默认创建时间倒序 //如果排序为空则默认创建时间倒序
if (StringUtils.isEmpty(page.getSort())) { if (StringUtils.isEmpty(page.getSort())) {
page.setSort("createTime"); page.setSort("createTime");

View File

@ -3,12 +3,12 @@ package cn.lili.modules.order.cart.entity.vo;
import cn.lili.modules.distribution.entity.dos.DistributionGoods; import cn.lili.modules.distribution.entity.dos.DistributionGoods;
import cn.lili.modules.goods.entity.dos.GoodsSku; import cn.lili.modules.goods.entity.dos.GoodsSku;
import cn.lili.modules.order.cart.entity.enums.CartTypeEnum; import cn.lili.modules.order.cart.entity.enums.CartTypeEnum;
import cn.lili.modules.promotion.tools.PromotionTools;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.io.Serializable; import java.io.Serializable;
import java.util.HashMap;
import java.util.Map; import java.util.Map;
/** /**
@ -115,9 +115,6 @@ public class CartSkuVO extends CartBase implements Serializable {
} }
public Map<String, Object> getPromotionMap() { public Map<String, Object> getPromotionMap() {
if (this.promotionMap == null) { return PromotionTools.filterInvalidPromotionsMap(this.promotionMap);
return new HashMap<>();
}
return promotionMap;
} }
} }

View File

@ -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.cart.render.CartRenderStep;
import cn.lili.modules.order.order.entity.dos.Order; import cn.lili.modules.order.order.entity.dos.Order;
import cn.lili.modules.order.order.service.OrderService; 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.Coupon;
import cn.lili.modules.promotion.entity.dos.Pintuan; import cn.lili.modules.promotion.entity.dos.Pintuan;
import cn.lili.modules.promotion.entity.dos.PointsGoods; import cn.lili.modules.promotion.entity.dos.PointsGoods;
@ -119,17 +118,6 @@ public class CheckDataRender implements CartRenderStep {
//设置失效消息 //设置失效消息
cartSkuVO.setErrorMessage("商品库存不足,现有库存数量[" + dataSku.getQuantity() + "]"); 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)));
}
} }
} }

View File

@ -797,7 +797,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
if (count == 1) { if (count == 1) {
//如果为开团订单则发布一个一小时的延时任务时间到达后如果未成团则自动结束未开启虚拟成团的情况下 //如果为开团订单则发布一个一小时的延时任务时间到达后如果未成团则自动结束未开启虚拟成团的情况下
PintuanOrderMessage pintuanOrderMessage = new PintuanOrderMessage(); 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.setOrderSn(parentOrderSn);
pintuanOrderMessage.setPintuanId(pintuanId); pintuanOrderMessage.setPintuanId(pintuanId);
TimeTriggerMsg timeTriggerMsg = new TimeTriggerMsg(TimeExecuteConstant.PROMOTION_EXECUTOR, TimeTriggerMsg timeTriggerMsg = new TimeTriggerMsg(TimeExecuteConstant.PROMOTION_EXECUTOR,

View File

@ -1,5 +1,6 @@
package cn.lili.modules.permission.serviceimpl; package cn.lili.modules.permission.serviceimpl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.text.CharSequenceUtil;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.SearchVO; import cn.lili.common.vo.SearchVO;
@ -101,11 +102,8 @@ public class SystemLogServiceImpl implements SystemLogService {
//大于方法 //大于方法
filterBuilder.must( filterBuilder.must(
QueryBuilders.rangeQuery("createTime") QueryBuilders.rangeQuery("createTime")
.gte(searchVo.getConvertStartDate().getTime())); .gte(DateUtil.format(searchVo.getConvertStartDate(), "dd/MM/yyyy"))
//小于方法 .lte(DateUtil.format(searchVo.getConvertEndDate(), "dd/MM/yyyy")).format("dd/MM/yyyy||yyyy"));
filterBuilder.must(
QueryBuilders.rangeQuery("createTime")
.lt(searchVo.getConvertEndDate().getTime()));
nativeSearchQueryBuilder.withFilter(filterBuilder); nativeSearchQueryBuilder.withFilter(filterBuilder);
} }

View File

@ -69,7 +69,7 @@ public class KanjiaActivityGoodsServiceImpl extends AbstractPromotionsServiceImp
kanJiaActivityGoodsDTO.setStartTime(kanJiaActivityGoodsOperationDTO.getStartTime()); kanJiaActivityGoodsDTO.setStartTime(kanJiaActivityGoodsOperationDTO.getStartTime());
kanJiaActivityGoodsDTO.setEndTime(kanJiaActivityGoodsOperationDTO.getEndTime()); kanJiaActivityGoodsDTO.setEndTime(kanJiaActivityGoodsOperationDTO.getEndTime());
//检测同一时间段不能允许添加相同的商品 //检测同一时间段不能允许添加相同的商品
if (this.checkSkuDuplicate(goodsSku.getId(), kanJiaActivityGoodsDTO) != null) { if (this.checkSkuDuplicate(kanJiaActivityGoodsDTO) != null) {
throw new ServiceException("商品id为" + goodsSku.getId() + "的商品已参加砍价商品活动!"); throw new ServiceException("商品id为" + goodsSku.getId() + "的商品已参加砍价商品活动!");
} }
kanJiaActivityGoodsDTO.setGoodsSku(goodsSku); kanJiaActivityGoodsDTO.setGoodsSku(goodsSku);
@ -172,13 +172,12 @@ public class KanjiaActivityGoodsServiceImpl extends AbstractPromotionsServiceImp
/** /**
* 检查砍价商品是否重复存在 * 检查砍价商品是否重复存在
* *
* @param skuId 商品SkuId
* @param kanJiaActivityGoodsDTO 砍价商品 * @param kanJiaActivityGoodsDTO 砍价商品
* @return 积分商品信息 * @return 积分商品信息
*/ */
private KanjiaActivityGoods checkSkuDuplicate(String skuId, KanjiaActivityGoodsDTO kanJiaActivityGoodsDTO) { private KanjiaActivityGoods checkSkuDuplicate(KanjiaActivityGoodsDTO kanJiaActivityGoodsDTO) {
QueryWrapper<KanjiaActivityGoods> queryWrapper = new QueryWrapper<>(); QueryWrapper<KanjiaActivityGoods> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("sku_id", skuId); queryWrapper.eq("sku_id", kanJiaActivityGoodsDTO.getSkuId());
if (kanJiaActivityGoodsDTO != null && CharSequenceUtil.isNotEmpty(kanJiaActivityGoodsDTO.getId())) { if (kanJiaActivityGoodsDTO != null && CharSequenceUtil.isNotEmpty(kanJiaActivityGoodsDTO.getId())) {
queryWrapper.ne("id", kanJiaActivityGoodsDTO.getId()); queryWrapper.ne("id", kanJiaActivityGoodsDTO.getId());
} }
@ -263,7 +262,7 @@ public class KanjiaActivityGoodsServiceImpl extends AbstractPromotionsServiceImp
//检测开始结束时间是否正确 //检测开始结束时间是否正确
PromotionTools.checkPromotionTime(kanJiaActivityGoodsDTO.getStartTime(), kanJiaActivityGoodsDTO.getEndTime()); PromotionTools.checkPromotionTime(kanJiaActivityGoodsDTO.getStartTime(), kanJiaActivityGoodsDTO.getEndTime());
//检测同一时间段不能允许添加相同的商品 //检测同一时间段不能允许添加相同的商品
if (this.checkSkuDuplicate(goodsSku.getId(), kanJiaActivityGoodsDTO) != null) { if (this.checkSkuDuplicate(kanJiaActivityGoodsDTO) != null) {
throw new ServiceException("商品id为" + goodsSku.getId() + "的商品已参加砍价商品活动!"); throw new ServiceException("商品id为" + goodsSku.getId() + "的商品已参加砍价商品活动!");
} }
this.promotionGoodsService.deletePromotionGoods(Collections.singletonList(kanJiaActivityGoodsDTO.getId())); this.promotionGoodsService.deletePromotionGoods(Collections.singletonList(kanJiaActivityGoodsDTO.getId()));

View File

@ -3,6 +3,8 @@ package cn.lili.modules.promotion.tools;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.CharSequenceUtil; 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.PromotionTypeEnum;
import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.ResultCode;
import cn.lili.common.exception.ServiceException; 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 cn.lili.modules.promotion.entity.enums.PromotionsStatusEnum;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import java.util.Arrays; import java.util.*;
import java.util.Date;
import java.util.List;
import java.util.function.Consumer; import java.util.function.Consumer;
import java.util.stream.Collectors;
/** /**
@ -157,4 +158,19 @@ public class PromotionTools {
return nextHour; return nextHour;
} }
public static Map<String, Object> filterInvalidPromotionsMap(Map<String, Object> 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));
}
} }

View File

@ -4,6 +4,7 @@ import cn.lili.common.enums.PromotionTypeEnum;
import cn.lili.elasticsearch.EsSuffix; import cn.lili.elasticsearch.EsSuffix;
import cn.lili.modules.goods.entity.dos.GoodsSku; import cn.lili.modules.goods.entity.dos.GoodsSku;
import cn.lili.modules.goods.entity.dto.GoodsParamsDTO; import cn.lili.modules.goods.entity.dto.GoodsParamsDTO;
import cn.lili.modules.promotion.tools.PromotionTools;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -378,4 +379,8 @@ public class EsGoodsIndex implements Serializable {
this.releaseTime = new Date(); this.releaseTime = new Date();
} }
} }
public Map<String, Object> getPromotionMap() {
return PromotionTools.filterInvalidPromotionsMap(this.promotionMap);
}
} }