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); }
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); }