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)
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
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)
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)
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')
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, })
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')
def clearOldData(): HouseService.deleteOldHouseSold(7) HouseService.deleteOldAccessHistory(7)
def getDailySummary(date): dailySummary = HouseService.listDailySummary(date) return dailySummary
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')