TRX 1 år sedan
förälder
incheckning
cc26eeb6c5

+ 0 - 3
FullCardClient/src/main/java/com/zhongshu/card/client/model/payment/ExpenseFlowModel.java

@@ -60,9 +60,6 @@ public class ExpenseFlowModel extends SuperModel {
     @Schema(description = "消费金额(单位:分)")
     private BigDecimal payAmount;
 
-    @Schema(description = "关联信息")
-    private Object param;
-
     @Schema(description = "订单是否创建成功")
     private Boolean isCreateSuccess = Boolean.TRUE;
 

+ 7 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/payment/HxzController.java

@@ -46,4 +46,11 @@ public class HxzController {
         return hxzService.orderQuery(param);
     }
 
+    @Operation(summary = "付款码(二维码)支付接口")
+    @PostMapping(value = "QRCodeTransaction", consumes = MediaType.APPLICATION_JSON_VALUE)
+    public ResultContent qRCodeTransaction(@RequestBody QRCodeTransactionModel param) {
+        return hxzService.qRCodeTransaction(param);
+    }
+
+
 }

+ 38 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/payment/ExpenseFlowServiceImpl.java

@@ -5,6 +5,7 @@ import com.github.microservice.components.data.base.util.PageEntityUtil;
 import com.github.microservice.models.hxz.ConsumTransactionsFullParam;
 import com.github.microservice.models.hxz.ConsumTransactionsModel;
 import com.github.microservice.models.hxz.ConsumTransactionsResult;
+import com.github.microservice.models.hxz.QRCodeTransactionModel;
 import com.github.microservice.models.type.PaymentDeviceType;
 import com.zhongshu.card.client.model.payment.ExpenseFlowCount;
 import com.zhongshu.card.client.model.payment.ExpenseFlowModel;
@@ -242,6 +243,38 @@ public class ExpenseFlowServiceImpl extends SuperService implements ExpenseFlowS
         return ResultContent.buildSuccess();
     }
 
+    /**
+     * 通过 付款码(二维码)支付接口 创建订单
+     * @param iotParam
+     * @return
+     */
+    public ResultContent<ExpenseFlow> createExpenseFlowByHxz(QRCodeTransactionModel iotParam) {
+        ExpenseFlow expenseFlow = new ExpenseFlow();
+
+        expenseFlow.setYear(DateUtils.paresTime(System.currentTimeMillis(), DateUtils.patternyyyy));
+        expenseFlow.setMonth(DateUtils.paresTime(System.currentTimeMillis(), DateUtils.patternMM));
+        expenseFlow.setPaymentTime(DateUtils.paresTime(System.currentTimeMillis(), DateUtils.patternyyyySSS));
+
+        // 消费订单号
+//        expenseFlow.setOrderNo(iotParam.getOrder());
+//        expenseFlow.setCardNo(iotParam.getCardNo());
+        String paymentNo = NextNoUtil.getNextPaymentNo(null);
+        // 支付订单号
+        expenseFlow.setPaymentNo(paymentNo);
+        BigDecimal amount = CommonUtil.turnMoney2BigDecimal(iotParam.getAmount());
+        expenseFlow.setPayAmount(amount);
+
+        String deviceId = iotParam.getDeviceId();
+        // 设备信息
+        expenseFlow.setDeviceId(deviceId);
+        // 支付方式
+        expenseFlow.setPaymentWay(iotParam.getPaymentType().getRemark());
+        expenseFlow.setParam(iotParam);
+        expenseFlow.setPaymentDeviceType(PaymentDeviceType.HxzConsumTransactions);
+        expenseFlowDao.save(expenseFlow);
+        return ResultContent.buildSuccess(expenseFlow);
+    }
+
     /**
      * 查询构建支付返回结果
      *
@@ -328,6 +361,11 @@ public class ExpenseFlowServiceImpl extends SuperService implements ExpenseFlowS
         ExpenseFlowModel model = new ExpenseFlowModel();
         if (ObjectUtils.isNotEmpty(entity)) {
             BeanUtils.copyProperties(entity, model);
+
+            // 卡片信息
+
+            // 用户信息
+
         }
         return model;
     }

+ 37 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/payment/HxzService.java

@@ -123,5 +123,42 @@ public class HxzService extends SuperService {
         return ResultContent.buildSuccess(JSONUtil.toJsonStr(result));
     }
 
+    /**
+     * 付款码(二维码)支付接口
+     *
+     * @param param
+     * @return
+     */
+    public ResultContent qRCodeTransaction(QRCodeTransactionModel param) {
+        //  返回参数
+        QRCodeTransactionFullResult result = new QRCodeTransactionFullResult();
+        result.setPaymentType(param.getPaymentType());
+        QRCodeTransactionResult model = new QRCodeTransactionResult();
+
+        // 创建订单
+        ResultContent<ExpenseFlow> createResult = expenseFlowService.createExpenseFlowByHxz(param);
+        if (createResult.isFailed()) {
+            model.setFailed(createResult.getMsg());
+            requestInfoService.addRequestInfo(param, model);
+            result.setModel(model);
+            return ResultContent.buildSuccess(JSONUtil.toJsonStr(result));
+        }
+        ExpenseFlow expenseFlow = createResult.getContent();
+
+        // 扣款支付订单
+        ResultContent<ExpenseFlow> resultContent = expenseFlowService.expendPay(expenseFlow);
+        if (resultContent.isFailed()) {
+            model.setFailed(resultContent.getMsg());
+            requestInfoService.addRequestInfo(param, model);
+            result.setModel(model);
+            return ResultContent.buildSuccess(JSONUtil.toJsonStr(result));
+        }
+        // 构建返回结果
+//        model = expenseFlowService.buildConsumTransactionsResult(expenseFlow.getOrderNo(), expenseFlow.getCardNo());
+//        result.setModel(model);
+        // 记录日志
+        requestInfoService.addRequestInfo(param, model);
+        return ResultContent.buildSuccess(JSONUtil.toJsonStr(result));
+    }
 
 }