From 8db855719710fc5e33a51d1f30050c007b38b65d Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 30 九月 2024 14:15:35 +0800
Subject: [PATCH] bug修改

---
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java |    6 +
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WxLoginController.java         |   13 +-
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderInvoice.java                  |    1 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderInvoiceController.java       |    1 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java        |    1 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java      |   75 +++++++++++++++---
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java      |   12 +++
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java    |    2 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/filter/AuthFilter.java                    |   15 +++
 ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java           |    5 +
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TAdvertisingController.java        |   12 ++
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AlipayOpenAppQrcodeCreate.java |   59 ++++++++++++++
 12 files changed, 177 insertions(+), 25 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java
index 294d7b0..011684c 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java
@@ -128,6 +128,12 @@
             public void chargingOrderStartupFailureWxRefund(String out_refund_no, String refund_id, String tradeState, String success_time) {
                 log.error("远程启动失败后退款通知失败:" + throwable.getMessage());
             }
+
+            @Override
+            public void shoppingOrderWxRefund(String out_refund_no, String refund_id, String tradeState, String success_time) {
+                log.error("购物订单退款回调通知失败:" + throwable.getMessage());
+
+            }
         };
     }
 }
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java
index c92882a..1d33c9a 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java
@@ -163,4 +163,16 @@
                                              @RequestParam("out_trade_no") String refund_id,
                                              @RequestParam("out_trade_no") String tradeState,
                                              @RequestParam("out_trade_no") String success_time);
+    /**
+     * 管理后台取消购物订单后退款回调
+     * @param out_refund_no
+     * @param refund_id
+     * @param tradeState
+     * @param success_time
+     */
+    @PostMapping("/t-shopping-order/shoppingOrderWxRefund")
+    void shoppingOrderWxRefund(@RequestParam("out_trade_no") String out_refund_no,
+                                             @RequestParam("out_trade_no") String refund_id,
+                                             @RequestParam("out_trade_no") String tradeState,
+                                             @RequestParam("out_trade_no") String success_time);
 }
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderInvoice.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderInvoice.java
index 5eef671..133959d 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderInvoice.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderInvoice.java
@@ -112,6 +112,7 @@
     
     @ApiModelProperty(value = "添加时间")
     @TableField("create_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private LocalDateTime createTime;
     
     @ApiModelProperty(value = "开票时间")
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AlipayOpenAppQrcodeCreate.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AlipayOpenAppQrcodeCreate.java
new file mode 100644
index 0000000..ee97430
--- /dev/null
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AlipayOpenAppQrcodeCreate.java
@@ -0,0 +1,59 @@
+package com.ruoyi.account.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.alipay.api.AlipayApiException;
+import com.alipay.api.AlipayClient;
+import com.alipay.api.DefaultAlipayClient;
+import com.alipay.api.AlipayConfig;
+import com.alipay.api.response.AlipayOpenAppQrcodeCreateResponse;
+import com.alipay.api.request.AlipayOpenAppQrcodeCreateRequest;
+import com.alipay.api.domain.AlipayOpenAppQrcodeCreateModel;
+
+import com.alipay.api.FileItem;
+import java.util.Base64;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 生成支付宝小程序二维码
+ */
+public class AlipayOpenAppQrcodeCreate {
+
+    public static void main(String[] args) throws AlipayApiException {
+        // 初始化SDK
+        AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig());
+        // 构造请求参数以调用接口
+        AlipayOpenAppQrcodeCreateRequest request = new AlipayOpenAppQrcodeCreateRequest();
+        AlipayOpenAppQrcodeCreateModel model = new AlipayOpenAppQrcodeCreateModel();
+        // 设置跳转小程序的页面路径
+        model.setUrlParam("pages/index/index");
+        // 设置小程序的启动参数
+        model.setQueryParam("x=1");
+        // 设置码描述
+        model.setDescribe("二维码描述");
+        request.setBizModel(model);
+        AlipayOpenAppQrcodeCreateResponse response = alipayClient.execute(request);
+        System.out.println(response.getBody());
+        String qrCodeUrl = response.getQrCodeUrl();
+        System.err.println(qrCodeUrl);
+        if (response.isSuccess()) {
+            System.out.println("调用成功");
+        } else {
+            System.out.println("调用失败");
+        }
+    }
+
+    private static AlipayConfig getAlipayConfig() {
+        String privateKey  = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCxWgLykkSXsj6zz5kVohKb6yAaOK8d4wnbWLrabBQSHZg+UZj9HknzQvgrSdfiMd6Dlv70OYQBRynWb2OSGaIKpWLbDKQDT+hDBcbZQ3nVTKExC7w8t/5mUc0CH4DkMsMMDcDW2synh9Lv4fmw7eNnRgd6g6csGIZyOUgt34eMcmCUBP58bEkYhuPm9rLBMw7fCRl9zZbKNAiE5j9FNL1/oAWhET6BCHRqKpiDHvKLQDZdXUwI+sA/JSolNlU+x052YBPGxjH9zqD8mpRLZRTPCb5pV5wCG+EqQkiCauyhAJSCVo2Dx3uXe4nP/6UDlQmgxyiZ+uuMtPsDFjKd7EIXAgMBAAECggEBAKXBfufAFSPCkB/2cxlo9QOM6eAYAnNocxnzABCM2uVji5sTIG3SFUOq3891oLPj8BgE1BzmdJ3NKSklymYOVwikMpSQZ+pAkM+zYnpFOmVEzZLNaQ1G2ho/cd/+GbUuTGXDpOwqawRZSaiyB3B5pgQry2mSCniII4A2UWOuez2jR7R6kXh2UL4DGDPYjDj2Gx3WfYEeuarjdbaeKU6ngdArkYqNtsbpmaR9aOUhNyo6ltOWh7pKjdjApAEtoEqqYjr1uQ4E0wfF4noiU1hR7gTG8FjvWHy1/piPWM4CihUbhJemC5xKuVKltI0zMtR+uAx609sz6gOYlZkrYAXL0uECgYEA8Gqq/Jc1w6I5FTGImnoadKr1VWXBFKdU00p6EMX6FaY9uD41+YtaOtfBeNyAUZ20UlP+t9EsUbHunaMVb64N2wYMbSwy9ibNAse/KxT3XCT659lsyFyVPtbGxALXLu6sNH7VIljJv7KRm6slBqLKSdac2qZX/LwVvjIGjNz7p8MCgYEAvNjhFEn9KE8eOCK+qGEITVoR8k26lFGG0XsjRoinkgAUeUL2R6HFscOqUT31DvvQ7lNfopM+Sksmi/c64wXjcT49iHZwqCs6FNYHvY9HS0StVckLGliUg0U7FNWX0dwZyehpYamV4Eh9O/yZN+p07zAmDohTYmdsMWyqoieJqx0CgYEA6iiKZ0CDbgrXnCvFh+e7Uryb/NQBjbM4rB6S6zlYTbO/025MNcQjWsJ/vs7M8DEwyyriIXjKuLsb1E9d9otJFXU7ry1oaVT7QmT4beaa0hV2h1C+YhvChRS9PXYizaRK90o9HpnpzhsHNN4pTuBJNEeiOFfhxNgQOVISDSrCtO8CgYBMCnRPLB/A3GLJrcvhlvi11N/HFl9bm5xSu2eP3jTDSD72OO1cGJq3IpdxESac+u69GFs45ls9pRcHYuyWP2e+0JYMXcytGoLPowMI5CmL+EJneYV7/VEHrpfEouD4As1rjKbqSVPtNKMgxWyYpFKjgVrBnUkeJZDeMehfVNZNTQKBgAfhnhQgDk61C3KmgzKJ0hCogjTUL6AdjgC5bfV1AsV9yesh0q1bgHDrlMkS2aKYSF9wNeKYCYl2/ZYhilom4Mst/uxAl/8aLwDM9Cg29KfmMakst521IXv2Jrk2MiXXJMV5wowE8kbdb4Hkzsn1km2tBnng7Jyyek2HH737Jd1R";
+        String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAh+tCVKqUmlHDL8Ki1TUJtzE5IKV1irJuoHWZTvndJCKJJ8bdWxL9mu5xsy8KkfrnS6wJIKBMLTxMoYQHG7l2Gt07YyUCYHS5+yvbHtTkyFFy2KRPeUEWXz1Tm4juvInDvvr+n7v9ETepToGhC+UDlQcBvuSppw8N+463E+1GRrC4APwXYGLzaIvYvDHcQAULkWhXsjzxJSmeSi12kqWKlgnVJC1y0FT8xQtvhwShfaIqKwzErn9S2z7JjdXboJMUYQHoqF1A4SmWY8c0qawqvx2hGP36W3RDQ4cczzFwUHS1Cylhsbgh1COc4OdANCX4Np2NUzaRDCNzN0WVFKtK+QIDAQAB";
+        AlipayConfig alipayConfig = new AlipayConfig();
+        alipayConfig.setServerUrl("https://openapi.alipay.com/gateway.do");
+        alipayConfig.setAppId("2021004173610331");
+        alipayConfig.setPrivateKey(privateKey);
+        alipayConfig.setFormat("json");
+        alipayConfig.setAlipayPublicKey(alipayPublicKey);
+        alipayConfig.setCharset("UTF-8");
+        alipayConfig.setSignType("RSA2");
+        return alipayConfig;
+    }
+}
\ No newline at end of file
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
index 4ab4162..cf76b85 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
@@ -349,7 +349,6 @@
         Page<TAppUser> page = appUserService.lambdaQuery()
                 .like(userListQueryDto.getUserPhone() != null && !"".equals(userListQueryDto.getUserPhone()), TAppUser::getPhone, userListQueryDto.getUserPhone())
                 .eq(userListQueryDto.getCityCode() != null && !"".equals(userListQueryDto.getCityCode()), TAppUser::getCityCode, userListQueryDto.getCityCode())
-                .eq(userListQueryDto.getProvinceCode() != null && !"".equals(userListQueryDto.getProvinceCode()), TAppUser::getProvinceCode, userListQueryDto.getProvinceCode())
                 .in(!userIds.isEmpty(),TAppUser::getId,userIds)
                 .eq(TAppUser::getStatus,1)
                 .page(Page.of(userListQueryDto.getPageCurr(), userListQueryDto.getPageSize()));
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WxLoginController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WxLoginController.java
index 52f457e..b640f7d 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WxLoginController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WxLoginController.java
@@ -102,11 +102,9 @@
     public static MultipartFile convertInputStreamToMultipartFile(InputStream inputStream, String fileName, String contentType) throws IOException {
         return new MockMultipartFile(fileName, fileName, contentType, inputStream);
     }
-
-    /**
-     * 获取微信小程序二维码
-     */
-    public void getQRCode() {
+    @ApiOperation(value = "获取微信小程序二维码",tags = {"获取微信小程序二维码"})
+    @PostMapping("/getQRCode")
+    public AjaxResult getQRCode() {
         InputStream inputStream = null;
         OutputStream outputStream = null;
         WxAppletTools appletTools = new WxAppletTools(wxRestTemplate, wxConfig);
@@ -137,8 +135,7 @@
             MultipartFile multipartFile = convertInputStreamToMultipartFile(inputStream, finalFileName, "image/jpeg");
             String name = FileUploadUtils.upload(localFilePath, multipartFile);
             System.err.println(name);
-            // 保存文件到本地
-//            String s = ossService.uploadFile2OSS(inputStream, objectName);
+            return AjaxResult.success(name);
         } catch (Exception e) {
             System.err.println("调用小程序生成微信永久小程序码URL接口异常" + e);
         } finally {
@@ -157,5 +154,7 @@
                 }
             }
         }
+        return AjaxResult.success();
     }
+
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/filter/AuthFilter.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/filter/AuthFilter.java
index 68fa2ca..0181d72 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/filter/AuthFilter.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/filter/AuthFilter.java
@@ -44,6 +44,11 @@
 
 
 	@Override
+	public void init(FilterConfig filterConfig) throws ServletException {
+
+	}
+
+	@Override
 	public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
 		HttpServletRequest request = (HttpServletRequest) servletRequest;
 		HttpServletResponse response = (HttpServletResponse) servletResponse;
@@ -83,9 +88,13 @@
 		}
 		filterChain.doFilter(request, response);
 	}
-	
-	
-	
+
+	@Override
+	public void destroy() {
+
+	}
+
+
 	private void unauthorizedResponse(HttpServletResponse response, String msg) {
 		response.setStatus(HttpStatus.OK.value());
 		response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_UTF8_VALUE);
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderInvoiceController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderInvoiceController.java
index e3838b3..d69169a 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderInvoiceController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderInvoiceController.java
@@ -75,6 +75,7 @@
 										@RequestParam("invoiceUrl") String invoiceUrl){
 		TOrderInvoice orderInvoice = orderInvoiceService.getById(id);
 		orderInvoice.setInvoiceUrl(invoiceUrl);
+		orderInvoice.setStatus(3);
 		orderInvoiceService.updateById(orderInvoice);
 		// 发送邮箱
 		// 收件人电子邮箱,TODO 换成自己的收件箱
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java
index 0ab6cd7..397c94d 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java
@@ -1,6 +1,7 @@
 package com.ruoyi.order.controller;
 
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 
 
@@ -15,10 +16,13 @@
 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.TChargingOrderRefund;
 import com.ruoyi.order.api.model.TExchangeOrder;
 import com.ruoyi.order.api.model.TShoppingOrder;
+import com.ruoyi.order.api.model.TShoppingOrderRefund;
 import com.ruoyi.order.api.query.ShoppingOrderQuery;
 import com.ruoyi.order.dto.*;
+import com.ruoyi.order.service.TShoppingOrderRefundService;
 import com.ruoyi.order.service.TShoppingOrderService;
 import com.ruoyi.other.api.domain.TCoupon;
 import com.ruoyi.other.api.domain.TGoods;
@@ -40,6 +44,7 @@
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 
 /**
@@ -73,7 +78,31 @@
 	private AppCouponClient appCouponClient;
 	@Resource
 	private SysUserClient sysUserClient;
-	
+	@Resource
+	private TShoppingOrderRefundService shoppingOrderRefundService;
+	/**
+	 * 远程管理后台取消订单后退款回调
+	 */
+	@ResponseBody
+	@PostMapping(value = "/shoppingOrderWxRefund")
+	public void shoppingOrderWxRefund(@RequestParam("out_trade_no") String out_refund_no,
+													@RequestParam("out_trade_no") String refund_id,
+													@RequestParam("out_trade_no") String tradeState,
+													@RequestParam("out_trade_no") String success_time){
+		if("SUCCESS".equals(tradeState)){
+			TShoppingOrderRefund one = shoppingOrderRefundService.getOne(new LambdaQueryWrapper<TShoppingOrderRefund>().eq(TShoppingOrderRefund::getRefundCode, out_refund_no));
+			one.setRefundSerialNumber(refund_id);
+			one.setRefundStatus(2);
+			one.setRefundTime(LocalDateTime.parse(success_time, DateTimeFormatter.ofPattern("yyyy-MM-DDTHH:mm:ss+TIMEZONE")));
+			shoppingOrderRefundService.updateById(one);
+			TShoppingOrder byId = shoppingOrderService.getById(one.getShoppingOrderId());
+			byId.setStatus(4);
+			shoppingOrderService.updateById(byId);
+			if (byId.getAppCouponId() != null) {
+				appCouponClient.refund(byId.getAppCouponId().toString());
+			}
+		}
+	}
 	
 	@PostMapping("/getShoppingOrderList")
 	@ApiOperation(value = "列表查询", tags = {"管理后台-购物订单"})
@@ -144,7 +173,7 @@
 		shoppingOrderService.removeBatchByIds(Arrays.asList(ids.split(",")));
 		return AjaxResult.success();
 	}
-	
+
 	@GetMapping("/cancelShoppingOrder")
 	@ApiOperation(value = "取消订单", tags = {"管理后台-购物订单"})
 	public AjaxResult cancelShoppingOrder(String id) {
@@ -154,6 +183,21 @@
 		byId.setCancellationId(userid);
 		byId.setCancellationTime(LocalDateTime.now());
 		byId.setStatus(4);
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+		TShoppingOrderRefund tShoppingOrderRefund = new TShoppingOrderRefund();
+		tShoppingOrderRefund.setPayTime(byId.getPayTime());
+		tShoppingOrderRefund.setPayCode(byId.getSerialNumber());
+		tShoppingOrderRefund.setPayAmount(byId.getPaymentAmount());
+		tShoppingOrderRefund.setPayType(1);
+		tShoppingOrderRefund.setShoppingOrderId(byId.getId());
+		tShoppingOrderRefund.setRefundAmount(byId.getPaymentAmount());
+		tShoppingOrderRefund.setRefundStatus(1);
+		tShoppingOrderRefund.setCode("GWF" + sdf.format(new Date()) + Double.valueOf(Math.random() * 1000).intValue());
+		tShoppingOrderRefund.setRefundTitle("后台取消订单");
+		tShoppingOrderRefund.setRefundContent("后台取消订单");
+		tShoppingOrderRefund.setRefundReason("后台取消订单");
+		tShoppingOrderRefund.setRefundRemark("全额退款");
+		tShoppingOrderRefund.setRefundTotalAmount(byId.getPaymentAmount());
 		switch (byId.getPaymentType()) {
 			case 1:
 				// 微信
@@ -163,8 +207,6 @@
 				wxPaymentRefundModel.setOut_refund_no(OrderCodeUtil.getOrderCode("GWTK"));
 				wxPaymentRefundModel.setReason("后台购物订单退款");
 				wxPaymentRefundModel.setNotify_url("/payment/wx/refund/notify");
-
-				// todo 部署到线上之后写回调地址
 				String string = byId.getPaymentAmount().multiply(new BigDecimal("100")).toString();
 				if (string.contains(".")) {
 					string = string.substring(0, string.indexOf("."));
@@ -175,28 +217,37 @@
 				refundAmount.setCurrency("CNY");
 				refundAmount.setRefund(i);
 				wxPaymentRefundModel.setAmount(refundAmount);
-				wxPaymentClient.refundOrderR(wxPaymentRefundModel);
+				R<String> stringR = wxPaymentClient.refundOrderR(wxPaymentRefundModel);
+				if(200 == stringR.getCode()){
+					shoppingOrderRefundService.save(tShoppingOrderRefund);
+				}
 				break;
 			case 2:
 				// 支付宝
 				RefundReq refundReq = new RefundReq();
 				refundReq.setOutTradeNo(byId.getSerialNumber());
-				String gw = OrderCodeUtil.getOrderCode("GWTK");
+				String gw = OrderCodeUtil.getOrderCode("GWF");
 				refundReq.setOutRequestNo(gw);
 				refundReq.setRefundAmount(byId.getPaymentAmount().toString());
 				refundReq.setRefundReason("后台购物订单退款");
 				RefundResp data = aliPaymentClient.refund(refundReq).getData();
 				if (data != null) {
-					// 退款成功 回退优惠券
 					byId.setStatus(4);
+					SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-DDTHH:mm:ss+TIMEZONE");
+					TShoppingOrderRefund one = shoppingOrderRefundService.getOne(new LambdaQueryWrapper<TShoppingOrderRefund>().eq(TShoppingOrderRefund::getRefundCode, data.getOutTradeNo()));
+					one.setRefundSerialNumber(data.getTradeNo());
+					one.setRefundStatus(2);
+					one.setRefundTime(LocalDateTime.parse(sdf1.format(new Date()), DateTimeFormatter.ofPattern("yyyy-MM-DDTHH:mm:ss+TIMEZONE")));
+					shoppingOrderRefundService.updateById(one);
 					if (byId.getAppCouponId() != null) {
+						// 退款成功 回退优惠券
 						appCouponClient.refund(byId.getAppCouponId().toString());
-						byId.setRefundCode(gw);
-						byId.setRefundAmount(byId.getPaymentAmount());
-						byId.setRefundStatus(2);
-						byId.setRefundSerialNumber(data.getTradeNo());
-						shoppingOrderService.updateById(byId);
 					}
+					byId.setRefundCode(gw);
+					byId.setRefundAmount(byId.getPaymentAmount());
+					byId.setRefundStatus(2);
+					byId.setRefundSerialNumber(data.getTradeNo());
+					shoppingOrderService.updateById(byId);
 				}
 				break;
 		}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
index 9e9a60e..685ecea 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
@@ -285,7 +285,7 @@
 			e.setElectrovalence(orderInvoiceDetailList.stream().filter(t->t.getElectrovalence()!=null).map(TOrderInvoiceDetail::getElectrovalence).reduce(BigDecimal::add).get());
 			e.setServiceCharge(orderInvoiceDetailList.stream().filter(t->t.getServiceCharge()!=null).map(TOrderInvoiceDetail::getServiceCharge).reduce(BigDecimal::add).get());
 			if (e.getBillingUserId()!=null){
-				e.setUserPhone(finalTAppUsers.stream().filter(t->t.getId()!=null).filter(m->m.getId().equals(Long.parseLong(e.getBillingUserId().toString()))).findFirst().get().getPhone());
+				e.setUserPhone(finalTAppUsers.stream().filter(t->t.getId()!=null).filter(m->m.getId().equals(Long.parseLong(e.getAppUserId().toString()))).findFirst().get().getPhone());
 			}
 		});
 
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TAdvertisingController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TAdvertisingController.java
index 03a99b1..984eab7 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TAdvertisingController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TAdvertisingController.java
@@ -1,6 +1,7 @@
 package com.ruoyi.other.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.ruoyi.common.core.enums.status.AdvertisingStatusEnum;
 import com.ruoyi.common.core.web.domain.AjaxResult;
@@ -64,7 +65,16 @@
     @ApiOperation(tags = {"管理后台-广告管理"},value = "广告修改")
     @Log(title = "【广告管理】修改广告", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
     public AjaxResult updateVip(@RequestBody TAdvertising dto) {
-        advertisingService.updateById(dto);
+        if (dto.getJumpType() == 2){
+            // 清空跳转地址
+            advertisingService.updateById(dto);
+            LambdaUpdateWrapper<TAdvertising> tAdvertisingLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+            tAdvertisingLambdaUpdateWrapper.eq(TAdvertising::getId,dto.getId())
+                    .set(TAdvertising::getJumpUrl,null);
+            advertisingService.update(tAdvertisingLambdaUpdateWrapper);
+        }else{
+            advertisingService.updateById(dto);
+        }
         return AjaxResult.success();
     }
     @GetMapping("/getInfo")
diff --git a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java
index 370d2e7..985ca03 100644
--- a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java
+++ b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java
@@ -196,6 +196,11 @@
                         chargingOrderClient.chargingOrderStartupFailureWxRefund(out_refund_no, refund_id, tradeState, success_time);
                         System.err.println("----充电启动失败退款回调通知");
                         break;
+                    //充电订单
+                    case "GWF":
+                        chargingOrderClient.shoppingOrderWxRefund(out_refund_no, refund_id, tradeState, success_time);
+                        System.err.println("----管理后台取消购物订单退款回调通知");
+                        break;
                 }
                 
                 WxRefundNotifyResp resp = new WxRefundNotifyResp();

--
Gitblit v1.7.1