where('user_id', $value); } public function searchTypeAttribute($query, $value, array $params): mixed { if (empty($value)) { return $query; } return $query->where('type', $value); } public function searchIsValidAttribute($query, $value, array $params): mixed { if ($value == 1) { return $query->where(function ($where) { $where->orWhere('valid_at', '<', time())->orWhere('is_use', '=', 1); }); } else { return $query->where('is_use', 0)->where('valid_at', '>=', time()); } } public function searchMinMoneyMinAttribute($query, $value, array $params): mixed { if (empty($value)) { return $query; } return $query->where('min_money', '<=', $value); } public function searchIsUseAttribute($query, $value, array $params): mixed { return $query->where('is_use', $value); } public function dataCreateTimeAttribute($value, $params) { if (empty($value)) { return '---'; } return date('Y-m-d H:i:s', $value); } /** * 获取订单优惠券 * @param int $user_id * @param int $type * @param int $coupon_id * @return array */ public function getOrderCoupon(int $user_id, int $type, int $coupon_id = 0, $total_amount = 0) { // 计算优惠券 $coupons = (new UserCouponModel())->getList( params: [ 'user_id' => $user_id, 'type' => $type, 'min_money_min' => $total_amount, 'is_valid' => 0, 'is_use' => 0 ]); $min_money = '0.00'; $money = '0.00'; if (!empty($coupon_id)) { foreach ($coupons as $key => $val) { if ($val['id'] == $coupon_id) { $min_money = $val['min_money']; $money = $val['money']; } } } return [ 'min_money' => $min_money, 'money' => $money, 'coupons' => $coupons, ]; } }