示例#1
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 = "异常,请联系管理员"
                }));
            }
        }