diff --git a/jsowell-admin/src/main/java/com/jsowell/service/PileRemoteService.java b/jsowell-admin/src/main/java/com/jsowell/service/PileRemoteService.java index 85684de8f..8a95f3e74 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/PileRemoteService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/PileRemoteService.java @@ -19,7 +19,6 @@ import com.jsowell.pile.service.IPileBillingTemplateService; import com.jsowell.pile.service.IPileStationInfoService; import com.jsowell.pile.vo.web.BillingTemplateVO; import com.jsowell.pile.vo.web.PileDetailVO; -import com.jsowell.pile.vo.web.PileStationVO; import org.apache.commons.collections4.CollectionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -111,11 +110,13 @@ public class PileRemoteService { * @param pileSn 充电桩sn */ public void issueQRCode(String pileSn) { + issueQRCode(pileSn, null); + } + + public void issueQRCode(String pileSn, String qrcodePrefix) { IssueQRCodeCommand command = IssueQRCodeCommand.builder().pileSn(pileSn).build(); - // 查询充电站info - PileStationVO pileStationVO = pileStationInfoService.getStationInfoByPileSn(pileSn); - if (StringUtils.isNotBlank(pileStationVO.getQrcodePrefix())) { - command.setQrcodePrefix(pileStationVO.getQrcodePrefix()); + if (StringUtils.isNotBlank(qrcodePrefix)) { + command.setQrcodePrefix(qrcodePrefix); } ykcPushCommandService.pushIssueQRCodeCommand(command); } diff --git a/jsowell-admin/src/main/java/com/jsowell/service/PileService.java b/jsowell-admin/src/main/java/com/jsowell/service/PileService.java index 495599d77..60798cdca 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/PileService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/PileService.java @@ -9,6 +9,7 @@ import com.jsowell.common.core.page.PageResponse; import com.jsowell.common.enums.ykc.BusinessTypeEnum; import com.jsowell.common.enums.ykc.OrderPayModeEnum; import com.jsowell.common.enums.ykc.OrderStatusEnum; +import com.jsowell.common.enums.ykc.PileStatusEnum; import com.jsowell.common.enums.ykc.ReturnCodeEnum; import com.jsowell.common.exception.BusinessException; import com.jsowell.common.util.DateUtils; @@ -500,36 +501,27 @@ public class PileService { */ public int updateStationQRCodePrefix(QueryStationDTO dto) { String stationId = dto.getStationId(); - if (StringUtils.isBlank(stationId) || StringUtils.isBlank(dto.getQrcodePrefix())) { - return 0; - } // 通过站点id查询数据 - PileStationVO stationInfo = pileStationInfoService.getStationInfo(stationId); - if (stationInfo == null) { + PileStationInfo pileStationInfo = pileStationInfoService.selectPileStationInfoById(Long.parseLong(stationId)); + if (pileStationInfo == null) { return 0; } // 修改站点列表的 qrcodePrefix 字段 - PileStationInfo info = new PileStationInfo(); - info.setId(Long.parseLong(stationId)); - info.setQrcodePrefix(dto.getQrcodePrefix()); - int i = pileStationInfoService.updatePileStationInfo(info); + pileStationInfo.setQrcodePrefix(dto.getQrcodePrefix()); + int i = pileStationInfoService.updatePileStationInfo(pileStationInfo); if (i == 0) { return 0; } // 查出这个站点下的所有桩 List pileDetailVOS = pileBasicInfoService.selectPileListByStationIds(Lists.newArrayList(Long.parseLong(stationId))); List pileSnList = pileDetailVOS.stream() + .filter(x -> StringUtils.equals(x.getStatus(), PileStatusEnum.ON_LINE.getValue())) .map(PileDetailVO::getPileSn) .collect(Collectors.toList()); // IssueQRCodeCommand command; for (String pileSn : pileSnList) { // 给桩下发二维码 - // command = new IssueQRCodeCommand(); - // command.setPileSn(pileSn); - // command.setQrcodePrefix(dto.getQrcodePrefix()); - // ykcPushCommandService.pushIssueQRCodeCommand(command); - - pileRemoteService.issueQRCode(pileSn); + pileRemoteService.issueQRCode(pileSn, pileStationInfo.getQrcodePrefix()); } return 1; } diff --git a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/PileStationInfoController.java b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/PileStationInfoController.java index ced44f8f5..b3c835ecc 100644 --- a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/PileStationInfoController.java +++ b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/PileStationInfoController.java @@ -6,7 +6,9 @@ import com.jsowell.common.core.controller.BaseController; import com.jsowell.common.core.domain.AjaxResult; import com.jsowell.common.core.page.TableDataInfo; import com.jsowell.common.enums.BusinessType; +import com.jsowell.common.enums.ykc.ReturnCodeEnum; import com.jsowell.common.exception.BusinessException; +import com.jsowell.common.util.StringUtils; import com.jsowell.common.util.poi.ExcelUtil; import com.jsowell.pile.domain.PileStationInfo; import com.jsowell.pile.dto.FastCreateStationDTO; @@ -158,6 +160,10 @@ public class PileStationInfoController extends BaseController { @PreAuthorize("@ss.hasPermi('pile:station:edit')") @PostMapping("/updateStationQRCodePrefix") public AjaxResult updateStationQRCodePrefix(@RequestBody QueryStationDTO dto) { + // 校验入参 + if (StringUtils.isBlank(dto.getStationId()) || StringUtils.isBlank(dto.getQrcodePrefix())) { + return AjaxResult.error(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR.getValue()); + } return AjaxResult.success(pileService.updateStationQRCodePrefix(dto)); } } diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/service/yunkuaichong/impl/YKCPushCommandServiceImpl.java b/jsowell-netty/src/main/java/com/jsowell/netty/service/yunkuaichong/impl/YKCPushCommandServiceImpl.java index 412a803b4..87962c42c 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/service/yunkuaichong/impl/YKCPushCommandServiceImpl.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/service/yunkuaichong/impl/YKCPushCommandServiceImpl.java @@ -33,6 +33,7 @@ import com.jsowell.pile.service.IPileMsgRecordService; import com.jsowell.pile.service.IPileStationInfoService; import com.jsowell.pile.vo.web.BillingTemplateVO; import com.jsowell.pile.vo.web.PileModelInfoVO; +import com.jsowell.pile.vo.web.PileStationVO; import io.netty.buffer.ByteBuf; import io.netty.channel.Channel; import io.netty.channel.ChannelFuture; @@ -238,12 +239,18 @@ public class YKCPushCommandServiceImpl implements YKCPushCommandService { // String qrCodePrefix = "https://wx.charging.shbochong.cn/prepare_charge?code="; // String qrCodePrefix = pileBasicInfoService.getPileQrCodeUrl(null); String qrCodePrefix = ""; - if (StringUtils.isBlank(command.getQrcodePrefix())) { - // 为空则给平台二维码前缀 - qrCodePrefix = pileBasicInfoService.getPileQrCodeUrl(null); - }else { + if (StringUtils.isNotBlank(command.getQrcodePrefix())) { qrCodePrefix = command.getQrcodePrefix(); + } else { + PileStationVO pileStationVO = pileStationInfoService.getStationInfoByPileSn(pileSn); + if (StringUtils.isNotBlank(pileStationVO.getQrcodePrefix())) { + qrCodePrefix = pileStationVO.getQrcodePrefix(); + } else { + // 为空则给平台二维码前缀 + qrCodePrefix = pileBasicInfoService.getPileQrCodeUrl(null); + } } + byte[] qrCodePrefixByteArr = BytesUtil.str2Asc(qrCodePrefix); // 二维码前缀长度 二维码前缀长度长度最大不超过200 字节