status的设计

今天在做一个活动功能的时候,涉及到活动的状态,会根据status属性和valid_start和valid_end来确定数据的最终status,最开始做的时候做的比较复杂,在各个需要判断活动状态的地方都做了判断,后来经过主管指点,重新进行规划

在Model页做了如下更改

public static $finalStatusList = [
    1 => '待提交',
    2 => '待审核',
    3 => '审核不通过',
    4 => '审核通过',
    5 => '已上线',
    6 => '已下线',
];

public function getFinalStatus()
{
    if ($this->is_deleted) {
        return 0;
    }
    if ($this->is_canceled) {
        return 6;
    }
    if ($this->status == 4 && $this->valid_start < date('Y-m-d H:i:s') && $this->valid_end > date('Y-m-d H:i:s')) {
        return 5;
    }
    if ($this->status == 4 && $this->valid_end < date('Y-m-d H:i:s')) {
        return 6;
    }
    return $this->status;
}

其中,finalStatusList是自己规划的一个最终状态值得数组,

getFinalStauts是根据数据的相关特性判断数据的最终状态值

然后就可以直接在页面需要使用状态值得地方直接使用,如果是需要显示状态信息,则在相关help文件写下如下方法

public static function finalStatus2Des($status)
{
    if (isset(ActList::$finalStatusList[$status])) {
        return ActList::$finalStatusList[$status];
    }
    return '未知';
}

在此记录下,是希望自己在以后的开发中,多多注意,不要做那么多无用功!








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值