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

141 lines
5.6 KiB

using ICSSoft.Common;
using ICSSoft.Entity;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
namespace ICSSoft.DataProject
{
/// <summary>
/// 使用中
/// 获取用户权限
/// </summary>
public class ICSUserPowerService
{
private static log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
private static string connString = System.Configuration.ConfigurationManager.AppSettings["ConnStr"];
private static string ERPDB = System.Configuration.ConfigurationManager.AppSettings["ERPDB"];
public DataTable GetUserPower(ICSUserPower info)
{
DataTable dt = null;
//string json = "";
var language = LanguageHelper.GetName("WMSAPIInfo");
if (info == null)
{
throw new Exception(language.GetNameByCode("WMSAPIInfo007"));//"传送数据为空!"
}
string res = string.Empty;
SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
conn.Open();
SqlTransaction sqlTran = conn.BeginTransaction();
SqlCommand cmd = new SqlCommand();
cmd.Transaction = sqlTran;
cmd.Connection = conn;
try
{
string sql = string.Empty;
if (string.IsNullOrWhiteSpace(info.UserId))
throw new Exception(language.GetNameByCode("WMSAPIInfo176"));//"用户不能为空!");
if (string.IsNullOrWhiteSpace(info.MenuCode))
throw new Exception(language.GetNameByCode("WMSAPIInfo177"));//"菜单不能为空!");
if (string.IsNullOrWhiteSpace(info.WorkPoint))
throw new Exception(language.GetNameByCode("WMSAPIInfo004"));//"站点不能为空!"
sql = @"IF EXISTS(SELECT F_Id FROM Sys_SRM_User WHERE F_IsAdministrator='1' AND F_Id='{0}' AND F_Location='{2}')
BEGIN
SELECT d.F_EnCode AS ButtonName,d.F_FullName AS ButtonText
FROM Sys_SRM_ModuleButton d
INNER JOIN Sys_SRM_Module e ON d.F_ModuleId=e.F_Id
WHERE e.F_FullName='{1}'
END
ELSE
BEGIN
SELECT d.F_EnCode AS ButtonName,d.F_FullName AS ButtonText
FROM Sys_SRM_User a
INNER JOIN Sys_SRM_Role b ON a.F_RoleId=b.F_Id
INNER JOIN Sys_SRM_RoleAuthorize c ON a.F_RoleId=c.F_ObjectId
INNER JOIN Sys_SRM_ModuleButton d ON c.F_ItemId=d.F_Id
INNER JOIN Sys_SRM_Module e ON d.F_ModuleId=e.F_Id
WHERE a.F_Id='{0}' AND e.F_FullName='{1}' AND a.F_Location='{2}'
END";
sql = string.Format(sql, info.UserId, info.MenuCode, info.WorkPoint);
dt = DBHelper.SQlReturnData(sql, cmd);
//json = JsonConvert.SerializeObject(dt);
cmd.Transaction.Commit();
return dt;
}
catch (Exception ex)
{
if (cmd.Transaction != null)
cmd.Transaction.Rollback();
log.Error(ex.Message);
throw new Exception(ex.Message);
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
conn.Dispose();
}
}
public DataTable GetExtensionEnable(ICSWorkPoint info)
{
DataTable dt = null;
//string json = "";
var language = LanguageHelper.GetName("WMSAPIInfo");
if (info == null)
{
throw new Exception(language.GetNameByCode("WMSAPIInfo007"));//"传送数据为空!"
}
string res = string.Empty;
SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
conn.Open();
SqlTransaction sqlTran = conn.BeginTransaction();
SqlCommand cmd = new SqlCommand();
cmd.Transaction = sqlTran;
cmd.Connection = conn;
try
{
string sql = string.Empty;
if (string.IsNullOrWhiteSpace(info.WorkPointCode))
throw new Exception(language.GetNameByCode("WMSAPIInfo004"));//"站点不能为空!"
sql = @"SELECT ID,ColCode,ColName,Enable,MTIME,MUSER,MUSERName,WorkPoint,EATTRIBUTE1
FROM ICSExtensionEnable WHERE WorkPoint='{0}'and Enable='1'";
sql = string.Format(sql, info.WorkPointCode);
dt = DBHelper.SQlReturnData(sql, cmd);
//json = JsonConvert.SerializeObject(dt);
cmd.Transaction.Commit();
return dt;
}
catch (Exception ex)
{
if (cmd.Transaction != null)
cmd.Transaction.Rollback();
log.Error(ex.Message);
throw new Exception(ex.Message);
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
conn.Dispose();
}
}
}
}