using Dapper; using Estsh.Core.Base; using Estsh.Core.Dapper; using Estsh.Core.Mes.IRepositories; using Estsh.Core.Model.Result; using Estsh.Core.Repositories; using System.Collections; using System.Data; using System.Text; using System.Text.Json; /*************************************************************************************************** * * 作者:jack.jia * 创建时间:2022/06/08 * 描述:针对winform客户端通用的数据处理仓库 * * *************************************************************************************************/ namespace Estsh.Core.Mes.Repositories { /// /// 部门管理 /// public class DataHandleRepository : BaseRepository, IDataHandleRepository { public DataHandleRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext) { } /// /// 获取单个值 /// /// /// public object getScalar(RequestBody body) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); if (body.Params != null && body.Params.Count > 0) { return dbConn.ExecuteScalar(body.cmd, body.Params); } else { return dbConn.ExecuteScalar(body.cmd); } } } /// /// 获取数据列表 /// /// /// public IEnumerable GetEntityList(RequestBody body) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); if (body.Params != null && body.Params.Count > 0) { return dbConn.Query(body.cmd, body.Params); } else { return dbConn.Query(body.cmd); } } } /// /// 执行更新、删除等操作 /// /// /// public int Execute(RequestBody body) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); if (body.Params != null && body.Params.Count > 0) { return dbConn.Execute(body.cmd, body.Params); } else { return dbConn.Execute(body.cmd); } } } /// /// 执行存储过程 /// /// /// public Hashtable ExecuteSotreProcedure(RequestBody body) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); Hashtable result = new Hashtable(); if (body.Params != null && body.Params.Count > 0) { DynamicParameters paras = new DynamicParameters(); foreach (var item in body.Params) { paras.Add(item.Key, item.Value); } foreach (var item in body.OutParams) { if (item.Value.GetType().Name.Equals(typeof(string).Name)) { paras.Add(item.Key, null, DbType.String, ParameterDirection.Output, int.Parse(item.Value.ToString())); } else if (item.Value.GetType().Name.Equals(typeof(int).Name)) { paras.Add(item.Key, 0, DbType.Int32, ParameterDirection.Output); } else { paras.Add(item.Key, item.Value, DbType.String, ParameterDirection.Output); } } IEnumerable dataList = dbConn.Query(body.cmd, paras, commandType: CommandType.StoredProcedure); foreach (var item in body.OutParams) { if (item.Value.GetType().Name.Equals(typeof(string).Name)) { body.OutParams[item.Key] = paras.Get(item.Key); } else if (item.Value.GetType().Name.Equals(typeof(int).Name)) { body.OutParams[item.Key] = paras.Get(item.Key); } } result.Add("dataList", dataList); result.Add("outParams", body.OutParams); } else { IEnumerable dataList = dbConn.Query(body.cmd,null, commandType: CommandType.StoredProcedure); result.Add("dataList", dataList); result.Add("outParams", body.OutParams); } return result; } } } }