def get(self,clazz_id): '''根据时间戳获取班级消息列表''' time = int(request.args.get('time','0')) messages = None if time: messages = Message.objects(Q(create_time__lt=time) & Q(clazz_id=clazz_id)).order_by('-create_time')[:5] else: messages = Message.objects(clazz_id=clazz_id).order_by('-create_time')[:10] response={} response['code']=200 messages_json=[] for message in messages: messages_json.append(message.json(False)) response['data']=messages_json return response
def get(self,message_id): '''获取单条消息''' response={} response['code']=200 mode = int(request.args.get('mode')) if mode==0: message = Message.objects(id=message_id).first() response['data']=message.json(False) elif mode==1: message = Message.objects(id=message_id).first() response['data']=message.json(True) else: message = Message.objects(id=message_id).only('read_users').only('comments').first() response_data = {} response_data['read_users_count']=len(message.read_users) response_data['comments_count']=len(message.comments) response['data']=response_data return response
def put(self,message_id): '''设置消息已读''' args = set_message_read_parser.parse_args() message = Message.objects(id=message_id).first() if message.publisher_id == args['user_id']: return {'code':200} user = User.objects(id=args['user_id']).first() if user not in message.read_users : message.read_users.append(user) message.update(set__read_users=message.read_users) return {'code':200}
def delete(self,message_id): '''删除一条消息''' response={} user_id = request.args.get('user_id') message = Message.objects(id=message_id).first() if str(message.publisher_id)==user_id: message.delete() response['msg']='删除成功' response['code']=200 else: response['msg']='只有消息发布者才能删除' response['code']=208; return response
def delete(self,message_id,comment_id): '''删除评论''' message = Message.objects(id=message_id).first() message.comments.remove(message.comments.get(comment_id=comment_id)) message.comments.save() # index = 0 # for comment in message.comments: # if comment.comment_id == comment_id: # break # index+=1 # del message.comments[index] # message.update(comments=message.comments) return {'code':200,'msg':'删除评论成功'}
def put(self,message_id): '''发布评论''' args = add_comment_parser.parse_args() message = Message.objects(id=message_id).first() user = User.objects(id=args['user_id']).first() comment = Comment() comment.comment_id = str(ObjectId.from_datetime(generation_time=datetime.datetime.now())) comment.content = args['content'] comment.publisher = user.name comment.publisher_id = str(user.id) comment.publish_time = time.time() * 1000 message.comments.append(comment) message.update(comments = message.comments) return {'code':200,'msg':'发布评论成功'}
def post(self): '''发布消息''' response = {} args = publish_message_parser.parse_args() message = Message() message.content = args['content'] message.title = args['title'] user = User.objects(id=args['user_id']).only('name').first() message.publisher = user.name message.publisher_id = args['user_id'] message.clazz_id = args['clazz_id'] message.create_time = time.time()*1000 members = Member.objects(Q(clazz_id=args['clazz_id']) & Q(status=1)).only('user') unread_users = [] for member in members: if str(member.user.id) != args['user_id']: unread_users.append(member.user) message.unread_users = unread_users if args['attachments'] != None: items = eval(args['attachments']) mongo_attachments = [] for item in items: attachment = Attachment() attachment.width = item['width'] attachment.height = item['height'] attachment.url = "http://qiniu1.com/" + item['key'] mongo_attachments.append(attachment) message.attachments = mongo_attachments message.save() response['code']=200 response['msg']='发送消息成功' response['data']=message.json(False) threading.Thread(target=send_publish_message_push, args=(unread_users,message.id)).start() return response