def edit_question_tags(qid, tags): db_session.begin() new_tags(tags) db_session.query(Question_Tag).filter_by(question_id=qid).delete() db_session.add_all([Question_Tag(qid,tag) for tag in tags]) db_session.commit() return QUESTION_TAG_EDIT_OK
def edit_question_tags(qid, tags): db_session.begin() new_tags(tags) db_session.query(Question_Tag).filter_by(question_id=qid).delete() db_session.add_all([Question_Tag(qid, tag) for tag in tags]) db_session.commit() return QUESTION_TAG_EDIT_OK
def new_resource_download(rd): download = db_session.query(Resource_Download).filter_by(resource_id=rd.resource_id, user_id=rd.user_id).first() if download: return RESOURCE_DOWNLOAD_DUPLICATE db_session.add(rd) resource = db_session.query(Resource).get(rd.resource_id) resource.download_count += 1 db_session.commit() return RESOURCE_DOWNLOAD_ADD_OK
def new_resource_download(rd): db_session.begin() download = db_session.query(Resource_Download).filter_by( resource_id=rd.resource_id, user_id=rd.user_id).first() if download: return RESOURCE_DOWNLOAD_DUPLICATE db_session.add(rd) resource = db_session.query(Resource).get(rd.resource_id) resource.download_count += 1 db_session.commit() return RESOURCE_DOWNLOAD_ADD_OK
def new_answer_up(answer_up): db_session.begin() au = db_session.query(Answer_Up).filter_by(answer_id=answer_up.answer_id, user_id=answer_up.user_id).first() if au: return ANSWER_UP_DUPLICATE db_session.add(answer_up) anwser = db_session.query(Answer).get(answer_up.answer_id) anwser.up += 1 db_session.commit() return ANSWER_UP_ADD_OK
def new_answer_up(answer_up): db_session.begin() au = db_session.query(Answer_Up).filter_by( answer_id=answer_up.answer_id, user_id=answer_up.user_id).first() if au: return ANSWER_UP_DUPLICATE db_session.add(answer_up) anwser = db_session.query(Answer).get(answer_up.answer_id) anwser.up += 1 db_session.commit() return ANSWER_UP_ADD_OK
def get_question_by_ids(ids): ''' 输入问题ID数组 输出问题数组 ''' questions = db_session.query(Question).get(set(ids)) return questions
def get_question_by_tags(tags): tags = db_session.query(Question_Tag).filter(Question_Tag.tag.in_(tags)).order_by(Question_Tag.id.desc()).all() qs = [] for t in tags: if not t.question in qs: qs.append(t.question) return qs
def get_resource_by_tags(tags): tags = db_session.query(Resource_Tag).filter(Resource_Tag.tag.in_(tags)).order_by(Resource_Tag.id.desc()).all() rs = [] for t in tags: if not t.resource in rs: rs.append(t.resource) return rs
def get_resource_by_tags(tags): tags = db_session.query(Resource_Tag).filter( Resource_Tag.tag.in_(tags)).order_by(Resource_Tag.id.desc()).all() rs = [] for t in tags: if not t.resource in rs: rs.append(t.resource) return rs
def new_answer(resourceanswer): db_session.add(resourceanswer) resource = db_session.query(Resource).get(resourceanswer.resource_id) resource.answer_count += 1 db_session.commit() return ANSWER_ADD_OK
def new_tag_follow(tag_follow): tf = db_session.query(Tag_Follow).filter_by(user_id=tag_follow.user_id, tag=tag_follow.tag).first() if tf: return TAG_FOLLOW_DUPLICATE db_session.add(tag_follow) db_session.commit() return TAG_FOLLOW_ADD_OK
def get_question_by_tags(tags): tags = db_session.query(Question_Tag).filter( Question_Tag.tag.in_(tags)).order_by(Question_Tag.id.desc()).all() qs = [] for t in tags: if not t.question in qs: qs.append(t.question) return qs
def new_answer(answer): db_session.begin() db_session.add(answer) question = db_session.query(Question).get(answer.question_id) question.answer_count += 1 db_session.commit() return ANSWER_ADD_OK
def new_tag_follow(tag_follow): db_session.begin() tf = db_session.query(Tag_Follow).filter_by(user_id=tag_follow.user_id, tag=tag_follow.tag).first() if tf: return TAG_FOLLOW_DUPLICATE db_session.add(tag_follow) db_session.commit() return TAG_FOLLOW_ADD_OK
def user_login(user, remember): u = db_session.query(User).filter_by(email=user.email, passwd=user.passwd).first() if not u: return USER_NOT_EXIST user.id = u.id user.nickname = u.nickname login_user(u, remember=remember) return USER_LOGIN_OK
def new_resource_mark(resource_mark): au = db_session.query(Resource_Mark).filter_by(resource_id=resource_mark.resource_id, user_id=resource_mark.user_id).first() if au: if resource_mark.mark_type == 'good' : return ANSWER_GOOD_DUPLICATE if resource_mark.mark_type == 'bad' : return ANSWER_BAD_DUPLICATE db_session.add(resource_mark) resorce = db_session.query(Resource).get(resource_mark.resource_id) if resource_mark.mark_type == 'good' : resorce.score += 1 resorce.good += 1 db_session.commit() return ANSWER_GOOD_ADD_OK elif resource_mark.mark_type == 'bad' : resorce.score -= 1 resorce.bad += 1 db_session.commit() return ANSWER_BAD_ADD_OK
def get_question_by_uid(uid): questions = db_session.query(Question).filter_by(user_id=uid).order_by(Question.id.desc()).all() return questions
def get_question_by_id(id): question = db_session.query(Question).get(id) return question
def get_question_by_time(time): questions = db_session.query(Question).filter(Question.create_time>time).all() return questions
def get_tag_by_tags(tags): return db_session.query(Tag).filter(Tag.tag.in_(tags)).all()
def get_tag_by_id(id): return db_session.query(Tag).filter_by(id=id).first()
def get_user_by_name(nickname): user = db_session.query(User).filter_by(nickname=nickname).first() return user
def get_all_tags(): return db_session.query(Tag).all()
def get_remind_by_id(id): remind = db_session.query(Remind).get(id) return remind
def get_user_by_id(id): user = db_session.query(User).get(id) return user
def new_tags(tags): ts = db_session.query(Tag.tag).filter(Tag.tag.in_(tags)).all() ts = [t[0] for t in ts] db_session.add_all([Tag(t) for t in tags if t not in ts]) return TAG_ADD_OK
def get_unread_reminds(uid): reminds = db_session.query(Remind).filter_by(user_id=uid, has_read=False).all() return reminds
def get_question_by_tag(tag): tags = db_session.query(Question_Tag).filter_by(tag=tag).all() return [t.question for t in tags]
def get_question_titles(count, page=0): questions = db_session.query(Question.id, Question.title).order_by( Question.id.desc()).limit(count).offset(page * count).all() return questions
def get_question_by_uid(uid): questions = db_session.query(Question).filter_by(user_id=uid).order_by( Question.id.desc()).all() return questions
def get_user_by_email(email): user = db_session.query(User).filter_by(email=email).first() return user
def get_latest_tags(count, page=0): return db_session.query(Tag).order_by(Tag.id.desc()).limit(count).offset( page * count).all()
def get_question_gt_id(id, count): questions = db_session.query(Question).filter(Question.id > id).order_by( Question.id).limit(count).all() return questions
def get_tag_by_like(query, count): return db_session.query(Tag).filter(Tag.tag.like('%'+query+'%')).limit(count).all()
def get_tag_by_tag(tag): return db_session.query(Tag).filter_by(tag=tag).first()
def get_question_by_like(query, count): return db_session.query(Question).filter(Question.title.like('%'+query+'%')).limit(count).all()
def get_latest_tags(count, page=0): return db_session.query(Tag).order_by(Tag.id.desc()).limit(count).offset(page*count).all()
def get_question_by_time(time): questions = db_session.query(Question).filter( Question.create_time > time).all() return questions
def get_latest_resources(count, page=0): resources = db_session.query(Resource).order_by( Resource.id.desc()).limit(count).offset(page * count).all() return resources
def get_resource_titles(count): resources = db_session.query(Resource.id, Resource.title).order_by(Resource.id.desc()).limit(count).all() return resources
def get_question_gt_id(id, count): questions = db_session.query(Question).filter(Question.id>id).order_by(Question.id).limit(count).all() return questions
def get_resource_by_like(query, count): return db_session.query(Resource).filter(Resource.title.like('%'+query+'%')).limit(count).all()
def get_resource_by_tag(tag): tags = db_session.query(Resource_Tag).filter_by(tag=tag).all() return [t.resource for t in tags]
def get_question_titles(count, page=0): questions = db_session.query(Question.id, Question.title).order_by(Question.id.desc()).limit(count).offset(page*count).all() return questions
def edit_resource_tags(rid, tags): new_tags(tags) db_session.query(Resource_Tag).filter_by(resource_id=rid).delete() db_session.add_all([Resource_Tag(rid,tag) for tag in tags]) db_session.commit() return RESOURCE_TAG_EDIT_OK
def get_resource_by_uid(uid): resources = db_session.query(Resource).filter_by(user_id=uid).order_by( Resource.id.desc()).all() return resources
def get_resource_titles(count): resources = db_session.query(Resource.id, Resource.title).order_by( Resource.id.desc()).limit(count).all() return resources
def get_hotest_resources(count): resources = db_session.query(Resource).order_by( Resource.download_count.desc(), Resource.id.desc()).limit(count).all() return resources