CRMEB/backend/app/model/order/OrderCenter.php
吴昊天 78f56bb074 feat(送礼订单): 完善送礼/收礼订单全链路与详情性能
- 订单详情按查看者裁剪:购买者隐藏收货信息、物流轨迹及确认收货/申请退款/查看物流;领取人展示收货信息、物流轨迹与确认收货/查看物流
- 领取人订单列表纳入礼物订单并只读展示,统计计数含礼物、金额仅计本人支付
- 收礼人可确认收货;修复领取成功页订单号传递与领取页礼物详情查询
- 新增 eb_order_center.gift_uid 实体列与索引并同步安装 SQL
- 详情接口物流轨迹改为缓存读取 + 前端异步补齐,空轨迹短缓存 120 秒,修复送礼订单物流接口收货地址取值
2026-10-21 16:56:21 +08:00

97 lines
3.4 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
declare(strict_types=1);
namespace app\model\order;
use crmeb\basic\BaseModel;
use crmeb\trade\order\type\OrderTypeAdapterInterface;
use crmeb\traits\ModelTrait;
/**
* 订单中台模型
* 统一管理所有类型订单的元数据
*
* 状态常量已委托给 crmeb\trade\order\type\OrderTypeAdapterInterface
* 本模型保留常量别名以兼容已有代码,新代码请直接引用接口常量或从 Adapter 继承
*
* @method static $this where($field, $operator = null, $value = null)
* @property int $gift_uid 礼品领取人UID(0=未领取;领取后用于领取人订单列表/详情权限)
* @property int $pay_counted 购买次数已记账标记,与用户计数同事务提交
* @property int $take_rewards_given 收货奖励已记账标记,防止重复发奖
* @property array|string|null $refund_reward_accounted 退款奖励累计已处理目标,含已核对短缺
*/
class OrderCenter extends BaseModel
{
use ModelTrait;
/**
* 表名
* @var string
*/
protected $name = 'order_center';
/**
* 主键
* @var string
*/
protected $pk = 'id';
/**
* 统一状态码常量(委托给 OrderTypeAdapterInterface)
* 数据库字段 status_code
*/
const STATUS_PENDING_PAYMENT = OrderTypeAdapterInterface::STATUS_PENDING_PAYMENT;
const STATUS_PROCESSING = OrderTypeAdapterInterface::STATUS_PROCESSING;
const STATUS_PENDING_REVIEW = OrderTypeAdapterInterface::STATUS_PENDING_REVIEW;
const STATUS_COMPLETED = OrderTypeAdapterInterface::STATUS_COMPLETED;
const STATUS_CANCELED = OrderTypeAdapterInterface::STATUS_CANCELED;
const STATUS_AFTER_SALE = OrderTypeAdapterInterface::STATUS_AFTER_SALE;
const STATUS_REFUNDING = OrderTypeAdapterInterface::STATUS_REFUNDING;
const STATUS_REFUNDED = OrderTypeAdapterInterface::STATUS_REFUNDED;
const STATUS_DELETED = OrderTypeAdapterInterface::STATUS_DELETED;
/**
* 支付状态常量(委托给 OrderTypeAdapterInterface)
* 数据库字段 pay_status
*/
const PAY_UNPAID = OrderTypeAdapterInterface::PAY_UNPAID;
const PAY_PAID = OrderTypeAdapterInterface::PAY_PAID;
const PAY_PARTIAL_REFUND = OrderTypeAdapterInterface::PAY_PARTIAL_REFUND;
const PAY_FULL_REFUND = OrderTypeAdapterInterface::PAY_FULL_REFUND;
/**
* 退款状态常量(委托给 OrderTypeAdapterInterface)
* 数据库字段 refund_status
*/
const REFUND_NONE = OrderTypeAdapterInterface::REFUND_NONE;
const REFUND_APPLYING = OrderTypeAdapterInterface::REFUND_APPLYING;
const REFUND_SUCCESS = OrderTypeAdapterInterface::REFUND_SUCCESS;
/**
* 状态码映射表
* @var array<string, string>
*/
public static array $statusMap = OrderTypeAdapterInterface::STATUS_MAP;
/**
* 支付状态映射表
* @var array<int, string>
*/
public static array $payStatusMap = [
self::PAY_UNPAID => '未支付',
self::PAY_PAID => '已支付',
self::PAY_PARTIAL_REFUND => '部分退款',
self::PAY_FULL_REFUND => '全额退款',
];
/**
* 退款状态映射表
* @var array<int, string>
*/
public static array $refundStatusMap = [
self::REFUND_NONE => '无退款',
self::REFUND_APPLYING => '退款中',
self::REFUND_SUCCESS => '已退款',
];
}