|
@@ -10,6 +10,7 @@ using System.Linq;
|
|
using System.Text;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Threading.Tasks;
|
|
using AutoMapper;
|
|
using AutoMapper;
|
|
|
|
+using EyeSoft.Collections.Generic;
|
|
|
|
|
|
namespace OASystem.Infrastructure.Repositories.Groups
|
|
namespace OASystem.Infrastructure.Repositories.Groups
|
|
{
|
|
{
|
|
@@ -28,7 +29,6 @@ namespace OASystem.Infrastructure.Repositories.Groups
|
|
_mapper = mapper;
|
|
_mapper = mapper;
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
/// 权限用户基础数据
|
|
/// 权限用户基础数据
|
|
/// </summary>
|
|
/// </summary>
|
|
@@ -50,16 +50,90 @@ namespace OASystem.Infrastructure.Repositories.Groups
|
|
}
|
|
}
|
|
|
|
|
|
//添加特定人员
|
|
//添加特定人员
|
|
- var feeBasePerm = AppSettingsHelper.Get<PermissionViewUserview>("FeeBasePerm");
|
|
|
|
|
|
+ var feeBasePerm = AppSettingsHelper.Get<FeeBasePermView>("FeeBasePerm");
|
|
if (feeBasePerm.Any())
|
|
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.GroupBy(x => x.Id).Select(x => x.First()).OrderBy(x => x.Id).ToList();
|
|
}
|
|
}
|
|
|
|
|
|
return viewPermissionData;
|
|
return viewPermissionData;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 初始化配置权限
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="draftId"></param>
|
|
|
|
+ /// <param name="currUserId"></param>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ public async Task<bool> InitPerm(int draftId, 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_EnterExitCostDraftPermission>();
|
|
|
|
+ foreach (var userId in feeBasePermIds)
|
|
|
|
+ {
|
|
|
|
+ permissions.Add(new Grp_EnterExitCostDraftPermission()
|
|
|
|
+ {
|
|
|
|
+ DraftId = draftId,
|
|
|
|
+ UserId = userId,
|
|
|
|
+ Permission = 1,
|
|
|
|
+ CreateUserId = userId,
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (permissions.Any())
|
|
|
|
+ {
|
|
|
|
+ await _sqlSugar.Insertable(permissions).ExecuteReturnIdentityAsync();
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+
|
|
/// <summary>
|
|
/// <summary>
|
|
/// 出入境费用草稿 --> 权限验证
|
|
/// 出入境费用草稿 --> 权限验证
|
|
/// </summary>
|
|
/// </summary>
|
|
@@ -73,8 +147,18 @@ namespace OASystem.Infrastructure.Repositories.Groups
|
|
var permissionIds = new List<int>() { 1, 2, 3, 4, 5 };
|
|
var permissionIds = new List<int>() { 1, 2, 3, 4, 5 };
|
|
if (!permissionIds.Contains(permission)) return false;
|
|
if (!permissionIds.Contains(permission)) return false;
|
|
|
|
|
|
- var feeBasePerm = AppSettingsHelper.Get<PermissionViewUserview>("FeeBasePerm");
|
|
|
|
- if (feeBasePerm.Any(x => x.Id == userId)) return true;
|
|
|
|
|
|
+ var feeBasePermUserIds = new List<int>();
|
|
|
|
+ var feeBasePerm = AppSettingsHelper.Get<FeeBasePermView>("FeeBasePerm");
|
|
|
|
+ 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_EnterExitCostDraftPermission>()
|
|
var info = await _sqlSugar.Queryable<Grp_EnterExitCostDraftPermission>()
|
|
.Where(it => it.DraftId == darftId && it.UserId == userId && it.Permission == permission)
|
|
.Where(it => it.DraftId == darftId && it.UserId == userId && it.Permission == permission)
|
|
@@ -87,7 +171,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
|
|
/// <summary>
|
|
/// <summary>
|
|
/// 移动端操作权限验证
|
|
/// 移动端操作权限验证
|
|
/// </summary>
|
|
/// </summary>
|
|
- /// <param name="groupId"></param>
|
|
|
|
|
|
+ /// <param name="id"></param>
|
|
/// <param name="currUserId"></param>
|
|
/// <param name="currUserId"></param>
|
|
/// <param name="permissionType">1 查看 2 编辑</param>
|
|
/// <param name="permissionType">1 查看 2 编辑</param>
|
|
/// <returns></returns>
|
|
/// <returns></returns>
|
|
@@ -308,25 +392,8 @@ namespace OASystem.Infrastructure.Repositories.Groups
|
|
subData.Select(x => { x.Id = 0; return x; }).ToList();
|
|
subData.Select(x => { x.Id = 0; return x; }).ToList();
|
|
dto.DayOtherPriceData.Select(x => { x.Id = 0; return x; }).ToList();
|
|
dto.DayOtherPriceData.Select(x => { x.Id = 0; return x; }).ToList();
|
|
|
|
|
|
- //默认添加查看、编辑权限(创建人、自己)
|
|
|
|
- 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_EnterExitCostDraftPermission>();
|
|
|
|
- foreach (var userId in feeBasePermIds)
|
|
|
|
- {
|
|
|
|
- permissions.Add(new Grp_EnterExitCostDraftPermission()
|
|
|
|
- {
|
|
|
|
- DraftId = enterExitId,
|
|
|
|
- UserId = userId,
|
|
|
|
- Permission = 1,
|
|
|
|
- CreateUserId = dto.UserId,
|
|
|
|
- });
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (permissions.Any()) await _sqlSugar.Insertable(permissions).ExecuteReturnIdentityAsync();
|
|
|
|
|
|
+ //初始化权限(查看、编辑)
|
|
|
|
+ await InitPerm(enterExitId,dto.UserId);
|
|
}
|
|
}
|
|
|
|
|
|
if (enterExitId > 0)
|
|
if (enterExitId > 0)
|