Esempio n. 1
0
        public bool ReceiveReward()
        {
            BeginTransaction();
            Tvip_Reward daReward = new Tvip_Reward();

            daReward.ReferenceTransactionFrom(Transaction);
            if (!daReward.SelectByUserId_Datecode(_userId, _dateCode))
            {
                Rollback();
                Alert((ResultType)ApiStatusCode.OPERATOR_FORBIDDEN, "今日无奖励可领取");
                return(false);
            }
            if (daReward.Status == 1)
            {
                Rollback();
                Alert((ResultType)ApiStatusCode.OPERATOR_FORBIDDEN, "今日奖励已领取");
                return(false);
            }
            int transferId;

            if (!DoTransfer(daReward.User_Id, daReward.Amount, out transferId))
            {
                Rollback();
                return(false);
            }
            if (!daReward.UpdateReceiveById(transferId))
            {
                Rollback();
                Alert((ResultType)ApiStatusCode.DATA_REFRESH_FAIL, "系统繁忙,请稍后再试!");
                return(false);
            }
            Commit();
            return(true);
        }
Esempio n. 2
0
        public bool DoCreate(DateTime runTime)
        {
            const decimal basicReward    = 20m;
            Vnet_User     daUser         = new Vnet_User();
            int           recommendCount = daUser.GetRecommendUserCount(this._userId);//直推VIP数量

            //消费数据
            decimal consumeRebate = 0m;
            //预期奖励
            decimal expect = basicReward + (basicReward * 0.2m * recommendCount);
            //实际应得奖励
            decimal infact = expect - consumeRebate;

            Tvip_Reward daReward = new Tvip_Reward
            {
                Amount    = infact,
                Expect    = expect,
                Datecode  = Convert.ToInt32(runTime.ToString("yyyyMMdd")),
                Recommend = recommendCount,
                Status    = 0,
                Yesterday = consumeRebate,
                User_Id   = this._userId,
            };

            daReward.ReferenceTransactionFrom(Transaction);
            if (!daReward.Insert())
            {
                Alert((ResultType)ApiStatusCode.DATA_PERSIST_FAIL, "创建VIP每日奖励失败");
                return(false);
            }
            return(true);
        }