From 2bb847e3b8bdc2692d88ad9df0d4ad54a3ccd890 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期三, 08 十一月 2023 16:01:20 +0800
Subject: [PATCH] 111

---
 server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java |   67 +++++++++++++++++++++++++++++++++
 1 files changed, 66 insertions(+), 1 deletions(-)

diff --git a/server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java b/server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java
index aec7924..cb838eb 100644
--- a/server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java
+++ b/server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java
@@ -1,5 +1,6 @@
 package com.doumee.core.wx;
 
+import com.alibaba.fastjson.JSONObject;
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.constants.Constants;
 import com.doumee.core.constants.ResponseStatus;
@@ -7,22 +8,31 @@
 import com.doumee.core.utils.ID;
 import com.doumee.dao.business.RefundMapper;
 import com.doumee.dao.business.TransactionsMapper;
+import com.doumee.dao.business.model.Locks;
 import com.doumee.dao.business.model.Refund;
 import com.doumee.dao.business.model.Transactions;
 import com.doumee.dao.business.web.request.RefundDTO;
+import com.doumee.dao.system.model.SystemDictData;
 import com.doumee.service.business.RefundService;
 import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest;
 import com.github.binarywang.wxpay.bean.request.WxPayRefundRequest;
 import com.github.binarywang.wxpay.bean.result.WxPayRefundResult;
 import com.github.binarywang.wxpay.exception.WxPayException;
 import lombok.extern.slf4j.Slf4j;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.Response;
 import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
 import java.math.BigDecimal;
-import java.util.Date;
+import java.util.*;
 
 /**
  * 寰俊灏忕▼搴�-鍏叡鏂规硶
@@ -36,6 +46,9 @@
 
     @Autowired
     private TransactionsMapper transactionsMapper;
+
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
 
 
     @Transactional(rollbackFor = {BusinessException.class,Exception.class})
@@ -111,4 +124,56 @@
         throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閫�娆惧彂鐢熷紓甯歌鑱旂郴绠$悊鍛�");
     }
 
+
+    /**
+     * 鐢熸垚灏忕▼搴忕爜
+     * https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/qrcode-link/qr-code/getUnlimitedQRCode.html
+     * @return
+     */
+    public void generateWXMiniCode(Locks locks){
+        SystemDictData systemDictData = systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.ACCESS_TOKEN);
+        if(Objects.isNull(systemDictData)){
+            return;
+        }
+        //鐢熸垚鍥剧墖涓婁紶OSS
+        Map<String,Object> body = new HashMap<>();
+        // 鍦烘櫙鐮侊紝涓庡墠绔害瀹氾紝鏈�缁堟槸闇�瑕佸墠绔В鏋�
+        body.put("scene", locks.getSiteId() + "/" +locks.getCode() );
+        // 姝e紡鐗堜负 "release"锛屼綋楠岀増涓� "trial"锛屽紑鍙戠増涓� "develop"銆傞粯璁ゆ槸姝e紡鐗堛��
+        body.put("env_version", "release");
+        // 閫忔槑锛屾牴鎹綘鐨勫満鏅嚜琛岃缃産ody鍙傛暟
+        body.put("is_hyaline", false);
+//        body.put("page","pages/index/index");
+        OkHttpClient client = new OkHttpClient().newBuilder().build();
+        okhttp3.MediaType mediaType = okhttp3.MediaType.parse("application/json");
+        okhttp3.RequestBody requestBody = okhttp3.RequestBody.create(mediaType, JSONObject.toJSONString(body));
+        Request request = new Request.Builder().url("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="+systemDictData.getCode()).method("POST", requestBody).build();
+        try {
+            Response response = client.newCall(request).execute();
+            if (response.isSuccessful()) {
+                InputStream inputStream = new ByteArrayInputStream(response.body().bytes());
+                ByteArrayOutputStream baos = new ByteArrayOutputStream();
+                byte[] buffer = new byte[1024];
+                int len = -1;
+                while ((len = inputStream.read(buffer)) != -1) {
+                    baos.write(buffer, 0, len);
+                }
+
+                locks.setInfo("data:mediatype;base64," + Base64.getEncoder().encodeToString(baos.toByteArray()));
+
+//                FileOutputStream out = new FileOutputStream("d:\\test.png");
+//                byte[] buffer = new byte[8192];
+//                int bytesRead = 0;
+//                while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) {
+//                    out.write(buffer, 0, bytesRead);
+//                }
+//                out.flush();
+//                inputStream.close();
+//                out.close();
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
 }

--
Gitblit v1.9.3