def get_limit_answers(q_id,start=0,end=0): answers = Answer.objects.filter(q_id=q_id)[start:end] data=[] if answers: for i in range(0,answers.count()): try: one={} sql = "select dig_status from answer_dig a where a.a_id=%d and a.user_id=%d"%(answers[i].id,answers[i].user_id) dig_data=execute_sql(sql) if dig_data: one['dig_status']=dig_data[0][0] sql = "select count(*) from answer_dig a where a.a_id=%d and dig_status=1 "%(answers[0].id) agree_count = execute_sql(sql) one['agree_count']=agree_count[0][0] sql = "select count(*) from answer_dig a where a.a_id=%d and dig_status=-1 "%(answers[0].id) oppose_count = execute_sql(sql) one['oppose_count']=oppose_count[0][0] sql = "select u.id,u.nickname,IFNULL(u.url,u.id),u.role from answer_dig a,user u where a.a_id=%d and dig_status=1 and a.user_id=u.id "%(answers[i].id) dig_user = execute_sql(sql) if dig_user: one['dig_user']=dig_user one['answer']=answers[i] one['user'] = User.objects.filter(id=answers[i].user_id).values('id','nickname','role','head','url')[0] data.append(one) except IndexError: pass return data
def get_certain_answer(id): answers = Answer.objects.filter(id=id) data={} if answers: try: one={} sql = "select dig_status from answer_dig a where a.a_id=%d and a.user_id=%d"%(answers[0].id,answers[0].user_id) dig_data=execute_sql(sql) if dig_data: one['dig_status']=dig_data[0][0] sql = "select count(*) from answer_dig a where a.a_id=%d and dig_status=1 "%(answers[0].id) agree_count = execute_sql(sql) one['agree_count']=agree_count[0][0] sql = "select count(*) from answer_dig a where a.a_id=%d and dig_status=-1 "%(answers[0].id) oppose_count = execute_sql(sql) one['oppose_count']=oppose_count[0][0] sql = "select u.id,u.nickname,IFNULL(u.url,u.id),u.role from answer_dig a,user u where a.a_id=%d and dig_status=1 and a.user_id=u.id "%(answers[0].id) dig_user = execute_sql(sql) if dig_user: one['dig_user']=dig_user one['answer']=answers[0] one['user'] = User.objects.filter(id=answers[0].user_id).values('id','nickname','role','head','url')[0] data = one except IndexError, e: pass
def count_post(id): sql = "select count(*) from answer_dig a where a.a_id=%d and dig_status=1 "%(id) agree_count = execute_sql(sql) agree_count=agree_count[0][0] sql = "select count(*) from answer_dig a where a.a_id=%d and dig_status=-1 "%(id) oppose_count = execute_sql(sql) oppose_count=oppose_count[0][0] return str(agree_count),str(oppose_count)
def nofollow(request, id=None): u = request.session["user"] if id and id.isdigit(): id = int(id) sql = "select * from follow where user_id=%d and follow_id=%d" % (id, u.id) result = execute_sql(sql) if result: sql = "update follow f set f.type = 0 where user_id=%d and follow_id=%d" % (id, u.id) execute_sql(sql, operation="update") else: sql = "insert into follow values(%d,%d,0)" % (id, u.id) execute_sql(sql, operation="insert") return HttpResponse() else: raise Http404()
def check_user_follow(user_id, follow_id): sql = "select * from follow where user_id=%d and follow_id=%d and type=1 " % (user_id, follow_id) result = execute_sql(sql) if result: return True else: return False
def get_i_college_question_count(user_id): us = UserSchool.objects.get(id=user_id) if us.college: sql=" select count(*) from user_school as us,question as a where us.college = "+str(us.college)+" and a.user_id = us.id" result = execute_sql(sql) if result: return result[0][0] else: return 0
def get_limit_answered_questions(user_id,start=None,end=None): if start>=0 and end>=start: sql = """ select q.id,q.user_id,q.question,a.id,a.answer,a.create_time from answer as a ,question as q where a.user_id=%d and a.q_id=q.id ORDER BY a.create_time desc limit %d,%d """ % (user_id,start,end) answered_questions = execute_sql(sql) return answered_questions
def get_user_follower(user_id): sql = "select follow_id from follow as f where f.user_id=%d and type=1" % (user_id) result = execute_sql(sql) data = [] try: for follow_id in result: id = follow_id[0] user = User.objects.get(id=id) data.append(user) return data except Exception, e: return None
def post(user_id,a_id,action='agree'): try: a = Answer.objects.get(id=a_id) if action=='agree': if AnswerDig.objects.filter(user_id=user_id,a_id=a_id): sql = "update answer_dig a set a.dig_status=1 where a.a_id=%d and a.user_id=%d"%(a_id,user_id) execute_sql(sql,operation='update') else: sql = "insert into answer_dig(a_id,user_id,dig_status)values(%d,%d,%d)"%(a_id,user_id,1) execute_sql(sql,operation='insert') else: if AnswerDig.objects.filter(user_id=user_id,a_id=a_id): sql = "update answer_dig a set a.dig_status=-1 where a.a_id=%d and a.user_id=%d"%(a_id,user_id) execute_sql(sql,operation='update') else: sql = "insert into answer_dig(a_id,user_id,dig_status)values(%d,%d,%d)"%(a_id,user_id,-1) execute_sql(sql,operation='insert') return True except Exception, e: return False
def get_i_college_limit_questions(user_id,start,end): us = UserSchool.objects.get(id=user_id) data=[] if us.college: sql = "select a.id,a.user_id,a.question,a.create_time,a.answer_count,a.tag,a.subject from user_school us,question a where us.college="+str(us.college)+" and us.id = a.user_id order by create_time desc,answer_count desc limit "+str(start)+","+str(end)+"" results=execute_sql(sql) for a in results: id,user_id,question,create_time,answer_count,tag,subject=a q={} q['id']=id q['user_id']=user_id q['topic']=question q['comment_count']=answer_count q['create_time']=create_time q['question']=question one={} one['s']=get_c_subjects(subject) one['t']=get_c_tags(tag) one['q']=q one['u']=User.objects.get(id=user_id) data.append(one) return data