package com.kym.entity.admin.vo; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.annotation.JSONCreator; import com.alibaba.fastjson2.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import com.kym.entity.BaseEntity; import com.kym.entity.admin.Activity; import com.kym.entity.enplus.EnEquipmentInfo; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import java.io.Serializable; import java.util.List; /** *

* 充电站信息 *

* * @author skyline * @since 2023-08-12 */ @Data @NoArgsConstructor @Accessors(chain = true) public class StationVo extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; /** * 电站组id */ private Long groupId; /** * en+充电站id */ @JSONField(name = "StationID") private String stationId; /** * en+运营商id */ @JSONField(name = "OperatorID") private String operatorId; /** * 设备所属运营平台组织机构代码 */ @JSONField(name = "EquipmentOwnerID") private String equipmentOwnerId; /** * 站点名称 */ @JSONField(name = "StationName") private String stationName; /** * 充电中国家代码:CN */ @JSONField(name = "CountryCode") private String countryCode; /** * 充电站省市辖区编码 */ @JSONField(name = "AreaCode") private String areaCode; /** * 地址 */ @JSONField(name = "Address") private String address; /** * 站点电话 */ @JSONField(name = "StationTel") private String stationTel; /** * 服务电话 */ @JSONField(name = "ServiceTel") private String serviceTel; /** * 站点类型:1:公共 50:个人 100:公交(专业)101:环卫(专用)102:物流(专用)103:出租车(专用)255:其他 */ @JSONField(name = "StationType") private Integer stationType; /** * 站点状态:0:未知 1:建设中 5:关闭下线 6:维护中 50:正常使用 */ @JSONField(name = "StationStatus") private Integer stationStatus; /** * 充电车位数量 */ @JSONField(name = "ParkNums") private Integer parkingNum; /** * 充电桩位置坐标 *

* FastjsonTypeHandler * 支持 MVC JSON 解析 * 不支持 MySQL JSON 解析 *

* JacksonTypeHandler * 支持 MVC JSON 解析 * 支持 MySQL JSON 解析 */ @TableField(typeHandler = JacksonTypeHandler.class) private JSONObject location; /** * 站点引导 */ @JSONField(name = "SiteGuide") private String siteGuide; /** * 建设场所:1:居民区 2:公共机构 3:企事业单位 4:写字楼 5:工业园区 6:交通枢纽 7:大型文体设施 8:城市绿地 9:大型建筑配建停车场 10:路边停车位 11:城际高速服务区 255:其他 */ @JSONField(name = "Construction") private Integer construction; /** * 站点照片 */ private String pictures; /** * 使用车型描述 */ @JSONField(name = "MatchCars") private String matchCars; /** * 车位楼层及数量描述 */ @JSONField(name = "ParkInfo") private String parkInfo; /** * 营业时间描述 */ @JSONField(name = "BusineHours") private String businessHours; /** * 充电费描述 */ @JSONField(name = "ElectricityFee") private String electricityFee; /** * 服务费率描述 */ @JSONField(name = "ServiceFee") private String serviceFee; /** * 停车费 */ @JSONField(name = "ParkFee") private String parkFee; /** * 支付方式:刷卡、线上、现金(电子钱包类卡为刷卡、身份鉴权卡、微信/支付宝、APP为线上) */ @JSONField(name = "Payment") private String payment; /** * 是否支持预约:0:不支持 1:支持 */ @JSONField(name = "SupportOrder") private Integer supportOrder; /** * 备注 */ @JSONField(name = "Remark") private String remark; /** * 充电设备信息列表 */ @TableField(exist = false) private List equipmentInfos; /** * 站点活动 */ @TableField(exist = false) private List activityList; @JSONCreator public StationVo(@JSONField(name = "StationLng") Double lng, @JSONField(name = "StationLat") Double lat, @JSONField(name = "EquipmentInfos") JSONArray array) { this.location = JSONObject.of("stationLng", lng, "stationLat", lat); this.equipmentInfos = array.toJavaList(EnEquipmentInfo.class); } }