From c9465709c827d68f243a54609ce691f341306b9d Mon Sep 17 00:00:00 2001 From: liaoxujun@qq.com <liaoxujun@qq.com> Date: 星期四, 28 九月 2023 14:23:58 +0800 Subject: [PATCH] 员工账号校验必须为电话号码 --- DocumentServiceApi.InitQMessage/MessageReceive.cs | 416 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 412 insertions(+), 4 deletions(-) diff --git a/DocumentServiceApi.InitQMessage/MessageReceive.cs b/DocumentServiceApi.InitQMessage/MessageReceive.cs index 1451c2d..eb8f76a 100644 --- a/DocumentServiceApi.InitQMessage/MessageReceive.cs +++ b/DocumentServiceApi.InitQMessage/MessageReceive.cs @@ -1,5 +1,16 @@ -锘縰sing InitQ.Abstractions; +锘縰sing DocumentServiceAPI.Model.cyDocumentModel; +using DocumentServiceAPI.Model.Oder; +using DocumentServiceAPI.Model.Permissions; +using DocumentServiceAPI.Model.UserInfoModel; +using Furion; +using Furion.JsonSerialization; +using Furion.Logging.Extensions; +using Furion.Schedule; +using InitQ.Abstractions; using InitQ.Attributes; +using InitQ.Cache; +using Microsoft.Extensions.Options; +using SqlSugar; using System; using System.Collections.Generic; using System.Linq; @@ -13,19 +24,416 @@ /// </summary> public class MessageReceive: IRedisSubscribe { + private InitQ.Cache.ICacheService _cacheService; + public MessageReceive(InitQ.Cache.ICacheService cacheService) + { + _cacheService = cacheService; + } + /// <summary> /// 鍒濆鍖栬鍗曞鐞� /// </summary> /// <param name="msg"></param> - /// <returns></returns> - - [Subscribe(INITQMessageDefine.InitTentOder)] + /// <returns></returns> + [Subscribe(INITQMessageDefine.InitTenantOder)] private async Task InitTenantOder(string msg) { + TenantOderInfo? obj = JSON.Deserialize<TenantOderInfo>(msg); + if(obj==null) + { + $"InitTenantOder 鍒濆鍖� msg 瀵硅薄閿欒 ,msg涓簕msg}".LogInformation<MessageReceive>(); + return; + } + var _db= App.GetService<ISqlSugarClient>(); + + + Oder oder = new Oder() + { + Amount = obj.Amount, + CreatBy = "娑堟伅闃熷垪 InitTenantOder", + CreatTime = DateTime.Now, + Description = obj.Description, + EmployeeCount = obj.EmployeeCount, + MonthCount = obj.MonthCount, + UnitCount = obj.UnitCount, + PayType = obj.PayType, + PayTime = obj.PayTime, + ZcUserID = obj.ZcUserID, + ITCode = obj.ITCode, + HasDocumentPermission=obj.HasDocumentPermission, + HasManagePermission= obj.HasManagePermission, + TenantId= obj.TenantId, + + + + }; + 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 + { + ZcUserID = obj.ZcUserID, + ItCode = obj.ITCode, + CreatBy = "娑堟伅闃熷垪 InitTenantOder", + CreatTime = DateTime.Now, + Description = obj.Description, + Name =obj.TenantName , + PsW = obj.ITCode.Substring(obj.ITCode.Length - 4), + + + }; + TenantPermissions ? Mangerpermissions = null; + if (oder.HasManagePermission) + { + 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() + { + EmployeeName = "闆嗗洟璐﹀彿", + UserName = Tinfo.ItCode, + AdviseFlag = 2, + UserId = 0, + IsWork = 1, + UserPassWord = Tinfo.ItCode.Substring(Tinfo.ItCode.Length - 6), + Job = "闆嗗洟鐢ㄦ埛", + IsLogin = true, + LastUpdateName = "娑堟伅闃熷垪 InitTenantOder", + LastUpdateTime = DateTime.Now, + }; + EmployeeAtTenant employeeAtTenant = new EmployeeAtTenant() + { + CreatBy = "娑堟伅闃熷垪 InitTenantOder", + CreatTime = DateTime.Now, + + }; + + Document_TenderUnit tenderUnit = new Document_TenderUnit() + { + UnitName = obj.TenantName ?? "闆嗗洟鍏徃", + AdviseFlag = 2, + UserId = 0, + CreatTime = DateTime.Now.ToString("yyyy MM dd"), + LastUpdateName = "娑堟伅闃熷垪 InitTenantOder", + LastUpdateTime = DateTime.Now, + IsDeled = false, + IsEn = true, + + + }; + + try + { + await _db.AsTenant().BeginTranAsync(); + + var id= await _db.Insertable(Tinfo).ExecuteReturnIdentityAsync(); + var eid = await _db.Insertable(employeeInfo).ExecuteReturnIdentityAsync(); + 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(oder).ExecuteCommandAsync(); + await _db.AsTenant().CommitTranAsync(); + } + catch (Exception e) + { + await _db.AsTenant().RollbackTranAsync(); + $"鏂板缓绉熸埛澶勭悊澶辫触 msg:{msg},e:{e.ToString()} BY锛氭秷鎭槦鍒� InitTenantOder".LogInformation<MessageReceive>(); + return; + } + + + } + else + { + var Employee = await _db.Queryable<EmployeeAtTenant,Document_EmployeeInfo>((EAT, E) => new JoinQueryInfos( + + JoinType.Left, EAT.EmployeeID == E.EmployeeId +)).Where((EAT, E) => EAT.TenantID==Tinfo.Id).Select((EAT,E)=>E).FirstAsync(); + + Tinfo.ItCode = obj.ITCode; + Tinfo.UpdataBy = "娑堟伅闃熷垪 InitTenantOder"; + Tinfo.UpdataTime = DateTime.Now; + Tinfo.IsDel = false; + Tinfo.IsEn = true; + if (oder.HasManagePermission == true) + { + 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 = 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(); + + + + + + } + catch (Exception e) + { + + await _db.AsTenant().RollbackTranAsync(); + $"淇敼绉熸埛鏉冮檺澶辫触 msg:{msg},e:{e.ToString()} By锛氭秷鎭槦鍒� InitTenantOder".LogInformation<MessageReceive>(); + return; + } + } + + + 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(); + + 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; + } + + } + + } + + + + + + + } + /// <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