예제 #1
0
        /// <summary>
        /// 激励用户善心
        /// </summary>
        /// <param name="message"></param>
        /// <returns></returns>
        public Task <AsyncTaskResult> HandleAsync(IncentiveUserBenevolenceEvent evnt)
        {
            //发布两个记录 一个现金记录  一个善心记录
            var    tasks  = new List <Task>();
            string number = DateTime.Now.ToSerialNumber();

            //现金记录
            tasks.Add(_commandService.SendAsync(new CreateCashTransferCommand(
                                                    GuidUtil.NewSequentialId(),
                                                    evnt.AggregateRootId,
                                                    number,
                                                    CashTransferType.Incentive,
                                                    CashTransferStatus.Placed,
                                                    evnt.IncentiveValue * (1 - ConfigSettings.IncentiveFeePersent),//激励善心收取10%手续费
                                                    evnt.IncentiveValue * ConfigSettings.IncentiveFeePersent,
                                                    WalletDirection.In,
                                                    "福豆激励")));
            //善心记录
            tasks.Add(_commandService.SendAsync(new CreateBenevolenceTransferCommand(
                                                    GuidUtil.NewSequentialId(),
                                                    evnt.AggregateRootId,
                                                    number,
                                                    BenevolenceTransferType.Incentive,
                                                    BenevolenceTransferStatus.Placed,
                                                    evnt.BenevolenceDeduct,
                                                    0,
                                                    WalletDirection.Out,
                                                    "福豆指数:{0}".FormatWith(evnt.BenevolenceIndex))));
            //执行所以的任务
            Task.WaitAll(tasks.ToArray());
            return(Task.FromResult(AsyncTaskResult.Success));
        }
예제 #2
0
파일: Wallet.cs 프로젝트: zanderphh/Shop
 private void Handle(IncentiveUserBenevolenceEvent evnt)
 {
 }