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 a3b65eb1e..2cf3be917 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/PileService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/PileService.java @@ -16,11 +16,10 @@ import com.jsowell.common.util.DateUtils; import com.jsowell.common.util.SecurityUtils; import com.jsowell.common.util.StringUtils; import com.jsowell.common.util.id.SnUtils; +import com.jsowell.netty.command.ykc.IssueQRCodeCommand; +import com.jsowell.netty.service.yunkuaichong.YKCPushCommandService; import com.jsowell.pile.domain.*; -import com.jsowell.pile.dto.BatchCreatePileDTO; -import com.jsowell.pile.dto.MemberRegisterAndLoginDTO; -import com.jsowell.pile.dto.PileMemberBindingDTO; -import com.jsowell.pile.dto.QueryPersonPileDTO; +import com.jsowell.pile.dto.*; import com.jsowell.pile.service.*; import com.jsowell.pile.transaction.dto.PileTransactionDTO; import com.jsowell.pile.transaction.service.TransactionService; @@ -28,6 +27,7 @@ import com.jsowell.pile.vo.base.ConnectorInfoVO; import com.jsowell.pile.vo.base.MerchantInfoVO; import com.jsowell.pile.vo.base.PileInfoVO; import com.jsowell.pile.vo.uniapp.*; +import com.jsowell.pile.vo.web.PileDetailVO; import com.jsowell.pile.vo.web.PileStationVO; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.RandomStringUtils; @@ -80,6 +80,9 @@ public class PileService { @Autowired private IOrderBasicInfoService orderBasicInfoService; + @Autowired + private YKCPushCommandService ykcPushCommandService; + /** * 查询设备信息 * @@ -458,4 +461,44 @@ public class PileService { resultMap.put("sumUsedElectricity", String.valueOf(sumUsedElectricity)); return resultMap; } + + + /** + * 后管调用,给站点下所有桩下发二维码 + * @param dto + * @return + */ + 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) { + return 0; + } + // 修改站点列表的 qrcodePrefix 字段 + PileStationInfo info = new PileStationInfo(); + info.setId(Long.parseLong(stationId)); + info.setQrcodePrefix(dto.getQrcodePrefix()); + int i = pileStationInfoService.updatePileStationInfo(info); + if (i == 0) { + return 0; + } + // 查出这个站点下的所有桩 + List pileDetailVOS = pileBasicInfoService.selectPileListByStationIds(Lists.newArrayList(Long.parseLong(stationId))); + List pileSnList = pileDetailVOS.stream() + .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); + } + 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 2bba1aefe..ced44f8f5 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 @@ -13,6 +13,7 @@ import com.jsowell.pile.dto.FastCreateStationDTO; import com.jsowell.pile.dto.QueryStationDTO; import com.jsowell.pile.service.IPileStationInfoService; import com.jsowell.pile.vo.web.PileStationVO; +import com.jsowell.service.PileService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -32,6 +33,9 @@ public class PileStationInfoController extends BaseController { @Autowired private IPileStationInfoService pileStationInfoService; + @Autowired + private PileService pileService; + /** * 查询充电站信息列表NEW @@ -145,4 +149,15 @@ public class PileStationInfoController extends BaseController { public AjaxResult selectStationListByMerchantId(@RequestBody QueryStationDTO dto) { return AjaxResult.success(pileStationInfoService.selectStationListByMerchantId(Long.valueOf(dto.getMerchantId()))); } + + /** + * 修改站点二维码前缀 + * @param dto + * @return + */ + @PreAuthorize("@ss.hasPermi('pile:station:edit')") + @PostMapping("/updateStationQRCodePrefix") + public AjaxResult updateStationQRCodePrefix(@RequestBody QueryStationDTO dto) { + return AjaxResult.success(pileService.updateStationQRCodePrefix(dto)); + } } diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/command/ykc/IssueQRCodeCommand.java b/jsowell-netty/src/main/java/com/jsowell/netty/command/ykc/IssueQRCodeCommand.java index 757195056..839538e95 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/command/ykc/IssueQRCodeCommand.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/command/ykc/IssueQRCodeCommand.java @@ -10,5 +10,7 @@ import lombok.NoArgsConstructor; @AllArgsConstructor @Builder public class IssueQRCodeCommand { - String pileSn; + private String pileSn; + + private String qrcodePrefix; } 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 526f45318..74f456a6e 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 @@ -230,7 +230,12 @@ public class YKCPushCommandServiceImpl implements YKCPushCommandService { // 二维码前缀 如:“www.baidu.com?No=” // String qrCodePrefix = "https://wx.charging.shbochong.cn/prepare_charge?code="; // String qrCodePrefix = pileBasicInfoService.getPileQrCodeUrl(null); - String qrCodePrefix = pileConnectorInfoService.getPileConnectorQrCodeUrl(null); + String qrCodePrefix = ""; + if (StringUtils.isBlank(command.getQrcodePrefix())) { + qrCodePrefix = pileConnectorInfoService.getPileConnectorQrCodeUrl(null); + }else { + qrCodePrefix = command.getQrcodePrefix(); + } byte[] qrCodePrefixByteArr = BytesUtil.str2Asc(qrCodePrefix); // 二维码前缀长度 二维码前缀长度长度最大不超过200 字节 diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileStationInfo.java b/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileStationInfo.java index eeeca7a6f..0ff00f2f4 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileStationInfo.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileStationInfo.java @@ -38,6 +38,11 @@ public class PileStationInfo extends BaseEntity { private String deptId; + /** + * 二维码前缀 + */ + private String qrcodePrefix; + /** * 是否独立报桩(0-否;1-是) */ diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryStationDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryStationDTO.java index a068e2f85..0435e5f05 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryStationDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryStationDTO.java @@ -17,6 +17,8 @@ import lombok.NoArgsConstructor; @NoArgsConstructor @Builder public class QueryStationDTO extends BaseEntity { + private String stationId; + /** * 站点名称 */ @@ -61,4 +63,9 @@ public class QueryStationDTO extends BaseEntity { * 是否对外开放(0-否;1-是) */ private String publicFlag; + + /** + * 站点二维码前缀 + */ + private String qrcodePrefix; } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileStationInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileStationInfoServiceImpl.java index 3885b1403..057b12604 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileStationInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileStationInfoServiceImpl.java @@ -92,6 +92,9 @@ public class PileStationInfoServiceImpl implements IPileStationInfoService { vo.setId(pileStationInfo.getId().toString()); vo.setAreaCode(pileStationInfo.getAreaCode()); vo.setAddress(pileStationInfo.getAddress()); + if (StringUtils.isNotBlank(pileStationInfo.getQrcodePrefix())) { + vo.setQrcodePrefix(pileStationInfo.getQrcodePrefix()); + } vo.setMerchantId(pileStationInfo.getMerchantId().toString()); // vo.setMerchantName(pileStationInfo.getmer()); vo.setMerchantAdminName(pileStationInfo.getStationAdminName()); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/PileStationVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/PileStationVO.java index 4d256513d..5459dfda1 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/PileStationVO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/PileStationVO.java @@ -44,6 +44,11 @@ public class PileStationVO { */ private String address; + /** + * 二维码前缀 + */ + private String qrcodePrefix; + /** * 充电设备数量 */ diff --git a/jsowell-pile/src/main/resources/mapper/pile/PileStationInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/PileStationInfoMapper.xml index 6eef5ff7f..2051bbc2c 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/PileStationInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/PileStationInfoMapper.xml @@ -9,6 +9,7 @@ + @@ -56,7 +57,7 @@ - select id,merchant_id, station_name, dept_id, alone_apply, account_number, capacity, public_parking, parking_number, + select id,merchant_id, station_name, dept_id, qrcode_prefix, alone_apply, account_number, capacity, public_parking, parking_number, country_code, area_code, address, station_tel, service_tel, station_type, station_status, station_admin_name, park_nums, station_lng, station_lat, site_guide, construction, pictures, match_cars, park_info, park_owner, park_manager, open_all_day, business_hours, park_free, payment, support_order, remark, public_flag, @@ -71,6 +72,7 @@ and merchant_id = #{merchantId} and station_name like concat('%', #{stationName}, '%') and dept_id = #{deptId} + and qrcode_prefix = #{qrcodePrefix} and alone_apply = #{aloneApply} and account_number = #{accountNumber} and capacity = #{capacity} @@ -125,6 +127,7 @@ merchant_id, station_name, dept_id, + qrcode_prefix, alone_apply, account_number, capacity, @@ -175,6 +178,7 @@ #{merchantId}, #{stationName}, #{deptId}, + #{qrcodePrefix}, #{aloneApply}, #{accountNumber}, #{capacity}, @@ -228,6 +232,7 @@ merchant_id = #{merchantId}, station_name = #{stationName}, dept_id = #{deptId}, + qrcode_prefix = #{qrcodePrefix}, alone_apply = #{aloneApply}, account_number = #{accountNumber}, capacity = #{capacity}, @@ -290,6 +295,7 @@ count(t2.id) as pileNum, t1.area_code as areaCode, t1.address as address, + t1.qrcode_prefix as qrcodePrefix, t1.station_type as stationType, t1.station_status as stationStatus, t1.create_time as createTime, diff --git a/jsowell-ui/src/api/pile/station.js b/jsowell-ui/src/api/pile/station.js index 17bde61bf..450f615a7 100644 --- a/jsowell-ui/src/api/pile/station.js +++ b/jsowell-ui/src/api/pile/station.js @@ -72,3 +72,12 @@ export function fastCreateStation(data) { data: data, }); } + +// 下发二维码 +export function updateStationQRCodePrefix(data) { + return request({ + url: "/pile/station/updateStationQRCodePrefix", + method: "post", + data: data, + }); +} diff --git a/jsowell-ui/src/views/pile/station/detail.vue b/jsowell-ui/src/views/pile/station/detail.vue index 934d29a22..d0aaede7a 100644 --- a/jsowell-ui/src/views/pile/station/detail.vue +++ b/jsowell-ui/src/views/pile/station/detail.vue @@ -36,8 +36,20 @@ - + 配置参数 + + + + + + + + + @@ -49,6 +61,8 @@ import connectorList from "./connectorList.vue"; import pileList from "./pileList.vue"; import MapContainer from "../../../components/MapContainer/MapContainer.vue"; import stationOrderList from "@/views/pile/station/stationOrderList"; +import {updatePlateNumber} from "@/api/member/info"; +import {updateStationQRCodePrefix} from "@/api/pile/station"; export default { components: { SiteInfo, @@ -61,6 +75,12 @@ export default { data() { return { activeName: 'pile', + form: { + prefix: '', + }, + dialogTitle: '', + qrcodePrefix: '', + dialogFormVisible: false, stationId: this.$route.params.id, stationName: this.$route.params.stationName, }; @@ -81,7 +101,6 @@ export default { // console.log(tab, event); this.initializeData(tab.name); }, - // 执行对应页面的查询数据方法 initializeData(name) { console.log("执行对应页面的查询数据方法", name) @@ -97,6 +116,37 @@ export default { } else if (name === "order") { this.$refs.order.dataLoading(); } + }, + // 配置参数按钮 + handleCreate() { + this.dialogTitle = '配置参数'; + this.form = { + prefix: '', + }; + this.dialogFormVisible = true; + }, + // 配置参数提交按钮 + submitForm(form) { + const param = { + stationId: this.stationId, + qrcodePrefix: this.form.prefix + } + console.log("form:", this.form); + console.log("param:", param); + this.$refs.form.validate((valid) => { + if(valid){ + updateStationQRCodePrefix(param).then((response) => { + this.$modal.msgSuccess('修改成功') + this.dialogFormVisible = false + }) + } else{ + return false + } + }) + }, + // 取消按钮 + cancel() { + this.dialogFormVisible = false } } };