You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

234 lines
9.7 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using Dapper;
using Estsh.Core.Dapper;
using Estsh.Core.Model.Result;
using Estsh.Core.Models;
using Estsh.Core.Repository.IRepositories;
using Estsh.Core.Util;
using System.Collections;
using System.Data;
using System.Text;
/***************************************************************************************************
*
* 更新人sitong.dong
* 描述:页面功能按钮管理
* 修改时间2022.06.22
* 修改日志:系统迭代升级
*
**************************************************************************************************/
namespace Estsh.Core.Repositories
{
public class PageFunctionRepository : BaseRepository<SysProgramFunOp>, IPageFunctionRepository
{
public PageFunctionRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext)
{
}
string TABLE_NAME = "sys_program_fun_op";
string PK_NAME = "";
#region 成员方法
/// <summary>
/// 根据分页条件获取分页数据列表
/// </summary>
public List<SysProgramFunOp> getListByPage(ref Pager page, string strWhere)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
Hashtable result = new Hashtable();
StringBuilder colStr = new StringBuilder();
colStr.Append(" a.program,b.name as fun_name,b.menu_id,a.grid_name,a.op_name,a.op_class,a.op_method,a.op_params,a.ruid,");
colStr.Append(" e.enum_desc as op_type,a.sort_num,a.[enabled],d.emp_name as update_user,");
colStr.Append(" a.update_time as update_date,");
colStr.Append(" c.emp_name as create_user,a.create_time as create_date");
StringBuilder tableStr = new StringBuilder();
tableStr.Append(" sys_program_fun_op a");
tableStr.Append(" left join sys_web_menu b on a.fun_name=b.menu_id");
tableStr.Append(" left join sys_emp c on a.create_userid=c.emp_id");
tableStr.Append(" left join sys_emp d on a.update_userid=d.emp_id");
tableStr.Append(" left join sys_enum e on a.op_type = e.enum_value and e.enum_type='sys_program_fun_op_op_type'");
DynamicParameters parameters = new DynamicParameters();
parameters.Add("@TotalCount", 0, DbType.Int32, ParameterDirection.Output);
parameters.Add("@TotalPage", 0, DbType.Int32, ParameterDirection.Output);
parameters.Add( "@Table", tableStr.ToString());
parameters.Add( "@Column", colStr.ToString());
parameters.Add( "@OrderColumn", "a.create_time DESC");
parameters.Add( "@GroupColumn", string.Empty);
parameters.Add( "@PageSize", page.pageSize);
parameters.Add( "@CurrentPage", page.pageNo);
parameters.Add( "@Group", 0);
parameters.Add( "@Condition", strWhere);
List<SysProgramFunOp> list = dbConn.Query<SysProgramFunOp>("Com_Pagination", parameters, commandType: CommandType.StoredProcedure).ToList();
page.totalRows = Convert.ToInt32(parameters.Get<int>("@TotalCount"));
return list;
}
}
public List<KeyValueResult> GetWebMenuList(string where)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string sqlStr = "select menu_id as [value],name as [key] from sys_web_menu";
if (string.IsNullOrEmpty(where) == false)
{
sqlStr += string.Format(" where {0}", where);
}
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(sqlStr).ToList();
return result;
}
}
public List<KeyValueResult> GetOpType()
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string sqlStr = "select enum_value as [value] ,enum_desc as [key] from sys_enum where enum_type = 'sys_program_fun_op_op_type' ";
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(sqlStr).ToList();
return result;
}
}
public List<SysProgramFunOp> GetFunction(string whereStr)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
List<SysProgramFunOp> result = new List<SysProgramFunOp>();
if (string.IsNullOrEmpty(whereStr) == false)
{
string sqlStr = string.Format("select * from sys_program_fun_op where {0}", whereStr);
result = dbConn.Query<SysProgramFunOp>(sqlStr).ToList();
}
return result;
}
}
public bool SaveOp(string where, SysProgramFunOp paramsList)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
bool result = false;
if (paramsList != null)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.AppendFormat("update {0} ", this.TABLE_NAME);
SqlStringBuilder.Append(" set program=@program, fun_name=@funName, ");
SqlStringBuilder.Append(" grid_name=@gridName, op_name=@opName, ");
SqlStringBuilder.Append(" op_class=@opClass, op_method=@opMethod, ");
SqlStringBuilder.Append(" op_params=@opParams, op_type=@opType, ");
SqlStringBuilder.Append(" sort_num=@sortNum, [enabled]=@enabled, ");
SqlStringBuilder.Append(" update_time=CONVERT(varchar(50), GETDATE(), 21), ");
SqlStringBuilder.Append(" update_userid=@updateUserid ");
SqlStringBuilder.Append(where);
int rowsCount = dbConn.Execute(SqlStringBuilder.ToString(), paramsList);
if (rowsCount > 0)
{
result = true;
}
}
return result;
}
}
public bool AddOp(SysProgramFunOp paramsList)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
bool result = false;
if (paramsList != null)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("INSERT INTO sys_program_fun_op ");
SqlStringBuilder.Append("(program,fun_name,grid_name,op_name, ");
SqlStringBuilder.Append("op_class,op_method,op_params,op_type, ");
SqlStringBuilder.Append("sort_num,[enabled],create_userid,create_time) ");
SqlStringBuilder.Append("VALUES(@program,@funName,@gridName,@opName, ");
SqlStringBuilder.Append("@opClass,@opMethod,@opParams,@opType, ");
SqlStringBuilder.Append("@sortNum,@enabled,@createUserid,CONVERT(varchar(50), GETDATE(), 21)) ");
int row = dbConn.Execute(SqlStringBuilder.ToString(), paramsList);
if (row > 0)
{
result = true;
}
}
return result;
}
}
public bool ExitOp(string where)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
bool result = false;
if (string.IsNullOrEmpty(where) == false)
{
string sqlStr = string.Format("select count(1) from {0} where {1}", this.TABLE_NAME, where);
object obj = dbConn.ExecuteScalar(sqlStr);
if (obj != null && obj != DBNull.Value)
{
int rowCout = Convert.ToInt32(obj);
if (rowCout > 0)
{
return true;
}
}
}
return result;
}
}
public new bool Delete(string where)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
bool result = false;
string sqlStr = string.Format("update {0} set Enabled='N' WHERE {1}", this.TABLE_NAME, where);
int row = dbConn.Execute(sqlStr);
if (row > 0)
{
result = true;
}
return result;
}
}
//启用
public int EnableData(String ids)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
String delStr = "update sys_program_fun_op set Enabled='Y' WHERE ruid in (" + ids + ")";
int result = dbConn.Execute(delStr);
return result;
}
}
//禁用
public int DisableData(String ids)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
String delStr = "update sys_program_fun_op set Enabled='N' WHERE ruid in (" + ids + ")";
int result = dbConn.Execute(delStr);
return result;
}
}
#endregion 成员方法
}
}