Beispiel #1
0
        public void Ready()
        {
            var accountType = AccountTypeService.GetById(InnerObject.AccountTypeId);

            if (accountType != null)
            {
                AccountTypeName = accountType.DisplayName;
            }
        }
Beispiel #2
0
        public ActionResult GetTicketInfo(TicketWriteOffRequest request)
        {
            try
            {
                WxPayAPI.Log.Info("PosApiController", string.Format("请求获取门票:code{0},token:{1}", request.code, request.token));
                TicketWriteOffResponse result = new TicketWriteOffResponse();
                if (string.IsNullOrEmpty(request.code))
                {
                    return(Json(new ApiResponse()
                    {
                        Code = "-1", Msg = "门票代码为空"
                    }));
                }
                if (string.IsNullOrEmpty(request.token))
                {
                    return(Json(new ApiResponse()
                    {
                        Code = "-1", Msg = "token为空"
                    }));
                }
                var postToken = postTokenService.GetByToken(request.token);
                if (postToken == null)
                {
                    return(Json(new ApiResponse()
                    {
                        Code = "-1", Msg = "token失效请重新登录"
                    }));
                }
                var pos = posEndPointService.GetByName(postToken.posName);
                if (pos == null && pos.State != States.Normal)
                {
                    return(Json(new ApiResponse()
                    {
                        Code = "-1", Msg = "pos账号不存在或已停用"
                    }));
                }
                var ticket = ticketsService.GetByCode(request.code);
                if (ticket != null)
                {
                    result.codeNo      = ticket.Code;
                    result.buyTime     = ticket.BuyTime.ToString("yyyy-MM-dd hh:mm:ss");
                    result.ExpiredDate = ticket.ExpiredDate.ToString("yyyy-MM-dd hh:mm:ss");
                    result.name        = ticket.TicketName;
                    if (ticket.State == TicketsState.Used)
                    {
                        result.State = "已使用";
                    }
                    else if (ticket.State == TicketsState.NotUse)
                    {
                        if (DateTime.Now.Date > ticket.ExpiredDate)
                        {
                            result.State = "已过期";
                        }
                        else
                        {
                            result.State = "未使用";
                        }
                    }
                    result.userTime = ticket.userTime.HasValue ? ticket.userTime.Value.ToString("yyyy-MM-dd hh:mm:ss") : "";
                    result.useScope = ticket.ShopName;
                    result.babyName = ticket.babyName;
                    result.babySex  = ticket.babySex == 1 ? "男" : ticket.babySex == 2 ? "女" : "";
                    result.userName = ticket.UserDisplayName;
                    result.mobile   = ticket.Mobile;
                    return(Json(result));
                }

                var card = accountService.GetByName(request.code);
                if (card == null)
                {
                    return(Json(new ApiResponse()
                    {
                        Code = "-1", Msg = "门票不存在"
                    }));
                }
                var cardType = accountTypeService.GetById(card.AccountTypeId);
                var user     = membershipService.GetUserById(card.OwnerId.HasValue ? card.OwnerId.Value : 0) as AccountUser;
                if (user != null)
                {
                    result.babyName = user.babyName;
                    result.babySex  = user.babySex == 1 ? "男" : user.babySex == 2 ? "女" : "";
                    result.mobile   = user.Mobile;
                    result.mobile   = user.Mobile;
                    result.userName = user.DisplayName;
                }
                result.name          = cardType != null ? cardType.DisplayName : "";
                result.buyTime       = card.OpenTime.HasValue ? card.OpenTime.Value.ToString("yyyy-MM-dd hh:mm:ss") : "";
                result.codeNo        = card.Name;
                result.ExpiredDate   = card.ExpiredDate.ToString("yyyy-MM-dd hh:mm:ss");
                result.Frequency     = card.Frequency;
                result.FrequencyUsed = card.FrequencyUsed;
                result.State         = ModelHelper.GetBoundText(card, x => x.State);
                var shop = shopService.GetById(card.ShopId);
                if (shop != null)
                {
                    result.useScope = shop.DisplayName;
                }
                return(Json(result));
            }
            catch (Exception ex)
            {
                WxPayAPI.Log.Info("WindowTicketOffController", string.Format("请求获取门票异常:{0}", ex.Message));
                return(Json(new ApiResponse()
                {
                    Code = "-1", Msg = "异常,请联系管理员"
                }));
            }
        }
        public async Task <IActionResult> GetById(int id)
        {
            var response = await _accountTypeService.GetById(id);

            return(Ok(response));
        }
Beispiel #4
0
        public ActionResult CardPlaceOrder(int accountTypeId, int userCouponsId = 0)
        {
            var accountType = accountTypeService.GetById(accountTypeId);

            if (accountType == null)
            {
                return(Json(new ResultMessage()
                {
                    Code = -1, Msg = "你要购买得卡不存在"
                }));
            }
            if (accountType.State != AccountTypeStates.Normal)
            {
                return(Json(new ResultMessage()
                {
                    Code = -1, Msg = "此卡已下架,请选择购买其他卡"
                }));
            }
            int userId   = 0;
            var cookieId = Request.Cookies[SessionKeys.USERID].Value.ToString();

            int.TryParse(cookieId, out userId);
            var user = membershipService.GetUserById(userId) as AccountUser;

            if (user == null)
            {
                return(Json(new ResultMessage()
                {
                    Code = -1, Msg = "用户不存在"
                }));
            }
            decimal     price       = accountType.Amount; //卡单价
            string      orderNo     = string.Format("{0:yyyyMMddHHmmssffff}", DateTime.Now) + userId;
            decimal     deductible  = 0;                  //优惠卷抵扣金额
            decimal     discount    = 0;                  //折扣
            string      useScope    = "";                 //指定门店
            int         couponId    = 0;                  //优惠卷id
            decimal     amount      = price;
            UserCoupons userCoupons = null;

            if (userCouponsId > 0)
            {
                userCoupons = userCouponsService.GetById(userCouponsId);
                if (userCoupons == null)
                {
                    return(Json(new ResultMessage()
                    {
                        Code = -1, Msg = "优惠卷不存在"
                    }));
                }
                if (userCoupons.state != UserCouponsState.NotUse)
                {
                    return(Json(new ResultMessage()
                    {
                        Code = -1, Msg = "优惠卷已失效"
                    }));
                }
                if (userCoupons.userId != userId)
                {
                    return(Json(new ResultMessage()
                    {
                        Code = -1, Msg = "优惠卷不可用"
                    }));
                }
                var coupon = couponsService.GetById(userCoupons.couponsId);
                if (coupon == null && coupon.state != CouponsState.Normal)
                {
                    return(Json(new ResultMessage()
                    {
                        Code = -1, Msg = "优惠卷不存在"
                    }));
                }
                if (coupon.validity.HasValue && coupon.validity > DateTime.Now.Date)
                {
                    return(Json(new ResultMessage()
                    {
                        Code = -1, Msg = "优惠卷已过期"
                    }));
                }
                if (coupon.couponsType == CouponsType.DiscountedVolume)
                {
                    discount   = coupon.discount;
                    deductible = amount - (discount * amount);
                }
                else if (coupon.couponsType == CouponsType.FullVolumeReduction)
                {
                    if (amount >= coupon.fullAmount)
                    {
                        deductible = coupon.reduceAmount;
                    }
                }
                else if (coupon.couponsType == CouponsType.OffsetRoll)
                {
                    deductible = coupon.deductibleAmount;
                }
                useScope = coupon.useScope;
                couponId = coupon.id;
            }
            var order = new Orders();

            order.amount     = price;
            order.orderNo    = orderNo;
            order.deductible = deductible;
            order.orderState = OrderStates.awaitPay;
            order.payAmount  = order.amount - deductible;
            order.subTime    = DateTime.Now;
            order.type       = OrderTypes.card;
            order.userId     = userId;
            order.useScope   = useScope;

            var orderDetial = new OrderDetial();

            orderDetial.amount   = price;
            orderDetial.cardNo   = "";
            orderDetial.num      = 1;
            orderDetial.orderNo  = orderNo;
            orderDetial.sourceId = accountType.AccountTypeId;
            orderDetial.subTime  = DateTime.Now;

            var tran = transactionHelper.BeginTransaction();

            try
            {
                ordersService.Create(order);
                orderDetialService.Create(orderDetial);
                if (couponId > 0)
                {
                    var useCouponslog = new UseCouponslog();
                    useCouponslog.amount    = deductible;
                    useCouponslog.couponsId = couponId;
                    useCouponslog.discount  = discount;
                    useCouponslog.orderNo   = orderNo;
                    useCouponslog.userId    = userId;
                    useCouponslog.useTime   = DateTime.Now;
                    useCouponslogService.Create(useCouponslog);
                    if (userCoupons != null)
                    {
                        userCoupons.state = UserCouponsState.Used;
                        userCouponsService.Update(userCoupons);
                    }
                }
                //微信支付
                JsApiPay jsApiPay = new JsApiPay();
                jsApiPay.openid    = user.openId;
                jsApiPay.total_fee = (int)(order.payAmount * 100);
                WxPayData unifiedOrderResult = jsApiPay.GetUnifiedOrderResult(order.orderNo);
                string    wxJsApiParam       = jsApiPay.GetJsApiParameters();//获取H5调起JS API参数
                WxPayAPI.Log.Debug(this.GetType().ToString(), "wxJsApiParam : " + wxJsApiParam);
                tran.Commit();
                return(Json(new ResultMessage()
                {
                    Code = 0, Msg = wxJsApiParam
                }));
                //return Json(new ResultMessage() { Code = 0, Msg = "" });
            }
            catch (Exception ex)
            {
                WxPayAPI.Log.Error(this.GetType().ToString(), ex.Message.ToString());
                return(Json(new ResultMessage()
                {
                    Code = -1, Msg = ex.Message.ToString()
                }));
                //Response.Write("<span style='color:#FF0000;font-size:20px'>" + "下单失败,请返回重试" + "</span>");
                //submit.Visible = false;
            }
            finally
            {
                tran.Dispose();
            }
        }