using OpenAuth.App.BaseApp.Base; using OpenAuth.Repository.Domain; using OpenAuth.Repository; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Infrastructure; using OpenAuth.App.Interface; using OpenAuth.App.ServiceApp.BiddingCompanyManager.Request; using SqlSugar; namespace OpenAuth.App.ServiceApp.BiddingCompanyManager { public class PpBiddingcompanyApp : SqlSugarBaseApp { private ISqlSugarClient client; #region 构造函数 public PpBiddingcompanyApp( ISugarUnitOfWork unitWork, ISimpleClient repository, IAuth auth, ISqlSugarClient sqlSugarClient ) : base(unitWork, repository, auth) { this.client = sqlSugarClient; } #endregion #region 数据查询 /// /// 查询招标企业 /// /// /// /// /// public async Task>>> LoadBiddingCompanyInfo(BiddingCompanyInfoReq req) { RefAsync totalNumber = 0; var table = await base.Repository.AsQueryable() .WhereIF(!string.IsNullOrEmpty(req.name), r => r.Name.Contains(req.name)) .WhereIF(!string.IsNullOrEmpty(req.code), r => r.Code.Contains(req.code)) .OrderByDescending(r => r.CreateTime) .ToPageListAsync(req.page, req.limit, totalNumber); return new Response>>() { Result = new PageInfo> { Items = table, Total = totalNumber } }; } /// /// 根据id查询单个招标企业--编辑企业加载使用 /// /// /// public async Task> LoadBiddingCompanyInfoById(string id) { var data = await base.Repository.AsQueryable().Where(r => r.Id == id).FirstAsync(); return new Response() { Result = data }; } /// /// 添加招标企业 /// /// /// public async Task> AddBiddingCompanyInfo(PpBiddingcompany info) { using (var db = UnitWork.CreateContext()) { if (!string.IsNullOrEmpty(info.Code) && db.PpBiddingcompany.GetFirst(r => r.Code == info.Code) != null) { return new Response { Result = false, Message = "信用代码已存在" }; } else { var user = _auth.GetCurrentUser().User; info.Id = Guid.NewGuid().ToString(); info.CreateTime = DateTime.Now; info.CreateUser = user.Id.ToString(); var flag = await db.PpBiddingcompany.InsertAsync(info); var flags = db.Commit(); if (flag && flags) { return new Response { Result = true, Message = "添加成功," + info.Id }; } else { return new Response { Result = false, Message = "添加失败" }; } } } } /// /// 编辑招标企业 /// /// /// public async Task> EditBiddingCompanyInfo(PpBiddingcompany info) { using (var db = UnitWork.CreateContext()) { if (!string.IsNullOrEmpty(info.Code) && db.PpBiddingcompany.GetFirst(r => r.Code == info.Code && r.Id != info.Id) != null) { return new Response { Result = false, Message = "企业信用代码已存在" }; } else { var flag = await db.PpBiddingcompany.UpdateAsync(it => new PpBiddingcompany() { Code = info.Code, Name = info.Name, License = info.License, LegalPerson = info.LegalPerson, AccountState = info.AccountState, ContactPerson = info.ContactPerson, Phone = info.Phone, Remark = info.Remark }, it => it.Id == info.Id); var flags = db.Commit(); if (flag && flags) { return new Response { Result = true, Message = "编辑成功" }; } else { return new Response { Result = false, Message = "编辑失败" }; } } } } /// /// 删除招标企业 /// /// /// public async Task> DeleteBiddingCompanyInfo(string id) { using (var db = UnitWork.CreateContext()) { var info = db.PpCompanyaccount.AsQueryable().Where(r => r.CompanyId == id).ToList(); if (info.Any()) { var flag1 = await db.PpCompanyaccount.DeleteAsync(info); } var flag = await db.PpBiddingcompany.DeleteAsync(r => r.Id == id); if (db.Commit() && flag) { return new Response { Result = true, Message = "删除成功" }; } else { return new Response { Result = false, Message = "删除失败" }; } } } /// /// 为企业分配账号 /// /// /// public async Task> AddCompanyAccount(List info) { using (var db = UnitWork.CreateContext()) { if (info != null && info.Count() > 0) { var pac = db.PpCompanyaccount.AsQueryable().Where(r => r.CompanyId == info[0].CompanyId).ToList(); if (pac.Any()) { await db.PpCompanyaccount.DeleteAsync(pac); } var flag = await db.PpCompanyaccount.InsertRangeAsync(info); var flags = db.Commit(); if (flag && flags) { return new Response { Result = true, Message = "分配账号成功" }; } else { return new Response { Result = false, Message = "分配账号失败" }; } } else { return new Response { Result = false, Message = "分配账号失败" }; } } } /// /// 根据企业id查询分配的账号信息--编辑企业账号分配时使用 /// /// 招标企业id /// public async Task> LoadBidUserInfoById(string id) { var data = await base.Repository.ChangeRepository>().AsQueryable() .Where(r => r.CompanyId == id).FirstAsync(); if (data != null) { return new Response() { Result = data.UserId }; } else { return new Response() { Result = null }; } } #endregion #region 查询企业 /// /// 根据id查询当前登录招标企业 /// /// /// public async Task>>> LoadCompanyInfoByUser() { var user = _auth.GetCurrentUser(); RefAsync totalNumber = 0; if (user != null) { var acc = await base.Repository.ChangeRepository>().AsQueryable() .Where(r => r.UserId == user.User.Id.ToString()).FirstAsync(); if (acc != null) { var data = await base.Repository.AsQueryable().Where(r => r.Id == acc.CompanyId).ToPageListAsync(1, 10, totalNumber); return new Response>>() { Result = new PageInfo> { Items = data, Total = totalNumber } }; } else { return new Response>>() { Result = new PageInfo> { Items = null, Total = totalNumber } }; } } else { throw new Exception("请登录"); } } #endregion #region /// /// 为招标企业分配供应商 /// /// /// public async Task> AllocateSupplier(List info) { using (var db = UnitWork.CreateContext()) { if (info != null && info.Count() > 0) { var pac = db.PpBiddingsupplier.AsQueryable().Where(r => r.BiddingCompanyId == info[0].BiddingCompanyId).ToList(); if (pac.Any()) { await db.PpBiddingsupplier.DeleteAsync(pac); } var flag = await db.PpBiddingsupplier.InsertRangeAsync(info); var flags = db.Commit(); if (flag && flags) { return new Response { Result = true, Message = "分配供应商成功" }; } else { return new Response { Result = false, Message = "分配供应商失败" }; } } else { return new Response { Result = false, Message = "分配供应商失败" }; } } } /// /// 根据招标企业id查询分配的供应商 /// /// 招标企业id /// public async Task>> LoadBidcompanyById(string id) { var data = await base.Repository.ChangeRepository>() .AsQueryable() .Where(r => r.BiddingCompanyId == id) .Select(r => r.SupplierId) .ToListAsync(); if (data.Count > 0) { return new Response>() { Result = data }; } else { return new Response>() { Result = null }; } } #endregion #region /// /// 为招标企业分配招标代理 /// /// /// public async Task> AllocateAgency(List info) { using (var db = UnitWork.CreateContext()) { if (info != null && info.Count() > 0) { var pac = db.PpBidagencycompany.AsQueryable().Where(r => r.BiddingCompanyId == info[0].BiddingCompanyId).ToList(); if (pac.Any()) { await db.PpBidagencycompany.DeleteAsync(pac); } var flag = await db.PpBidagencycompany.InsertRangeAsync(info); var flags = db.Commit(); if (flag && flags) { return new Response { Result = true, Message = "分配招标代理成功" }; } else { return new Response { Result = false, Message = "分配招标代理失败" }; } } else { return new Response { Result = false, Message = "分配招标代理失败" }; } } } /// /// 根据招标企业id查询分配的招标代理 /// /// 招标企业id /// public async Task>> LoadBidAgencyById(string id) { var data = await base.Repository.ChangeRepository>() .AsQueryable() .Where(r => r.BiddingCompanyId == id) .Select(r => r.AgencyId) .ToListAsync(); if (data.Count>0) { return new Response>() { Result = data }; } else { return new Response>() { Result = null }; } } #endregion } }