|
@@ -1,5 +1,6 @@
|
|
|
|
|
|
using AutoMapper;
|
|
|
+using EyeSoft.Collections.Generic;
|
|
|
using EyeSoft.Runtime.InteropServices;
|
|
|
using NPOI.SS.Formula.Functions;
|
|
|
using OASystem.Domain;
|
|
@@ -54,16 +55,89 @@ namespace OASystem.Infrastructure.Repositories.Groups
|
|
|
}
|
|
|
|
|
|
//添加特定人员
|
|
|
- var feeBasePerm = AppSettingsHelper.Get<PermissionViewUserview>("FeeBasePerm");
|
|
|
+ var feeBasePerm = AppSettingsHelper.Get<FeeBasePermView>("FeeBasePerm");
|
|
|
if (feeBasePerm.Any())
|
|
|
{
|
|
|
- viewPermissionData.AddRange(feeBasePerm);
|
|
|
+ foreach (var item in feeBasePerm)
|
|
|
+ {
|
|
|
+ if (item.Users.Any())
|
|
|
+ {
|
|
|
+ viewPermissionData.AddRange(item.Users);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
return viewPermissionData.GroupBy(x => x.Id).Select(x => x.First()).OrderBy(x => x.Id).ToList();
|
|
|
}
|
|
|
|
|
|
return viewPermissionData;
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 初始化配置权限
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="groupId"></param>
|
|
|
+ /// <param name="currUserId"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public async Task<bool> InitPerm(int groupId,int currUserId)
|
|
|
+ {
|
|
|
+ var feeBasePerm = AppSettingsHelper.Get<FeeBasePermView>("FeeBasePerm");
|
|
|
+ var intlDplmcyBasePerm = new List<PermissionViewUserview>(); //国交部
|
|
|
+ var mktStratBasePerm = new List<PermissionViewUserview>(); //市场部
|
|
|
+
|
|
|
+ if (feeBasePerm.Any())
|
|
|
+ {
|
|
|
+ var intlDplmcyData = feeBasePerm.Find(x => x.Dept.Equals("IntlDplmcy"));
|
|
|
+ if (intlDplmcyData != null) if (intlDplmcyData.Users.Any()) intlDplmcyBasePerm = intlDplmcyData.Users.ToList();
|
|
|
+
|
|
|
+ var mktStratData = feeBasePerm.Find(x => x.Dept.Equals("MktStrat"));
|
|
|
+ if (mktStratData != null) if (mktStratData.Users.Any()) mktStratBasePerm = mktStratData.Users.ToList();
|
|
|
+ }
|
|
|
+
|
|
|
+ /*
|
|
|
+ * 权限分配规则
|
|
|
+ * 刘琪、王鸽、朱琳的账号:默认只能刘、王、朱查看
|
|
|
+ * 舒庆的账号 默认只能舒、刘、王、朱查看
|
|
|
+ * 其他销售 默认只能自己、舒、刘、王、朱查看
|
|
|
+ */
|
|
|
+ var feeBasePermIds = new List<int>();
|
|
|
+ if (intlDplmcyBasePerm.Any(x => x.Id == currUserId))
|
|
|
+ {
|
|
|
+ feeBasePermIds = intlDplmcyBasePerm.Select(x => x.Id).ToList();
|
|
|
+ }
|
|
|
+ else if (mktStratBasePerm.Any(x => x.Id == currUserId))
|
|
|
+ {
|
|
|
+ feeBasePermIds.AddRange(mktStratBasePerm.Select(x => x.Id).ToList());
|
|
|
+ feeBasePermIds.AddRange(intlDplmcyBasePerm.Select(x => x.Id).ToList());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ feeBasePermIds.Add(currUserId);
|
|
|
+ feeBasePermIds.AddRange(mktStratBasePerm.Select(x => x.Id).ToList());
|
|
|
+ feeBasePermIds.AddRange(intlDplmcyBasePerm.Select(x => x.Id).ToList());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (feeBasePermIds.Any())
|
|
|
+ {
|
|
|
+ var permissions = new List<Grp_EnterExitCostPermission>();
|
|
|
+ foreach (var userId in feeBasePermIds)
|
|
|
+ {
|
|
|
+ permissions.Add(new Grp_EnterExitCostPermission()
|
|
|
+ {
|
|
|
+ GroupId = groupId,
|
|
|
+ UserId = userId,
|
|
|
+ Permission = 1,
|
|
|
+ CreateUserId = currUserId,
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ if (permissions.Any())
|
|
|
+ {
|
|
|
+ await _sqlSugar.Insertable(permissions).ExecuteReturnIdentityAsync();
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
/// <summary>
|
|
|
/// 出入境费用正式 --> 权限验证
|
|
@@ -80,8 +154,19 @@ namespace OASystem.Infrastructure.Repositories.Groups
|
|
|
var permissionIds = new List<int>() { 1, 2, 3, 4, 5 };
|
|
|
if (!permissionIds.Contains(permission)) return false;
|
|
|
|
|
|
- var feeBasePerm = AppSettingsHelper.Get<PermissionViewUserview>("FeeBasePerm");
|
|
|
- if (feeBasePerm.Any(x => x.Id == userId)) return true;
|
|
|
+ var feeBasePerm = AppSettingsHelper.Get<FeeBasePermView>("FeeBasePerm");
|
|
|
+ var feeBasePermUserIds = new List<int>();
|
|
|
+
|
|
|
+ if (feeBasePerm.Any())
|
|
|
+ {
|
|
|
+ var intlDplmcyData = feeBasePerm.Find(x => x.Dept.Equals("IntlDplmcy"));
|
|
|
+ if (intlDplmcyData != null) if (intlDplmcyData.Users.Any()) feeBasePermUserIds.AddRange(intlDplmcyData.Users.Select(x=>x.Id).ToList());
|
|
|
+
|
|
|
+ var mktStratData = feeBasePerm.Find(x => x.Dept.Equals("MktStrat"));
|
|
|
+ if (mktStratData != null) if (mktStratData.Users.Any()) feeBasePermUserIds.AddRange(mktStratData.Users.Select(x => x.Id).ToList());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (feeBasePermUserIds.Any(x => x == userId)) return true;
|
|
|
|
|
|
var info = await _sqlSugar.Queryable<Grp_EnterExitCostPermission>()
|
|
|
.Where(it => it.GroupId == groupId && it.UserId == userId && it.Permission == permission)
|
|
@@ -405,8 +490,8 @@ namespace OASystem.Infrastructure.Repositories.Groups
|
|
|
}
|
|
|
|
|
|
var updateId = _sqlSugar.Updateable<Grp_EnterExitCost>(enterExitCost)
|
|
|
- .IgnoreColumns(it => new { it.DeleteUserId, it.DeleteTime, it.CreateUserId, it.CreateTime, it.IsDel })
|
|
|
- .ExecuteCommand();
|
|
|
+ .IgnoreColumns(it => new { it.DeleteUserId, it.DeleteTime, it.CreateUserId, it.CreateTime, it.IsDel })
|
|
|
+ .ExecuteCommand();
|
|
|
if (updateId > 0) enterExitId = enterExitCost.Id;
|
|
|
else
|
|
|
{
|
|
@@ -435,25 +520,8 @@ namespace OASystem.Infrastructure.Repositories.Groups
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
- //默认添加查看、编辑权限(创建人、自己)
|
|
|
- var feeBasePermIds = new List<int>() { dto.UserId };
|
|
|
-
|
|
|
- var feeBasePerm = AppSettingsHelper.Get<PermissionViewUserview>("FeeBasePerm");
|
|
|
- if (feeBasePerm.Any()) feeBasePermIds.AddRange(feeBasePerm.Select(x => x.Id).ToList());
|
|
|
-
|
|
|
- var permissions = new List<Grp_EnterExitCostPermission>();
|
|
|
- foreach (var userId in feeBasePermIds)
|
|
|
- {
|
|
|
- permissions.Add(new Grp_EnterExitCostPermission()
|
|
|
- {
|
|
|
- GroupId = enterExitCost.DiId,
|
|
|
- UserId = userId,
|
|
|
- Permission = 1,
|
|
|
- CreateUserId = dto.UserId,
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- if (permissions.Any()) await _sqlSugar.Insertable(permissions).ExecuteReturnIdentityAsync();
|
|
|
+ //初始化权限(查看、编辑)
|
|
|
+ await InitPerm(dto.DiId, dto.UserId);
|
|
|
}
|
|
|
|
|
|
if (enterExitId > 0)
|