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)); } // } }
public ActionResult SendToAttentioned() { CommonEFHelper.SendToAttentioned(21, string.Format("你的好友{0}发布了谜题", "stoneniqiu"), new Guid("8f11f2e2-6464-4640-a7c2-e24bcf92ff8d")); return(Content("success")); }