コード例 #1
0
 def POST(self):
     mydata = web.input()
     print mydata
     web.header("Access-Control-Allow-Origin", "*")
     must_params = set({'qt_stem','currentPage',})
     question = model.Question_model()
     Knowledge = model.Knowledge_model() 
     currentPage = int(mydata.currentPage)-1;
     if(util.paramsok(must_params,mydata) == 2):
         response = util.Response(status = util.Status.__params_not_ok__)
         return util.objtojson(response)
     else:
         print 222
         result = orm.db.query('select * from question where qt_stem like \'%%%s%%\'\
             order by qt_id limit %s,%s'%(mydata.qt_stem,currentPage*10,10))
         # result = orm.db.query('select * from question where qt_stem like \'%%%s%%\''%(mydata.qt_stem))
         questionlist = []
         result = [model.Question_model(**item) for item in result ]
         print result
         result1= question.query('select count(*) from question where qt_stem like \'%%%s%%\''%(mydata.qt_stem))
         count = result1[0]['count(*)']
         for params in result:
             qt = params
             qt['qt_type']=util.type[qt.qt_type]
             Knowledge = model.Knowledge_model()
             KnowledgeData = Knowledge.getByPK(qt.knowledge_kl_id) 
             qt['kl_name'] = KnowledgeData.kl_name 
             questionlist.append(qt)
         # response = util.Response(status=util.Status.__success__,body = questionlist)
         # return util.objtojson(response)
         page = util.Page(data = questionlist, totalRow = count, currentPage = int(mydata.currentPage), pageSize = 10, status=util.Status.__success__, message = "未知")
         response = util.Response(status=util.Status.__success__,body=page)
         return util.objtojson(response) 
コード例 #2
0
 def POST(self):
     mydata = web.input()
     kp = model.Knowledge_model()
     must_params = kp.__notnull__
     web.header("Access-Control-Allow-Origin", "*") 
     if(util.paramsok(must_params, mydata) == 2):
         response = util.Response(status=util.Status.__params_not_ok__)
         return util.objtojson(response)
     else:
         kp = model.Knowledge_model(**mydata)
         if kp.insert():
             response = util.Response(status=util.Status.__success__)
             return util.objtojson(response)
         else:
             response = util.Response(status=util.Status.__error__)
             return util.objtojson(response)
コード例 #3
0
 def POST(self):
     web.header("Access-Control-Allow-Origin", "*")
     # 接收参数
     params = web.input()
     pageSize = 9999
     strategyTerm = model.Strategy_term_model(**params)
     currentPage = int(params.currentPage) - 1
     result = strategyTerm.query('select * from strategy_term where strategy_sg_id =%s \
         order by sm_id desc limit %s,%s' % (strategyTerm.strategy_sg_id, currentPage * pageSize, pageSize))
     strategyTermList = []
     total_score = 0
     for item in result:
         item['sm_type'] = util.type[item.sm_type]
         Knowledge = model.Knowledge_model()
         if item.sm_knowledge == 0:
             item['kl_name'] = "全部知识点"
         else:
             KnowledgeData = Knowledge.getByPK(item.sm_knowledge)
             item['kl_name'] = KnowledgeData.kl_name
         questionbackData = model.Questions_bank_model.getByPK(item.qb_id)
         item['qb_name'] = questionbackData.qb_name
         total_score += int(item['sm_score']) * int(item['sm_number'])
         strategyTermList.append(item)
     strategy = model.Strategy_model()
     strategy.sg_id = strategyTerm.strategy_sg_id
     strategy.sg_score = total_score
     strategy.update()
     result = strategyTerm.query('select count(*) from strategy_term where \
         strategy_sg_id =%s' % (strategyTerm.strategy_sg_id))
     page = util.Page(data=strategyTermList, totalRow=result[0]['count(*)'], currentPage=int(params.currentPage),
                      pageSize=pageSize, status=util.Status.__success__, message=total_score)
     response = util.Response(status=util.Status.__success__, body=page)
     return util.objtojson(response)
コード例 #4
0
 def POST(self):
     web.header("Access-Control-Allow-Origin", "*")
     mydata = web.input()
     Knowledge = model.Knowledge_model()
     result = Knowledge.getByArgs()
     KnowledgeData = Knowledge.getByPage(int(mydata.currentPage)-1)
     page = util.Page(data = KnowledgeData, totalRow = len(result), currentPage = int(mydata.currentPage), pageSize = 10, status=util.Status.__success__, message = "未知")
     response = util.Response(status=util.Status.__success__,body=page)
     return util.objtojson(response)
コード例 #5
0
    def POST(self):
        mydata = web.input()
        qt = model.Question_model()
        kp = model.Knowledge_model()
        web.header("Access-Control-Allow-Origin", "*")
        qbhq = model.Questions_bank_has_question_model()
        must_params = set({
            'qt_id',
            'qt_type',
            'qt_stem',
            'kl_name',
            'qb_id',
        })
        if (util.paramsok(must_params, mydata) == 2):
            response = util.Response(status=util.Status.__params_not_ok__)
            return util.objtojson(response)
        else:
            knowlagedata = kp.getByArgs(kl_name=mydata.kl_name)
            qt = model.Question_model(**mydata)
            qt.knowledge_kl_id = knowlagedata[0].kl_id
            qt.qt_state = 0
            qt.update()
            if mydata.qt_type == 'choice':
                choice = model.Choice_model(**mydata)
                choice.question_qt_id = qt.qt_id
                choice.update()
                response = util.Response(status=util.Status.__success__)
                return util.objtojson(response)
            elif mydata.qt_type == 'coding':
                coding = model.Coding_model(**mydata)
                coding.question_qt_id = qt.qt_id
                coding.update()

                # shutil.rmtree('%s/%s' % (question_source, qt.qt_id))
                response = util.Response(status=util.Status.__success__)
                return util.objtojson(response)
            elif mydata.qt_type == 'filla':
                Filla = model.Filla_model(**mydata)
                Filla.question_qt_id = qt.qt_id
                Filla.update()
                response = util.Response(status=util.Status.__success__)
                return util.objtojson(response)
            elif mydata.qt_type == 'fillb':
                Fillb = model.Fillb_model(**mydata)
                Fillb.question_qt_id = qt.qt_id
                Fillb.update()
                response = util.Response(status=util.Status.__success__)
                return util.objtojson(response)
            elif mydata.qt_type == 'judge':
                Judge = model.Judge_model(**mydata)
                Judge.question_qt_id = qt.qt_id
                Judge.update()
                response = util.Response(status=util.Status.__success__)
                return util.objtojson(response)
コード例 #6
0
 def POST(self):
     web.header("Access-Control-Allow-Origin", "*")
     # 接收参数
     params = web.input()
     print(params)
     Knowledge = model.Knowledge_model(**params)
     if Knowledge.insert():
         response = util.Response(status=util.Status.__success__, )
         return 1
     else:
         response = util.Response(status=util.Status.__error__, )
         return 0
コード例 #7
0
 def GET(self):
     print RequestQuestionBack
     mydata = web.input()
     web.header("Access-Control-Allow-Origin", "*")
     Knowledge = model.Knowledge_model()
     KnowledgeData = Knowledge.getByArgs()
     questionback = model.Questions_bank_model()
     questionbackData = questionback.getByArgs()
     data = []
     data.append(KnowledgeData)
     data.append(questionbackData)
     response = util.Response(status=util.Status.__success__,body=data)
     return util.objtojson(response)
コード例 #8
0
 def POST(self):
     print("删除知识点信息")
     web.header("Access-Control-Allow-Origin", "*")
     # 接收参数
     params = web.input()
     print(params)
     Knowledge = model.Knowledge_model(**params)
     if Knowledge.delete():
         # response = util.Response(status=util.Status.__success__, )
         # return util.objtojson(response)
         return 1
     else:
         # response = util.Response(status=util.Status.__error__, )
         # return util.objtojson(response)
         return 0
コード例 #9
0
    def POST(self):
        mydata = web.input()
        print mydata
        # 必须有的参数
        must_params = set({'questions_bank_qb_id', 'currentPage'})
        web.header("Access-Control-Allow-Origin", "*")
        currentPage = int(mydata.currentPage) - 1
        if (util.paramsok(must_params, mydata) == 2):
            print 333
            response = util.Response(status=util.Status.__params_not_ok__)
            return util.objtojson(response)
        else:
            question = model.Question_model()
            # result = orm.db.query('select * from question where qt_id in (select question_qt_id from questions_bank_has_question where questions_bank_qb_id = %s ) order by qt_id limit %s,%s'%(int(mydata.questions_bank_qb_id),currentPage*10,currentPage*10+9))
            result = orm.db.query(
                'select * from question where qt_id in \
                (select question_qt_id from questions_bank_has_question where questions_bank_qb_id = %s )\
                order by qt_id limit %s,%s' %
                (mydata.questions_bank_qb_id, currentPage * 10, 10))

            questionlist = []
            result = [model.Question_model(**item) for item in result]
            # print result
            result1 = question.query(
                'select count(*) from question where qt_id in (select question_qt_id \
                from questions_bank_has_question where questions_bank_qb_id = %s )'
                % (mydata.questions_bank_qb_id))
            # print result1[0]
            count = result1[0]['count(*)']
            for params in result:
                qt = params
                qt['qt_type'] = util.type[qt.qt_type]
                Knowledge = model.Knowledge_model()
                KnowledgeData = Knowledge.getByPK(qt.knowledge_kl_id)
                qt['kl_name'] = KnowledgeData.kl_name
                questionlist.append(qt)
            # response = util.Response(status=util.Status.__success__,body = questionlist)
            # return util.objtojson(response)
            page = util.Page(data=questionlist,
                             totalRow=count,
                             currentPage=int(mydata.currentPage),
                             pageSize=10,
                             status=util.Status.__success__,
                             message="未知")
            response = util.Response(status=util.Status.__success__, body=page)
            return util.objtojson(response)
コード例 #10
0
 def POST(self):
     mydata = web.input()
     kp = model.Knowledge_model()
     must_params = set({'kl_id'})
     web.header("Access-Control-Allow-Origin", "*")
     if (util.paramsok(must_params, mydata) == 2):
         response = util.Response(status=util.Status.__params_not_ok__)
         return util.objtojson(response)
     elif str(mydata.deletepassword) == '123456':
         kp.kl_id = mydata.kl_id
         print kp.kl_id
         if kp.delete():
             response = util.Response(status=util.Status.__success__)
             return util.objtojson(response)
         else:
             response = util.Response(status=util.Status.__error__)
             return util.objtojson(response)
     response = util.Response(status=util.Status.__error__)
     return util.objtojson(response)
コード例 #11
0
 def POST(self):
     mydata = web.input()
     qt = model.Question_model()
     kp = model.Knowledge_model()
     must_params = set (['qt_id'])
     web.header("Access-Control-Allow-Origin", "*") 
     if(util.paramsok(must_params,mydata) == 2):
         response = util.Response(status = util.Status.__params_not_ok__)
         return util.objtojson(response)
     else:
         qt = model.Question_model(**mydata)
         questiondata = qt.getByArgs(qt_id = qt.qt_id)
         KnowledgeData = kp.getByArgs(kl_id = questiondata[0]['knowledge_kl_id'])
         qt_typedata = orm.db.query('select * from %s where question_qt_id = %s'%(questiondata[0].qt_type,qt.qt_id))
         result1 = [model.Question_model(**item) for item in qt_typedata ]
         data = []
         data.append(questiondata)
         data.append(KnowledgeData)
         data.append(result1)
         response = util.Response(status=util.Status.__success__,body = data)
         return util.objtojson(response)
コード例 #12
0
    def POST(self):
        web.header("Access-Control-Allow-Origin", "*")
        # 接收参数
        params = web.input()
        strategyTerm = model.Strategy_term_model()
        must_params = strategyTerm.__notnull__
        if (util.paramsok(must_params, params) == 2):
            response = util.Response(status=util.Status.__params_not_ok__)
            return util.objtojson(response)
        else:
            strategyTerm = model.Strategy_term_model(**params)
            sm_type = "'" + strategyTerm.sm_type + "'"
            # 判断题库题目数量是否足够,知识点id未0表示所有知识点
            if strategyTerm.sm_knowledge == "0":
                print "000000"
                question_result = strategyTerm.query('select count(*) from question where qt_id in \
                        (select question_qt_id from questions_bank_has_question where \
                        questions_bank_qb_id = %s) and qt_type=%s and \
                        qt_diffculty between %s and %s'                                                        % (strategyTerm.qb_id, sm_type,\
                        strategyTerm.sm_difficulty_low,strategyTerm.sm_difficulty_high))
                count = int(question_result[0]['count(*)'])
            else:
                question_result = strategyTerm.query('select count(*) from question where qt_id in \
                    (select question_qt_id from questions_bank_has_question where \
                    questions_bank_qb_id = %s) and qt_type=%s and knowledge_kl_id =%s \
                    and qt_diffculty between %s and %s'                                                        % (strategyTerm.qb_id, sm_type,\
                    strategyTerm.sm_knowledge, strategyTerm.sm_difficulty_low,\
                     strategyTerm.sm_difficulty_high))
                count = int(question_result[0]['count(*)'])
            if count < int(strategyTerm.sm_number):
                result_message = "question num error "
                # result_message = "题库中没有足够的编程题符合策略项 "
                response = util.Response(status=util.Status.__error__,
                                         body=result_message)
                return util.objtojson(response)
            # 判断是否与策略项有交集
            if strategyTerm.sm_knowledge == "0":
                result = strategyTerm.query('select * from strategy_term where strategy_sg_id =%s and sm_type = %s' \
                            % (strategyTerm.strategy_sg_id, sm_type,))
                result = [model.Strategy_term_model(**item) for item in result]
            else:
                result = strategyTerm.query(
                    'select * from strategy_term where strategy_sg_id =%s and sm_type = %s and \
                            sm_knowledge = %s' %
                    (strategyTerm.strategy_sg_id, sm_type,
                     strategyTerm.sm_knowledge))
                result = [model.Strategy_term_model(**item) for item in result]

            for item in result:
                if int(item.sm_difficulty_low) < int(strategyTerm.sm_difficulty_low) and \
                                int(item.sm_difficulty_high) <= int(strategyTerm.sm_difficulty_low) \
                        or int(strategyTerm.sm_difficulty_low) < int(item.sm_difficulty_low) \
                                and int(strategyTerm.sm_difficulty_high) <= int(item.sm_difficulty_low):
                    print '无交集'
                else:
                    result_message = "diffculty error"
                    response = util.Response(status=util.Status.__error__,
                                             body=result_message)
                    return util.objtojson(response)
            if strategyTerm.insert():
                currentPage = int(params.currentPage) - 1
                result = strategyTerm.query(
                    'select * from strategy_term where strategy_sg_id =%s order by sm_id desc limit %s,%s' % \
                    (strategyTerm.strategy_sg_id, currentPage * 5, 5))
                strategyTermList = []
                total_score = 0
                for item in result:
                    item['sm_type'] = util.type[item.sm_type]
                    Knowledge = model.Knowledge_model()
                    if item.sm_knowledge == 0:
                        item['kl_name'] = "全部知识点"
                    else:
                        KnowledgeData = Knowledge.getByPK(item.sm_knowledge)
                        item['kl_name'] = KnowledgeData.kl_name
                    total_score += float(item['sm_score']) * float(
                        item['sm_number'])
                    strategyTermList.append(item)
                strategy = model.Strategy_model()
                strategy.sg_id = strategyTerm.strategy_sg_id
                strategy.sg_score = total_score
                strategy.update()
                result = strategyTerm.query('select count(*) from strategy_term where strategy_sg_id =%s' % \
                                            (strategyTerm.strategy_sg_id))
                page = util.Page(data=strategyTermList,
                                 totalRow=int(result[0]['count(*)']) * 2,
                                 currentPage=int(params.currentPage),
                                 pageSize=5,
                                 status=util.Status.__success__,
                                 message=total_score)
                print page
                response = util.Response(status=util.Status.__success__,
                                         body=page)
                return util.objtojson(response)
            else:
                response = util.Response(status=util.Status.__error__)
                return util.objtojson(response)
コード例 #13
0
    def POST(self):
        mydata = web.input()
        print mydata
        print 111111111111111111111
        qbhq = model.Questions_bank_has_question_model()
        web.header("Access-Control-Allow-Origin", "*")
        question = model.Question_model()
        Knowledge = model.Knowledge_model()
        must_params = set({'qb_id','qt_type','qt_diffculty_up','qt_diffculty_down','knowledge_kl_id'})

        if(util.paramsok(must_params,mydata) == 2):
            response = util.Response(status = util.Status.__params_not_ok__)
            return util.objtojson(response)
        else:
            # 通过题库ID获取该题库下所有题目ID,并且不在导入题库里
            question_id = qbhq.getByArgs(questions_bank_qb_id = mydata.qb_id)
            question_id = qbhq.query('select * from questions_bank_has_question where \
                  questions_bank_qb_id = %s and question_qt_id not in (select \
                   question_qt_id from questions_bank_has_question where  \
                   questions_bank_qb_id = %s)'%(mydata.qb_id,mydata.questions_bank_qb_id))
            question_id = [model.Questions_bank_has_question_model(**item) for item in question_id]
            # print question_id
            question_list = []
            count = 0
            for k in question_id:
                if mydata.knowledge_kl_id == 'all' and mydata.qt_type == 'all':
                    result = question.query('select * from question where qt_id = %s and qt_diffculty between %s and %s '%(k.question_qt_id,mydata.qt_diffculty_down,mydata.qt_diffculty_up))
                    result1 = [model.Question_model(**item) for item in result ]
                    if result1:
                        qt=result1[0]
                        qt['qt_type']=util.type[qt.qt_type]
                        KnowledgeData = Knowledge.getByPK(qt.knowledge_kl_id)
                        qt['kl_name'] = KnowledgeData.kl_name
                        question_list.append(qt)
                        count+=1
                elif mydata.qt_type == 'all':
                    result = question.query('select * from question where qt_id = %s and knowledge_kl_id = %s and qt_diffculty between %s and %s '%(k.question_qt_id,mydata.knowledge_kl_id,mydata.qt_diffculty_down,mydata.qt_diffculty_up))
                    result1 = [model.Question_model(**item) for item in result ]
                    if result1:
                        qt=result1[0]
                        qt['qt_type']=util.type[qt.qt_type]
                        KnowledgeData = Knowledge.getByPK(qt.knowledge_kl_id)
                        qt['kl_name'] = KnowledgeData.kl_name
                        question_list.append(qt)
                        count+=1
                    else:
                        print '空'
                elif mydata.knowledge_kl_id == 'all':
                    result = question.query('select * from question where qt_id = %s and qt_type = %s and qt_diffculty between %s and %s '%(k.question_qt_id,mydata.qt_type,mydata.qt_diffculty_down,mydata.qt_diffculty_up))
                    result1 = [model.Question_model(**item) for item in result ]
                    if result1:
                        qt=result1[0]
                        qt['qt_type']=util.type[qt.qt_type]
                        KnowledgeData = Knowledge.getByPK(qt.knowledge_kl_id)
                        qt['kl_name'] = KnowledgeData.kl_name
                        question_list.append(qt)
                        count+=1
                    else:
                        print '空'
                        # KnowledgeData = Knowledge.getByArgs(kl_id = result1[0].knowledge_kl_id)
                else:
                    result = question.query('select * from question where qt_id = %s and qt_type = %s and knowledge_kl_id = %s and qt_diffculty between %s and %s '%(k.question_qt_id,mydata.qt_type,mydata.knowledge_kl_id,mydata.qt_diffculty_down,mydata.qt_diffculty_up))
                    result1 = [model.Question_model(**item) for item in result ]
                    if result1:
                        qt=result1[0]
                        qt['qt_type']=util.type[qt.qt_type]
                        KnowledgeData = Knowledge.getByPK(qt.knowledge_kl_id)
                        qt['kl_name'] = KnowledgeData.kl_name
                        question_list.append(qt)
                        count+=1
                    else:
                        print '空'
            currentPage = int(mydata.currentPage)-1
            print count
            if (currentPage*10+10 < count):
                questiondata=question_list[currentPage*10:currentPage*10+10]
            else:
                questiondata=question_list[currentPage*10:count]
            print 1234567890
            print questiondata
            page = util.Page(data = questiondata, totalRow = count, currentPage = int(mydata.currentPage), pageSize = 10, status=util.Status.__success__, message = "未知")
            response = util.Response(status = util.Status.__success__,body = page)
            return util.objtojson(response)
コード例 #14
0
ファイル: QuestionBackManage.py プロジェクト: zhuxiulin/exam
 def POST(self):
     mydata = web.input()
     qbhq = model.Questions_bank_has_question_model()
     web.header("Access-Control-Allow-Origin", "*")
     question = model.Question_model()
     Knowledge = model.Knowledge_model()
     must_params = set({
         'qb_id', 'qt_type', 'qt_diffculty_up', 'qt_diffculty_down',
         'knowledge_kl_id'
     })
     mydata.qt_diffculty_down = int(mydata.qt_diffculty_down)
     if (util.paramsok(must_params, mydata) == 2):
         response = util.Response(status=util.Status.__params_not_ok__)
         return util.objtojson(response)
     else:
         # 通过题库ID获取该题库下所有题目ID
         question_id = qbhq.getByArgs(questions_bank_qb_id=mydata.qb_id)
         # print question_id
         question_list = []
         count = 0
         for k in question_id:
             if mydata.knowledge_kl_id == 'all' and mydata.qt_type == 'all':
                 result = question.query(
                     'select * from question where qt_id = %s and qt_diffculty between %s and %s '
                     % (k.question_qt_id, mydata.qt_diffculty_down + 5,
                        mydata.qt_diffculty_up))
                 result1 = [model.Question_model(**item) for item in result]
                 if result1:
                     qt = result1[0]
                     KnowledgeData = Knowledge.getByPK(qt.knowledge_kl_id)
                     qt['kl_name'] = KnowledgeData.kl_name
                     question_list.append(qt)
                     count += 1
             elif mydata.qt_type == 'all':
                 result = question.query(
                     'select * from question where qt_id = %s and knowledge_kl_id = %s and qt_diffculty between %s and %s '
                     %
                     (k.question_qt_id, mydata.knowledge_kl_id,
                      mydata.qt_diffculty_down + 5, mydata.qt_diffculty_up))
                 result1 = [model.Question_model(**item) for item in result]
                 if result1:
                     qt = result1[0]
                     KnowledgeData = Knowledge.getByPK(qt.knowledge_kl_id)
                     qt['kl_name'] = KnowledgeData.kl_name
                     question_list.append(qt)
                     count += 1
                 else:
                     print '空'
             elif mydata.knowledge_kl_id == 'all':
                 result = question.query(
                     'select * from question where qt_id = %s and qt_type = %s and qt_diffculty between %s and %s '
                     %
                     (k.question_qt_id, mydata.qt_type,
                      mydata.qt_diffculty_down + 5, mydata.qt_diffculty_up))
                 result1 = [model.Question_model(**item) for item in result]
                 if result1:
                     qt = result1[0]
                     KnowledgeData = Knowledge.getByPK(qt.knowledge_kl_id)
                     qt['kl_name'] = KnowledgeData.kl_name
                     question_list.append(qt)
                     count += 1
                 else:
                     print '空'
                     # KnowledgeData = Knowledge.getByArgs(kl_id = result1[0].knowledge_kl_id)
             else:
                 result = question.query(
                     'select * from question where qt_id = %s and qt_type = %s and knowledge_kl_id = %s and qt_diffculty between %s and %s '
                     % (k.question_qt_id, mydata.qt_type,
                        mydata.knowledge_kl_id, mydata.qt_diffculty_down +
                        5, mydata.qt_diffculty_up))
                 result1 = [model.Question_model(**item) for item in result]
                 if result1:
                     qt = result1[0]
                     KnowledgeData = Knowledge.getByPK(qt.knowledge_kl_id)
                     qt['kl_name'] = KnowledgeData.kl_name
                     question_list.append(qt)
                     count += 1
                 else:
                     print '空'
         now = datetime.datetime.now()
         question_bank = model.Questions_bank_model.getByPK(mydata.qb_id)
         filepath = str(u'%s/%s.docx' %
                        (exampage_source, question_bank.qb_name))
         util.QuestionWord(question_list, mydata.qb_id, filepath)
         # currentPage = int(mydata.currentPage) - 1
         # print count
         # if (currentPage * 10 + 10 < count):
         #     questiondata = question_list[currentPage * 10:currentPage * 10 + 10]
         # else:
         #     questiondata = question_list[currentPage * 10:count]
         # page = util.Page(data=questiondata, totalRow=count, currentPage=int(mydata.currentPage),
         #                  pageSize=10, status=util.Status.__success__, message="未知")
         response = util.Response(status=util.Status.__success__,
                                  message=u'/source/exampage/%s.docx' %
                                  (question_bank.qb_name))
         return util.objtojson(response)
コード例 #15
0
ファイル: QuestionBackManage.py プロジェクト: zhuxiulin/exam
    def POST(self):
        mydata = web.input()
        qt = model.Question_model()
        recover_question = model.Question_model.getByPK(mydata.qt_id)
        recover_coding = model.Coding_model.getByPK(mydata.qt_id)
        recover_fillb = model.Fillb_model.getByPK(mydata.qt_id)
        kp = model.Knowledge_model()
        web.header("Access-Control-Allow-Origin", "*")
        must_params = set({
            'qt_id',
            'qt_type',
            'qt_stem',
            'kl_name',
            'qb_id',
        })
        if (util.paramsok(must_params, mydata) == 2):
            response = util.Response(status=util.Status.__params_not_ok__)
            return util.objtojson(response)
        else:
            knowlagedata = kp.getByArgs(kl_name=mydata.kl_name)
            qt = model.Question_model(**mydata)
            qt.knowledge_kl_id = knowlagedata[0].kl_id
            qt.qt_state = 0
            qt.update()
            if mydata.qt_type == 'choice':
                choice = model.Choice_model(**mydata)
                choice.question_qt_id = qt.qt_id
                choice.update()
                response = util.Response(status=util.Status.__success__)
                return util.objtojson(response)
            elif mydata.qt_type == 'coding':
                coding = model.Coding_model(**mydata)
                coding.question_qt_id = qt.qt_id
                coding.update()

                exam_question = model.Exam_question_model()
                exam_question.information_in_id = 1
                exam_question.qt_id = qt.qt_id
                exam_question.eq_qt_type = 'coding'
                exam_question.eq_pre_score = 100
                exam_question.eq_get_score = '-2'
                exam_question.eq_answer = coding.co_test_coding
                result = exam_question.insertBackid()
                eq_id = result[0]['max(eq_id)']
                for i in range(60):
                    time.sleep(1)
                    exam_question = model.Exam_question_model.getByPK(eq_id)
                    if exam_question.eq_get_score == 100:
                        response = util.Response(
                            status=util.Status.__success__)
                        return util.objtojson(response)
                    if exam_question.eq_get_score == 0 or i == 59:
                        recover_coding.update()
                        recover_question.update()
                        qt.update()
                        response = util.Response(status=util.Status.__error__)
                        return util.objtojson(response)
            elif mydata.qt_type == 'filla':
                Filla = model.Filla_model(**mydata)
                Filla.question_qt_id = qt.qt_id
                Filla.update()
                response = util.Response(status=util.Status.__success__)
                return util.objtojson(response)
            elif mydata.qt_type == 'fillb':
                Fillb = model.Fillb_model(**mydata)
                Fillb.question_qt_id = qt.qt_id
                Fillb.update()
                exam_question = model.Exam_question_model()
                exam_question.information_in_id = 1
                exam_question.qt_id = qt.qt_id
                exam_question.eq_qt_type = 'fillb'
                exam_question.eq_pre_score = 100
                exam_question.eq_get_score = '-2'
                exam_question.eq_answer = Fillb.fb_pre_coding
                exam_question.fillb_coding = Fillb.fb_pre_coding.replace(
                    '&&&', ' ')
                result = exam_question.insertBackid()
                eq_id = result[0]['max(eq_id)']
                for i in range(60):
                    time.sleep(1)
                    exam_question = model.Exam_question_model.getByPK(eq_id)
                    if exam_question.eq_get_score == 100:
                        response = util.Response(
                            status=util.Status.__success__)
                        return util.objtojson(response)
                    if exam_question.eq_get_score == 0 or i == 59:
                        recover_fillb.update()
                        recover_question.update()
                        qt.update()
                        response = util.Response(status=util.Status.__error__)
                        return util.objtojson(response)
                response = util.Response(status=util.Status.__success__)
                return util.objtojson(response)
            elif mydata.qt_type == 'judge':
                Judge = model.Judge_model(**mydata)
                Judge.question_qt_id = qt.qt_id
                Judge.update()
                response = util.Response(status=util.Status.__success__)
                return util.objtojson(response)
コード例 #16
0
    def POST(self):
        mydata = web.input()
        print("查看题目:", mydata)
        # 必须有的参数
        must_params = set({'questions_bank_qb_id', 'currentPage'})
        web.header("Access-Control-Allow-Origin", "*")
        currentPage = int(mydata.currentPage) - 1
        if (util.paramsok(must_params, mydata) == 2):
            print(333)
            response = util.Response(status=util.Status.__params_not_ok__)
            return util.objtojson(response)
        else:
            question = model.Question_model()
            # result = orm.db.query('select * from question where qt_id in (select question_qt_id from questions_bank_has_question where questions_bank_qb_id = %s ) order by qt_id limit %s,%s'%(int(mydata.questions_bank_qb_id),currentPage*10,currentPage*10+9))
            result = orm.db.query(
                'select * from question where qt_id in \
                (select question_qt_id from questions_bank_has_question where questions_bank_qb_id = %s )\
                order by qt_id limit %s,%s' %
                (mydata.questions_bank_qb_id, currentPage * 10, 10))

            questionlist = []
            result = [model.Question_model(**item) for item in result]
            # print result
            count = dict()
            total_num = question.query(
                'select count(*) from question where qt_id in (select question_qt_id \
                from questions_bank_has_question where questions_bank_qb_id = %s )'
                % (mydata.questions_bank_qb_id))
            # print result1[0]
            choice_num = question.query(
                'select count(*) from question where qt_id in (select question_qt_id \
                            from questions_bank_has_question where questions_bank_qb_id = %s ) and qt_type = \'choice\''
                % (mydata.questions_bank_qb_id))
            coding_num = question.query(
                'select count(*) from question where qt_id in (select question_qt_id \
                                        from questions_bank_has_question where questions_bank_qb_id = %s ) and qt_type = \'coding\''
                % (mydata.questions_bank_qb_id))
            filla_num = question.query(
                'select count(*) from question where qt_id in (select question_qt_id \
                                                    from questions_bank_has_question where questions_bank_qb_id = %s ) \
                                                     and qt_type = \'filla\'' %
                (mydata.questions_bank_qb_id))
            fillb_num = question.query(
                'select count(*) from question where qt_id in (select question_qt_id \
                                                                from questions_bank_has_question where questions_bank_qb_id = %s ) \
                                                                 and qt_type = \'fillb\''
                % (mydata.questions_bank_qb_id))
            judge_num = question.query(
                'select count(*) from question where qt_id in (select question_qt_id \
                                                                from questions_bank_has_question where questions_bank_qb_id = %s ) \
                                                                 and qt_type = \'judge\''
                % (mydata.questions_bank_qb_id))
            count['total_num'] = total_num[0]['count(*)']
            count['choice_num'] = choice_num[0]['count(*)']
            count['coding_num'] = coding_num[0]['count(*)']
            count['filla_num'] = filla_num[0]['count(*)']
            count['fillb_num'] = fillb_num[0]['count(*)']
            count['judge_num'] = judge_num[0]['count(*)']
            #util.getFileRotatingLog().debug(count)
            for params in result:
                qt = params
                qt['qt_type'] = util.type[qt.qt_type]
                Knowledge = model.Knowledge_model()
                KnowledgeData = Knowledge.getByPK(qt.knowledge_kl_id)
                qt['kl_name'] = KnowledgeData.kl_name
                questionlist.append(qt)
            # response = util.Response(status=util.Status.__success__,body = questionlist)
            # return util.objtojson(response)
            page = util.Page(data=questionlist,
                             totalRow=int(count['total_num']),
                             currentPage=int(mydata.currentPage),
                             pageSize=10,
                             status=util.Status.__success__,
                             message=count)
            response = util.Response(status=util.Status.__success__, body=page)
            print("返回信息: ", util.objtojson(response))
            return util.objtojson(response)