Пример #1
0
            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