90 lines
3.1 KiB
C#
90 lines
3.1 KiB
C#
using Core.Web.WebHelper;
|
|
using CRM.Core.BLL.Base;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web.Mvc;
|
|
using WX.CRM.Common;
|
|
|
|
namespace Core.Web.Controllers
|
|
{
|
|
public class RoleRightResourceController : BaseController
|
|
{
|
|
private BAS_RIGHTGROUP_BL rightGroupBiz = new BAS_RIGHTGROUP_BL();
|
|
private BAS_ROLE_BL _role = new BAS_ROLE_BL();
|
|
private BAS_ROLERIGHTRESOURCE_BL _roleRight = new BAS_ROLERIGHTRESOURCE_BL();
|
|
|
|
[HttpGet]
|
|
public ActionResult Index()
|
|
{
|
|
var roles = _role.GetList();
|
|
ViewBag.roles = roles;
|
|
return View();
|
|
}
|
|
|
|
[HttpPost]
|
|
public JsonResult Index(string where)
|
|
{
|
|
var dtree = rightGroupBiz.GetRightTreeList(true);
|
|
|
|
return Json(new { status = new { code = 200, message = "success" }, data = dtree }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
|
|
[HttpPost]
|
|
public JsonResult Get(int roleId)
|
|
{
|
|
var list = _roleRight.GetRoleRightResourceByRoleId(roleId);
|
|
var data = new List<string>();
|
|
foreach (var item in list)
|
|
{
|
|
var lstt = new List<double>();
|
|
var s = Convert.ToString(int.Parse(item.TOOLBARVALUE.Value.ToString()), 2);
|
|
int index = s.Length - 1;
|
|
foreach (char ch in s)
|
|
{
|
|
if (ch == '1')
|
|
{
|
|
lstt.Add(Math.Pow(2, index));
|
|
}
|
|
index--;
|
|
}
|
|
|
|
foreach (var subItem in lstt)
|
|
{
|
|
data.Add(item.RIGHTID + "_" + subItem.ToString());
|
|
}
|
|
}
|
|
|
|
return Json(new { result = true, data = string.Join(",", data) }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
|
|
[HttpPost]
|
|
public JsonResult Save(string roleId, string rightIds)
|
|
{
|
|
try
|
|
{
|
|
if (string.IsNullOrWhiteSpace(roleId))
|
|
return JsonHandler.ManageMessage("参数不对!", false);
|
|
var list = new List<RightAndButton>();
|
|
if (!string.IsNullOrWhiteSpace(rightIds))
|
|
{
|
|
var arr = rightIds.Split(',');
|
|
foreach (var item in arr)
|
|
{
|
|
var subItem = item.Split('_');
|
|
list.Add(new RightAndButton() { rightId = subItem[0], buttons = decimal.Parse(subItem[1].ToString()) });
|
|
}
|
|
list = list.GroupBy(p => p.rightId).Select(g => new RightAndButton() { rightId = g.Key, buttons = g.Sum(p => p.buttons) }).ToList();
|
|
}
|
|
|
|
bool result = _roleRight.Save(Convert.ToInt32(roleId), list.ToJson(), UserId);
|
|
return JsonHandler.ManageMessage("操作成功!", result);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex.ToString());
|
|
return JsonHandler.ManageMessage("操作失败!", false);
|
|
}
|
|
}
|
|
}
|
|
} |