'integer', 'coupon_type' => 'integer', 'is_admin_edit' => 'integer', 'status' => 'integer']; const string CREATED_AT = 'create_time'; const string UPDATED_AT = 'update_time'; /** * @param int $id * @return CouponTemplate|\Hyperf\Database\Model\Model|array|null */ public function getInfoById(int $id): CouponTemplate|\Hyperf\Database\Model\Model|array|null { return $this->find($id); } /** * 获取所有数据 * @param array $ids * @return array */ public function getDataByIds(array $ids): array { $data = $this->whereIn('id',$ids)->get(); if (empty($data)){ return []; } $res = []; foreach ($data->toArray() as $one) { $res[$one['id']] = $one; } return $res; } /** * @param int $userId * @return Collection */ public function getNoUseCouponByUserId(int $userId): Collection { return $this ->join('user_coupon', function ($join) use ($userId) { $join->on('user_coupon.coupon_template_id', '=', 'coupon_template.id') ->where('user_coupon.user_id', '=', $userId) ->where('user_coupon.status', '=', CouponCode::COUPON_STATUS_UNUSED) ->where('validity_start_time', '<=', date('Y-m-d H:i:s')) ->where('validity_end_time', '>=', date('Y-m-d H:i:s')) ->select([ 'coupon_template.coupon_type', 'coupon_template.amount', 'coupon_template.ratio', 'user_coupon.id', 'user_coupon.coupon_template_id', 'user_coupon.coupon_name', 'user_coupon.status', 'user_coupon.validity_start_time', 'user_coupon.validity_end_time', ]); }) ->get(); } }