ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingGunFallbackFactory.java
@@ -4,6 +4,7 @@ import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient; import com.ruoyi.chargingPile.api.model.TChargingGun; import com.ruoyi.chargingPile.api.model.TChargingPile; import com.ruoyi.chargingPile.api.vo.SiteNameVO; import com.ruoyi.common.core.domain.R; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -36,6 +37,11 @@ public R<TChargingGun> getChargingGunById(Integer id) { return R.fail("根据id获取充电枪失败:" + throwable.getMessage()); } @Override public R<SiteNameVO> getAllInfoById(Integer id) { return R.fail("通过枪id获取站点、桩、枪的名称失败:" + throwable.getMessage()); } }; } } ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java
@@ -2,6 +2,7 @@ import com.ruoyi.chargingPile.api.factory.ChargingGunFallbackFactory; import com.ruoyi.chargingPile.api.model.TChargingGun; import com.ruoyi.chargingPile.api.vo.SiteNameVO; import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import org.springframework.cloud.openfeign.FeignClient; @@ -32,4 +33,13 @@ */ @PostMapping("/t-charging-gun/getChargingGunById/{id}") R<TChargingGun> getChargingGunById(@PathVariable("id") Integer id); /** * 通过枪id获取站点、桩、枪的名称VO * @param id * @return */ @PostMapping("/t-charging-gun/getAllInfoById/{id}") R<SiteNameVO> getAllInfoById(@PathVariable("id") Integer id); } ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteNameVO.java
New file @@ -0,0 +1,24 @@ package com.ruoyi.chargingPile.api.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; @Data @ApiModel(value = "获取站点、桩、枪的名称VO") public class SiteNameVO implements Serializable { @ApiModelProperty(value = "站点名称") private String siteName; @ApiModelProperty(value = "桩名称") private String pileName; @ApiModelProperty(value = "桩号") private Integer pileNumber; @ApiModelProperty(value = "枪名称") private String gunName; @ApiModelProperty(value = "枪号") private String gunNumber; } ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TOrderAppealVO.java
@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.Getter; import lombok.Setter; @Data @ApiModel(value = "TOrderAppealVO对象", description = "订单申诉VO对象") @@ -15,10 +17,20 @@ @ApiModelProperty(value = "购物订单") private TShoppingOrder shoppingOrder; @ApiModelProperty(value = "兑换订单") private TExchangeOrder exchangeOrder; @ApiModelProperty(value = "商品名称") private String goodsName; @ApiModelProperty(value = "商品图片") private String goodsPicture; @ApiModelProperty(value = "会员订单") private TVipOrder vipOrder; @ApiModelProperty(value = "站点名称") private String siteName; @ApiModelProperty(value = "桩名称") private String pileName; @ApiModelProperty(value = "桩号") private Integer pileNumber; @ApiModelProperty(value = "枪名称") private String gunName; @ApiModelProperty(value = "枪号") private String gunNumber; } ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java
@@ -4,10 +4,13 @@ import cn.hutool.core.img.ImgUtil; import cn.hutool.core.io.FileUtil; import com.ruoyi.chargingPile.api.dto.TChargingGunDTO; import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.chargingPile.api.model.TChargingGun; import com.ruoyi.chargingPile.api.model.TChargingPile; import com.ruoyi.chargingPile.api.query.TChargingGunQuery; import com.ruoyi.chargingPile.api.vo.SiteNameVO; import com.ruoyi.chargingPile.api.vo.TChargingGunVO; import com.ruoyi.chargingPile.service.ISiteService; import com.ruoyi.chargingPile.service.TChargingGunService; import com.ruoyi.chargingPile.service.TChargingPileService; import com.ruoyi.chargingPile.util.QRCodeUtils; @@ -52,6 +55,8 @@ @Resource private TChargingPileService chargingPileService; @Resource private ISiteService siteService; @Autowired public TChargingGunController(TChargingGunService chargingGunService) { @@ -184,5 +189,24 @@ TChargingGun chargingGun = chargingGunService.getById(id); return R.ok(chargingGun); } /** * 根据id获取充电枪详情 * @param id * @return */ @ResponseBody @PostMapping(value = "/getAllInfoById/{id}") public R<SiteNameVO> getAllInfoById(@PathVariable Integer id){ SiteNameVO siteNameVO = new SiteNameVO(); TChargingGun chargingGun = chargingGunService.getById(id); siteNameVO.setGunName(chargingGun.getName()); siteNameVO.setGunNumber(chargingGun.getCode()); TChargingPile chargingPile = chargingPileService.getById(id); siteNameVO.setPileName(chargingPile.getName()); siteNameVO.setPileNumber(chargingPile.getNumber()); Site site = siteService.getById(id); siteNameVO.setSiteName(site.getName()); return R.ok(siteNameVO); } } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderAppealServiceImpl.java
@@ -2,6 +2,10 @@ 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; @@ -9,11 +13,14 @@ 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 java.util.List; import java.util.Objects; import java.util.stream.Collectors; /** @@ -30,11 +37,11 @@ @Autowired private TChargingOrderMapper chargingOrderMapper; @Autowired private TExchangeOrderMapper exchangeOrderMapper; @Autowired private TShoppingOrderMapper shoppingOrderMapper; @Autowired private TVipOrderMapper vipOrderMapper; private GoodsClient goodsClient; @Autowired private ChargingGunClient chargingGunClient; @Override public PageInfo<TOrderAppealVO> pageList(TOrderAppealQuery query) { @@ -44,21 +51,23 @@ // 查询当前页的订单 List<TChargingOrder> chargingOrders = chargingOrderMapper.selectList(Wrappers.lambdaQuery(TChargingOrder.class) .in(TChargingOrder::getId, orderIds)); List<TExchangeOrder> exchangeOrders = exchangeOrderMapper.selectList(Wrappers.lambdaQuery(TExchangeOrder.class) .in(TExchangeOrder::getId, orderIds)); List<TShoppingOrder> shoppingOrders = shoppingOrderMapper.selectList(Wrappers.lambdaQuery(TShoppingOrder.class) .in(TShoppingOrder::getId, orderIds)); List<TVipOrder> vipOrders = vipOrderMapper.selectList(Wrappers.lambdaQuery(TVipOrder.class) .in(TVipOrder::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(chargingOrders.stream().filter(chargingOrder -> chargingOrder.getId().equals(item.getOrderId())).findFirst().orElse(null)); } else if (item.getOrderType() == 2) { item.setExchangeOrder(exchangeOrders.stream().filter(exchangeOrder -> exchangeOrder.getId().equals(item.getOrderId())).findFirst().orElse(null)); SiteNameVO siteNameVO = chargingGunClient.getAllInfoById(tChargingOrder.getChargingGunId()).getData(); item.setGunName(siteNameVO.getGunName()); item.setGunNumber(siteNameVO.getGunNumber()); item.setPileName(siteNameVO.getPileName()); item.setPileNumber(siteNameVO.getPileNumber()); item.setSiteName(siteNameVO.getSiteName()); } }else if (item.getOrderType() == 3) { item.setShoppingOrder(shoppingOrders.stream().filter(shoppingOrder -> shoppingOrder.getId().equals(item.getOrderId())).findFirst().orElse(null)); }else if (item.getOrderType() == 4) { item.setVipOrder(vipOrders.stream().filter(vipOrder -> vipOrder.getId().equals(item.getOrderId())).findFirst().orElse(null)); TShoppingOrder tShoppingOrder = shoppingOrders.stream().filter(shoppingOrder -> shoppingOrder.getId().equals(item.getOrderId())).findFirst().orElse(null); setGoodsInfo(item,tShoppingOrder); } }); pageInfo.setRecords(list); @@ -73,13 +82,22 @@ // 查询申诉详情 if (orderAppeal.getOrderType() == 1) { orderAppealVO.setChargingOrder(chargingOrderMapper.selectById(orderAppeal.getOrderId())); } else if (orderAppeal.getOrderType() == 2) { orderAppealVO.setExchangeOrder(exchangeOrderMapper.selectById(orderAppeal.getOrderId())); }else if (orderAppeal.getOrderType() == 3) { orderAppealVO.setShoppingOrder(shoppingOrderMapper.selectById(orderAppeal.getOrderId())); }else if (orderAppeal.getOrderType() == 4) { orderAppealVO.setVipOrder(vipOrderMapper.selectById(orderAppeal.getOrderId())); TShoppingOrder tShoppingOrder = shoppingOrderMapper.selectById(orderAppeal.getOrderId()); setGoodsInfo(orderAppealVO,tShoppingOrder); } 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()); } } } }