Exemple #1
0
        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);
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        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);
        }