username@email.com
2024-09-25 446957fb241cd6489576281c28050062aa6df073
cylsg/EzInitQ/PayServiceMessageQ.cs
@@ -8,6 +8,7 @@
using Furion;
using Furion.DatabaseAccessor;
using Furion.FriendlyException;
using Furion.Logging;
using InitQ.Abstractions;
using InitQ.Attributes;
using Mapster;
@@ -29,14 +30,7 @@
    {
        private  IEzCoreNetRedisService _ezCoreNetRedisService;
        private   IWecharPayServicecs _wecharPayServicecs;
        private  IMapper _mapper;
        //public PayServiceMessageQ(IEzCoreNetRedisService ezCoreNetRedisService,IWecharPayServicecs wecharPayServicecs,IMapper mapper) {
        //    _ezCoreNetRedisService = ezCoreNetRedisService;
        //    _wecharPayServicecs = wecharPayServicecs;
        //     _mapper = mapper;
        //}
        private  IMapper _mapper;
        /// <summary>
        /// 微信转账队列处理
@@ -191,5 +185,114 @@
        }
        [Subscribe(InitQMessages.WxTransfer)]
        public async void WxTransfer(string msg)
        {
            _ezCoreNetRedisService = App.GetService<IEzCoreNetRedisService>();
            _wecharPayServicecs = App.GetService<IWecharPayServicecs>();
            _mapper = App.GetService<IMapper>();
            var WeChatTransferOrderwork = new BaseRepository<WeChatTransferOrder>();
            var TransferOrder = await WeChatTransferOrderwork.AsQueryable().Includes(x => x.TransferDetailList).Where(x=>x.Id==msg.toInt()).FirstAsync();
           if(TransferOrder == null)
            {
                Log.Error($"WxTransfer微信支付处理 失败,原因是没有找到TransferOrder ,传递Id为{msg}");
                return;
            }
          if(!string.IsNullOrEmpty(TransferOrder.BatchStatus))
            {
                return;
            }
                // 发起支付
                var requit = _mapper.Map<CreateTransferBatchRequest>(TransferOrder);
            requit.AppId = App.Configuration["WechatAPP:AppId"];
            requit.BatchName = "小镇临时工工资转账";
            requit.BatchRemark = "川印临时工工资,操过200的多笔支付";
            var ret = await _wecharPayServicecs.Transfer(requit);
            if (ret.IsSuccessful())
            {
                var retdata = await WeChatTransferOrderwork.GetByIdAsync(TransferOrder.Id);
                retdata.BatchId = ret.BatchId;
                retdata.BatchStatus = ret.BatchStatus;
                retdata.UpDataBy = "微信付款请求之后";
                retdata.UpDataTime = DateTime.Now;
                await WeChatTransferOrderwork.UpdateAsync(retdata);
            }
            else
            {
                var retdata = await WeChatTransferOrderwork.GetByIdAsync(TransferOrder.Id);
                retdata.ErrorCode = ret.ErrorCode;
                retdata.ErrorMsg = ret.ErrorMessage;
                retdata.BatchStatus = ret.BatchStatus;
                retdata.UpDataBy = "微信付款请求之后";
                retdata.UpDataTime = DateTime.Now;
                await WeChatTransferOrderwork.UpdateAsync(retdata);
                Log.Error($"WxTransfer微信支付处理 失败,传递Id为{msg} 错误原因:{retdata.ErrorMsg}");
                return;
            }
        }
        [Subscribe(InitQMessages.WxTransferAg)]
        public async void WxTransferAg(string msg)
        {
            _ezCoreNetRedisService = App.GetService<IEzCoreNetRedisService>();
            _wecharPayServicecs = App.GetService<IWecharPayServicecs>();
            _mapper = App.GetService<IMapper>();
            var WeChatTransferOrderwork = new BaseRepository<WeChatTransferOrder>();
            var TransferOrder = await WeChatTransferOrderwork.AsQueryable().Includes(x => x.TransferDetailList).Where(x => x.Id == msg.toInt()).FirstAsync();
            if (TransferOrder == null)
            {
                Log.Error($" 再次调用WxTransfer微信支付处理 失败,原因是没有找到TransferOrder ,传递Id为{msg}");
                return;
            }
            if (!string.IsNullOrEmpty(TransferOrder.BatchStatus))
            {
                return;
            }
            // 发起支付
            var requit = _mapper.Map<CreateTransferBatchRequest>(TransferOrder);
            requit.AppId = App.Configuration["WechatAPP:AppId"];
            requit.BatchName = "小镇临时工工资转账";
            requit.BatchRemark = "川印临时工工资,操过200的多笔支付";
            var ret = await _wecharPayServicecs.Transfer(requit);
            if (ret.IsSuccessful())
            {
                var retdata = await WeChatTransferOrderwork.GetByIdAsync(TransferOrder.Id);
                retdata.BatchId = ret.BatchId;
                retdata.BatchStatus = ret.BatchStatus;
                retdata.UpDataBy = "再次微信付款请求";
                retdata.UpDataTime = DateTime.Now;
                await WeChatTransferOrderwork.UpdateAsync(retdata);
            }
            else
            {
                var retdata = await WeChatTransferOrderwork.GetByIdAsync(TransferOrder.Id);
                retdata.ErrorCode = ret.ErrorCode;
                retdata.ErrorMsg = ret.ErrorMessage;
                retdata.BatchStatus = ret.BatchStatus;
                retdata.UpDataBy = "再微信付款请求";
                retdata.UpDataTime = DateTime.Now;
                await WeChatTransferOrderwork.UpdateAsync(retdata);
                Log.Error($"WxTransfer微信支付处理 失败,传递Id为{msg} 错误原因:{retdata.ErrorMsg}");
                return;
            }
        }
    }
}