package com.ynxbd.jy.bean; import com.ynxbd.common.bean.pay.ReqOrder; import com.ynxbd.jy.bean.enums.JYBusinessTypeEnum; import com.ynxbd.jy.bean.enums.JYOrderTypeDetailEnum; import com.ynxbd.jy.bean.enums.JYOrderTypeEnum; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import lombok.ToString; import lombok.extern.slf4j.Slf4j; import java.math.BigDecimal; @Slf4j @Getter @Setter @ToString @NoArgsConstructor public class JYOrder extends ReqOrder { private String clinicNo; private String hisTransDoneTime; private String hisOperatorNo; private String hisOperatorName; private String receiptNo; // ================================== private String applicationId; private String merchantId; // 应用方订单号 private String merOrderNum; // 支付平台订单号 private String orderId; // 支付平台支付流水号 private String orderTransId; // 支付网关订单号 private String threeTradeNo; // 银行流水号 private String finalTransNo; // 订单金额 private String orderAmt; // 退款金额 private String refundAmt; // 支付交易发起时间 private String tranDateTime; // 支付时间-YYYYMMDDHHMMSS(订单支付时间)未支付时,为空字符串 private String paymentTime; // 支付方式 private String payType; // 订单状态[详见字典数据5.2 没有发生过退款业务的数据会包含此字段,如果发生过退款业务,则不会返回此字段,请以退款明细中状态为准;] private String orderState; // 订单状态描述 private String orderStateMessage; // 订单费用类型[如:001:挂号费 002:医疗费 详见字典数据5.2订单费用类型] private String orderType; // 微信公众号用户标识 private String openId; // 订单最后退款次数,未退款时无此字段。 private String refundCount; // 订单最后退款时间,未退款时无此字段。 private String refundTime; // 商户ID private String appId; // 商户号 private String merchantNo; // 医保局返回信息 private String responseContent; // 由接入方生成的签名 private String signValue; // ==================================== // 支付类型明细 private String orderTypeDetail; public JYOrderTypeEnum orderTypeEnum; public JYBusinessTypeEnum businessTypeEnum; // 支付类型明细 public JYOrderTypeDetailEnum orderTypeDetailEnum; public int toInsurancePayType() { int payType = 0; if (super.totalFee.compareTo(super.insuranceFee) == 0) { payType = 2; // 医保 } else if (super.totalFee.compareTo(super.cashFee) == 0) { payType = 1; // 现金(1) } else { payType = 3; // 医保+现金 } return payType; } public int toConsumeType() { if (acctFee == null || insuranceFee == null) { return 0; } if (acctFee.compareTo(BigDecimal.ZERO) > 0 && insuranceFee.compareTo(BigDecimal.ZERO) > 0) { return 0; // 0:统筹+个账 } if (acctFee.compareTo(BigDecimal.ZERO) > 0 && insuranceFee.compareTo(BigDecimal.ZERO) == 0) { return 1; // 1:个账 } if (acctFee.compareTo(BigDecimal.ZERO) == 0 && insuranceFee.compareTo(BigDecimal.ZERO) > 0) { return 2; // 2:统筹 } return 0; } }