Commit 177a016d by guanzhenshan

增加导出权限设置

parent 02f05388
......@@ -25,9 +25,19 @@ namespace Bailun.DC.Models
public string notes { get; set; }
/// <summary>
/// 角色id
/// </summary>
public int roleid { get; set; }
/// <summary>
/// 用户id
/// </summary>
public int userid { get; set; }
public int? userid { get; set; }
/// <summary>
/// 用户名称
/// </summary>
public string username { get; set; }
/// <summary>
/// 是否可以导出,1:是,0:否
......@@ -39,5 +49,14 @@ namespace Bailun.DC.Models
/// </summary>
public DateTime createtime { get; set; }
public int createuserid { get; set; }
public string createusername { get; set; }
public DateTime lastupdatetime { get; set; }
public int lastupdateuserid { get; set; }
public string lastupdateusername { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.Models
{
public class dc_base_user_authoritys_code_config
{
public int id { get; set; }
public string code { get; set; }
public string name { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
using MySql.Data.MySqlClient;
using Dapper;
using Bailun.DC.Models;
using Bailun.DC.Common;
namespace Bailun.DC.Services
{
/// <summary>
/// 用户权限
/// </summary>
public class UserAuthorityServices
{
/// <summary>
/// 判断用户是否有导出权限
/// </summary>
/// <param name="code"></param>
/// <param name="userid"></param>
/// <returns></returns>
public static bool checkUserExportAuthority(string code,int userid)
{
var sql = $"select * from dc_base_user_authoritys where has_export = 1 and code='{code}' and userid="+userid;
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
var obj = cn.QueryFirstOrDefault<dc_base_user_authoritys>(sql);
return obj != null;
}
}
public string Add(List<dc_base_user_authoritys> list)
{
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
foreach (var item in list)
{
cn.Insert<dc_base_user_authoritys>(item);
}
}
return "";
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using MySql.Data.MySqlClient;
using Dapper;
using Bailun.DC.Models;
using Bailun.DC.Common;
using System.Linq;
namespace Bailun.DC.Services
{
/// <summary>
/// 用户权限
/// </summary>
public class UserAuthorityServices
{
/// <summary>
/// 判断用户是否有导出权限
/// </summary>
/// <param name="code"></param>
/// <param name="userid"></param>
/// <returns></returns>
public static bool checkUserExportAuthority(string code,int userid)
{
var sql = $"select * from dc_base_user_authoritys where has_export = 1 and code='{code}' and userid="+userid;
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
var obj = cn.QueryFirstOrDefault<dc_base_user_authoritys>(sql);
return obj != null;
}
}
/// <summary>
/// 判断用户是否有导出权限
/// </summary>
/// <param name="code"></param>
/// <param name="userid"></param>
/// <returns></returns>
public static bool checkUserExportAuthority(string code, string username)
{
var sql = $@"select count(t1.id) from dc_base_user_authoritys t1 join dc_user_role_relation t2 on t1.roleid=t2.role_id and t2.username='{username}'
where t1.has_export = 1 and t1.code='{code}'";
//$@"select * from dc_base_user_authoritys where has_export = 1 and code='{code}' and username='" + username+"'";
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
var obj = cn.ExecuteScalar<int>(sql);
return obj>0;
}
}
public string Add(List<dc_base_user_authoritys> list)
{
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
foreach (var item in list)
{
cn.Insert<dc_base_user_authoritys>(item);
}
}
return "";
}
/// <summary>
/// 保存导出权限
/// </summary>
/// <param name="roleid">角色id</param>
/// <param name="code">权限编码</param>
/// <param name="uid">当前用户id</param>
/// <param name="username">当前用户名称</param>
/// <returns></returns>
public string Save(int roleid, List<string> code,int uid,string username)
{
try
{
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
cn.Execute("update dc_base_user_authoritys set has_export=0,lastupdatetime='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',lastupdateuserid=" + uid + ",lastupdateusername='" + username + "' where roleid=" + roleid);
var listCode = cn.Query<dc_base_user_authoritys_code_config>("select * from dc_base_user_authoritys_code_config where type=1 and delstatus=0 and code in ('" + string.Join("','", code) + "')");
foreach (var item in code)
{
var objCode = listCode.Where(a => a.code == item).FirstOrDefault();
if (objCode != null)
{
var obj = cn.QueryFirstOrDefault<dc_base_user_authoritys>("select * from dc_base_user_authoritys where roleid=" + roleid + " and code='" + objCode.code + "'");
if (obj == null)
{
obj = new dc_base_user_authoritys()
{
code = objCode.code,
createtime = DateTime.Now,
createuserid = uid,
createusername = username,
has_export = 1,
lastupdatetime = DateTime.Now,
lastupdateuserid = uid,
lastupdateusername = username,
notes = objCode.name,
roleid = roleid,
userid = 0,
username = "",
};
cn.Insert<dc_base_user_authoritys>(obj);
}
else
{
obj.has_export = 1;
obj.lastupdatetime = DateTime.Now;
obj.lastupdateuserid = uid;
obj.lastupdateusername = username;
cn.Update(obj);
}
}
}
}
return "";
}
catch (Exception ex)
{
return ex.Message;
}
}
/// <summary>
/// 获取角色可导出的权限
/// </summary>
/// <param name="roleid"></param>
/// <returns></returns>
public List<dc_base_user_authoritys> GetRoleExportAuthority(int roleid)
{
var sql = $"select * from dc_base_user_authoritys where has_export = 1 and roleid="+roleid;
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
var obj = cn.Query<dc_base_user_authoritys>(sql);
return obj.ToList();
}
}
/// <summary>
/// 获取导出权限的编码数组
/// </summary>
/// <returns></returns>
public static List<dc_base_user_authoritys_code_config> ListCodeConfig()
{
var sql = "select * from dc_base_user_authoritys_code_config where type=1 and delstatus=0 ";
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
return cn.Query<dc_base_user_authoritys_code_config>(sql).AsList();
}
}
}
}
......
......@@ -219,7 +219,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
success = list.Count > 0,
msg = list.Count == 0 ? "暂无数据" : "",
data = list,
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportIndex", HttpContextHelper.Current.User.GetUid()),
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportIndex", HttpContextHelper.Current.User.GetUserName()),
});
}
......@@ -850,7 +850,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
col = listCol,
list = listValue,
amount = Math.Round(list.Sum(a=>a.amount_rmb)+ listInterest.Sum(a=>a.RepayInterestRMB), 2),
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportListInterestExpense", HttpContextHelper.Current.User.GetUid()),
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportListInterestExpense", HttpContextHelper.Current.User.GetUserName()),
});
}
......@@ -1045,7 +1045,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
return JsonConvert.SerializeObject(new { total = list.Count, rows = list ,
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportAdministrativeCost", HttpContextHelper.Current.User.GetUid()),
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportAdministrativeCost", HttpContextHelper.Current.User.GetUserName()),
});
}
......@@ -1126,7 +1126,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
});
return JsonConvert.SerializeObject(new { total = list.Count(), rows = list,
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportAdministrativeCost", HttpContextHelper.Current.User.GetUid()),
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportAdministrativeCost", HttpContextHelper.Current.User.GetUserName()),
});
}
......@@ -6612,7 +6612,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
amount_diff = (objCount.amount_diff??0).ToString("N2"),
count_usable_stock = objCount.count_usable_stock.ToString("N2")
},
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportUnReasonable", HttpContextHelper.Current.User.GetUid()),
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportUnReasonable", HttpContextHelper.Current.User.GetUserName()),
});
}
......
......@@ -87,7 +87,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
total = total,
rows = list,
companyid = companyid,
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportPlatformCost", HttpContextHelper.Current.User.GetUid()),
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportPlatformCost", HttpContextHelper.Current.User.GetUserName()),
count_row = new {
bailun_order_id = "总计",
amount_sales = countM.amount_sales.ToString("N2"),
......@@ -1254,7 +1254,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
gross_amount_rmb = countObj.gross_amount_rmb.ToString("N2")
},
companyid=companyid,
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportEbayAdFee", HttpContextHelper.Current.User.GetUid()),
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportEbayAdFee", HttpContextHelper.Current.User.GetUserName()),
});
}
......@@ -1440,7 +1440,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
profit_total = objCount.profit_total.ToString("N2")
},
companyid = companyid,
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportEbayInnerCodeProfit", HttpContextHelper.Current.User.GetUid()),
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportEbayInnerCodeProfit", HttpContextHelper.Current.User.GetUserName()),
});
}
......@@ -1929,7 +1929,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
});
return JsonConvert.SerializeObject(new { total = total, rows = list, count_row = countM, companyid,
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportListOrderDetail", HttpContextHelper.Current.User.GetUid())
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportListOrderDetail", HttpContextHelper.Current.User.GetUserName())
});
}
......@@ -2305,7 +2305,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
amount_refund_rmb = countOjb.amount_refund_rmb.ToString("N2"),
amount_refund_usd = countOjb.amount_refund_usd.ToString("N2"),
}, companyid,
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportListReturn", HttpContextHelper.Current.User.GetUid()),
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportListReturn", HttpContextHelper.Current.User.GetUserName()),
});
}
......@@ -2408,7 +2408,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
cost_rmb = countObj.cost_rmb.ToString("N2")
},
companyid,
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportAmazonAD", HttpContextHelper.Current.User.GetUid()),
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportAmazonAD", HttpContextHelper.Current.User.GetUserName()),
});
}
......
......@@ -110,7 +110,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
});
return JsonConvert.SerializeObject(new { total = total, rows = obj,
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportSkuDiffWeigh", ServiceFabric.Core.Extension.HttpContext.HttpContextHelper.Current.User.GetUid()),
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportSkuDiffWeigh", ServiceFabric.Core.Extension.HttpContext.HttpContextHelper.Current.User.GetUserName()),
});
}
......
......@@ -104,7 +104,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
quantity_tuneout_30days = (countM.quantity_tuneout_30days ?? 0).ToString("N0"),
quantity_tunein_30days = (countM.quantity_tunein_30days ?? 0).ToString("N0"),
},
isexport = (UserAuthorityServices.checkUserExportAuthority("ExportLogicWarehouse", user.GetUid())?1:0)
isexport = (UserAuthorityServices.checkUserExportAuthority("ExportLogicWarehouse", user.GetUserName())?1:0)
});
}
......
......@@ -135,9 +135,12 @@ namespace Bailun.DC.Web.Areas.Users.Controllers
//获取所有角色
var listrole = new Services.MenuServices().ListUserRole();
//获取所有导出的类型
var listExportCode = Services.UserAuthorityServices.ListCodeConfig();
ViewBag.users = listUser;
ViewBag.roles = listrole;
ViewBag.listcode = listExportCode;
return View();
}
......@@ -208,12 +211,15 @@ namespace Bailun.DC.Web.Areas.Users.Controllers
//已授权菜单
var listMenu = _service.GetRoleMenu(roleid);
var listExport = new Services.UserAuthorityServices().GetRoleExportAuthority(roleid);
return Json(new
{
success = true,
msg = "",
rela = listRela,
menus = listMenu
menus = listMenu,
codes = listExport
});
}
catch (Exception ex)
......@@ -307,6 +313,26 @@ namespace Bailun.DC.Web.Areas.Users.Controllers
}
/// <summary>
/// 保存角色导出权限
/// </summary>
/// <param name="roleid"></param>
/// <param name="s"></param>
/// <returns></returns>
[BailunAuthentication(LoginMode.Enforce)]
[HttpPost]
public JsonResult SaveRoleExport(int roleid, string s)
{
var user = HttpContextHelper.Current?.User;
var result = new Services.UserAuthorityServices().Save(roleid, s.Split('|').Where(a => a != "").ToList(), (user == null ? 0 : user.GetUid()), (user == null ? "" : user.GetUserName()));
return Json(new
{
success = string.IsNullOrEmpty(result),
msg = result
});
}
#endregion
#region Private
......
......@@ -57,30 +57,33 @@
</div>
</div>
</div>
@*<div class="col-sm-3" style="padding-left:0px;">
<div class="col-sm-3" style="padding-left:0px;">
<div style="background:#fff;-moz-box-shadow:3px 3px 8px #bbb; -webkit-box-shadow:3px 3px 3px #bbb; box-shadow:3px 3px 8px #bbb;">
<div style="margin-left:10px;padding-top:15px;padding-bottom:20px;">
<h3 style="margin-top:20px;">已授权导出权限<span style="font-size:13px;color:#aaa;">(已勾选的)</span></h3>
<div id="menu_contain">
<input id="chk_export_all" name="chk_export_all" type="checkbox" onclick="Chk_Export_All()" /><label for="chk_export_all" onclick="Chk_Export_All()">全选</label>
<div id="ztree_export" class="ztree" style="max-height: 800px;overflow: auto;">
<div style="border-bottom:solid 1px #eee;height:30px;line-height:30px;">
<input type="checkbox" />
<label>订单明细</label>
</div>
<div style="border-bottom:solid 1px #eee;height:30px;line-height:30px;">
<input type="checkbox" />
<label>订单明细</label>
</div>
@if (ViewBag.listcode.Count > 0)
{
foreach (var item in ViewBag.listcode)
{
<div style="border-bottom:solid 1px #eee;height:30px;line-height:30px;">
<input id="@item.code" type="checkbox" class="chk_export" />
<label for="@item.code">@item.name</label>
</div>
}
}
</div>
</div>
</div>
</div>
</div>*@
</div>
</div>
<div class="row" style="margin-bottom:20px;">
<div class="col-sm-12" style="text-align:center;">
<button class="btn btn-primary" onclick="SaveMenus();">保存</button>
<button class="btn btn-primary" onclick="SaveMenus();">保存菜单权限</button>
<button class="btn btn-primary" onclick="SaveExport();" style="margin-left:5px;">保存导出权限</button>
</div>
</div>
</div>
......@@ -170,6 +173,12 @@
var obj_rela = result.rela[item];
$('#user_contain').append('<div class="muser" id="rela_' + obj_rela.id + '">' + obj_rela.username + '<button style="margin-left:5px;" class="btn btn-xs btn-danger" onclick="del(' + obj_rela.id + ');" >删除</button></div>');
}
$('#chk_export_all').prop('checked', false);
$('.chk_export').prop('checked', false);
for (var i in result.codes) {
$('#' + result.codes[i].code).prop('checked', true);
}
zTreeObj.checkAllNodes(false);
......@@ -186,7 +195,6 @@
zTreeObj.checkNode(node, true, false);
}
}
}
}
})
......@@ -271,7 +279,7 @@
type:'POST',
func: function (result) {
if (result.success) {
layer.msg('提交成功!');
layer.msg('提交菜单权限成功!');
return false;
}
else {
......@@ -282,6 +290,42 @@
}
function SaveExport() {
var objRole = $('.activerole');
if (objRole.length == 0) {
alert('请选择角色!');
return false;
}
var roleid = objRole.first().attr('val');
var s = '';
$('.chk_export').each(function () {
if ($(this).prop('checked')) {
s += $(this).attr('id') + '|';
}
})
$.submit({
url: '@Url.Content("~/Users/Home/SaveRoleExport")',
paramData: 'roleid=' + roleid + '&s=' + s,
type:'POST',
func: function (result) {
if (result.success) {
layer.msg('提交导出权限成功!');
return false;
}
else {
layer.msg(result.msg);
}
}
})
}
function ChkAll() {
var chk = $('#chk_all').prop('checked');
......@@ -295,6 +339,19 @@
}
}
function Chk_Export_All() {
var chk = $('#chk_export_all').prop('checked');
if (chk) {
$('#chk_export_all').prop('checked', false);
$('.chk_export').prop('checked',false);
}
else {
$('#chk_export_all').prop('checked', true);
$('.chk_export').prop('checked', true);
}
}
</script>
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment