Пример #1
0
 def set_heard_user(self, question_id, user_id):
     heard = Heard(question_id, user_id)
     session.add(heard)
     session.commit()
     if heard:
         user = session.query(User).filter(User.id == user_id)
         user.update({'heard_num': User.heard_num + 1})
         session.commit()
         question = session.query(Question).filter(Question.id == question_id)
         question.update({'listener_num': Question.listener_num})
         session.commit()
     return heard
Пример #2
0
 def toJson(self):
     ask_user = session.query(User).filter(
         User.id == self.ask_user_id).first().toJson()
     answer_user = session.query(User).filter(
         User.id == self.answer_user_id).first().toJson()
     return dict(id=self.id,
                 state=self.state,
                 content=self.content,
                 price=self.price,
                 public=self.public,
                 listener_num=self.listener_num,
                 voice_length=self.voice_length,
                 voice_url=self.voice_url,
                 create_time=self.create_time.strftime('%Y-%m-%d %H:%M:%S'),
                 ask_user=ask_user,
                 answer_user=answer_user)
Пример #3
0
 def answer_question(self, id, length, url):
     question = session.query(Question).filter(Question.id == id)
     if question:
         question.update({'voice_length': length})
         question.update({'voice_url': url})
         question.update({'state': 1})
         session.commit()
         user = session.query(User).filter(
             User.id == question.first().answer_user_id)
         user.update({'answer_num': User.answer_num + 1})
         user.update({'earning': User.earning + question.first().price})
         user.update({'income': User.income + question.first().price})
         session.commit()
         return question.first()
     else:
         return question
Пример #4
0
 def get_user_heard_questions(self, user_id, offset, size):
     res = session.query(Heard).filter(Heard.user_id == user_id).offset(offset).limit(size).all()
     question_list = []
     if res:
         for x in res:
             question_list.append(x.toJson())
     return question_list
Пример #5
0
 def get_user_list(self, offset, size):
     res = session.query(User).order_by(
         User.answer_num.desc()).offset(offset).limit(size).all()
     user_list = []
     if res:
         for x in res:
             user_list.append(x.toJson())
     return user_list
Пример #6
0
 def get_similar_users(self, keyword, offset, size):
     res = session.query(User).order_by(User.answer_num.desc()).filter(
         User.username.ilike(
             '%{}%'.format(keyword))).offset(offset).limit(size).all()
     user_list = []
     if res:
         for x in res:
             user_list.append(x.toJson())
     return user_list
Пример #7
0
 def update_user_info(self, user_id, **kwargs):
     user_data = session.query(User).filter(User.id == user_id)
     if user_data:
         for key in kwargs:
             user_data.update({key: kwargs[key]})
         session.commit()
         return user_data.first()
     else:
         return user_data
Пример #8
0
 def login(self, third_party_uuid, username, icon, device_token):
     exist_user_data = session.query(User).filter(
         User.third_party_uuid == third_party_uuid).first()
     if exist_user_data:
         return exist_user_data
     new_user_data = User(third_party_uuid, username, icon, device_token)
     session.add(new_user_data)
     session.commit()
     return new_user_data
Пример #9
0
 def get_similar_questions(self, keyword, offset, size):
     res = session.query(Question).order_by(
         Question.create_time.desc()).filter(
             Question.content.ilike(
                 '%{}%'.format(keyword))).offset(offset).limit(size).all()
     question_list = []
     if res:
         for x in res:
             question_list.append(x.toJson())
     return question_list
Пример #10
0
 def get_hot_questions(self, offset, size):
     res = session.query(Question).order_by(
         Question.create_time.desc()).filter(
             and_(Question.public == 1, Question.voice_url !=
                  None)).offset(offset).limit(size).all()
     question_list = []
     if res:
         for x in res:
             question_list.append(x.toJson())
     return question_list
Пример #11
0
 def get_related_questions(self, type, user_id, offset, size):
     if type == 'history':
         res = session.query(Question).order_by(
             Question.create_time.desc()).filter(
                 and_(Question.answer_user_id == user_id,
                      Question.voice_url != None, Question.public ==
                      1)).offset(offset).limit(size).all()
     elif type == 'ask':
         res = session.query(Question).order_by(
             Question.create_time.desc()).filter(
                 Question.ask_user_id == user_id).offset(offset).limit(
                     size).all()
     elif type == 'answer':
         res = session.query(Question).order_by(
             Question.create_time.desc()).filter(
                 Question.answer_user_id == user_id).offset(offset).limit(
                     size).all()
     question_list = []
     if res:
         for x in res:
             question_list.append(x.toJson())
     return question_list
Пример #12
0
 def create_question(self, **kwargs):
     now = datetime.datetime.now()
     now.strftime('%Y-%m-%d %H:%M:%S')
     question = Question(kwargs['content'], kwargs['price'],
                         kwargs['public'], kwargs['ask_uuid'],
                         kwargs['answer_uuid'], 0, now, 0)
     session.add(question)
     session.commit()
     if question:
         user = session.query(User).filter(User.id == question.ask_user_id)
         user.update({'ask_num': User.ask_num + 1})
         session.commit()
     return question
Пример #13
0
 def get_question_detail(self, id):
     question = session.query(Question).filter(Question.id == id).first()
     return question
Пример #14
0
 def check_user_heard_question(self, user_id, question_id):
     heard = session.query(Heard).filter(and_(Heard.user_id == user_id, Heard.question_id == question_id)).all()
     return heard
Пример #15
0
 def toJson(self):
     question = session.query(Question).filter(Question.id == self.question_id).first().toJson()
     return dict(id=self.id, question=question)
Пример #16
0
 def get_user_info(self, user_id):
     user_data = session.query(User).filter(User.id == user_id).first()
     return user_data