From e55c8b0a92eb9715edd90c31dfd4de51a47b588b Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期五, 04 十一月 2022 17:40:08 +0800
Subject: [PATCH] changes

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3mOrderController.java |  110 +++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 79 insertions(+), 31 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3mOrderController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3mOrderController.java
index fab209f..21d1e0d 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3mOrderController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3mOrderController.java
@@ -1,21 +1,28 @@
 package com.sandu.ximon.admin.controller;
 
+import cn.hutool.core.map.MapUtil;
 import com.sandu.common.domain.ResponseVO;
 import com.sandu.common.execption.BusinessException;
+import com.sandu.common.object.BaseConditionVO;
+import com.sandu.common.security.annotation.AnonymousAccess;
 import com.sandu.common.util.ResponseUtil;
 import com.sandu.ximon.admin.param.PayParam;
+import com.sandu.ximon.admin.pay.alipay.UsrAlipayConfigService;
+import com.sandu.ximon.admin.pay.wx.WxFastPayService;
+import com.sandu.ximon.admin.security.PermissionConfig;
 import com.sandu.ximon.admin.service.C3ChargingService;
+import com.sandu.ximon.admin.service.C3mChargingChargeService;
 import com.sandu.ximon.admin.service.C3mOrderService;
 import com.sandu.ximon.dao.domain.C3mCharging;
 import com.sandu.ximon.dao.domain.C3mOrder;
+import com.sandu.ximon.dao.enums.MenuEnum;
 import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import me.chanjar.weixin.common.error.WxErrorException;
+import org.springframework.web.bind.annotation.*;
 
-import java.util.HashMap;
-import java.util.Map;
+import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
+import java.util.SortedMap;
 
 /**
  * @Author liuhaonan
@@ -28,19 +35,26 @@
 
     private final C3mOrderService c3mOrderService;
     private final C3ChargingService c3mService;
+    private final UsrAlipayConfigService alipayConfigService;
+    private final WxFastPayService wxPayService;
+    private final C3mChargingChargeService c3mChargingChargeService;
+    private final PermissionConfig permissionConfig;
 
 
     /**
      * 閫�娆�
+     *
      * @return
      */
-    @PostMapping("/refond")
-    public ResponseVO<Object> refond(@RequestBody Map params) {
-//        c3mOrderService.orderRefund( (String)params.get("outTradeNo"),
-//                (Double)params.get("refundAmount"));
-        return ResponseUtil.success(c3mOrderService.orderRefund((String) params.get("outTradeNo"),
-                (Double) params.get("refundAmount")));
-
+    @PostMapping("/refund")
+    public ResponseVO<Object> refund(@RequestBody PayParam params) {
+        if (!permissionConfig.check(MenuEnum.C3_REFUND.getCode())) {
+            return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+        }
+        if (params.getOutTradeNo().isEmpty() || params.getOutTradeNo() == null) {
+            throw new BusinessException("閫�娆惧弬鏁颁笉鑳戒负绌�");
+        }
+        return ResponseUtil.success(c3mOrderService.orderRefund(params.getOutTradeNo()));
     }
 
     /**
@@ -48,36 +62,70 @@
      *
      * @return
      */
+    @AnonymousAccess
     @PostMapping("/advancePay")
-    public ResponseVO<Object> advancePayOrder(@RequestBody PayParam param) {
-        if (param.getTotalAmount() == 0d) {
-            throw new BusinessException("閲戦涓嶈兘涓�0");
+    public ResponseVO<Object> advancePayOrder(HttpServletRequest request, @RequestBody PayParam param) throws WxErrorException, InterruptedException {
+        if (param.getOpenId().isEmpty()) {
+            throw new BusinessException("寰俊code涓嶈兘涓虹┖");
+        }
+        if (param.getPoleId() == null || param.getSubscribeChargingCapacity() == null) {
+            throw new BusinessException("鍏呯數妗﹊d鎴栧厖鐢靛閲忎笉鑳戒负绌�");
+        }
+        if (param.getSubscribeChargingCapacity() < 1) {
+            throw new BusinessException("鍏呯數瀹归噺涓嶈兘灏忎簬1Kw/h");
         }
         //  C3鍏呯數妗╁疄浣�
         C3mCharging c3m = c3mService.getC3mByPoleId(param.getPoleId());
         if (null == c3m) {
             throw new BusinessException("鏈壘鍒板綋鍓嶅厖鐢垫々");
         }
-        C3mOrder c3mOrderEntity = c3mOrderService.advancePayOrder(param.getPoleId(), c3m, param.getOrderType()
-                , param.getTotalAmount(), param.getSubscribeChargingCapacity());
-        if (null == c3mOrderEntity) {
-            throw new BusinessException("璇ュ厖鐢垫々姝h浣跨敤!");
-        }
-//        return R.ok().put("outTradeNo",c3mOrderEntity.getOutTradeNo())
-//                .put("totalAmount",totalAmount);
+        //鑾峰彇棰勪粯閲戦
+        BigDecimal TotalAmount = c3mChargingChargeService.getCostByC3id(c3m.getC3Id(), param.getSubscribeChargingCapacity());
+        //杞崲涓篸ouble绫诲瀷
+        double totalAmount = TotalAmount.doubleValue();
+        //鐢熸垚璁㈠崟
+        C3mOrder c3mOrderEntity = c3mOrderService.advancePayOrder(param.getPoleId(), c3m, "wxpay"
+                , totalAmount, param.getSubscribeChargingCapacity(), param.getOpenId());
 
-        Map map=new HashMap();
-        map.put("outTradeNo",c3mOrderEntity.getOutTradeNo());
-        map.put("totalAmount",param.getTotalAmount());
-        return ResponseUtil.success(map);
+        String s = WxFastPayService.parseWxAmount(c3mOrderEntity.getTotalAmount().toString());
+        //鐢熸垚寰俊棰勪粯璁㈠崟
+        SortedMap<Object, Object> result = wxPayService.miniAppPay(request, "鎵爜鍏呯數鏀粯(C3鍏呯數妗�)", c3mOrderEntity.getOutTradeNo(), Integer.valueOf(s), param.getPoleId(), param.getOpenId());
+        return ResponseUtil.success(result);
     }
 
 
+    /**
+     * 璁㈠崟鍒楄〃
+     *
+     * @param baseConditionVO
+     * @param keyword         鐏潌鍚嶇О
+     * @param orderStatus     璁㈠崟鐘舵�侊細// 鏈敮浠�(0) 宸叉敮浠�(1),閫�娆句腑(2),宸查��娆�(3),璁㈠崟瀹屾垚(4),閫�娆惧け璐�5)
+     * @param timeType        鏃堕棿 1锛氫竴涓湀 2锛氫笁涓湀 3锛氬叚涓湀
+     * @return
+     */
+    @GetMapping("/list")
+    public ResponseVO<Object> list(BaseConditionVO baseConditionVO,
+                                   @RequestParam(value = "keyword", required = false) String keyword,
+                                   @RequestParam(value = "orderStatus", required = false) Integer orderStatus,
+                                   @RequestParam(value = "timeType", required = false) Integer timeType) {
+        if (!permissionConfig.check(MenuEnum.ORDER_LIST.getCode())) {
+            return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+        }
+        return ResponseUtil.successPage(c3mOrderService.orderList(baseConditionVO, keyword, orderStatus, timeType));
+    }
 
+    /**
+     * 鑾峰彇wx鐨刼penid
+     */
+    @AnonymousAccess
+    @PostMapping("/getWxOpenId")
+    public ResponseVO<Object> getWxOpenId(@RequestBody PayParam param) throws WxErrorException {
+        if (param.getWxCode() == null || param.getPoleId() == null || param.getWxCode().isEmpty()) {
+            throw new BusinessException("鍙傛暟涓嶈兘涓虹┖");
+        }
+        String openId = wxPayService.getOpenId(param.getPoleId(), param.getWxCode());
 
-
-
-
-
+        return ResponseUtil.success(MapUtil.builder().put("openId", openId).build());
+    }
 
 }

--
Gitblit v1.9.3