From e1399ade3e27ef74ed58d56dbbb2bf77604ff5af Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 28 四月 2025 12:41:27 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 67 ++++++++++++++++++++++
ruoyi-service/ruoyi-jianguan/pom.xml | 11 ---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java | 4 +
ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/RuoYiJianGuanApplication.java | 7 +-
ruoyi-service/ruoyi-jianguan/src/main/resources/bootstrap.yml | 71 +----------------------
ruoyi-service/ruoyi-jianguan/src/main/resources/logback.xml | 2
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java | 13 ++++
7 files changed, 92 insertions(+), 83 deletions(-)
diff --git a/ruoyi-service/ruoyi-jianguan/pom.xml b/ruoyi-service/ruoyi-jianguan/pom.xml
index 2a4bd64..71d6251 100644
--- a/ruoyi-service/ruoyi-jianguan/pom.xml
+++ b/ruoyi-service/ruoyi-jianguan/pom.xml
@@ -37,11 +37,6 @@
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
- <dependency>
- <groupId>com.alibaba.cloud</groupId>
- <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
- </dependency>
-
<!-- SpringBoot Actuator -->
<dependency>
<groupId>org.springframework.boot</groupId>
@@ -140,12 +135,6 @@
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
- </dependency>
-
- <dependency>
- <groupId>com.huaweicloud.sdk</groupId>
- <artifactId>huaweicloud-sdk-bundle</artifactId>
- <version>3.1.87</version>
</dependency>
<dependency>
diff --git a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/RuoYiJianGuanApplication.java b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/RuoYiJianGuanApplication.java
index c24d86f..d349657 100644
--- a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/RuoYiJianGuanApplication.java
+++ b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/RuoYiJianGuanApplication.java
@@ -1,17 +1,15 @@
package com.ruoyi.jianguan;
-import com.huaweicloud.sdk.thirdparty.okio.Sink;
import com.ruoyi.common.security.annotation.EnableCustomConfig;
import com.ruoyi.common.security.annotation.EnableRyFeignClients;
import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2;
-import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.stream.annotation.EnableBinding;
+import org.springframework.cloud.stream.messaging.Sink;
+import org.springframework.cloud.stream.messaging.Source;
import org.springframework.scheduling.annotation.EnableScheduling;
-import org.springframework.transaction.annotation.EnableTransactionManagement;
-import javax.xml.transform.Source;
/**
* 账户模块
@@ -22,6 +20,7 @@
@EnableRyFeignClients
@SpringBootApplication
@EnableScheduling//开启定时任务
+@EnableBinding({ Source.class, Sink.class })
public class RuoYiJianGuanApplication {
public static void main(String[] args) {
SpringApplication.run(RuoYiJianGuanApplication.class, args);
diff --git a/ruoyi-service/ruoyi-jianguan/src/main/resources/bootstrap.yml b/ruoyi-service/ruoyi-jianguan/src/main/resources/bootstrap.yml
index 2f1ce82..e0d0a05 100644
--- a/ruoyi-service/ruoyi-jianguan/src/main/resources/bootstrap.yml
+++ b/ruoyi-service/ruoyi-jianguan/src/main/resources/bootstrap.yml
@@ -1,5 +1,5 @@
server:
- port: 9701
+ port: 9900
tomcat:
basedir: /data/tomcat
# Spring
@@ -12,8 +12,8 @@
allow-circular-references: true
profiles:
# 环境配置
- active: dev
-# active: prod
+# active: dev
+ active: prod
---
spring:
@@ -43,70 +43,7 @@
# 共享配置
shared-configs:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
----
-seata:
- enabled: true
- application-id: ${spring.application.name}
- tx-service-group: seata_tx_group #此处配置自定义的seata事务分组名称
- enable-auto-data-source-proxy: false #关闭数据库代理
- service:
- vgroup-mapping:
- seata_tx_group: default
- data-source-proxy-mode: AT
- config:
- type: nacos
- nacos:
- # 开发环境
- server-addr: 192.168.110.169:8848
- namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
- group: DEFAULT_GROUP
- data-id: seata-server.properties
- username: nacos
- password: nacos
- # 生产环境
-# server-addr: 192.168.0.137:8848,192.168.0.123:8848
-# namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
-# group: DEFAULT_GROUP
-# data-id: seata-server.properties
-# username: nacos
-# password: nacos
- registry:
- type: nacos
- nacos:
- application: seata-server
- # 开发环境
- server-addr: 192.168.110.169:8848
- namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
- group: DEFAULT_GROUP
- username: nacos
- password: nacos
- # 生产环境
-# server-addr: 192.168.0.137:8848,192.168.0.123:8848
-# namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
-# group: DEFAULT_GROUP
-# username: nacos
-# password: nacos
- cloud:
- nacos:
- discovery:
- # 开发环境
- server-addr: 192.168.110.169:8848 # nacos注册中心地址
- namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
- group: DEFAULT_GROUP
- application: seata-server #Nacos 中 Seata 名称
- username: nacos
- password: nacos
- # 生产环境
-# server-addr: 192.168.0.137:8848,192.168.0.123:8848
-# namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
-# group: DEFAULT_GROUP
-# application: seata-server #Nacos 中 Seata 名称
-# username: nacos
-# password: nacos
- sentinel:
- transport:
- dashboard: 127.0.0.1:8080 # Sentinel控制台地址
- eager: true
+
---
spring:
config:
diff --git a/ruoyi-service/ruoyi-jianguan/src/main/resources/logback.xml b/ruoyi-service/ruoyi-jianguan/src/main/resources/logback.xml
index 535b51c..3ab2ecd 100644
--- a/ruoyi-service/ruoyi-jianguan/src/main/resources/logback.xml
+++ b/ruoyi-service/ruoyi-jianguan/src/main/resources/logback.xml
@@ -7,7 +7,7 @@
<contextName>logback</contextName>
<!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
- <property name="log.path" value="/data/log/app/ruoyi-integration"/>
+ <property name="log.path" value="/data/log/app/ruoyi-jianguan"/>
<!--0. 日志格式和颜色渲染 -->
<!-- 彩色日志依赖的渲染类 -->
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
index e452064..c6549e6 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -862,6 +862,19 @@
/**
+ *
+ * @param code
+ */
+ @ResponseBody
+ @PostMapping(value = "/refund1")
+ public R refund1(@RequestParam(value = "code") String code, @RequestParam(value = "money") BigDecimal money){
+ chargingOrderService.refund1(code, money);
+ return R.ok();
+ }
+
+
+
+ /**
* 远程启动失败后退款回调
*/
@ResponseBody
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
index 475d8a4..509ce4b 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
@@ -108,6 +108,10 @@
* @param code
*/
void refund(String code);
+
+
+
+ void refund1(String code, BigDecimal money);
/**
* 获取充电中的详情
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
index f1501af..5a98a2a 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -972,6 +972,73 @@
}
}
+
+
+
+ public void refund1(String code, BigDecimal money){
+ log.info(code + ":-------------------充电成功,执行手动退款-------------------");
+ TChargingOrder chargingOrder = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getCode, code));
+ if(chargingOrder.getOrderSource() == 1){
+ BigDecimal rechargeAmount = chargingOrder.getRechargeAmount();
+ Integer rechargePaymentType = chargingOrder.getRechargePaymentType();
+ //构建退款明细
+ TChargingOrderRefund chargingOrderRefund = new TChargingOrderRefund();
+ chargingOrderRefund.setChargingOrderId(chargingOrder.getId());
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+ chargingOrderRefund.setRefundCode("CDF" + sdf.format(new Date()) + Double.valueOf(Math.random() * 1000).intValue());
+ chargingOrderRefund.setRefundAmount(money);
+ chargingOrderRefund.setRefundStatus(1);
+ chargingOrderRefund.setPayType(rechargePaymentType);
+ chargingOrderRefund.setRefundStatus(1);
+ chargingOrderRefund.setCode(code);
+ chargingOrderRefund.setRefundTitle("充电完成退款");
+ chargingOrderRefund.setRefundContent("充电完成退款");
+ chargingOrderRefund.setRefundReason("充电完成退款");
+ chargingOrderRefund.setRefundRemark("充电完成退款,手动退款");
+ chargingOrderRefund.setRefundTotalAmount(money);
+ chargingOrderRefund.setPayAmount(money);
+ if(1 == rechargePaymentType){
+ WxPaymentRefundModel model = new WxPaymentRefundModel();
+ model.setOut_trade_no(chargingOrder.getCode());
+ model.setOut_refund_no(chargingOrderRefund.getRefundCode());
+ model.setReason("充电完成退款");
+ model.setNotify_url("/payment/wx/refund/notify");
+ WxPaymentRefundModel.RefundAmount amount = new WxPaymentRefundModel.RefundAmount();
+ amount.setRefund(money.multiply(new BigDecimal(100)).intValue());
+ amount.setTotal(rechargeAmount.multiply(new BigDecimal(100)).intValue());
+ amount.setCurrency("CNY");
+ model.setAmount(amount);
+ R<Map<String, Object>> orderR = wxPaymentClient.refundOrderR(model);
+ if(200 == orderR.getCode()){
+ chargingOrderRefundService.save(chargingOrderRefund);
+ //手续费
+ Map<String, Object> amount1 = (Map<String, Object>) orderR.getData().get("amount");
+ Object refund_fee1 = amount1.get("refund_fee");
+ BigDecimal refund_fee = new BigDecimal(null == refund_fee1 ? "0" : refund_fee1.toString()).divide(new BigDecimal(100));
+ chargingOrderRefund.setRefundFee(refund_fee);
+ chargingOrderRefundService.updateById(chargingOrderRefund);
+ }
+ }
+ if(2 == rechargePaymentType){
+ RefundReq dto = new RefundReq();
+ dto.setOutTradeNo(chargingOrder.getCode());
+ dto.setOutRequestNo(chargingOrderRefund.getCode());
+ dto.setRefundAmount(money.toString());
+ dto.setRefundReason("充电完成退款");
+ RefundResp resp = aliPaymentClient.refund(dto).getData();
+ if(null != resp){
+ chargingOrderRefundService.save(chargingOrderRefund);
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ chargingOrderStartupFailureWxRefund(chargingOrderRefund.getRefundCode(), resp.getTradeNo(), "SUCCESS", null);
+ }
+ }
+
+ }
+ }
/**
--
Gitblit v1.7.1