From 2d04b2f19d201ff10ed76c1773235488e9ab7628 Mon Sep 17 00:00:00 2001 From: liaoxujun@qq.com <liaoxujun@qq.com> Date: 星期三, 20 九月 2023 09:50:48 +0800 Subject: [PATCH] 修改权限开通逻辑 --- DocumentServiceApi.InitQMessage/MessageReceive.cs | 336 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 268 insertions(+), 68 deletions(-) diff --git a/DocumentServiceApi.InitQMessage/MessageReceive.cs b/DocumentServiceApi.InitQMessage/MessageReceive.cs index f250681..eb8f76a 100644 --- a/DocumentServiceApi.InitQMessage/MessageReceive.cs +++ b/DocumentServiceApi.InitQMessage/MessageReceive.cs @@ -8,6 +8,7 @@ using Furion.Schedule; using InitQ.Abstractions; using InitQ.Attributes; +using InitQ.Cache; using Microsoft.Extensions.Options; using SqlSugar; using System; @@ -23,8 +24,12 @@ /// </summary> public class MessageReceive: IRedisSubscribe { - - + private InitQ.Cache.ICacheService _cacheService; + public MessageReceive(InitQ.Cache.ICacheService cacheService) + { + _cacheService = cacheService; + } + /// <summary> /// 鍒濆鍖栬鍗曞鐞� /// </summary> @@ -55,8 +60,20 @@ PayTime = obj.PayTime, ZcUserID = obj.ZcUserID, ITCode = obj.ITCode, + HasDocumentPermission=obj.HasDocumentPermission, + HasManagePermission= obj.HasManagePermission, + TenantId= obj.TenantId, + + + }; - TenantInfo? Tinfo = await _db.Queryable<TenantInfo>().Where(x=>x.ZcUserID==obj.ZcUserID).SingleAsync(); + TenantInfo? Tinfo = null; + if (obj.TenantId!=null) + Tinfo = await _db.Queryable<TenantInfo>().Where(x => x.Id == obj.TenantId).SingleAsync(); + // 濡傛灉娌℃湁tengdeid 瑙嗕负鏂板缓tenggdeid + // else + + //Tinfo= await _db.Queryable<TenantInfo>().Where(x=>x.ZcUserID==obj.ZcUserID).SingleAsync(); if(Tinfo==null) { Tinfo = new TenantInfo @@ -66,23 +83,47 @@ CreatBy = "娑堟伅闃熷垪 InitTenantOder", CreatTime = DateTime.Now, Description = obj.Description, - Name = obj.Name??obj.ITCode+"闆嗗洟璐﹀彿", + Name =obj.TenantName , PsW = obj.ITCode.Substring(obj.ITCode.Length - 4), }; - 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, - 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() @@ -107,7 +148,7 @@ Document_TenderUnit tenderUnit = new Document_TenderUnit() { - UnitName = obj.Name ?? "闆嗗洟鍏徃", + UnitName = obj.TenantName ?? "闆嗗洟鍏徃", AdviseFlag = 2, UserId = 0, CreatTime = DateTime.Now.ToString("yyyy MM dd"), @@ -125,13 +166,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(); } @@ -156,72 +206,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; + } + + } + } @@ -235,5 +421,19 @@ } + /// <summary> + /// 鍙戦�佹秷鎭粰鐢ㄦ埛涓紝鐢ㄦ埛涓績浼氬搷搴旇繖涓秷鎭� + /// </summary> + /// <param name="msg"></param> + /// <returns></returns> + [SubscribeDelay(INITQMessageDefine.DTSendMessage)] + private async Task SendMessage(string msg) + { + + await _cacheService.ListRightPushAsync(INITQMessageDefine.DTSendMessage, msg); + } + } + + } -- Gitblit v1.9.1