优化代码修复bug
This commit is contained in:
parent
383cbc0b53
commit
ddd7c336cf
@ -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() {
|
||||
|
@ -119,7 +119,7 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
|
||||
|
||||
@Override
|
||||
public List<Goods> getByBrandIds(List<String> brandIds) {
|
||||
LambdaQueryWrapper<Goods> lambdaQueryWrapper = new LambdaQueryWrapper<Goods>();
|
||||
LambdaQueryWrapper<Goods> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.in(Goods::getBrandId, brandIds);
|
||||
return list(lambdaQueryWrapper);
|
||||
}
|
||||
@ -306,11 +306,7 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> 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<GoodsMapper, Goods> 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<GoodsMapper, Goods> 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<GoodsMapper, Goods> implements
|
||||
.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
|
||||
* @return
|
||||
* @param goodsId 商品id
|
||||
* @return 商品信息
|
||||
*/
|
||||
private Goods checkExist(String 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(检查用户越权)
|
||||
*
|
||||
|
@ -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<MemberPointsHist
|
||||
@Override
|
||||
public IPage<MemberPointsHistory> MemberPointsHistoryList(PageVO page, String memberId, String memberName) {
|
||||
LambdaQueryWrapper<MemberPointsHistory> lambdaQueryWrapper = new LambdaQueryWrapper<MemberPointsHistory>()
|
||||
.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");
|
||||
|
@ -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<String, Object> getPromotionMap() {
|
||||
if (this.promotionMap == null) {
|
||||
return new HashMap<>();
|
||||
}
|
||||
return promotionMap;
|
||||
return PromotionTools.filterInvalidPromotionsMap(this.promotionMap);
|
||||
}
|
||||
}
|
||||
|
@ -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)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -797,7 +797,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> 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,
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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<KanjiaActivityGoods> 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()));
|
||||
|
@ -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<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));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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<String, Object> getPromotionMap() {
|
||||
return PromotionTools.filterInvalidPromotionsMap(this.promotionMap);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user