یک شرکت فراهمکننده سرویس اینترنت (ISP- Internet Service Provider) دو سال است که شروع به کار کرده و در این مدت برای جذب مشتری بیشتر، صرفا سرویس نامحدود اینترنت و با قیمت مناسب ارایه داده است. این شرکت در این دو سال، میزان و نحوه مصرف هر یک مشتریان خود را با دقت رصد کرده است و حالا که بازار را در دست گرفته و ارایه سرویس نامحدود دیگر برایش مقرون بهصرفه نیست، قصد دارد متناسب با نیازهای مشتریانش، تعدادی سرویس محدود تعریف کرده و به آنها پیشنهاد دهد. اولین قدم برای این کار، دستهبندی کاربران بر اساس فاکتورهای مختلف است و شما هم به همین دلیل استخدام شدهاید.
فایل Source را دانلود کرده و محتوای آن را ببینید. اطلاعات مربوط به میزان مصرف هر مشتری در تاریخهای مختلف در شیای از نوع TrafficUsage
ذخیره شده است و توسط متد loadAll
در کلاس TrafficUsageDao
در قالب یک لیست در اختیار شما قرار میگیرد. هر رکورد از این لیست، دارای اطلاعات زیر است:
user
: کاربرinternal
: مشخص میکند که اینترنت مصرفی داخلی بوده یا خارجیnightly
: مشخص میکند اینترنت مصرفی مربوط به حجم روزانه بوده یا شبانهdate
: تاریخ مصرف حجم اینترنت- یک رشته با فرمت yy/MM/dd است (مانند 97/08/25).
usage
: میزان مصرف اینترنت بر حسب مگابایت
در کلاس TrafficUsageService
قرار است به کمک این دادهها، اطلاعات زیر استخراج شده و در دستهبندی مشتریان مورد استفاده قرار بگیرد:
- عاشقان رسانههای اجتماعی (متد socialMediaLovers):
- مشتریانی که در طول ماه مورد نظر از سال مورد نظر، مجموع مصرف آنها از اینترنت خارجی، از مصرف اینترنت خارجی حداقل 90% سایر کاربران فعال در آن ماه بیشتر باشد.
- مثلا اگر علی در تیر 97 به میزان 50 گیگ اینترنت خارجی مصرف کرده اما حداقل 90% سایر کاربران، هر کدام در تیر 97 مصرفشان از اینترنت خارجی کمتر از 50 گیگ بوده، علی از عاشقان رسانههای اجتماعی در تیر 97 بوده است.
- منظور از کاربر فعال در یک بازه زمانی خاص، کاربری است که حداقل یک رکورد
TrafficUsage
در آن ماه و به نام آن کاربر ثبت شده باشد.
- مشتریانی که در طول ماه مورد نظر از سال مورد نظر، مجموع مصرف آنها از اینترنت خارجی، از مصرف اینترنت خارجی حداقل 90% سایر کاربران فعال در آن ماه بیشتر باشد.
- مشتریان عشق دانلود (متد downloadLovers):
- مشتریانی که در طول ماه مورد نظر از سال مورد نظر، مجموع مصرف آنها از اینترنت شبانه، بیش از مجموع مصرف آنها از اینترنت روزانه باشد. **نکته**:
- در هر یک از دو سرویس مورد نظر، به هر دلیلی اگر کاربری پیدا نشود، باید یک لیست خالی برگردانده شود (خروجی متد
null
نباشد).
با اجرای متد main
در کلاس Main
، خروجی زیر مورد انتظار است:
socialMediaLovers:
a100
downloadLovers:
a100
a101
a102
آنچه باید آپلود کنید:
یک فایل زیپ شامل بستهی com.rahnema.isp.service.impl است. به صورتی که وقتی فایل زیپ را باز میکنیم، دقیقا شاخهی com را ببینیم که درون آن شاخهی rahnema و درون آن شاخهی isp و درون آن شاخه service و درون آن شاخه impl قرار دارد. در داخل شاخهی impl فقط و فقط فایل TrafficUsageServiceImpl.java وجود دارد.
ارسال پاسخ برای این سؤال