package com.ruoyi.order.service.impl; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient; import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.chargingPile.api.model.TChargingPile; import com.ruoyi.chargingPile.api.vo.SiteNameVO; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.order.api.model.*; import com.ruoyi.order.api.query.TOrderAppealQuery; import com.ruoyi.order.api.vo.TOrderAppealVO; import com.ruoyi.order.mapper.*; import com.ruoyi.order.service.TChargingOrderService; import com.ruoyi.order.service.TOrderAppealService; import com.ruoyi.other.api.domain.TGoods; import com.ruoyi.other.api.feignClient.GoodsClient; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; /** *

* 服务实现类 *

* * @author xiaochen * @since 2024-08-07 */ @Service public class TOrderAppealServiceImpl extends ServiceImpl implements TOrderAppealService { @Autowired private TChargingOrderMapper chargingOrderMapper; @Autowired private TShoppingOrderMapper shoppingOrderMapper; @Autowired private GoodsClient goodsClient; @Autowired private ChargingGunClient chargingGunClient; @Override public PageInfo pageList(TOrderAppealQuery query) { PageInfo pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize()); List list = this.baseMapper.pageList(query,pageInfo); List orderIds = list.stream().map(TOrderAppealVO::getOrderId).collect(Collectors.toList()); if(CollectionUtils.isEmpty(orderIds)){ return new PageInfo<>(); } // 查询当前页的订单 List chargingOrders = chargingOrderMapper.selectList(Wrappers.lambdaQuery(TChargingOrder.class) .in(TChargingOrder::getId, orderIds)); List shoppingOrders = shoppingOrderMapper.selectList(Wrappers.lambdaQuery(TShoppingOrder.class) .in(TShoppingOrder::getId, orderIds)); list.forEach(item -> { if (item.getOrderType() == 1) { TChargingOrder tChargingOrder = chargingOrders.stream().filter(chargingOrder -> chargingOrder.getId().equals(item.getOrderId())).findFirst().orElse(null); if(Objects.nonNull(tChargingOrder)){ item.setChargingOrder(tChargingOrder); SiteNameVO siteNameVO = chargingGunClient.getAllInfoById(tChargingOrder.getChargingGunId()).getData(); if(Objects.nonNull(siteNameVO)){ item.setGunName(siteNameVO.getGunName()); item.setGunNumber(siteNameVO.getGunNumber()); item.setPileName(siteNameVO.getPileName()); item.setPileNumber(siteNameVO.getPileNumber()); item.setSiteName(siteNameVO.getSiteName()); item.setEndMode(tChargingOrder.getEndMode()); } } }else if (item.getOrderType() == 2) { TShoppingOrder tShoppingOrder = shoppingOrders.stream().filter(shoppingOrder -> shoppingOrder.getId().equals(item.getOrderId())).findFirst().orElse(null); setGoodsInfo(item,tShoppingOrder); } item.setOrderIdStr(item.getOrderId().toString()); }); list.forEach(e->e.setUid(e.getId().toString())); pageInfo.setRecords(list); return pageInfo; } @Override public TOrderAppealVO getDetailById(String id) { TOrderAppeal orderAppeal = this.baseMapper.selectById(id); TOrderAppealVO orderAppealVO = new TOrderAppealVO(); BeanUtils.copyProperties(orderAppeal,orderAppealVO); // 查询申诉详情 if (orderAppeal.getOrderType() == 1) { TChargingOrder tChargingOrder = chargingOrderMapper.selectById(orderAppeal.getOrderId()); orderAppealVO.setChargingOrder(tChargingOrder); if(Objects.nonNull(tChargingOrder)){ SiteNameVO siteNameVO = chargingGunClient.getAllInfoById(tChargingOrder.getChargingGunId()).getData(); if(Objects.nonNull(siteNameVO)){ orderAppealVO.setGunName(siteNameVO.getGunName()); orderAppealVO.setGunNumber(siteNameVO.getGunNumber()); orderAppealVO.setPileName(siteNameVO.getPileName()); orderAppealVO.setPileNumber(siteNameVO.getPileNumber()); orderAppealVO.setSiteName(siteNameVO.getSiteName()); } orderAppealVO.setEndMode(tChargingOrder.getEndMode()); } }else if (orderAppeal.getOrderType() == 2) { TShoppingOrder tShoppingOrder = shoppingOrderMapper.selectById(orderAppeal.getOrderId()); setGoodsInfo(orderAppealVO,tShoppingOrder); } orderAppealVO.setOrderIdStr(orderAppealVO.getOrderId().toString()); return orderAppealVO; } private void setGoodsInfo(TOrderAppealVO orderAppealVO,TShoppingOrder tShoppingOrder){ if(Objects.nonNull(tShoppingOrder)){ orderAppealVO.setShoppingOrder(tShoppingOrder); TGoods goods = goodsClient.getGoodsById(tShoppingOrder.getGoodsId()).getData(); if(Objects.nonNull(goods)){ orderAppealVO.setGoodsName(goods.getName()); orderAppealVO.setGoodsPicture(goods.getCoverPicture()); } } } }