public Response SaveWaitPay(CoachStudentMoneyNotPay obj, User currentUser) { Response rsp = new Response(); //生成 待支付订单 var vipUse = new VipUse(); vipUse.Id = Ext.NewId(); vipUse.MasterType = MasterType.STUDENTPAY.Id; vipUse.MasterId = obj.Id; vipUse.CityId = obj.CityId; vipUse.VenueId = ""; vipUse.CostTypeId = CostType.COACHCOST.Id; vipUse.TotalAmount = obj.ThenMoney; vipUse.Discount = 1; vipUse.Amount = obj.ThenMoney * vipUse.Discount; vipUse.PayState = PayState.PAY.Id;//待支付 vipUse.IsOwnCreate = true; if (obj.CourseTypeId == CoachDic.BigCourse) { vipUse.Remark = "购买大课" + obj.Amount + "课时"; } else if (obj.CourseTypeId == CoachDic.PrivateCourse) { vipUse.Remark = "购买私教" + obj.Amount + "课时"; } vipUse.UserId = currentUser.Id; vipUse.CreatorId = currentUser.Id; vipUse.CreateDate = DateTime.Now; rsp.Tag = VipHelper.SaveVipUse(vipUse); rsp.IsSuccess = true; return(rsp); }
/// <summary> /// 返回支付单据编号 /// </summary> /// <param name="obj"></param> /// <returns></returns> public static string SaveVipUse(VipUse obj) { //设置编号 obj.CityId = obj.CityId.GetId(); obj.VenueId = obj.VenueId.GetId(); obj.UserId = obj.UserId.GetId(); obj.CostTypeId = obj.CostTypeId.GetId(); obj.CreatorId = obj.CreatorId.GetId(); obj.PayOption = obj.PayOption.GetId(); obj.PayState = obj.PayState.GetId(); obj.OrderNo = SystemHelper.GetSerialNo(SerialNoType.VipUse); obj.TrySetNewEntity(); //插入数据 var cmd = CommandHelper.CreateProcedure(FetchType.Execute, "sp_SaveVipUse"); cmd.CreateParamMsg(); cmd.Params.Add("@Id", obj.Id); cmd.Params.Add("@MasterType", obj.MasterType); cmd.Params.Add("@MasterId", obj.MasterId); cmd.Params.Add("@OrderNo", obj.OrderNo); cmd.Params.Add("@CityId", obj.CityId); cmd.Params.Add("@VenueId", obj.VenueId); cmd.Params.Add("@CostTypeId", obj.CostTypeId); cmd.Params.Add("@TotalAmount", obj.TotalAmount, DataType.Double); cmd.Params.Add("@Discount", obj.Discount, DataType.Double); cmd.Params.Add("@Amount", obj.Amount, DataType.Double); cmd.Params.Add("@PayOption", obj.PayOption); cmd.Params.Add("@PayId", obj.PayId); cmd.Params.Add("@PayState", obj.PayState); cmd.Params.Add("@PayDate", obj.PayDate, DataType.DateTime); cmd.Params.Add("@PayRemark", obj.PayRemark); cmd.Params.Add("@Remark", obj.Remark); cmd.Params.Add("@IsOwnCreate", obj.IsOwnCreate, DataType.Boolean); cmd.Params.Add("@UserId", obj.UserId); cmd.Params.Add("@CreatorId", obj.CreatorId); cmd.Params.Add("@CreateDate", obj.CreateDate, DataType.DateTime); cmd.Params.Add("@Lng", obj.Lng, DataType.Double); cmd.Params.Add("@Lat", obj.Lat, DataType.Double); cmd.Params.Add("@Address", obj.Address); var result = DbContext.GetInstance().Execute(cmd); if (result.IsSuccess && obj.RowState == RowState.Added) { result.Tag = obj.Id;//返回主键,供下一步使用。 JPushHelper.SendNotify(MasterType.VIP_USE.Id, obj.Id, "有新的消费单,请及时支付。", new List <string> { obj.CreatorId.GetId() }); } return(obj.Id); }
public Response Execute(User currentUser, string request) { var req = JsonConvert.DeserializeObject <Request <VipPayInfo> >(request); var obj = req.FirstEntity(); Response rsp = ResultHelper.CreateResponse(); //判断余额是否够 if (!GuessHelper.Instance.IsBalanceSufficient(obj.CurrentUserId, obj.YueDouAmount)) { return(ResultHelper.Fail("没有足够的悦豆余额, 请充值")); } //扣除悦豆 rsp = GuessHelper.Instance.AddOrSubYueDou(-obj.YueDouAmount, obj.CurrentUserId); //插入悦豆账单 if (rsp.IsSuccess) { var yueDouFlow = new YueDouFlow(); yueDouFlow.Amount = -obj.YueDouAmount; yueDouFlow.UserId = obj.CurrentUserId; yueDouFlow.FlowType = GuessDic.VenueCost; rsp = GuessHelper.Instance.AddYueDouFlow(yueDouFlow); } //增加场馆创建者的悦豆数 Venue venue = VenueHelper.Instance.GetVenueById(obj.VenueId); if (rsp.IsSuccess) { rsp = GuessHelper.Instance.AddOrSubYueDou(obj.YueDouAmount, venue.CreatorId); //插入悦豆账单 var yueDouFlow = new YueDouFlow(); yueDouFlow.Amount = obj.YueDouAmount; yueDouFlow.UserId = venue.CreatorId; yueDouFlow.FlowType = GuessDic.VenueEarn; rsp = GuessHelper.Instance.AddYueDouFlow(yueDouFlow); } //返回成功支付的信息 VipUse vipUse = new VipUse(); vipUse.OrderNo = SystemHelper.GetSerialNo(SerialNoType.VipUse); vipUse.Amount = obj.YueDouAmount; vipUse.Remark = ""; vipUse.PayDate = DateTime.Now; vipUse.MasterName = venue.Name; rsp.Entities.Add(vipUse); return(rsp); }