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)
 def POST(self):
     web.header("Access-Control-Allow-Origin", "*")
     # 接收参数
     params = web.input()
     strategy = model.Strategy_model()
     must_params = strategy.__notnull__
     if (util.paramsok(must_params, params) == 2):
         response = util.Response(status=util.Status.__params_not_ok__)
         return util.objtojson(response)
     else:
         strategy = model.Strategy_model(**params)
         if strategy.insert():
             result = strategy.getByArgs(sg_name=strategy.sg_name)
             response = util.Response(status=util.Status.__success__, body=result)
             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()
     strategy = model.Strategy_model()
     args = dict(sg_id=params.get('sg_id'))
     must_params = strategy.__notnull__
     if (util.paramsok(must_params, params) == 2):
         response = util.Response(status=util.Status.__params_not_ok__)
         return util.objtojson(response)
     else:
         strategy = model.Strategy_model(**params)
         if strategy.getByArgs(**args):
             strategy.update()
             response = util.Response(status=util.Status.__success__)
             return util.objtojson(response)
         else:
             response = util.Response(status=util.Status.__error__)
             return util.objtojson(response)
Пример #4
0
 def POST(self):
     web.header("Access-Control-Allow-Origin", "*")
     # 接收参数
     params = web.input()
     strategy = model.Strategy_model(**params)
     strategy.delete()
     if Strategy_model.getByArgs(**params):
         response = util.Response(status=util.Status.__error__)
         return util.objtojson(response)
     else:
         response = util.Response(status=util.Status.__success__)
         return util.objtojson(response)
    def POST(self):
        web.header("Access-Control-Allow-Origin", "*")
        # 接收参数
        params = web.input()
        util.getFileRotatingLog().debug(params)
        strategy = model.Strategy_model(**params)
        teacher = model.Teacher_model.getByArgs(tc_level='管理员')
        if str(params.deletepassword) != teacher[0].tc_password:
            response = util.Response(status=util.Status.__error__, message="密码错误")
            return util.objtojson(response)
        try:
            with orm.db.transaction():
                db.delete('strategy_term', where="strategy_sg_id = $strategy_sg_id", vars={'strategy_sg_id': params.sg_id, })
                if strategy.delete():
                    response = util.Response(status=util.Status.__success__, message="删除成功!")
                    return util.objtojson(response)
                else:
                    response = util.Response(status=util.Status.__error__, message="删除失败!")
                    return util.objtojson(response)

        except Exception as e:
            util.getFileRotatingLog().debug(e)
            response = util.Response(status=util.Status.__error__, message="删除失败!")
            return util.objtojson(response)
Пример #6
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)