小飞侠
2025-12-01 7eca0ab1b6d5142d623efd471985b2a20b559616
cylsg/cylsg.Application/Transfer/UserTransfer.cs
@@ -1,6 +1,7 @@
using cylsg.Core;
using cylsg.Model.TransferOrder;
using cylsg.Model.UserModel;
using cylsg.Model.utilityViewModel;
using cylsg.utility;
using cylsg.utility.Extend;
using Cylsg.Filter;
@@ -19,6 +20,7 @@
using System.Text;
using System.Threading.Tasks;
using TencentCloud.Ame.V20190916.Models;
using TencentCloud.Domain.V20180808.Models;
using static SKIT.FlurlHttpClient.Wechat.Api.Models.ChannelsLeadsGetLeadsInfoByComponentIdResponse.Types;
namespace cylsg.Application.Transfer
@@ -256,7 +258,7 @@
        /// </summary>
        [AllowAnonymous]
        [HttpPost]
        [ApiExplorerSettings(IgnoreApi = true)]
        [ApiExplorerSettings(IgnoreApi = true)]
        public async Task<TransferOderOut> GetTransferOder(SearchTransferOder param)
        {
@@ -285,13 +287,18 @@
                SearchList = SearchList.And(x =>x.IsSetOK==param.IsSetOK);
            }
            if (param.HasSendOk == false)
                SearchList= SearchList.And(x => x.FailNum >0||x.BatchStatus!= "FINISHED");
                SearchList= SearchList.And(x =>( x.FailNum >0||x.BatchStatus!= "FINISHED")||(x.BatchStatus==null&&x.ErrorCode== "NOT_ENOUGH")||x.FailAmount>0); //NOT_ENOUGH 是账户没有钱
            else
                //有一笔大余0 的视为失败
                SearchList= SearchList.And(x => x.FailNum ==0&&x.BatchStatus=="FINISHED");
             var data=await WeChatTransferOrderwork.AsQueryable().Where(SearchList).Select(x=>new WeChatTransferOrder
             var data=await WeChatTransferOrderwork.AsQueryable().Includes(x => x.user, u => u.Worek).Where(SearchList).Select(x=>new WeChatTransferOrder
             {
               BatchRemark= SqlFunc.Subqueryable<UserWorker>().Where(uw=>uw.UserId==x.UserID).Select(uw => uw.name+ uw.IdCode)
                 UserName=x.user.Worek.name,
                 UserIDCode = x.user.Worek.IdCode,
                 ItCode = x.user.ItCode,
                 YiTiXianGz = x.user.Worek.YiTiXianJine,
                 ZhongGz = x.user.Worek.TiXianZonge,
                 BatchRemark = SqlFunc.Subqueryable<UserWorker>().Where(uw=>uw.UserId==x.UserID).Select(uw => uw.name+ uw.IdCode)
             },true).ToPageListAsync(pageModel.PageIndex, pageModel.PageSize,pageModel.TotalCount);
            //var data = await WeChatTransferOrderwork.GetPageListAsync(SearchList, pageModel);
              
@@ -358,7 +365,7 @@
            {
                throw Oops.Oh("已经处理不再处理");
            }
           if(!(TOrder.ErrorCode== "INVALID_REQUEST"&&TOrder.ErrorMsg== "对应单号已超出重试期,请查单确认后决定是否换单请求"))
           if(!((TOrder.ErrorCode== "INVALID_REQUEST"&&TOrder.ErrorMsg== "对应单号已超出重试期,请查单确认后决定是否换单请求")|| (TOrder.ErrorCode == "NOT_ENOUGH")||(TOrder.FailAmount>0)))
            {
                //不满足冲洗支付要求
                throw Oops.Oh("不满足重新支付要求");
@@ -366,7 +373,25 @@
                   
            var rs = new BaseRepository<UserWorker>();
            var userid = TOrder.UserID;
            var Money =  (TOrder.FailAmount??0)/100m;
            decimal Money = 0;
            if (TOrder.FailAmount==null)
            {
                decimal overTotal = 0;
                if (TOrder.BatchId == null)
                {
                    overTotal = 0;//没有支付单,证明没有支付
                }
                else
                    overTotal = (TOrder.SuccessAmount??0)/100m;
                //这个是没有创建提交单 按原价重新支付
                Money = ((TOrder.TotalAmount??0)/100m)-overTotal;
            }
            else
             Money =  (TOrder.FailAmount??0)/100m;
            if(Money<0.03m)
            {
                throw Oops.Oh("失败金额不足0.3元不能再次发起支付");
@@ -865,9 +890,78 @@
        }
        /// <summary>
        /// 获取列表详情
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        [AllowAnonymous]
        public async Task<RetPageData<WeChatTransferOrder>> GetTransferOrder(SSPageByWhereOrder Param)
        {
            if (Param.Page == null)
                throw Oops.Oh("参数错误");
            Expression<Func<WeChatTransferOrder, bool>> where = null;
            if (!string.IsNullOrEmpty( Param.Where as string))
            {
              //where =   CommonHelper.FormatWhereExpression<WeChatTransferOrder>(Param.Where);
 where =   CommonHelper.FormatWhereExpression<WeChatTransferOrder>(Param.Where as string);
            }
            Expression<Func<WeChatTransferOrder, object>> order = null;
            if (Param.Order?.Name!=null)
            {
                 order = CommonHelper.FormatPropertyExpression<WeChatTransferOrder>(Param.Order.Name);
            }
            RefAsync<int> title = 0;
            var BR = new BaseRepository<WeChatTransferOrder>();
            var data = await BR.AsQueryable().Includes(x => x.user, u => u.Worek).Select(x => new WeChatTransferOrder
            {
                Id = 0,
                 UserIDCode = x.user.Worek.IdCode,
                UserName = x.user.Worek.name,
                TotalAmount = x.TotalAmount,
                TotalNum = x.TotalNum,
                BatchId = x.BatchId,
                SuccessNum = x.SuccessNum,
                OutBatchNumber = x.OutBatchNumber,
                BatchName = x.BatchName,
                BatchStatus = x.BatchStatus,
                UserID = x.UserID,
                UpDataTime = x.UpDataTime,
                YiTiXianGz = x.user.Worek.YiTiXianJine,
                ZhongGz = x.user.Worek.TiXianZonge,
                ItCode = x.user.ItCode,
                SuccessAmount = x.SuccessAmount,
                FailAmount = x.FailAmount,
                CreateTime = x.CreateTime
            },true).MergeTable().WhereIF(where != null, where).OrderByIF(order!=null,order,Param.Order?.Des?? OrderByType.Asc).ToPageListAsync(Param.Page.PageIndex,Param.Page.PageSize, title);
            Param.Page.TotalCount = title;
            return new RetPageData<WeChatTransferOrder>()
            {
                 data= data,
                  Page=Param.Page,
             };
;        }
    }
    /// <summary>
    ///
    /// 收索
    /// </summary>
    public class SearchTransferOder
    {
@@ -943,4 +1037,7 @@
    }
}