예제 #1
0
def saveAccessHistory(request):
    ip = get_client_ip(request)
    xforward = get_x_forwarded_for(request)
    source = get_ip_source(ip)
    data = {'ip': ip, 'xforward': xforward}
    data.update(source)
    HouseService.saveAccessHistory(data)
예제 #2
0
 def readHudouOnlineData(self):
     pageIndex = 0
     hasPage = True
     #houses = []
     while (hasPage):
         data = self.getData(pageIndex, PAGE_SIZE)
         HouseService.saveAllHouses(data['data'])
         pageIndex = pageIndex + 1
         hasPage = True if (pageIndex < int(data['pagenum'])) else False
예제 #3
0
파일: houses.py 프로젝트: saberbill/hudou
def getReportSummary(request):
    date = datetime.datetime.today()
    areas = Area.objects.only('id', 'area_name').all()
    houses = HouseService.listAllHouses(HouseService)
    houseSolds = HouseService.listHousesSoldByDate(date)

    total = 0
    sold = 0
    amount = 0.0
    soldHouseAreaCountMap = {}

    for housesold in houseSolds:
        total = total + 1
        houseDetail = House.objects.get(id=housesold.house_id)
        key = 'areaId-' + str(houseDetail.area_id)
        areaCountData = soldHouseAreaCountMap.get(key, None)
        if (not areaCountData):
            areaCountData = {
                'areaId': houseDetail.area_id,
                'areaName': houseDetail.area_name,
                'count': 1,
                'soldCount': 0
            }
        else:
            areaCountData['count'] = areaCountData['count'] + 1
            soldHouseAreaCountMap[key] = areaCountData

        if (housesold.status == 1):
            sold = sold + 1
            if (housesold.special_price):
                price = housesold.special_price
            else:
                price = housesold.price * 0.88
            amount = amount + price

            areaCountData = soldHouseAreaCountMap.get(key, None)
            if (not areaCountData):
                areaCountData = {
                    'areaId': houseDetail.area_id,
                    'areaName': houseDetail.area_name,
                    'count': 1,
                    'soldCount': 1
                }
            else:
                areaCountData['soldCount'] = areaCountData['soldCount'] + 1
            soldHouseAreaCountMap[key] = areaCountData

    content = {
        'total': total,
        'sold': sold,
        'amount': round(amount, 2),
        'soldPercent': round(sold / float(total), 2),
        'soldHouseAreas': soldHouseAreaCountMap
    }

    print(content)
    return JsonResponse(content)
예제 #4
0
    def readHudouOnlineData(self):
        pageIndex = 0
        hasPage = True

        print('Fetching data...')
        while (hasPage):
            data = self.getData(pageIndex, PAGE_SIZE)
            HouseService.saveAllHouses(data['data'])
            pageIndex = pageIndex + 1
            hasPage = True if (pageIndex < int(data['pagenum'])) else False

        # generate daily summary
        today = todayWithChineseTZ()
        HouseService.generateDailySummary(today)
        print('Data fetching completed.')


#DataFetcher.readHudouOnlineData(DataFetcher)
예제 #5
0
def getHouseArea(request):
    today = todayWithChineseTZ().strftime("%Y-%m-%d")
    areas = []
    areaCounts = []
    totalAreas = HouseService.getOnlineHouses(today)
    for (k,v) in totalAreas.items():
        areas.append(k)
        areaCounts.append(v)
    data = {
        'count': len(totalAreas),
        'areas': areas,
        'areaCounts': areaCounts
    }
    return JsonResponse(data, content_type='application/json; charset=utf-8')
예제 #6
0
def index(request):
    today = todayWithChineseTZ()
    dailySummary = HouseService.listDailySummary(today)[0]
    soldPercent = round(dailySummary.soldRooms/dailySummary.totalRooms, 2)
    lastUpdated = toChineseTZ(dailySummary.lastUpdated)
    lastUpdated = lastUpdated.strftime("%Y-%m-%d %H:%M:%S")

    return render(request, 'index.html',{
        'turnover': round(dailySummary.turnover, 2),
        'totalRooms': dailySummary.totalRooms,
        'soldRooms': dailySummary.soldRooms,
        'soldPercent': format(soldPercent, '.00%'),
        'lastUpdated': lastUpdated,
    })
예제 #7
0
def getLatestSummary(request):
    days = request.GET.get('days')
    if(not days):
        days = '7'
    summaries = HouseService.listLatestDailySummary(int(days))

    dates = []
    soldRooms = []
    totalRooms = []
    turnovers = []
    for item in summaries[::-1]:
        dates.append(item.date)
        totalRooms.append(item.totalRooms)
        soldRooms.append(item.soldRooms)
        turnovers.append(item.turnover)
    data = {
        'count': len(summaries),
        'dates': dates,
        'totalRooms': totalRooms,
        'soldRooms': soldRooms,
        'turnovers': turnovers}

    return JsonResponse(data, content_type='application/json; charset=utf-8')
예제 #8
0
def clearOldData():
    HouseService.deleteOldHouseSold(7)
    HouseService.deleteOldAccessHistory(7)
예제 #9
0
def getDailySummary(date):
    dailySummary = HouseService.listDailySummary(date)

    return dailySummary
예제 #10
0
def getAccessHistory(request):
    today = todayWithChineseTZ().strftime("%Y-%m-%d")
    data = {'data': HouseService.getAccessHistory(today + ' 00:00:00', today + ' 23:59:59')}
    return JsonResponse(data, content_type='application/json; charset=utf-8')