tijian_jichuang/Code/SOH.BLL.Host/QuanXian.cs
2025-02-20 11:54:48 +08:00

358 lines
12 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SOH.Entities;
using EAS.Services;
using SOH.Data;
using EAS.Data;
using EAS.Data.ORM;
using EAS.Data.Linq;
using EAS.Data.Access;
using Newtonsoft.Json;
using System.Data;
namespace SOH.BLL
{
[ServiceObject("权限相关业务")]
[ServiceBind(typeof(IQuanXian))]
public class QuanXian : IQuanXian
{
public List<Entities.SYS_ASS> getAssList()
{
// throw new NotImplementedException();
using (DbEntities db = new DbEntities())
{
return db.SYS_ASSs.ToList();
}
}
public List<Entities.modules> getModules(string guidkey)
{
throw new NotImplementedException();
}
public Data.OperationResult addASS(Entities.SYS_ASS ass)
{
using (DbEntities db = new DbEntities())
{
using (DbTransaction tran = db.CreateTransaction())
{
OperationResult or = new OperationResult();
try
{
if (ass.id == 0)
{
ass.id = new BasicBll().GetMax(ass.DbTableName, 1);
db.SYS_ASSs.Insert(ass);
}
else
{
db.SYS_ASSs.Update(ass);
}
foreach (modules m in ass.modules)
{
if (db.moduless.Where(t => t.guid == m.guid).Any())
{
m.id = db.moduless.First(t => t.guid == m.guid).id;
db.moduless.Update(m);
}
else
{
m.id = new BasicBll().GetMax(m.DbTableName, 1);
m.assid = ass.id;
db.moduless.Insert(m);
}
}
tran.Commit();
}
catch (System.Exception ex)
{
or.State = 0;
or.Message = ex.Message;
return or;
}
or.Message = "保存成功!";
or.State = 1;
return or;
}
}
}
public SYS_ASS getAss(string assguid)
{
// throw new NotImplementedException();
using (DbEntities db = new DbEntities())
{
return db.SYS_ASSs.FirstOrDefault(t => t.guid == assguid);
}
}
public string getMunelist(byte lx)
{
//throw new NotImplementedException();
using (var db = new DbEntities())
{
if (lx == 0)
{
var m = db.SYS_MENUs.Where(t => t.mtype == lx).Select(p => new { id = p.id, cdname = p.menuname, pid = p.pid, px = p.px });
return Newtonsoft.Json.JsonConvert.SerializeObject(m.ToList());
}
else if (lx == 1)
{
var ls = db.SYS_MENUs.Where(t => t.mtype == 1).Join(db.moduless, t => t.modulesid, p => p.id, (t, p) => new { mid = t.id, mname = t.menuname, mkid = p.guid, mkname = p.typename, assid = p.assid, pid = t.pid, opentype = t.opentype, px = t.px })
.Join(db.SYS_ASSs, t => t.assid, inn => inn.id, (t, a) => new
{
mid = t.mid,
mname = t.mname,
mkid = t.mkid,
mkname = t.mkname,
pid = t.pid,
opentype = t.opentype == 0 ? "窗口" : "对话框",
assid = a.guid,
assname = a.assname,
px = t.px
});
return Newtonsoft.Json.JsonConvert.SerializeObject(ls.ToList());
}
else
{
var m = db.SYS_MENUs.Select(p => new { id = p.id, cdname = p.menuname, pid = p.pid, px = p.px });
return Newtonsoft.Json.JsonConvert.SerializeObject(m.ToList());
}
}
}
public string getAssModuleList()
{
//throw new NotImplementedException();
using (var db = new DbEntities())
{
var m = db.SYS_ASSs.Join(db.moduless, t => t.id, p => p.assid, (t, p) => new
{
assid = t.guid,
assname = t.assname,
mkid = p.guid,
id = t.id,
mkname = p.typename,
mklm = p.FullName,
mid = p.id
});
return Newtonsoft.Json.JsonConvert.SerializeObject(m.ToList());
}
}
public OperationResult setMenu(SYS_MENU sm)
{
// throw new NotImplementedException();
using (var db = new DbEntities())
{
OperationResult or = new OperationResult();
try
{
if (sm.id == 0)
{
sm.id = new BLL.BasicBll().GetMax(sm.DbTableName, 1);
db.SYS_MENUs.Insert(sm);
}
else
{
if (sm.mtype == 1 && db.SYS_MENUs.Where(t => t.pid == sm.id).Count() > 0)
{
or.Message = "当前菜单有下级菜单不能修改为功能!";
or.State = 0;
return or;
}
db.SYS_MENUs.Update(sm);
}
}
catch (System.Exception ex)
{
or.State = 0;
or.Message = ex.Message;
return or;
}
or.Message = "操作成功!";
or.State = 1;
or.Tag = JsonConvert.SerializeObject(sm);
return or;
}
}
public OperationResult deleteMune(int mid)
{
//throw new NotImplementedException();
OperationResult or = new OperationResult();
using (var db = new DbEntities())
{
if (db.SYS_MENUs.Where(t => t.pid == mid).Count() > 0)
{
or.State = 0;
or.Message = "你选择的菜单有下级菜单不能删除!";
}
else
{
try
{
db.SYS_MENUs.Delete(t => t.id == mid);
}
catch (System.Exception ex)
{
or.State = 0;
or.Message = ex.Message;
return or;
}
or.State = 1;
or.Message = "删除成功!";
}
}
return or;
}
//根据ID获取菜单
public SYS_MENU getMenu(int mid)
{
//throw new NotImplementedException();
using (var db = new DbEntities())
{
return db.SYS_MENUs.FirstOrDefault(t => t.id == mid);
}
}
public string getUserMenu(string p)
{
//throw new NotImplementedException();
using (var db = new DbEntities())
{
//var czy=db.t_czygls.FirstOrDefault(
var ls = db.t_czygls.Where(t=>t.czym== p).Join(db.czyroles, t => t.czym, r => r.czyid, (t, r) => new { r }).Join(db.RoleCDs, t => t.r.roleid, r => r.roleid, (t, r) => new { r });
if (!ls.Any())
return null;
DataTable dt = new DataTable();
dt.Columns.Add("cdname", typeof(string));
dt.Columns.Add("cdlx", typeof(byte));
dt.Columns.Add("dkfs", typeof(byte));
dt.Columns.Add("px", typeof(int));
dt.Columns.Add("pid", typeof(int));
dt.Columns.Add("dll", typeof(string));
dt.Columns.Add("fullname", typeof(string));
dt.Columns.Add("assid", typeof(int));
dt.Columns.Add("cdid", typeof(int));
foreach (var m in ls.ToList())
{
if (dt.Select("cdid=" + m.r.menu.id).Count() <= 0)
{
DataRow dr = dt.NewRow();
dr["cdname"] = m.r.menu.menuname;
dr["cdlx"] = m.r.menu.mtype;
dr["dkfs"] = m.r.menu.opentype;
dr["px"] = m.r.menu.px;
dr["pid"] = m.r.menu.pid;
if (m.r.menu.mtype == 1)
{
dr["assid"] = m.r.menu.module.assid;
dr["dll"] = m.r.menu.module.sys_ass.dllname;
dr["fullname"] = m.r.menu.module.FullName;
}
dr["cdid"] = m.r.menu.id;
dt.Rows.Add(dr);
}
}
return Newtonsoft.Json.JsonConvert.SerializeObject(dt);
}
}
public string getczylist(string fdid)
{
//throw new NotImplementedException();
using (var db = new DbEntities())
{
var czy = db.t_czygls.Where(t => t.zhuxiao == 0).Join(db.t_ygzds, t => t.ygbm, p => p.bm, (t, p) => new { czy = t.czym, rname = p.xm, ssks = p.ssks, fddm = p.yydm ,zhuxiao=p.zhuxiao})
.Where(t=>t.zhuxiao==0).Join(db.keshis,t=>t.ssks,p=>p.ksbm,(t,p)=>new {czy=t.czy,rname=t.rname,ssks=p.ksmc,fddm=t.fddm});
if (!string.IsNullOrEmpty(fdid))
{
int ifd = 0;
int.TryParse(fdid, out ifd);
czy = czy.Where(t => t.fddm == ifd);
}
return Newtonsoft.Json.JsonConvert.SerializeObject(czy.ToList());
}
}
public string getlrqx(string czy)
{
//throw new NotImplementedException();
using (var db = new DbEntities())
{
var ks = db.t_czylrqxs.Where(t => t.czy == czy).Join(db.keshis, t => t.ksbm, p => p.ksbm, (t, p) => new
{
ksbm=p.ksbm,
ksmc = p.ksmc,
zxbz = p.zhuxiao == 0 ? "未注销" : "已注销"
});
return Newtonsoft.Json.JsonConvert.SerializeObject(ks.ToList());
}
}
public OperationResult setuserksqx(string _czy, List<int> ksbms)
{
//throw new NotImplementedException();
OperationResult or = new OperationResult();
using (var db = new DbEntities())
{
var tran = db.CreateTransaction();
try
{
db.t_czylrqxs.Delete(t => t.czy == _czy);
ksbms.ForEach(t =>
{
t_czylrqx qx = new t_czylrqx();
qx.czy = _czy;
qx.ksbm = (short)t;
db.t_czylrqxs.Insert(qx);
});
tran.Commit();
}
catch (System.Exception ex)
{
tran.Rollback();
or.State = 0;
or.Message = ex.Message;
return or;
}
or.Message = "操作完成!";
or.State = 1;
return or;
}
}
}
}
//ts_dd kh ddfzd ddxmb t_kh -->t_ht