def status(self): content = self.input['Content'].split() if len(content) == 1: return self.STATUS_NOT_FIND else: content = content[1] if content is not None: # 在name字段匹配 activity_1 = Activity.get_all_activities() if activity_1: activity_1 = activity_1.filter(name=content) if activity_1 and len(activity_1) > 0: activity_1 = activity_1[0] else: activity_1 = None # 在key字段匹配 activity_2 = Activity.get_all_activities() if activity_2: activity_2 = activity_2.filter(name=content) if activity_2 and len(activity_2) > 0: activity_2 = activity_2[0] else: activity_2 = None if activity_1: activity = activity_1 elif activity_2: activity = activity_2 else: return self.STATUS_NO_ACTIVITY my_ticket = Ticket.get_by_activity_and_student_number( activity.id, self.user.student_id) valid_ticket = None for tic in my_ticket: if tic.status == Ticket.STATUS_VALID: valid_ticket = tic if not my_ticket: return self.STATUS_NO_TICKET if not valid_ticket: return self.STATUS_NOT_LEGAL else: valid_ticket.status = Ticket.STATUS_CANCELLED valid_ticket.save() activity.remain_tickets = activity.remain_tickets + 1 activity.save() return self.STATUS_VALID
def handle(self): content = self.input['Content'].split() if len(content) == 1: return self.reply_text('退票失败,找不到需要退票的活动_(:з」∠)_') else: content = content[1] if content is not None: # 在name字段匹配 activity_1 = Activity.get_all_activities() if activity_1: activity_1 = activity_1.filter(name=content) if activity_1 and len(activity_1) > 0: activity_1 = activity_1[0] else: activity_1 = None # 在key字段匹配 activity_2 = Activity.get_all_activities() if activity_2: activity_2 = activity_2.filter(name=content) if activity_2 and len(activity_2) > 0: activity_2 = activity_2[0] else: activity_2 = None if activity_1: activity = activity_1 elif activity_2: activity = activity_2 else: return self.reply_text('退票失败,找不到需要退票的活动_(:з」∠)_') my_ticket = Ticket.get_by_activity_and_student_number( activity.id, self.user.student_id) valid_ticket = None for tic in my_ticket: if tic.status == Ticket.STATUS_VALID: valid_ticket = tic if not my_ticket: return self.reply_text('退票失败,您没有此次活动的电子票!|・ω・`)') if not valid_ticket: return self.reply_text('退票失败,您没有此次活动的合法电子票!|・ω・`)') else: valid_ticket.status = Ticket.STATUS_CANCELLED valid_ticket.save() activity.remain_tickets = activity.remain_tickets + 1 activity.save() return self.reply_text('活动 [' + activity.name + '] 退票成功!')
def get(self): """ input: 空 返回活动对象的数组(要求status>=0) 需要登录 """ if not self.request.user.is_authenticated(): raise ValidateError("admin-user not login!") else: result = [] activity_list = Activity.get_all_activities() for act in activity_list: if act.status >= 0: temp = { 'id': act.id, 'name': act.name, 'description': act.description, 'startTime': time.mktime( time.strptime( act.start_time.strftime('%Y-%m-%d %H:%M:%S'), '%Y-%m-%d %H:%M:%S')), "endTime": time.mktime( time.strptime( act.end_time.strftime('%Y-%m-%d %H:%M:%S'), '%Y-%m-%d %H:%M:%S')), 'place': act.place, 'bookStart': time.mktime( time.strptime( act.book_start.strftime('%Y-%m-%d %H:%M:%S'), '%Y-%m-%d %H:%M:%S')), 'bookEnd': time.mktime( time.strptime( act.book_end.strftime('%Y-%m-%d %H:%M:%S'), '%Y-%m-%d %H:%M:%S')), 'currentTime': int(time.time()), # 当前时间的秒级时间戳 'status': act.status, } result.append(temp) return result
def handle(self): all_activities = Activity.get_all_activities().order_by('book_start') all_activities_list = [] for act in all_activities: all_activities_list.append(act) while len(all_activities_list) > 8: all_activities_list = all_activities_list[1:] if len(all_activities_list) > 8: all_activities_list.pop() result = [] for act in all_activities_list: result.append({ 'Title': act.name, 'Url': self.url_activity_detail(act.id) }) return self.reply_news(result)
def get(self): """ input: 空 返回可加入菜单的活动对象数组 需要登录 """ if not self.request.user.is_authenticated(): raise ValidateError("admin-user not login!") else: result = [] activity_list = Activity.get_all_activities() for act in activity_list: if act.status >= 0: temp = {'id': act.id, 'name': act.name, 'menuIndex': 0} result.append(temp) for ii in range(5): index = ii + 1 opposite_index = index * (-1) if index <= len(result): result[opposite_index]['menuIndex'] = index return result
def handle(self): if self.is_msg_type('text'): # 通过取票命令进入 search = self.input['Content'].split() if len(search) == 1: return self.reply_text('找不到此活动Orz') else: search = search[1] # 在name字段匹配 if search is not None: activity_1 = Activity.get_all_activities() if activity_1: activity_1 = activity_1.filter(name=search) if activity_1 and len(activity_1) > 0: activity_1 = activity_1[0] else: activity_1 = None # 在key字段匹配 if search is not None: activity_2 = Activity.get_all_activities() if activity_2: activity_2 = activity_2.filter(name=search) if activity_2 and len(activity_2) > 0: activity_2 = activity_2[0] else: activity_2 = None if activity_1: activity = activity_1 elif activity_2: activity = activity_2 else: return self.reply_text('找不到此活动Orz') # 此时activity必定存在 my_ticket = Ticket.get_by_activity_and_student_number( activity.id, self.user.student_id) if len(my_ticket) == 0: return self.reply_text('您还没有此活动的票!Ծ‸Ծ') valid_ticket = None for tic in my_ticket: if tic.status == Ticket.STATUS_VALID: valid_ticket = tic if not valid_ticket: return self.reply_text('您还没有此活动的合法票!Ծ‸Ծ') return self.reply_single_news({ 'Title': '[' + activity.name + '] 电子票', 'Description': '活动名称:' + activity.name + '\n活动代称:' + activity.key, 'Url': self.url_ticket_detail(valid_ticket.unique_id), }) elif self.is_msg_type('event'): # 通过取票按钮进入 ticket_list = Ticket.get_user_tickets(self.user.student_id) ticket_list = ticket_list.order_by('-activity__start_time') if len(ticket_list) == 0: return self.reply_text('您尚未持有任何票0.0') if len(ticket_list) > 8: ticket_list = ticket_list[:7] result = [] for tic in ticket_list: act = tic.activity result.append({ 'Title': '[' + act.name + '] 电子票', 'Url': self.url_ticket_detail(tic.unique_id) }) return self.reply_news(result) return
def handle(self): if self.is_msg_type('text'): # 通过抢票命令进入 search = self.input['Content'].split() if len(search) == 1: return self.reply_text('找不到此活动Orz') else: search = search[1] # 在name字段匹配 if search is not None: activity_1 = Activity.get_all_activities() if activity_1: activity_1 = activity_1.filter(name=search) if activity_1 and len(activity_1) > 0: activity_1 = activity_1[0] else: activity_1 = None # 在key字段匹配 if search is not None: activity_2 = Activity.get_all_activities() if activity_2: activity_2 = activity_2.filter(name=search) if activity_2 and len(activity_2) > 0: activity_2 = activity_2[0] else: activity_2 = None if activity_1: activity = activity_1 elif activity_2: activity = activity_2 else: # STATUS_NO_ACTIVITY return self.reply_text('找不到此活动Orz') elif self.is_msg_type('event'): activity_id = int(self.input['EventKey'].replace( self.view.event_keys['book_header'], '')) try: activity = Activity.get_by_id(activity_id) except LogicError: # STATUS_NO_ACTIVITY return self.reply_text('找不到此活动Orz') if not activity: # STATUS_NO_ACTIVITY return self.reply_text('找不到此活动Orz') # 此时activity必定存在 my_ticket = Ticket.get_by_activity_and_student_number( activity.id, self.user.student_id) temp = [] for tic in my_ticket: temp.append(tic) my_ticket = temp while len( my_ticket) > 0 and my_ticket[0].status != Ticket.STATUS_VALID: my_ticket.pop(0) if len(my_ticket) == 0: if activity.remain_tickets > 0: activity.remain_tickets = activity.remain_tickets - 1 activity.save() unique = '%s%s' % (str(int(round( time.time() * 1000))), str(uuid.uuid1())) ticket = Ticket(student_id=self.user.student_id, unique_id=unique, status=Ticket.STATUS_VALID, activity=activity) ticket.save() # STATUS_NO_VALID return self.reply_single_news({ 'Title': '[' + activity.name + '] 抢票成功!', 'Description': '活动名称:' + activity.name + '\n活动代称:' + activity.key + '\n请于活动开始时前往现场使用,您可以通过 [查票] 菜单查询电子票、或发送 [取票/退票 活动名称或代称] 查询或退票(・◇・)', 'Url': self.url_ticket_detail(ticket.unique_id), }) else: return self.reply_text('此活动的电子票已经全部发出,没有抢到QwQ') else: my_ticket = my_ticket[0] # STATUS_HAS_GOT return self.reply_single_news({ 'Title': '[' + activity.name + '] 电子票', 'Description': '活动名称:' + activity.name + '\n活动代称:' + activity.key, 'Url': self.url_ticket_detail(my_ticket.unique_id), })
def status(self): if self.is_msg_type('text'): # 通过抢票命令进入 search = self.input['Content'].split() if len(search) == 1: return self.reply_text('找不到此活动Orz') else: search = search[1] # 在name字段匹配 if search is not None: activity_1 = Activity.get_all_activities() if activity_1: activity_1 = activity_1.filter(name=search) if activity_1 and len(activity_1) > 0: activity_1 = activity_1[0] else: activity_1 = None # 在key字段匹配 if search is not None: activity_2 = Activity.get_all_activities() if activity_2: activity_2 = activity_2.filter(name=search) if activity_2 and len(activity_2) > 0: activity_2 = activity_2[0] else: activity_2 = None if activity_1: activity = activity_1 elif activity_2: activity = activity_2 else: return self.STATUS_NO_ACTIVITY elif self.is_msg_type('event'): activity_id = int(self.input['EventKey'].replace( self.view.event_keys['book_header'], '')) try: activity = Activity.get_by_id(activity_id) except LogicError: return self.STATUS_NO_ACTIVITY if not activity: return self.STATUS_NO_ACTIVITY # 此时activity必定存在 my_ticket = Ticket.get_by_activity_and_student_number( activity.id, self.user.student_id) temp = [] for tic in my_ticket: temp.append(tic) my_ticket = temp while len( my_ticket) > 0 and my_ticket[0].status != Ticket.STATUS_VALID: my_ticket.pop(0) if len(my_ticket) == 0: if activity.remain_tickets > 0: activity.remain_tickets = activity.remain_tickets - 1 activity.save() unique = '%s%s' % (str(int(round( time.time() * 1000))), str(uuid.uuid1())) ticket = Ticket(student_id=self.user.student_id, unique_id=unique, status=Ticket.STATUS_VALID, activity=activity) ticket.save() return self.STATUS_VALID else: return self.STATUS_NO_TICKET else: return self.STATUS_HAS_GOT