Bläddra i källkod

Merge remote-tracking branch 'origin/master'

ct 5 dagar sedan
förälder
incheckning
470838559c

+ 6 - 5
fs-company/src/main/java/com/fs/company/controller/store/FsInquiryOrderController.java

@@ -364,16 +364,17 @@ public class FsInquiryOrderController extends BaseController
 
 
     /**
-    * 生成订单二维码
+    * 生成问诊付款二维码
     */
     @PreAuthorize("@ss.hasPermi('store:inquiryOrder:wxaCodeInquiryOrder')")
     @GetMapping("/getWxaCodeInquiryOrderUnLimit/{orderId}")
-    public AjaxResult getWxaCodeInquiryOrderUnLimit(@PathVariable("orderId") Long orderId)
+    public R getWxaCodeInquiryOrderUnLimit(@PathVariable("orderId") Long orderId)
     {
 
-        byte[] bytes = fsInquiryOrderService.getWxaCodeInquiryOrderUnLimit(orderId);
-        String base64 = Base64.getEncoder().encodeToString(bytes);
-        return AjaxResult.success("成功",base64);
+        //        byte[] bytes = fsInquiryOrderService.getWxaCodeInquiryOrderUnLimit(orderId);
+//        String base64 = Base64.getEncoder().encodeToString(bytes);
+        return fsInquiryOrderService.getWxaCodeInquiryOrderUnLimitR(orderId);
 
     }
+
 }

+ 12 - 0
fs-company/src/main/java/com/fs/company/controller/store/FsPackageOrderController.java

@@ -248,4 +248,16 @@ public class FsPackageOrderController extends BaseController
         String base64 = Base64.getEncoder().encodeToString(bytes);
         return AjaxResult.success("成功",base64);
     }
+
+    /**
+     * 生成套餐包付款二维码
+     */
+    @PreAuthorize("@ss.hasPermi('store:packageOrder:wxaCodePackageOrder')")
+    @GetMapping("/getWxaCodePackageOrderUnLimit/{orderId}")
+    public R getWxaCodePackageOrderUnLimit(@PathVariable("orderId") Long orderId)
+    {
+
+        return fsPackageOrderService.getWxaCodePackageOrderUnLimit(orderId);
+
+    }
 }

+ 10 - 1
fs-service/src/main/java/com/fs/his/mapper/FsPackageOrderMapper.java

@@ -76,7 +76,16 @@ public interface FsPackageOrderMapper
     public int deleteFsPackageOrderByOrderIds(Long[] orderIds);
 
     @Select({"<script> " +
-            "select o.order_id,o.package_second_name,o.source,o.order_sn,o.package_name,o.pay_time, o.days,o.pay_price,o.pay_money,o.pay_type,o.`status`,o.package_sub_type,o.create_time,o.start_time,o.finish_time      ,d.doctor_name,u.nick_name,u.phone,c.company_name,cu.nick_name company_user_name,patient_json->>'$.patientName' as patientName,fso.delivery_status,fso.delivery_pay_status  from fs_package_order o LEFT JOIN fs_doctor d ON d.doctor_id=o.doctor_id LEFT JOIN fs_user u ON u.user_id=o.user_id LEFT JOIN company c on c.company_id =o.company_id LEFT JOIN company_user cu on cu.user_id=o.company_user_id LEFT JOIN fs_store_order fso ON fso.order_id= o.store_order_id"+
+            "select o.order_id,o.package_second_name,o.source,o.order_sn,o.package_name,o.pay_time,o.is_pay, o.days,o.pay_price, " +
+            "o.pay_money,o.pay_type,o.`status`,o.package_sub_type,o.create_time,o.start_time,o.finish_time      " +
+            ",d.doctor_name,u.nick_name,u.phone,c.company_name,cu.nick_name company_user_name, " +
+            "patient_json->>'$.patientName' as patientName,fso.delivery_status,fso.delivery_pay_status  " +
+            "from fs_package_order o " +
+            "LEFT JOIN fs_doctor d ON d.doctor_id=o.doctor_id " +
+            "LEFT JOIN fs_user u ON u.user_id=o.user_id " +
+            "LEFT JOIN company c on c.company_id =o.company_id " +
+            "LEFT JOIN company_user cu on cu.user_id=o.company_user_id " +
+            "LEFT JOIN fs_store_order fso ON fso.order_id= o.store_order_id "+
             " where 1 = 1 \n" +
             "            <if test=\"maps.orderSn != null  and maps.orderSn != ''\"> and o.order_sn = #{maps.orderSn}</if>\n" +
             "            <if test=\"maps.phone != null and maps.phone != '' \">and u.phone = #{maps.phone} </if>\n" +

+ 2 - 0
fs-service/src/main/java/com/fs/his/service/IFsInquiryOrderService.java

@@ -129,4 +129,6 @@ public interface IFsInquiryOrderService
 
     byte[] getWxaCodeInquiryOrderUnLimit(Long orderId);
 
+    R getWxaCodeInquiryOrderUnLimitR(Long orderId);
+
 }

+ 1 - 0
fs-service/src/main/java/com/fs/his/service/IFsPackageOrderService.java

@@ -122,5 +122,6 @@ public interface IFsPackageOrderService
 
     List<PackageOrderDTO> getNewOrder();
 
+    R getWxaCodePackageOrderUnLimit(Long orderId);
 
 }

+ 47 - 0
fs-service/src/main/java/com/fs/his/service/impl/FsInquiryOrderServiceImpl.java

@@ -1,5 +1,6 @@
 package com.fs.his.service.impl;
 
+import cn.binarywang.wx.miniapp.api.WxMaService;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
@@ -23,6 +24,7 @@ import com.fs.company.domain.CompanyUser;
 import com.fs.company.mapper.CompanyMoneyLogsMapper;
 import com.fs.company.service.ICompanyService;
 import com.fs.company.service.ICompanyUserService;
+import com.fs.core.config.WxMaConfiguration;
 import com.fs.core.config.WxPayProperties;
 import com.fs.core.utils.OrderCodeUtils;
 import com.fs.event.TemplateBean;
@@ -48,6 +50,8 @@ import com.fs.jpush.service.JpushService;
 import com.fs.repeat.vo.RepeatUploadVo;
 import com.fs.system.domain.SysConfig;
 import com.fs.system.mapper.SysConfigMapper;
+import com.fs.system.oss.CloudStorageService;
+import com.fs.system.oss.OSSFactory;
 import com.fs.tzBankPay.doman.*;
 import com.fs.ybPay.domain.OrderResult;
 import com.fs.ybPay.domain.RefundResult;
@@ -67,6 +71,7 @@ import com.github.binarywang.wxpay.service.WxPayService;
 import com.google.common.reflect.TypeToken;
 import com.google.gson.Gson;
 import lombok.Synchronized;
+import me.chanjar.weixin.common.error.WxErrorException;
 import org.apache.rocketmq.spring.core.RocketMQTemplate;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -1807,4 +1812,46 @@ public class FsInquiryOrderServiceImpl implements IFsInquiryOrderService
         byte[] bytes = HttpUtil.getWechatQrcodeByHttpURL(codeUrl, jsonMap);
         return bytes;
     }
+
+    @Override
+    public R getWxaCodeInquiryOrderUnLimitR(Long orderId) {
+
+        FsSysConfig sysConfig = configUtil.getSysConfig();
+
+        final WxMaService wxMaService = WxMaConfiguration.getMaService(sysConfig.getAppid());
+        String scene="orderId="+ orderId ;
+        byte[] file;
+        try {
+            file = wxMaService.getQrcodeService().createWxaCodeUnlimitBytes(
+                    scene,
+                    "pages_order/inquiryPay",
+                    true,
+                    "release",
+                    430,
+                    true,
+                    null,
+                    false);
+
+            // 上传图片到存储桶
+            String suffix = ".png";
+            CloudStorageService storage = OSSFactory.build();
+            String url;
+            try {
+                url = storage.uploadSuffix(file, suffix);
+            }  catch (Exception e) {
+                // 记录错误日志
+                logger.error("生成图片失败:{}",e.getMessage(),e);
+                return R.error("生成图片失败");
+            }
+            // 返回成功信息
+            return R.ok().put("url",url);
+
+        } catch (WxErrorException e) {
+            logger.error(e.getMessage(), e);
+            return R.error("微信接口调用失败: " + e.getMessage());
+        }
+
+    }
+
+
 }

+ 43 - 0
fs-service/src/main/java/com/fs/his/service/impl/FsPackageOrderServiceImpl.java

@@ -10,6 +10,7 @@ import java.util.*;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.TimeUnit;
 
+import cn.binarywang.wx.miniapp.api.WxMaService;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
@@ -27,6 +28,7 @@ import com.fs.common.utils.ip.IpUtils;
 import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.company.domain.CompanyUser;
 import com.fs.company.mapper.CompanyUserMapper;
+import com.fs.core.config.WxMaConfiguration;
 import com.fs.core.config.WxPayProperties;
 import com.fs.core.utils.OrderCodeUtils;
 import com.fs.his.config.FsSysConfig;
@@ -50,6 +52,8 @@ import com.fs.huifuPay.domain.HuiFuCreateOrder;
 import com.fs.huifuPay.domain.HuifuCreateOrderResult;
 import com.fs.huifuPay.service.HuiFuService;
 import com.fs.system.domain.SysConfig;
+import com.fs.system.oss.CloudStorageService;
+import com.fs.system.oss.OSSFactory;
 import com.fs.ybPay.domain.CreateWxOrderResult;
 import com.fs.ybPay.domain.OrderResult;
 import com.fs.ybPay.dto.OrderQueryDTO;
@@ -70,6 +74,7 @@ import com.github.binarywang.wxpay.exception.WxPayException;
 import com.github.binarywang.wxpay.service.WxPayService;
 import com.google.common.reflect.TypeToken;
 import com.google.gson.Gson;
+import me.chanjar.weixin.common.error.WxErrorException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -1536,4 +1541,42 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
             return R.error("创建失败");
         }
     }
+
+    @Override
+    public R getWxaCodePackageOrderUnLimit(Long orderId) {
+        FsSysConfig sysConfig = configUtil.getSysConfig();
+
+        final WxMaService wxMaService = WxMaConfiguration.getMaService(sysConfig.getAppid());
+        String scene="orderId="+ orderId ;
+        byte[] file;
+        try {
+            file = wxMaService.getQrcodeService().createWxaCodeUnlimitBytes(
+                    scene,
+                    "pages_order/packagePayment",
+                    true,
+                    "release",
+                    430,
+                    true,
+                    null,
+                    false);
+
+            // 上传图片到存储桶
+            String suffix = ".png";
+            CloudStorageService storage = OSSFactory.build();
+            String url;
+            try {
+                url = storage.uploadSuffix(file, suffix);
+            }  catch (Exception e) {
+                // 记录错误日志
+                logger.error("生成图片失败:{}",e.getMessage(),e);
+                return R.error("生成图片失败");
+            }
+            // 返回成功信息
+            return R.ok().put("url",url);
+
+        } catch (WxErrorException e) {
+            logger.error(e.getMessage(), e);
+            return R.error("微信接口调用失败: " + e.getMessage());
+        }
+    }
 }