def get(self, request, *args, **kwargs): """ 企业资源费用账单查询接口 --- parameters: - name: team_name description: 当前团队名字 required: true type: string paramType: path - name: date description: 日期(格式:2018-01-30) required: true type: string paramType: query """ try: default_time = current_time_to_str() date = request.GET.get("date", default_time) if not date: return Response(data=general_message(400, "date query failed", "日期接收失败"), status=400) res, data = open_api.get_enterprise_team_fee( region=self.response_region, enterprise_id=self.team.enterprise_id, team_id=self.team.tenant_id, date=date) if res["status"] == 200: code = 200 result = general_message( code=code, msg="enterprise expense account query is successful.", msg_show="企业资源费用账单查询成功", list=data) else: code = 400 result = general_message( code=code, msg="enterprise expense account query failed.", msg_show="企业资源费用账单查询失败") except Exception as e: code = 500 logger.exception(e) result = error_message(e.message) return Response(result, status=code)
def get(self, request, team_name): """ 企业下某团队资源费用账单查询接口 --- parameters: - name: date description: 日期(格式:2018-01-30) required: true type: string paramType: query - name: region description: 数据中心 required: true type: string paramType: query """ try: default_time = current_time_to_str() date = request.GET.get("date", default_time) region = request.GET.get("region", None) if not region: return Response(general_message(400, "region not specified", "数据中心未指定"), status=400) team = team_services.get_tenant_by_tenant_name(team_name) if not team: return Response(general_message(404, "team not exist", "指定的团队不存在"), status=404) try: res, dict_body = market_api.get_enterprise_team_fee( region=region, enterprise_id=team.enterprise_id, team_id=team.tenant_id, date=date) data_body = dict_body['data'] if 'data' not in dict_body: return Response(general_message(400, "{0}".format(data_body), "查询异常"), status=400) bean = dict() rt_list = [] data_body = dict_body['data'] if 'bean' in data_body and data_body['bean']: bean = data_body['bean'] elif 'list' in data_body and data_body['list']: rt_list = data_body['list'] result = general_message(200, "success", "查询成功", bean=bean, list=rt_list) except Exception as e: logger.exception(e) result = general_message( 400, "enterprise expense account query failed.", "企业资源费用账单查询失败") except Exception as e: logger.exception(e) result = error_message(e.message) return Response(result, status=result["code"])
def get(self, request, team_name): """ 企业所有信息 --- parameters: - name: date description: 日期(格式:2018-01-30) required: true type: string paramType: query """ try: default_time = current_time_to_str() date = request.GET.get("date", default_time) team = team_services.get_tenant_by_tenant_name(team_name) if not team: return Response(general_message(404, "team not exist", "指定的团队不存在"), status=404) regions = region_services.get_regions_by_enterprise_id( team.enterprise_id) total_list = [] for region in regions: try: res, dict_body = market_api.get_enterprise_region_fee( region=region.region_name, enterprise_id=team.enterprise_id, team_id=team.tenant_id, date=date) rt_list = dict_body["data"]["list"] enter_total = {} for rt in rt_list: bean = enter_total.get(rt['time']) if bean: if rt["total_fee"] > 0: bean['disk_fee'] += rt["disk_fee"] bean['disk_limit'] += rt["disk_limit"] bean['disk_over'] += rt["disk_over"] bean['disk_usage'] += rt["disk_usage"] bean['memory_fee'] += rt["memory_fee"] bean['memory_limit'] += rt["memory_limit"] bean['memory_over'] += rt["memory_over"] bean['memory_usage'] += rt["memory_usage"] bean['net_fee'] += rt["net_fee"] bean['net_usage'] += rt["net_usage"] bean['total_fee'] += rt["total_fee"] else: if rt["total_fee"] > 0: rt["region"] = region.region_alias enter_total[rt['time']] = rt total_list[0:0] = [ v for v in list(enter_total.values()) if v["total_fee"] > 0 ] except Exception as e: logger.exception(e) continue result_list = sorted(total_list, key=lambda b: (b['time'], b['region']), reverse=True) result = general_message(200, "success", "查询成功", list=result_list) except Exception as e: logger.exception(e) result = error_message(e.message) return Response(result, status=result["code"])