From 2e57525ade5084cf88db228d978a4fa65bf5fc4e Mon Sep 17 00:00:00 2001 From: Guoqs <123@jsowell.com> Date: Tue, 11 Feb 2025 11:54:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=81=9C=E8=BD=A6=E5=B9=B3=E5=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/java/SpringBootTestController.java | 29 ++++++++- .../com/jsowell/common/util/ParkingUtil.java | 4 +- .../parking/common/ServiceApiCmd.java | 22 +++++++ .../parking/common/TempCarInfo.java | 37 +++++++++++ .../parking/common/bean/CarSeatInfo.java | 30 +++++++++ .../parking/common/bean/InLaneQrInfo.java | 15 +++++ .../parking/common/bean/LaneInfo.java | 14 ++++ .../parking/common/bean/MonthCarInfo.java | 35 ++++++++++ .../parking/common/bean/TempCarInfo.java | 37 +++++++++++ .../parking/request/DataRequest.java | 34 ++++++++++ .../parking/request/RequestCarInfo.java | 19 ++++++ .../request/RequestDiscountCreate.java | 60 +++++++++++++++++ .../request/RequestDiscountDestroy.java | 17 +++++ .../parking/request/RequestLaneInfoList.java | 17 +++++ .../parking/request/RequestPayNotify.java | 64 +++++++++++++++++++ .../parking/request/RequestScanLaneQr.java | 20 ++++++ .../parking/response/DataResponse.java | 22 +++++++ .../parking/response/ResponseCarInfo.java | 25 ++++++++ .../response/ResponseDiscountCreate.java | 4 ++ .../response/ResponseDiscountDestroy.java | 4 ++ .../response/ResponseLaneInfoList.java | 21 ++++++ .../parking/response/ResponsePayNotify.java | 16 +++++ .../parking/response/ResponseScanLaneQr.java | 20 ++++++ .../parking/service/QcyunsService.java | 12 ++++ .../service/impl/QcyunsServiceImpl.java | 57 +++++++++++++++++ 25 files changed, 632 insertions(+), 3 deletions(-) create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/ServiceApiCmd.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/TempCarInfo.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/bean/CarSeatInfo.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/bean/InLaneQrInfo.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/bean/LaneInfo.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/bean/MonthCarInfo.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/bean/TempCarInfo.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/DataRequest.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/RequestCarInfo.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/RequestDiscountCreate.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/RequestDiscountDestroy.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/RequestLaneInfoList.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/RequestPayNotify.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/RequestScanLaneQr.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/DataResponse.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/ResponseCarInfo.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/ResponseDiscountCreate.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/ResponseDiscountDestroy.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/ResponseLaneInfoList.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/ResponsePayNotify.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/ResponseScanLaneQr.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/service/QcyunsService.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/service/impl/QcyunsServiceImpl.java diff --git a/jsowell-admin/src/test/java/SpringBootTestController.java b/jsowell-admin/src/test/java/SpringBootTestController.java index 5841fe2fe..af45a2249 100644 --- a/jsowell-admin/src/test/java/SpringBootTestController.java +++ b/jsowell-admin/src/test/java/SpringBootTestController.java @@ -1,3 +1,4 @@ +import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; @@ -31,6 +32,7 @@ import com.jsowell.common.constant.CacheConstants; import com.jsowell.common.constant.Constants; import com.jsowell.common.constant.RabbitConstants; import com.jsowell.common.core.domain.entity.SysDictData; +import com.jsowell.common.core.domain.parking.ParkingCommonParam; import com.jsowell.common.core.domain.ykc.LoginRequestData; import com.jsowell.common.core.domain.ykc.TransactionRecordsData; import com.jsowell.common.core.redis.RedisCache; @@ -44,6 +46,7 @@ import com.jsowell.common.util.Cp56Time2a.Cp56Time2aUtil; import com.jsowell.common.util.http.HttpUtils; import com.jsowell.common.util.id.IdUtils; import com.jsowell.common.util.id.SnowflakeIdWorker; +import com.jsowell.common.util.id.UUID; import com.jsowell.common.util.ip.AddressUtils; import com.jsowell.netty.handler.yunkuaichong.HeartbeatRequestHandler; import com.jsowell.netty.handler.yunkuaichong.TransactionRecordsRequestHandler; @@ -294,8 +297,30 @@ public class SpringBootTestController { } @Test - public void test() { - System.out.println(YKCUtils.getNewLogicStationIdList()); + public void getCarInfoTest() { + String parkId = "10102"; + String plateNumber = "粤GHT4TR"; + String URL = "http://test-gateway.qcyuns.com/park-data-api/data/centre/api/v1"; + String secretKey = "K9OGNA7CIY8N5GXD8HF3WVDMEZNFKL3F"; + + Map data = Maps.newHashMap(); + data.put("ParkId", parkId); + data.put("PlateNumber", plateNumber); + + ParkingCommonParam param = new ParkingCommonParam(); + param.setService("CarInfo"); + param.setVersion("01"); + param.setMsgId(UUID.randomUUID().toString()); + param.setOrgId("BTTEST01"); + param.setData(data); + + + // 生成sign + ParkingUtil.generateAndSetSign(param, secretKey); + + // 发送请求 + String result = HttpUtil.post(URL, JSON.toJSONString(param)); + System.out.println(result); } @Test diff --git a/jsowell-common/src/main/java/com/jsowell/common/util/ParkingUtil.java b/jsowell-common/src/main/java/com/jsowell/common/util/ParkingUtil.java index 284687093..8a17800d5 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/util/ParkingUtil.java +++ b/jsowell-common/src/main/java/com/jsowell/common/util/ParkingUtil.java @@ -13,8 +13,10 @@ public class ParkingUtil { /** * 计算sign + * @param publicParams 公共参数 + * @param businessParams 业务参数 */ - public static String generateSign(Map publicParams, Map businessParams, String secretKey) { + private static String generateSign(Map publicParams, Map businessParams, String secretKey) { // Step 1: 过滤空值并按照ASCII码排序公共参数 StringBuilder stringA = new StringBuilder(); publicParams.entrySet().stream() diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/ServiceApiCmd.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/ServiceApiCmd.java new file mode 100644 index 000000000..3f272166c --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/ServiceApiCmd.java @@ -0,0 +1,22 @@ +package com.jsowell.thirdparty.parking.common; + +/** + * @desc:openApi数据服务service + * @date: 2021-10-31 18:07 + */ +public interface ServiceApiCmd { + + //获取车辆信息接口 + public final static String CarInfo = "CarInfo"; + //缴费通知接口 + public final static String PayNotify = "PayNotify"; + //获取通道列表 + public final static String LaneInfoList = "LaneInfoList"; + //扫码入场码or出场码 + public final static String scanLaneQr = "scanLaneQrCode"; + //商圈优惠 + public final static String DiscountCreate = "DiscountCreate"; + //商圈优惠 + public final static String DiscountDestory = "DiscountDestory"; + +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/TempCarInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/TempCarInfo.java new file mode 100644 index 000000000..7d1d8511c --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/TempCarInfo.java @@ -0,0 +1,37 @@ +package com.jsowell.thirdparty.parking.common; + +import lombok.Getter; +import lombok.Setter; + +/** + * @desc: 临时车信息 + * @date: 2021-11-01 14:55 + */ +@Setter +@Getter +public class TempCarInfo { + //入场时间 + String inTime; + //停车时长 + String stopTime; + //停车时间戳 + String stopTimeSecond; + //需交费 + Double amount; + //总应收 + Double totalFee; + //已缴费用 + Double beforePay; + //已优惠,单位:分钟/元 + String discountVal; + //优惠券类型 1.金额(分钟) 2.时间(元) + Integer discountType; + //通道ID 场内支付(为空) 出口扫码支付(必填) + Integer laneId; + //平台进出场ID (平台ID与本地ID不能同时为空) + Integer recordId; + //本地进出场ID (平台ID与本地ID不能同时为空) + Integer localId; + //入场图片 + String inPic; +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/bean/CarSeatInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/bean/CarSeatInfo.java new file mode 100644 index 000000000..4ee6988cd --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/bean/CarSeatInfo.java @@ -0,0 +1,30 @@ +package com.jsowell.thirdparty.parking.common.bean; + +import lombok.Getter; +import lombok.Setter; + +/** + * @desc:车位详情 + */ +@Setter +@Getter +public class CarSeatInfo { + + //车位编号 + String seatNo; + //计费车型ID + Integer chargeType; + //计费车型name + String chargeName; + //日费用 + double dayCharge; + //月费用 + double monthCharge; + //季度费用 + double quarterCharge; + //半年费用 + double halfYearCharge; + //年费用 + double yearCharge; + +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/bean/InLaneQrInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/bean/InLaneQrInfo.java new file mode 100644 index 000000000..09a03002d --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/bean/InLaneQrInfo.java @@ -0,0 +1,15 @@ +package com.jsowell.thirdparty.parking.common.bean; + +import lombok.Getter; +import lombok.Setter; + +@Setter +@Getter +public class InLaneQrInfo { + + String inTime; //入场时间 + Integer inLaneId; //入场通道ID + String inLaneName; //入场通道名称 + String inPic; //入场图片 + +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/bean/LaneInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/bean/LaneInfo.java new file mode 100644 index 000000000..9f41e0fec --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/bean/LaneInfo.java @@ -0,0 +1,14 @@ +package com.jsowell.thirdparty.parking.common.bean; + +import lombok.Getter; +import lombok.Setter; + +@Setter +@Getter +public class LaneInfo{ + + int laneId; + String laneName; + int laneType; + +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/bean/MonthCarInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/bean/MonthCarInfo.java new file mode 100644 index 000000000..3341ba4cc --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/bean/MonthCarInfo.java @@ -0,0 +1,35 @@ +package com.jsowell.thirdparty.parking.common.bean; + +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +/** + * @desc: 月租车信息 + * @date: 2021-11-01 14:56 + */ +@Setter +@Getter +public class MonthCarInfo { + + //车辆标识 + Integer carId; + //计费类型 + Integer chargeType; + //有效期止 + String endDate; + //车位数 + Integer spaces; + //电话 + String phone; + //地址 + String address; + //锁车状态 1-锁车 2-未锁车 + Integer lockStatus; + //状态 1-启用 2-未生效 3-暂停 + Integer status; + //车位信息 续费规则 + List carSeatInfoList; + +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/bean/TempCarInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/bean/TempCarInfo.java new file mode 100644 index 000000000..8743626fe --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/common/bean/TempCarInfo.java @@ -0,0 +1,37 @@ +package com.jsowell.thirdparty.parking.common.bean; + +import lombok.Getter; +import lombok.Setter; + +/** + * @desc: 临时车信息 + * @date: 2021-11-01 14:55 + */ +@Setter +@Getter +public class TempCarInfo { + //入场时间 + String inTime; + //停车时长 + String stopTime; + //停车时间戳 + String stopTimeSecond; + //需交费 + Double amount; + //总应收 + Double totalFee; + //已缴费用 + Double beforePay; + //已优惠,单位:分钟/元 + String discountVal; + //优惠券类型 1.金额(分钟) 2.时间(元) + Integer discountType; + //通道ID 场内支付(为空) 出口扫码支付(必填) + Integer laneId; + //平台进出场ID (平台ID与本地ID不能同时为空) + Integer recordId; + //本地进出场ID (平台ID与本地ID不能同时为空) + Integer localId; + //入场图片 + String inPic; +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/DataRequest.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/DataRequest.java new file mode 100644 index 000000000..0347e8ad8 --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/DataRequest.java @@ -0,0 +1,34 @@ +package com.jsowell.thirdparty.parking.request; + +import lombok.Getter; +import lombok.Setter; + +@Setter +@Getter +public class DataRequest { + + // 服务名称 + private String service; + // 接口版本 + private String version; + // 消息ID + private String msgId; + //机构ID (分配) + private String orgId; + // data + private Object data; + // 请求签名 + private String sign; + + public DataRequest() { + } + + public DataRequest(String service, String version, String msgId, String orgId, Object data, String sign) { + this.service = service; + this.version = version; + this.msgId = msgId; + this.orgId = orgId; + this.data = data; + this.sign = sign; + } +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/RequestCarInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/RequestCarInfo.java new file mode 100644 index 000000000..d7b5ae4cb --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/RequestCarInfo.java @@ -0,0 +1,19 @@ +package com.jsowell.thirdparty.parking.request; + +import lombok.Getter; +import lombok.Setter; + +/** + * @desc:获取固定车实体类 + * @date: 2021-10-30 15:44 + */ +@Setter +@Getter +public class RequestCarInfo { + + //车场ID + Integer parkId; + //车牌号 + String plate; + +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/RequestDiscountCreate.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/RequestDiscountCreate.java new file mode 100644 index 000000000..024c35d66 --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/RequestDiscountCreate.java @@ -0,0 +1,60 @@ +package com.jsowell.thirdparty.parking.request; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class RequestDiscountCreate { + + /** + * 停车场编号 + */ + private String parkId; + /** + * 停车流水, 标识具体某次停车事件, 需保证该停车场下唯一 + */ + private String parkingSerial; + /** + * 忽略停车状态派发时传递 + */ + private String plate; + /** + * 优惠券派发流水 + */ + private String grantSerial; + /** + * 优惠类型:1金额, 2时长, 3全免, 4不同计价券 + */ + private Short type; + /** + * 优惠金额 + * 当type=1时单位为分; + * 当type=2时单位为分钟; + * 当type=3时暂无定义; + * 当type=4时为停车场计价规则ID + */ + private Integer value; + /** + * 优惠给予原因, 例如:购物满300, 免费停车2小时 + */ + private String reason; + /** + * 当前派发优惠的商家名称 + */ + private String storeName; + /** + * 当前派发优惠的商家唯一标识 + */ + private String storeCode; + /** + * 优惠券减免规则ID, 用于配置减免是减免前面还是减免后面一般一个停车场配置相同 + */ + private String couponRule; + /** + * 不同计价券收费规则ID, 用于配置改优惠券后本次停车使用不同计价规则, 一般每种优惠券不同 + */ + private String chargeRule; + + private String couponName; // 优惠券名称 +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/RequestDiscountDestroy.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/RequestDiscountDestroy.java new file mode 100644 index 000000000..fa993f6ef --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/RequestDiscountDestroy.java @@ -0,0 +1,17 @@ +package com.jsowell.thirdparty.parking.request; + +import lombok.Getter; +import lombok.Setter; + +@Setter +@Getter +public class RequestDiscountDestroy { + /** + * 停车场编号 + */ + private String parkId; + /** + * 优惠券派发流水 + */ + private String grantSerial; +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/RequestLaneInfoList.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/RequestLaneInfoList.java new file mode 100644 index 000000000..d793e41a9 --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/RequestLaneInfoList.java @@ -0,0 +1,17 @@ +package com.jsowell.thirdparty.parking.request; + +import lombok.Getter; +import lombok.Setter; + +/** + * @desc:获取通道信息实体类 + * @date: 2021-11-16 14:50 + */ +@Setter +@Getter +public class RequestLaneInfoList { + + //车场ID + Integer parkId; + +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/RequestPayNotify.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/RequestPayNotify.java new file mode 100644 index 000000000..9a6eea0bb --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/RequestPayNotify.java @@ -0,0 +1,64 @@ +package com.jsowell.thirdparty.parking.request; + +import lombok.Getter; +import lombok.Setter; + +/** + * @desc:固定车续费实体类 + * @date: 2021-10-30 15:46 + */ +@Setter +@Getter +public class RequestPayNotify { + //停车场ID + Integer parkId; + //车牌号(可空-临时车无牌车支付时) + String plate; + //外部订单号 + String outTradeNo; + //金额 + Double amount; + // 支付类型 0-现金,1-电子支付 + Integer payType; + //车型(1-按临时车计费 2-按固定车计费 3-储值车计费) + Integer carType; + //月租车主键ID + Integer carId; + //计费车类型 0-代表临时车 ,其他-对应(登记车型表) + Integer chargeType; + //通道id 不为null时,通道扫码支付 + Integer laneId; + //平台进出场ID (平台ID与本地ID不能同时为空) + Integer recordId; + //本地进出场ID (平台ID与本地ID不能同时为空) + Integer localId; + //[月租] 月租车截止日期 (carType!=2 为空) + String endDate; + //[月租] 月租车充值月数 (carType!=2 为空) + Integer number; + //支付方式 1-微信 2-支付宝 用于获取用户openID或者userId + Integer sourceType; + //公众号 openId + String openId; + //支付详情 + String payRemark; + + public RequestPayNotify() { + } + + public RequestPayNotify(Integer parkId, Integer carType, Integer chargeType, String plate, Double amount, Integer laneId, Integer recordId, Integer localId, String endDate, Integer number, Integer sourceType, String openId, String payRemark) { + this.parkId = parkId; + this.carType = carType; + this.chargeType = chargeType; + this.plate = plate; + this.amount = amount; + this.laneId = laneId; + this.recordId = recordId; + this.localId = localId; + this.endDate = endDate; + this.number = number; + this.sourceType = sourceType; + this.openId = openId; + this.payRemark = payRemark; + } +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/RequestScanLaneQr.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/RequestScanLaneQr.java new file mode 100644 index 000000000..0727c967a --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/request/RequestScanLaneQr.java @@ -0,0 +1,20 @@ +package com.jsowell.thirdparty.parking.request; + +import lombok.Getter; +import lombok.Setter; + +/** + * @desc:请求参数,车主扫码通道二维码,入场or出场(支持无牌车) + * @auther: wb + * @date: 2021-12-02 10:53 + */ +@Setter +@Getter +public class RequestScanLaneQr { + + Integer parkId; //车场ID + Integer laneId; //通道ID + Integer laneType; //通道Type 1-入 2-出 + String noPlate; //无牌车 + +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/DataResponse.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/DataResponse.java new file mode 100644 index 000000000..4276381a5 --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/DataResponse.java @@ -0,0 +1,22 @@ +package com.jsowell.thirdparty.parking.response; + +import lombok.Getter; +import lombok.Setter; + +@Setter +@Getter +public class DataResponse { + + public int retCode; //状态码 0-正常 其他-异常 + + public String retMsg; //状态码处理描述, 如:返回错误信息 + + public Object retData; //返回内容 + + public DataResponse() {} + + public DataResponse(int retCode, String retMsg) { + this.retCode = retCode; + this.retMsg = retMsg; + } +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/ResponseCarInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/ResponseCarInfo.java new file mode 100644 index 000000000..2189149f2 --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/ResponseCarInfo.java @@ -0,0 +1,25 @@ +package com.jsowell.thirdparty.parking.response; + +import lombok.Getter; +import lombok.Setter; + +/** + * @desc:获取固定车实体类 + * @date: 2021-10-30 15:44 + */ +@Setter +@Getter +public class ResponseCarInfo { + + //车场ID + Integer parkId; + //车场名称 + String parkName; + //车牌号 + String plate; + //车型(1-按临时车计费 2-按固定车计费 3-储值车计费) + Integer carType; + //车辆信息 根据车型显示不同内容 + Object carInfo; + +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/ResponseDiscountCreate.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/ResponseDiscountCreate.java new file mode 100644 index 000000000..d7cc43470 --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/ResponseDiscountCreate.java @@ -0,0 +1,4 @@ +package com.jsowell.thirdparty.parking.response; + +public class ResponseDiscountCreate { +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/ResponseDiscountDestroy.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/ResponseDiscountDestroy.java new file mode 100644 index 000000000..a955af158 --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/ResponseDiscountDestroy.java @@ -0,0 +1,4 @@ +package com.jsowell.thirdparty.parking.response; + +public class ResponseDiscountDestroy { +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/ResponseLaneInfoList.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/ResponseLaneInfoList.java new file mode 100644 index 000000000..f03ca5253 --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/ResponseLaneInfoList.java @@ -0,0 +1,21 @@ +package com.jsowell.thirdparty.parking.response; + +import com.pay.api.bean.LaneInfo; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +/** + * @desc:续费通知接口 + * @date: 2021-10-30 15:46 + */ +@Setter +@Getter +public class ResponseLaneInfoList { + + int parkId; + String parkName; + List laneList; //通道List + +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/ResponsePayNotify.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/ResponsePayNotify.java new file mode 100644 index 000000000..b60d7b36a --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/ResponsePayNotify.java @@ -0,0 +1,16 @@ +package com.jsowell.thirdparty.parking.response; + +import lombok.Getter; +import lombok.Setter; + +/** + * @desc:续费通知接口 + * @date: 2021-10-30 15:46 + */ +@Setter +@Getter +public class ResponsePayNotify { + + + +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/ResponseScanLaneQr.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/ResponseScanLaneQr.java new file mode 100644 index 000000000..95541578c --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/response/ResponseScanLaneQr.java @@ -0,0 +1,20 @@ +package com.jsowell.thirdparty.parking.response; + +import lombok.Getter; +import lombok.Setter; + +/** + * @desc:响应参数,车主扫码通道二维码,入场or出场(支持无牌车) + * @date: 2021-11-16 14:50 + */ +@Setter +@Getter +public class ResponseScanLaneQr { + + Integer parkId; //车场ID + Integer laneId; //通道ID + Integer laneType; //通道类型 + String plate; //车牌号 + Object inQrResponse; //入场响应 + Object outQrResponse; //出场响应 +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/service/QcyunsService.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/service/QcyunsService.java new file mode 100644 index 000000000..029678f73 --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/service/QcyunsService.java @@ -0,0 +1,12 @@ +package com.jsowell.thirdparty.parking.service; + +/** + * 后亭慢充道闸service + */ +public interface QcyunsService { + /** + * 获取车辆信息接口 + * 根据车牌号获取车辆信息(临时车,月租车,储值车) + */ + String getCarInfo(String parkId, String plateNumber); +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/service/impl/QcyunsServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/service/impl/QcyunsServiceImpl.java new file mode 100644 index 000000000..db7b502fa --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/service/impl/QcyunsServiceImpl.java @@ -0,0 +1,57 @@ +package com.jsowell.thirdparty.parking.service.impl; + +import cn.hutool.http.HttpUtil; +import com.alibaba.fastjson2.JSON; +import com.google.common.collect.Maps; +import com.jsowell.common.core.domain.parking.ParkingCommonParam; +import com.jsowell.common.util.ParkingUtil; +import com.jsowell.common.util.StringUtils; +import com.jsowell.common.util.id.UUID; +import com.jsowell.thirdparty.parking.service.QcyunsService; +import org.springframework.stereotype.Service; + +import java.util.Map; + +/** + * + */ +@Service +public class QcyunsServiceImpl implements QcyunsService { + + final static String URL = "http://test-gateway.qcyuns.com/park-data-api/data/centre/api/v1"; + + final static String secretKey = "K9OGNA7CIY8N5GXD8HF3WVDMEZNFKL3F"; + + /** + * 获取车辆信息接口 + * 根据车牌号获取车辆信息(临时车,月租车,储值车) + * + * @param parkId 车场ID + * @param plateNumber 车牌号 + */ + @Override + public String getCarInfo(String parkId, String plateNumber) { + if (StringUtils.isBlank(parkId)) { + parkId = "11609"; + } + Map data = Maps.newHashMap(); + data.put("ParkId", parkId); + data.put("PlateNumber", plateNumber); + + ParkingCommonParam param = new ParkingCommonParam(); + param.setService("CarInfo"); + param.setVersion("01"); + param.setMsgId(UUID.randomUUID().toString()); + param.setOrgId("BTTEST01"); + param.setData(data); + + String secretKey = ""; + // 生成sign + ParkingUtil.generateAndSetSign(param, secretKey); + + // 发送请求 + String result = HttpUtil.post(URL, JSON.toJSONString(param)); + System.out.println(result); + return null; + } +}