def make_special_user(): house_area, house_type, income, cooler_heater_type = 1, 1, 1, 1 user_email = "User%d%d%d%d"%(house_area, house_type, income, cooler_heater_type) password = '******' u = User(user_email, password) db.session.add(u) db.session.commit() ui = UserInfo._make_user_info_with_email(user_email, house_area, house_type, income, cooler_heater_type) db.session.add(ui) db.session.commit() DEFAULT_YEAR, DEFAULT_MOONTH, DEFAULT_DAY, DEFAULT_TIME = 2013, 12, 1, 0 special_energy_set = [3, 3, 5, 4, 6, 5, 2, 9, 1, 8, 5, 7, 4, 9, 3, 5, 2, 7, 7, 6, 1, 1, 1, 1, 6, 2, 9, 5, 9, 5] dt = datetime(DEFAULT_YEAR, DEFAULT_MOONTH, DEFAULT_DAY, DEFAULT_TIME) for day_plus in xrange(1, 31): for time_plus in xrange(0,24): energy_amount = special_energy_set[day_plus-1]*200 ed = EnergyData._make_energy_data_with_email(user_email, dt, energy_amount) db.session.add(ed) dt += timedelta(hours=1) db.session.commit()
def dispatch_request(self): try: date = datetime.now().day email = request.form['userEmail'] daily_datas = EnergyData.get_month_energy_datas(email) standby_datas = EnergyData.get_month_standby_datas(email) friend_dats = EnergyData.get_month_energy_datas('User1111') result = {'daily_datas':daily_datas, 'standby_datas':standby_datas, 'friend_datas':friend_dats, 'day':date} result = json.dumps(result) return result except Exception, e: print e return 'False'
def make_energy_data(user_email, energy_amount): DEFAULT_YEAR, DEFAULT_MOONTH, DEFAULT_DAY, DEFAULT_TIME = 2013, 12, 1, 0 minus_flag = -1 dt = datetime(DEFAULT_YEAR, DEFAULT_MOONTH, DEFAULT_DAY, DEFAULT_TIME) for day_plus in xrange(1, 31): for time_plus in xrange(0,24): growth_amount = random.random()*10*minus_flag energy_amount += growth_amount minus_flag *= -1 ed = EnergyData._make_energy_data_with_email(user_email, dt, energy_amount) db.session.add(ed) dt += timedelta(hours=1) db.session.commit()
def dispatch_request(self): try: email = request.form['userEmail'] submit_time = request.form['submitTime'] energy_amount = int(request.form['energyAmount']) energy = EnergyData._make_energy_data_with_email(email, submit_time, energy_amount) db.session.add(energy) db.session.commit() return 'True' except Exception, e: print e return 'False'
def get_avg_energy_data_with_date(self, start_date, end_date): try: user_infos = UserInfo.query.filter_by( house_area=self.house_area \ ,house_type=self.house_type\ ,income_type=self.income_type\ ,cooler_heater_type=self.cooler_heater_type).all() watt_sum = 0 count = 0 for user_info in user_infos: user_id = user_info.user.id eds = EnergyData.get_energy_datas_with_date(user_id, start_date, end_date) for ed in eds: count+=1 watt_sum += ed.energy_amount count = (count/24)*len(user_infos) result = "%.2f"%(float(watt_sum)/count) except Exception, e: print user_infos return 0