TRX преди 1 година
родител
ревизия
4d5372aa74

+ 14 - 6
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/payment/ExpenseFlow.java

@@ -3,6 +3,7 @@ package com.zhongshu.card.server.core.domain.payment;
 import com.github.microservice.models.type.OrderFromType;
 import com.github.microservice.models.type.PaymentDeviceType;
 import com.github.microservice.models.type.PaymentType;
+import com.github.microservice.types.OrderModeType;
 import com.github.microservice.types.OrderState;
 import com.zhongshu.card.client.type.RefundState;
 import com.zhongshu.card.server.core.domain.base.SuperMain;
@@ -43,6 +44,16 @@ public class ExpenseFlow extends SuperMain {
     @Schema(description = "订单的总体状态")
     private OrderState orderType;
 
+    @Schema(description = "订单类型")
+    private OrderModeType orderModeType = OrderModeType.Consume;
+
+    @Schema(description = "支付方式")
+    @Indexed
+    private String paymentWay;
+
+    @Schema(description = "支付方式")
+    private PaymentType paymentType = PaymentType.WxQrCode;
+
     @Schema(description = "消费的用户userId")
     private String userId;
 
@@ -117,12 +128,6 @@ public class ExpenseFlow extends SuperMain {
     @Schema(description = "支付来源:刷卡 二维码")
     private OrderFromType orderFromType;
 
-    @Schema(description = "支付方式")
-    @Indexed
-    private String paymentWay;
-
-    @Schema(description = "支付方式")
-    private PaymentType paymentType = PaymentType.WxQrCode;
 
     @Schema(description = "付款码内容")
     private String qr;
@@ -135,6 +140,9 @@ public class ExpenseFlow extends SuperMain {
     @Indexed
     private Object param;
 
+    // 交易模式(0:刷卡扣费 1:现金充值2:余额查询 3:钱包转账 4:现金退款)
+    private Integer mode = 0;
+
     @Schema(description = "订单是否创建成功")
     private Boolean isCreateSuccess = Boolean.TRUE;
 

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/org/OrganizationServiceImpl.java

@@ -378,7 +378,7 @@ public class OrganizationServiceImpl extends SuperService implements Organizatio
     public ResultContent<OrganizationSimpleModel> getDetail(String oid) {
         Organization organization = organizationDao.findTopByOid(oid);
         if (ObjectUtils.isEmpty(organization)) {
-            return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, oid));
+            return ResultContent.buildFail(String.format("机构不存在:%s", oid));
         }
         OrganizationSimpleModel model = toSimpleModel(organization);
         return ResultContent.buildSuccess(model);

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

@@ -8,6 +8,7 @@ import com.github.microservice.models.hxz.*;
 import com.github.microservice.models.type.OrderFromType;
 import com.github.microservice.models.type.PaymentDeviceType;
 import com.github.microservice.models.type.PaymentType;
+import com.github.microservice.types.OrderModeType;
 import com.github.microservice.types.OrderState;
 import com.zhongshu.card.client.model.operLogs.OperationLogsAddParam;
 import com.zhongshu.card.client.model.payment.*;
@@ -174,53 +175,65 @@ public class ExpenseFlowServiceImpl extends SuperService implements ExpenseFlowS
             expenseFlowDao.save(entity);
             return ResultContent.buildSuccess(entity);
         }
-
-        PaymentType paymentType = entity.getPaymentType();
-        // 调用支付中心
-        CreateOrderParam param = new CreateOrderParam();
-        param.setProjectOid(entity.getProjectOid());
-        param.setUserId(entity.getUserId());
-        param.setShopId(entity.getShopOid());
-        param.setSchoolId(entity.getSchoolOid());
-        param.setTotal(entity.getPayAmount());
-        param.setOutTradeNo(entity.getPaymentNo());
-        param.setPaymentType(paymentType);
-        String desc = "消费";
-        param.setDescription(desc);
-
-        OperationLogsAddParam logsAddParam = initLog(entity.getUserId());
-        logsAddParam.setTitle(desc);
-        logsAddParam.setDataId(entity.getPaymentNo());
-        entity.setPayStartTime(System.currentTimeMillis());
-        ResultContent content = orderPayFeignService.createAndPay(param);
-        if (content.isSuccess()) {
-            // 关联参数
-            String msg = "支付成功";
-            entity.setPaymentStatus(msg);
-            entity.setIsPaySuccess(Boolean.TRUE);
-            entity.setPayRemark(msg);
-            entity.setOrderType(OrderState.HAVE_PAID);
-            logsAddParam.setMessageType(MessageType.Info);
-            logsAddParam.setLevel(LogsLevel.Low);
-            logsAddParam.setContent(msg);
-        } else {
-            String msg = content.getMsg();
-            if (StringUtils.isNotEmpty(msg) && msg.contains("Connection reset")) {
-                msg = "调用支付中心失败";
+        if (entity.getMode() != null) {
+            if (entity.getMode() == 0) {
+                entity.setOrderModeType(OrderModeType.Consume);
+                // 消费模式
+                PaymentType paymentType = entity.getPaymentType();
+                // 调用支付中心
+                CreateOrderParam param = new CreateOrderParam();
+                param.setProjectOid(entity.getProjectOid());
+                param.setUserId(entity.getUserId());
+                param.setShopId(entity.getShopOid());
+                param.setSchoolId(entity.getSchoolOid());
+                param.setTotal(entity.getPayAmount());
+                param.setOutTradeNo(entity.getPaymentNo());
+                param.setPaymentType(paymentType);
+                String desc = "消费";
+                param.setDescription(desc);
+
+                OperationLogsAddParam logsAddParam = initLog(entity.getUserId());
+                logsAddParam.setTitle(desc);
+                logsAddParam.setDataId(entity.getPaymentNo());
+                entity.setPayStartTime(System.currentTimeMillis());
+                ResultContent content = orderPayFeignService.createAndPay(param);
+                if (content.isSuccess()) {
+                    // 关联参数
+                    String msg = "支付成功";
+                    entity.setPaymentStatus(msg);
+                    entity.setIsPaySuccess(Boolean.TRUE);
+                    entity.setPayRemark(msg);
+                    entity.setOrderType(OrderState.HAVE_PAID);
+                    logsAddParam.setMessageType(MessageType.Info);
+                    logsAddParam.setLevel(LogsLevel.Low);
+                    logsAddParam.setContent(msg);
+                } else {
+                    String msg = content.getMsg();
+                    if (StringUtils.isNotEmpty(msg) && msg.contains("Connection reset")) {
+                        msg = "调用支付中心失败";
+                    }
+                    entity.setPaymentStatus(msg);
+                    entity.setIsPaySuccess(Boolean.FALSE);
+                    entity.setPayRemark(msg);
+                    entity.setOrderType(OrderState.PAID_ERROR);
+                    logsAddParam.setMessageType(MessageType.Warn);
+                    logsAddParam.setLevel(LogsLevel.Low);
+                    logsAddParam.setContent(msg);
+                }
+                operationLogsService.addLog(logsAddParam);
+                entity.setPayEndTime(System.currentTimeMillis());
+                entity.setPayMillis(entity.getPayEndTime() - entity.getPayStartTime());
+                expenseFlowDao.save(entity);
+            } else if (entity.getMode() == 2) {
+                // 查询余额模式
+                entity.setOrderModeType(OrderModeType.BalanceInquiry);
+                entity.setPaymentStatus("查询余额");
+                entity.setPayRemark("查询余额");
+                entity.setOrderType(OrderState.PAID_ERROR);
+                entity.setIsPaySuccess(Boolean.TRUE);
+                expenseFlowDao.save(entity);
             }
-            entity.setPaymentStatus(msg);
-            entity.setIsPaySuccess(Boolean.FALSE);
-            entity.setPayRemark(msg);
-            entity.setOrderType(OrderState.PAID_ERROR);
-            logsAddParam.setMessageType(MessageType.Warn);
-            logsAddParam.setLevel(LogsLevel.Low);
-            logsAddParam.setContent(msg);
-        }
-        operationLogsService.addLog(logsAddParam);
-        entity.setPayEndTime(System.currentTimeMillis());
-        entity.setPayMillis(entity.getPayEndTime() - entity.getPayStartTime());
-        expenseFlowDao.save(entity);
-
+        }
         return ResultContent.buildSuccess();
     }
 
@@ -361,10 +374,11 @@ public class ExpenseFlowServiceImpl extends SuperService implements ExpenseFlowS
             }
 
             ConsumTransactionsModel iotParam = (ConsumTransactionsModel) entity.getParam();
-            if (iotParam.getMode() != 0 && iotParam.getPayType() != 0) {
+            if ((iotParam.getMode() != 0 || iotParam.getMode() != 2) && iotParam.getPayType() != 0) {
                 entity.setVerifyError("消费模式不支持");
                 return;
             }
+            entity.setMode(iotParam.getMode());
         }
 
         // 验证用户信息
@@ -399,7 +413,7 @@ public class ExpenseFlowServiceImpl extends SuperService implements ExpenseFlowS
 
         // 金额判断
         BigDecimal payAmount = entity.getPayAmount();
-        if (CommonUtil.bigDecimalIsEmpty(payAmount)) {
+        if (entity.getMode() == 0 && CommonUtil.bigDecimalIsEmpty(payAmount)) {
             entity.setVerifyError("消费金额不能为0");
             return;
         }