username@email.com
2025-08-25 24f914a80d01fa8e5c6cfcba14ae59a6c0a117a8
Admin.NET/FZFCGDD.ORDER.Application/Service/SuplierTendOrder/SuplierTendOrderService.cs
@@ -31,6 +31,7 @@
using MimeKit;
using static SKIT.FlurlHttpClient.Wechat.Api.Events.TransferCustomerServiceReply.Types;
using Aop.Api.Domain;
using FZCZTB.NET.MD.CutomerMd.Extend;
namespace FZCZTB.TSCL.Application;
/// <summary>
@@ -76,9 +77,13 @@
        {
            usertrueId = userId;
        }
        long customerExId = 0;
        long.TryParse(App.User?.FindFirst(ClaimConst.CustomerExId)?.Value, out customerExId);
        var RealName = App.User?.FindFirstValue(ClaimConst.RealName);
        var collection = await _CollectionRep.AsQueryable().Where(x =>x.TenderId == input.TenderOrderId).Where(x => x.CreateUserId == userId).FirstAsync();
        var collection = await _CollectionRep.AsQueryable().Where(x =>x.TenderId == input.TenderOrderId).Where(x => x.CusExtendId == customerExId).FirstAsync();
        if (input.isColection && collection != null)
        {
            return true;
@@ -104,6 +109,7 @@
            entity.CreateUserName = RealName;
            entity.UpdateUserId = usertrueId;
            entity.UpdateUserName = RealName;
            entity.CusExtendId = customerExId;
            entity.TenderId = input.TenderOrderId;
        }
        return await _CollectionRep.InsertAsync(entity);
@@ -124,8 +130,11 @@
        long userId = 0;
        long.TryParse(App.User?.FindFirst(ClaimConst.UserId)?.Value, out userId);
        long customerExId = 0;
        long.TryParse(App.User?.FindFirst(ClaimConst.CustomerExId)?.Value, out customerExId);
        var query = _sqlSugarClient.Queryable<Collection,TenderOrder>((a, b) => a.TenderId == b.Id)
            .Where((a, b) => a.CreateUserId == userId)
            .Where((a, b) => a.CusExtendId == customerExId)
            
                      .WhereIF(!string.IsNullOrWhiteSpace(input.ProjectName), (a, b) => b.ProjectName.Contains(input.ProjectName.Trim()))
                      .WhereIF(!string.IsNullOrWhiteSpace(input.Dailijigoumingcheng), (a, b) => b.Dailijigoumingcheng.Contains(input.Dailijigoumingcheng.Trim()))
@@ -193,14 +202,103 @@
    ///// <summary>
    ///// 供应商支付报名费 ➕
    ///// </summary>
    ///// <param name="input"></param>
    ///// <returns></returns>
    //[DisplayName("供应商支付报名费")]
    //[ApiDescriptionSettings(Name = "AddBaomingfei"), HttpPost]
    //public async Task<bool> AddBaomingfei(SuplierBaomingfeiInput input)
    //{
    //    long userId = 0;
    //    long? usertrueId = null;
    //    if (long.TryParse(App.User?.FindFirst(ClaimConst.UserId)?.Value, out userId))
    //    {
    //        usertrueId = userId;
    //    }
    //    var RealName = App.User?.FindFirstValue(ClaimConst.RealName);
    //    string? CustomerLogoinType = App.User?.FindFirst(ClaimConst.CustomerLogoinType)?.Value;
    //    if (CustomerLogoinType != "GYS" )
    //    {
    //        throw Oops.Oh("只有登录角色供应商才能支付报名费!");
    //    }
    //    var tenderOrder = await _TenderOrderRep.AsQueryable().Where(x => x.Id == input.TenderOrderId).FirstAsync();
    //    if (tenderOrder == null)
    //    {
    //        throw Oops.Oh("不存在的招标!");
    //    }
    //    //if (tenderOrder.Baomingfei.HasValue && tenderOrder.Baomingfei.Value > 0)
    //    //{
    //        var tenderOrderBidding = await _TenderOrderBiddingRep.AsQueryable().Where(x => x.TenderId == input.TenderOrderId).Where(x => x.CreateUserId == userId).FirstAsync();
    //        if(tenderOrderBidding!=null && (tenderOrderBidding.IsTransfer.HasValue && tenderOrderBidding.IsTransfer.Value))
    //        {
    //            throw Oops.Oh("已经付款!");
    //        }
    //        if (tenderOrderBidding == null)
    //        {
    //            tenderOrderBidding = new TenderOrderBidding();
    //            tenderOrderBidding.Id = Guid.NewGuid();
    //            tenderOrderBidding.TenderId = input.TenderOrderId;
    //            tenderOrderBidding.IsTransfer = true;
    //            tenderOrderBidding.Zhifujine = tenderOrder.Baomingfei;
    //            tenderOrderBidding.TransferTime = DateTime.Now;
    //            tenderOrderBidding.TransferNo = "BMF"+tenderOrderBidding.Id.ToString("N");
    //            tenderOrderBidding.TradeNo = DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff") + (new Random()).Next(100, 1000); // 订单号
    //           tenderOrderBidding.CreateTime = DateTime.Now;
    //            tenderOrderBidding.CreateUserId = usertrueId;
    //            tenderOrderBidding.CreateUserName = RealName;
    //            tenderOrderBidding.UpdateTime = DateTime.Now;
    //            tenderOrderBidding.UpdateUserId = usertrueId;
    //            tenderOrderBidding.UpdateUserName = RealName;
    //            return await _TenderOrderBiddingRep.InsertAsync(tenderOrderBidding);
    //        }
    //        else
    //        {
    //            tenderOrderBidding.IsTransfer = true;
    //            tenderOrderBidding.Zhifujine = tenderOrder.Baomingfei;
    //            tenderOrderBidding.TransferTime = DateTime.Now;
    //            tenderOrderBidding.TransferNo = "BMF" + tenderOrderBidding.Id.ToString("N");
    //            tenderOrderBidding.TradeNo = DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff") + (new Random()).Next(100, 1000); // 订单号
    //            tenderOrderBidding.UpdateTime = DateTime.Now;
    //            tenderOrderBidding.UpdateUserId = usertrueId;
    //            tenderOrderBidding.UpdateUserName = RealName;
    //            return await _TenderOrderBiddingRep.UpdateAsync(tenderOrderBidding);
    //        }
    //    //}
    //    //else
    //    //{
    //    //    throw Oops.Oh("无需支付报名费!");
    //    //}
    //}
    /// <summary>
    /// 供应商支付报名费 ➕
    /// 供应商获取代理人的支付信息 ➕
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [DisplayName("供应商支付报名费")]
    [DisplayName("供应商获取代理人的支付信息")]
    [ApiDescriptionSettings(Name = "AddBaomingfei"), HttpPost]
    public async Task<bool> AddBaomingfei(SuplierBaomingfeiInput input)
    public async Task<FBS_CusExtend> AddBaomingfei(SuplierBaomingfeiInput input)
    {
@@ -212,67 +310,33 @@
        }
        var RealName = App.User?.FindFirstValue(ClaimConst.RealName);
        string? CustomerLogoinType = App.User?.FindFirst(ClaimConst.CustomerLogoinType)?.Value;
        if (CustomerLogoinType != "GYS")
        {
            throw Oops.Oh("只有登录角色供应商才能获取代理人的支付信息!");
        }
        var tenderOrder = await _TenderOrderRep.AsQueryable().Where(x => x.Id == input.TenderOrderId).FirstAsync();
        if (tenderOrder == null)
        {
            throw Oops.Oh("不存在的招标!");
        }
        //if (tenderOrder.Baomingfei.HasValue && tenderOrder.Baomingfei.Value > 0)
        //{
            var tenderOrderBidding = await _TenderOrderBiddingRep.AsQueryable().Where(x => x.TenderId == input.TenderOrderId).Where(x => x.CreateUserId == userId).FirstAsync();
            if(tenderOrderBidding!=null && (tenderOrderBidding.IsTransfer.HasValue && tenderOrderBidding.IsTransfer.Value))
            {
                throw Oops.Oh("已经付款!");
            }
        var cusExtend = await _sqlSugarClient.Queryable<FBS_CusExtend>().Where(x => x.CustomerId == tenderOrder.CusExtendId ).FirstAsync();
        var cusExtend1 = new FBS_CusExtend();
        if (cusExtend != null)
        {
            cusExtend1.EnterpriseName = cusExtend.EnterpriseName;
            cusExtend1.BankName = cusExtend.BankName;
            cusExtend1.BankAccount = cusExtend.BankAccount;
            cusExtend1.BankAccountIMG = cusExtend.BankAccountIMG;
        }
            if (tenderOrderBidding == null)
            {
                tenderOrderBidding = new TenderOrderBidding();
                tenderOrderBidding.Id = Guid.NewGuid();
                tenderOrderBidding.TenderId = input.TenderOrderId;
                tenderOrderBidding.IsTransfer = true;
                tenderOrderBidding.Zhifujine = tenderOrder.Baomingfei;
                tenderOrderBidding.TransferTime = DateTime.Now;
                tenderOrderBidding.TransferNo = "BMF"+tenderOrderBidding.Id.ToString("N");
                tenderOrderBidding.TradeNo = DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff") + (new Random()).Next(100, 1000); // 订单号
               tenderOrderBidding.CreateTime = DateTime.Now;
                tenderOrderBidding.CreateUserId = usertrueId;
                tenderOrderBidding.CreateUserName = RealName;
                tenderOrderBidding.UpdateTime = DateTime.Now;
                tenderOrderBidding.UpdateUserId = usertrueId;
                tenderOrderBidding.UpdateUserName = RealName;
                return await _TenderOrderBiddingRep.InsertAsync(tenderOrderBidding);
            }
            else
            {
                tenderOrderBidding.IsTransfer = true;
                tenderOrderBidding.Zhifujine = tenderOrder.Baomingfei;
                tenderOrderBidding.TransferTime = DateTime.Now;
                tenderOrderBidding.TransferNo = "BMF" + tenderOrderBidding.Id.ToString("N");
                tenderOrderBidding.TradeNo = DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff") + (new Random()).Next(100, 1000); // 订单号
                tenderOrderBidding.UpdateTime = DateTime.Now;
                tenderOrderBidding.UpdateUserId = usertrueId;
                tenderOrderBidding.UpdateUserName = RealName;
                return await _TenderOrderBiddingRep.UpdateAsync(tenderOrderBidding);
            }
        //}
        //else
        //{
        //    throw Oops.Oh("无需支付报名费!");
        //}
        return cusExtend1;
    }
@@ -293,22 +357,32 @@
        {
            usertrueId = userId;
        }
        string? CustomerLogoinType = App.User?.FindFirst(ClaimConst.CustomerLogoinType)?.Value;
        if (CustomerLogoinType != "GYS")
        {
            throw Oops.Oh("只有登录角色供应商才能上传招标文件!");
        }
        long customerExId = 0;
        long.TryParse(App.User?.FindFirst(ClaimConst.CustomerExId)?.Value, out customerExId);
        var RealName = App.User?.FindFirstValue(ClaimConst.RealName);
        var tenderOrderBidding = await _TenderOrderBiddingRep.AsQueryable().Where(x => x.TenderId == input.TenderOrderId).Where(x => x.CreateUserId == userId).FirstAsync();
        var tenderOrderBidding = await _TenderOrderBiddingRep.AsQueryable().Where(x => x.TenderId == input.TenderOrderId).Where(x => x.CusExtendId == customerExId).FirstAsync();
        var tenderOrder  = await _TenderOrderRep.AsQueryable().Where(x => x.Id == input.TenderOrderId).FirstAsync();
        if(tenderOrder == null)
        {
            throw Oops.Oh("不存在的招标!");
        }
        if(tenderOrder.Baomingfei.HasValue && tenderOrder.Baomingfei.Value > 0)
        {
            if (tenderOrderBidding == null || (!tenderOrderBidding.IsTransfer.HasValue || tenderOrderBidding.IsTransfer.Value == false))
            {
                throw Oops.Oh("必须先支付才能投标!");
            }
        }
        //if(tenderOrder.Baomingfei.HasValue && tenderOrder.Baomingfei.Value > 0)
        //{
        //    if (tenderOrderBidding == null || (!tenderOrderBidding.IsTransfer.HasValue || tenderOrderBidding.IsTransfer.Value == false))
        //    {
        //        throw Oops.Oh("必须先支付才能投标!");
        //    }
        //}
       if(tenderOrderBidding == null)
        {
@@ -316,6 +390,7 @@
            tenderOrderBidding.Id = Guid.NewGuid();
            tenderOrderBidding.TenderId = input.TenderOrderId;
            tenderOrderBidding.Touboaowenjian = input.Touboaowenjian;
            tenderOrderBidding.TouboaowenjianName = input.TouboaowenjianName;
            tenderOrderBidding.IsTransfer = true;
            tenderOrderBidding.Zhifujine = 0;
            tenderOrderBidding.CreateTime = DateTime.Now;
@@ -324,13 +399,31 @@
            tenderOrderBidding.UpdateTime = DateTime.Now;
            tenderOrderBidding.UpdateUserId = usertrueId;
            tenderOrderBidding.UpdateUserName = RealName;
            tenderOrderBidding.CusExtendId = customerExId;
            if( !tenderOrder.Baomingfei.HasValue || tenderOrder.Baomingfei.Value<=0)
            {
                tenderOrderBidding.IsTransfer = true;
                tenderOrderBidding.Zhifujine = 0;
                tenderOrderBidding.TransferTime = DateTime.Now;
                tenderOrderBidding.TransferNo = "BMF" + tenderOrderBidding.Id.ToString("N");
                tenderOrderBidding.TradeNo = DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff") + (new Random()).Next(100, 1000); // 订单号
            }
            return await _TenderOrderBiddingRep.InsertAsync(tenderOrderBidding);
        }
        tenderOrderBidding.Touboaowenjian = input.Touboaowenjian;
        tenderOrderBidding.TouboaowenjianName = input.TouboaowenjianName;
        tenderOrderBidding.UpdateTime = DateTime.Now;
        tenderOrderBidding.UpdateUserId = usertrueId;
        tenderOrderBidding.UpdateUserName = RealName;
        if (!tenderOrder.Baomingfei.HasValue || tenderOrder.Baomingfei.Value <= 0)
        {
            tenderOrderBidding.IsTransfer = true;
            tenderOrderBidding.Zhifujine = 0;
            tenderOrderBidding.TransferTime = DateTime.Now;
            tenderOrderBidding.TransferNo = "BMF" + tenderOrderBidding.Id.ToString("N");
            tenderOrderBidding.TradeNo = DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff") + (new Random()).Next(100, 1000); // 订单号
        }
        return await _TenderOrderBiddingRep.UpdateAsync(tenderOrderBidding);
    }
@@ -348,8 +441,11 @@
        long userId = 0;
        long.TryParse(App.User?.FindFirst(ClaimConst.UserId)?.Value, out userId);
        long customerExId = 0;
        long.TryParse(App.User?.FindFirst(ClaimConst.CustomerExId)?.Value, out customerExId);
        var query = _sqlSugarClient.Queryable<TenderOrderBidding, TenderOrder>((a, b) => a.TenderId == b.Id)
            .Where((a, b) => a.CreateUserId == userId)
            .Where((a, b) => a.CusExtendId == customerExId)
                      .WhereIF(!string.IsNullOrWhiteSpace(input.ProjectName), (a, b) => b.ProjectName.Contains(input.ProjectName.Trim()))
                      .WhereIF(!string.IsNullOrWhiteSpace(input.Dailijigoumingcheng), (a, b) => b.Dailijigoumingcheng.Contains(input.Dailijigoumingcheng.Trim()))
@@ -391,4 +487,73 @@
        return pagedList;
    }
    /// <summary>
    /// 供应商下载中标文件 ➕
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [DisplayName("供应商下载中标文件")]
    [ApiDescriptionSettings(Name = "DownZhongbiao"), HttpPost]
    public async Task<TenderOrderOutput> DownZhongbiao(SuplierBaomingfeiInput input)
    {
        long userId = 0;
        long? usertrueId = null;
        if (long.TryParse(App.User?.FindFirst(ClaimConst.UserId)?.Value, out userId))
        {
            usertrueId = userId;
        }
        string? CustomerLogoinType = App.User?.FindFirst(ClaimConst.CustomerLogoinType)?.Value;
        if (CustomerLogoinType != "GYS")
        {
            throw Oops.Oh("只有登录角色供应商才能上传招标文件!");
        }
        long customerExId = 0;
        long.TryParse(App.User?.FindFirst(ClaimConst.CustomerExId)?.Value, out customerExId);
        var RealName = App.User?.FindFirstValue(ClaimConst.RealName);
        var tenderOrder = await _TenderOrderRep.AsQueryable().Where(x => x.Id == input.TenderOrderId).FirstAsync();
        if (tenderOrder == null)
        {
            throw Oops.Oh("不存在的招标!");
        }
        if(tenderOrder.OrderStatus !=3)
        {
            throw Oops.Oh("只有中标之后才能下载中标文件!");
        }
        var tenderOrderBidding = await _TenderOrderBiddingRep.AsQueryable().Where(x => x.TenderId == input.TenderOrderId).Where(x => x.CusExtendId == customerExId).FirstAsync();
        if (tenderOrderBidding == null )
        {
            throw Oops.Oh("不存在的投标!");
        }
        if (!tenderOrderBidding.IsSelected.HasValue && tenderOrderBidding.IsSelected.Value)
        {
            throw Oops.Oh("没有中标!");
        }
        if (!tenderOrderBidding.IsDailiTransfer.HasValue && tenderOrderBidding.IsDailiTransfer.Value)
        {
            throw Oops.Oh("没有缴纳代理费!");
        }
        var tenderOrderOutput = new TenderOrderOutput();
        tenderOrderOutput.Zhongbiaowenjian = tenderOrder.Zhongbiaowenjian;
        tenderOrderOutput.ZhongbiaowenjianName = tenderOrder.ZhongbiaowenjianName;
        return tenderOrderOutput;
    }
}