ComplianceServer/oldcode/Core.Web/Controllers/RoleRightResourceController.cs

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);
}
}
}
}