| | |
| | | package cn.lili.modules.order.order.serviceimpl; |
| | | |
| | | import cn.hutool.core.bean.BeanUtil; |
| | | import cn.hutool.core.collection.CollectionUtil; |
| | | import cn.hutool.core.date.DateUtil; |
| | | import cn.hutool.core.io.IoUtil; |
| | | import cn.hutool.core.text.CharSequenceUtil; |
| | | import cn.hutool.core.util.ArrayUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.hutool.json.JSONUtil; |
| | | import cn.hutool.poi.excel.ExcelReader; |
| | |
| | | import cn.lili.common.security.enums.UserEnums; |
| | | import cn.lili.common.utils.CurrencyUtil; |
| | | import cn.lili.common.utils.SnowFlake; |
| | | import cn.lili.common.utils.StringUtils; |
| | | import cn.lili.modules.goods.entity.dos.Goods; |
| | | import cn.lili.modules.goods.entity.dto.GoodsCompleteMessage; |
| | | import cn.lili.modules.goods.service.GoodsService; |
| | | import cn.lili.modules.member.entity.dto.MemberAddressDTO; |
| | | import cn.lili.modules.order.cart.entity.dto.TradeDTO; |
| | | import cn.lili.modules.order.cart.entity.enums.DeliveryMethodEnum; |
| | |
| | | import cn.lili.modules.order.order.entity.dos.*; |
| | | import cn.lili.modules.order.order.entity.dto.*; |
| | | import cn.lili.modules.order.order.entity.enums.*; |
| | | import cn.lili.modules.order.order.entity.vo.OrderDetailVO; |
| | | import cn.lili.modules.order.order.entity.vo.OrderSimpleVO; |
| | | import cn.lili.modules.order.order.entity.vo.OrderVO; |
| | | import cn.lili.modules.order.order.entity.vo.PaymentLog; |
| | | import cn.lili.modules.order.order.entity.vo.*; |
| | | import cn.lili.modules.order.order.mapper.OrderMapper; |
| | | import cn.lili.modules.order.order.service.*; |
| | | import cn.lili.modules.order.trade.entity.dos.OrderLog; |
| | |
| | | import cn.lili.trigger.model.TimeExecuteConstant; |
| | | import cn.lili.trigger.model.TimeTriggerMsg; |
| | | import cn.lili.trigger.util.DelayQueueTools; |
| | | import cn.lili.utils.COSUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.Wrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.poi.ss.usermodel.Cell; |
| | |
| | | @Autowired |
| | | private SettingService settingService; |
| | | |
| | | |
| | | @Autowired |
| | | private GoodsService goodsService; |
| | | @Autowired |
| | | private COSUtil cosUtil; |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void intoDB(TradeDTO tradeDTO) { |
| | |
| | | return this.baseMapper.queryByParams(PageUtil.initPage(orderSearchParams), queryWrapper); |
| | | } |
| | | |
| | | @Override |
| | | public IPage<OrderSimpleXcxVO> queryByXcxParams(OrderSearchParams orderSearchParams) { |
| | | QueryWrapper queryWrapper = orderSearchParams.queryWrapper(); |
| | | queryWrapper.groupBy("o.id"); |
| | | queryWrapper.orderByDesc("o.id"); |
| | | IPage<OrderSimpleXcxVO> iPage = this.baseMapper.queryByXcxParams(PageUtil.initPage(orderSearchParams), queryWrapper); |
| | | Set<String> goodsIds = new HashSet<>(); |
| | | for (OrderSimpleXcxVO orderSimpleVO : iPage.getRecords()) { |
| | | orderSimpleVO.setOrderItems(orderSimpleVO.initOrderItems()); |
| | | String groupGoodsId = orderSimpleVO.getGroupGoodsId(); |
| | | if (StringUtils.isNotBlank(groupGoodsId)) { |
| | | goodsIds.addAll(Arrays.asList(groupGoodsId.split(","))); |
| | | } |
| | | } |
| | | if (CollectionUtil.isNotEmpty(goodsIds)) { |
| | | List<Goods> list = goodsService.list(Wrappers.<Goods>lambdaQuery().in(Goods::getId, goodsIds)); |
| | | Map<String, String> goodsVideos = list |
| | | .stream().collect(Collectors.toMap(Goods::getId, g-> |
| | | StringUtils.isNotBlank(g.getGoodsVideo())?g.getGoodsVideo():"" |
| | | )); |
| | | iPage.getRecords().forEach(orderSimpleVO -> { |
| | | orderSimpleVO.getOrderItems().forEach(orderItem -> { |
| | | String videoUrl = goodsVideos.get(orderItem.getGoodsId()); |
| | | if (StringUtils.isNotBlank(videoUrl)&&!videoUrl.contains("http")) { |
| | | orderItem.setVideo(cosUtil.getPreviewUrl(videoUrl)); |
| | | } |
| | | String image = orderItem.getImage(); |
| | | if (StringUtils.isNotBlank(image)&&!image.contains("http")) { |
| | | orderItem.setImage(cosUtil.getPreviewUrl(image)); |
| | | } |
| | | }); |
| | | }); |
| | | } |
| | | return iPage; |
| | | } |
| | | |
| | | /** |
| | | * 订单信息 |
| | | * |