From 38aff235316e8d49bf3558bfaa44f4c6ab2b78a4 Mon Sep 17 00:00:00 2001
From: liaoxujun@qq.com <liaoxujun@qq.com>
Date: 星期五, 15 九月 2023 17:26:58 +0800
Subject: [PATCH] 修改权限体系,增加标书信息管理权限分离,分为标书信息管理平台使用,和标书制作管理使用,修改权限表,订单表
---
DocumentServiceAPI.Model/Permissions/TenantPermissions.cs | 26 ++++
DocumentServiceApi.InitQMessage/MessageReceive.cs | 297 ++++++++++++++++++++++++++++++++++++++----------
DocumentServiceAPI.Model/Oder/Oder.cs | 8 +
DocumentServiceApi.InitQMessage/TenantOderInfo.cs | 8 +
4 files changed, 268 insertions(+), 71 deletions(-)
diff --git a/DocumentServiceAPI.Model/Oder/Oder.cs b/DocumentServiceAPI.Model/Oder/Oder.cs
index 84b2713..7219edf 100644
--- a/DocumentServiceAPI.Model/Oder/Oder.cs
+++ b/DocumentServiceAPI.Model/Oder/Oder.cs
@@ -66,8 +66,12 @@
/// <summary>
/// 鏄惁鍏锋湁鏍囦功缂栬緫鏉冮檺
/// </summary>
- public bool? HasDocumentPermission { get; set; } = false;
-
+ public bool HasDocumentPermission { get; set; } = false;
+ /// <summary>
+ /// 鏄惁鏈夋潈闄�
+ /// </summary>
+ [Display(Name = "鏄惁鏈夌鐞嗘潈闄� ")]
+ public bool HasManagePermission { get; set; } = false;
}
}
diff --git a/DocumentServiceAPI.Model/Permissions/TenantPermissions.cs b/DocumentServiceAPI.Model/Permissions/TenantPermissions.cs
index 9a5f9a7..1488fd4 100644
--- a/DocumentServiceAPI.Model/Permissions/TenantPermissions.cs
+++ b/DocumentServiceAPI.Model/Permissions/TenantPermissions.cs
@@ -2,6 +2,7 @@
using SqlSugar;
using System;
using System.Collections.Generic;
+using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
@@ -57,9 +58,30 @@
[Display(Name = "鎻忚堪 ")]
[SugarColumn(ColumnDescription = "鎻忚堪 ")]
public string? Description { get; set; }
+
+
/// <summary>
- /// 鏄惁鏈夋爣涔︾紪杈戞潈闄�
+ /// 鏉冮檺鍒嗙被
/// </summary>
- public bool? HasDocumentPermission { get; set; } = false;
+
+ public TenantPermissionsType PermissionsType { get; set; }
+ }
+
+ /// <summary>
+ /// 鏉冮檺琛ㄧ被鍨�
+ /// </summary>
+ public enum TenantPermissionsType
+ {
+ /// <summary>
+ /// 绠$悊绯荤粺
+ /// </summary>
+ [Description( "绠$悊绯荤粺鏉冮檺")]
+ Manage,
+ /// <summary>
+ /// 鏍囦功鍒朵綔
+ /// </summary>銆�
+ [Description("绠$悊绯荤粺鏉冮檺")]
+ Document
+
}
}
diff --git a/DocumentServiceApi.InitQMessage/MessageReceive.cs b/DocumentServiceApi.InitQMessage/MessageReceive.cs
index 272bf15..ddb76ff 100644
--- a/DocumentServiceApi.InitQMessage/MessageReceive.cs
+++ b/DocumentServiceApi.InitQMessage/MessageReceive.cs
@@ -78,20 +78,42 @@
};
- TenantPermissions permissions = new TenantPermissions()
+ TenantPermissions ? Mangerpermissions = null;
+ if (oder.HasManagePermission)
{
- CreatBy = "娑堟伅闃熷垪 InitTenantOder",
- CreatTime = DateTime.Now,
- Description = obj.Description,
- EmployeeMaxCount = obj.EmployeeCount ?? 0,
- UnitMaxCount = obj.UnitCount ?? 0,
-
- HasDocumentPermission=obj.HasDocumentPermission,
- OverTime = DateTime.Now.AddMonths(obj.MonthCount ?? 0),
+ Mangerpermissions = new TenantPermissions()
+ {
+ CreatBy = "娑堟伅闃熷垪 InitTenantOder",
+ CreatTime = DateTime.Now,
+ Description = obj.Description,
+ EmployeeMaxCount = obj.EmployeeCount ?? 0,
+ UnitMaxCount = obj.UnitCount ?? 0,
+
+ PermissionsType = TenantPermissionsType.Manage,
+ OverTime = DateTime.Now.AddMonths(obj.MonthCount ?? 0),
- };
+ };
+ }
+ TenantPermissions? DocumentPermissions = null;
+ if (oder.HasDocumentPermission == true)
+ {
+ DocumentPermissions = new TenantPermissions()
+ {
+ CreatBy = "娑堟伅闃熷垪 InitTenantOder",
+ CreatTime = DateTime.Now,
+ Description = obj.Description,
+ EmployeeMaxCount = obj.EmployeeCount ?? 0,
+ UnitMaxCount = obj.UnitCount ?? 0,
+
+ PermissionsType = TenantPermissionsType.Document,
+ OverTime = DateTime.Now.AddMonths(obj.MonthCount ?? 0),
+
+
+
+ };
+ }
//鏂板缓绉熸埛鍛樺伐
Document_EmployeeInfo employeeInfo = new Document_EmployeeInfo()
@@ -134,13 +156,22 @@
var id= await _db.Insertable(Tinfo).ExecuteReturnIdentityAsync();
var eid = await _db.Insertable(employeeInfo).ExecuteReturnIdentityAsync();
- permissions.TenantId = id;
+ if (Mangerpermissions != null)
+ {
+ Mangerpermissions.TenantId = id;
+ await _db.Insertable(Mangerpermissions).ExecuteCommandAsync();
+ }
+ if (DocumentPermissions != null)
+ {
+ DocumentPermissions.TenantId = id;
+ await _db.Insertable(DocumentPermissions).ExecuteCommandAsync();
+ }
employeeAtTenant.TenantID = id;
employeeAtTenant.EmployeeID = eid;
tenderUnit.TenantId = id;
await _db.Insertable(tenderUnit).ExecuteCommandAsync();
await _db.Insertable(employeeAtTenant).ExecuteCommandAsync();
- await _db.Insertable(permissions).ExecuteCommandAsync ();
+
await _db.Insertable(oder).ExecuteCommandAsync();
await _db.AsTenant().CommitTranAsync();
}
@@ -165,72 +196,208 @@
Tinfo.UpdataTime = DateTime.Now;
Tinfo.IsDel = false;
Tinfo.IsEn = true;
-
- var tp= await _db.Queryable<TenantPermissions>().Where(x=>x.TenantId==Tinfo.Id).FirstAsync();
-
- try
+ if (oder.HasManagePermission == true)
{
- await _db.AsTenant().BeginTranAsync();
- if (Tinfo.ItCode != obj.ITCode)
+ var tp = await _db.Queryable<TenantPermissions>().Where(x => x.TenantId == Tinfo.Id&&x.PermissionsType== TenantPermissionsType.Manage && x.IsEn == true && x.IsDel == false).FirstAsync();
+
+ try
{
-
- await _db.Updateable(Tinfo).ExecuteCommandAsync();
- };
- if (tp == null)
- {
- tp = new TenantPermissions()
+ await _db.AsTenant().BeginTranAsync();
+ if (Tinfo.ItCode != obj.ITCode)
{
- CreatBy = "娑堟伅闃熷垪 InitTenantOder",
- CreatTime = DateTime.Now,
- IsDel = false,
- IsEn = true,
- EmployeeMaxCount=obj.EmployeeCount??0,
- UnitMaxCount=obj.UnitCount??0,
- OverTime=DateTime.Now.AddMinutes(obj.MonthCount??0),
- TenantId= Tinfo.Id,
-
+
+ await _db.Updateable(Tinfo).ExecuteCommandAsync();
};
- await _db.Insertable(tp).ExecuteCommandAsync();
+ if (tp == null)
+ {
+ tp = new TenantPermissions()
+ {
+ CreatBy = "娑堟伅闃熷垪 InitTenantOder",
+ CreatTime = DateTime.Now,
+ IsDel = false,
+ IsEn = true,
+ EmployeeMaxCount = obj.EmployeeCount ?? 0,
+ UnitMaxCount = obj.UnitCount ?? 0,
+ OverTime = DateTime.Now.AddMinutes(obj.MonthCount ?? 0),
+ TenantId = Tinfo.Id,
+ PermissionsType= TenantPermissionsType.Manage,
-
+ };
+ await _db.Insertable(tp).ExecuteCommandAsync();
+
+
+ }
+ else
+ {
+ tp.IsDel = false;
+ tp.IsEn = true;
+ tp.UnitMaxCount = obj.UnitCount ?? tp.UnitMaxCount;
+ tp.EmployeeMaxCount = obj.EmployeeCount ?? tp.EmployeeMaxCount;
+ tp.OverTime = tp.OverTime.AddMonths(obj.MonthCount ?? 0);
+ tp.UpdataBy = "娑堟伅闃熷垪 InitTenantOder";
+ tp.UpdataTime = DateTime.Now;
+
+ await _db.Updateable(tp).ExecuteCommandAsync();
+
+ }
+ if (obj.ITCode != Employee.UserName)
+ {
+ //濡傛灉鍙戠幇鐢ㄦ埛鍚嶅凡缁忔洿鏀癸紝鍒欒闆嗗洟鍛樺伐鐢ㄦ埛鍚嶈窡闅忔洿鏀�
+ Employee.UserName = obj.ITCode;
+ Employee.LastUpdateName = "娑堟伅闃熷垪 InitTenantOder";
+ Employee.LastUpdateTime = DateTime.Now;
+ await _db.Updateable(Employee).ExecuteCommandAsync();
+ }
+ await _db.Insertable(oder).ExecuteCommandAsync();
+ await _db.AsTenant().CommitTranAsync();
+
+
+
+
+
}
- else
+ catch (Exception e)
{
- tp.IsDel = false;
- tp.IsEn = true;
- tp.UnitMaxCount = obj.UnitCount ?? tp.UnitMaxCount;
- tp.EmployeeMaxCount = obj.EmployeeCount ?? tp.EmployeeMaxCount;
- tp.OverTime = tp.OverTime.AddMonths(obj.MonthCount??0);
- tp.UpdataBy = "娑堟伅闃熷垪 InitTenantOder";
- tp.UpdataTime = DateTime.Now;
- await _db.Updateable(tp).ExecuteCommandAsync();
-
+ await _db.AsTenant().RollbackTranAsync();
+ $"淇敼绉熸埛鏉冮檺澶辫触 msg:{msg},e:{e.ToString()} By锛氭秷鎭槦鍒� InitTenantOder".LogInformation<MessageReceive>();
+ return;
}
- if (obj.ITCode != Employee.UserName)
- {
- //濡傛灉鍙戠幇鐢ㄦ埛鍚嶅凡缁忔洿鏀癸紝鍒欒闆嗗洟鍛樺伐鐢ㄦ埛鍚嶈窡闅忔洿鏀�
- Employee.UserName = obj.ITCode;
- Employee.LastUpdateName= "娑堟伅闃熷垪 InitTenantOder";
- Employee.LastUpdateTime = DateTime.Now;
- await _db.Updateable(Employee).ExecuteCommandAsync();
- }
- await _db.Insertable(oder).ExecuteCommandAsync();
- await _db.AsTenant().CommitTranAsync();
-
-
-
-
-
}
- catch (Exception e)
+
+
+ if (oder.HasDocumentPermission == true)
{
+ var tp = await _db.Queryable<TenantPermissions>().Where(x => x.TenantId == Tinfo.Id && x.PermissionsType == TenantPermissionsType.Document && x.IsEn == true && x.IsDel == false).FirstAsync();
- await _db.AsTenant().RollbackTranAsync();
- $"淇敼绉熸埛鏉冮檺澶辫触 msg:{msg},e:{e.ToString()} By锛氭秷鎭槦鍒� InitTenantOder".LogInformation<MessageReceive>();
- return;
+ try
+ {
+ await _db.AsTenant().BeginTranAsync();
+ if (Tinfo.ItCode != obj.ITCode)
+ {
+
+ await _db.Updateable(Tinfo).ExecuteCommandAsync();
+ };
+ if (tp == null)
+ {
+ tp = new TenantPermissions()
+ {
+ CreatBy = "娑堟伅闃熷垪 InitTenantOder",
+ CreatTime = DateTime.Now,
+ IsDel = false,
+ IsEn = true,
+ EmployeeMaxCount = obj.EmployeeCount ?? 0,
+ UnitMaxCount = obj.UnitCount ?? 0,
+ OverTime = DateTime.Now.AddMinutes(obj.MonthCount ?? 0),
+ TenantId = Tinfo.Id,
+ PermissionsType = TenantPermissionsType.Document,
+
+ };
+ await _db.Insertable(tp).ExecuteCommandAsync();
+
+
+ }
+ else
+ {
+ tp.IsDel = false;
+ tp.IsEn = true;
+ tp.UnitMaxCount = obj.UnitCount ?? tp.UnitMaxCount;
+ tp.EmployeeMaxCount = obj.EmployeeCount ?? tp.EmployeeMaxCount;
+ tp.OverTime = tp.OverTime.AddMonths(obj.MonthCount ?? 0);
+ tp.UpdataBy = "娑堟伅闃熷垪 InitTenantOder";
+ tp.UpdataTime = DateTime.Now;
+
+ await _db.Updateable(tp).ExecuteCommandAsync();
+
+ }
+ if (obj.ITCode != Employee.UserName)
+ {
+ //濡傛灉鍙戠幇鐢ㄦ埛鍚嶅凡缁忔洿鏀癸紝鍒欒闆嗗洟鍛樺伐鐢ㄦ埛鍚嶈窡闅忔洿鏀�
+ Employee.UserName = obj.ITCode;
+ Employee.LastUpdateName = "娑堟伅闃熷垪 InitTenantOder";
+ Employee.LastUpdateTime = DateTime.Now;
+ await _db.Updateable(Employee).ExecuteCommandAsync();
+ }
+ await _db.Insertable(oder).ExecuteCommandAsync();
+ await _db.AsTenant().CommitTranAsync();
+
+
+
+
+
+ }
+ catch (Exception e)
+ {
+
+ await _db.AsTenant().RollbackTranAsync();
+ $"淇敼绉熸埛鏉冮檺澶辫触 msg:{msg},e:{e.ToString()} By锛氭秷鎭槦鍒� InitTenantOder".LogInformation<MessageReceive>();
+ return;
+ }
}
-
+
+ if(oder.HasDocumentPermission!=true&&oder.HasManagePermission!=true)
+ {
+ //濡傛灉涓や釜閮戒笉鏄紝name灏辨槸澧炲姞浜烘暟鎴栬�呭鍔犲叕鍙告暟閲忥紝鍙湁鍦ㄧ鐞嗙郴缁熶腑浜х敓
+
+ var tp = await _db.Queryable<TenantPermissions>().Where(x => x.TenantId == Tinfo.Id && x.PermissionsType == TenantPermissionsType.Manage&&x.IsEn==true&&x.IsDel==false).FirstAsync();
+
+ try
+ {
+ await _db.AsTenant().BeginTranAsync();
+ if (Tinfo.ItCode != obj.ITCode)
+ {
+
+ await _db.Updateable(Tinfo).ExecuteCommandAsync();
+ };
+ if (tp == null)
+ {
+ //娌℃湁TP 鍒欎笉鐩存帴澧炲姞 鎶ラ敊
+
+
+ await _db.AsTenant().RollbackTranAsync();
+ $"淇敼鍛樺伐浜烘暟锛屽叕鍙稿憳宸ユ潈闄愬け璐� 宸蹭涪寮冨鐞� msg:{msg} By锛氭秷鎭槦鍒� InitTenantOder".LogInformation<MessageReceive>();
+ return;
+
+ }
+ else
+ {
+ tp.IsDel = false;
+ tp.IsEn = true;
+ tp.UnitMaxCount = tp.UnitMaxCount+=(obj.UnitCount??0);
+ tp.EmployeeMaxCount = tp.UnitMaxCount += (obj.UnitCount ?? 0);
+ tp.OverTime = tp.OverTime.AddMonths(obj.MonthCount ?? 0);
+ tp.UpdataBy = "娑堟伅闃熷垪 InitTenantOder";
+ tp.UpdataTime = DateTime.Now;
+
+ await _db.Updateable(tp).ExecuteCommandAsync();
+
+ }
+ if (obj.ITCode != Employee.UserName)
+ {
+ //濡傛灉鍙戠幇鐢ㄦ埛鍚嶅凡缁忔洿鏀癸紝鍒欒闆嗗洟鍛樺伐鐢ㄦ埛鍚嶈窡闅忔洿鏀�
+ Employee.UserName = obj.ITCode;
+ Employee.LastUpdateName = "娑堟伅闃熷垪 InitTenantOder";
+ Employee.LastUpdateTime = DateTime.Now;
+ await _db.Updateable(Employee).ExecuteCommandAsync();
+ }
+ await _db.Insertable(oder).ExecuteCommandAsync();
+ await _db.AsTenant().CommitTranAsync();
+
+ return;
+
+
+
+ }
+ catch (Exception e)
+ {
+
+ await _db.AsTenant().RollbackTranAsync();
+ $"淇敼绉熸埛鏉冮檺澶辫触 msg:{msg},e:{e.ToString()} By锛氭秷鎭槦鍒� InitTenantOder".LogInformation<MessageReceive>();
+ return;
+ }
+
+ }
+
}
diff --git a/DocumentServiceApi.InitQMessage/TenantOderInfo.cs b/DocumentServiceApi.InitQMessage/TenantOderInfo.cs
index 0ccfed3..2adef05 100644
--- a/DocumentServiceApi.InitQMessage/TenantOderInfo.cs
+++ b/DocumentServiceApi.InitQMessage/TenantOderInfo.cs
@@ -61,8 +61,12 @@
/// <summary>
/// 鏄惁鍏锋湁鏍囦功缂栬緫鏉冮檺
/// </summary>
- public bool? HasDocumentPermission { get; set; } = false;
-
+ public bool HasDocumentPermission { get; set; } = false;
+ /// <summary>
+ /// 鏄惁鏈夋潈闄�
+ /// </summary>
+
+ public bool HasManagePermission { get; set; } = false;
}
}
--
Gitblit v1.9.1