public JsonResult PayReward(int questionId)
        {
            var question = _questionDbService.GetById(questionId);

            if (question == null)
            {
                return(PaymentResult("迷题不存在!"));
            }
            var fromuserId = question.UserId;
            //验证用户是否作答
            var user        = _workContext.CurrentUser;
            var rightAnswer = _questionDbService.GetRightAnswerByUserIdAndQuestionId(user.Id, questionId);

            if (rightAnswer == null)
            {
                return(PaymentResult("用户没有回答正确!"));
            }
            //using (var sc = new TransactionScope())
            //{
            try
            {
                //根据策略计算金额
                var money = _questionDbService.GetReward(user.Id, questionId);
                //最后才是支付
                var rewarded = string.Format("你获得来自{0}的谜题悬赏金{1}", question.User.Username, money.ToString("c"));

                var res = PayRewardAction(fromuserId, money, questionId, rewarded);

                if (!res.IsSuccess)
                {
                    return(Json(res));
                }
                //问题需要减少金额
                question.ReduceRemanidReward(money);
                //也就是修改剩余奖金
                // _questionDbService.UpdateQuestion(question);
                //更新问题
                rightAnswer.IsPay = true;
                // _questionDbService.UpdateAnswer(rightAnswer);

                using (var db = new PortalDb())
                {
                    var qu = db.Questions.Find(questionId);
                    qu.IsFinished    = question.IsFinished;
                    qu.RemanidReward = question.RemanidReward;
                    var anw = db.Answers.Find(rightAnswer.Id);
                    anw.IsPay = true;
                    db.SaveChanges();
                }



                CommonEFHelper.SaveRewardInfo(user.Id, rewarded, MessageType.Reward, question.Guid);
                if (question.IsFinished)
                {
                    var finished = string.Format("你{0}{1}发布的谜题已经被全部领取", question.CreateTime.ToShortDateString(), question.CreateTime.ToShortTimeString());
                    CommonEFHelper.SaveRewardInfo(question.UserId, finished, MessageType.SystemInfo, question.Guid);
                }
                // sc.Complete();
                res.Money = money;
                return(Json(res));
            }
            catch (Exception e)
            {
                return(PaymentResult(e.Message));
            }
            // }
        }
Пример #2
0
 public ActionResult SendToAttentioned()
 {
     CommonEFHelper.SendToAttentioned(21, string.Format("你的好友{0}发布了谜题", "stoneniqiu"), new Guid("8f11f2e2-6464-4640-a7c2-e24bcf92ff8d"));
     return(Content("success"));
 }