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}
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}