package com.sandu.ximon.admin.controller; import com.sandu.common.domain.ResponseVO; import com.sandu.common.execption.BusinessException; import com.sandu.common.util.ResponseUtil; import com.sandu.ximon.admin.param.PayParam; import com.sandu.ximon.admin.service.C3ChargingService; import com.sandu.ximon.admin.service.C3mOrderService; import com.sandu.ximon.dao.domain.C3mCharging; import com.sandu.ximon.dao.domain.C3mOrder; 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 java.util.HashMap; import java.util.Map; /** * @Author liuhaonan * @Version 1.0 */ @RestController @AllArgsConstructor @RequestMapping("/v1/c3mOrder") public class C3mOrderController { private final C3mOrderService c3mOrderService; private final C3ChargingService c3mService; /** * 退款 * @return */ @PostMapping("/refond") public ResponseVO 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"))); } /** * 预付款,生成订单(或直接从redis中获取当前未过期的订单) * * @return */ @PostMapping("/advancePay") public ResponseVO advancePayOrder(@RequestBody PayParam param) { if (param.getTotalAmount() == 0d) { throw new BusinessException("金额不能为0"); } // 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("该充电桩正被使用!"); } // return R.ok().put("outTradeNo",c3mOrderEntity.getOutTradeNo()) // .put("totalAmount",totalAmount); Map map=new HashMap(); map.put("outTradeNo",c3mOrderEntity.getOutTradeNo()); map.put("totalAmount",param.getTotalAmount()); return ResponseUtil.success(map); } }