diff --git a/wfc-modules/wfc-payment/pom.xml b/wfc-modules/wfc-payment/pom.xml
index b7dfb9e..f89e27c 100644
--- a/wfc-modules/wfc-payment/pom.xml
+++ b/wfc-modules/wfc-payment/pom.xml
@@ -118,6 +118,11 @@
javax.persistence
javax.persistence-api
+
+
+ org.springframework
+ spring-test
+
diff --git a/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/pay/wxpay/controller/WxPayController.java b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/pay/wxpay/controller/WxPayController.java
index 9d2ce30..29b46ce 100644
--- a/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/pay/wxpay/controller/WxPayController.java
+++ b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/pay/wxpay/controller/WxPayController.java
@@ -35,11 +35,15 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
import org.wfc.common.core.domain.R;
import org.wfc.payment.domain.FileBean;
import org.wfc.payment.domain.H5SceneInfo;
import org.wfc.payment.domain.WxPayBean;
import org.wfc.payment.domain.vo.AjaxResult;
+import org.wfc.payment.utils.MultipartFileUtil;
+import org.wfc.system.api.RemoteFileService;
+import org.wfc.system.api.domain.SysFile;
import org.wfc.user.api.RemoteUUserService;
import org.wfc.user.api.domain.vo.UOrderVo;
@@ -73,6 +77,9 @@ public class WxPayController extends AbstractWxPayApiController {
@Autowired
private RemoteUUserService remoteUUserService;
+ @Autowired
+ private RemoteFileService remoteFileService;
+
private String notifyUrl;
private String refundNotifyUrl;
private static final String USER_PAYING = "USERPAYING";
@@ -424,12 +431,19 @@ public class WxPayController extends AbstractWxPayApiController {
String qrCodeUrl = result.get("code_url");
String name = "payQRCode2.png";
- String basePath = fileBean.getPath() + File.separator + orderId;
- String url = fileBean.getDomain() + fileBean.getPrefix() + File.separator + orderId + File.separator + name;
+ String basePath = System.getProperty("user.dir") + File.separator + name;
+// String url = fileBean.getDomain() + fileBean.getPrefix() + File.separator + orderId + File.separator + name;
FileUtil.mkdir(basePath);
boolean encode = QrCodeKit.encode(qrCodeUrl, BarcodeFormat.QR_CODE, 3, ErrorCorrectionLevel.H, "png", 200, 200,
- basePath + File.separator + name);
+ basePath);
+ File uploadFile = new File(basePath);
+ MultipartFile multipartFile = MultipartFileUtil.getMultipartFile(uploadFile);
+ R fileResult = remoteFileService.upload(multipartFile);
+ String url = fileResult.getData().getLocalUrl();
+ log.info("qr code file: {}", basePath);
+ FileUtil.del(uploadFile);
+
if (encode) {
//在页面上显示
return new AjaxResult().success(url);
diff --git a/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/utils/MultipartFileUtil.java b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/utils/MultipartFileUtil.java
new file mode 100644
index 0000000..7293f7a
--- /dev/null
+++ b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/utils/MultipartFileUtil.java
@@ -0,0 +1,101 @@
+package org.wfc.payment.utils;
+
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
+import org.apache.http.entity.ContentType;
+import org.springframework.mock.web.MockMultipartFile;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.*;
+
+/**
+ * MultipartFile和File互转工具类
+ */
+public class MultipartFileUtil {
+
+ /**
+ * 输入流转MultipartFile
+ *
+ * @param fileName
+ * @param inputStream
+ * @return
+ */
+ public static MultipartFile getMultipartFile(String fileName, InputStream inputStream) {
+ MultipartFile multipartFile = null;
+ try {
+ multipartFile = new MockMultipartFile(fileName, fileName,
+ ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return multipartFile;
+ }
+
+ /**
+ * 读取网络文件
+ *
+ * @param url 文件地址
+ * @param fileName 文件名称(需带文件名后缀)
+ * @return
+ */
+ public static MultipartFile getMultipartFile(String url, String fileName) {
+ HttpResponse response = HttpRequest.get(url).execute();
+ InputStream inputStream = response.bodyStream();
+ return MultipartFileUtil.getMultipartFile(fileName, inputStream);
+ }
+
+ /**
+ * File 转MultipartFile
+ *
+ * @param file
+ * @return
+ */
+ public static MultipartFile getMultipartFile(File file) {
+ FileInputStream fileInputStream = null;
+ MultipartFile multipartFile = null;
+ try {
+ fileInputStream = new FileInputStream(file);
+ multipartFile = new MockMultipartFile(file.getName(), file.getName(),
+ ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return multipartFile;
+ }
+
+ /**
+ * MultipartFileUtil 转File
+ *
+ * @param multipartFile
+ * @return
+ */
+ public static File getFile(MultipartFile multipartFile) {
+ String fileName = multipartFile.getOriginalFilename();
+ File file = new File(fileName);
+ OutputStream out = null;
+ try {
+ out = new FileOutputStream(file);
+ byte[] ss = multipartFile.getBytes();
+ for (byte s : ss) {
+ out.write(s);
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ if (out != null) {
+ try {
+ out.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+// File f = new File(file.toURI());
+// if (f.delete()) {
+// System.out.println("删除成功");
+// } else {
+// System.out.println("删除失败");
+// }
+ return file;
+ }
+}
\ No newline at end of file