Merge remote-tracking branch 'origin/master'
# Conflicts:
# ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java
# ruoyi-service/ruoyi-account/pom.xml
# ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
48 文件已重命名
191个文件已修改
2个文件已删除
24个文件已添加
| | |
| | | |
| | | import com.ruoyi.common.core.web.domain.BasePojo; |
| | | import com.ruoyi.common.core.web.page.BasePage; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | @ApiModel("积分明细查询") |
| | | public class PointsQueryDto extends BasePage { |
| | | @ApiModelProperty("用户id") |
| | | private Long userId; |
| | |
| | | import com.ruoyi.account.api.feignClient.AppUserClient; |
| | | import com.ruoyi.account.api.model.TAppCoupon; |
| | | import com.ruoyi.account.api.model.TAppUser; |
| | | import com.ruoyi.account.api.model.TAppUserAddress; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.core.dto.PointChangeDto; |
| | | import org.slf4j.Logger; |
| | |
| | | public R<List<TAppUser>> getUserByIds(List<Long> appUserIds) { |
| | | return R.fail("根据用户id查询用户信息失败:"+throwable.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public R<TAppUserAddress> getAddressById(Long id) { |
| | | return R.fail("通过地址id `查询用户地址失败:"+throwable.getMessage()); |
| | | } |
| | | }; |
| | | } |
| | | } |
| | |
| | | |
| | | import com.ruoyi.account.api.model.TAppCoupon; |
| | | import com.ruoyi.account.api.model.TAppUser; |
| | | import com.ruoyi.account.api.model.TAppUserAddress; |
| | | import com.ruoyi.common.core.constant.ServiceNameConstants; |
| | | import com.ruoyi.account.api.factory.AppUserFallbackFactory; |
| | | import com.ruoyi.common.core.domain.R; |
| | |
| | | */ |
| | | @PostMapping(value = "/t-app-user/user/getUserByIds") |
| | | public R<List<TAppUser>> getUserByIds(@RequestBody List<Long> appUserIds); |
| | | /** |
| | | * 远程调用 通过地址id 查询地址信息 |
| | | * @param id |
| | | * @return |
| | | */ |
| | | @GetMapping(value = "/t-app-user-address/getAddressById/{id}") |
| | | public R<TAppUserAddress> getAddressById(@PathVariable("id") Long id); |
| | | |
| | | |
| | | /** |
| | |
| | | @ApiModelProperty(value = "主键") |
| | | @TableId("id") |
| | | private Long id; |
| | | @TableField(exist = false) |
| | | private String uid; |
| | | |
| | | @ApiModelProperty(value = "app用户id") |
| | | @TableField("app_user_id") |
| | |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import com.ruoyi.common.core.web.domain.BasePojo; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | |
| | | @ApiModelProperty(value = "添加时间") |
| | | @TableField("create_time") |
| | | private LocalDateTime createTime; |
| | | @TableField(exist = false) |
| | | @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") |
| | | private LocalDateTime dateTime; |
| | | |
| | | @ApiModelProperty(value = "扩展字段") |
| | | @TableField("extension") |
| | |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import com.ruoyi.common.core.web.domain.BasePojo; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | |
| | | |
| | | @ApiModelProperty(value = "签到天") |
| | | @TableField("sign_day") |
| | | @JsonFormat(pattern = "dd", timezone = "GMT+8") |
| | | private LocalDate signDay; |
| | | |
| | | @ApiModelProperty(value = "奖励积分") |
| | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @ApiModelProperty(value = "主键") |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | @TableId(value = "id", type = IdType.NONE) |
| | | private Integer id; |
| | | |
| | | @ApiModelProperty(value = "用户id") |
| | |
| | | </description> |
| | | |
| | | <dependencies> |
| | | |
| | | <!--mongodb--> |
| | | <dependency> |
| | | <groupId>org.springframework.boot</groupId> |
| | | <artifactId>spring-boot-starter-data-mongodb</artifactId> |
| | | </dependency> |
| | | <!-- RuoYi Common Core--> |
| | | <dependency> |
| | | <groupId>com.ruoyi</groupId> |
New file |
| | |
| | | package com.ruoyi.integration.api.factory; |
| | | |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.integration.api.feignClient.IntegrationClient; |
| | | 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; |
| | | |
| | | /** |
| | | * 充电桩服务降级处理 |
| | | * |
| | | * @author ruoyi |
| | | */ |
| | | @Component |
| | | public class IntegrationFallbackFactory implements FallbackFactory<IntegrationClient> |
| | | { |
| | | private static final Logger log = LoggerFactory.getLogger(IntegrationFallbackFactory.class); |
| | | |
| | | @Override |
| | | public IntegrationClient create(Throwable throwable) { |
| | | log.error("充电桩调用失败:{}", throwable.getMessage()); |
| | | return new IntegrationClient() { |
| | | |
| | | @Override |
| | | public R<String> onlineReply(OnlineReply onlineReply) { |
| | | return R.fail("登录认证应答调用失败:" + throwable.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public R<String> pong(Pong pong) { |
| | | return R.fail("心跳包应答调用失败:" + throwable.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public R<String> billingModeVerifyReply(BillingModeVerifyReply billingModeVerifyReply) { |
| | | return R.fail("计费模型验证请求应答调用失败:" + throwable.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public R<String> acquisitionBillingModeReply(AcquisitionBillingModeReply acquisitionBillingModeReply) { |
| | | return R.fail("计费模型验证请求应答调用失败:" + throwable.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public R<String> readRealTimeMonitoringData(ReadRealTimeMonitoringData readRealTimeMonitoringData) { |
| | | return R.fail("读取实时监测数据调用失败:" + throwable.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public R<String> endCharge(EndCharge endCharge) { |
| | | return R.fail("充电结束调用失败:" + throwable.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public R<String> platformConfirmationCharging(PlatformConfirmationCharging platformConfirmationCharging) { |
| | | return R.fail("运营平台确认启动充电调用失败:" + throwable.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public R<String> platformStartCharging(PlatformStartCharging platformStartCharging) { |
| | | return R.fail("运营平台远程控制启机调用失败:" + throwable.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public R<String> platformStopCharging(PlatformStopCharging platformStopCharging) { |
| | | return R.fail("运营平台远程停机调用失败:" + throwable.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public R<String> confirmTransactionRecord(ConfirmTransactionRecord confirmTransactionRecord) { |
| | | return R.fail("交易记录确认调用失败:" + throwable.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public R<String> updateBalance(UpdateBalance updateBalance) { |
| | | return R.fail("远程账户余额更新调用失败:" + throwable.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public R<String> synchronizeOfflineCard(SynchronizeOfflineCard synchronizeOfflineCard) { |
| | | return R.fail("离线卡数据同步调用失败:" + throwable.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public R<String> clearOfflineCard(ClearOfflineCard clearOfflineCard) { |
| | | return R.fail("离线卡数据清除调用失败:" + throwable.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public R<String> queryOfflineCard(QueryOfflineCard queryOfflineCard) { |
| | | return R.fail("离线卡数据查询调用失败:" + throwable.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public R<String> workingParameterSetting(WorkingParameterSetting workingParameterSetting) { |
| | | return R.fail("充电桩工作参数设置调用失败:" + throwable.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public R<String> timingSetting(TimingSetting timingSetting) { |
| | | return R.fail("对时设置调用失败:" + throwable.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public R<String> setupBillingModel(SetupBillingModel setupBillingModel) { |
| | | return R.fail("计费模型设置调用失败:" + throwable.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public R<String> openOrCloseGroundLock(OpenOrCloseGroundLock openOrCloseGroundLock) { |
| | | return R.fail("遥控地锁升锁与降锁命令 (下行)调用失败:" + throwable.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public R<String> platformRestart(PlatformRestart platformRestart) { |
| | | return R.fail("远程重启调用失败:" + throwable.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public R<String> platformRemoteUpdate(PlatformRemoteUpdate platformRemoteUpdate) { |
| | | return R.fail("远程更新调用失败:" + throwable.getMessage()); |
| | | } |
| | | }; |
| | | } |
| | | } |
New file |
| | |
| | | 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.IntegrationFallbackFactory; |
| | | import com.ruoyi.integration.api.model.*; |
| | | import org.springframework.cloud.openfeign.FeignClient; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | |
| | | /** |
| | | * 充电服务 |
| | | * @author ruoyi |
| | | */ |
| | | @FeignClient(contextId = "IntegrationClient", value = ServiceNameConstants.INTEGRATION_SERVICE, fallbackFactory = IntegrationFallbackFactory.class) |
| | | public interface IntegrationClient { |
| | | |
| | | |
| | | /** |
| | | * 登录认证应答 |
| | | * @param onlineReply 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/sendMessage/sendMessageonlineReply") |
| | | public R<String> onlineReply(@RequestBody OnlineReply onlineReply); |
| | | |
| | | /** |
| | | * 心跳包应答 |
| | | * @param pong 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/sendMessage/sendMessagepong") |
| | | public R<String> pong(@RequestBody Pong pong); |
| | | |
| | | /** |
| | | * 计费模型验证请求应答 |
| | | * @param billingModeVerifyReply 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/sendMessage/sendMessagebillingModeVerifyReply") |
| | | public R<String> billingModeVerifyReply(@RequestBody BillingModeVerifyReply billingModeVerifyReply); |
| | | |
| | | /** |
| | | * 计费模型验证请求应答 |
| | | * @param acquisitionBillingModeReply 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/sendMessage/sendMessageacquisitionBillingModeReply") |
| | | public R<String> acquisitionBillingModeReply(@RequestBody AcquisitionBillingModeReply acquisitionBillingModeReply); |
| | | |
| | | /** |
| | | * 读取实时监测数据 |
| | | * @param readRealTimeMonitoringData 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/sendMessage/sendMessagereadRealTimeMonitoringData") |
| | | public R<String> readRealTimeMonitoringData(@RequestBody ReadRealTimeMonitoringData readRealTimeMonitoringData); |
| | | |
| | | /** |
| | | * 充电结束 |
| | | * @param endCharge 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/sendMessage/sendMessageendCharge") |
| | | public R<String> endCharge(@RequestBody EndCharge endCharge); |
| | | |
| | | /** |
| | | * 运营平台确认启动充电 |
| | | * @param platformConfirmationCharging 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/sendMessage/sendMessageplatformConfirmationCharging") |
| | | public R<String> platformConfirmationCharging(@RequestBody PlatformConfirmationCharging platformConfirmationCharging); |
| | | |
| | | /** |
| | | * 运营平台远程控制启机 |
| | | * @param platformStartCharging 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/sendMessage/sendMessageplatformStartCharging") |
| | | public R<String> platformStartCharging(@RequestBody PlatformStartCharging platformStartCharging); |
| | | |
| | | /** |
| | | * 运营平台远程停机 |
| | | * @param platformStopCharging 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/sendMessage/sendMessageplatformStopCharging") |
| | | public R<String> platformStopCharging(@RequestBody PlatformStopCharging platformStopCharging); |
| | | |
| | | /** |
| | | * 交易记录确认 |
| | | * @param confirmTransactionRecord 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/sendMessage/sendMessageconfirmTransactionRecord") |
| | | public R<String> confirmTransactionRecord(@RequestBody ConfirmTransactionRecord confirmTransactionRecord); |
| | | |
| | | /** |
| | | * 远程账户余额更新 |
| | | * @param updateBalance 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/sendMessage/sendMessageupdateBalance") |
| | | public R<String> updateBalance(@RequestBody UpdateBalance updateBalance); |
| | | |
| | | /** |
| | | * 离线卡数据同步 |
| | | * @param synchronizeOfflineCard 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/sendMessage/sendMessagesynchronizeOfflineCard") |
| | | public R<String> synchronizeOfflineCard(@RequestBody SynchronizeOfflineCard synchronizeOfflineCard); |
| | | |
| | | /** |
| | | * 离线卡数据清除 |
| | | * @param clearOfflineCard 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/sendMessage/sendMessageclearOfflineCard") |
| | | public R<String> clearOfflineCard(@RequestBody ClearOfflineCard clearOfflineCard); |
| | | |
| | | /** |
| | | * 离线卡数据查询 |
| | | * @param queryOfflineCard 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/sendMessage/sendMessagequeryOfflineCard") |
| | | public R<String> queryOfflineCard(@RequestBody QueryOfflineCard queryOfflineCard); |
| | | |
| | | /** |
| | | * 充电桩工作参数设置 |
| | | * @param workingParameterSetting 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/sendMessage/sendMessageworkingParameterSetting") |
| | | public R<String> workingParameterSetting(@RequestBody WorkingParameterSetting workingParameterSetting); |
| | | |
| | | /** |
| | | * 对时设置 |
| | | * @param timingSetting 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/sendMessage/sendMessagetimingSetting") |
| | | public R<String> timingSetting(@RequestBody TimingSetting timingSetting); |
| | | |
| | | /** |
| | | * 计费模型设置 |
| | | * @param setupBillingModel 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/sendMessage/sendMessagesetupBillingModel") |
| | | public R<String> setupBillingModel(@RequestBody SetupBillingModel setupBillingModel); |
| | | |
| | | /** |
| | | * 遥控地锁升锁与降锁命令 (下行) |
| | | * @param openOrCloseGroundLock 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/sendMessage/sendMessageopenOrCloseGroundLock") |
| | | public R<String> openOrCloseGroundLock(@RequestBody OpenOrCloseGroundLock openOrCloseGroundLock); |
| | | /** |
| | | * 远程重启 |
| | | * @param platformRestart 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/sendMessage/sendMessageplatformRestart") |
| | | public R<String> platformRestart(@RequestBody PlatformRestart platformRestart); |
| | | /** |
| | | * 远程更新 |
| | | * @param platformRemoteUpdate 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/sendMessage/sendMessageplatformRemoteUpdate") |
| | | public R<String> platformRemoteUpdate(@RequestBody PlatformRemoteUpdate platformRemoteUpdate); |
| | | |
| | | } |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/AcquisitionBillingMode.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/AcquisitionBillingModeReply.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/BillingModeVerify.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/BillingModeVerifyReply.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/BmsAbort.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/BmsDemandAndChargerExportation.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/BmsInformation.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/ChargingHandshake.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/ChargingPileReturnsGroundLockData.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/ChargingPileStartsCharging.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/ClearOfflineCard.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/ClearOfflineCardReply.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/ConfirmTransactionRecord.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/EndCharge.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/ErrorMessage.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/GroundLockRealTimeData.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/MotorAbort.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/Online.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/OnlineReply.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/OpenOrCloseGroundLock.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/ParameterSetting.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/Ping.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/PlatformConfirmationCharging.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/PlatformRemoteUpdate.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/PlatformRemoteUpdateReply.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/PlatformRestart.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/PlatformRestartReply.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/PlatformStartCharging.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/PlatformStartChargingReply.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/PlatformStopCharging.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/PlatformStopChargingReply.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/Pong.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/QueryOfflineCard.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/QueryOfflineCardReply.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/ReadRealTimeMonitoringData.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/SetupBillingModel.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/SetupBillingModelReply.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/SynchronizeOfflineCard.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/SynchronizeOfflineCardReply.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/TimingSetting.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/TimingSettingReply.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/TransactionRecord.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/UpdateBalance.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/UpdateBalanceReply.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/UploadRealTimeMonitoringData.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/WorkingParameterSetting.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/model/WorkingParameterSettingReply.java |
| | |
| | | package com.ruoyi.integration.mongodb.model; |
| | | package com.ruoyi.integration.api.model; |
| | | |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
| | |
| | | com.ruoyi.integration.api.factory.ChargingPileFallbackFactory |
| | | com.ruoyi.integration.api.factory.IntegrationFallbackFactory |
| | |
| | | |
| | | @ApiModelProperty(value = "发货人id") |
| | | @TableField("consigner_id") |
| | | private Integer consignerId; |
| | | private Long consignerId; |
| | | |
| | | @ApiModelProperty(value = "发货时间") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | |
| | | |
| | | @ApiModelProperty(value = "取消人id") |
| | | @TableField("cancellation_id") |
| | | private Integer cancellationId; |
| | | private Long cancellationId; |
| | | @ApiModelProperty(value = "收货人") |
| | | @TableField(exist = false) |
| | | private String receivingName; |
| | | @ApiModelProperty(value = "收货地址") |
| | | @TableField(exist = false) |
| | | private String receivingAddress; |
| | | @ApiModelProperty(value = "发货人") |
| | | @TableField(exist = false) |
| | | private String consignerName; |
| | | @ApiModelProperty(value = "取消人") |
| | | @TableField(exist = false) |
| | | private String cancellationName; |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | @ApiModelProperty(value = "发货人id") |
| | | @TableField("consigner_id") |
| | | private Integer consignerId; |
| | | private Long consignerId; |
| | | |
| | | @ApiModelProperty(value = "发货时间") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | |
| | | |
| | | @ApiModelProperty(value = "取消人id") |
| | | @TableField("cancellation_id") |
| | | private Integer cancellationId; |
| | | private Long cancellationId; |
| | | |
| | | @ApiModelProperty(value = "退款流水号") |
| | | @TableField("refund_code") |
| | |
| | | @TableField("refund_time") |
| | | private LocalDateTime refundTime; |
| | | |
| | | @ApiModelProperty(value = "收货人") |
| | | @TableField(exist = false) |
| | | private String receivingName; |
| | | @ApiModelProperty(value = "收货地址") |
| | | @TableField(exist = false) |
| | | private String receivingAddress; |
| | | @ApiModelProperty(value = "发货人") |
| | | @TableField(exist = false) |
| | | private String consignerName; |
| | | @ApiModelProperty(value = "取消人") |
| | | @TableField(exist = false) |
| | | private String cancellationName; |
| | | |
| | | } |
| | |
| | | @TableField("discount_amount") |
| | | private BigDecimal discountAmount; |
| | | |
| | | @ApiModelProperty(value = "支付金额") |
| | | @ApiModelProperty(value = "实付支付金额") |
| | | @TableField("payment_amount") |
| | | private BigDecimal paymentAmount; |
| | | |
New file |
| | |
| | | package com.ruoyi.order.api.query; |
| | | |
| | | import com.ruoyi.common.core.web.page.BasePage; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.util.List; |
| | | |
| | | @Data |
| | | @ApiModel(value = "ShoppingOrderQuery对象",description = "管理后台购物订单查询对象") |
| | | public class ShoppingOrderQuery extends BasePage { |
| | | @ApiModelProperty(value = "订单编号") |
| | | private String code; |
| | | @ApiModelProperty(value = "手机号") |
| | | private String phone; |
| | | @ApiModelProperty(value = "状态(1=待发货,2=待收货,3=已完成,4=已取消)") |
| | | private Integer status; |
| | | @ApiModelProperty(value = "商品名称") |
| | | private String name; |
| | | @ApiModelProperty(value = "创建时间2020-01-01 00:00:00 - 2021-01-01 23:59:59") |
| | | private String startTime; |
| | | @ApiModelProperty(value = "用户ids 前端忽略") |
| | | private List<Long> userIds; |
| | | @ApiModelProperty(value = "商品ids 前端忽略") |
| | | private List<Integer> goodsIds; |
| | | @ApiModelProperty(value = "优惠券ids 前端忽略") |
| | | private List<Integer> couponIds; |
| | | } |
New file |
| | |
| | | package com.ruoyi.order.api.query; |
| | | |
| | | import com.ruoyi.common.core.web.page.BasePage; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.util.List; |
| | | |
| | | @Data |
| | | @ApiModel(value = "ChargingOrderQuery对象",description = "管理后台充电订单查询对象") |
| | | public class VipShoppingOrderQuery extends BasePage { |
| | | @ApiModelProperty(value = "手机号") |
| | | private String phone; |
| | | @ApiModelProperty(value = "会员时长(1=月卡,2=季卡,3=年卡)") |
| | | private Integer vipType; |
| | | @ApiModelProperty(value = "会员类型id") |
| | | private Integer vipId; |
| | | @ApiModelProperty(value = "时间范围2020-01-01 00:00:00 - 2021-01-01 23:59:59") |
| | | private String startTime; |
| | | @ApiModelProperty(value = "用户ids 前端忽略") |
| | | private List<Long> userIds; |
| | | @ApiModelProperty(value = "商品ids 前端忽略") |
| | | private List<Integer> goodsIds; |
| | | @ApiModelProperty(value = "优惠券ids 前端忽略") |
| | | private List<Integer> couponIds; |
| | | } |
| | |
| | | @ApiModelProperty(value = "充电终端名称 桩+枪") |
| | | private String terminalName; |
| | | @ApiModelProperty(value = "充电时间 秒") |
| | | private Integer chargingSecond; |
| | | private Long chargingSecond; |
| | | @ApiModelProperty(value = "平台手续费") |
| | | private BigDecimal platFormMoney; |
| | | @ApiModelProperty(value = "三方平台分佣") |
| | |
| | | private String licensePlate; |
| | | @ApiModelProperty(value = "手机号") |
| | | private String phone; |
| | | @ApiModelProperty(value = "累计充电量") |
| | | private BigDecimal chargingCapacity; |
| | | |
| | | @ApiModelProperty(value = "累计电费") |
| | | private BigDecimal electrovalence; |
| | | @ApiModelProperty(value = "累计服务费") |
| | |
| | | @ApiModelProperty(value = "总充电量") |
| | | private BigDecimal total; |
| | | @ApiModelProperty(value = "充电时长") |
| | | private BigDecimal time; |
| | | private Long time; |
| | | @ApiModelProperty(value = "收入") |
| | | private BigDecimal income; |
| | | @ApiModelProperty(value = "电费") |
| | |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | import java.io.Serializable; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | |
| | | /** |
| | |
| | | |
| | | @ApiModelProperty(value = "开始时间") |
| | | @TableField("start_time") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") |
| | | private LocalDateTime startTime; |
| | | @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") |
| | | private LocalDate startTime; |
| | | |
| | | @ApiModelProperty(value = "结束时间") |
| | | @TableField("end_time") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") |
| | | private LocalDateTime endTime; |
| | | @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") |
| | | private LocalDate endTime; |
| | | |
| | | |
| | | |
New file |
| | |
| | | package com.ruoyi.other.api.dto; |
| | | |
| | | import com.ruoyi.common.core.web.page.BasePage; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | @ApiModel("广告列表查询DTO") |
| | | public class SaveHtml extends BasePage { |
| | | |
| | | @ApiModelProperty(value = "数据类型(1=积分规则说明,2=会员折扣说明,3=优惠券说明,4=双倍积分说明,5=商城专享价说明,6=会员协议,7=用户协议,8=隐私协议,9=邀请好友说明,10=资质证明,11=开票说明)") |
| | | private Integer type; |
| | | @ApiModelProperty(value = "标题") |
| | | private String info; |
| | | |
| | | |
| | | } |
| | |
| | | import org.springframework.cloud.openfeign.FallbackFactory; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2024/8/16 13:48 |
| | |
| | | public R<TCoupon> getCouponById1(Integer id) { |
| | | return R.fail("根据id获取优惠券信息失败:" + throwable.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public R<List<Integer>> getCouponIdsByName(String name) { |
| | | return R.fail("根据名称查询优惠券ids:" + throwable.getMessage()); |
| | | } |
| | | }; |
| | | } |
| | | |
| | |
| | | import org.springframework.cloud.openfeign.FallbackFactory; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2024/8/16 13:48 |
| | |
| | | public R<TGoods> getGoodsById(Integer id) { |
| | | return R.fail("根据id获取商品信息失败:" + throwable.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public R<List<Integer>> getGoodsIdsByName(String name) { |
| | | return R.fail("根据商品名称获取商品ids失败:" + throwable.getMessage()); |
| | | } |
| | | }; |
| | | } |
| | | |
| | |
| | | import org.springframework.web.bind.annotation.PathVariable; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2024/8/16 14:00 |
| | |
| | | */ |
| | | @PostMapping("/t-coupon/getCouponById1/{id}") |
| | | R<TCoupon> getCouponById1(@PathVariable("id") Integer id); |
| | | @PostMapping("/t-coupon/getCouponIdsByName/{name}") |
| | | R<List<Integer>> getCouponIdsByName(@PathVariable("name")String name); |
| | | } |
| | |
| | | import org.springframework.web.bind.annotation.PathVariable; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2024/8/16 13:47 |
| | |
| | | */ |
| | | @PostMapping("/t-goods/getGoodsById/{id}") |
| | | R<TGoods> getGoodsById(@PathVariable("id") Integer id); |
| | | /** |
| | | * 远程调用 根据商品名称查询商品ids |
| | | * @param name |
| | | * @return |
| | | */ |
| | | @PostMapping("/t-goods/getGoodsIdsByName/{name}") |
| | | public R<List<Integer>> getGoodsIdsByName(@PathVariable("name")String name); |
| | | } |
| | |
| | | * 获取积分设置 |
| | | * @return |
| | | */ |
| | | @PostMapping("/integral/getSet") |
| | | @GetMapping("/integral/getSet") |
| | | R<TIntegralRule> getSet(); |
| | | } |
New file |
| | |
| | | package com.ruoyi.payment.api.factory; |
| | | |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.payment.api.feignClient.AliPaymentClient; |
| | | import com.ruoyi.payment.api.vo.AliPaymentReq; |
| | | import com.ruoyi.payment.api.vo.AliPaymentResp; |
| | | import com.ruoyi.payment.api.vo.AliQueryOrder; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.cloud.openfeign.FallbackFactory; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | |
| | | /** |
| | | * 充电订单服务降级处理 |
| | | * |
| | | * @author ruoyi |
| | | */ |
| | | @Component |
| | | public class AliPaymentFallbackFactory implements FallbackFactory<AliPaymentClient> |
| | | { |
| | | private static final Logger log = LoggerFactory.getLogger(AliPaymentFallbackFactory.class); |
| | | |
| | | @Override |
| | | public AliPaymentClient create(Throwable throwable) { |
| | | log.error("支付宝支付调用失败:{}", throwable.getMessage()); |
| | | return new AliPaymentClient() { |
| | | |
| | | @Override |
| | | public R<AliPaymentResp> payment(AliPaymentReq req) { |
| | | throw new RuntimeException("调起支付宝小程序支付失败:" + throwable.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public R<AliQueryOrder> query(String outTradeNo) { |
| | | throw new RuntimeException("查询支付订单失败:" + throwable.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public void close(String outTradeNo) { |
| | | throw new RuntimeException("关闭支付订单失败:" + throwable.getMessage()); |
| | | } |
| | | }; |
| | | } |
| | | } |
| | |
| | | |
| | | @Override |
| | | public R<NotifyV3PayDecodeRespBody> queryOrderInfo(String orderId) { |
| | | return R.fail("查询支付订单信息失败:" + throwable.getMessage()); |
| | | throw new RuntimeException("查询支付订单信息失败:" + throwable.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | |
| | | |
| | | @Override |
| | | public void close(String outTradeNo) { |
| | | |
| | | throw new RuntimeException("关闭支付订单失败:" + throwable.getMessage()); |
| | | } |
| | | }; |
| | | } |
New file |
| | |
| | | package com.ruoyi.payment.api.feignClient; |
| | | |
| | | import com.ruoyi.common.core.constant.ServiceNameConstants; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.payment.api.factory.WxPaymentFallbackFactory; |
| | | import com.ruoyi.payment.api.vo.AliPaymentReq; |
| | | import com.ruoyi.payment.api.vo.AliPaymentResp; |
| | | import com.ruoyi.payment.api.vo.AliQueryOrder; |
| | | import org.springframework.cloud.openfeign.FeignClient; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2024/8/24 14:39 |
| | | */ |
| | | @FeignClient(contextId = "AliPaymentClient", value = ServiceNameConstants.PAYMENT_SERVICE, fallbackFactory = WxPaymentFallbackFactory.class) |
| | | public interface AliPaymentClient { |
| | | |
| | | |
| | | /** |
| | | * 调起支付宝小程序支付 |
| | | * @param req |
| | | * @return |
| | | */ |
| | | @PostMapping("/ali/payment") |
| | | R<AliPaymentResp> payment(AliPaymentReq req); |
| | | |
| | | |
| | | /** |
| | | * 查询支付订单 |
| | | * @param outTradeNo |
| | | * @return |
| | | */ |
| | | @PostMapping("/ali/query") |
| | | R<AliQueryOrder> query(String outTradeNo); |
| | | |
| | | /** |
| | | * 关闭订单 |
| | | * @param outTradeNo |
| | | */ |
| | | @PostMapping("/ali/close") |
| | | void close(String outTradeNo); |
| | | } |
New file |
| | |
| | | package com.ruoyi.payment.api.vo; |
| | | |
| | | import lombok.Data; |
| | | |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2024/8/23 16:52 |
| | | */ |
| | | @Data |
| | | public class AliPaymentReq { |
| | | /** |
| | | * 业务流水号 |
| | | */ |
| | | private String outTradeNo; |
| | | /** |
| | | * 支付总金额 |
| | | */ |
| | | private String totalAmount; |
| | | /** |
| | | * 订单标题 |
| | | */ |
| | | private String subject; |
| | | /** |
| | | * 支付用户支付宝openid |
| | | */ |
| | | private String buyerOpenId; |
| | | /** |
| | | * 订单附加信息 |
| | | */ |
| | | private String body; |
| | | /** |
| | | * 订单超时时间 |
| | | * 订单相对超时时间。从交易创建时间开始计算。 |
| | | * 该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m。 |
| | | * 当面付场景默认值为3h |
| | | */ |
| | | private String timeoutExpress; |
| | | /** |
| | | * 回传参数 |
| | | * 如果请求时传递了该参数,支付宝会在异步通知时将该参数原样返回。 |
| | | */ |
| | | private String passbackParams; |
| | | /** |
| | | * 初始化默认数据 |
| | | */ |
| | | public AliPaymentReq() { |
| | | //订单超时默认30分钟 |
| | | this.timeoutExpress = "30m"; |
| | | } |
| | | } |
New file |
| | |
| | | package com.ruoyi.payment.api.vo; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2024/8/24 15:09 |
| | | */ |
| | | @Data |
| | | @ApiModel |
| | | public class AliPaymentResp { |
| | | /** |
| | | * 支付单号 |
| | | */ |
| | | @ApiModelProperty("支付单号") |
| | | private String tradeNo; |
| | | /** |
| | | * 回调通知地址 |
| | | */ |
| | | @ApiModelProperty("回调通知地址") |
| | | private String notifyUrl; |
| | | } |
New file |
| | |
| | | package com.ruoyi.payment.api.vo; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonSetter; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2024/8/24 12:01 |
| | | */ |
| | | @Data |
| | | public class AliQueryOrder { |
| | | /** |
| | | * 支付宝交易号 |
| | | */ |
| | | @JsonSetter("trade_no") |
| | | private String tradeNo; |
| | | /** |
| | | * 业务流水号 |
| | | */ |
| | | @JsonSetter("out_trade_no") |
| | | private String outTradeNo; |
| | | /** |
| | | * 交易状态 |
| | | * WAIT_BUYER_PAY(交易创建,等待买家付款)、TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、TRADE_SUCCESS(交易支付成功)、TRADE_FINISHED(交易结束,不可退款) |
| | | */ |
| | | @JsonSetter("trade_status") |
| | | private String tradeStatus; |
| | | /** |
| | | * 交易订单金额 |
| | | */ |
| | | @JsonSetter("total_amount") |
| | | private Double totalAmount; |
| | | /** |
| | | * 回传参数 |
| | | */ |
| | | @JsonSetter("passback_params") |
| | | private String passbackParams; |
| | | /** |
| | | * 订单标题 |
| | | */ |
| | | @JsonSetter("subject") |
| | | private String subject; |
| | | /** |
| | | * 订单描述 |
| | | */ |
| | | @JsonSetter("body") |
| | | private String body; |
| | | } |
| | |
| | | com.ruoyi.payment.api.factory.WxPaymentFallbackFactory |
| | | com.ruoyi.payment.api.factory.AliPaymentFallbackFactory |
| | |
| | | </description> |
| | | |
| | | <dependencies> |
| | | |
| | | |
| | | <!-- SpringCloud Openfeign --> |
| | | <dependency> |
| | |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.*; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.*; |
| | | |
| | | /** |
| | |
| | | public static LocalDateTime getDayEnd(LocalDateTime time) { |
| | | return time.with(LocalTime.MAX); |
| | | } |
| | | /** |
| | | * string转LocalTime |
| | | * |
| | | * @return |
| | | */ |
| | | public static LocalTime string2LocalTime(String time) { |
| | | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss"); |
| | | return LocalTime.parse(time, formatter); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | public <T> void setCacheMap(final String key, final Map<String, T> dataMap, long timeout) |
| | | { |
| | | if (dataMap != null) { |
| | | redisTemplate.opsForHash().putAll(key, dataMap); |
| | | redisTemplate.expire(key, timeout, TimeUnit.SECONDS); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 获得缓存的Map |
| | | * |
| | |
| | | * @author ruoyi |
| | | */ |
| | | @Component |
| | | public class TokenService |
| | | { |
| | | public class TokenService { |
| | | @Autowired |
| | | private RedisService redisService; |
| | | |
| | |
| | | /** |
| | | * 创建令牌 |
| | | */ |
| | | public Map<String, Object> createToken(LoginUser loginUser) |
| | | { |
| | | public Map<String, Object> createToken(LoginUser loginUser) { |
| | | String token = IdUtils.fastUUID(); |
| | | Long userId = loginUser.getSysUser().getUserId(); |
| | | String userName = loginUser.getSysUser().getUserName(); |
| | |
| | | rspMap.put("expires_in", expireTime); |
| | | return rspMap; |
| | | } |
| | | |
| | | /** |
| | | * 创建小程序令牌 |
| | | */ |
| | |
| | | rspMap.put("expires_in", expireAppletTime); |
| | | return rspMap; |
| | | } |
| | | |
| | | public LoginUserApplet getLoginUserApplet() { |
| | | LoginUserApplet loginUserAppletToken = getLoginUserAppletToken(ServletUtils.getRequest()); |
| | | if (loginUserAppletToken == null){ |
| | |
| | | } |
| | | return loginUserAppletToken; |
| | | } |
| | | |
| | | public LoginUserApplet getLoginUserAppletToken(HttpServletRequest request) { |
| | | // 获取请求携带的令牌 |
| | | String token = SecurityUtils.getToken(request); |
| | | return getLoginUserApplet(token); |
| | | } |
| | | |
| | | /** |
| | | * 小程序 获取用户身份信息 |
| | | * |
| | |
| | | } |
| | | return user; |
| | | } |
| | | |
| | | /** |
| | | * 获取用户身份信息 |
| | | * |
| | | * @return 用户信息 |
| | | */ |
| | | public LoginUser getLoginUser() |
| | | { |
| | | public LoginUser getLoginUser() { |
| | | return getLoginUser(ServletUtils.getRequest()); |
| | | } |
| | | |
| | |
| | | * |
| | | * @return 用户信息 |
| | | */ |
| | | public LoginUser getLoginUser(HttpServletRequest request) |
| | | { |
| | | public LoginUser getLoginUser(HttpServletRequest request) { |
| | | // 获取请求携带的令牌 |
| | | String token = SecurityUtils.getToken(request); |
| | | return getLoginUser(token); |
| | |
| | | * |
| | | * @return 用户信息 |
| | | */ |
| | | public LoginUser getLoginUser(String token) |
| | | { |
| | | public LoginUser getLoginUser(String token) { |
| | | LoginUser user = null; |
| | | try |
| | | { |
| | | if (StringUtils.isNotEmpty(token)) |
| | | { |
| | | try { |
| | | if (StringUtils.isNotEmpty(token)) { |
| | | String userkey = JwtUtils.getUserKey(token); |
| | | user = redisService.getCacheObject(getTokenKey(userkey)); |
| | | return user; |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | } catch (Exception e) { |
| | | } |
| | | return user; |
| | | } |
| | |
| | | /** |
| | | * 设置用户身份信息 |
| | | */ |
| | | public void setLoginUser(LoginUser loginUser) |
| | | { |
| | | if (StringUtils.isNotNull(loginUser) && StringUtils.isNotEmpty(loginUser.getToken())) |
| | | { |
| | | public void setLoginUser(LoginUser loginUser) { |
| | | if (StringUtils.isNotNull(loginUser) && StringUtils.isNotEmpty(loginUser.getToken())) { |
| | | refreshToken(loginUser); |
| | | } |
| | | } |
| | |
| | | /** |
| | | * 删除用户缓存信息 |
| | | */ |
| | | public void delLoginUser(String token) |
| | | { |
| | | if (StringUtils.isNotEmpty(token)) |
| | | { |
| | | public void delLoginUser(String token) { |
| | | if (StringUtils.isNotEmpty(token)) { |
| | | String userkey = JwtUtils.getUserKey(token); |
| | | redisService.deleteObject(getTokenKey(userkey)); |
| | | } |
| | |
| | | * |
| | | * @param loginUser |
| | | */ |
| | | public void verifyToken(LoginUser loginUser) |
| | | { |
| | | public void verifyToken(LoginUser loginUser) { |
| | | long expireTime = loginUser.getExpireTime(); |
| | | long currentTime = System.currentTimeMillis(); |
| | | if (expireTime - currentTime <= MILLIS_MINUTE_TEN) |
| | | { |
| | | if (expireTime - currentTime <= MILLIS_MINUTE_TEN) { |
| | | refreshToken(loginUser); |
| | | } |
| | | } |
| | |
| | | * |
| | | * @param loginUser 登录信息 |
| | | */ |
| | | public void refreshToken(LoginUser loginUser) |
| | | { |
| | | public void refreshToken(LoginUser loginUser) { |
| | | loginUser.setLoginTime(System.currentTimeMillis()); |
| | | loginUser.setExpireTime(loginUser.getLoginTime() + expireTime * MILLIS_MINUTE); |
| | | // 根据uuid将loginUser缓存 |
| | | String userKey = getTokenKey(loginUser.getToken()); |
| | | redisService.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES); |
| | | } |
| | | |
| | | public void refreshToken1(LoginUserApplet dto) { |
| | | dto.setLoginTime(System.currentTimeMillis()); |
| | | dto.setExpireTime(dto.getLoginTime() + expireTime * MILLIS_MINUTE); |
| | |
| | | String userKey = getTokenKey(dto.getToken()); |
| | | redisService.setCacheObject(userKey, dto, expireTime, TimeUnit.MINUTES); |
| | | } |
| | | private String getTokenKey(String token) |
| | | { |
| | | |
| | | private String getTokenKey(String token) { |
| | | return ACCESS_TOKEN + token; |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | private Mono<Void> unauthorizedResponse(ServerWebExchange exchange, String msg) { |
| | | log.error("[鉴权异常处理]请求路径:{}", exchange.getRequest().getPath()); |
| | | log.error("[鉴权异常处理]请求路径:{}", exchange.getRequest().getPath() + "\n" + msg); |
| | | return ServletUtils.webFluxResponseWriter(exchange.getResponse(), msg, HttpStatus.UNAUTHORIZED); |
| | | } |
| | | |
| | |
| | | if(null == cacheMap){ |
| | | cacheMap = new HashMap<>(); |
| | | cacheMap.put(url, timestamp); |
| | | redisService.setCacheMap(client, cacheMap); |
| | | redisService.setCacheMap(client, cacheMap, 5L); |
| | | }else{ |
| | | Object o = cacheMap.get(url); |
| | | if(null == o){ |
| | |
| | | Long old_timestamp = Long.valueOf(o.toString()); |
| | | Long new_timestamp = Long.valueOf(timestamp); |
| | | //两个请求时间差小于1秒,判定为重复提交 |
| | | if((new_timestamp - old_timestamp) <= 1000){ |
| | | if((new_timestamp - old_timestamp) <= 500){ |
| | | throw new RuntimeException("重复提交"); |
| | | }else{ |
| | | cacheMap.put(url, timestamp); |
| | | } |
| | | } |
| | | redisService.setCacheMap(client, cacheMap); |
| | | redisService.setCacheMap(client, cacheMap, 5L); |
| | | } |
| | | } |
| | | |
| | |
| | | if (claims == null) { |
| | | throw new RuntimeException("令牌已过期或验证不正确!"); |
| | | } |
| | | // String userkey = JwtUtils.getUserKey(claims); |
| | | // boolean islogin = redisService.hasKey(getTokenKey(userkey)); |
| | | // if (!islogin) { |
| | | // throw new RuntimeException("登录状态已过期"); |
| | | // } |
| | | String userid = JwtUtils.getUserId(claims); |
| | | String username = JwtUtils.getUserName(claims); |
| | | if (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username)) { |
| | | if (StringUtils.isEmpty(userid)) { |
| | | throw new RuntimeException("令牌验证失败"); |
| | | } |
| | | } |
| | |
| | | public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { |
| | | ServerHttpRequest request = exchange.getRequest(); |
| | | ServerHttpRequest.Builder mutate = request.mutate(); |
| | | HttpMethod method = request.getMethod(); |
| | | if(method != HttpMethod.POST){ |
| | | return chain.filter(exchange.mutate().request(mutate.build()).build()); |
| | | } |
| | | // 跳过不需要验证的路径 |
| | | String url = request.getURI().getPath(); |
| | | if (StringUtils.matches(url, ignoreWhite.getWhites())) { |
| | | return chain.filter(exchange); |
| | | } |
| | | HttpMethod method = request.getMethod(); |
| | | if(method != HttpMethod.POST){ |
| | | return chain.filter(exchange); |
| | | } |
| | | ServerHttpRequestDecorator httpRequestDecorator = requestDecorator(exchange); |
| | |
| | | |
| | | @Override |
| | | public int getOrder() { |
| | | return HIGHEST_PRECEDENCE; |
| | | return -500; |
| | | } |
| | | } |
| | |
| | | <version>4.38.10.ALL</version> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>com.huaweicloud</groupId> |
| | | <artifactId>esdk-obs-java-bundle</artifactId> |
| | | <version>3.23.9.1</version> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>org.openeuler</groupId> |
| | | <artifactId>bgmprovider</artifactId> |
| | | <version>1.1.2</version> |
| | | <version>1.0.4</version> |
| | | <scope>compile</scope> |
| | | </dependency> |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * 远程调用 通过地址id 查询地址信息 |
| | | * @param id |
| | | * @return |
| | | */ |
| | | @GetMapping(value = "/getAddressById/{id}") |
| | | public R<TAppUserAddress> getAddressById(@PathVariable("id") Long id) { |
| | | TAppUserAddress byId = appUserAddressService.getById(id); |
| | | |
| | | return R.ok(byId); |
| | | } |
| | | /** |
| | | * 查询用户地址列表 |
| | | */ |
| | | @ApiOperation(tags = {"小程序-用户地址"},value = "查询用户地址列表") |
| | |
| | | @ApiOperation(value = "用户详情积分明细", tags = {"后台-用户管理-用户列表","小程序-个人中心"}) |
| | | @PostMapping(value = "/user/points/page") |
| | | public R<Page<TAppUserIntegralChange>> pointsDetail(@RequestBody PointsQueryDto pointsQueryDto) { |
| | | if (pointsQueryDto.getUserId()==null){ |
| | | pointsQueryDto.setUserId(tokenService.getLoginUserApplet().getUserId()); |
| | | } |
| | | List<Integer> types = new ArrayList<>(); |
| | | if (pointsQueryDto.getType()!=null){ |
| | | types.add(1); |
| | |
| | | .in(!types.isEmpty(), TAppUserIntegralChange::getChangeType, types).page(Page.of(pointsQueryDto.getPageCurr(), pointsQueryDto.getPageSize())); |
| | | |
| | | for (TAppUserIntegralChange record : page.getRecords()) { |
| | | record.setDateTime(record.getCreateTime()); |
| | | record.setUid(record.getId().toString()); |
| | | if (record.getChangeType()==2){ |
| | | R<TChargingOrder> tChargingOrderR = chargingOrderClient.orderDetail(Long.valueOf(record.getExtension())); |
| | |
| | | appUserInfoDto.setCouponNum(Math.toIntExact(coupons)); |
| | | //当前绑定的车辆 |
| | | List<TAppUserCar> list = carService.lambdaQuery().eq(TAppUserCar::getAppUserId, userId).list(); |
| | | for (TAppUserCar tAppUserCar : list) { |
| | | tAppUserCar.setUid(tAppUserCar.getId().toString()); |
| | | } |
| | | appUserInfoDto.setUserCars(list); |
| | | return R.ok(appUserInfoDto); |
| | | |
| | |
| | | LoginUserApplet loginUserApplet = tokenService.getLoginUserApplet(); |
| | | Long userId = loginUserApplet.getUserId(); |
| | | TAppUser byId = appUserService.getById(userId); |
| | | |
| | | appUserCar.setAppUserId(userId); |
| | | |
| | | //如果是第一次添加车辆,增加积分 |
| | | Long count = appUserCarService.lambdaQuery().eq(TAppUserCar::getAppUserId, userId).count(); |
| | |
| | | boolean b = appUserCarService.removeById(id); |
| | | return R.ok(); |
| | | } |
| | | @ApiOperation(value = "车辆详情", tags = {"小程序-个人中心-车辆"}) |
| | | @GetMapping(value = "/user/car/detail") |
| | | public R<TAppUserCar> carDetail(String id) { |
| | | TAppUserCar byId = appUserCarService.getById(id); |
| | | return R.ok(byId); |
| | | } |
| | | |
| | | @ApiOperation(value = "获取车辆品牌", tags = {"小程序-个人中心-车辆"}) |
| | | @GetMapping(value = "/user/car/getBrands") |
| | | public R getBrands() throws Exception { |
| | | public R getBrands(String name) throws Exception { |
| | | String brand = CarBrandUtil.getBrand(); |
| | | return R.ok(brand); |
| | | JSONObject jsonObject = JSON.parseObject(brand); |
| | | JSONArray data = jsonObject.getJSONArray("data"); |
| | | return R.ok(data); |
| | | |
| | | } |
| | | |
| | | @ApiOperation(value = "根据品牌获取车型", tags = {"小程序-个人中心-车辆"}) |
| | | @GetMapping(value = "/user/car/getModel") |
| | | public R getModel(String id) throws Exception { |
| | | String modelById = CarBrandUtil.getModelById(id); |
| | | JSONObject jsonObject = JSON.parseObject(modelById); |
| | | JSONArray data = jsonObject.getJSONArray("data"); |
| | | JSONArray backList = new JSONArray(); |
| | | for (Object datum : data) { |
| | | JSONObject jsonObject1 = JSON.parseObject(datum.toString()); |
| | | JSONArray list = jsonObject1.getJSONArray("list"); |
| | | backList.addAll(list); |
| | | } |
| | | return R.ok(backList); |
| | | } |
| | | } |
| | | |
| | |
| | | package com.ruoyi.account.filter; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.ruoyi.account.api.feignClient.AppUserClient; |
| | | import com.ruoyi.account.api.model.TAppUser; |
| | | import com.ruoyi.account.service.TAppUserService; |
| | | import com.ruoyi.common.core.constant.TokenConstants; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.core.utils.JwtUtils; |
| | | import com.ruoyi.common.core.utils.StringUtils; |
| | | import com.ruoyi.system.api.domain.SysUser; |
| | | import com.ruoyi.system.api.feignClient.SysUserClient; |
| | | import io.jsonwebtoken.Claims; |
| | | import org.apache.logging.log4j.core.config.Order; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | |
| | | // 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")); |
| | | // 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 getModelById(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/series"); |
| | | httpClientRequest.addHeader("Content-Type", "text/plain"); |
| | | httpClientRequest.addQueryStringParam("brandId",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()); |
| | |
| | | |
| | | package com.ruoyi.account.util.carBrand; |
| | | |
| | | import okhttp3.OkHttpClient; |
| | | import org.apache.http.client.HttpClient; |
| | | import org.apache.http.conn.ssl.SSLConnectionSocketFactory; |
| | | import org.apache.http.impl.client.CloseableHttpClient; |
| | |
| | | import org.openeuler.BGMProvider; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import okhttp3.OkHttpClient; |
| | | |
| | | import javax.net.ssl.*; |
| | | import java.net.HttpURLConnection; |
| | |
| | | import com.ruoyi.chargingPile.service.*; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.core.utils.GeodesyUtil; |
| | | import com.ruoyi.common.core.utils.StringUtils; |
| | | import com.ruoyi.common.core.web.domain.AjaxResult; |
| | | import com.ruoyi.common.core.web.page.PageInfo; |
| | | import com.ruoyi.common.security.utils.SecurityUtils; |
| | |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalTime; |
| | | import java.util.*; |
| | |
| | | } |
| | | @ApiOperation(value = "获取站点分页列表", tags = {"小程序-站点管理-首页"}) |
| | | @PostMapping("/pageList") |
| | | public AjaxResult<PageInfo<SiteVO>> pageList(@Validated @RequestBody SiteQuery query){ |
| | | return AjaxResult.success(siteService.pageList(query)); |
| | | public AjaxResult<PageInfo<SiteVO>> pageList(@Validated @RequestBody SiteQuery query, HttpServletRequest request){ |
| | | int isLogin = StringUtils.isEmpty(SecurityUtils.getToken(request)) ? 0 : 1; |
| | | return AjaxResult.success(siteService.pageList(query,isLogin)); |
| | | } |
| | | |
| | | @ApiOperation(value = "获取站点列表", tags = {"小程序-站点管理-地图导航站点"}) |
| | |
| | | import com.ruoyi.account.api.model.TAppUser; |
| | | import com.ruoyi.common.core.constant.TokenConstants; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.core.utils.JwtUtils; |
| | | import com.ruoyi.common.core.utils.StringUtils; |
| | | import com.ruoyi.system.api.domain.SysUser; |
| | | import com.ruoyi.system.api.feignClient.SysUserClient; |
| | | import io.jsonwebtoken.Claims; |
| | | import org.apache.logging.log4j.core.config.Order; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.IOException; |
| | | import java.io.PrintWriter; |
| | | import java.io.UnsupportedEncodingException; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | |
| | | * @return |
| | | */ |
| | | |
| | | PageInfo<SiteVO> pageList(SiteQuery query); |
| | | PageInfo<SiteVO> pageList(SiteQuery query,Integer isLogin); |
| | | |
| | | /** |
| | | * 获取站点详情 |
| | |
| | | import com.ruoyi.chargingPile.service.ISiteService; |
| | | import com.ruoyi.chargingPile.service.TChargingGunService; |
| | | import com.ruoyi.chargingPile.service.TChargingPileService; |
| | | import com.ruoyi.common.core.utils.ServletUtils; |
| | | import com.ruoyi.common.core.utils.StringUtils; |
| | | import com.ruoyi.common.core.web.domain.AjaxResult; |
| | | import com.ruoyi.common.core.web.page.PageInfo; |
| | |
| | | } |
| | | |
| | | @Override |
| | | public PageInfo<SiteVO> pageList(SiteQuery query) { |
| | | public PageInfo<SiteVO> pageList(SiteQuery query,Integer isLogin) { |
| | | TAppUser appUser = null; |
| | | if(isLogin == 1){ |
| | | // 获取当前登录用户id |
| | | Long userId = tokenService.getLoginUserApplet().getUserId(); |
| | | // 根据id查询用户信息 |
| | | TAppUser appUser = appUserClient.getUserById(userId).getData(); |
| | | appUser = appUserClient.getUserById(userId).getData(); |
| | | } |
| | | PageInfo<SiteVO> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize()); |
| | | List<SiteVO> list = this.baseMapper.pageList(query,pageInfo); |
| | | if(Objects.nonNull(appUser) && Objects.nonNull(appUser.getVipId())){ |
| | |
| | | import com.ruoyi.chargingPile.mapper.TAccountingStrategyMapper; |
| | | import com.ruoyi.chargingPile.service.TAccountingStrategyDetailService; |
| | | import com.ruoyi.common.core.exception.ServiceException; |
| | | import com.ruoyi.common.core.utils.DateUtils; |
| | | import com.ruoyi.common.security.service.TokenService; |
| | | import com.ruoyi.other.api.domain.TVip; |
| | | import com.ruoyi.other.api.feignClient.VipClient; |
| | |
| | | TVip vip = vipClient.getInfo1(appUser.getVipId()).getData(); |
| | | TAccountingStrategyDetailVO accountingStrategyDetailVO; |
| | | TAccountingStrategyDetailVO accountingStrategyDetailNext; |
| | | if(Objects.nonNull(vip) && vip.getType() == 2){ |
| | | // 获取当前时间段的计费策略明细 |
| | | accountingStrategyDetailVO = list.stream().filter(detail -> detail.getStartTime().compareTo(LocalTime.now().toString()) <= 0 && detail.getEndTime().compareTo(LocalTime.now().toString()) >= 0) |
| | | accountingStrategyDetailVO = list.stream().filter(detail -> DateUtils.string2LocalTime(detail.getStartTime() + " :00").compareTo(LocalTime.now()) <= 0 |
| | | && DateUtils.string2LocalTime(detail.getEndTime() + " :00").compareTo(LocalTime.now()) > 0) |
| | | .findFirst().orElseThrow(() -> new ServiceException("当前时间段未查询到计费策略明细")); |
| | | accountingStrategyDetailVO.setDiscount(accountingStrategyDetailVO.getElectrovalence().add(accountingStrategyDetailVO.getServiceCharge()).multiply(vip.getDiscount())); |
| | | // 获取后一次的计费策略明细 |
| | | accountingStrategyDetailNext = list.stream().filter(detail -> detail.getStartTime().compareTo(accountingStrategyDetailVO.getEndTime()) == 0) |
| | | .findFirst().orElseThrow(() -> new ServiceException("未查询到下一时间段的计费策略明细")); |
| | | if(Objects.nonNull(vip) && vip.getType() == 2){ |
| | | accountingStrategyDetailVO.setDiscount(accountingStrategyDetailVO.getElectrovalence().add(accountingStrategyDetailVO.getServiceCharge()).multiply(vip.getDiscount())); |
| | | accountingStrategyDetailNext.setDiscount(accountingStrategyDetailNext.getElectrovalence().add(accountingStrategyDetailNext.getServiceCharge()).multiply(vip.getDiscount())); |
| | | }else { |
| | | // 获取当前时间段的计费策略明细 |
| | | accountingStrategyDetailVO = list.stream().filter(detail -> detail.getStartTime().compareTo(LocalTime.now().toString()) <= 0 && detail.getEndTime().compareTo(LocalTime.now().toString()) >= 0) |
| | | .findFirst().orElseThrow(() -> new ServiceException("当前时间段未查询到计费策略明细")); |
| | | accountingStrategyDetailVO.setDiscount(accountingStrategyDetailVO.getElectrovalence().add(accountingStrategyDetailVO.getServiceCharge()).multiply(accountingStrategy.getDiscount())); |
| | | // 获取后一次的计费策略明细 |
| | | accountingStrategyDetailNext = list.stream().filter(detail -> detail.getStartTime().compareTo(accountingStrategyDetailVO.getEndTime()) == 0) |
| | | .findFirst().orElseThrow(() -> new ServiceException("未查询到下一时间段的计费策略明细")); |
| | | accountingStrategyDetailNext.setDiscount(accountingStrategyDetailNext.getElectrovalence().add(accountingStrategyDetailNext.getServiceCharge()).multiply(accountingStrategy.getDiscount())); |
| | | } |
| | | list = new ArrayList<>(); |
| | |
| | | |
| | | @Override |
| | | public Boolean isStrategy24Hour(List<TAccountingStrategyDetail> accountingStrategyDetails) { |
| | | String START_OF_DAY = "00:00:00"; |
| | | String END_OF_DAY = "24:00:00"; |
| | | List<TAccountingStrategyDetail> sortedDetails = accountingStrategyDetails.stream() |
| | | .sorted(Comparator.comparing(TAccountingStrategyDetail::getStartTime)) |
| | | .collect(Collectors.toList()); |
| | | |
| | | boolean isFirstElementValid = sortedDetails.isEmpty() || !START_OF_DAY.equals(sortedDetails.get(0).getStartTime()); |
| | | boolean isLastElementValid = sortedDetails.isEmpty() || !END_OF_DAY.equals(sortedDetails.get(sortedDetails.size() - 1).getEndTime()); |
| | | boolean isFirstElementValid = sortedDetails.isEmpty() || !sortedDetails.get(0).getStartTime().equals(sortedDetails.get(sortedDetails.size() - 1).getEndTime()); |
| | | |
| | | boolean isTimeContinuous = sortedDetails.stream() |
| | | .skip(1) |
| | | .allMatch(detail -> detail.getStartTime().equals(sortedDetails.get(sortedDetails.indexOf(detail) - 1).getEndTime())); |
| | | |
| | | return isFirstElementValid || isLastElementValid || !isTimeContinuous; |
| | | return isFirstElementValid || !isTimeContinuous; |
| | | } |
| | | } |
| | |
| | | </description> |
| | | |
| | | <dependencies> |
| | | <dependency> |
| | | <groupId>com.ruoyi</groupId> |
| | | <artifactId>ruoyi-api-integration</artifactId> |
| | | </dependency> |
| | | <!-- SpringCloud Alibaba Nacos --> |
| | | <dependency> |
| | | <groupId>com.alibaba.cloud</groupId> |
New file |
| | |
| | | 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; |
| | | |
| | | /** |
| | | * <p> |
| | | * 前端控制器 |
| | | * </p> |
| | | * |
| | | * @author xiaochen |
| | | * @since 2024-08-07 |
| | | */ |
| | | @RestController |
| | | @RequestMapping("/chargingOrder") |
| | | public class ChargingOrderController { |
| | | @Resource |
| | | private UploadRealTimeMonitoringDataService uploadRealTimeMonitoringDataService; |
| | | |
| | | /** |
| | | * 远程调用 通过订单流水号 查询订单详情 |
| | | * @param orderId |
| | | * @return |
| | | */ |
| | | @PostMapping(value = "/getOrderInfoByCode") |
| | | public R<UploadRealTimeMonitoringData> chargingOrderInfo(String orderId){ |
| | | UploadRealTimeMonitoringData byId = uploadRealTimeMonitoringDataService.findById(orderId); |
| | | return R.ok(byId); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
New file |
| | |
| | | package com.ruoyi.integration.iotda.controller; |
| | | |
| | | import com.ruoyi.integration.api.model.*; |
| | | import com.ruoyi.integration.iotda.enums.ServiceIdMenu; |
| | | import com.ruoyi.integration.iotda.utils.produce.IotMessageProduce; |
| | | import com.ruoyi.integration.iotda.utils.tools.MessageUtil; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | @Slf4j |
| | | @RestController |
| | | @RequestMapping("/sendMessage") |
| | | public class SendMessageController { |
| | | |
| | | @Autowired |
| | | private MessageUtil messageUtil; |
| | | @Autowired |
| | | private IotMessageProduce iotMessageProduce; |
| | | |
| | | /** |
| | | * 登录认证应答 |
| | | * @param onlineReply 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/onlineReply") |
| | | public String onlineReply(@RequestBody OnlineReply onlineReply){ |
| | | return iotMessageProduce.sendMessage(onlineReply.getCharging_pile_code(), ServiceIdMenu.ONLINE_REPLY.getKey(),messageUtil.onlineReply(onlineReply)); |
| | | } |
| | | |
| | | /** |
| | | * 心跳包应答 |
| | | * @param pong 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/pong") |
| | | public String pong(@RequestBody Pong pong){ |
| | | return iotMessageProduce.sendMessage(pong.getCharging_pile_code(), ServiceIdMenu.PONG.getKey(),messageUtil.pong(pong)); |
| | | } |
| | | |
| | | /** |
| | | * 计费模型验证请求应答 |
| | | * @param billingModeVerifyReply 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/billingModeVerifyReply") |
| | | public String billingModeVerifyReply(@RequestBody BillingModeVerifyReply billingModeVerifyReply){ |
| | | return iotMessageProduce.sendMessage(billingModeVerifyReply.getCharging_pile_code(), ServiceIdMenu.BILLING_MODE_VERIFY_REPLY.getKey(),messageUtil.billingModeVerifyReply(billingModeVerifyReply)); |
| | | } |
| | | |
| | | /** |
| | | * 计费模型验证请求应答 |
| | | * @param acquisitionBillingModeReply 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/acquisitionBillingModeReply") |
| | | public String acquisitionBillingModeReply(@RequestBody AcquisitionBillingModeReply acquisitionBillingModeReply){ |
| | | return iotMessageProduce.sendMessage(acquisitionBillingModeReply.getCharging_pile_code(), ServiceIdMenu.ACQUISITION_BILLING_MODE_REPLY.getKey(),messageUtil.acquisitionBillingModeReply(acquisitionBillingModeReply)); |
| | | } |
| | | |
| | | /** |
| | | * 读取实时监测数据 |
| | | * @param readRealTimeMonitoringData 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/readRealTimeMonitoringData") |
| | | public String readRealTimeMonitoringData(@RequestBody ReadRealTimeMonitoringData readRealTimeMonitoringData){ |
| | | return iotMessageProduce.sendMessage(readRealTimeMonitoringData.getCharging_pile_code(), ServiceIdMenu.READ_REAL_TIME_MONITORING_DATA.getKey(),messageUtil.readRealTimeMonitoringData(readRealTimeMonitoringData)); |
| | | } |
| | | |
| | | /** |
| | | * 充电结束 |
| | | * @param endCharge 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/endCharge") |
| | | public String endCharge(@RequestBody EndCharge endCharge){ |
| | | return iotMessageProduce.sendMessage(endCharge.getCharging_pile_code(), ServiceIdMenu.END_CHARGE.getKey(),messageUtil.endCharge(endCharge)); |
| | | } |
| | | |
| | | /** |
| | | * 运营平台确认启动充电 |
| | | * @param platformConfirmationCharging 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/platformConfirmationCharging") |
| | | public String platformConfirmationCharging(@RequestBody PlatformConfirmationCharging platformConfirmationCharging){ |
| | | return iotMessageProduce.sendMessage(platformConfirmationCharging.getCharging_pile_code(), ServiceIdMenu.PLATFORM_CONFIRMATION_CHARGING.getKey(),messageUtil.platformConfirmationCharging(platformConfirmationCharging)); |
| | | } |
| | | |
| | | /** |
| | | * 运营平台远程控制启机 |
| | | * @param platformStartCharging 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/platformStartCharging") |
| | | public String platformStartCharging(@RequestBody PlatformStartCharging platformStartCharging){ |
| | | return iotMessageProduce.sendMessage(platformStartCharging.getCharging_pile_code(), ServiceIdMenu.PLATFORM_START_CHARGING.getKey(),messageUtil.platformStartCharging(platformStartCharging)); |
| | | } |
| | | |
| | | /** |
| | | * 运营平台远程停机 |
| | | * @param platformStopCharging 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/platformStopCharging") |
| | | public String platformStopCharging(@RequestBody PlatformStopCharging platformStopCharging){ |
| | | return iotMessageProduce.sendMessage(platformStopCharging.getCharging_pile_code(), ServiceIdMenu.PLATFORM_STOP_CHARGING.getKey(),messageUtil.platformStopCharging(platformStopCharging)); |
| | | } |
| | | |
| | | /** |
| | | * 交易记录确认 |
| | | * @param confirmTransactionRecord 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/confirmTransactionRecord") |
| | | public String confirmTransactionRecord(@RequestBody ConfirmTransactionRecord confirmTransactionRecord){ |
| | | return iotMessageProduce.sendMessage(confirmTransactionRecord.getTransaction_serial_number(), ServiceIdMenu.CONFIRM_TRANSACTION_RECORD.getKey(),messageUtil.confirmTransactionRecord(confirmTransactionRecord)); |
| | | } |
| | | |
| | | /** |
| | | * 远程账户余额更新 |
| | | * @param updateBalance 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/updateBalance") |
| | | public String updateBalance(@RequestBody UpdateBalance updateBalance){ |
| | | return iotMessageProduce.sendMessage(updateBalance.getCharging_pile_code(), ServiceIdMenu.UPDATE_BALANCE.getKey(),messageUtil.updateBalance(updateBalance)); |
| | | } |
| | | |
| | | /** |
| | | * 离线卡数据同步 |
| | | * @param synchronizeOfflineCard 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/synchronizeOfflineCard") |
| | | public String synchronizeOfflineCard(@RequestBody SynchronizeOfflineCard synchronizeOfflineCard){ |
| | | return iotMessageProduce.sendMessage(synchronizeOfflineCard.getCharging_pile_code(), ServiceIdMenu.SYNCHRONIZE_OFFLINE_CARD.getKey(),messageUtil.synchronizeOfflineCard(synchronizeOfflineCard)); |
| | | } |
| | | |
| | | /** |
| | | * 离线卡数据清除 |
| | | * @param clearOfflineCard 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/clearOfflineCard") |
| | | public String clearOfflineCard(@RequestBody ClearOfflineCard clearOfflineCard){ |
| | | return iotMessageProduce.sendMessage(clearOfflineCard.getCharging_pile_code(), ServiceIdMenu.CLEAR_OFFLINE_CARD.getKey(),messageUtil.clearOfflineCard(clearOfflineCard)); |
| | | } |
| | | |
| | | /** |
| | | * 离线卡数据查询 |
| | | * @param queryOfflineCard 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/queryOfflineCard") |
| | | public String queryOfflineCard(@RequestBody QueryOfflineCard queryOfflineCard){ |
| | | return iotMessageProduce.sendMessage(queryOfflineCard.getCharging_pile_code(), ServiceIdMenu.QUERY_OFFLINE_CARD.getKey(),messageUtil.queryOfflineCard(queryOfflineCard)); |
| | | } |
| | | |
| | | /** |
| | | * 充电桩工作参数设置 |
| | | * @param workingParameterSetting 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/workingParameterSetting") |
| | | public String workingParameterSetting(@RequestBody WorkingParameterSetting workingParameterSetting){ |
| | | return iotMessageProduce.sendMessage(workingParameterSetting.getCharging_pile_code(), ServiceIdMenu.WORKING_PARAMETER_SETTING.getKey(),messageUtil.workingParameterSetting(workingParameterSetting)); |
| | | } |
| | | |
| | | /** |
| | | * 对时设置 |
| | | * @param timingSetting 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/timingSetting") |
| | | public String timingSetting(@RequestBody TimingSetting timingSetting){ |
| | | return iotMessageProduce.sendMessage(timingSetting.getCharging_pile_code(), ServiceIdMenu.TIMING_SETTING.getKey(),messageUtil.timingSetting(timingSetting)); |
| | | } |
| | | |
| | | /** |
| | | * 计费模型设置 |
| | | * @param setupBillingModel 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/setupBillingModel") |
| | | public String setupBillingModel(@RequestBody SetupBillingModel setupBillingModel){ |
| | | return iotMessageProduce.sendMessage(setupBillingModel.getCharging_pile_code(), ServiceIdMenu.SETUP_BILLING_MODEL.getKey(),messageUtil.setupBillingModel(setupBillingModel)); |
| | | } |
| | | |
| | | /** |
| | | * 遥控地锁升锁与降锁命令 (下行) |
| | | * @param openOrCloseGroundLock 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/openOrCloseGroundLock") |
| | | public String openOrCloseGroundLock(@RequestBody OpenOrCloseGroundLock openOrCloseGroundLock){ |
| | | return iotMessageProduce.sendMessage(openOrCloseGroundLock.getCharging_pile_code(), ServiceIdMenu.OPEN_OR_CLOSE_GROUND_LOCK.getKey(),messageUtil.openOrCloseGroundLock(openOrCloseGroundLock)); |
| | | } |
| | | /** |
| | | * 远程重启 |
| | | * @param platformRestart 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/platformRestart") |
| | | public String platformRestart(@RequestBody PlatformRestart platformRestart){ |
| | | return iotMessageProduce.sendMessage(platformRestart.getCharging_pile_code(), ServiceIdMenu.PLATFORM_RESTART.getKey(),messageUtil.platformRestart(platformRestart)); |
| | | } |
| | | /** |
| | | * 远程更新 |
| | | * @param platformRemoteUpdate 实体对象 |
| | | * @return |
| | | */ |
| | | @PostMapping("/platformRemoteUpdate") |
| | | public String platformRemoteUpdate(@RequestBody PlatformRemoteUpdate platformRemoteUpdate){ |
| | | return iotMessageProduce.sendMessage(platformRemoteUpdate.getCharging_pile_code(), ServiceIdMenu.PLATFORM_REMOTE_UPDATE.getKey(),messageUtil.platformRemoteUpdate(platformRemoteUpdate)); |
| | | } |
| | | |
| | | } |
| | |
| | | /** |
| | | * 登录认证应答 |
| | | */ |
| | | ONLINE_REPLY ("online_reply"), |
| | | ONLINE_REPLY ("登录认证应答","online_reply"), |
| | | /** |
| | | * 登录认证应答 |
| | | */ |
| | | PONG ("pong"), |
| | | PONG ("登录认证应答","pong"), |
| | | /** |
| | | * 计费模型验证请求应答 |
| | | */ |
| | | BILLING_MODE_VERIFY_REPLY ("billing_mode_verify_reply"), |
| | | BILLING_MODE_VERIFY_REPLY ("计费模型验证请求应答","billing_mode_verify_reply"), |
| | | /** |
| | | * 计费模型请求应答 |
| | | */ |
| | | ACQUISITION_BILLING_MODE_REPLY ("acquisition_billing_mode_reply"), |
| | | ACQUISITION_BILLING_MODE_REPLY ("计费模型请求应答","acquisition_billing_mode_reply"), |
| | | /** |
| | | * 读取实时监测数据 |
| | | */ |
| | | READ_REAL_TIME_MONITORING_DATA ("read_real_time_monitoring_data"), |
| | | READ_REAL_TIME_MONITORING_DATA ("读取实时监测数据","read_real_time_monitoring_data"), |
| | | /** |
| | | * 充电结束 |
| | | */ |
| | | END_CHARGE ("end_charge"), |
| | | END_CHARGE ("充电结束","end_charge"), |
| | | /** |
| | | * 运营平台确认启动充电 |
| | | */ |
| | | PLATFORM_CONFIRMATION_CHARGING ("platform_confirmation_charging"), |
| | | PLATFORM_CONFIRMATION_CHARGING ("运营平台确认启动充电","platform_confirmation_charging"), |
| | | /** |
| | | * 运营平台远程控制启机 |
| | | */ |
| | | PLATFORM_START_CHARGING ("platform_start_charging"), |
| | | PLATFORM_START_CHARGING ("运营平台远程控制启机","platform_start_charging"), |
| | | /** |
| | | * 运营平台远程停机 |
| | | */ |
| | | PLATFORM_STOP_CHARGING ("platform_stop_charging"), |
| | | PLATFORM_STOP_CHARGING ("运营平台远程停机","platform_stop_charging"), |
| | | /** |
| | | * 交易记录确认 |
| | | */ |
| | | CONFIRM_TRANSACTION_RECORD ("confirm_transaction_record"), |
| | | CONFIRM_TRANSACTION_RECORD ("交易记录确认","confirm_transaction_record"), |
| | | /** |
| | | * 远程账户余额更新 |
| | | */ |
| | | UPDATE_BALANCE ("update_balance"), |
| | | UPDATE_BALANCE ("远程账户余额更新","update_balance"), |
| | | /** |
| | | * 离线卡数据同步 |
| | | */ |
| | | SYNCHRONIZE_OFFLINE_CARD ("synchronize_offline_card"), |
| | | SYNCHRONIZE_OFFLINE_CARD ("离线卡数据同步","synchronize_offline_card"), |
| | | /** |
| | | * 离线卡数据清除 |
| | | */ |
| | | CLEAR_OFFLINE_CARD ("clear_offline_card"), |
| | | CLEAR_OFFLINE_CARD ("离线卡数据清除","clear_offline_card"), |
| | | /** |
| | | * 离线卡数据查询 |
| | | */ |
| | | QUERY_OFFLINE_CARD ("query_offline_card"), |
| | | QUERY_OFFLINE_CARD ("离线卡数据查询","query_offline_card"), |
| | | /** |
| | | * 充电桩工作参数设置 |
| | | */ |
| | | WORKING_PARAMETER_SETTING ("working_parameter_setting"), |
| | | WORKING_PARAMETER_SETTING ("充电桩工作参数设置","working_parameter_setting"), |
| | | /** |
| | | * 对时设置 |
| | | */ |
| | | TIMING_SETTING ("timing_setting"), |
| | | TIMING_SETTING ("对时设置","timing_setting"), |
| | | /** |
| | | * 计费模型设置 |
| | | */ |
| | | SETUP_BILLING_MODEL ("setup_billing_model"), |
| | | SETUP_BILLING_MODEL ("计费模型设置","setup_billing_model"), |
| | | /** |
| | | * 遥控地锁升锁与降锁命令 (下行) |
| | | */ |
| | | OPEN_OR_CLOSE_GROUND_LOCK ("open_or_close_ground_lock"), |
| | | OPEN_OR_CLOSE_GROUND_LOCK ("遥控地锁升锁与降锁命令 (下行)","open_or_close_ground_lock"), |
| | | /** |
| | | * 远程重启 |
| | | */ |
| | | PLATFORM_RESTART ("platform_restart"), |
| | | PLATFORM_RESTART ("远程重启","platform_restart"), |
| | | /** |
| | | * 远程更新 |
| | | */ |
| | | PLATFORM_REMOTE_UPDATE ("platform_remote_update"), |
| | | PLATFORM_REMOTE_UPDATE ("远程更新","platform_remote_update"), |
| | | ; |
| | | private String key; |
| | | private String value; |
| | | |
| | | |
| | | ServiceIdMenu(String value) { |
| | | ServiceIdMenu(String key,String value) { |
| | | this.value = value; |
| | | } |
| | | |
| | | public String getKey() { |
| | | return key; |
| | | } |
| | | |
| | | public void setKey(String key) { |
| | | this.key = key; |
| | | } |
| | | |
| | | public String getValue() { |
| | | return value; |
| | | } |
| | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.text.MessageFormat; |
| | | import java.util.ArrayList; |
| | |
| | | * iot接口调用工具类 |
| | | */ |
| | | @Slf4j |
| | | @Component |
| | | @RestController |
| | | public class IotInterfaceUtil { |
| | | |
| | | private static final String dataFormat = "json"; |
| | |
| | | |
| | | private String decodeUrl(String url) { |
| | | return MessageFormat.format(url, iotDAConfig.getProjectId()); |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | |
| | | } |
| | | |
| | | /** |
| | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | /** |
| | | * iotda消息发送 |
| | | */ |
| | | @Slf4j |
| | | @Component |
| | | @RestController |
| | | public class IotMessageProduce { |
| | | |
| | | @Autowired |
| | |
| | | * @param message 消息内容 |
| | | * @return |
| | | */ |
| | | @PostMapping("/sendMessage") |
| | | public String sendMessage(String deviceId,String name,String message){ |
| | | CreateMessageRequest request = new CreateMessageRequest(); |
| | | request.withDeviceId(deviceId); |
| | |
| | | |
| | | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.ruoyi.integration.api.model.*; |
| | | import com.ruoyi.integration.iotda.enums.ServiceIdMenu; |
| | | import com.ruoyi.integration.mongodb.model.*; |
| | | import com.ruoyi.integration.mongodb.service.*; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | private PlatformRestartService platformRestartService; |
| | | @Autowired |
| | | private PlatformRemoteUpdateService platformRemoteUpdateService; |
| | | @Autowired |
| | | private MessageConvertUtil messageConvertUtil; |
| | | |
| | | /** |
| | | * 登录认证应答 |
| | |
| | | * @param platformStartCharging 实体对象 |
| | | * @return |
| | | */ |
| | | public String platformConfirmationCharging(PlatformStartCharging platformStartCharging){ |
| | | public String platformStartCharging(PlatformStartCharging platformStartCharging){ |
| | | platformStartChargingService.create(platformStartCharging); |
| | | return getMessageJsonString(platformStartCharging, ServiceIdMenu.PLATFORM_START_CHARGING.getValue()); |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.AcquisitionBillingModeReply; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.AcquisitionBillingModeReply; |
| | | |
| | | public interface AcquisitionBillingModeReplyService extends BaseService<AcquisitionBillingModeReply> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.AcquisitionBillingMode; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.AcquisitionBillingMode; |
| | | |
| | | public interface AcquisitionBillingModeService extends BaseService<AcquisitionBillingMode> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.BillingModeVerifyReply; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.BillingModeVerifyReply; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | public interface BillingModeVerifyReplyService extends BaseService<BillingModeVerifyReply> { |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.BillingModeVerify; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.BillingModeVerify; |
| | | |
| | | public interface BillingModeVerifyService extends BaseService<BillingModeVerify> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.BmsAbort; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.BmsAbort; |
| | | |
| | | public interface BmsAbortService extends BaseService<BmsAbort> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.BmsDemandAndChargerExportation; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.BmsDemandAndChargerExportation; |
| | | |
| | | public interface BmsDemandAndChargerExportationService extends BaseService<BmsDemandAndChargerExportation> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.BmsInformation; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.BmsInformation; |
| | | |
| | | public interface BmsInformationService extends BaseService<BmsInformation> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.ChargingHandshake; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.ChargingHandshake; |
| | | |
| | | public interface ChargingHandshakeService extends BaseService<ChargingHandshake> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.ChargingPileReturnsGroundLockData; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.ChargingPileReturnsGroundLockData; |
| | | |
| | | public interface ChargingPileReturnsGroundLockDataService extends BaseService<ChargingPileReturnsGroundLockData> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.ChargingPileStartsCharging; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.ChargingPileStartsCharging; |
| | | |
| | | public interface ChargingPileStartsChargingService extends BaseService<ChargingPileStartsCharging> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.ClearOfflineCardReply; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.ClearOfflineCardReply; |
| | | |
| | | public interface ClearOfflineCardReplyService extends BaseService<ClearOfflineCardReply> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.ClearOfflineCard; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.ClearOfflineCard; |
| | | |
| | | public interface ClearOfflineCardService extends BaseService<ClearOfflineCard> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.ConfirmTransactionRecord; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.ConfirmTransactionRecord; |
| | | |
| | | public interface ConfirmTransactionRecordService extends BaseService<ConfirmTransactionRecord> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.EndCharge; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.EndCharge; |
| | | |
| | | public interface EndChargeService extends BaseService<EndCharge> { |
| | | |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.GroundLockRealTimeData; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.GroundLockRealTimeData; |
| | | |
| | | public interface GroundLockRealTimeDataService extends BaseService<GroundLockRealTimeData> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.MotorAbort; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.MotorAbort; |
| | | |
| | | public interface MotorAbortService extends BaseService<MotorAbort> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.OnlineReply; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.OnlineReply; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | /** |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.Online; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.Online; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | /** |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.OpenOrCloseGroundLock; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.OpenOrCloseGroundLock; |
| | | |
| | | public interface OpenOrCloseGroundLockService extends BaseService<OpenOrCloseGroundLock> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.ParameterSetting; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.ParameterSetting; |
| | | |
| | | public interface ParameterSettingService extends BaseService<ParameterSetting> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.Ping; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.Ping; |
| | | |
| | | public interface PingService extends BaseService<Ping> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.PlatformConfirmationCharging; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.PlatformConfirmationCharging; |
| | | |
| | | public interface PlatformConfirmationChargingService extends BaseService<PlatformConfirmationCharging> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.PlatformRemoteUpdateReply; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.PlatformRemoteUpdateReply; |
| | | |
| | | public interface PlatformRemoteUpdateReplyService extends BaseService<PlatformRemoteUpdateReply> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.PlatformRemoteUpdate; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.PlatformRemoteUpdate; |
| | | |
| | | public interface PlatformRemoteUpdateService extends BaseService<PlatformRemoteUpdate> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.PlatformRestartReply; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.PlatformRestartReply; |
| | | |
| | | public interface PlatformRestartReplyService extends BaseService<PlatformRestartReply> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.PlatformRestart; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.PlatformRestart; |
| | | |
| | | public interface PlatformRestartService extends BaseService<PlatformRestart> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.PlatformStartChargingReply; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.PlatformStartChargingReply; |
| | | |
| | | public interface PlatformStartChargingReplyService extends BaseService<PlatformStartChargingReply> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.PlatformStartCharging; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.PlatformStartCharging; |
| | | |
| | | public interface PlatformStartChargingService extends BaseService<PlatformStartCharging> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.PlatformStopChargingReply; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.PlatformStopChargingReply; |
| | | |
| | | public interface PlatformStopChargingReplyService extends BaseService<PlatformStopChargingReply> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.PlatformStopCharging; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.PlatformStopCharging; |
| | | |
| | | public interface PlatformStopChargingService extends BaseService<PlatformStopCharging> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.Pong; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.Online; |
| | | import com.ruoyi.integration.mongodb.model.Pong; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | /** |
| | | * 心跳包应答接口 |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.QueryOfflineCardReply; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.QueryOfflineCardReply; |
| | | |
| | | public interface QueryOfflineCardReplyService extends BaseService<QueryOfflineCardReply> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.QueryOfflineCard; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.QueryOfflineCard; |
| | | |
| | | public interface QueryOfflineCardService extends BaseService<QueryOfflineCard> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.ReadRealTimeMonitoringData; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.ReadRealTimeMonitoringData; |
| | | |
| | | public interface ReadRealTimeMonitoringDataService extends BaseService<ReadRealTimeMonitoringData> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.SetupBillingModelReply; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.SetupBillingModelReply; |
| | | |
| | | public interface SetupBillingModelReplyService extends BaseService<SetupBillingModelReply> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.SetupBillingModel; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.SetupBillingModel; |
| | | |
| | | public interface SetupBillingModelService extends BaseService<SetupBillingModel> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.SynchronizeOfflineCardReply; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.SynchronizeOfflineCardReply; |
| | | |
| | | public interface SynchronizeOfflineCardReplyService extends BaseService<SynchronizeOfflineCardReply> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.SynchronizeOfflineCard; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.SynchronizeOfflineCard; |
| | | |
| | | public interface SynchronizeOfflineCardService extends BaseService<SynchronizeOfflineCard> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.TimingSettingReply; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.TimingSettingReply; |
| | | |
| | | public interface TimingSettingReplyService extends BaseService<TimingSettingReply> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.TimingSetting; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.TimingSetting; |
| | | |
| | | public interface TimingSettingService extends BaseService<TimingSetting> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.TransactionRecord; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.TransactionRecord; |
| | | |
| | | public interface TransactionRecordService extends BaseService<TransactionRecord> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.UpdateBalanceReply; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.UpdateBalanceReply; |
| | | |
| | | public interface UpdateBalanceReplyService extends BaseService<UpdateBalanceReply> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.UpdateBalance; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.UpdateBalance; |
| | | |
| | | public interface UpdateBalanceService extends BaseService<UpdateBalance> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.UploadRealTimeMonitoringData; |
| | | |
| | | public interface UploadRealTimeMonitoringDataService extends BaseService<UploadRealTimeMonitoringData> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.WorkingParameterSettingReply; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.WorkingParameterSettingReply; |
| | | |
| | | public interface WorkingParameterSettingReplyService extends BaseService<WorkingParameterSettingReply> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service; |
| | | |
| | | import com.ruoyi.integration.api.model.WorkingParameterSetting; |
| | | import com.ruoyi.integration.mongodb.base.BaseService; |
| | | import com.ruoyi.integration.mongodb.model.WorkingParameterSetting; |
| | | |
| | | public interface WorkingParameterSettingService extends BaseService<WorkingParameterSetting> { |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.api.model.AcquisitionBillingModeReply; |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.AcquisitionBillingModeReply; |
| | | import com.ruoyi.integration.mongodb.service.AcquisitionBillingModeReplyService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.api.model.AcquisitionBillingMode; |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.AcquisitionBillingMode; |
| | | import com.ruoyi.integration.mongodb.service.AcquisitionBillingModeService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.BillingModeVerifyReply; |
| | | import com.ruoyi.integration.api.model.BillingModeVerifyReply; |
| | | import com.ruoyi.integration.mongodb.service.BillingModeVerifyReplyService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.BillingModeVerify; |
| | | import com.ruoyi.integration.api.model.BillingModeVerify; |
| | | import com.ruoyi.integration.mongodb.service.BillingModeVerifyService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.BmsAbort; |
| | | import com.ruoyi.integration.api.model.BmsAbort; |
| | | import com.ruoyi.integration.mongodb.service.BmsAbortService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.BmsDemandAndChargerExportation; |
| | | import com.ruoyi.integration.api.model.BmsDemandAndChargerExportation; |
| | | import com.ruoyi.integration.mongodb.service.BmsDemandAndChargerExportationService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.BmsInformation; |
| | | import com.ruoyi.integration.api.model.BmsInformation; |
| | | import com.ruoyi.integration.mongodb.service.BmsInformationService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.ChargingHandshake; |
| | | import com.ruoyi.integration.api.model.ChargingHandshake; |
| | | import com.ruoyi.integration.mongodb.service.ChargingHandshakeService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.ChargingPileReturnsGroundLockData; |
| | | import com.ruoyi.integration.api.model.ChargingPileReturnsGroundLockData; |
| | | import com.ruoyi.integration.mongodb.service.ChargingPileReturnsGroundLockDataService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.ChargingPileStartsCharging; |
| | | import com.ruoyi.integration.api.model.ChargingPileStartsCharging; |
| | | import com.ruoyi.integration.mongodb.service.ChargingPileStartsChargingService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.ClearOfflineCardReply; |
| | | import com.ruoyi.integration.api.model.ClearOfflineCardReply; |
| | | import com.ruoyi.integration.mongodb.service.ClearOfflineCardReplyService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.ClearOfflineCard; |
| | | import com.ruoyi.integration.api.model.ClearOfflineCard; |
| | | import com.ruoyi.integration.mongodb.service.ClearOfflineCardService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.ConfirmTransactionRecord; |
| | | import com.ruoyi.integration.api.model.ConfirmTransactionRecord; |
| | | import com.ruoyi.integration.mongodb.service.ConfirmTransactionRecordService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.EndCharge; |
| | | import com.ruoyi.integration.mongodb.model.Pong; |
| | | import com.ruoyi.integration.api.model.EndCharge; |
| | | import com.ruoyi.integration.api.model.Pong; |
| | | import com.ruoyi.integration.mongodb.service.EndChargeService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.GroundLockRealTimeData; |
| | | import com.ruoyi.integration.api.model.GroundLockRealTimeData; |
| | | import com.ruoyi.integration.mongodb.service.GroundLockRealTimeDataService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.MotorAbort; |
| | | import com.ruoyi.integration.api.model.MotorAbort; |
| | | import com.ruoyi.integration.mongodb.service.MotorAbortService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.OnlineReply; |
| | | import com.ruoyi.integration.api.model.OnlineReply; |
| | | import com.ruoyi.integration.mongodb.service.OnlineReplyService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.Online; |
| | | import com.ruoyi.integration.api.model.Online; |
| | | import com.ruoyi.integration.mongodb.service.OnlineService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.OpenOrCloseGroundLock; |
| | | import com.ruoyi.integration.api.model.OpenOrCloseGroundLock; |
| | | import com.ruoyi.integration.mongodb.service.OpenOrCloseGroundLockService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.ParameterSetting; |
| | | import com.ruoyi.integration.api.model.ParameterSetting; |
| | | import com.ruoyi.integration.mongodb.service.ParameterSettingService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.Ping; |
| | | import com.ruoyi.integration.api.model.Ping; |
| | | import com.ruoyi.integration.mongodb.service.PingService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.PlatformConfirmationCharging; |
| | | import com.ruoyi.integration.api.model.PlatformConfirmationCharging; |
| | | import com.ruoyi.integration.mongodb.service.PlatformConfirmationChargingService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.PlatformRemoteUpdateReply; |
| | | import com.ruoyi.integration.api.model.PlatformRemoteUpdateReply; |
| | | import com.ruoyi.integration.mongodb.service.PlatformRemoteUpdateReplyService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.PlatformRemoteUpdate; |
| | | import com.ruoyi.integration.api.model.PlatformRemoteUpdate; |
| | | import com.ruoyi.integration.mongodb.service.PlatformRemoteUpdateService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.PlatformRestartReply; |
| | | import com.ruoyi.integration.api.model.PlatformRestartReply; |
| | | import com.ruoyi.integration.mongodb.service.PlatformRestartReplyService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.PlatformRestart; |
| | | import com.ruoyi.integration.api.model.PlatformRestart; |
| | | import com.ruoyi.integration.mongodb.service.PlatformRestartService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.PlatformStartChargingReply; |
| | | import com.ruoyi.integration.api.model.PlatformStartChargingReply; |
| | | import com.ruoyi.integration.mongodb.service.PlatformStartChargingReplyService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.PlatformStartCharging; |
| | | import com.ruoyi.integration.api.model.PlatformStartCharging; |
| | | import com.ruoyi.integration.mongodb.service.PlatformStartChargingService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.PlatformStopChargingReply; |
| | | import com.ruoyi.integration.api.model.PlatformStopChargingReply; |
| | | import com.ruoyi.integration.mongodb.service.PlatformStopChargingReplyService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.PlatformStopCharging; |
| | | import com.ruoyi.integration.api.model.PlatformStopCharging; |
| | | import com.ruoyi.integration.mongodb.service.PlatformStopChargingService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.Online; |
| | | import com.ruoyi.integration.mongodb.model.Pong; |
| | | import com.ruoyi.integration.api.model.Online; |
| | | import com.ruoyi.integration.api.model.Pong; |
| | | import com.ruoyi.integration.mongodb.service.OnlineService; |
| | | import com.ruoyi.integration.mongodb.service.PongService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.QueryOfflineCardReply; |
| | | import com.ruoyi.integration.api.model.QueryOfflineCardReply; |
| | | import com.ruoyi.integration.mongodb.service.QueryOfflineCardReplyService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.QueryOfflineCard; |
| | | import com.ruoyi.integration.api.model.QueryOfflineCard; |
| | | import com.ruoyi.integration.mongodb.service.QueryOfflineCardService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.ReadRealTimeMonitoringData; |
| | | import com.ruoyi.integration.api.model.ReadRealTimeMonitoringData; |
| | | import com.ruoyi.integration.mongodb.service.ReadRealTimeMonitoringDataService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.SetupBillingModelReply; |
| | | import com.ruoyi.integration.api.model.SetupBillingModelReply; |
| | | import com.ruoyi.integration.mongodb.service.SetupBillingModelReplyService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.SetupBillingModel; |
| | | import com.ruoyi.integration.api.model.SetupBillingModel; |
| | | import com.ruoyi.integration.mongodb.service.SetupBillingModelService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.SetupBillingModel; |
| | | import com.ruoyi.integration.mongodb.model.SynchronizeOfflineCardReply; |
| | | import com.ruoyi.integration.api.model.SetupBillingModel; |
| | | import com.ruoyi.integration.api.model.SynchronizeOfflineCardReply; |
| | | import com.ruoyi.integration.mongodb.service.SynchronizeOfflineCardReplyService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.SynchronizeOfflineCard; |
| | | import com.ruoyi.integration.api.model.SynchronizeOfflineCard; |
| | | import com.ruoyi.integration.mongodb.service.SynchronizeOfflineCardService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.TimingSettingReply; |
| | | import com.ruoyi.integration.api.model.TimingSettingReply; |
| | | import com.ruoyi.integration.mongodb.service.TimingSettingReplyService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.TimingSetting; |
| | | import com.ruoyi.integration.api.model.TimingSetting; |
| | | import com.ruoyi.integration.mongodb.service.TimingSettingService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.TimingSetting; |
| | | import com.ruoyi.integration.mongodb.model.TransactionRecord; |
| | | import com.ruoyi.integration.api.model.TimingSetting; |
| | | import com.ruoyi.integration.api.model.TransactionRecord; |
| | | import com.ruoyi.integration.mongodb.service.TransactionRecordService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.TransactionRecord; |
| | | import com.ruoyi.integration.mongodb.model.UpdateBalanceReply; |
| | | import com.ruoyi.integration.api.model.TransactionRecord; |
| | | import com.ruoyi.integration.api.model.UpdateBalanceReply; |
| | | import com.ruoyi.integration.mongodb.service.UpdateBalanceReplyService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.UpdateBalance; |
| | | import com.ruoyi.integration.api.model.UpdateBalance; |
| | | import com.ruoyi.integration.mongodb.service.UpdateBalanceService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.UploadRealTimeMonitoringData; |
| | | import com.ruoyi.integration.mongodb.service.UploadRealTimeMonitoringDataService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | return mongoTemplate.findById(id, UploadRealTimeMonitoringData.class); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<UploadRealTimeMonitoringData> findAll() { |
| | | return mongoTemplate.findAll(UploadRealTimeMonitoringData.class); |
| | | } |
| | | |
| | | } |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.WorkingParameterSettingReply; |
| | | import com.ruoyi.integration.api.model.WorkingParameterSettingReply; |
| | | import com.ruoyi.integration.mongodb.service.WorkingParameterSettingReplyService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.mongodb.service.impl; |
| | | |
| | | import com.ruoyi.integration.iotda.constant.IotConstant; |
| | | import com.ruoyi.integration.mongodb.model.WorkingParameterSetting; |
| | | import com.ruoyi.integration.api.model.WorkingParameterSetting; |
| | | import com.ruoyi.integration.mongodb.service.WorkingParameterSettingService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.integration.mongodb.model.AcquisitionBillingMode; |
| | | import com.ruoyi.integration.mongodb.model.Online; |
| | | import com.ruoyi.integration.api.model.AcquisitionBillingMode; |
| | | import com.ruoyi.integration.api.model.Online; |
| | | import com.ruoyi.integration.mongodb.service.AcquisitionBillingModeService; |
| | | import com.ruoyi.integration.rocket.model.AcquisitionBillingModeMessage; |
| | | import com.ruoyi.integration.rocket.util.EnhanceMessageHandler; |
| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.integration.mongodb.model.AcquisitionBillingMode; |
| | | import com.ruoyi.integration.mongodb.model.BillingModeVerify; |
| | | import com.ruoyi.integration.api.model.AcquisitionBillingMode; |
| | | import com.ruoyi.integration.api.model.BillingModeVerify; |
| | | import com.ruoyi.integration.mongodb.service.BillingModeVerifyService; |
| | | import com.ruoyi.integration.rocket.model.BillingModeVerifyMessage; |
| | | import com.ruoyi.integration.rocket.util.EnhanceMessageHandler; |
| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.integration.mongodb.model.BillingModeVerify; |
| | | import com.ruoyi.integration.mongodb.model.BmsAbort; |
| | | import com.ruoyi.integration.api.model.BillingModeVerify; |
| | | import com.ruoyi.integration.api.model.BmsAbort; |
| | | import com.ruoyi.integration.mongodb.service.BmsAbortService; |
| | | import com.ruoyi.integration.rocket.model.BmsAbortMessage; |
| | | import com.ruoyi.integration.rocket.util.EnhanceMessageHandler; |
| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.integration.mongodb.model.BmsAbort; |
| | | import com.ruoyi.integration.mongodb.model.BmsDemandAndChargerExportation; |
| | | import com.ruoyi.integration.api.model.BmsAbort; |
| | | import com.ruoyi.integration.api.model.BmsDemandAndChargerExportation; |
| | | import com.ruoyi.integration.mongodb.service.BmsDemandAndChargerExportationService; |
| | | import com.ruoyi.integration.rocket.model.BmsDemandAndChargerExportationMessage; |
| | | import com.ruoyi.integration.rocket.util.EnhanceMessageHandler; |
| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.integration.mongodb.model.BmsDemandAndChargerExportation; |
| | | import com.ruoyi.integration.mongodb.model.BmsInformation; |
| | | import com.ruoyi.integration.api.model.BmsDemandAndChargerExportation; |
| | | import com.ruoyi.integration.api.model.BmsInformation; |
| | | import com.ruoyi.integration.mongodb.service.BmsInformationService; |
| | | import com.ruoyi.integration.rocket.model.BmsInformationMessage; |
| | | import com.ruoyi.integration.rocket.util.EnhanceMessageHandler; |
| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.integration.mongodb.model.BmsInformation; |
| | | import com.ruoyi.integration.mongodb.model.ChargingHandshake; |
| | | import com.ruoyi.integration.api.model.BmsInformation; |
| | | import com.ruoyi.integration.api.model.ChargingHandshake; |
| | | import com.ruoyi.integration.mongodb.service.ChargingHandshakeService; |
| | | import com.ruoyi.integration.rocket.model.ChargingHandshakeMessage; |
| | | import com.ruoyi.integration.rocket.util.EnhanceMessageHandler; |
| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.integration.mongodb.model.ChargingHandshake; |
| | | import com.ruoyi.integration.mongodb.model.ChargingPileReturnsGroundLockData; |
| | | import com.ruoyi.integration.api.model.ChargingHandshake; |
| | | import com.ruoyi.integration.api.model.ChargingPileReturnsGroundLockData; |
| | | import com.ruoyi.integration.mongodb.service.ChargingPileReturnsGroundLockDataService; |
| | | import com.ruoyi.integration.rocket.model.ChargingPileReturnsGroundLockDataMessage; |
| | | import com.ruoyi.integration.rocket.util.EnhanceMessageHandler; |
| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.integration.mongodb.model.ChargingPileReturnsGroundLockData; |
| | | import com.ruoyi.integration.mongodb.model.ChargingPileStartsCharging; |
| | | import com.ruoyi.integration.api.model.ChargingPileReturnsGroundLockData; |
| | | import com.ruoyi.integration.api.model.ChargingPileStartsCharging; |
| | | import com.ruoyi.integration.mongodb.service.ChargingPileStartsChargingService; |
| | | import com.ruoyi.integration.rocket.model.ChargingPileStartsChargingMessage; |
| | | import com.ruoyi.integration.rocket.util.EnhanceMessageHandler; |
| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.integration.mongodb.model.ChargingPileStartsCharging; |
| | | import com.ruoyi.integration.mongodb.model.ClearOfflineCardReply; |
| | | import com.ruoyi.integration.api.model.ChargingPileStartsCharging; |
| | | import com.ruoyi.integration.api.model.ClearOfflineCardReply; |
| | | import com.ruoyi.integration.mongodb.service.ClearOfflineCardReplyService; |
| | | import com.ruoyi.integration.rocket.model.ClearOfflineCardReplyMessage; |
| | | import com.ruoyi.integration.rocket.util.EnhanceMessageHandler; |
| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.integration.mongodb.model.ClearOfflineCardReply; |
| | | import com.ruoyi.integration.mongodb.model.GroundLockRealTimeData; |
| | | import com.ruoyi.integration.api.model.ClearOfflineCardReply; |
| | | import com.ruoyi.integration.api.model.GroundLockRealTimeData; |
| | | import com.ruoyi.integration.mongodb.service.GroundLockRealTimeDataService; |
| | | import com.ruoyi.integration.rocket.model.GroundLockRealTimeDataMessage; |
| | | import com.ruoyi.integration.rocket.util.EnhanceMessageHandler; |
| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.integration.mongodb.model.GroundLockRealTimeData; |
| | | import com.ruoyi.integration.mongodb.model.MotorAbort; |
| | | import com.ruoyi.integration.api.model.GroundLockRealTimeData; |
| | | import com.ruoyi.integration.api.model.MotorAbort; |
| | | import com.ruoyi.integration.mongodb.service.MotorAbortService; |
| | | import com.ruoyi.integration.rocket.model.MotorAbortMessage; |
| | | import com.ruoyi.integration.rocket.util.EnhanceMessageHandler; |
| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.integration.mongodb.model.Online; |
| | | import com.ruoyi.integration.api.model.Online; |
| | | import com.ruoyi.integration.mongodb.service.OnlineService; |
| | | import com.ruoyi.integration.rocket.model.OnlineMessage; |
| | | import com.ruoyi.integration.rocket.model.OnlineMessage; |
| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.integration.mongodb.model.Online; |
| | | import com.ruoyi.integration.mongodb.model.ParameterSetting; |
| | | import com.ruoyi.integration.api.model.Online; |
| | | import com.ruoyi.integration.api.model.ParameterSetting; |
| | | import com.ruoyi.integration.mongodb.service.ParameterSettingService; |
| | | import com.ruoyi.integration.rocket.model.ParameterSettingMessage; |
| | | import com.ruoyi.integration.rocket.util.EnhanceMessageHandler; |
| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.integration.mongodb.model.Online; |
| | | import com.ruoyi.integration.mongodb.model.Ping; |
| | | import com.ruoyi.integration.api.model.Online; |
| | | import com.ruoyi.integration.api.model.Ping; |
| | | import com.ruoyi.integration.mongodb.service.OnlineService; |
| | | import com.ruoyi.integration.mongodb.service.PingService; |
| | | import com.ruoyi.integration.rocket.model.PingMessage; |
| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.integration.mongodb.model.Online; |
| | | import com.ruoyi.integration.mongodb.model.PlatformRemoteUpdateReply; |
| | | import com.ruoyi.integration.api.model.Online; |
| | | import com.ruoyi.integration.api.model.PlatformRemoteUpdateReply; |
| | | import com.ruoyi.integration.mongodb.service.PlatformRemoteUpdateReplyService; |
| | | import com.ruoyi.integration.rocket.model.PlatformRemoteUpdateReplyMessage; |
| | | import com.ruoyi.integration.rocket.util.EnhanceMessageHandler; |
| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.integration.mongodb.model.Online; |
| | | import com.ruoyi.integration.mongodb.model.PlatformRestartReply; |
| | | import com.ruoyi.integration.api.model.Online; |
| | | import com.ruoyi.integration.api.model.PlatformRestartReply; |
| | | import com.ruoyi.integration.mongodb.service.PlatformRestartReplyService; |
| | | import com.ruoyi.integration.rocket.model.PlatformRestartReplyMessage; |
| | | import com.ruoyi.integration.rocket.util.EnhanceMessageHandler; |
| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.integration.mongodb.model.Online; |
| | | import com.ruoyi.integration.mongodb.model.PlatformStartChargingReply; |
| | | import com.ruoyi.integration.api.model.Online; |
| | | import com.ruoyi.integration.api.model.PlatformStartChargingReply; |
| | | import com.ruoyi.integration.mongodb.service.PlatformStartChargingReplyService; |
| | | import com.ruoyi.integration.rocket.model.PlatformStartChargingReplyMessage; |
| | | import com.ruoyi.integration.rocket.util.EnhanceMessageHandler; |
| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.integration.mongodb.model.Online; |
| | | import com.ruoyi.integration.mongodb.model.PlatformStopChargingReply; |
| | | import com.ruoyi.integration.api.model.Online; |
| | | import com.ruoyi.integration.api.model.PlatformStopChargingReply; |
| | | import com.ruoyi.integration.mongodb.service.PlatformStopChargingReplyService; |
| | | import com.ruoyi.integration.rocket.model.PlatformStopChargingReplyMessage; |
| | | import com.ruoyi.integration.rocket.util.EnhanceMessageHandler; |
| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.integration.mongodb.model.Online; |
| | | import com.ruoyi.integration.mongodb.model.QueryOfflineCardReply; |
| | | import com.ruoyi.integration.api.model.Online; |
| | | import com.ruoyi.integration.api.model.QueryOfflineCardReply; |
| | | import com.ruoyi.integration.mongodb.service.QueryOfflineCardReplyService; |
| | | import com.ruoyi.integration.rocket.model.QueryOfflineCardReplyMessage; |
| | | import com.ruoyi.integration.rocket.util.EnhanceMessageHandler; |
| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.integration.mongodb.model.Online; |
| | | import com.ruoyi.integration.mongodb.model.SetupBillingModelReply; |
| | | import com.ruoyi.integration.api.model.Online; |
| | | import com.ruoyi.integration.api.model.SetupBillingModelReply; |
| | | import com.ruoyi.integration.mongodb.service.SetupBillingModelReplyService; |
| | | import com.ruoyi.integration.rocket.model.SetupBillingModelReplyMessage; |
| | | import com.ruoyi.integration.rocket.util.EnhanceMessageHandler; |
| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.integration.mongodb.model.Online; |
| | | import com.ruoyi.integration.mongodb.model.SynchronizeOfflineCardReply; |
| | | import com.ruoyi.integration.api.model.Online; |
| | | import com.ruoyi.integration.api.model.SynchronizeOfflineCardReply; |
| | | import com.ruoyi.integration.mongodb.service.SynchronizeOfflineCardReplyService; |
| | | import com.ruoyi.integration.rocket.model.SynchronizeOfflineCardReplyMessage; |
| | | import com.ruoyi.integration.rocket.util.EnhanceMessageHandler; |
| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.integration.mongodb.model.Online; |
| | | import com.ruoyi.integration.mongodb.model.TimingSettingReply; |
| | | import com.ruoyi.integration.api.model.Online; |
| | | import com.ruoyi.integration.api.model.TimingSettingReply; |
| | | import com.ruoyi.integration.mongodb.service.TimingSettingReplyService; |
| | | import com.ruoyi.integration.rocket.model.TimingSettingReplyMessage; |
| | | import com.ruoyi.integration.rocket.util.EnhanceMessageHandler; |
| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.integration.mongodb.model.Online; |
| | | import com.ruoyi.integration.mongodb.model.TransactionRecord; |
| | | import com.ruoyi.integration.api.model.Online; |
| | | import com.ruoyi.integration.api.model.TransactionRecord; |
| | | import com.ruoyi.integration.mongodb.service.TransactionRecordService; |
| | | import com.ruoyi.integration.rocket.model.TransactionRecordMessage; |
| | | import com.ruoyi.integration.rocket.util.EnhanceMessageHandler; |
| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.integration.mongodb.model.Online; |
| | | import com.ruoyi.integration.mongodb.model.UpdateBalanceReply; |
| | | import com.ruoyi.integration.api.model.Online; |
| | | import com.ruoyi.integration.api.model.UpdateBalanceReply; |
| | | import com.ruoyi.integration.mongodb.service.UpdateBalanceReplyService; |
| | | import com.ruoyi.integration.rocket.model.UpdateBalanceReplyMessage; |
| | | import com.ruoyi.integration.rocket.util.EnhanceMessageHandler; |
| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.integration.mongodb.model.Online; |
| | | import com.ruoyi.integration.mongodb.model.UploadRealTimeMonitoringData; |
| | | import com.ruoyi.integration.api.model.Online; |
| | | import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; |
| | | import com.ruoyi.integration.mongodb.service.UploadRealTimeMonitoringDataService; |
| | | import com.ruoyi.integration.rocket.model.UploadRealTimeMonitoringDataMessage; |
| | | import com.ruoyi.integration.rocket.util.EnhanceMessageHandler; |
| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.integration.mongodb.model.Online; |
| | | import com.ruoyi.integration.mongodb.model.WorkingParameterSettingReply; |
| | | import com.ruoyi.integration.api.model.Online; |
| | | import com.ruoyi.integration.api.model.WorkingParameterSettingReply; |
| | | import com.ruoyi.integration.mongodb.service.WorkingParameterSettingReplyService; |
| | | import com.ruoyi.integration.rocket.model.WorkingParameterSettingReplyMessage; |
| | | import com.ruoyi.integration.rocket.util.EnhanceMessageHandler; |
| | |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>com.ruoyi</groupId> |
| | | <artifactId>ruoyi-api-integration</artifactId> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>com.ruoyi</groupId> |
| | | <artifactId>ruoyi-api-account</artifactId> |
| | | </dependency> |
| | | <!-- ruoyi-modules-chargingPile-api --> |
| | |
| | | import com.ruoyi.order.service.TChargingOrderService; |
| | | import com.ruoyi.order.service.TOrderEvaluateService; |
| | | import com.ruoyi.order.service.TOrderEvaluateTagService; |
| | | import com.ruoyi.payment.api.feignClient.AliPaymentClient; |
| | | import com.ruoyi.payment.api.feignClient.WxPaymentClient; |
| | | import com.ruoyi.payment.api.vo.AliQueryOrder; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.PrintWriter; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.List; |
| | |
| | | |
| | | @Resource |
| | | private RedisService redisService; |
| | | |
| | | @Resource |
| | | private AliPaymentClient aliPaymentClient; |
| | | |
| | | @Autowired |
| | | private AppUserClient appUserClient; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | |
| | | TCharingOrderVO res = chargingOrderService.chargingOrder(dto); |
| | | return AjaxResult.success(res); |
| | | } |
| | | @ResponseBody |
| | | @PostMapping(value = "/chargingOrderInfo") |
| | | @ApiOperation(value = "充电桩订单列表查看详情", tags = {"管理后台-订单管理"}) |
| | | public AjaxResult<TCharingOrderVO> chargingOrderInfo(String orderId){ |
| | | |
| | | return AjaxResult.success(); |
| | | } |
| | | |
| | | @ResponseBody |
| | | @PostMapping(value = "/addEvaluate") |
| | |
| | | |
| | | /** |
| | | * 支付宝支付成功后的回调 |
| | | * @param request |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping(value = "/chargingOrderALICallback") |
| | | public void chargingOrderALICallback(HttpServletRequest request){ |
| | | Map<String, Object> data = wxPaymentClient.payNotify(request).getData(); |
| | | if(null != data){ |
| | | String out_trade_no = data.get("out_trade_no").toString(); |
| | | String transaction_id = data.get("transaction_id").toString(); |
| | | String attach = data.get("attach").toString(); |
| | | public void chargingOrderALICallback(@RequestBody AliQueryOrder aliQueryOrder, HttpServletResponse response){ |
| | | try { |
| | | String out_trade_no = aliQueryOrder.getOutTradeNo(); |
| | | String transaction_id = aliQueryOrder.getTradeNo(); |
| | | String attach = aliQueryOrder.getPassbackParams(); |
| | | AjaxResult ajaxResult = chargingOrderService.chargingOrderCallback(2, out_trade_no, transaction_id, attach); |
| | | if(ajaxResult.isSuccess()){ |
| | | |
| | | PrintWriter writer = response.getWriter(); |
| | | writer.println("success"); |
| | | writer.flush(); |
| | | writer.close(); |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.ruoyi.account.api.feignClient.AppUserClient; |
| | | import com.ruoyi.account.api.model.TAppUserAddress; |
| | | import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient; |
| | | import com.ruoyi.chargingPile.api.model.TChargingPile; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.core.web.domain.AjaxResult; |
| | | import com.ruoyi.common.core.web.page.PageInfo; |
| | | import com.ruoyi.common.security.service.TokenService; |
| | | import com.ruoyi.order.api.model.TExchangeOrder; |
| | | import com.ruoyi.order.api.model.TShoppingOrder; |
| | | import com.ruoyi.order.api.query.ShoppingOrderQuery; |
| | | import com.ruoyi.order.api.query.TActivityStatisticsQuery; |
| | | import com.ruoyi.order.api.vo.TActivityStatisticslVO; |
| | | import com.ruoyi.order.api.vo.TActivityVO; |
| | | import com.ruoyi.order.dto.ExchangeOrderGoodsInfo; |
| | | import com.ruoyi.order.dto.GetMyExchangeOrder; |
| | |
| | | import com.ruoyi.order.service.TShoppingOrderService; |
| | | import com.ruoyi.common.core.dto.ExchangeDto; |
| | | import com.ruoyi.common.core.utils.OrderCodeUtil; |
| | | import com.ruoyi.other.api.feignClient.CouponClient; |
| | | import com.ruoyi.other.api.feignClient.GoodsClient; |
| | | import com.ruoyi.system.api.domain.SysUser; |
| | | import com.ruoyi.system.api.feignClient.SysUserClient; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.util.StringUtils; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | |
| | | private AppUserClient appUserClient; |
| | | @Resource |
| | | private ChargingPileClient chargingPileClient; |
| | | @Resource |
| | | private GoodsClient goodsClient; |
| | | @Resource |
| | | private CouponClient couponClient; |
| | | |
| | | @PostMapping("/getExchangeOrderList") |
| | | @ApiOperation(value = "列表查询", tags = {"管理后台-兑换订单"}) |
| | | public AjaxResult<PageInfo<TExchangeOrder>> getExchangeOrderList(@RequestBody ShoppingOrderQuery query) { |
| | | if (StringUtils.hasLength(query.getPhone())) { |
| | | List<Long> data = appUserClient.getUserIdsByPhone(query.getPhone()).getData(); |
| | | if (data.isEmpty()){ |
| | | return AjaxResult.success(new PageInfo<TShoppingOrder>()); |
| | | } |
| | | query.setUserIds(data); |
| | | } |
| | | if (StringUtils.hasLength(query.getName())) { |
| | | List<Integer> data = goodsClient.getGoodsIdsByName(query.getName()).getData(); |
| | | query.setGoodsIds(data); |
| | | List<Integer> data1 = couponClient.getCouponIdsByName(query.getName()).getData(); |
| | | query.setCouponIds(data1); |
| | | if (data.isEmpty() && data1.isEmpty()){ |
| | | return AjaxResult.success(new PageInfo<TShoppingOrder>()); |
| | | } |
| | | } |
| | | |
| | | PageInfo<TExchangeOrder> res = exchangeOrderService.pageList(query); |
| | | return AjaxResult.success(res); |
| | | } |
| | | @Resource |
| | | private SysUserClient sysUserClient; |
| | | @PostMapping("/getShoppingOrderInfoById") |
| | | @ApiOperation(value = "根据订单id查看订单详情", tags = {"管理后台-兑换订单"}) |
| | | public AjaxResult<TExchangeOrder> getShoppingOrderList(String id) { |
| | | TExchangeOrder byId = exchangeOrderService.getById(id); |
| | | if (byId.getConsignerId()!=null){ |
| | | SysUser data = sysUserClient.getSysUser(byId.getConsignerId()).getData(); |
| | | if (data!=null){ |
| | | byId.setConsignerName(data.getUserName()); |
| | | } |
| | | } |
| | | if (byId.getCancellationId()!=null){ |
| | | SysUser data = sysUserClient.getSysUser(byId.getCancellationId()).getData(); |
| | | if (data!=null){ |
| | | byId.setCancellationName(data.getUserName()); |
| | | } |
| | | } |
| | | if (byId.getAppUserAddressId()!=null){ |
| | | TAppUserAddress data = appUserClient.getAddressById(byId.getAppUserAddressId()).getData(); |
| | | if (data!=null){ |
| | | byId.setReceivingName(data.getName()+"-"+data.getPhone()); |
| | | byId.setReceivingAddress(data.getAddress()); |
| | | } |
| | | } |
| | | return AjaxResult.success(byId); |
| | | } |
| | | @Resource |
| | | private TokenService tokenService; |
| | | @GetMapping("/deleteShoppingOrder") |
| | | @ApiOperation(value = "批量删除订单", tags = {"管理后台-兑换订单"}) |
| | | public AjaxResult<TExchangeOrder> deleteShoppingOrder(String ids) { |
| | | exchangeOrderService.removeBatchByIds(Arrays.asList(ids.split(","))); |
| | | return AjaxResult.success(); |
| | | } |
| | | @GetMapping("/cancelShoppingOrder") |
| | | @ApiOperation(value = "取消订单", tags = {"管理后台-兑换订单"}) |
| | | public AjaxResult cancelShoppingOrder(String id) { |
| | | TExchangeOrder byId = exchangeOrderService.getById(id); |
| | | Long userid = tokenService.getLoginUser().getUserid(); |
| | | // todo 根据支付方式 取消订单 |
| | | byId.setCancellationId(userid); |
| | | byId.setCancellationTime(LocalDateTime.now()); |
| | | byId.setStatus(4); |
| | | exchangeOrderService.updateById(byId); |
| | | return AjaxResult.success(); |
| | | } |
| | | @GetMapping("/consignerShoppingOrder") |
| | | @ApiOperation(value = "发货", tags = {"管理后台-兑换订单"}) |
| | | public AjaxResult consignerShoppingOrder(String id) { |
| | | TExchangeOrder byId = exchangeOrderService.getById(id); |
| | | Long userid = tokenService.getLoginUser().getUserid(); |
| | | byId.setConsignerId(userid); |
| | | byId.setConsignerTime(LocalDateTime.now()); |
| | | byId.setStatus(2); |
| | | exchangeOrderService.updateById(byId); |
| | | return AjaxResult.success(); |
| | | } |
| | | /** |
| | | * 管理后台 活动费用统计 |
| | | * @param |
| | |
| | | if (StringUtils.hasLength(dto.getPhone())){ |
| | | // 远程调用查询出符合条件的用户ids |
| | | List<Long> data = appUserClient.getUserIdsByPhone(dto.getPhone()).getData(); |
| | | if (data.isEmpty()){ |
| | | TActivityVO res = new TActivityVO(); |
| | | res.setList(new PageInfo<TActivityStatisticslVO>()); |
| | | return R.ok(res); |
| | | } |
| | | dto.setUserIds(data); |
| | | } |
| | | if (dto.getSiteId()!=null){ |
| | |
| | | import java.time.LocalDateTime; |
| | | |
| | | |
| | | import com.ruoyi.account.api.feignClient.AppUserClient; |
| | | import com.ruoyi.account.api.model.TAppUserAddress; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.core.dto.ExchangeDto; |
| | | import com.ruoyi.common.core.utils.OrderCodeUtil; |
| | | import com.ruoyi.common.core.web.domain.AjaxResult; |
| | | import com.ruoyi.common.core.web.page.PageInfo; |
| | | import com.ruoyi.common.security.service.TokenService; |
| | | import com.ruoyi.order.api.model.TExchangeOrder; |
| | | import com.ruoyi.order.api.model.TShoppingOrder; |
| | | import com.ruoyi.order.api.query.ShoppingOrderQuery; |
| | | import com.ruoyi.order.dto.*; |
| | | import com.ruoyi.order.service.TShoppingOrderService; |
| | | import com.ruoyi.other.api.feignClient.CouponClient; |
| | | import com.ruoyi.other.api.feignClient.GoodsClient; |
| | | import com.ruoyi.system.api.domain.SysUser; |
| | | import com.ruoyi.system.api.feignClient.SysUserClient; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.util.StringUtils; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.Arrays; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | |
| | | @Resource |
| | | private TShoppingOrderService shoppingOrderService; |
| | | @Resource |
| | | private AppUserClient appUserClient; |
| | | @Resource |
| | | private GoodsClient goodsClient; |
| | | @Resource |
| | | private CouponClient couponClient; |
| | | |
| | | |
| | | @PostMapping("/getShoppingOrderList") |
| | | @ApiOperation(value = "列表查询", tags = {"管理后台-购物订单"}) |
| | | public AjaxResult<PageInfo<TShoppingOrder>> getShoppingOrderList(@RequestBody ShoppingOrderQuery query) { |
| | | if (StringUtils.hasLength(query.getPhone())) { |
| | | List<Long> data = appUserClient.getUserIdsByPhone(query.getPhone()).getData(); |
| | | if (data.isEmpty()){ |
| | | return AjaxResult.success(new PageInfo<TShoppingOrder>()); |
| | | } |
| | | query.setUserIds(data); |
| | | } |
| | | if (StringUtils.hasLength(query.getName())) { |
| | | List<Integer> data = goodsClient.getGoodsIdsByName(query.getName()).getData(); |
| | | query.setGoodsIds(data); |
| | | List<Integer> data1 = couponClient.getCouponIdsByName(query.getName()).getData(); |
| | | query.setCouponIds(data1); |
| | | if (data.isEmpty() && data1.isEmpty()){ |
| | | return AjaxResult.success(new PageInfo<TShoppingOrder>()); |
| | | } |
| | | } |
| | | PageInfo<TShoppingOrder> res = shoppingOrderService.pageList(query); |
| | | return AjaxResult.success(res); |
| | | } |
| | | @Resource |
| | | private SysUserClient sysUserClient; |
| | | @PostMapping("/getShoppingOrderInfoById") |
| | | @ApiOperation(value = "根据订单id查看订单详情", tags = {"管理后台-购物订单"}) |
| | | public AjaxResult<TShoppingOrder> getShoppingOrderList(String id) { |
| | | TShoppingOrder byId = shoppingOrderService.getById(id); |
| | | if (byId.getConsignerId()!=null){ |
| | | SysUser data = sysUserClient.getSysUser(byId.getConsignerId()).getData(); |
| | | if (data!=null){ |
| | | byId.setConsignerName(data.getUserName()); |
| | | } |
| | | } |
| | | if (byId.getCancellationId()!=null){ |
| | | SysUser data = sysUserClient.getSysUser(byId.getCancellationId()).getData(); |
| | | if (data!=null){ |
| | | byId.setCancellationName(data.getUserName()); |
| | | } |
| | | } |
| | | if (byId.getAppUserAddressId()!=null){ |
| | | TAppUserAddress data = appUserClient.getAddressById(byId.getAppUserAddressId()).getData(); |
| | | if (data!=null){ |
| | | byId.setReceivingName(data.getName()+"-"+data.getPhone()); |
| | | byId.setReceivingAddress(data.getAddress()); |
| | | } |
| | | } |
| | | return AjaxResult.success(byId); |
| | | } |
| | | @GetMapping("/deleteShoppingOrder") |
| | | @ApiOperation(value = "批量删除订单", tags = {"管理后台-购物订单"}) |
| | | public AjaxResult<TShoppingOrder> deleteShoppingOrder(String ids) { |
| | | shoppingOrderService.removeBatchByIds(Arrays.asList(ids.split(","))); |
| | | return AjaxResult.success(); |
| | | } |
| | | @Resource |
| | | private TokenService tokenService; |
| | | @GetMapping("/cancelShoppingOrder") |
| | | @ApiOperation(value = "取消订单", tags = {"管理后台-购物订单"}) |
| | | public AjaxResult cancelShoppingOrder(String id) { |
| | | TShoppingOrder byId = shoppingOrderService.getById(id); |
| | | Long userid = tokenService.getLoginUser().getUserid(); |
| | | // todo 根据支付方式 取消订单 |
| | | byId.setCancellationId(userid); |
| | | byId.setCancellationTime(LocalDateTime.now()); |
| | | byId.setStatus(4); |
| | | switch (byId.getPaymentType()){ |
| | | case 1: |
| | | // 微信 |
| | | break; |
| | | case 2: |
| | | // 支付宝 |
| | | break; |
| | | } |
| | | shoppingOrderService.updateById(byId); |
| | | return AjaxResult.success(); |
| | | } |
| | | @GetMapping("/consignerShoppingOrder") |
| | | @ApiOperation(value = "发货", tags = {"管理后台-购物订单"}) |
| | | public AjaxResult consignerShoppingOrder(String id) { |
| | | TShoppingOrder byId = shoppingOrderService.getById(id); |
| | | Long userid = tokenService.getLoginUser().getUserid(); |
| | | byId.setConsignerId(userid); |
| | | byId.setConsignerTime(LocalDateTime.now()); |
| | | byId.setStatus(2); |
| | | shoppingOrderService.updateById(byId); |
| | | return AjaxResult.success(); |
| | | } |
| | | @GetMapping("/getMyShoppingOrderList") |
| | | @ApiOperation(value = "获取购买订单列表", tags = {"小程序-商城购买订单"}) |
| | | public AjaxResult<List<MyShoppingOrderList>> getMyShoppingOrderList(GetMyShoppingOrderList query){ |
| | |
| | | package com.ruoyi.order.controller; |
| | | |
| | | |
| | | import com.ruoyi.account.api.feignClient.AppUserClient; |
| | | import com.ruoyi.common.core.web.domain.AjaxResult; |
| | | import com.ruoyi.common.core.web.page.PageInfo; |
| | | import com.ruoyi.order.api.model.TExchangeOrder; |
| | | import com.ruoyi.order.api.model.TShoppingOrder; |
| | | import com.ruoyi.order.api.model.TVipOrder; |
| | | import com.ruoyi.order.api.query.ShoppingOrderQuery; |
| | | import com.ruoyi.order.api.query.VipShoppingOrderQuery; |
| | | import com.ruoyi.order.service.TVipOrderService; |
| | | import io.swagger.annotations.Api; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.omg.CORBA.PRIVATE_MEMBER; |
| | | import org.springframework.util.StringUtils; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | @RequestMapping("/t-vip-order") |
| | | public class TVipOrderController { |
| | | |
| | | @Resource |
| | | private TVipOrderService vipOrderService; |
| | | @Resource |
| | | private AppUserClient appUserClient; |
| | | @PostMapping("/getVipOrderList") |
| | | @ApiOperation(value = "列表查询", tags = {"管理后台-会员订单"}) |
| | | public AjaxResult<PageInfo<TVipOrder>> getVipOrderList(@RequestBody VipShoppingOrderQuery query) { |
| | | if (StringUtils.hasLength(query.getPhone())){ |
| | | List<Long> data = appUserClient.getUserIdsByPhone(query.getPhone()).getData(); |
| | | if (data.isEmpty()){ |
| | | return AjaxResult.success(new PageInfo<TVipOrder>()); |
| | | } |
| | | } |
| | | PageInfo<TVipOrder> res = vipOrderService.pageList(query); |
| | | return AjaxResult.success(res); |
| | | } |
| | | @PostMapping("/addVipOrder") |
| | | @ApiOperation(value = "添加会员订单", tags = {"管理后台-会员订单"}) |
| | | public AjaxResult addVipOrder(@RequestBody TVipOrder dto) { |
| | | vipOrderService.save(dto); |
| | | return AjaxResult.success(); |
| | | } |
| | | @GetMapping("/deleteVipOrder") |
| | | @ApiOperation(value = "批量删除会员订单", tags = {"管理后台-会员订单"}) |
| | | public AjaxResult deleteVipOrder(String id) { |
| | | vipOrderService.removeBatchByIds(Arrays.asList(id.split(","))); |
| | | return AjaxResult.success(); |
| | | } |
| | | } |
| | | |
| | |
| | | import com.ruoyi.account.api.model.TAppUser; |
| | | import com.ruoyi.common.core.constant.TokenConstants; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.core.utils.JwtUtils; |
| | | import com.ruoyi.common.core.utils.StringUtils; |
| | | import com.ruoyi.system.api.domain.SysUser; |
| | | import com.ruoyi.system.api.feignClient.SysUserClient; |
| | | import io.jsonwebtoken.Claims; |
| | | import org.apache.logging.log4j.core.config.Order; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | |
| | | package com.ruoyi.order.mapper; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.ruoyi.common.core.web.page.PageInfo; |
| | | import com.ruoyi.order.api.model.TExchangeOrder; |
| | | import com.ruoyi.order.api.model.TShoppingOrder; |
| | | import com.ruoyi.order.api.query.ShoppingOrderQuery; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | @Mapper |
| | | public interface TExchangeOrderMapper extends BaseMapper<TExchangeOrder> { |
| | | |
| | | List<TExchangeOrder> pageList(@Param("pageInfo")PageInfo<TExchangeOrder> pageInfo, @Param("req")ShoppingOrderQuery query, @Param("startTime1")String startTime1, @Param("startTime2")String startTime2); |
| | | |
| | | |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.ruoyi.common.core.web.page.PageInfo; |
| | | import com.ruoyi.order.api.model.TShoppingOrder; |
| | | import com.ruoyi.order.api.query.ShoppingOrderQuery; |
| | | import com.ruoyi.order.api.query.TActivityStatisticsQuery; |
| | | import com.ruoyi.order.api.vo.TActivityStatisticslVO; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | |
| | | */ |
| | | List<TShoppingOrder> getNoInvoicedOrder(@Param("appUserId") Long appUserId, @Param("month") String month, |
| | | @Param("pageCurr") Integer pageCurr, @Param("pageSize") Integer pageSize); |
| | | |
| | | List<TShoppingOrder> pageList(@Param("pageInfo")PageInfo<TShoppingOrder> pageInfo, @Param("req")ShoppingOrderQuery query, @Param("startTime1")String startTime1, @Param("startTime2")String startTime2); |
| | | |
| | | } |
| | |
| | | package com.ruoyi.order.mapper; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.ruoyi.common.core.web.page.PageInfo; |
| | | import com.ruoyi.order.api.model.TShoppingOrder; |
| | | import com.ruoyi.order.api.model.TVipOrder; |
| | | import com.ruoyi.order.api.query.ShoppingOrderQuery; |
| | | import com.ruoyi.order.api.query.VipShoppingOrderQuery; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | @Mapper |
| | | public interface TVipOrderMapper extends BaseMapper<TVipOrder> { |
| | | |
| | | List<TVipOrder> pageList(@Param("pageInfo")PageInfo<TVipOrder> pageInfo, @Param("req") VipShoppingOrderQuery query, @Param("startTime1")String startTime1, @Param("startTime2")String startTime2); |
| | | |
| | | |
| | | } |
| | |
| | | package com.ruoyi.order.service; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.ruoyi.common.core.web.page.PageInfo; |
| | | import com.ruoyi.order.api.model.TExchangeOrder; |
| | | import com.ruoyi.order.api.query.ShoppingOrderQuery; |
| | | import com.ruoyi.order.dto.ExchangeOrderGoodsInfo; |
| | | import com.ruoyi.order.dto.GetMyExchangeOrder; |
| | | import com.ruoyi.order.dto.MyExchangeOrderList; |
| | |
| | | * @return |
| | | */ |
| | | ExchangeOrderGoodsInfo getGoodsExchangeOrder(String id); |
| | | |
| | | PageInfo<TExchangeOrder> pageList(ShoppingOrderQuery query); |
| | | } |
| | |
| | | import com.ruoyi.common.core.web.domain.AjaxResult; |
| | | import com.ruoyi.common.core.web.page.PageInfo; |
| | | import com.ruoyi.order.api.model.TShoppingOrder; |
| | | import com.ruoyi.order.api.query.ShoppingOrderQuery; |
| | | import com.ruoyi.order.api.query.TActivityStatisticsQuery; |
| | | import com.ruoyi.order.api.vo.TActivityStatisticslVO; |
| | | import com.ruoyi.order.api.vo.TActivityVO; |
| | |
| | | List<MyShoppingOrderList> getNoInvoicedOrder(GetNoInvoicedOrder query); |
| | | |
| | | void callBack(String code,String outTradeNo); |
| | | |
| | | PageInfo<TShoppingOrder> pageList(ShoppingOrderQuery query); |
| | | |
| | | } |
| | |
| | | package com.ruoyi.order.service; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.ruoyi.common.core.web.page.PageInfo; |
| | | import com.ruoyi.order.api.model.TVipOrder; |
| | | import com.ruoyi.order.api.query.VipShoppingOrderQuery; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | */ |
| | | public interface TVipOrderService extends IService<TVipOrder> { |
| | | |
| | | PageInfo<TVipOrder> pageList(VipShoppingOrderQuery query); |
| | | } |
| | |
| | | package com.ruoyi.order.service.impl; |
| | | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.account.api.feignClient.AppUserCarClient; |
| | | import com.ruoyi.account.api.feignClient.AppUserClient; |
| | |
| | | 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.common.security.utils.SecurityUtils; |
| | | import com.ruoyi.order.api.model.TChargingOrder; |
| | | import com.ruoyi.order.api.model.TChargingOrderAccountingStrategy; |
| | | import com.ruoyi.order.api.query.ChargingOrderQuery; |
| | |
| | | import com.ruoyi.order.mapper.TChargingOrderMapper; |
| | | import com.ruoyi.order.service.TChargingOrderAccountingStrategyService; |
| | | import com.ruoyi.order.service.TChargingOrderService; |
| | | import com.ruoyi.other.api.domain.TCoupon; |
| | | import com.ruoyi.other.api.domain.TVip; |
| | | import com.ruoyi.payment.api.feignClient.AliPaymentClient; |
| | | import com.ruoyi.payment.api.feignClient.WxPaymentClient; |
| | | import com.ruoyi.payment.api.vo.NotifyV3PayDecodeRespBody; |
| | | import com.ruoyi.payment.api.vo.PaymentOrder; |
| | | import com.ruoyi.payment.api.vo.*; |
| | | import io.seata.spring.annotation.GlobalTransactional; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.StringUtils; |
| | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDateTime; |
| | | import java.time.ZoneOffset; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.time.temporal.ChronoUnit; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | private WxPaymentClient wxPaymentClient; |
| | | |
| | | @Resource |
| | | private AliPaymentClient aliPaymentClient; |
| | | |
| | | @Resource |
| | | private ChargingPileClient chargingPileClient; |
| | | |
| | | |
| | |
| | | |
| | | @Resource |
| | | private RedisService redisService; |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 获取小程序充电记录列表数据 |
| | |
| | | } |
| | | } |
| | | if(2 == rechargePaymentType){ |
| | | |
| | | AliQueryOrder data = aliPaymentClient.query(tChargingOrder.getCode()).getData(); |
| | | if(null != data){ |
| | | //支付失败,删除无效的订单 |
| | | String tradeStatus = data.getTradeStatus(); |
| | | if(tradeStatus.equals("TRADE_CLOSED")){ |
| | | this.removeById(tChargingOrder.getId()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | if(2 == one.getRechargePaymentType()){ |
| | | |
| | | AliQueryOrder data = aliPaymentClient.query(one.getCode()).getData(); |
| | | if(null != data){ |
| | | String trade_state = data.getTradeStatus(); |
| | | //支付失败,删除无效的订单 |
| | | if(trade_state.equals("TRADE_CLOSED")){ |
| | | this.removeById(one.getId()); |
| | | } |
| | | if(trade_state.equals("WAIT_BUYER_PAY")){ |
| | | //结束第三方支付,删除订单 |
| | | aliPaymentClient.close(one.getCode()); |
| | | this.removeById(one.getId()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | return AjaxResult.success(data); |
| | | } |
| | | if(2 == addChargingOrder.getPaymentType()){ |
| | | |
| | | AliPaymentReq req = new AliPaymentReq(); |
| | | req.setOutTradeNo(chargingOrder.getCode()); |
| | | req.setTotalAmount(chargingOrder.getPaymentAmount().toString()); |
| | | req.setSubject("充电充值"); |
| | | req.setBuyerOpenId(appUser.getAliOpenid()); |
| | | req.setBody("充电充值"); |
| | | AliPaymentResp data = aliPaymentClient.payment(req).getData(); |
| | | if(null != data){ |
| | | data.setNotifyUrl(data.getNotifyUrl() + "/t-charging-order/chargingOrderALICallback"); |
| | | return AjaxResult.success(data); |
| | | } |
| | | } |
| | | throw new RuntimeException("无效的支付方式"); |
| | | } |
| | |
| | | @Override |
| | | public TCharingOrderVO chargingOrder(ChargingOrderQuery dto) { |
| | | TCharingOrderVO tCharingOrderVO = new TCharingOrderVO(); |
| | | |
| | | |
| | | String startTime1 = null; |
| | | String startTime2 = null; |
| | | String endTime1 = null; |
| | |
| | | endTime1 = split[0]; |
| | | endTime2 = split[1]; |
| | | } |
| | | PageInfo<ChargingOrderVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize()); |
| | | |
| | | if (StringUtils.hasLength(dto.getPhone())){ |
| | | List<Long> data = appUserClient.getUserIdsByPhone(dto.getPhone()).getData(); |
| | | if (data.isEmpty()){ |
| | | data.add(0L); |
| | | tCharingOrderVO.setList(pageInfo); |
| | | return tCharingOrderVO; |
| | | } |
| | | dto.setUserIds(data); |
| | | } |
| | | PageInfo<ChargingOrderVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize()); |
| | | List<ChargingOrderVO> list = this.baseMapper.chargingOrder(pageInfo,dto,startTime1,startTime2,endTime1,endTime2); |
| | | |
| | | BigDecimal total = new BigDecimal("0"); |
| | | long time = 0L; |
| | | BigDecimal income = new BigDecimal("0"); |
| | | BigDecimal electronicMoney = new BigDecimal("0"); |
| | | BigDecimal serviceMoney = new BigDecimal("0"); |
| | | for (ChargingOrderVO chargingOrderVO : list) { |
| | | total = total.add(chargingOrderVO.getChargingCapacity()); |
| | | // 充电订单 明细记录 |
| | | List<TChargingOrderAccountingStrategy> chargingOrderId = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>() |
| | | .eq("charging_order_id", chargingOrderVO.getId())); |
| | | // 单个订单累计电费 |
| | | BigDecimal electronicMoney1 = new BigDecimal("0"); |
| | | // 单个订单累计服务费 |
| | | BigDecimal serviceMoney1 = new BigDecimal("0"); |
| | | LocalDateTime startTime = chargingOrderVO.getStartTime(); |
| | | LocalDateTime endTime = chargingOrderVO.getEndTime(); |
| | | // 计算时间差 秒 充电时长 |
| | | long between = ChronoUnit.SECONDS.between(startTime, endTime); |
| | | chargingOrderVO.setChargingSecond(between); |
| | | time += between; |
| | | // 总收入 |
| | | if (chargingOrderVO.getRefundStatus() == 2){ |
| | | income = income.add(chargingOrderVO.getPaymentAmount().subtract(chargingOrderVO.getRefundAmount())); |
| | | }else{ |
| | | income = income.add(chargingOrderVO.getPaymentAmount()); |
| | | } |
| | | for (TChargingOrderAccountingStrategy tChargingOrderAccountingStrategy : chargingOrderId) { |
| | | // 累计电费 |
| | | electronicMoney1 = electronicMoney1.add(tChargingOrderAccountingStrategy.getElectrovalence() |
| | | .multiply(tChargingOrderAccountingStrategy.getChargingCapacity())); |
| | | electronicMoney = electronicMoney.add(electronicMoney1); |
| | | // 累计服务费 |
| | | serviceMoney1 = serviceMoney1.add(tChargingOrderAccountingStrategy.getServiceCharge()); |
| | | serviceMoney = serviceMoney.add(serviceMoney1); |
| | | } |
| | | chargingOrderVO.setServiceCharge(serviceMoney1); |
| | | chargingOrderVO.setElectrovalence(electronicMoney1); |
| | | // 充电时段数 |
| | | int size = chargingOrderId.size(); |
| | | chargingOrderVO.setCount(size); |
| | | // 用户手机号 |
| | | TAppUser data = appUserClient.getUserById(chargingOrderVO.getAppUserId()).getData(); |
| | | if (data!=null){ |
| | | // 车牌号 |
| | | chargingOrderVO.setPhone(data.getPhone()); |
| | | List<Long> longs = new ArrayList<>(); |
| | | longs.add(chargingOrderVO.getAppUserCarId()); |
| | | List<TAppUserCar> data1 = appUserCarClient.getCarByIds(longs).getData(); |
| | | if (!data1.isEmpty()){ |
| | | chargingOrderVO.setLicensePlate(data1.get(0).getLicensePlate()); |
| | | } |
| | | } |
| | | } |
| | | tCharingOrderVO.setTotal(total); |
| | | tCharingOrderVO.setTime(time); |
| | | tCharingOrderVO.setIncome(income); |
| | | tCharingOrderVO.setElectronicMoney(electronicMoney); |
| | | tCharingOrderVO.setServiceMoney(serviceMoney); |
| | | pageInfo.setRecords(list); |
| | | tCharingOrderVO.setList(pageInfo); |
| | | return tCharingOrderVO; |
| | |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.account.api.feignClient.AppUserAddressClient; |
| | | import com.ruoyi.account.api.model.TAppUserAddress; |
| | | import com.ruoyi.common.core.web.page.PageInfo; |
| | | import com.ruoyi.common.security.service.TokenService; |
| | | import com.ruoyi.order.api.model.TExchangeOrder; |
| | | import com.ruoyi.order.api.model.TShoppingOrder; |
| | | import com.ruoyi.order.api.query.ShoppingOrderQuery; |
| | | import com.ruoyi.order.dto.ExchangeOrderGoodsInfo; |
| | | import com.ruoyi.order.dto.GetMyExchangeOrder; |
| | | import com.ruoyi.order.dto.MyExchangeOrderList; |
| | |
| | | import com.ruoyi.other.api.feignClient.GoodsClient; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.StringUtils; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.time.format.DateTimeFormatter; |
| | |
| | | info.setFinishTime(exchangeOrder.getReceivingTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); |
| | | return info; |
| | | } |
| | | |
| | | @Override |
| | | public PageInfo<TExchangeOrder> pageList(ShoppingOrderQuery query) { |
| | | String startTime1 = null; |
| | | String startTime2 = null; |
| | | |
| | | |
| | | if (StringUtils.hasLength(query.getStartTime())){ |
| | | String[] split = query.getStartTime().split(" - "); |
| | | startTime1 = split[0]; |
| | | startTime2 = split[1]; |
| | | } |
| | | PageInfo<TExchangeOrder> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize()); |
| | | List<TExchangeOrder> list = this.baseMapper.pageList(pageInfo,query,startTime1,startTime2); |
| | | |
| | | pageInfo.setRecords(list); |
| | | return pageInfo; |
| | | } |
| | | } |
| | |
| | | import com.ruoyi.common.security.service.TokenService; |
| | | import com.ruoyi.order.api.model.TExchangeOrder; |
| | | import com.ruoyi.order.api.model.TShoppingOrder; |
| | | import com.ruoyi.order.api.query.ShoppingOrderQuery; |
| | | import com.ruoyi.order.api.query.TActivityStatisticsQuery; |
| | | import com.ruoyi.order.api.vo.ChargingOrderVO; |
| | | import com.ruoyi.order.api.vo.TActivityStatisticslVO; |
| | | import com.ruoyi.order.api.vo.TActivityVO; |
| | | import com.ruoyi.order.dto.*; |
| | |
| | | import com.ruoyi.other.api.feignClient.CouponClient; |
| | | import com.ruoyi.other.api.feignClient.GoodsClient; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.StringUtils; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | |
| | | appCouponClient.grantCoupon(grantCouponDto); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public PageInfo<TShoppingOrder> pageList(ShoppingOrderQuery query) { |
| | | String startTime1 = null; |
| | | String startTime2 = null; |
| | | |
| | | |
| | | if (StringUtils.hasLength(query.getStartTime())){ |
| | | String[] split = query.getStartTime().split(" - "); |
| | | startTime1 = split[0]; |
| | | startTime2 = split[1]; |
| | | } |
| | | PageInfo<TShoppingOrder> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize()); |
| | | List<TShoppingOrder> list = this.baseMapper.pageList(pageInfo,query,startTime1,startTime2); |
| | | |
| | | pageInfo.setRecords(list); |
| | | return pageInfo; |
| | | } |
| | | } |
| | |
| | | package com.ruoyi.order.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.common.core.web.page.PageInfo; |
| | | import com.ruoyi.order.api.model.TShoppingOrder; |
| | | import com.ruoyi.order.api.model.TVipOrder; |
| | | import com.ruoyi.order.api.query.VipShoppingOrderQuery; |
| | | import com.ruoyi.order.mapper.TVipOrderMapper; |
| | | import com.ruoyi.order.service.TVipOrderService; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.StringUtils; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | @Service |
| | | public class TVipOrderServiceImpl extends ServiceImpl<TVipOrderMapper, TVipOrder> implements TVipOrderService { |
| | | |
| | | @Override |
| | | public PageInfo<TVipOrder> pageList(VipShoppingOrderQuery query) { |
| | | String startTime1 = null; |
| | | String startTime2 = null; |
| | | |
| | | |
| | | if (StringUtils.hasLength(query.getStartTime())){ |
| | | String[] split = query.getStartTime().split(" - "); |
| | | startTime1 = split[0]; |
| | | startTime2 = split[1]; |
| | | } |
| | | PageInfo<TVipOrder> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize()); |
| | | List<TVipOrder> list = this.baseMapper.pageList(pageInfo,query,startTime1,startTime2); |
| | | |
| | | pageInfo.setRecords(list); |
| | | return pageInfo; |
| | | } |
| | | } |
| | |
| | | <sql id="Base_Column_List"> |
| | | id, code, app_user_id, order_type, goods_id, coupon_id, purchase_quantity, app_user_address_id, points, remark, status, express_company, express_number, consigner_id, consigner_time, receiving_time, cancellation_time, cancellation_id, create_time, del_flag |
| | | </sql> |
| | | <select id="pageList" resultType="com.ruoyi.order.api.model.TExchangeOrder"> |
| | | select t1.* |
| | | from t_exchange_order t1 |
| | | where 1=1 |
| | | <if test="null != req.code and req.code!=''"> |
| | | and t1.code LIKE CONCAT('%',#{req.code},'%') |
| | | </if> |
| | | <if test="null != req.userIds and req.userIds.size()>0" > |
| | | and t1.app_user_id in |
| | | <foreach collection="req.userIds" item="item" index="index" separator="," open="(" close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </if> |
| | | <if test="null != req.couponIds and req.couponIds.size()>0 or null != req.couponIds and req.couponIds.size()>0" > |
| | | and (t1.goods_id in |
| | | <foreach collection="req.goodsIds" item="item" index="index" separator="," open="(" close=")"> |
| | | #{item} |
| | | </foreach> |
| | | or |
| | | and t1.coupon_id in |
| | | <foreach collection="req.couponIds" item="item" index="index" separator="," open="(" close=")"> |
| | | #{item} |
| | | </foreach> |
| | | ) |
| | | </if> |
| | | <if test="startTime1 != null and startTime1!=''"> |
| | | and (t1.create_time between #{startTime1} and #{startTime2} |
| | | </if> |
| | | AND t1.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | </if> |
| | | and t1.recharge_payment_status =2 |
| | | and t1.refund_status !=2 |
| | | AND t1.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} |
| | | </if> |
| | | </if> |
| | | <if test="req.orderType == null or req.orderType == 2"> |
| | |
| | | </if> |
| | | and t2.refund_status !=2 |
| | | and t2.payment_status =2 |
| | | AND t2.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} |
| | | </if> |
| | | </if> |
| | | <if test="req.orderType == null or req.orderType == 3"> |
| | |
| | | AND (t3.create_time between CONCAT(#{req.startTime},':00') and CONCAT(#{req.endTime},':59')) |
| | | </if> |
| | | and t3.payment_status =2 |
| | | AND t3.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} |
| | | </if> |
| | | </if> |
| | | <if test="req.orderType == null or req.orderType == 4"> |
| | |
| | | AND (t4.create_time between CONCAT(#{req.startTime},':00') and CONCAT(#{req.endTime},':59')) |
| | | </if> |
| | | and t4.payment_status =2 |
| | | AND t4.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} |
| | | </if> |
| | | </if> |
| | | <if test="req.orderType == null or req.orderType == 4"> |
| | |
| | | <if test="req.endTime != null and req.endTime != '' and req.startTime != null and req.startTime != ''"> |
| | | AND (t5.create_time between CONCAT(#{req.startTime},':00') and CONCAT(#{req.endTime},':59')) |
| | | </if> |
| | | AND t5.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} |
| | | |
| | | </if> |
| | | </if> |
| | | </select> |
| | |
| | | limit #{pageCurr}, #{pageSize} |
| | | </if> |
| | | </select> |
| | | <select id="pageList" resultType="com.ruoyi.order.api.model.TShoppingOrder"> |
| | | select t1.* |
| | | from t_shopping_order t1 |
| | | where 1=1 |
| | | <if test="null != req.code and req.code!=''"> |
| | | and t1.code LIKE CONCAT('%',#{req.code},'%') |
| | | </if> |
| | | <if test="null != req.userIds and req.userIds.size()>0" > |
| | | and t1.app_user_id in |
| | | <foreach collection="req.userIds" item="item" index="index" separator="," open="(" close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </if> |
| | | |
| | | <if test="null != req.couponIds and req.couponIds.size()>0 or null != req.couponIds and req.couponIds.size()>0" > |
| | | and (t1.goods_id in |
| | | <foreach collection="req.goodsIds" item="item" index="index" separator="," open="(" close=")"> |
| | | #{item} |
| | | </foreach> |
| | | or |
| | | and t1.coupon_id in |
| | | <foreach collection="req.couponIds" item="item" index="index" separator="," open="(" close=")"> |
| | | #{item} |
| | | </foreach> |
| | | ) |
| | | </if> |
| | | <if test="startTime1 != null and startTime1!=''"> |
| | | and (t1.create_time between #{startTime1} and #{startTime2} |
| | | </if> |
| | | and t1.payment_status = 2 |
| | | AND t1.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} |
| | | </select> |
| | | </mapper> |
| | |
| | | <sql id="Base_Column_List"> |
| | | id, code, app_user_id, `type`, vip_id, vip_type, order_amount, discount, discount_amount, payment_amount, payment_status, payment_type, serial_number, create_time, del_flag |
| | | </sql> |
| | | <select id="pageList" resultType="com.ruoyi.order.api.model.TVipOrder"> |
| | | select t1.* from |
| | | t_vip_order t1 |
| | | where 1=1 |
| | | <if test="null != req.userIds and req.userIds.size()>0" > |
| | | and t1.app_user_id in |
| | | <foreach collection="req.userIds" item="item" index="index" separator="," open="(" close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </if> |
| | | <if test="req.vipType != null "> |
| | | and t1.vip_type = #{req.vipType} |
| | | </if> |
| | | <if test="req.vipId != null "> |
| | | and t1.vip_id = #{req.vipId} |
| | | </if> |
| | | <if test="startTime1 != null and startTime1!=''"> |
| | | and (t1.create_time between #{startTime1} and #{startTime2} |
| | | </if> |
| | | AND t1.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | @Autowired |
| | | private AppCouponClient appCouponClient; |
| | | |
| | | |
| | | /** |
| | | * 远程调用 根据名称 查询优惠券ids |
| | | * @return |
| | | */ |
| | | @PostMapping("/getCouponIdsByName/{name}") |
| | | public R<List<Integer>> getCouponIdsByName(@PathVariable("name")String name) { |
| | | List<Integer> collect = tCouponService.list(new QueryWrapper<TCoupon>() |
| | | .eq("name", name)).stream().map(TCoupon::getId).collect(Collectors.toList()); |
| | | return R.ok(collect); |
| | | } |
| | | @PostMapping("/saveGoods") |
| | | @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券添加") |
| | | public AjaxResult saveActivity(@RequestBody TCoupon dto) { |
| | |
| | | |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.ruoyi.account.api.dto.GrantCouponDto; |
| | | import com.ruoyi.account.api.feignClient.AppCouponClient; |
| | | import com.ruoyi.account.api.feignClient.AppUserClient; |
| | |
| | | import javax.annotation.Resource; |
| | | import javax.swing.*; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | private WxPaymentClient wxPaymentClient; |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 远程调用 根据商品名称查询商品ids |
| | | * @param name |
| | | * @return |
| | | */ |
| | | @PostMapping("/getGoodsIdsByName/{name}") |
| | | public R<List<Integer>> getGoodsIdsByName(@PathVariable("name")String name) { |
| | | List<Integer> collect = goodsService.list(new QueryWrapper<TGoods>() |
| | | .like("name", name)).stream().map(TGoods::getId).collect(Collectors.toList()); |
| | | return R.ok(collect); |
| | | } |
| | | |
| | | @PostMapping("/saveGoods") |
| | | @ApiOperation(tags = {"管理后台-商品管理"},value = "商品添加") |
| | |
| | | import com.ruoyi.common.core.web.domain.AjaxResult; |
| | | import com.ruoyi.other.api.domain.THtml; |
| | | import com.ruoyi.other.api.domain.TIntegralRule; |
| | | import com.ruoyi.other.api.dto.SaveHtml; |
| | | import com.ruoyi.other.service.THtmlService; |
| | | import com.ruoyi.other.service.TIntegralRuleService; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | |
| | | return R.ok(res); |
| | | } |
| | | |
| | | |
| | | |
| | | @PostMapping("/saveSet") |
| | | @ApiOperation(tags = {"管理后台-积分管理"},value = "保存积分设置") |
| | | public R saveSet(@RequestBody TIntegralRule dto) { |
| | | // JSONObject jsonObject = JSONObject.parseObject(dto); |
| | | // String chargeCredit = jsonObject.getString("chargeCredit"); |
| | | // String credit = jsonObject.getString("credit"); |
| | | // String inviteUsersToEarnPoints = jsonObject.getString("inviteUsersToEarnPoints"); |
| | | // String addVehiclesEarnsPoints = jsonObject.getString("addVehiclesEarnsPoints"); |
| | | // String signInForPoints = jsonObject.getString("signInForPoints"); |
| | | // TIntegralRule tIntegralRule = new TIntegralRule(); |
| | | // tIntegralRule.setAddVehiclesEarnsPoints(signInForPoints); |
| | | // tIntegralRule.setChargeCredit(chargeCredit); |
| | | // tIntegralRule.setCredit(credit); |
| | | // tIntegralRule.setSignInForPoints(addVehiclesEarnsPoints); |
| | | // tIntegralRule.setInviteUsersToEarnPoints(inviteUsersToEarnPoints); |
| | | // TIntegralRule one = integralRuleService.getOne(null); |
| | | // if (one!=null){ |
| | | // one.setAddVehiclesEarnsPoints(signInForPoints); |
| | | // one.setChargeCredit(chargeCredit); |
| | | // one.setCredit(credit); |
| | | // one.setSignInForPoints(addVehiclesEarnsPoints); |
| | | // one.setInviteUsersToEarnPoints(inviteUsersToEarnPoints); |
| | | // integralRuleService.updateById(one); |
| | | // }else{ |
| | | // integralRuleService.save(tIntegralRule); |
| | | // } |
| | | TIntegralRule one = integralRuleService.getOne(null); |
| | | if (one!=null){ |
| | | dto.setId(one.getId()); |
| | |
| | | |
| | | |
| | | |
| | | @GetMapping("/saveInfo") |
| | | @PostMapping("/saveInfo") |
| | | @ApiOperation(tags = {"管理后台-积分管理"},value = "保存积分说明") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "info", value = "内容", required = true), |
| | | @ApiImplicitParam(name = "type", value = "type 1=积分规则说明,\" +\n" + |
| | | " \"2=会员折扣说明,\" +\n" + |
| | | " \"3=优惠券说明,\" +\n" + |
| | | " \"4=双倍积分说明,\" +\n" + |
| | | " \"5=商城专享价说明,\" +\n" + |
| | | " \"6=会员协议,\" +\n" + |
| | | " \"7=用户协议,\" +\n" + |
| | | " \"8=隐私协议,\" +\n" + |
| | | " \"9=邀请好友说明,\" +\n" + |
| | | " \"10=资质证明,\" +\n" + |
| | | " \"11=开票说明\"", required = true), |
| | | |
| | | }) |
| | | public R saveInfo(String info,Integer type) { |
| | | THtml g = htmlService.getOne(new QueryWrapper<THtml>().eq("type",type)); |
| | | public R saveInfo(@RequestBody SaveHtml dto) { |
| | | THtml g = htmlService.getOne(new QueryWrapper<THtml>().eq("type",dto.getType())); |
| | | if (g == null){ |
| | | THtml tHtml = new THtml(); |
| | | tHtml.setType(type); |
| | | tHtml.setContent(info); |
| | | tHtml.setType(dto.getType()); |
| | | tHtml.setContent(dto.getInfo()); |
| | | htmlService.save(tHtml); |
| | | }else{ |
| | | g.setContent(info); |
| | | g.setContent(dto.getInfo()); |
| | | htmlService.updateById(g); |
| | | } |
| | | return R.ok(); |
| | |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.util.List; |
| | | |
| | |
| | | @GetMapping(value = "/list") |
| | | public AjaxResult<List<TNotice>> list() { |
| | | return AjaxResult.success(noticeService.list(Wrappers.lambdaQuery(TNotice.class) |
| | | .ge(TNotice::getStartTime, LocalDateTime.now()) |
| | | .le(TNotice::getEndTime,LocalDateTime.now()))); |
| | | .le(TNotice::getStartTime, LocalDate.now()) |
| | | .ge(TNotice::getEndTime,LocalDate.now()))); |
| | | |
| | | } |
| | | |
| | |
| | | .last("LIMIT 1"))); |
| | | case 2: |
| | | return R.ok(vipService.getOne(Wrappers.lambdaQuery(TVip.class) |
| | | .eq(TVip::getReveal,1) |
| | | .eq(TVip::getReveal,1).eq(TVip::getType,1) |
| | | .orderByAsc(TVip::getMonthlyCard) |
| | | .last("LIMIT 1"))); |
| | | default: |
| | |
| | | import com.ruoyi.account.api.model.TAppUser; |
| | | import com.ruoyi.common.core.constant.TokenConstants; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.core.utils.JwtUtils; |
| | | import com.ruoyi.common.core.utils.StringUtils; |
| | | import com.ruoyi.system.api.domain.SysUser; |
| | | import com.ruoyi.system.api.feignClient.SysUserClient; |
| | | import io.jsonwebtoken.Claims; |
| | | import org.apache.logging.log4j.core.config.Order; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | |
| | | <groupId>com.ruoyi</groupId> |
| | | <artifactId>ruoyi-api-payment</artifactId> |
| | | </dependency> |
| | | |
| | | <dependency> |
| | | <groupId>com.alipay.sdk</groupId> |
| | | <artifactId>alipay-sdk-java</artifactId> |
| | | <version>4.39.186.ALL</version> |
| | | </dependency> |
| | | </dependencies> |
| | | |
| | | <build> |
New file |
| | |
| | | package com.ruoyi.payment.ali.config; |
| | | |
| | | |
| | | import lombok.Data; |
| | | import org.springframework.boot.context.properties.ConfigurationProperties; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2024/8/23 16:08 |
| | | */ |
| | | @Data |
| | | @Component |
| | | @ConfigurationProperties(prefix = "payment.ali") |
| | | public class AliProperties { |
| | | /** |
| | | * appid |
| | | */ |
| | | private String appId; |
| | | /** |
| | | * 加签方式 |
| | | */ |
| | | private String signType; |
| | | /** |
| | | * 开发者私钥,由开发者自己生成 |
| | | */ |
| | | private String privateKey; |
| | | /** |
| | | * 支付宝公钥 |
| | | */ |
| | | private String alipayPublicKey; |
| | | /** |
| | | * 应用公钥证书文件本地路径 |
| | | */ |
| | | private String appCertPath; |
| | | /** |
| | | * 支付宝公钥证书文件本地路径 |
| | | */ |
| | | private String alipayPublicCertPath; |
| | | /** |
| | | * 支付宝根证书文件本地路径 |
| | | */ |
| | | private String rootCertPath; |
| | | /** |
| | | * 回调地址 |
| | | */ |
| | | private String notifyUrl; |
| | | /** |
| | | * V2接口地址 |
| | | */ |
| | | private String v2Path = "https://openapi.alipay.com/gateway.do"; |
| | | |
| | | |
| | | } |
New file |
| | |
| | | package com.ruoyi.payment.ali.config; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2024/8/23 16:22 |
| | | */ |
| | | public enum SignType { |
| | | /** |
| | | * V2版本 |
| | | */ |
| | | RSA2("RSA2"), |
| | | /** |
| | | * V3版本 |
| | | */ |
| | | RSA3("RSA2"), |
| | | /** |
| | | * 秘钥 |
| | | */ |
| | | SECRET_KEY("secret"), |
| | | /** |
| | | * 证书 |
| | | */ |
| | | CERT("cert"); |
| | | |
| | | |
| | | private String type; |
| | | |
| | | public String getType() { |
| | | return type; |
| | | } |
| | | |
| | | public void setType(String type) { |
| | | this.type = type; |
| | | } |
| | | |
| | | SignType(String type) { |
| | | this.type = type; |
| | | } |
| | | } |
New file |
| | |
| | | package com.ruoyi.payment.ali.v2; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alipay.api.AlipayClient; |
| | | import com.alipay.api.AlipayConfig; |
| | | import com.alipay.api.DefaultAlipayClient; |
| | | import com.alipay.api.domain.*; |
| | | import com.alipay.api.request.*; |
| | | import com.alipay.api.response.*; |
| | | import com.ruoyi.payment.ali.config.AliProperties; |
| | | import com.ruoyi.payment.ali.config.SignType; |
| | | import com.ruoyi.payment.ali.v2.model.*; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | |
| | | /** |
| | | * 支付宝小程序支付 |
| | | * @author zhibing.pu |
| | | * @Date 2024/8/23 16:05 |
| | | */ |
| | | @Component |
| | | public class AppletPayUtil { |
| | | private static Logger log = LoggerFactory.getLogger(AppletPayUtil.class); |
| | | |
| | | @Resource |
| | | private AliProperties aliProperties; |
| | | |
| | | |
| | | /** |
| | | * 创建统一收单交易 |
| | | * @param pojo |
| | | */ |
| | | public PaymentResp payment(PaymentReq pojo){ |
| | | try { |
| | | // 初始化SDK |
| | | AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig()); |
| | | // 构造请求参数以调用接口 |
| | | AlipayTradeCreateRequest request = new AlipayTradeCreateRequest(); |
| | | AlipayTradeCreateModel model = new AlipayTradeCreateModel(); |
| | | // 设置商户订单号 |
| | | model.setOutTradeNo(pojo.getOutTradeNo()); |
| | | // 设置产品码 |
| | | model.setProductCode("JSAPI_PAY"); |
| | | // 设置小程序支付中 |
| | | model.setOpAppId(aliProperties.getAppId()); |
| | | // 设置订单总金额 |
| | | model.setTotalAmount(pojo.getTotalAmount()); |
| | | // 设置订单标题 |
| | | model.setSubject(pojo.getSubject()); |
| | | // 设置订单附加信息 |
| | | model.setBody(pojo.getBody()); |
| | | // 设置买家支付宝用户唯一标识 |
| | | model.setBuyerOpenId(pojo.getBuyerOpenId()); |
| | | //超时相对时间 |
| | | model.setTimeoutExpress(pojo.getTimeoutExpress()); |
| | | //异步返回参数 |
| | | model.setPassbackParams(pojo.getPassbackParams()); |
| | | request.setBizModel(model); |
| | | |
| | | AlipayTradeCreateResponse response = alipayClient.execute(request); |
| | | log.info("-----调起支付宝支付-----"); |
| | | log.info("请求参数:{}", pojo); |
| | | log.info("返回结果:{}", response.getBody()); |
| | | if (response.isSuccess()) { |
| | | return PaymentResp.build(response.getOutTradeNo(), response.getTradeNo()); |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 查询支付订单 |
| | | * @param outTradeNo 业务流水号 |
| | | * @return |
| | | */ |
| | | public QueryResp query(String outTradeNo){ |
| | | try { |
| | | // 初始化SDK |
| | | AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig()); |
| | | // 构造请求参数以调用接口 |
| | | AlipayTradeQueryRequest request = new AlipayTradeQueryRequest(); |
| | | AlipayTradeQueryModel model = new AlipayTradeQueryModel(); |
| | | // 设置订单支付时传入的商户订单号 |
| | | model.setOutTradeNo(outTradeNo); |
| | | request.setBizModel(model); |
| | | AlipayTradeQueryResponse response = alipayClient.execute(request); |
| | | log.info("-----查询支付宝支付-----"); |
| | | log.info("请求参数:{}", outTradeNo); |
| | | log.info("返回结果:{}", response.getBody()); |
| | | if (response.isSuccess()) { |
| | | return JSON.parseObject(response.getBody(), QueryResp.class); |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 交易退款 |
| | | * @param req |
| | | * @return |
| | | */ |
| | | public RefundResp refund(RefundReq req){ |
| | | try { |
| | | // 初始化SDK |
| | | AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig()); |
| | | // 构造请求参数以调用接口 |
| | | AlipayTradeRefundRequest request = new AlipayTradeRefundRequest(); |
| | | AlipayTradeRefundModel model = new AlipayTradeRefundModel(); |
| | | // 设置商户订单号 |
| | | model.setOutTradeNo(req.getOutTradeNo()); |
| | | // 设置退款商户订单号 |
| | | model.setOutRequestNo(req.getOutRequestNo()); |
| | | // 设置退款金额 |
| | | model.setRefundAmount(req.getRefundAmount()); |
| | | // 设置退款原因说明 |
| | | model.setRefundReason(req.getRefundReason()); |
| | | request.setBizModel(model); |
| | | AlipayTradeRefundResponse response = alipayClient.execute(request); |
| | | log.info("-----支付宝退款-----"); |
| | | log.info("请求参数:{}", req); |
| | | log.info("返回结果:{}", response.getBody()); |
| | | if (response.isSuccess()) { |
| | | return JSON.parseObject(response.getBody(), RefundResp.class); |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 退款查询 |
| | | * @param req |
| | | * @return |
| | | */ |
| | | public QueryRefundResp queryRefund(QueryRefundReq req){ |
| | | try { |
| | | // 初始化SDK |
| | | AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig()); |
| | | // 构造请求参数以调用接口 |
| | | AlipayTradeFastpayRefundQueryRequest request = new AlipayTradeFastpayRefundQueryRequest(); |
| | | AlipayTradeFastpayRefundQueryModel model = new AlipayTradeFastpayRefundQueryModel(); |
| | | // 设置商户订单号 |
| | | model.setOutTradeNo(req.getOutTradeNo()); |
| | | model.setOutRequestNo(req.getOutRequestNo()); |
| | | request.setBizModel(model); |
| | | AlipayTradeFastpayRefundQueryResponse response = alipayClient.execute(request); |
| | | log.info("-----查询支付宝退款-----"); |
| | | log.info("请求参数:{}", req); |
| | | log.info("返回结果:{}", response.getBody()); |
| | | if (response.isSuccess()) { |
| | | return JSON.parseObject(response.getBody(), QueryRefundResp.class); |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 支付宝关闭订单 |
| | | * @param outTradeNo 业务流水号 |
| | | * @return |
| | | */ |
| | | public boolean close(String outTradeNo){ |
| | | try { |
| | | AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig()); |
| | | AlipayTradeCloseRequest request = new AlipayTradeCloseRequest(); |
| | | AlipayTradeCloseModel model = new AlipayTradeCloseModel(); |
| | | model.setOutTradeNo(outTradeNo); |
| | | request.setBizModel(model); |
| | | AlipayTradeCloseResponse response = alipayClient.execute(request); |
| | | log.info("-----关闭支付宝支付订单-----"); |
| | | log.info("请求参数:{}", outTradeNo); |
| | | log.info("返回结果:{}", response.getBody()); |
| | | if(response.isSuccess()){ |
| | | return true; |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 构建配置数据 |
| | | * @return |
| | | */ |
| | | private AlipayConfig getAlipayConfig() throws Exception { |
| | | AlipayConfig alipayConfig = new AlipayConfig(); |
| | | alipayConfig.setServerUrl(aliProperties.getV2Path()); |
| | | alipayConfig.setAppId(aliProperties.getAppId()); |
| | | alipayConfig.setFormat("json"); |
| | | alipayConfig.setCharset("UTF-8"); |
| | | alipayConfig.setSignType(SignType.RSA2.getType()); |
| | | //判断加签方式 |
| | | String signType = aliProperties.getSignType(); |
| | | if(SignType.CERT.getType().equals(signType)){ |
| | | alipayConfig.setPrivateKey(aliProperties.getPrivateKey()); |
| | | alipayConfig.setAlipayPublicKey(aliProperties.getAlipayPublicKey()); |
| | | return alipayConfig; |
| | | } |
| | | if(SignType.SECRET_KEY.getType().equals(signType)){ |
| | | alipayConfig.setAppCertPath(aliProperties.getAppCertPath()); |
| | | alipayConfig.setAlipayPublicCertPath(aliProperties.getAlipayPublicCertPath()); |
| | | alipayConfig.setRootCertPath(aliProperties.getRootCertPath()); |
| | | return alipayConfig; |
| | | } |
| | | throw new RuntimeException("构建配置失败"); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
New file |
| | |
| | | package com.ruoyi.payment.ali.v2.model; |
| | | |
| | | import lombok.Data; |
| | | |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2024/8/23 16:52 |
| | | */ |
| | | @Data |
| | | public class PaymentReq { |
| | | /** |
| | | * 业务流水号 |
| | | */ |
| | | private String outTradeNo; |
| | | /** |
| | | * 支付总金额 |
| | | */ |
| | | private String totalAmount; |
| | | /** |
| | | * 订单标题 |
| | | */ |
| | | private String subject; |
| | | /** |
| | | * 支付用户支付宝openid |
| | | */ |
| | | private String buyerOpenId; |
| | | /** |
| | | * 订单附加信息 |
| | | */ |
| | | private String body; |
| | | /** |
| | | * 订单超时时间 |
| | | * 订单相对超时时间。从交易创建时间开始计算。 |
| | | * 该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m。 |
| | | * 当面付场景默认值为3h |
| | | */ |
| | | private String timeoutExpress; |
| | | /** |
| | | * 回传参数 |
| | | * 如果请求时传递了该参数,支付宝会在异步通知时将该参数原样返回。 |
| | | */ |
| | | private String passbackParams; |
| | | |
| | | /** |
| | | * 初始化默认数据 |
| | | */ |
| | | public PaymentReq() { |
| | | //订单超时默认30分钟 |
| | | this.timeoutExpress = "30m"; |
| | | } |
| | | } |
New file |
| | |
| | | package com.ruoyi.payment.ali.v2.model; |
| | | |
| | | import lombok.Data; |
| | | |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2024/8/23 16:52 |
| | | */ |
| | | @Data |
| | | public class PaymentResp { |
| | | /** |
| | | * 业务流水号 |
| | | */ |
| | | private String outTradeNo; |
| | | /** |
| | | * 支付宝交易号 |
| | | */ |
| | | private String tradeNo; |
| | | |
| | | private PaymentResp(String outTradeNo, String tradeNo) { |
| | | this.outTradeNo = outTradeNo; |
| | | this.tradeNo = tradeNo; |
| | | } |
| | | |
| | | public static PaymentResp build(String outTradeNo, String tradeNo){ |
| | | PaymentResp info = new PaymentResp(outTradeNo, tradeNo); |
| | | return info; |
| | | } |
| | | } |
New file |
| | |
| | | package com.ruoyi.payment.ali.v2.model; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2024/8/24 14:00 |
| | | */ |
| | | @Data |
| | | public class QueryRefundReq { |
| | | /** |
| | | * 支付业务流水号 |
| | | */ |
| | | private String outTradeNo; |
| | | /** |
| | | * 退款业务流水号 |
| | | */ |
| | | private String outRequestNo; |
| | | } |
New file |
| | |
| | | package com.ruoyi.payment.ali.v2.model; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonSetter; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2024/8/24 13:58 |
| | | */ |
| | | @Data |
| | | public class QueryRefundResp { |
| | | /** |
| | | * 支付宝交易号 |
| | | */ |
| | | @JsonSetter("trade_no") |
| | | private String tradeNo; |
| | | /** |
| | | * 支付业务流水号 |
| | | */ |
| | | @JsonSetter("out_trade_no") |
| | | private String outTradeNo; |
| | | /** |
| | | * 退款业务流水号 |
| | | */ |
| | | @JsonSetter("out_request_no") |
| | | private String outRequestNo; |
| | | /** |
| | | * 交易金额 |
| | | */ |
| | | @JsonSetter("total_amount") |
| | | private Double totalAmount; |
| | | /** |
| | | * 本次退款金额 |
| | | */ |
| | | @JsonSetter("refund_amount") |
| | | private Double refundAmount; |
| | | /** |
| | | * 退款状态 |
| | | * REFUND_SUCCESS 退款处理成功; 未返回该字段表示退款请求未收到或者退款失败; 注:如果退款查询发起时间早于退款时间,或者间隔退款发起时间太短,可能出现退款查询时还没处理成功,后面又处理成功的情况,建议商户在退款发起后间隔10秒以上再发起退款查询请求。 |
| | | */ |
| | | @JsonSetter("refund_status") |
| | | private String refundStatus; |
| | | } |
New file |
| | |
| | | package com.ruoyi.payment.ali.v2.model; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonSetter; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2024/8/24 12:01 |
| | | */ |
| | | @Data |
| | | public class QueryResp { |
| | | /** |
| | | * 支付宝交易号 |
| | | */ |
| | | @JsonSetter("trade_no") |
| | | private String tradeNo; |
| | | /** |
| | | * 业务流水号 |
| | | */ |
| | | @JsonSetter("out_trade_no") |
| | | private String outTradeNo; |
| | | /** |
| | | * 交易状态 |
| | | * WAIT_BUYER_PAY(交易创建,等待买家付款)、TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、TRADE_SUCCESS(交易支付成功)、TRADE_FINISHED(交易结束,不可退款) |
| | | */ |
| | | @JsonSetter("trade_status") |
| | | private String tradeStatus; |
| | | /** |
| | | * 交易订单金额 |
| | | */ |
| | | @JsonSetter("total_amount") |
| | | private Double totalAmount; |
| | | /** |
| | | * 回传参数 |
| | | */ |
| | | @JsonSetter("passback_params") |
| | | private String passbackParams; |
| | | /** |
| | | * 订单标题 |
| | | */ |
| | | @JsonSetter("subject") |
| | | private String subject; |
| | | /** |
| | | * 订单描述 |
| | | */ |
| | | @JsonSetter("body") |
| | | private String body; |
| | | } |
New file |
| | |
| | | package com.ruoyi.payment.ali.v2.model; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2024/8/24 13:47 |
| | | */ |
| | | @Data |
| | | public class RefundReq { |
| | | /** |
| | | * 支付业务流水号 |
| | | */ |
| | | private String outTradeNo; |
| | | /** |
| | | * 退款业务流水号 |
| | | */ |
| | | private String outRequestNo; |
| | | /** |
| | | * 退款金额 |
| | | */ |
| | | private String refundAmount; |
| | | /** |
| | | * 退款原因 |
| | | */ |
| | | private String refundReason; |
| | | } |
New file |
| | |
| | | package com.ruoyi.payment.ali.v2.model; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonSetter; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2024/8/24 13:50 |
| | | */ |
| | | @Data |
| | | public class RefundResp { |
| | | /** |
| | | * 支付宝交易号 |
| | | */ |
| | | @JsonSetter("trade_no") |
| | | private String tradeNo; |
| | | /** |
| | | * 业务流水号 |
| | | */ |
| | | @JsonSetter("out_trade_no") |
| | | private String outTradeNo; |
| | | /** |
| | | * 退款金额 |
| | | */ |
| | | @JsonSetter("refund_fee") |
| | | private Double refundFee; |
| | | } |
New file |
| | |
| | | package com.ruoyi.payment.controller; |
| | | |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.payment.ali.config.AliProperties; |
| | | import com.ruoyi.payment.ali.v2.AppletPayUtil; |
| | | import com.ruoyi.payment.ali.v2.model.PaymentReq; |
| | | import com.ruoyi.payment.ali.v2.model.PaymentResp; |
| | | import com.ruoyi.payment.ali.v2.model.QueryResp; |
| | | import com.ruoyi.payment.api.vo.AliPaymentReq; |
| | | import com.ruoyi.payment.api.vo.AliPaymentResp; |
| | | import com.ruoyi.payment.api.vo.AliQueryOrder; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2024/8/24 14:29 |
| | | */ |
| | | @RestController |
| | | @RequestMapping("/ali") |
| | | public class AliPayController { |
| | | |
| | | @Resource |
| | | private AppletPayUtil appletPayUtil; |
| | | |
| | | @Resource |
| | | private AliProperties aliProperties; |
| | | |
| | | |
| | | /** |
| | | * 调起支付宝小程序支付 |
| | | * @param req |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/payment") |
| | | public R<AliPaymentResp> payment(@RequestBody AliPaymentReq req){ |
| | | PaymentReq pojo = new PaymentReq(); |
| | | BeanUtils.copyProperties(req, pojo); |
| | | PaymentResp payment = appletPayUtil.payment(pojo); |
| | | if(null != payment){ |
| | | AliPaymentResp aliPaymentResp = new AliPaymentResp(); |
| | | aliPaymentResp.setTradeNo(payment.getTradeNo()); |
| | | aliPaymentResp.setNotifyUrl(aliProperties.getNotifyUrl()); |
| | | return R.ok(aliPaymentResp); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | /** |
| | | * 查询订单 |
| | | * @param outTradeNo |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/query") |
| | | public R<AliQueryOrder> query(@RequestParam("outTradeNo") String outTradeNo){ |
| | | QueryResp query = appletPayUtil.query(outTradeNo); |
| | | if(null != query){ |
| | | AliQueryOrder aliQueryOrder = new AliQueryOrder(); |
| | | BeanUtils.copyProperties(query, aliQueryOrder); |
| | | return R.ok(aliQueryOrder); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | /** |
| | | * 关闭订单 |
| | | * @param outTradeNo |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/close") |
| | | public void close(@RequestParam("outTradeNo") String outTradeNo){ |
| | | boolean close = appletPayUtil.close(outTradeNo); |
| | | if(!close){ |
| | | throw new RuntimeException("关闭支付宝订单失败"); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
File was renamed from ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/wx/controller/WxPayController.java |
| | |
| | | package com.ruoyi.payment.wx.controller; |
| | | package com.ruoyi.payment.controller; |
| | | |
| | | import com.fasterxml.jackson.core.type.TypeReference; |
| | | import com.ruoyi.common.core.domain.R; |
| | |
| | | * |
| | | * @author lihen |
| | | */ |
| | | @ConditionalOnProperty(name = "wx.conf.enabled") |
| | | @Configuration |
| | | public class WxConfig { |
| | | |
| | |
| | | */ |
| | | @ToString |
| | | @Component |
| | | @ConfigurationProperties(prefix = "wx.conf") |
| | | @Data |
| | | @ConfigurationProperties(prefix = "payment.wx") |
| | | public class WeixinProperties { |
| | | /** |
| | | * 默认开启 |