| | |
| | | using Furion.Schedule; |
| | | using InitQ.Abstractions; |
| | | using InitQ.Attributes; |
| | | using InitQ.Cache; |
| | | using Microsoft.Extensions.Options; |
| | | using SqlSugar; |
| | | using System; |
| | |
| | | /// </summary> |
| | | public class MessageReceive: IRedisSubscribe |
| | | { |
| | | |
| | | |
| | | private InitQ.Cache.ICacheService _cacheService; |
| | | public MessageReceive(InitQ.Cache.ICacheService cacheService) |
| | | { |
| | | _cacheService = cacheService; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 初始化订单处理 |
| | | /// </summary> |
| | |
| | | PayTime = obj.PayTime, |
| | | ZcUserID = obj.ZcUserID, |
| | | ITCode = obj.ITCode, |
| | | HasDocumentPermission=obj.HasDocumentPermission |
| | | |
| | | }; |
| | | TenantInfo? Tinfo = await _db.Queryable<TenantInfo>().Where(x=>x.ZcUserID==obj.ZcUserID).SingleAsync(); |
| | |
| | | |
| | | |
| | | }; |
| | | 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() |
| | |
| | | |
| | | 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(); |
| | | } |
| | |
| | | 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; |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 发送消息给用户中,用户中心会响应这个消息 |
| | | /// </summary> |
| | | /// <param name="msg"></param> |
| | | /// <returns></returns> |
| | | [SubscribeDelay(INITQMessageDefine.DTSendMessage)] |
| | | private async Task SendMessage(string msg) |
| | | { |
| | | |
| | | await _cacheService.ListRightPushAsync(INITQMessageDefine.DTSendMessage, msg); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | } |