Example #1
0
    def produce(self, req):
        """
        生成数据,对外接口
        """
        shape = req.get(Protocol.Graph)
        echart = EChartManager().get_echart(shape)
        self.setDecorator(echart)

        self.fh = FactorHandler(req)

        # 验证是否符合去查询的要求
        ok, msg = ValidModule.makeValidator(shape).ifValid(self.fh)
        if not ok:
            return {'msg': msg}

        part_dict = self.fh.mapToSqlPart()

        sql_obj = self.st.getSwither().makeSelectSql(**part_dict)
        data_db = self.st.execute(sql_obj).fetchall()
        clean_data_db = cleanDataFromDb(data_db)
        strf_data_db = strfDataAfterFetchDb(clean_data_db)

        result = self.decorate(
            strf_data_db, self.fh.selects
        )
        return {'type': shape, 'figure': result}
Example #2
0
def genWidgetImageData(req_data, hk):
    """
    生成返回前端数据
    """
    logger.debug("function genWidgetImageData() is called")
    st = SqlExecutorMgr.stRestore(hk)

    # 地图先特殊对待
    if 'china_map' == req_data.get(u'graph') or \
            'world_map' == req_data.get(u'graph'):
        data = formatData('', '', '', '', req_data.get(u'graph'))
        return {u'type': 'map', u'data': data}

    shape_list, shape_in_use    = judgeWhichShapes(req_data)
    shape_in_use                = req_data.get(u'graph', u'bar')

    # 获取画出图形所必须相关数据
    factors_lists_dict = classifyFactors(req_data)
    sql_obj         = transReqDataToSqlObj(req_data, st)
    result          = st.conn.execute(sql_obj).fetchall()
    data_from_db    = cleanDataFromDb(result)
    strf_data_from_db = strfDataAfterFetchDb(data_from_db)
    echart_data     = formatData(strf_data_from_db, factors_lists_dict['msu'], \
                                    factors_lists_dict['msn'], factors_lists_dict['group'], \
                                    shape_in_use)

    return {u'type': shape_in_use, u'data': echart_data}