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