ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/AppUserInfoDto.java
@@ -23,6 +23,8 @@ private Integer points; @ApiModelProperty("当前优惠卷数量") private Integer couponNum; @ApiModelProperty("是否第一次添加车") private Integer firstAdd; @ApiModelProperty("当前绑定的车辆") private List<TAppUserCar> userCars; } ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/ListInfoCouponDto.java
New file @@ -0,0 +1,18 @@ package com.ruoyi.account.api.dto; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; @Data public class ListInfoCouponDto { List<InfoCouponDto> infoCouponDtoList1; List<InfoCouponDto> infoCouponDtoList2; } ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUser.java
@@ -79,6 +79,9 @@ @ApiModelProperty(value = "积分") @TableField("points") private Integer points; @ApiModelProperty(value = "积分") @TableField("first_add") private Integer firstAdd; @ApiModelProperty(value = "省名称") @TableField("province") ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserCar.java
@@ -43,6 +43,12 @@ @TableField("license_plate") private String licensePlate; @ApiModelProperty(value = "车牌") @TableField("pic") private String pic; @ApiModelProperty(value = "车辆品牌") @TableField("vehicle_brand") private String vehicleBrand; ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/UploadRealTimeMonitoringDataFallbackFactory.java
New file @@ -0,0 +1,40 @@ package com.ruoyi.integration.api.factory; import com.ruoyi.common.core.domain.R; import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient; import com.ruoyi.integration.api.model.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; import java.util.List; /** * 充电桩服务降级处理 * * @author ruoyi */ @Component public class UploadRealTimeMonitoringDataFallbackFactory implements FallbackFactory<UploadRealTimeMonitoringDataClient> { private static final Logger log = LoggerFactory.getLogger(UploadRealTimeMonitoringDataFallbackFactory.class); @Override public UploadRealTimeMonitoringDataClient create(Throwable throwable) { log.error("调用充电桩实时监测数据失败:{}", throwable.getMessage()); return new UploadRealTimeMonitoringDataClient() { @Override public R<UploadRealTimeMonitoringData> chargingOrderInfo(String orderId) { return R.fail("查询充电桩实时监测数据失败:" + throwable.getMessage()); } @Override public R<List<UploadRealTimeMonitoringData>> getDataByOrderCode(String code) { return R.fail("根据订单编号获取所有监测数据失败:" + throwable.getMessage()); } }; } } ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/UploadRealTimeMonitoringDataClient.java
New file @@ -0,0 +1,35 @@ package com.ruoyi.integration.api.feignClient; import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.integration.api.factory.UploadRealTimeMonitoringDataFallbackFactory; import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; /** * @author zhibing.pu * @Date 2024/8/26 18:20 */ @FeignClient(contextId = "UploadRealTimeMonitoringDataClient", value = ServiceNameConstants.INTEGRATION_SERVICE, fallbackFactory = UploadRealTimeMonitoringDataFallbackFactory.class) public interface UploadRealTimeMonitoringDataClient { /** * 通过订单编号获取充电桩实时监测数据 * @param orderId * @return */ @PostMapping("/uploadRealTimeMonitoringData/getOrderInfoByCode") R<UploadRealTimeMonitoringData> chargingOrderInfo(String orderId); /** * 根据订单编号获取所有监测数据 * @param code * @return */ @PostMapping("/uploadRealTimeMonitoringData/getDataByOrderCode") R<List<UploadRealTimeMonitoringData>> getDataByOrderCode(@RequestParam("code") String code); } ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/AcquisitionBillingMode.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "acquisition_billing_mode") //指定要对应的文档名(表名) @Accessors(chain = true) public class AcquisitionBillingMode { public class AcquisitionBillingMode extends BaseModel { private String charging_pile_code;// 桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/AcquisitionBillingModeReply.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "acquisition_billing_mode_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class AcquisitionBillingModeReply { public class AcquisitionBillingModeReply extends BaseModel { private String charging_pile_code;// 桩编码 private String billing_model_code;// "计费模型编号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BaseModel.java
New file @@ -0,0 +1,15 @@ package com.ruoyi.integration.api.model; import lombok.Data; import java.util.Date; /** * @author zhibing.pu * @Date 2024/8/26 19:05 */ @Data public class BaseModel { private Date create_time = new Date(); } ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BillingModeVerify.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "billing_mode_verify") //指定要对应的文档名(表名) @Accessors(chain = true) public class BillingModeVerify { public class BillingModeVerify extends BaseModel { private String charging_pile_code;// 桩编码 private String billing_model_code;// "计费模型编号,首次连接到平台时置零 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BillingModeVerifyReply.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "billing_mode_verify_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class BillingModeVerifyReply { public class BillingModeVerifyReply extends BaseModel { private String charging_pile_code; // 桩编 private String billing_model_code; // 计费模型编 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BmsAbort.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "bms_abort") //指定要对应的文档名(表名) @Accessors(chain = true) public class BmsAbort { public class BmsAbort extends BaseModel { private String transaction_serial_number; // 交易流水号 private String charging_pile_code; // 桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BmsDemandAndChargerExportation.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "bms_demand_and_charger_exportation") //指定要对应的文档名(表名) @Accessors(chain = true) public class BmsDemandAndChargerExportation { public class BmsDemandAndChargerExportation extends BaseModel { private String transaction_serial_number; // 交易流水号 private String charging_pile_code; // 桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BmsInformation.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "bms_information") //指定要对应的文档名(表名) @Accessors(chain = true) public class BmsInformation { public class BmsInformation extends BaseModel { private String transaction_serial_number; // 交易流水号 private String charging_pile_code; // 桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/ChargingHandshake.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "charging_handshake") //指定要对应的文档名(表名) @Accessors(chain = true) public class ChargingHandshake { public class ChargingHandshake extends BaseModel { private String transaction_serial_number;// 交易流水号 private String charging_pile_code;// 桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/ChargingPileReturnsGroundLockData.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "charging_pile_returns_ground_lock_data") //指定要对应的文档名(表名) @Accessors(chain = true) public class ChargingPileReturnsGroundLockData { public class ChargingPileReturnsGroundLockData extends BaseModel { private String charging_pile_code; //桩编码 private String charging_gun_code; // 抢号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/ChargingPileStartsCharging.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "charging_pile_starts_charging") //指定要对应的文档名(表名) @Accessors(chain = true) public class ChargingPileStartsCharging { public class ChargingPileStartsCharging extends BaseModel { private String charging_pile_code; // 桩编码 private String charging_gun_code; // 抢号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/ClearOfflineCard.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "clear_offline_card") //指定要对应的文档名(表名) @Accessors(chain = true) public class ClearOfflineCard { public class ClearOfflineCard extends BaseModel { private String charging_pile_code; //桩编码 private Integer physical_card_number; // 清除离线卡的个数,最大 24 个 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/ClearOfflineCardReply.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "clear_offline_card_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class ClearOfflineCardReply { public class ClearOfflineCardReply extends BaseModel { private String charging_pile_code; //桩编码 private String physical_card1; // 第 1 个卡物理卡号,离线卡物理卡号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/ConfirmTransactionRecord.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "confirm_transaction_record") //指定要对应的文档名(表名) @Accessors(chain = true) public class ConfirmTransactionRecord { public class ConfirmTransactionRecord extends BaseModel { private String transaction_serial_number;// 桩编码 private Integer confirm_result;// 确认结果(0:上传成功,1:非法账单) ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/EndCharge.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "end_charge") //指定要对应的文档名(表名) @Accessors(chain = true) public class EndCharge { public class EndCharge extends BaseModel { private String transaction_serial_number; // 交易流水号 private String charging_pile_code; // 桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/ErrorMessage.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "error_message") //指定要对应的文档名(表名) @Accessors(chain = true) public class ErrorMessage { public class ErrorMessage extends BaseModel { private String transaction_serial_number; // 交易流水号 private String charging_pile_code; // 桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/GroundLockRealTimeData.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "ground_lock_real_time_data") //指定要对应的文档名(表名) @Accessors(chain = true) public class GroundLockRealTimeData { public class GroundLockRealTimeData extends BaseModel { private String charging_pile_code; //桩编码 private String charging_gun_code; // 抢号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/MotorAbort.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "motor_abort") //指定要对应的文档名(表名) @Accessors(chain = true) public class MotorAbort { public class MotorAbort extends BaseModel { private String transaction_serial_number; // 交易流水号 private String charging_pile_code; // 桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/Online.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "online") //指定要对应的文档名(表名) @Accessors(chain = true) public class Online { public class Online extends BaseModel { private String charging_pile_code;// 充电桩编号 private Integer charging_pile_type;// 充电桩类型(0 表示直流桩,1 表示交流桩) private Integer charging_gun_number;// 充电枪数量 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/OnlineReply.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "online_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class OnlineReply { public class OnlineReply extends BaseModel { private String charging_pile_code;// 桩编码 private Integer online_result;// 登陆结果(0:成功,1:失败) } ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/OpenOrCloseGroundLock.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "open_or_close_ground_lock") //指定要对应的文档名(表名) @Accessors(chain = true) public class OpenOrCloseGroundLock { public class OpenOrCloseGroundLock extends BaseModel { private String charging_pile_code; //桩编码 private String charging_gun_code; // 抢号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/ParameterSetting.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "parameter_setting") //指定要对应的文档名(表名) @Accessors(chain = true) public class ParameterSetting { public class ParameterSetting extends BaseModel { private String transaction_serial_number; // 交易流水号 private String charging_pile_code; // 桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/Ping.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "ping") //指定要对应的文档名(表名) @Accessors(chain = true) public class Ping { public class Ping extends BaseModel { private String charging_pile_code;// 桩编码 private String charging_gun_code;// 抢号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/PlatformConfirmationCharging.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "platform_confirmation_charging") //指定要对应的文档名(表名) @Accessors(chain = true) public class PlatformConfirmationCharging { public class PlatformConfirmationCharging extends BaseModel { private String transaction_serial_number; // 交易流水号 private String charging_pile_code; // 桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/PlatformRemoteUpdate.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "platform_remote_update") //指定要对应的文档名(表名) @Accessors(chain = true) public class PlatformRemoteUpdate { public class PlatformRemoteUpdate extends BaseModel { private String charging_pile_code; //桩编码 private Integer charging_pile_type; // 桩型号(1:直流,2:交流) ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/PlatformRemoteUpdateReply.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "platform_remote_update_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class PlatformRemoteUpdateReply { public class PlatformRemoteUpdateReply extends BaseModel { private String charging_pile_code; //桩编码 private Integer escalation_state; // 升级状态(0:成功,1:编码错误,2:程序与桩型号不符,3:下载更新文件超时) ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/PlatformRestart.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "platform_restart") //指定要对应的文档名(表名) @Accessors(chain = true) public class PlatformRestart { public class PlatformRestart extends BaseModel { private String charging_pile_code; //桩编码 private Integer operate; // 执行控制 (1:立即执行,2:空闲执行) ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/PlatformRestartReply.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "platform_restart_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class PlatformRestartReply { public class PlatformRestartReply extends BaseModel { private String charging_pile_code; //桩编码 private Integer set_result; // 设置结果(0:失败,1:成功) ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/PlatformStartCharging.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "platform_start_charging") //指定要对应的文档名(表名) @Accessors(chain = true) public class PlatformStartCharging { public class PlatformStartCharging extends BaseModel { private String transaction_serial_number; // 交易流水号 private String charging_pile_code; // 桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/PlatformStartChargingReply.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "platform_start_charging_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class PlatformStartChargingReply { public class PlatformStartChargingReply extends BaseModel { private String transaction_serial_number; // 交易流水号 private String charging_pile_code; // 桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/PlatformStopCharging.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "platform_stop_charging") //指定要对应的文档名(表名) @Accessors(chain = true) public class PlatformStopCharging { public class PlatformStopCharging extends BaseModel { private String charging_pile_code; // 桩编码 private String charging_gun_code; // 抢号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/PlatformStopChargingReply.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "platform_stop_charging_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class PlatformStopChargingReply { public class PlatformStopChargingReply extends BaseModel { private String charging_pile_code; // 桩编码 private String charging_gun_code; // 抢号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/Pong.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "pong") //指定要对应的文档名(表名) @Accessors(chain = true) public class Pong { public class Pong extends BaseModel { private String charging_pile_code;// 桩编码 private String charging_gun_code;// 抢号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/QueryOfflineCard.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "query_offline_card") //指定要对应的文档名(表名) @Accessors(chain = true) public class QueryOfflineCard { public class QueryOfflineCard extends BaseModel { private String charging_pile_code; //桩编码 private Integer physical_card_number; //桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/QueryOfflineCardReply.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "query_offline_card_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class QueryOfflineCardReply { public class QueryOfflineCardReply extends BaseModel { private String charging_pile_code; //桩编码 private String physical_card1; // 第 1 个卡物理卡号,离线卡物理卡号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/ReadRealTimeMonitoringData.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "read_real_time_monitoring_data") //指定要对应的文档名(表名) @Accessors(chain = true) public class ReadRealTimeMonitoringData { public class ReadRealTimeMonitoringData extends BaseModel { private String charging_pile_code;// 桩编码 private String charging_gun_code;// 抢号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/SetupBillingModel.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "setup_billing_model") //指定要对应的文档名(表名) @Accessors(chain = true) public class SetupBillingModel { public class SetupBillingModel extends BaseModel { private String charging_pile_code; //桩编码 private String billing_model_code; // 计费模型编号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/SetupBillingModelReply.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "setup_billing_model_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class SetupBillingModelReply { public class SetupBillingModelReply extends BaseModel { private String charging_pile_code; //桩编码 private String set_result; //设置结果(0:失败,1:成功) ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/SynchronizeOfflineCard.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "synchronize_offline_card") //指定要对应的文档名(表名) @Accessors(chain = true) public class SynchronizeOfflineCard { public class SynchronizeOfflineCard extends BaseModel { private String charging_pile_code; //桩编码 private Integer card_number; // 下发卡个数 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/SynchronizeOfflineCardReply.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "synchronize_offline_card_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class SynchronizeOfflineCardReply { public class SynchronizeOfflineCardReply extends BaseModel { private String charging_pile_code; //桩编码 private Integer save_result; // 保存结果(0:失败,1:成功) ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/TimingSetting.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "timing_setting") //指定要对应的文档名(表名) @Accessors(chain = true) public class TimingSetting { public class TimingSetting extends BaseModel { private String charging_pile_code; //桩编码 private String current_time; //当前时间 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/TimingSettingReply.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "timing_setting_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class TimingSettingReply { public class TimingSettingReply extends BaseModel { private String charging_pile_code; //桩编码 private String current_time; //当前时间 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/TransactionRecord.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "transaction_record") //指定要对应的文档名(表名) @Accessors(chain = true) public class TransactionRecord { public class TransactionRecord extends BaseModel { private String transaction_serial_number;// 交易流水号 private String charging_pile_code;// 桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UpdateBalance.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "update_balance") //指定要对应的文档名(表名) @Accessors(chain = true) public class UpdateBalance { public class UpdateBalance extends BaseModel { private String charging_pile_code;// 桩编码 private String charging_gun_code;// 抢号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UpdateBalanceReply.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "update_balance_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class UpdateBalanceReply { public class UpdateBalanceReply extends BaseModel { private String charging_pile_code; //桩编码 private String physical_card_number; //物理卡号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UploadRealTimeMonitoringData.java
@@ -2,6 +2,7 @@ import lombok.Data; import lombok.experimental.Accessors; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; import java.math.BigDecimal; @@ -13,8 +14,9 @@ @Data @Document(collection = "upload_real_time_monitoring_data") //指定要对应的文档名(表名) @Accessors(chain = true) public class UploadRealTimeMonitoringData { public class UploadRealTimeMonitoringData extends BaseModel { @Id private String transaction_serial_number; // 交易流水号 private String charging_pile_code; // 桩编码 private String charging_gun_code; // 抢号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/WorkingParameterSetting.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "working_parameter_setting") //指定要对应的文档名(表名) @Accessors(chain = true) public class WorkingParameterSetting { public class WorkingParameterSetting extends BaseModel { private String charging_pile_code; //桩编码 private Integer allow_work;// 是否允许工作(0:表示允许正常工作,1:表示停止使用,锁定充电桩) ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/WorkingParameterSettingReply.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "working_parameter_setting_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class WorkingParameterSettingReply { public class WorkingParameterSettingReply extends BaseModel { private String charging_pile_code; //桩编码 private Integer set_result; //设置结果(0:失败,1:成功) ruoyi-api/ruoyi-api-integration/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -1 +1,2 @@ com.ruoyi.integration.api.factory.IntegrationFallbackFactory com.ruoyi.integration.api.factory.IntegrationFallbackFactory com.ruoyi.integration.api.factory.UploadRealTimeMonitoringDataFallbackFactory ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
@@ -340,6 +340,7 @@ //累计充电次数 R<Long> useOrderCount = chargingOrderClient.useOrderCount(appUser.getId()); appUser.setOrderCount(useOrderCount.getData()); appUser.setUid(appUser.getId().toString()); } return R.ok(page); @@ -523,30 +524,54 @@ tAppUserCar.setUid(tAppUserCar.getId().toString()); } appUserInfoDto.setUserCars(list); appUserInfoDto.setFirstAdd(byId.getFirstAdd()!=null?byId.getFirstAdd():0); return R.ok(appUserInfoDto); } @ApiOperation(value = "优惠卷列表不分页(1可使用2不可用)", tags = {"小程序-个人中心"}) @PostMapping(value = "/user/coupon") public R<List<InfoCouponDto>> userCoupon(@RequestParam("type") Integer type) { @GetMapping(value = "/user/coupon") public R<ListInfoCouponDto> userCoupon(@RequestParam("type") Integer type) { Long userId = tokenService.getLoginUserApplet().getUserId(); LocalDateTime now = LocalDateTime.now(); List<InfoCouponDto> couponDtos = new ArrayList<>(); List<TAppCoupon> list = appCouponService.lambdaQuery().le(TAppCoupon::getStartTime, now).ge(TAppCoupon::getEndTime, now).eq(TAppCoupon::getStatus, type).list(); for (TAppCoupon tAppCoupon : list) { List<InfoCouponDto> couponDtos1 = new ArrayList<>(); List<TAppCoupon> list = appCouponService.lambdaQuery().eq(TAppCoupon::getAppUserId, userId).ge(TAppCoupon::getEndTime, now).eq(TAppCoupon::getStatus, 1).list(); for (TAppCoupon tAppCoupon : list) { TCoupon coupon = JSON.toJavaObject(JSON.parseObject(tAppCoupon.getCouponJson()), TCoupon.class); InfoCouponDto infoCouponDto = new InfoCouponDto(); BeanUtils.copyProperties(coupon, infoCouponDto); infoCouponDto.setId(tAppCoupon.getId()); couponDtos1.add(infoCouponDto); } List<TAppCoupon> list1 = appCouponService.lambdaQuery().eq(TAppCoupon::getAppUserId, userId).eq(TAppCoupon::getStatus, 2).list(); List<TAppCoupon> list2 = appCouponService.lambdaQuery().eq(TAppCoupon::getAppUserId, userId).lt(TAppCoupon::getEndTime, now).list(); List<InfoCouponDto> couponDtos2 = new ArrayList<>(); for (TAppCoupon tAppCoupon : list1) { TCoupon coupon = JSON.toJavaObject(JSON.parseObject(tAppCoupon.getCouponJson()), TCoupon.class); InfoCouponDto infoCouponDto = new InfoCouponDto(); BeanUtils.copyProperties(coupon,infoCouponDto); BeanUtils.copyProperties(coupon, infoCouponDto); infoCouponDto.setId(tAppCoupon.getId()); couponDtos.add(infoCouponDto); couponDtos2.add(infoCouponDto); } for (TAppCoupon tAppCoupon : list2) { TCoupon coupon = JSON.toJavaObject(JSON.parseObject(tAppCoupon.getCouponJson()), TCoupon.class); InfoCouponDto infoCouponDto = new InfoCouponDto(); BeanUtils.copyProperties(coupon, infoCouponDto); infoCouponDto.setId(tAppCoupon.getId()); couponDtos2.add(infoCouponDto); } return R.ok(couponDtos); ListInfoCouponDto listInfoCouponDto = new ListInfoCouponDto(); listInfoCouponDto.setInfoCouponDtoList1(couponDtos1); listInfoCouponDto.setInfoCouponDtoList2(couponDtos2); return R.ok(listInfoCouponDto); } @@ -821,6 +846,7 @@ //增加积分记录 pointDetailUtil.addDetail(byId.getPoints(),byId.getPoints()+point,5,userId,appUserCar.getLicensePlate(),""); byId.setPoints(byId.getPoints()+point); byId.setFirstAdd(1); appUserService.updateById(byId); @@ -832,7 +858,7 @@ return R.ok(); } @ApiOperation(value = "添加编辑车辆", tags = {"小程序-个人中心-车辆"}) @DeleteMapping(value = "/user/car/delete") @GetMapping(value = "/user/car/delete") public R carDelete(String id) { boolean b = appUserCarService.removeById(id); return R.ok(); @@ -854,7 +880,7 @@ } @ApiOperation(value = "根据品牌获取车型", tags = {"小程序-个人中心-车辆"}) @ApiOperation(value = "根据品牌获取车系", tags = {"小程序-个人中心-车辆"}) @GetMapping(value = "/user/car/getModel") public R getModel(String id) throws Exception { String modelById = CarBrandUtil.getModelById(id); @@ -868,5 +894,31 @@ } return R.ok(backList); } @ApiOperation(value = "根据车系获取车型", tags = {"小程序-个人中心-车辆"}) @GetMapping(value = "/user/car/getSeries") public R getSeries(String id) throws Exception { String modelById = CarBrandUtil.getSeriesById(id); JSONObject jsonObject = JSON.parseObject(modelById); JSONObject data1 = jsonObject.getJSONObject("data"); JSONArray data = data1.getJSONArray("list"); // JSONArray data = jsonObject.getJSONArray(data1.get("list").toString()); // JSONArray backList = new JSONArray(); // for (Object datum : data) { // JSONObject jsonObject1 = JSON.parseObject(datum.toString()); // JSONArray list = jsonObject1.getJSONArray("list"); // backList.addAll(jsonObject1); // } return R.ok(data); } @ApiOperation(value = "根据车型获取详情", tags = {"小程序-个人中心-车辆"}) @GetMapping(value = "/user/car/getDetail") public R getDetail(String id) throws Exception { String detailById = CarBrandUtil.getDetailById(id); JSONObject jsonObject = JSON.parseObject(detailById); return R.ok(jsonObject.getJSONObject("data")); } } ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/carBrand/CarBrandUtil.java
@@ -117,4 +117,113 @@ } return ""; } public static String getSeriesById(String brandId) throws Exception { // Create a new request. Request httpClientRequest = new Request(); try { // Set the request parameters. // AppKey, AppSecrect, Method and Url are required parameters. // Directly writing AK/SK in code is risky. For security, encrypt your AK/SK and store them in the configuration file or environment variables. // In this example, the AK/SK are stored in environment variables for identity authentication. // Before running this example, set environment variables HUAWEICLOUD_SDK_AK and HUAWEICLOUD_SDK_SK. httpClientRequest.setKey("9a4a2b69afe141718f6843c5d39961ec"); httpClientRequest.setSecret("541845f206324bbc933065b44fc98c47"); httpClientRequest.setMethod("POST"); // Set a request URL in the format of https://{Endpoint}/{URI}. httpClientRequest.setUrl("https://vehiclequery.apistore.huaweicloud.com/vehicle/query/model"); httpClientRequest.addHeader("Content-Type", "text/plain"); httpClientRequest.addQueryStringParam("seriesId",brandId); // Set a body for http request. // httpClientRequest.setBody("put your request body here"); } catch (Exception e) { // LOGGER.error(e.getMessage()); return ""; } CloseableHttpClient client = null; try { // Sign the request. HttpRequestBase signedRequest = Client.sign(httpClientRequest, Constant.SIGNATURE_ALGORITHM_SDK_HMAC_SHA256); if (Constant.DO_VERIFY) { // creat httpClient and verify ssl certificate HostName.setUrlHostName(httpClientRequest.getHost()); client = (CloseableHttpClient) SSLCipherSuiteUtil.createHttpClientWithVerify(Constant.INTERNATIONAL_PROTOCOL); } else { // creat httpClient and do not verify ssl certificate client = (CloseableHttpClient) SSLCipherSuiteUtil.createHttpClient(Constant.INTERNATIONAL_PROTOCOL); } HttpResponse response = client.execute(signedRequest); // Print the body of the response. HttpEntity resEntity = response.getEntity(); if (resEntity != null) { // LOGGER.info("Processing Body with name: {} and value: {}", System.getProperty("line.separator"), // EntityUtils.toString(resEntity, "UTF-8")); String string = EntityUtils.toString(resEntity, "UTF-8"); return string; } } catch (Exception e) { LOGGER.error(e.getMessage()); } finally { if (client != null) { client.close(); } } return ""; } public static String getDetailById(String brandId) throws Exception { // Create a new request. Request httpClientRequest = new Request(); try { // Set the request parameters. // AppKey, AppSecrect, Method and Url are required parameters. // Directly writing AK/SK in code is risky. For security, encrypt your AK/SK and store them in the configuration file or environment variables. // In this example, the AK/SK are stored in environment variables for identity authentication. // Before running this example, set environment variables HUAWEICLOUD_SDK_AK and HUAWEICLOUD_SDK_SK. httpClientRequest.setKey("9a4a2b69afe141718f6843c5d39961ec"); httpClientRequest.setSecret("541845f206324bbc933065b44fc98c47"); httpClientRequest.setMethod("POST"); // Set a request URL in the format of https://{Endpoint}/{URI}. httpClientRequest.setUrl("https://vehiclequery.apistore.huaweicloud.com/vehicle/query/detail"); httpClientRequest.addHeader("Content-Type", "text/plain"); httpClientRequest.addQueryStringParam("modelId",brandId); // Set a body for http request. // httpClientRequest.setBody("put your request body here"); } catch (Exception e) { // LOGGER.error(e.getMessage()); return ""; } CloseableHttpClient client = null; try { // Sign the request. HttpRequestBase signedRequest = Client.sign(httpClientRequest, Constant.SIGNATURE_ALGORITHM_SDK_HMAC_SHA256); if (Constant.DO_VERIFY) { // creat httpClient and verify ssl certificate HostName.setUrlHostName(httpClientRequest.getHost()); client = (CloseableHttpClient) SSLCipherSuiteUtil.createHttpClientWithVerify(Constant.INTERNATIONAL_PROTOCOL); } else { // creat httpClient and do not verify ssl certificate client = (CloseableHttpClient) SSLCipherSuiteUtil.createHttpClient(Constant.INTERNATIONAL_PROTOCOL); } HttpResponse response = client.execute(signedRequest); // Print the body of the response. HttpEntity resEntity = response.getEntity(); if (resEntity != null) { // LOGGER.info("Processing Body with name: {} and value: {}", System.getProperty("line.separator"), // EntityUtils.toString(resEntity, "UTF-8")); String string = EntityUtils.toString(resEntity, "UTF-8"); return string; } } catch (Exception e) { LOGGER.error(e.getMessage()); } finally { if (client != null) { client.close(); } } return ""; } } ruoyi-service/ruoyi-chargingPile/pom.xml
@@ -131,6 +131,10 @@ <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-order</artifactId> </dependency> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-integration</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
@@ -27,6 +27,8 @@ import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient; import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import com.ruoyi.order.api.feignClient.ChargingOrderAccountingStrategyClient; import com.ruoyi.order.api.feignClient.ChargingOrderClient; import com.ruoyi.order.api.model.TChargingOrder; @@ -81,6 +83,9 @@ @Resource private AppUserCarClient appUserCarClient; @Resource private UploadRealTimeMonitoringDataClient uploadRealTimeMonitoringDataClient; @@ -404,7 +409,7 @@ }else{ siteIds.add(query.getSiteId()); } // todo 待完善 if(null != query.getStatus() && 0 < query.getStatus().size()){ if(query.getStatus().contains(3)){ query.getStatus().add(6); @@ -427,7 +432,57 @@ TAppUserCar tAppUserCar = appUserCarClient.getCarByIds(Arrays.asList(appUserCarId)).getData().get(0); gunMonitoring.setLicensePlate(tAppUserCar.getLicensePlate()); } UploadRealTimeMonitoringData data = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrder.getCode()).getData(); gunMonitoring.setChargingRatio(BigDecimal.valueOf(data.getSoc())); gunMonitoring.setElectricQuantity(data.getCharging_degree().toString()); gunMonitoring.setSoc(data.getSoc().toString()); gunMonitoring.setElectricCurrent(data.getOutput_current().toString()); gunMonitoring.setVoltage(data.getOutput_voltage().toString()); switch (data.getHardware_fault()){ case 1: gunMonitoring.setFaultCause("急停按钮动作故障"); break; case 2: gunMonitoring.setFaultCause("无可用整流模块"); break; case 3: gunMonitoring.setFaultCause("出风口温度过高"); break; case 4: gunMonitoring.setFaultCause("交流防雷故障"); break; case 5: gunMonitoring.setFaultCause("交直流模块 DC20 通信中断"); break; case 6: gunMonitoring.setFaultCause("绝缘检测模块 FC08 通信中断"); break; case 7: gunMonitoring.setFaultCause("电度表通信中断"); break; case 8: gunMonitoring.setFaultCause("读卡器通信中断"); break; case 9: gunMonitoring.setFaultCause("RC10 通信中断"); break; case 10: gunMonitoring.setFaultCause("风扇调速板故障"); break; case 11: gunMonitoring.setFaultCause("直流熔断器故障"); break; case 12: gunMonitoring.setFaultCause("高压接触器故障"); break; case 13: gunMonitoring.setFaultCause("门打开"); break; } } } return pageInfo.setRecords(chargingGunMonitoring); } ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/ChargingOrderController.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/UploadRealTimeMonitoringDataController.java
New file @@ -0,0 +1,58 @@ package com.ruoyi.integration.controller; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import com.ruoyi.integration.mongodb.service.UploadRealTimeMonitoringDataService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; /** * <p> * 前端控制器 * </p> * * @author xiaochen * @since 2024-08-07 */ @RestController @RequestMapping("/uploadRealTimeMonitoringData") public class UploadRealTimeMonitoringDataController { @Resource private UploadRealTimeMonitoringDataService uploadRealTimeMonitoringDataService; /** * 远程调用 通过订单流水号 查询订单详情 * @param orderId * @return */ @PostMapping(value = "/getOrderInfoByCode") public R<UploadRealTimeMonitoringData> chargingOrderInfo(@RequestParam("orderId") String orderId){ List<UploadRealTimeMonitoringData> dataByOrderCode = uploadRealTimeMonitoringDataService.getDataByOrderCode(orderId); if(dataByOrderCode.size() > 0){ UploadRealTimeMonitoringData uploadRealTimeMonitoringData = dataByOrderCode.get(dataByOrderCode.size() - 1); return R.ok(uploadRealTimeMonitoringData); } return R.ok(); } /** * 根据订单编号获取所有监测数据 * @param code * @return */ @PostMapping(value = "/getDataByOrderCode") public R<List<UploadRealTimeMonitoringData>> getDataByOrderCode(@RequestParam("code") String code){ List<UploadRealTimeMonitoringData> list = uploadRealTimeMonitoringDataService.getDataByOrderCode(code); return R.ok(list); } } ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/UploadRealTimeMonitoringDataService.java
@@ -4,5 +4,15 @@ import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import com.ruoyi.integration.mongodb.base.BaseService; import java.util.List; public interface UploadRealTimeMonitoringDataService extends BaseService<UploadRealTimeMonitoringData> { /** * 根据订单号查询监控数据 * @param code * @return */ List<UploadRealTimeMonitoringData> getDataByOrderCode(String code); } ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java
@@ -1,11 +1,15 @@ package com.ruoyi.integration.mongodb.service.impl; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import com.ruoyi.integration.iotda.constant.IotConstant; import com.ruoyi.integration.mongodb.service.UploadRealTimeMonitoringDataService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; import java.util.List; @@ -31,5 +35,22 @@ public List<UploadRealTimeMonitoringData> findAll() { return mongoTemplate.findAll(UploadRealTimeMonitoringData.class); } /** * 根据订单号查询监控数据 * @param code * @return */ @Override public List<UploadRealTimeMonitoringData> getDataByOrderCode(String code) { Query query = new Query(); if(StringUtils.isNotEmpty(code)){ query.addCriteria(Criteria.where("transaction_serial_number").is(code)); } List<UploadRealTimeMonitoringData> uploadRealTimeMonitoringData = mongoTemplate.find( query.with(Sort.by("create_time")) , UploadRealTimeMonitoringData.class); return uploadRealTimeMonitoringData; } } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java
@@ -195,10 +195,11 @@ String[] split = goodsIds.split("-"); // 取出最后一位字符 类型1查询现金购买 类型2查询积分兑换 String s = split[split.length - 1]; String[] split1 = split[0].split(","); List<Integer> res = new ArrayList<>(); switch (Integer.parseInt(s)){ case 1: for (int i = 0; i < split.length-1; i++) { for (int i = 0; i < split1.length; i++) { Integer reduce = tShoppingOrderService.list(new QueryWrapper<TShoppingOrder>() .eq("order_type",1) .eq("goods_id", split[i]) @@ -209,7 +210,7 @@ } break; case 2: for (int i = 0; i < split.length-1; i++) { for (int i = 0; i < split1.length; i++) { Integer reduce = exchangeOrderService.list(new QueryWrapper<TExchangeOrder>() .eq("order_type",1) .ne("status",4) ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyChargingOrderInfo.java
@@ -51,9 +51,9 @@ @ApiModelProperty("阶段费用明细") private List<TChargingOrderAccountingStrategy> stageCost; @ApiModelProperty("电流电压曲线") private Map<String, Object> currentAndVoltage; private List<Map<String, Object>> currentAndVoltage; @ApiModelProperty("功率曲线") private Map<String, Object> power; private List<Map<String, Object>> power; @ApiModelProperty("是否可申诉(0=否,1=是)") private Integer actionable; } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -21,6 +21,8 @@ import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient; import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import com.ruoyi.order.api.model.TChargingOrder; import com.ruoyi.order.api.model.TChargingOrderAccountingStrategy; import com.ruoyi.order.api.query.ChargingOrderQuery; @@ -47,6 +49,7 @@ import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.util.*; import java.util.stream.Collectors; /** * <p> @@ -91,6 +94,13 @@ @Resource private RedisService redisService; @Resource private UploadRealTimeMonitoringDataClient uploadRealTimeMonitoringDataClient; /** * 获取小程序充电记录列表数据 @@ -164,11 +174,39 @@ .orderByAsc(TChargingOrderAccountingStrategy::getStartTime) ); myChargingOrderInfo.setStageCost(stageCost); // todo 待完善 //再MongoDB中获取数据 myChargingOrderInfo.setCurrentAndVoltage(null); //再MongoDB中获取数据 myChargingOrderInfo.setPower(null); List<UploadRealTimeMonitoringData> dataList = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrder.getCode()).getData(); if(null != dataList){ //在MongoDB中获取数据 SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); List<String> time = dataList.stream().map(s -> sdf.format(s.getCreate_time())).collect(Collectors.toList()); List<BigDecimal> outputVoltage = dataList.stream().map(UploadRealTimeMonitoringData::getOutput_voltage).collect(Collectors.toList()); List<BigDecimal> outputCurrent = dataList.stream().map(UploadRealTimeMonitoringData::getOutput_current).collect(Collectors.toList()); List<Map<String, Object>> currentAndVoltage = new ArrayList<>(); for (int i = 0; i < time.size(); i++) { Map<String, Object> map = new HashMap<>(); map.put("time", time.get(i)); //电流 map.put("electricity", outputCurrent.get(i)); //电压 map.put("voltage", outputVoltage.get(i)); currentAndVoltage.add(map); } myChargingOrderInfo.setCurrentAndVoltage(currentAndVoltage); //在MongoDB中获取数据 List<Integer> soc = dataList.stream().map(UploadRealTimeMonitoringData::getSoc).collect(Collectors.toList()); List<BigDecimal> po = dataList.stream().map(s -> s.getOutput_current().multiply(s.getOutput_voltage()).divide(new BigDecimal(1000))).collect(Collectors.toList()); List<Map<String, Object>> power = new ArrayList<>(); for (int i = 0; i < time.size(); i++) { Map<String, Object> map = new HashMap<>(); map.put("time", time.get(i)); //soc map.put("soc", soc.get(i)); //电压 map.put("power", po.get(i)); power.add(map); } myChargingOrderInfo.setPower(power); } myChargingOrderInfo.setActionable(myChargingOrderInfo.getEndTime() + 604800000L > System.currentTimeMillis() ? 0 : 1); return myChargingOrderInfo; } @@ -462,7 +500,9 @@ BigDecimal electronicMoney = new BigDecimal("0"); BigDecimal serviceMoney = new BigDecimal("0"); for (ChargingOrderVO chargingOrderVO : list) { total = total.add(chargingOrderVO.getChargingCapacity()); if (chargingOrderVO.getChargingCapacity()!=null){ total = total.add(chargingOrderVO.getChargingCapacity()); } // 充电订单 明细记录 List<TChargingOrderAccountingStrategy> chargingOrderId = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>() .eq("charging_order_id", chargingOrderVO.getId())); @@ -473,9 +513,11 @@ LocalDateTime startTime = chargingOrderVO.getStartTime(); LocalDateTime endTime = chargingOrderVO.getEndTime(); // 计算时间差 秒 充电时长 long between = ChronoUnit.SECONDS.between(startTime, endTime); chargingOrderVO.setChargingSecond(between); time += between; if (startTime!=null && endTime!=null){ long between = ChronoUnit.SECONDS.between(startTime, endTime); chargingOrderVO.setChargingSecond(between); time += between; } // 总收入 if (chargingOrderVO.getRefundStatus() == 2){ income = income.add(chargingOrderVO.getPaymentAmount().subtract(chargingOrderVO.getRefundAmount())); ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java
@@ -197,5 +197,12 @@ return R.ok(coupon); } @PostMapping(value = "/getCouponById") public R<TCoupon> getCouponById(@RequestParam("id") Integer id){ TCoupon coupon = tCouponService.getById(id); return R.ok(coupon); } } ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TGoodsServiceImpl.java
@@ -83,10 +83,10 @@ // 订单号加上商品类型 String res = string+"-"+dto.getType(); List<Integer> data = orderClient.getSalesCountByGoodsId(res).getData(); for (int i = 0; i < list.size(); i++) { list.get(i).setSalesCount(data.get(i)); } // List<Integer> data = orderClient.getSalesCountByGoodsId(res).getData(); // for (int i = 0; i < list.size(); i++) { // list.get(i).setSalesCount(data.get(i)); // } pageInfo.setRecords(list); return pageInfo; } ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TGoodsMapper.xml
@@ -58,7 +58,7 @@ WHERE `status` = 1 and del_flag = 0 and type = #{appGoodQuery.type} UNION ALL SELECT id,name,redeem_points,inventory_quantity as inventory,payment_amount as preferential_price,vip_payment_amount as vip_price id,name,redeem_points,inventory_quantity as inventory,payment_amount as original_price,payment_amount as preferential_price,vip_payment_amount as vip_price FROM t_coupon WHERE `status`= 1 and del_flag = 0 and type = #{appGoodQuery.type} @@ -68,7 +68,7 @@ WHEN `inventory` = 0 THEN 0 ELSE 1 END DESC, `redeem_points` ASC; `redeem_points` ASC </select> </mapper>