field(true) ->where(['status' => CouponEnum::COUPON_STATUS_CONDUCT]) ->where(['get_type' => CouponEnum::GET_TYPE_USER]) ->append([ 'is_available', 'is_receive', 'condition', 'is_empty', 'use_time_text', 'use_time_text2' ]) ->hidden($hidden) ->withAttr('is_empty', function ($value, $data) { // 判断优惠券是否库存已空 unset($value); if ($data['send_total_type'] == CouponEnum::SEND_TOTAL_TYPE_FIXED) { if ($data['send_total'] <= 0) { return 1; } $receiveTotal = (new CouponList())->where(['coupon_id'=>intval($data['id'])])->count(); if ($receiveTotal >= $data['send_total']) { return 1; } } return 0; }) ->order('id', 'desc') ->limit($this->limitOffset, $this->limitLength) ->select() ->toArray(); foreach ($lists as &$item) { $item['use_scene'] = CouponEnum::getUseGoodsTypeDesc($item['use_goods_type']); $item['effective_time'] = $item['use_time_text']; } return $lists; } /** * @notes 获取优惠券数量 * @return int * @author 张无忌 * @date 2021/7/29 18:14 */ public function count(): int { $model = new Coupon(); return $model->field(true) ->where(['status' => CouponEnum::COUPON_STATUS_CONDUCT]) ->count(); } }