TG.WXCRM.V4/BLL/Base/BAS_RIGHT_LEVEL_BL.cs

253 lines
9.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using WX.CRM.BLL.Util;
using WX.CRM.Common;
using WX.CRM.IBLL.Base;
using WX.CRM.Model.Entity;
using WX.CRM.Model.MAP;
namespace WX.CRM.BLL.Base
{
public class BAS_RIGHT_LEVEL_BL : IBAS_RIGHT_LEVEL
{
#region
/// <summary>
/// 添加
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool Create(ref ValidationErrors errors, BAS_RIGHT_LEVEL model, List<BAS_RIGHT_LEVEL_DETAIL> detailList)
{
try
{
using (crmContext db = new crmContext())
{
var entry = db.BAS_RIGHT_LEVEL.FirstOrDefault(m => m.RIGHTID == model.RIGHTID && m.ROLECODE == model.ROLECODE);
if (entry != null)
{
errors.Add(string.Format("角色[{0}]编码为[{1}]已有权限“{2}”设置", model.RNAME, model.ROLECODE, model.RIGHTID));
return false;
}
var roleentry = db.BAS_ROLE.FirstOrDefault(m => m.CODE == model.ROLECODE);
if (roleentry == null)
{
errors.Add(string.Format("角色不存在!"));
return false;
}
model.PKID = new SEQUENCES_BL().Seq_base_get();
model.RNAME = model.RNAME;
//model.STATUS = 1;
model.CTIME = DateTime.Now;
db.BAS_RIGHT_LEVEL.Add(model);
foreach (BAS_RIGHT_LEVEL_DETAIL item in detailList)//新增到详细表
{
item.LEVELID = model.PKID;
item.PKID = new SEQUENCES_BL().Seq_base_get();
db.BAS_RIGHT_LEVEL_DETAIL.Add(item);
}
return db.SaveChanges().GetResult();
}
}
catch (Exception ex)
{
LogHelper.Error(ex.ToString());
errors.Add(ex.Message);
return false;
}
}
#endregion
#region
/// <summary>
/// 数据的修改
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool Update(ref ValidationErrors errors, BAS_RIGHT_LEVEL model, List<BAS_RIGHT_LEVEL_DETAIL> detailList)
{
try
{
using (crmContext db = new crmContext())
{
var tempentry = db.BAS_RIGHT_LEVEL.FirstOrDefault(m => m.RIGHTID == model.RIGHTID && m.ROLECODE == model.ROLECODE && m.PKID != model.PKID);
if (tempentry != null)
{
errors.Add(string.Format("角色[{0}]编码为[{1}]已有权限“{2}”设置", model.RNAME, model.ROLECODE, model.RIGHTID));
return false;
}
BAS_RIGHT_LEVEL entry = db.BAS_RIGHT_LEVEL.FirstOrDefault(m => m.PKID == model.PKID);
if (entry == null)
{
errors.Add(string.Format("参数不正确!"));
return false;
}
var roleentry = db.BAS_ROLE.FirstOrDefault(m => m.CODE == model.ROLECODE);
if (roleentry == null)
{
errors.Add(string.Format("角色不存在!"));
return false;
}
entry.RNAME = model.RNAME;
entry.REMARKS = model.REMARKS;
entry.RIGHTID = model.RIGHTID;
entry.STATUS = model.STATUS;
db.BAS_RIGHT_LEVEL_DETAIL.RemoveRange(db.BAS_RIGHT_LEVEL_DETAIL.Where(m => m.LEVELID == model.PKID));//将之前的全部删除
foreach (BAS_RIGHT_LEVEL_DETAIL item in detailList)//新增到详细表
{
item.LEVELID = model.PKID;
item.PKID = new SEQUENCES_BL().Seq_base_get();
db.BAS_RIGHT_LEVEL_DETAIL.Add(item);
}
db.SaveChanges();
return true;
}
}
catch (Exception ex)
{
LogHelper.Error(ex.ToString());
errors.Add(ex.Message);
return false;
}
}
#endregion
#region
/// <summary>
/// 删除
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public bool Delete(ref ValidationErrors errors, decimal id)
{
try
{
using (crmContext db = new crmContext())
{
BAS_RIGHT_LEVEL entry = db.BAS_RIGHT_LEVEL.FirstOrDefault(m => m.PKID == id);
if (entry == null)
{
errors.Add("数据已经被删除!");
return false;
}
db.BAS_RIGHT_LEVEL_DETAIL.RemoveRange(db.BAS_RIGHT_LEVEL_DETAIL.Where(m => m.LEVELID == id));//将之前的全部删除
db.BAS_RIGHT_LEVEL.Remove(entry);
return db.SaveChanges().GetResult();
}
}
catch (Exception ex) { LogHelper.Error(ex.ToString()); errors.Add(ex.Message); return false; }
}
#endregion
#region
/// <summary>
/// 获取实体
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public BAS_RIGHT_LEVEL GetModel(decimal id)
{
using (crmContext db = new crmContext())
{
BAS_RIGHT_LEVEL entry = db.BAS_RIGHT_LEVEL.FirstOrDefault(m => m.PKID == id);
return entry;
}
}
/// <summary>
/// 获取实体
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public List<BAS_RIGHT_LEVEL_DETAIL> GetDetailModel(decimal id)
{
using (crmContext db = new crmContext())
{
List<BAS_RIGHT_LEVEL_DETAIL> entry = db.BAS_RIGHT_LEVEL_DETAIL.Where(m => m.LEVELID == id).ToList();
return entry;
}
}
#endregion
#region
/// <summary>
/// 按照条件查找信息
/// </summary>
/// <param name="name"></param>
/// <param name="phone"></param>
/// <param name="gender"></param>
/// <param name="address"></param>
/// <param name="borthday1"></param>
/// <param name="borthday2"></param>
/// <returns></returns>
public List<Bas_Right_Level_Map> GetList(string rightcode, string rolecode)
{
using (crmContext db = new crmContext())
{
IQueryable<BAS_RIGHT_LEVEL> queryData = db.BAS_RIGHT_LEVEL.AsQueryable<BAS_RIGHT_LEVEL>();
//条件
if (!string.IsNullOrWhiteSpace(rightcode))
queryData = queryData.Where(a => a.RIGHTID.Contains(rightcode));
if (!string.IsNullOrWhiteSpace(rolecode))
queryData = queryData.Where(a => a.ROLECODE == rolecode);
var aa = (from a in queryData
select new Bas_Right_Level_Map
{
PKID = a.PKID,
ROLECODE = a.ROLECODE,
CTIME = a.CTIME,
REMARKS = a.REMARKS,
RIGHTID = a.RIGHTID,
RNAME = a.RNAME,
STATUS = a.STATUS
}).OrderByDescending(m => m.CTIME).ToList();
foreach (Bas_Right_Level_Map item in aa)
{
item.Detail = db.BAS_RIGHT_LEVEL_DETAIL.Where(m => m.LEVELID == item.PKID).Select(m => new Bas_Right_Level_Detail_Map()
{
PKID = m.PKID,
LEVELID = m.LEVELID,
CID = m.CID,
TYPEID = m.TYPEID
}).ToList();
foreach (Bas_Right_Level_Detail_Map map in item.Detail)
{
if (map.TYPEID == 1)//组
{
var entry = db.BAS_INNERGROUP.FirstOrDefault(m => m.GID == map.CID);
if (entry != null)
{
map.groupName = entry.GNAME;
var w = db.BAS_SALESDEPARTMENT.FirstOrDefault(m => m.SALEDEPTID == entry.SALEDEPTID);
if (w != null)
map.deptName = w.DEPTNAME;
}
}
else if (map.TYPEID == 2)//营业部
{
var w = db.BAS_SALESDEPARTMENT.FirstOrDefault(m => m.SALEDEPTID == map.CID);
if (w != null)
map.deptName = w.DEPTNAME;
map.deptName = w.DEPTNAME;
}
else if (map.TYPEID == 3)//等于公司的暂未开放
{
}
}
}
return aa;
}
}
#endregion
}
}