| | |
| | | using InitQ.Abstractions; |
| | | using 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 Microsoft.Extensions.Options; |
| | | using SqlSugar; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | |
| | | /// </summary> |
| | | public class MessageReceive: IRedisSubscribe |
| | | { |
| | | |
| | | |
| | | /// <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, |
| | | }; |
| | | TenantInfo? 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.Name??obj.ITCode+"集团账号", |
| | | PsW = obj.ITCode.Substring(obj.ITCode.Length - 4), |
| | | |
| | | |
| | | }; |
| | | TenantPermissions permissions = new TenantPermissions() |
| | | { |
| | | CreatBy = "消息队列 InitTenantOder", |
| | | CreatTime = DateTime.Now, |
| | | Description = obj.Description, |
| | | EmployeeMaxCount = obj.EmployeeCount ?? 0, |
| | | UnitMaxCount = obj.UnitCount ?? 0, |
| | | 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.Name ?? "集团公司", |
| | | 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(); |
| | | permissions.TenantId = id; |
| | | 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(); |
| | | } |
| | | 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; |
| | | |
| | | var tp= await _db.Queryable<TenantPermissions>().Where(x=>x.TenantId==Tinfo.Id).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, |
| | | |
| | | }; |
| | | 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; |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |