diff --git a/order/src/main/java/com/yoho/ufo/order/constant/TradeStatusEnum.java b/order/src/main/java/com/yoho/ufo/order/constant/TradeStatusEnum.java index 1b6d0ba..4da755e 100644 --- a/order/src/main/java/com/yoho/ufo/order/constant/TradeStatusEnum.java +++ b/order/src/main/java/com/yoho/ufo/order/constant/TradeStatusEnum.java @@ -1,36 +1,69 @@ package com.yoho.ufo.order.constant; +import java.util.Optional; +import java.util.stream.Stream; + /** * 交易流水表 - * 100:成功;200:失败,201:没有支付宝账号;202:金额不合法;299:转账失败 */ public enum TradeStatusEnum { - TRANSFERING(90,"转账中"), - SUCCESS(100,"成功"), - FAIL_200_FAIL(200,"打款失败"), - FAIL_201_NO_ALIPAY_ACCOUNT(201,"没有支付宝账号"), - FAIL_202_INVALID_MONEY(202,"金额不合法"), - HK_AMOUNT_WAIT_PAYMENT(203,"海外卖家待付款"), - YOHO_STORE_AMOUNT_WAIT_PAYMENT(204,"YOHO!STORE卖家待付款"), - HK_AMOUNT_PAYING(213,"海外卖家付款中"), - FAIL_299_TRANSFER_FAILURE(299,"转账失败"); - private Integer code; - private String desc; - - TradeStatusEnum(Integer code,String desc){ + NEW(0, ""), + /** + * 待用户申请打款 + */ + WAIT_APPLY_CASH(10, ""), + /** + * 转账中,用户已经申请打款 + */ + APPLY_CASH(11, ""), + /** + * 转转中,等待付款结果 + */ + TRANSFER_WAITING(90, ""), + /** + * 转账或退款已完成 + */ + SUCCESS(100, "成功"), + + FAIL_200_REFUND_FAIL(200, "退款失败", true), + FAIL_201_NO_ALIPAY_ACCOUNT(201, "没有支付宝账号", true), + FAIL_202_INVALID_MONEY(202, "金额不合法", true), + FAIL_203_HK_AMOUNT_WAIT_PAYMENT(203, "海外卖家待付款", true), + FAIL_204_YOHO_STORE_AMOUNT_WAIT_PAYMENT(204, "YOHO!STORE卖家待付款", true), + FAIL_213_HK_AMOUNT_PAYING(213, "海外卖家付款中", true), + FAIL_299_TRANSFER_FAIL(299, "转账失败", true); + private final Integer code; + private final String desc; + private final boolean fail; + + TradeStatusEnum(Integer code, String desc) { + this(code, desc, false); + } + + TradeStatusEnum(Integer code, String desc, boolean fail) { this.code = code; this.desc = desc; + this.fail = fail; } - public static String getDescByCode(Integer code){ - if(code==null){ - return ""; - } - for(TradeStatusEnum item:TradeStatusEnum.values()){ - if(code.intValue() == item.code.intValue()){ - return item.desc; - } + public Integer getCode() { + return code; + } + + public String getDesc() { + return desc; + } + + public boolean isFail() { + return fail; + } + + public static Optional<TradeStatusEnum> codeOf(Integer code) { + if (code == null) { + Optional.empty(); } - return ""; + return Stream.of(TradeStatusEnum.values()) + .filter(item -> code.intValue() == item.code.intValue()) + .findAny(); } } diff --git a/order/src/main/java/com/yoho/ufo/order/service/impl/TradeBillsServiceImpl.java b/order/src/main/java/com/yoho/ufo/order/service/impl/TradeBillsServiceImpl.java index 0b8804d..0b27dc4 100644 --- a/order/src/main/java/com/yoho/ufo/order/service/impl/TradeBillsServiceImpl.java +++ b/order/src/main/java/com/yoho/ufo/order/service/impl/TradeBillsServiceImpl.java @@ -359,8 +359,10 @@ public class TradeBillsServiceImpl implements ITradeBillsService { AlipayBatchTransferErrorEnum error = AlipayBatchTransferErrorEnum.getByCode(payErrorCode); failReason = Objects.nonNull(error) ? error.getDesc() : payErrorCode; } else { - failReason = TradeStatusEnum.getDescByCode(item.getTradeStatus()); - failReason = StringUtils.isBlank(failReason) ? String.valueOf(item.getTradeStatus()) : failReason; + failReason = TradeStatusEnum.codeOf(item.getTradeStatus()) + .filter(e -> e.isFail()) + .map(TradeStatusEnum::getDesc) + .orElse(StringUtils.EMPTY); } resp.setTradeStatusDesc(failReason); } diff --git a/web/src/main/webapp/html/billsManage/list.html b/web/src/main/webapp/html/billsManage/list.html index 8fcf2f0..ffd8a75 100644 --- a/web/src/main/webapp/html/billsManage/list.html +++ b/web/src/main/webapp/html/billsManage/list.html @@ -291,7 +291,8 @@ function getTradeBillsList(){ width: 40, align: "center", formatter: function (value, rowData, rowIndex) { - if (rowData.tradeStatus != 100) { + // 已收款 和 等待打款结果 不可以打款 + if (rowData.tradeStatus != 100 && rowData.tradeStatus != 90) { var btn= "<a role='confirmDialog' onclick='openConfirmDialog(\"%s\",\"%s\",\"%s\",\"%s\",\"%s\")' style='margin-left:10px;background-color: #5cb85c !important;'>打款</a>"; btn = btn.replace("%s",rowData.id); btn = btn.replace("%s",rowData.uid);