示例#1
0
        /// <summary>
        /// 写入跨店奖励日志
        ///
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool InsertCrossShopLog(CrossShopModel model)
        {
            string        sql  = @"INSERT INTO CrossShopLog
                        (ClienterId
                        ,Amount
                        ,BusinessCount
                        ,[Platform]
                        ,Remark
                        ,InsertTime)
                        VALUES
                        (@ClienterId
                        ,@Amount
                        ,@BusinessCount
                        ,@Platform
                        ,@Remark
                        ,@InsertTime)";
            IDbParameters parm = DbHelper.CreateDbParameters();

            parm.AddWithValue("@ClienterId", model.ClienterId);
            parm.AddWithValue("@Amount", model.Amount);
            parm.AddWithValue("@BusinessCount", model.BusinessCount);
            parm.AddWithValue("@Platform", model.Platform);
            parm.AddWithValue("@Remark", model.Remark);
            parm.AddWithValue("@InsertTime", model.InsertTime);
            return(DbHelper.ExecuteNonQuery(SuperMan_Write, sql, parm) > 0 ? true : false);
        }
        /// <summary>
        /// 跨店补贴
        /// 徐鹏程
        /// 20150414
        /// </summary>
        public bool CrossShop(List <GlobalConfigSubsidies> SubsidiesList)
        {
            IList <GrabOrderModel> list = subsidyDao.GetBusinessCount();
            WtihdrawRecordsDao     withdrawRecordsDao = new WtihdrawRecordsDao();
            ClienterDao            clienterDao        = new ClienterDao();

            int    MaxSubsidiesShop  = SubsidiesList.Max(t => ParseHelper.ToInt(t.Value1));                                                                //最大数量
            double MaxSubsidiesPrice = ParseHelper.ToDouble(SubsidiesList.Where(t => ParseHelper.ToInt(t.Value1) == MaxSubsidiesShop).ToList()[0].Value2); //最大金额

            foreach (GrabOrderModel item in list)
            {
                //Ets.Model.DomainModel.Clienter.ClienterModel cliterModel = new ClienterDao().GetUserInfoByUserId(item.ClienterId);//获取当前用户余额
                WithdrawRecordsModel withdraw = new WithdrawRecordsModel();
                #region 写流水
                withdraw.Platform = 1;
                withdraw.AdminId  = 0;
                withdraw.UserId   = item.ClienterId;
                int businessCount = item.BusinessCount;
                //var findSubsidie = SubsidiesList.OrderByDescending(t => ParseHelper.ToInt(t.Value1)).ToList().Where(t => ParseHelper.ToInt(t.Value1) >= businessCount).First();
                //double businessPrice = findSubsidie == null ? 0 : ParseHelper.ToDouble(findSubsidie.Value2);

                //ParseHelper.ToDouble(SubsidiesList.Select(t => ParseHelper.ToInt(t.Value1) == businessCount));
                double businessPrice = 0;
                if (businessCount > MaxSubsidiesShop)
                {
                    businessPrice = MaxSubsidiesPrice;
                }
                else
                {
                    var tmpPrice = SubsidiesList.Where(t => ParseHelper.ToInt(t.Value1) == businessCount).ToList();
                    if (tmpPrice == null || tmpPrice.Count <= 0)
                    {
                        continue;
                    }
                    businessPrice = ParseHelper.ToDouble(tmpPrice[0].Value2);//当前金额
                }

                withdraw.Amount  = ParseHelper.ToDecimal(businessPrice, 0);
                withdraw.Balance = ParseHelper.ToDecimal(item.AccountBalance, 0) + withdraw.Amount;
                withdraw.Remark  = string.Format("跨店抢单奖励{0}元", withdraw.Amount);

                //记录跨店日志
                CrossShopModel crossShopModel = new CrossShopModel()
                {
                    Amount        = withdraw.Amount,
                    BusinessCount = businessCount,
                    ClienterId    = withdraw.UserId,
                    Platform      = 2,
                    Remark        = withdraw.Remark,
                    InsertTime    = DateTime.Now
                };
                #endregion

                ClienterBalanceRecord cbrm = new ClienterBalanceRecord()
                {
                    ClienterId = withdraw.UserId,
                    Amount     = withdraw.Amount,                    //奖励的金额
                    Status     = ClienterBalanceRecordStatus.Success.GetHashCode(),
                    Balance    = withdraw.Balance + withdraw.Amount, //奖励后的金额
                    RecordType = ClienterBalanceRecordRecordType.SystemReward.GetHashCode(),
                    Operator   = "系统服务",
                    RelationNo = "",
                    Remark     = "跨店骑士奖励"
                };

                using (IUnitOfWork tran = EdsUtilOfWorkFactory.GetUnitOfWorkOfEDS())
                {
                    //修改records表增加记录作废,改为 新表ClienterBalanceRecord
                    // withdrawRecordsDao.AddRecords(withdraw);
                    clienterBalanceRecordDao.Insert(cbrm);
                    clienterDao.UpdateAccountBalanceAndWithdraw(withdraw);//更改用户金额
                    subsidyDao.InsertCrossShopLog(crossShopModel);
                    tran.Complete();
                }
            }
            return(true);
        }