using Ninject;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
using WX.CRM.Common;
using WX.CRM.IBLL.Base;
using WX.CRM.Model.Entity;
using WX.CRM.Model.MAP;
using WX.CRM.WebHelper;
namespace WX.CRM.WEB.Controllers.Base
{
public class RoleController : BaseController
{
private IBAS_ROLE roleBiz;
private IBAS_ROLE_Q roleBiz_Q;
[Inject]
public IBAS_RIGHT_LEVEL bas_right_level { get; set; }
ValidationErrors errors = new ValidationErrors();
public RoleController(IBAS_ROLE _roleBiz, IBAS_ROLE_Q _roleBiz_Q)
{
this.roleBiz = _roleBiz;
this.roleBiz_Q = _roleBiz_Q;
}
#region 首页
[AuthorizeRedirect(Roles = InitRights.CONST_角色管理)]
public ActionResult Index()
{
//ToolBar
ToolBar tool = new ToolBar();
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.角色管理, userRightId);
tool.AllowButton(toolbtn);
// tool.AllowButton("Create", "Edit", "Details", "Other1", "Delete");
tool.AddOtherButton("Other1", "更新顺序", "icon-reload", "UpdateSort_Click", true);
tool.AddOtherButton("Other2", "设置页面等级", "icon-edit", "SetDengji_Click", true);
ViewBag.ToolBar = tool;
//DataGrid
string tableId = "tablist";
Table tab = new Table(tableId);
tab.AddHeadCol("ROLEID", "10%", "角色ID");
tab.AddHeadCol("RNAME", "", "角色名称 ");
tab.AddHeadCol("CODE", "", "编码");
tab.AddHeadCol("REMARK", "", "说明");
tab.AddHeadCol("SORTID", "10%", "排序");
//tab.AddHeadCol("LEVEL", "10%", "等级");
tab.AddHeadRow();
ViewBag.gridTable = tab.GetTable();
return View();
}
///
/// 获取全部数据列表
///
///
[AuthorizeRedirect(Roles = InitRights.CONST_角色管理)]
public JsonResult GetHtmlList(string columns)
{
List modelist = roleBiz_Q.GetList();
Table table = new Table(columns, true);
foreach (WX.CRM.Model.Entity.BAS_ROLE model in modelist)
{
table.AddCol(model.ROLEID);
table.AddCol("text-align:left;padding-left:20px;", "", model.RNAME);
table.AddCol("text-align:left;padding-left:20px;", "", model.CODE);
table.AddCol(model.REMARK);
table.AddCol(string.Format("", model.SORTID, model.ROLEID));
//table.AddCol("");
table.AddRow();
}
var json = new
{
rowsList = table.GetRows()
};
return Json(json, JsonRequestBehavior.AllowGet);
}
#endregion
#region 设置等级
[AuthorizeToolBar(InitRights.CONST_角色管理, InitToolBar.CONST_Other2)]
public ActionResult RoleLevel()
{
//ToolBar
//ToolBar tool = new ToolBar();
//string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.角色管理, userRightId);
//tool.AllowButton(toolbtn);
//// tool.AllowButton("Create", "Edit", "Details", "Other1", "Delete");
//tool.AddOtherButton("Other1", "更新顺序", "icon-reload", "UpdateSort_Click", true);
//tool.AddOtherButton("Other2", "设置页面等级", "icon-edit", "SetDengji_Click", true);
//ViewBag.ToolBar = tool;
//DataGrid
string tableId = "tablist";
Table tab = new Table(tableId);
tab.AddHiddenHeadCol("PKID", "");
tab.AddHeadCol("RIGHTID", "7%", "权限ID ");
tab.AddHeadCol("RNAME", "8%", "权限名称");
tab.AddHeadCol("ROLECODE", "10%", "角色编码");
tab.AddHeadCol("REMARKS", "10%", "备注");
tab.AddHeadCol("STATUS", "10%", "状态");
tab.AddHeadCol("CTIME", "10%", "创建时间");
tab.AddHeadCol("LEVEL", "", "等级");
tab.AddHeadRow();
ViewBag.gridTable = tab.GetTable();
return View();
}
///
/// 获取全部数据列表
///
///
[AuthorizeToolBar(InitRights.CONST_角色管理, InitToolBar.CONST_Other2)]
public JsonResult GetRoleLevelHtmlList(string columns, string rightcode, string rolecode)
{
List modelist = bas_right_level.GetList(rightcode, rolecode);
Table table = new Table(columns, true);
foreach (Bas_Right_Level_Map model in modelist)
{
table.AddHiddenCol(model.PKID);
table.AddCol("text-align:left;padding-left:20px;", "", model.RIGHTID);
table.AddCol("text-align:left;padding-left:20px;", "", model.RNAME);
table.AddCol("text-align:left;padding-left:20px;", "", model.ROLECODE);
table.AddCol(model.REMARKS);
if (model.STATUS == 1)
{
table.AddCol("正常");
}
else
{
table.AddCol("禁用");
}
table.AddCol(model.CTIME.ToUnityString(1));
if (model.Detail.Count > 0)
{
string dptname = "营业部:";
List dpt = model.Detail.Where(m => m.TYPEID == 2).ToList();
foreach (var item in dpt)
{
dptname += string.Format("\"{0}\"", item.deptName);
}
string gname = "销售组:";
List gp = model.Detail.Where(m => m.TYPEID == 1).ToList();
foreach (var item in gp)
{
gname += string.Format("\"{0}-{1}\"", item.deptName, item.groupName);
}
string newstr = string.Empty;
if (dpt.Count > 0)
{
newstr += dptname;
}
if (gp.Count > 0)
{
if (!string.IsNullOrEmpty(newstr))
newstr += "
";
newstr += gname;
}
table.AddCol("text-align:left;padding-left:20px;", "", newstr);
}
table.AddRow();
}
var json = new
{
rowsList = table.GetRows()
};
return Json(json, JsonRequestBehavior.AllowGet);
}
#region 编辑
[HttpGet]
[AuthorizeToolBar(InitRights.CONST_角色管理, InitToolBar.CONST_Other2)]
public ActionResult LevelEdit(decimal? id, string rolecode)
{
BAS_RIGHT_LEVEL model = new BAS_RIGHT_LEVEL() { ROLECODE = rolecode, PKID = 0, STATUS = 1 };
if (id.HasValue)
{
model = bas_right_level.GetModel(id.Value);
List detailList = bas_right_level.GetDetailModel(id.Value);
ViewBag.detail = detailList;
}
return View(model);
}
[HttpPost]
[AuthorizeToolBar(InitRights.CONST_角色管理, InitToolBar.CONST_Other2)]
public JsonResult LevelEdiSavet(Bas_Right_Level_Save model)
{
BAS_RIGHT_LEVEL main = new BAS_RIGHT_LEVEL()
{
PKID = model.PKID,
REMARKS = model.REMARKS,
RIGHTID = model.RIGHTID,
RNAME = model.RNAME,
ROLECODE = model.ROLECODE,
STATUS = model.STATUS
};
List list = JsonHelper.JsonDivertToObj>(model.Detail);
if (model.PKID == 0)
{
main.CTIME = DateTime.Now;
bool result = bas_right_level.Create(ref errors, main, list);
CacheHelper.Remove("cache_BAS_RIGHT_LEVEL_DETAIL");
return JsonHandler.InsertMessage(errors, result);
}
else
{
bool result = bas_right_level.Update(ref errors, main, list);
CacheHelper.Remove("cache_BAS_RIGHT_LEVEL_DETAIL");
return JsonHandler.UpdateMessage(errors, result);
}
}
#endregion
[AuthorizeToolBar(InitRights.CONST_角色管理, InitToolBar.CONST_Other2)]
public JsonResult LevelDelete(decimal id)
{
bool result = bas_right_level.Delete(ref errors, id);
CacheHelper.Remove("cache_BAS_RIGHT_LEVEL_DETAIL");
return JsonHandler.DeleteMessage(errors, result);
}
#endregion
#region 详细
[AuthorizeToolBar(InitRights.CONST_角色管理, InitToolBar.CONST_Details)]
public ActionResult Details(string id)
{
if (string.IsNullOrWhiteSpace(id))
return View(new WX.CRM.Model.Entity.BAS_ROLE());
else
return View(roleBiz_Q.GetModel(Convert.ToDecimal(id)));
}
#endregion
#region 编辑
[HttpGet]
[AuthorizeToolBar(InitRights.CONST_角色管理, InitToolBar.CONST_Edit)]
public ActionResult Edit(string id)
{
decimal inid = id == null ? 0 : Convert.ToDecimal(id);
WX.CRM.Model.Entity.BAS_ROLE model = new WX.CRM.Model.Entity.BAS_ROLE();
if (inid != 0)
model = roleBiz_Q.GetModel(inid);
return View(model);
}
[HttpPost]
[AuthorizeToolBar(InitRights.CONST_角色管理, InitToolBar.CONST_Edit)]
public JsonResult Edit(WX.CRM.Model.Entity.BAS_ROLE model)
{
if (!ModelState.IsValid)
return JsonHandler.ValidateFailMessage();
if (model.ROLEID == 0)
{
model.CTIME = DateTime.Now;
model.CREATEUSER = UserId;
bool result = roleBiz.Create(ref errors, model);
return JsonHandler.InsertMessage(errors, result);
}
else
{
model.UTIME = DateTime.Now;
model.UPDATEUSER = UserId;
bool result = roleBiz.Update(ref errors, model);
return JsonHandler.UpdateMessage(errors, result);
}
}
#endregion
#region 删除
[AuthorizeToolBar(InitRights.CONST_角色管理, InitToolBar.CONST_Delete)]
public JsonResult Delete(string id)
{
if (string.IsNullOrWhiteSpace(id))
return JsonHandler.ManageMessage("参数不对!", false);
bool result = roleBiz.Delete(ref errors, Convert.ToDecimal(id));
return JsonHandler.DeleteMessage(errors, result);
}
#endregion
#region 更新列表数据排序
///
/// 更新列表数据排序
///
///
[AuthorizeToolBar(InitRights.CONST_角色管理, InitToolBar.CONST_Other1)]
public JsonResult Sort(string roleIds, string sortIds)
{
bool result = roleBiz.Sort(ref errors, roleIds, sortIds);
return JsonHandler.ManageMessage(errors, result);
}
#endregion
#region 获取角色树形
[HttpPost]
///
/// 获取角色树形
///
///
public JsonResult GetRoleTree()
{
return Json(roleBiz_Q.GetRoleTree(), JsonRequestBehavior.AllowGet);
}
#endregion
#region 获取角色树形(包括了树头)
[HttpPost]
///
/// 获取角色树形
///
///
public JsonResult GetRoleAllTree()
{
List