• java 订单支付status逻辑


    一、java实现订单支付status逻辑,主要是通过位运算实现的,例:

    二、可设置常量来进行状态判断:

    public static final Long ORDER2_DELETED = (1L); //已删除
    public static final Long ORDER2_CANCELLED = (1L << 1); //已取消
    public static final Long ORDER2_ALLPAID = (1L << 6); //完成支付
    public static final Long ORDER2_REFUNDED = (1L << 7); //已退款
    public static final Long ORDER2_CANCEL_BYCUSTOMER = (1L << 8); //商家发起取消订单
    public static final Long ORDER2_CANCEL_BYMERCHANT = (1L << 9); //消费者发起取消订单
    public static final Long ORDER2_EXPRESS_FILLED = (1L << 10); //发货信息已填写
    public static final Long ORDER2_GOODS_SENT = (1L << 11); //已完成发货
    public static final Long ORDER2_GOODS_RECEIVED = (1L << 12); //消费者确认收货
    public static final Long ORDER2_ORDER_COMPLETED = (1L << 13); //订单已完成
    public static final Long ORDER2_PAIED_BYWECHAT = (1L << 16); //通过微信支付
    public static final Long ORDER2_PAIED_BYALI = (1L << 17); //通过支付宝支付

    三、通过从数据库中查询status值,与常量进行位运算,获取订单状态,如:

    (1)订单已删除:if ( status & ORDER2_DELETED  ==  ORDER2_DELETED)  { return "已删除";  }

    (2)订单已取消:if ( status & ORDER2_CANCELLED == ORDER2_CANCELLED) { return "已取消"; }

    (3)订单待收货:if ( (status & ORDER2_ALLPAID) == ORDER2_ALLPAID  &&  (status & ORDER2_GOODS_RECEIVED) != ORDER2_GOODS_RECEIVED) { return "待收货" ;}

    (4)订单待付款:if ( (status  &  ORDER2_DELETED) != ORDER2_DELETED && (status & ORDER2_CANCELLED) != ORDER2_CANCELLED &&( status & ORDER2_ALLPAID) != ORDER2_ALLPAID ) { return "待付款" ;}

      (5) 订单已完成:if ((status & ORDER2_ORDER_COMPLETED ) == ORDER2_ORDER_COMPLETED ) { return "订单已完成";}

    四、订单状态对应的操作,可设常量辅助,如:

    public static final Integer ORDERVO2_IMMEDIATE_PAY = 1;// 立即支付

    public static final Integer ORDERVO2_GOODS_ORDER_CANCEL = (1 << 1); // 取消订单

    public static final Integer ORDERVO2_BUY_AGAIN = (1 << 2); // 再次购买

    public static final Integer ORDERVO2_ENSURE_TAKE_GODDS = (1 << 3); // 确认收货

    (1)订单已删除:

    (2)订单已取消:再次购买  { return  buttonController = ORDERVO2_BUY_AGAIN }

      (3)  订单待收货:确认收货,再次购买  { return buttonController = ORDERVO2_BUY_AGAIN | ORDERVO2_ENSURE_TAKE_GODDS }

      (4)  订单待付款:取消订单、立即支付  { return buttonController = ORDERVO2_IMMEDIATE_PAY |  ORDERVO2_GOODS_ORDER_CANCEL }

      (5)  订单已完成:再次购买  { return buttonController = ORDERVO2_BUY_AGAIN }

    五、前台根据获取的  订单状态,buttonController 进行位运算,进行后续逻辑。

  • 相关阅读:
    css---box-sizing
    float与inline-block的一些应用场景的区别
    一些html元素的最原始状态
    css之深入理解overflow
    css中的锚点
    新增UI样式
    zh-CN、zh-Hans区别
    SourceTree 3.3.6安装跳过注册安装
    Windows sever 由于管理员设置的策略,该磁盘处于脱机状态的解决方法。
    CentOS7.x安装VNC实录
  • 原文地址:https://www.cnblogs.com/qqzhulu/p/10287954.html
Copyright © 2020-2023  润新知