| | |
| | | using DocumentServiceAPI.Application.UserAndLogin.Services.Interfaces; |
| | | using DocumentServiceAPI.Application.Repository; |
| | | using DocumentServiceAPI.Application.UserAndLogin.Services.Interfaces; |
| | | using DocumentServiceAPI.Application.UserAndLogin.ViewMode; |
| | | using DocumentServiceAPI.Model; |
| | | using DocumentServiceAPI.Model.cyDocumentModel; |
| | | using DocumentServiceAPI.Model.UserInfoModel; |
| | | using DocumentServiceAPI.Utility; |
| | | using Furion.Logging.Extensions; |
| | | using MapsterMapper; |
| | | using SqlSugar.Extensions; |
| | | using System; |
| | | using System.Collections.Generic; |
| | |
| | | |
| | | namespace DocumentServiceAPI.Application.UserAndLogin.Services |
| | | { |
| | | |
| | | /// <summary> |
| | | /// 登录验证服务 |
| | | /// </summary> |
| | | public class UserService : ILoginVerifyService, IScoped |
| | | public class UserService : IUserService, IScoped |
| | | { |
| | | private ISqlSugarClient _db { get; set; } |
| | | public UserService(ISqlSugarClient db) |
| | | private EmployeeRepository _employeeRepository{ get; set; } |
| | | private IMapper _mapper { get; set; } |
| | | public UserService(ISqlSugarClient db, EmployeeRepository employeeRepository, IMapper mapper) |
| | | { |
| | | _db = db; |
| | | _employeeRepository= employeeRepository; |
| | | _mapper = mapper; |
| | | } |
| | | /// <summary> |
| | | /// 员工详情 |
| | |
| | | jwtInfo.LogInSource = (LogInFrom)(App.User?.FindFirstValue("loginfrom")?.ObjToInt() ?? 0); |
| | | jwtInfo.EID = App.User?.FindFirstValue("eid")?.ObjToInt(); |
| | | jwtInfo.UID = App.User?.FindFirstValue("uid")?.ObjToInt(); |
| | | jwtInfo.TID = App.User?.FindFirstValue("tid")?.ObjToInt(); |
| | | jwtInfo.TEID = App.User?.FindFirstValue("teid")?.ObjToInt(); |
| | | var guid = App.User?.FindFirstValue("jid"); |
| | | jwtInfo.JID = string.IsNullOrEmpty(guid) ? new Guid(guid) : null; |
| | | jwtInfo.JID = string.IsNullOrEmpty(guid) ? null: new Guid(guid); |
| | | return jwtInfo; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取单位列表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public async Task<List<UnitVM>> GetUserUnitInfo(int tid ) |
| | | public async Task<List<UnitVM>> GetUserUnitList(int tid ) |
| | | { |
| | | |
| | | var list = await _db.Queryable<DocumentServiceAPI.Model.cyDocumentModel.Document_TenderUnit>() |
| | |
| | | UnitName = tu.UnitName, |
| | | Remark = tu.Remark, |
| | | UnitLogo = tu.UnitLogo, |
| | | }) |
| | | }).WithCache(10) |
| | | .ToListAsync(); |
| | | return list; |
| | | } |
| | |
| | | TenderId = ti.Id |
| | | |
| | | } |
| | | ).ToListAsync(); |
| | | ).WithCache( 10).ToListAsync(); |
| | | |
| | | var ten = await _db.Queryable<TenantInfo>().Where(x => x.IsEn == true && x.IsDel != true && x.ItCode == ItCode) |
| | | .Select(x => new TenderVM |
| | |
| | | IsTender = true |
| | | |
| | | } |
| | | ).ToListAsync() ; |
| | | ).WithCache(10).ToListAsync() ; |
| | | ten.AddRange(tentlist); |
| | | return ten; |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取用户详情,包括员工信息,租户信息,单位信息 |
| | | /// </summary> |
| | | /// <param name="TenantID"> 租户ID</param> |
| | | /// <param name="EmployeeID">员工ID </param> |
| | | /// <param name="UnitID">单位ID</param> |
| | | /// <returns></returns> |
| | | public async Task<RetUserInfo> GetUserInfo(int? TenantID,int? EmployeeID,int? UnitID) |
| | | { |
| | | TenderInfoVM Tenant = null; |
| | | EmployeeInfoVM Employee = null; |
| | | if (TenantID != null) |
| | | Tenant = await _db.Queryable<TenantInfo>().Where(x => x.Id == TenantID) |
| | | .Select(x => new TenderInfoVM |
| | | { |
| | | Description = x.Description, |
| | | Id = x.Id, |
| | | ItCode = x.ItCode, |
| | | Name = x.Name, |
| | | ReMark = x.ReMark, |
| | | }).WithCache(20).FirstAsync(); |
| | | if (EmployeeID != null) |
| | | Employee = await _db.Queryable<Document_EmployeeInfo>().Where(x => x.EmployeeId == EmployeeID) |
| | | .Select(x => new EmployeeInfoVM |
| | | { AdviseFlag = x.AdviseFlag, |
| | | CardPositive = x.CardPositive, |
| | | CardPositiveSize = x.CardPositiveSize, |
| | | CardPositiveVersionNo = x.CardPositiveVersionNo, |
| | | EmployeeId = x.EmployeeId, |
| | | EmployeeName = x.EmployeeName, |
| | | Job = x.Job, |
| | | LastUpdateName = x.LastUpdateName, |
| | | UserName = x.UserName, |
| | | |
| | | |
| | | |
| | | }).WithCache(20).FirstAsync(); |
| | | UnitInfoVM Unit = null; |
| | | if (UnitID != null) |
| | | Unit = await _db.Queryable<Model.cyDocumentModel.Document_TenderUnit>().Where(x => x.UnitId == UnitID) |
| | | .Select(x => new UnitInfoVM |
| | | { |
| | | FirmQualificationLevel = x.FirmQualificationLevel, |
| | | Fax = x.Fax, |
| | | CorporaterTechnicalPost= x.CorporaterTechnicalPost, |
| | | LastUpdateName= x.LastUpdateName, |
| | | Address = x.Address, |
| | | AdviseFlag = x.AdviseFlag, BankNum = x.BankNum, |
| | | BusinessContent = x.BusinessContent, |
| | | BusinessLicense = x.BusinessLicense, |
| | | CardPositive= x.CardPositive, |
| | | CardPositiveSize= x.CardPositiveSize, |
| | | CardPositiveVersionNo= x.CardPositiveVersionNo, |
| | | ContactPerson= x.ContactPerson, |
| | | ContactPhone= x.ContactPhone, |
| | | CorporatePhone= x.CorporatePhone, |
| | | Corporater= x.Corporater, |
| | | CorporaterPost= x.CorporaterPost, |
| | | CreatTime= x.CreatTime, |
| | | Mechanicer= x.Mechanicer, |
| | | MiddleStaff= x.MiddleStaff, |
| | | OpenBank= x.OpenBank, |
| | | OrgStructure= x.OrgStructure, |
| | | PrimaryStaff= x.PrimaryStaff, |
| | | ProjectManager= x.ProjectManager, |
| | | RegMoney= x.RegMoney, |
| | | Remark= x.Remark, |
| | | UnitId= x.UnitId, |
| | | TechnicalLeader= x.TechnicalLeader, |
| | | SeniorStaff= x.SeniorStaff, |
| | | StaffCount= x.StaffCount, |
| | | TechnicalPhone= x.TechnicalPhone, |
| | | TechnicalPost= x.TechnicalPost, |
| | | UnitLogo= x.UnitLogo, |
| | | UnitLogoSize= x.UnitLogoSize, |
| | | UnitLogoVersionNo= x.UnitLogoVersionNo, |
| | | UnitName= x.UnitName, |
| | | UnitType= x.UnitType, |
| | | WebUrl= x.WebUrl, |
| | | ZipCode= x.ZipCode, |
| | | |
| | | |
| | | |
| | | |
| | | }).WithCache(20).FirstAsync(); |
| | | |
| | | |
| | | return new RetUserInfo |
| | | { |
| | | EmployeeInfo = Employee, |
| | | TenderInfo = Tenant, |
| | | UnitInfo = Unit |
| | | }; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取员工列表 |
| | | /// </summary> |
| | | /// <param name="_businessService"></param> |
| | | /// <param name="page"></param> |
| | | /// <returns></returns> |
| | | public async Task<PageResult<EmployeeInfoVM>> postEmployeeList( EmployeePageSearch page) |
| | | { |
| | | var a = GetJwtInfo(); |
| | | if(a.EID!=null) |
| | | throw Oops.Oh($"没有权限"); |
| | | SqlSugar.PageModel pg = new SqlSugar.PageModel(); |
| | | pg.PageSize = page.PageSize; |
| | | pg.PageIndex = page.PageIndex; |
| | | RefAsync<int> total = 0; |
| | | PageResult<EmployeeInfoVM> result = new PageResult<EmployeeInfoVM>(); |
| | | result.Items = await _db.Queryable<EmployeeAtTenant, Document_EmployeeInfo>((et, ei) => |
| | | new JoinQueryInfos(JoinType.Left, et.EmployeeID==ei.EmployeeId |
| | | )).Where((ei,et)=>ei.TenantID==a.TEID) |
| | | .Select((ei,et)=>new EmployeeInfoVM |
| | | { |
| | | EmployeeId = et.EmployeeId, |
| | | AdviseFlag=et.AdviseFlag, |
| | | CardPositive=et.CardPositive, |
| | | CardPositiveSize=et.CardPositiveSize, |
| | | CardPositiveVersionNo=et.CardPositiveVersionNo, |
| | | EmployeeName=et.EmployeeName, |
| | | IsWork=et.IsWork, |
| | | Job=et.Job, |
| | | LeaveTime=et.LeaveTime, |
| | | Phone=et.Phone, |
| | | UserId=et.UserId, |
| | | UserName=et.UserName, |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | }).MergeTable().OrderBy(x=>x.EmployeeId).ToPageListAsync(page.PageIndex,page.PageSize, total); |
| | | |
| | | result.TotalCount = pg.TotalCount; |
| | | return result; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | public async Task<bool > UpEmployee(EmployeeInfoVM vm) |
| | | { |
| | | |
| | | var jwtinfo = GetJwtInfo(); |
| | | |
| | | if (jwtinfo.EID != null) |
| | | throw Oops.Oh($"没有权限"); |
| | | var info = await GetUserInfo(jwtinfo.TEID, null, null); |
| | | Document_EmployeeInfo a = _mapper.Map<Document_EmployeeInfo>(vm); |
| | | |
| | | a.LastUpdateName = info.EmployeeInfo.UserName; |
| | | a.LastUpdateTime = DateTime.Now; |
| | | |
| | | return await _employeeRepository.UpdateAsync(a); |
| | | |
| | | } |
| | | |
| | | public async Task<bool> InEmployee(EmployeeInfoVM vm) |
| | | { |
| | | var jwtinfo = GetJwtInfo(); |
| | | if (jwtinfo.EID != null) |
| | | throw Oops.Oh($"没有权限"); |
| | | Document_EmployeeInfo a = _mapper.Map<Document_EmployeeInfo>(vm); |
| | | |
| | | var info = await GetUserInfo(jwtinfo.TEID, null, null); |
| | | EmployeeAtTenant elt = new EmployeeAtTenant |
| | | { |
| | | CreatBy = info.TenderInfo.ItCode, |
| | | CreatTime = DateTime.Now, |
| | | TenantID = info.TenderInfo.Id, |
| | | |
| | | |
| | | |
| | | }; |
| | | try |
| | | { |
| | | await _employeeRepository.AsTenant().BeginTranAsync(); |
| | | var jwtId= await _employeeRepository.InsertReturnIdentityAsync(a); |
| | | elt.EmployeeID = jwtId; |
| | | await _db.Insertable(elt).ExecuteCommandAsync(); |
| | | |
| | | await _employeeRepository.AsTenant().CommitTranAsync(); |
| | | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | |
| | | await _employeeRepository.AsTenant().RollbackTranAsync(); |
| | | //写日志 |
| | | $" 插入新员工失败, 错误消息:{e.Message} \r\n 堆栈错误:{e.StackTrace}" .LogInformation(); |
| | | throw Oops.Oh("新增失败"); |
| | | } |
| | | |
| | | return await _employeeRepository.InsertAsync(a); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | } |
| | | |