WX
2023-11-25 c2bdcb0544f107e6f5e7a4cfa47f009a9a191e10
主营分析图表接口
2个文件已修改
52 ■■■■■ 已修改文件
GasolineBlend/Controllers/RcyController.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
RiskControl.NewService/Service/RcyService.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GasolineBlend/Controllers/RcyController.cs
@@ -102,6 +102,17 @@
        public async Task<ActionResult> GetChainIncomeCostPage(int pageIndex, int pageSize, string[] exchangeCodes)
        {
            var res = await _rcyService.GetChainIncomeCostPage(pageIndex,pageSize, exchangeCodes);
            return SuccessNoShow(data: res);
        }
        /// <summary>
        /// 主营分析图表接口
        /// </summary>
        /// <param name="type">income,cost,grossmargin</param>
        /// <returns></returns>
        [HttpPost]
        public async Task<ActionResult> GetChainIncomeCostChart(string type)
        {
            var res = await _rcyService.GetChainIncomeCostChart(type);
            return SuccessNoShow(data: res);
        }
    }
RiskControl.NewService/Service/RcyService.cs
@@ -29,6 +29,7 @@
                .ToPageAsync(pageIndex, pageSize);
            return res;
        }
        /// <summary>
        /// 景气矩阵
        /// </summary>
@@ -39,6 +40,7 @@
                .ToListAsync();
            return res;
        }
        /// <summary>
        /// 上市地位
        /// </summary>
@@ -56,6 +58,7 @@
                .ToPageAsync(pageIndex, pageSize);
            return res;
        }
        /// <summary>
        /// 上市地位
        /// </summary>
@@ -66,6 +69,7 @@
                .ToListAsync();
            return res;
        }
        /// <summary>
        /// 公司详情
        /// </summary>
@@ -83,6 +87,7 @@
                .ToPageAsync(pageIndex, pageSize);
            return res;
        }
        /// <summary>
        /// 公司详情
        /// </summary>
@@ -93,6 +98,7 @@
                .ToListAsync();
            return res;
        }
        /// <summary>
        /// 产业地图
        /// </summary>
@@ -106,7 +112,8 @@
            return res;
        }
        public async Task<Page<ChainIncomeCost>> GetChainIncomeCostPage(int pageIndex,int pageSize,string[] exchangeCodes)
        public async Task<Page<ChainIncomeCost>> GetChainIncomeCostPage(int pageIndex, int pageSize,
            string[] exchangeCodes)
        {
            var res = await RiskControlRRDb.Queryable<ChainIncomeCost>()
                .WhereIF(exchangeCodes.Length>0,a=>exchangeCodes.Contains(a.ExchangeCode))
@@ -115,5 +122,37 @@
            return res;
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="type">income,cost,grossmargin</param>
        /// <returns></returns>
        public async Task<object> GetChainIncomeCostChart(string type)
        {
            var data = await RiskControlRRDb.Queryable<ChainIncomeCost>()
                .Where(a => a.CompanyName == "总计")
                .FirstAsync();
            var props = typeof(ChainIncomeCost).GetProperties();
            var dict = new SortedDictionary<int, double>();
            foreach (var p in props.Where(a=>a.Name.ToLower().StartsWith(type.ToLower())))
            {
                var year =int.Parse(p.Name.ToLower().Replace(type.ToLower(), ""));
                var val = (double?) p.GetValue(data);
                if(val != null)
                    dict.Add(year,(double)val);
            }
            var res = new List<object>();
            var index = 0;
            foreach (var kv in dict)
            {
                var obj = new {year = kv.Key, value = kv.Value, rate = index == 0 ? (double?)null : (kv.Value - dict[kv.Key-1])/ dict[kv.Key - 1] *100};
                res.Add(obj);
                index++;
            }
            return res;
        }
    }
}