/// <summary>
        /// 验证基础数据
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public DataValidResult ValidDataForProductQueryRequest(ProductQueryRequest request)
        {
            var result = new DataValidResult {
                Status = false
            };

            if (request.Body.Type > 2 || request.Body.Type < 0)
            {
                result.Code    = "111002";
                result.Message = "获取产品异常,分页的形式超出范围";
                return(result);
            }
            if (request.Body.Type == 2 && request.Body.ProductId <= 0)
            {
                result.Code    = "111003";
                result.Message = "获取产品异常,产品id不合法";
                return(result);
            }
            if (request.Body.Type == 1 && request.Body.PageSize <= 0)
            {
                result.Code    = "111004";
                result.Message = "获取产品异常,每页记录数不能小于1";
                return(result);
            }
            if (request.Body.Type == 1 && request.Body.CurrentPage <= 0)
            {
                result.Code    = "111004";
                result.Message = "获取产品异常,当前页数不能小于1";
                return(result);
            }
            result.Status = true;
            return(result);
        }
Exemple #2
0
        /// <summary>
        /// 检查订单详情的状态,是否还能取消。--小径平台
        /// </summary>
        /// <param name="orderDetailId">订单详情id</param>
        /// <returns></returns>
        public Tbl_OrderDetail XJ_CheckOrderDetailIsCanncel(int otaOrderDetailId)
        {
            var result = new DataValidResult <Tbl_OrderDetail>()
            {
                Status = false
            };
            var orderDetail = _orderDetailRepository.FirstOrDefault(a => a.OtaOrderDetailId == otaOrderDetailId);

            if (orderDetail == null)
            {
                //130001=订单不存在
                return(null);
            }
            if (orderDetail.OrderStatus == (int)OrderDetailsDataStatus.Canncel)
            {
                //订单已取消
                return(null);
            }
            if (orderDetail.OrderStatus == (int)OrderDetailsDataStatus.Consume)
            {
                //订单已消费
                return(null);
            }
            if (orderDetail.OrderStatus == (int)OrderDetailsDataStatus.NoPay)
            {
                //订单未支付
                return(null);
            }
            if (orderDetail.OrderStatus == (int)OrderDetailsDataStatus.Refund)
            {
                //订单已退款
                return(null);
            }
            return(orderDetail);
        }
        /// <summary>
        /// 取消订单基础数据验证
        /// </summary>
        /// <param name="request"></param>
        /// <param name="otaBusinessId"></param>
        /// <returns></returns>
        public DataValidResult ValidDataForOrderCancelRequest(OrderCancelRequest request, int otaBusinessId)
        {
            var result = new DataValidResult {
                Status = false
            };

            if (string.IsNullOrEmpty(request.Body.OrderInfo.OrderId))
            {
                result.Code    = "114001";
                result.Message = "订单取消失败,订单id不能为空";
                return(result);
            }
            if (request.Body.OrderInfo.OrderQuantity <= 0)
            {
                result.Code    = "114003";
                result.Message = "订单取消失败,订单总票数不能小于1";
                return(result);
            }
            var tbl_Order = Get(request.Body.OrderInfo.OrderId);

            if (tbl_Order == null)
            {
                result.Code    = "114004";
                result.Message = "订单取消失败,订单不存在";
                return(result);
            }
            if (tbl_Order.OTABusinessId != otaBusinessId)
            {
                result.Code    = "114005";
                result.Message = "订单取消失败,订单存在,但不属于该调用者";
                return(result);
            }
            result.Status = true;
            return(result);
        }
Exemple #4
0
        /// <summary>
        /// 检查单个订单详情的状态,是否还能取消。
        /// </summary>
        /// <param name="orderDetailId">订单详情id</param>
        /// <returns></returns>
        public DataValidResult <Tbl_OrderDetail> CheckOrderDetailIsCanncel(int orderDetailId)
        {
            var result = new DataValidResult <Tbl_OrderDetail>()
            {
                Status = false
            };
            var orderDetail = _orderDetailRepository.FirstOrDefault(a => a.OrderDetailId == orderDetailId);

            if (orderDetail == null)
            {
                //130001=订单不存在
                result.Code    = "130001";
                result.Message = "取消订单异常,订单不存在";
                return(result);
            }
            if (orderDetail.OrderStatus == (int)OrderDetailsDataStatus.Canncel)
            {
                //订单已取消
                result.Code    = "130002";
                result.Message = "取消订单异常,订单已取消";
                return(result);
            }
            if (orderDetail.OrderStatus == (int)OrderDetailsDataStatus.Consume)
            {
                //订单已消费
                result.Code    = "130003";
                result.Message = "取消订单异常,订单已消费";
                return(result);
            }
            if (orderDetail.OrderStatus == (int)OrderDetailsDataStatus.NoPay)
            {
                //订单未支付
                result.Code    = "130004";
                result.Message = "取消订单异常,订单未支付";
                return(result);
            }
            if (orderDetail.OrderStatus == (int)OrderDetailsDataStatus.Refund)
            {
                //订单已退款
                result.Code    = "130005";
                result.Message = "取消订单异常,订单已退款";
                return(result);
            }
            if ((orderDetail.OrderStatus == (int)OrderDetailsDataStatus.Success) || (orderDetail.OrderStatus == (int)OrderDetailsDataStatus.Activate))
            {
                if (orderDetail.CanRefund && orderDetail.CanRefundTime < DateTime.Now.Date)
                {
                    //"门票已过了最后取消时间";
                    result.Code    = "130006";
                    result.Message = "取消订单异常,未消费但已过期";
                    return(result);
                }
                result.Status = true;
                result.Item   = orderDetail;
                return(result);
            }
            result.Code    = "130007";
            result.Message = "取消订单异常,取消失败!";
            return(result);
        }
Exemple #5
0
        /// <summary>
        /// (重)发送入园凭证短信 基础数据验证
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public DataValidResult ValidDataForMessageSendRequest(MessageSendRequest request)
        {
            var orderInfo = request.Body.OrderInfo;
            var result    = new DataValidResult {
                Status = false
            };

            if (string.IsNullOrEmpty(orderInfo.OrderId))
            {
                result.Code    = "117001";
                result.Message = "(重)发送入园凭证短信异常,订单id不能为空";
                return(result);
            }
            if (string.IsNullOrEmpty(orderInfo.phoneNumber))
            {
                result.Code    = "117002";
                result.Message = "(重)发送入园凭证短信异常,重发手机号码不能为空";
                return(result);
            }
            if (!RegexValidation.IsCellPhone(orderInfo.phoneNumber))
            {
                result.Code    = "117003";
                result.Message = "(重)发送入园凭证短信异常,重发手机号码异常";
                return(result);
            }
            result.Status = true;
            return(result);
        }
Exemple #6
0
        /// <summary>
        /// 检查订单详情的状态,是否还能取消。
        /// </summary>
        /// <param name="orderDetailId">订单详情id</param>
        /// <returns></returns>
        public DataValidResult <Tbl_OrderDetail> CheckOrderDetailIsCanncel(string orderNo)
        {
            var result = new DataValidResult <Tbl_OrderDetail>()
            {
                Status = false
            };
            var list    = GetList(orderNo);
            var canncel = list.FirstOrDefault(a => (a.OrderStatus == (int)OrderDetailsDataStatus.Canncel || a.OrderStatus == (int)OrderDetailsDataStatus.Refund));

            if (canncel != null)
            {
                result.Code    = "000000";
                result.Message = "订单已取消,重复取消";
                return(result);
            }
            var consume = list.FirstOrDefault(a => a.OrderStatus == (int)OrderDetailsDataStatus.Consume);

            if (consume != null)
            {
                result.Code    = "114009";
                result.Message = "订单取消失败,订单已消费,订单不能取消";
                return(result);
            }
            var noPay = list.FirstOrDefault(a => a.OrderStatus == (int)OrderDetailsDataStatus.IsTaken);

            if (noPay != null)
            {
                result.Code    = "114013";
                result.Message = "订单取消失败,订单已取票,不能取消";
                return(result);
            }
            var canRefund = list.FirstOrDefault(a => a.CanRefund == false);

            if (canRefund != null)
            {
                result.Code    = "114010";
                result.Message = "订单取消失败,订单中包含不支持取消的产品,订单不能取消";
                return(result);
            }
            var canRefundTime = list.FirstOrDefault(a => a.CanRefundTime < DateTime.Now.Date);

            if (canRefundTime != null)
            {
                result.Code    = "114011";
                result.Message = "订单取消失败,未消费但已过期,订单不能取消";
                return(result);
            }
            var count = list.Count(a => (a.OrderStatus == (int)OrderDetailsDataStatus.Success) || (a.OrderStatus == (int)OrderDetailsDataStatus.Activate));

            if (count == list.Count)
            {
                result.Status = true;
                result.List   = list;
                return(result);
            }
            result.Code    = "114012";
            result.Message = "订单取消失败,系统出错";
            return(result);
        }
        /// <summary>
        /// 验证单个订单数据
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public DataValidResult ValidDataForOrderSingleCreateRequest(
            OrderSingleCreateRequest request,
            Tbl_OTABusiness business,
            Tbl_Ticket tbl_Ticket,
            OrderSingleCreateResponse response)
        {
            var result = new DataValidResult {
                Status = false
            };
            var ticket = request.Body.OrderInfo.Ticket;

            if (tbl_Ticket == null)
            {
                result.Code    = "113019";
                result.Message = "创建订单失败,选择的游玩日期超出选购产品的有效期或者选购的产品无效";
                return(result);
            }
            var existence = _otaTicketRelationService.CheckIsTicketId(business.Id, tbl_Ticket.TicketId);

            if (!existence)
            {
                result.Code    = "113019";
                result.Message = "创建订单失败,选择的游玩日期超出选购产品的有效期或者选购的产品无效";
                return(result);
            }
            if (tbl_Ticket.SalePrice != ticket.SellPrice)
            {
                result.Code    = "113020";
                result.Message = "创建订单失败,价格不一致";
                return(result);
            }
            //日销售限额为空或者0  为不限制
            if (tbl_Ticket.StockCount.HasValue && tbl_Ticket.StockCount.Value > 0)
            {
                if (!tbl_Ticket.LastUpdateTime.HasValue || tbl_Ticket.LastUpdateTime.Value.Date != DateTime.Now.Date)
                {
                    tbl_Ticket.SellCount = 0;
                }
                var sellCount = tbl_Ticket.SellCount.HasValue ? tbl_Ticket.SellCount.Value : 0;//库存
                response.Body.Inventory = tbl_Ticket.StockCount.Value - sellCount;
                if (sellCount + ticket.Quantity > tbl_Ticket.StockCount.Value)
                {
                    //开启了库存限制,购买数量超过了库存
                    result.Code    = "113026";
                    result.Message = "创建订单失败,库存不足";
                    return(result);
                }
            }
            else
            {
                response.Body.Inventory = 50000;
            }

            result.Status = true;
            return(result);
        }
Exemple #8
0
        /// <summary>
        /// 查询订单基础数据验证
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public DataValidResult ValidDataForOrderQueryRequest(OrderQueryRequest request)
        {
            var result = new DataValidResult {
                Status = false
            };

            if (string.IsNullOrEmpty(request.Body.OrderId))
            {
                result.Code    = "115001";
                result.Message = "查询订单异常,订单id不能为空";
                return(result);
            }
            result.Status = true;
            return(result);
        }
Exemple #9
0
        /// <summary>
        /// 验证订单数据
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public DataValidResult ValidDataForOrderCreateRequest(OrderCreateRequest request, List <Tbl_Ticket> tbl_Tickets)
        {
            var result = new DataValidResult {
                Status = false
            };

            if (tbl_Tickets.Count <= 0)
            {
                result.Code    = "113019";
                result.Message = "创建订单异常,选择的游玩日期超出选购产品的有效期或者选购的产品无效";
                return(result);
            }
            if (tbl_Tickets.Count != request.Body.OrderInfo.TicketList.Count)
            {
                result.Code    = "113025";
                result.Message = "创建订单异常,选购的产品中包含已超出产品有效期或无效的产品";
                return(result);
            }
            foreach (var row in request.Body.OrderInfo.TicketList)
            {
                var ticket = tbl_Tickets.FirstOrDefault(a => a.TicketId == row.ProductId && a.SalePrice == row.SellPrice);
                if (ticket == null)
                {
                    result.Code    = "113020";
                    result.Message = "创建订单异常,选购产品的价格与原始产品价格不一致";
                    return(result);
                }
                var sCount    = ticket == null ? 0 : ticket.StockCount;
                var sellCount = ticket == null ? 0 : ticket.SellCount;
                if (sCount > 0 && (sellCount + row.Quantity) > sCount)
                {
                    //开启了库存限制,购买数量超过了库存
                    result.Code    = "113026";
                    result.Message = "创建订单异常,选购产品的数量超过了购买限制";
                    return(result);
                }
            }
            result.Status = true;
            return(result);
        }
Exemple #10
0
        /// <summary>
        /// 修改订单基础数据验证
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public DataValidResult ValidDataForOrderUpdateRequest(OrderUpdateRequest request)
        {
            var orderInfo = request.Body.OrderInfo;
            var result    = new DataValidResult {
                Status = false
            };

            if (orderInfo.ContactPerson == null)
            {
                result.Code    = "116001";
                result.Message = "修改订单异常,取票人信息为空";
                return(result);
            }
            if (string.IsNullOrEmpty(orderInfo.ContactPerson.Name))
            {
                result.Code    = "116002";
                result.Message = "修改订单异常,取票人姓名不能为空";
                return(result);
            }
            if (string.IsNullOrEmpty(orderInfo.ContactPerson.Mobile))
            {
                result.Code    = "116003";
                result.Message = "修改订单异常,取票人手机号码不能为空";
                return(result);
            }
            if (!RegexValidation.IsCellPhone(orderInfo.ContactPerson.Mobile))
            {
                result.Code    = "116004";
                result.Message = "修改订单异常,取票人手机号码异常";
                return(result);
            }
            if (!string.IsNullOrEmpty(orderInfo.ContactPerson.CardType))
            {
                switch (orderInfo.ContactPerson.CardType.ToUpper())
                {
                case "ID_CARD":
                    if (string.IsNullOrEmpty(orderInfo.ContactPerson.CardNo))
                    {
                        result.Code    = "116005";
                        result.Message = "修改订单异常,游客身份证信息不能为空";
                        return(result);
                    }
                    if (!RegexValidation.IsIdCard(orderInfo.ContactPerson.CardNo))
                    {
                        result.Code    = "116006";
                        result.Message = "修改订单异常,游客身份证信息输入有误";
                        return(result);
                    }
                    break;

                case "HUZHAO":
                case "TAIBAO":
                case "GANGAO":
                case "OTHER":
                    break;

                default:
                    result.Code    = "116007";
                    result.Message = "修改订单异常,取票人证件类型异常";
                    return(result);
                }
            }
            else
            {
                result.Code    = "116008";
                result.Message = "修改订单异常,取票人证件类型不能为空";
                return(result);
            }
            if (!orderInfo.VisitDate.IsDataTime())
            {
                result.Code    = "116009";
                result.Message = "修改订单异常,游玩日期格式不合法";
                return(result);
            }

            if (orderInfo.VisitDate.ToDataTime() < DateTime.Now.Date)
            {
                result.Code    = "116010";
                result.Message = "修改订单异常,游玩日期不能小于今天";
                return(result);
            }
            result.Status = true;
            return(result);
        }
Exemple #11
0
        /// <summary>
        /// 创建单个订单基础数据验证
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public DataValidResult ValidDataForOrderSingleCreateRequest(OrderSingleCreateRequest request, OrderSingleCreateResponse response)
        {
            var orderInfo = request.Body.OrderInfo;
            var result    = new DataValidResult {
                Status = false
            };

            if (orderInfo.ContactPerson == null)
            {
                result.Code    = "113001";
                result.Message = "创建订单异常,取票人信息为空";
                return(result);
            }
            if (string.IsNullOrEmpty(orderInfo.ContactPerson.Name))
            {
                result.Code    = "113002";
                result.Message = "创建订单异常,取票人姓名不能为空";
                return(result);
            }
            if (string.IsNullOrEmpty(orderInfo.ContactPerson.Mobile))
            {
                result.Code    = "113003";
                result.Message = "创建订单异常,取票人手机号码不能为空";
                return(result);
            }
            if (!RegexValidation.IsCellPhone(orderInfo.ContactPerson.Mobile))
            {
                result.Code    = "113004";
                result.Message = "创建订单异常,取票人手机号码异常";
                return(result);
            }
            if (!string.IsNullOrEmpty(orderInfo.ContactPerson.CardType))
            {
                switch (orderInfo.ContactPerson.CardType.ToUpper())
                {
                case "ID_CARD":
                    if (!string.IsNullOrEmpty(orderInfo.ContactPerson.CardNo))
                    {
                        if (!RegexValidation.IsIdCard(orderInfo.ContactPerson.CardNo))
                        {
                            result.Code    = "113005";
                            result.Message = "创建订单异常,游客身份证信息输入有误";
                            return(result);
                        }
                    }
                    break;

                case "HUZHAO":
                case "TAIBAO":
                case "GANGAO":
                case "OTHER":
                    break;
                }
            }

            if (string.IsNullOrEmpty(orderInfo.OrderOtaId))
            {
                result.Code    = "113006";
                result.Message = "创建订单异常,OTA订单id不能为空";
                return(result);
            }

            if (orderInfo.OrderQuantity <= 0)
            {
                result.Code    = "113008";
                result.Message = "创建订单异常,订票总数量不能小于1";
                return(result);
            }
            if (!orderInfo.VisitDate.IsDataTime())
            {
                result.Code    = "113009";
                result.Message = "创建订单异常,游玩日期格式不合法";
                return(result);
            }
            if (orderInfo.VisitDate.ToDataTime() < DateTime.Now.Date)
            {
                result.Code    = "113009";
                result.Message = "创建订单异常,游玩日期不合法";
                return(result);
            }
            if (orderInfo.Ticket == null)
            {
                result.Code    = "113015";
                result.Message = "创建订单异常,购买产品的数据不合法";
                return(result);
            }
            if (orderInfo.Ticket.Quantity != orderInfo.OrderQuantity)
            {
                result.Code    = "113011";
                result.Message = "创建订单异常,购买产品的总数量和订票总数量不符";
                return(result);
            }

            if (orderInfo.Ticket.Quantity <= 0)
            {
                result.Code    = "113013";
                result.Message = "创建订单异常,购买产品的游客人数不能小于1";
                return(result);
            }
            if (orderInfo.Ticket.ProductId <= 0)
            {
                result.Code    = "113014";
                result.Message = "创建订单异常,购买产品的id不合法";
                return(result);
            }
            //验证OTA订单id是否已存在
            var tbl_Order = GetOrderBy(request.Body.OrderInfo.OrderOtaId);

            if (tbl_Order != null)
            {
                var tbl_OrderDetail = _orderDetailService.Get(tbl_Order.OrderNo);
                result.Code                 = "000000";
                result.Message              = "成功,重复提交订单";
                response.Body.OrderId       = tbl_Order.OrderNo;
                response.Body.OtaOrderId    = tbl_Order.OTAOrderNo;
                response.Body.CertificateNo = tbl_OrderDetail.CertificateNO;
                response.Body.Code          = tbl_OrderDetail.QRcode;
                response.Body.OrderStatus   = "OREDER_SUCCESS";
                return(result);
            }
            result.Status = true;
            return(result);
        }
Exemple #12
0
        /// <summary>
        /// 下单验证基础数据验证
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public DataValidResult ValidDataForVerifyOrderRequest(OrderSingleCreateRequest request)
        {
            var orderInfo = request.Body.OrderInfo;
            var result    = new DataValidResult {
                Status = false
            };

            if (orderInfo.ContactPerson == null)
            {
                result.Code    = "113001";
                result.Message = "创建订单异常,取票人信息为空";
                return(result);
            }
            if (string.IsNullOrEmpty(orderInfo.ContactPerson.Name))
            {
                result.Code    = "113002";
                result.Message = "创建订单异常,取票人姓名不能为空";
                return(result);
            }
            if (string.IsNullOrEmpty(orderInfo.ContactPerson.Mobile))
            {
                result.Code    = "113003";
                result.Message = "创建订单异常,取票人手机号码不能为空";
                return(result);
            }
            if (!RegexValidation.IsCellPhone(orderInfo.ContactPerson.Mobile))
            {
                result.Code    = "113004";
                result.Message = "创建订单异常,取票人手机号码异常";
                return(result);
            }
            if (!string.IsNullOrEmpty(orderInfo.ContactPerson.CardType))
            {
                switch (orderInfo.ContactPerson.CardType.ToUpper())
                {
                case "ID_CARD":
                    if (!string.IsNullOrEmpty(orderInfo.ContactPerson.CardNo))
                    {
                        if (!RegexValidation.IsIdCard(orderInfo.ContactPerson.CardNo))
                        {
                            result.Code    = "113005";
                            result.Message = "创建订单异常,游客身份证信息输入有误";
                            return(result);
                        }
                    }
                    break;

                case "HUZHAO":
                case "TAIBAO":
                case "GANGAO":
                case "OTHER":
                    break;
                }
            }
            if (orderInfo.OrderQuantity <= 0)
            {
                result.Code    = "113008";
                result.Message = "创建订单异常,订票总数量不能小于1";
                return(result);
            }
            if (!orderInfo.VisitDate.IsDataTime())
            {
                result.Code    = "113009";
                result.Message = "创建订单异常,游玩日期格式不合法";
                return(result);
            }
            if (orderInfo.VisitDate.ToDataTime() < DateTime.Now.Date)
            {
                result.Code    = "113009";
                result.Message = "创建订单异常,游玩日期不合法";
                return(result);
            }
            if (orderInfo.Ticket == null)
            {
                result.Code    = "113015";
                result.Message = "创建订单异常,购买产品的数据不合法";
                return(result);
            }
            if (orderInfo.Ticket.Quantity <= 0)
            {
                result.Code    = "113013";
                result.Message = "创建订单异常,购买产品的游客人数不能小于1";
                return(result);
            }
            if (orderInfo.Ticket.ProductId <= 0)
            {
                result.Code    = "113014";
                result.Message = "创建订单异常,购买产品的id不合法";
                return(result);
            }

            result.Status = true;
            return(result);
        }
Exemple #13
0
        /// <summary>
        /// 创建订单基础数据验证
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public DataValidResult ValidDataForOrderCreateRequest(OrderCreateRequest request)
        {
            var orderInfo = request.Body.OrderInfo;
            var result    = new DataValidResult {
                Status = false
            };

            if (orderInfo.ContactPerson == null)
            {
                result.Code    = "113001";
                result.Message = "创建订单异常,取票人信息为空";
                return(result);
            }
            if (string.IsNullOrEmpty(orderInfo.ContactPerson.Name))
            {
                result.Code    = "113002";
                result.Message = "创建订单异常,取票人姓名不能为空";
                return(result);
            }
            if (string.IsNullOrEmpty(orderInfo.ContactPerson.Mobile))
            {
                result.Code    = "113003";
                result.Message = "创建订单异常,取票人手机号码不能为空";
                return(result);
            }
            if (!RegexValidation.IsCellPhone(orderInfo.ContactPerson.Mobile))
            {
                result.Code    = "113004";
                result.Message = "创建订单异常,取票人手机号码异常";
                return(result);
            }
            if (!string.IsNullOrEmpty(orderInfo.ContactPerson.CardType))
            {
                switch (orderInfo.ContactPerson.CardType.ToUpper())
                {
                case "ID_CARD":
                    if (string.IsNullOrEmpty(orderInfo.ContactPerson.CardNo))
                    {
                        result.Code    = "113023";
                        result.Message = "创建订单异常,游客身份证信息不能为空";
                        return(result);
                    }
                    if (!RegexValidation.IsIdCard(orderInfo.ContactPerson.CardNo))
                    {
                        result.Code    = "113005";
                        result.Message = "创建订单异常,游客身份证信息输入有误";
                        return(result);
                    }
                    break;

                case "HUZHAO":
                case "TAIBAO":
                case "GANGAO":
                case "OTHER":
                    break;

                default:
                    result.Code    = "113022";
                    result.Message = "创建订单异常,取票人证件类型异常";
                    return(result);
                }
            }
            else
            {
                result.Code    = "113024";
                result.Message = "创建订单异常,取票人证件类型不能为空";
                return(result);
            }
            if (string.IsNullOrEmpty(orderInfo.OrderOtaId))
            {
                result.Code    = "113006";
                result.Message = "创建订单异常,OTA订单id不能为空";
                return(result);
            }
            if (orderInfo.OrderPrice <= 0)
            {
                result.Code    = "113007";
                result.Message = "创建订单异常,订单总金额不能小于0";
                return(result);
            }
            if (orderInfo.OrderQuantity <= 0)
            {
                result.Code    = "113008";
                result.Message = "创建订单异常,订票总数量不能小于1";
                return(result);
            }
            if (!orderInfo.VisitDate.IsDataTime())
            {
                result.Code    = "113009";
                result.Message = "创建订单异常,游玩日期格式不合法";
                return(result);
            }
            if (orderInfo.TicketList == null || orderInfo.TicketList.Count <= 0)
            {
                result.Code    = "113010";
                result.Message = "创建订单异常,购买产品的数量不能小于1";
                return(result);
            }
            if (orderInfo.TicketList.Sum(a => a.Quantity) != orderInfo.OrderQuantity)
            {
                result.Code    = "113011";
                result.Message = "创建订单异常,购买产品的总数量和订票总数量不符";
                return(result);
            }
            if (orderInfo.TicketList.Sum(a => a.SellPrice * a.Quantity) != orderInfo.OrderPrice)
            {
                result.Code    = "113012";
                result.Message = "创建订单异常,购买产品的总金额和订票总金额不符";
                return(result);
            }
            foreach (var row in orderInfo.TicketList)
            {
                if (row.Quantity <= 0)
                {
                    result.Code    = "113013";
                    result.Message = "创建订单异常,购买产品的游客人数不能小于1";
                    return(result);
                }
                if (row.ProductId <= 0)
                {
                    result.Code    = "113014";
                    result.Message = "创建订单异常,购买产品的id不合法";
                    return(result);
                }
                if (orderInfo.TicketList == null)
                {
                    result.Code    = "113015";
                    result.Message = "创建订单异常,购买产品的数据不合法";
                    return(result);
                }
                if (row.SellPrice <= 0)
                {
                    result.Code    = "113016";
                    result.Message = "创建订单异常,购买产品的金额不合法";
                    return(result);
                }
            }

            if (orderInfo.OrderPayStatus > 1 || orderInfo.OrderPayStatus < 0)
            {
                result.Code    = "113017";
                result.Message = "创建订单异常,是否收款超出范围";
                return(result);
            }
            //验证OTA订单id是否已存在
            var otaOrder = GetOrderBy(request.Body.OrderInfo.OrderOtaId);

            if (otaOrder != null)
            {
                result.Code    = "113018";
                result.Message = "创建订单异常,OTA订单id已存在";
                return(result);
            }
            result.Status = true;
            return(result);
        }
Exemple #14
0
        /// <summary>
        /// 检查订单详情的状态,是否还能取消。
        /// </summary>
        /// <param name="orderDetailId">订单编号</param>
        /// <returns></returns>
        public DataValidResult <Tbl_OrderDetail> CheckOrderDetailIsCanncel(OrderCancelRequest orderCancelRequest, string orderNo)
        {
            var result = new DataValidResult <Tbl_OrderDetail>()
            {
                Status = false,
                List   = new List <Tbl_OrderDetail>()
            };
            var list  = GetList(orderNo);
            var items = orderCancelRequest.Body.OrderInfo.Items;

            if (items == null || items.Count <= 0)
            {
                result.Code    = "114012";
                result.Message = "订单取消失败,系统出错";
                return(result);
            }
            foreach (var row in items)
            {
                var orderDetail = list.FirstOrDefault(a => a.OtaOrderDetailId == row.ItemId);
                if (orderDetail == null)
                {
                    result.Code    = "114004";
                    result.Message = "订单取消失败,订单不存在";
                    return(result);
                }
                if (orderDetail.Quantity != row.Quantity)
                {
                    result.Code    = "114014";
                    result.Message = "订单取消失败,订单取消数量不正确";
                    return(result);
                }
                if (orderDetail.OrderStatus == (int)OrderDetailsDataStatus.Canncel || orderDetail.OrderStatus == (int)OrderDetailsDataStatus.Refund)
                {
                    continue;
                }
                if (orderDetail.OrderStatus == (int)OrderDetailsDataStatus.Consume)
                {
                    result.Code    = "114009";
                    result.Message = "订单取消失败,订单已消费,订单不能取消";
                    return(result);
                }
                if (orderDetail.OrderStatus == (int)OrderDetailsDataStatus.IsTaken)
                {
                    result.Code    = "114013";
                    result.Message = "订单取消失败,订单已取票,不能取消";
                    return(result);
                }
                if (orderDetail.CanRefund == false)
                {
                    result.Code    = "114010";
                    result.Message = "订单取消失败,订单不支持取消";
                    return(result);
                }
                if (orderDetail.CanRefundTime < DateTime.Now.Date)
                {
                    result.Code    = "114011";
                    result.Message = "订单取消失败,订单已过期,不可退";
                    return(result);
                }
                if (orderDetail.OrderStatus == (int)OrderDetailsDataStatus.Success || orderDetail.OrderStatus == (int)OrderDetailsDataStatus.Activate)
                {
                    result.List.Add(orderDetail);
                    continue;
                }
                result.Code    = "114012";
                result.Message = "订单取消失败,系统出错";
                return(result);
            }
            result.Status = true;
            return(result);
        }
        /// <summary>
        /// 创建订单基础数据验证
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public DataValidResult ValidDataForOrderCreateRequest(OrderCreateRequest request, OrderCreateResponse response)
        {
            var orderInfo = request.Body.OrderInfo;
            var result    = new DataValidResult {
                Status = false
            };

            if (orderInfo.ContactPerson == null)
            {
                result.Code    = "113001";
                result.Message = "创建订单异常,取票人信息为空";
                return(result);
            }
            if (string.IsNullOrEmpty(orderInfo.ContactPerson.Name))
            {
                result.Code    = "113002";
                result.Message = "创建订单异常,取票人姓名不能为空";
                return(result);
            }
            if (string.IsNullOrEmpty(orderInfo.ContactPerson.Mobile))
            {
                result.Code    = "113003";
                result.Message = "创建订单异常,取票人手机号码不能为空";
                return(result);
            }
            if (!RegexValidation.IsCellPhone(orderInfo.ContactPerson.Mobile))
            {
                result.Code    = "113004";
                result.Message = "创建订单异常,取票人手机号码异常";
                return(result);
            }
            if (!string.IsNullOrEmpty(orderInfo.ContactPerson.CardType))
            {
                if (orderInfo.ContactPerson.CardType.ToUpper() == "ID_CARD" && !string.IsNullOrEmpty(orderInfo.ContactPerson.CardNo))
                {
                    if (!RegexValidation.IsIdCard(orderInfo.ContactPerson.CardNo))
                    {
                        result.Code    = "113005";
                        result.Message = "创建订单异常,游客身份证信息输入有误";
                        return(result);
                    }
                }
            }

            if (string.IsNullOrEmpty(orderInfo.OrderOtaId))
            {
                result.Code    = "113006";
                result.Message = "创建订单异常,OTA订单id不能为空";
                return(result);
            }
            if (orderInfo.OrderPrice <= 0)
            {
                result.Code    = "113007";
                result.Message = "创建订单异常,订单总金额不能小于0";
                return(result);
            }
            if (orderInfo.OrderQuantity <= 0)
            {
                result.Code    = "113008";
                result.Message = "创建订单异常,订票总数量不能小于1";
                return(result);
            }
            if (!orderInfo.VisitDate.IsDataTime())
            {
                result.Code    = "113009";
                result.Message = "创建订单异常,游玩日期格式不合法";
                return(result);
            }
            if (orderInfo.TicketList == null || orderInfo.TicketList.Count <= 0)
            {
                result.Code    = "113010";
                result.Message = "创建订单异常,购买产品的数量不能小于1";
                return(result);
            }
            if (orderInfo.TicketList.Sum(a => a.Quantity) != orderInfo.OrderQuantity)
            {
                result.Code    = "113011";
                result.Message = "创建订单异常,购买产品的总数量和订票总数量不符";
                return(result);
            }
            if (orderInfo.TicketList.Sum(a => a.SellPrice * a.Quantity) != orderInfo.OrderPrice)
            {
                result.Code    = "113012";
                result.Message = "创建订单异常,购买产品的总金额和订票总金额不符";
                return(result);
            }
            foreach (var row in orderInfo.TicketList)
            {
                if (row.Quantity <= 0)
                {
                    result.Code    = "113013";
                    result.Message = "创建订单异常,购买产品的游客人数不能小于1";
                    return(result);
                }
                if (row.ProductId <= 0)
                {
                    result.Code    = "113014";
                    result.Message = "创建订单异常,购买产品的id不合法";
                    return(result);
                }
                if (orderInfo.TicketList == null)
                {
                    result.Code    = "113015";
                    result.Message = "创建订单异常,购买产品的数据不合法";
                    return(result);
                }
                if (row.SellPrice <= 0)
                {
                    result.Code    = "113016";
                    result.Message = "创建订单异常,购买产品的金额不合法";
                    return(result);
                }
            }

            if (orderInfo.OrderPayStatus > 1 || orderInfo.OrderPayStatus < 0)
            {
                result.Code    = "113017";
                result.Message = "创建订单异常,是否收款超出范围";
                return(result);
            }
            //验证OTA订单id是否已存在
            var tbl_Order = GetOrderBy(request.Body.OrderInfo.OrderOtaId);

            if (tbl_Order != null)
            {
                var tbl_OrderDetails = _orderDetailService.GetList(tbl_Order.OrderNo);
                result.Code    = "000000";
                result.Message = "成功,重复提交订单";
                response.Body  = new OrderCreateInfo
                {
                    OtaOrderId  = tbl_Order.OTAOrderNo,
                    OrderId     = tbl_Order.OrderNo,
                    OrderStatus = "OREDER_SUCCESS",
                    Item        = new List <OrderCreateItem>()
                };
                foreach (var row in tbl_OrderDetails)
                {
                    response.Body.Item.Add(new OrderCreateItem
                    {
                        OtaOrderDetailId = row.OtaOrderDetailId,
                        ProductId        = row.TicketId.ToString(),
                        useDate          = row.ValidityDateStart.ToString("yyyy-MM-dd"),
                        CertificateNo    = row.CertificateNO,
                        quantity         = 500000
                    });
                }
                return(result);
            }
            result.Status = true;
            return(result);
        }
        /// <summary>
        /// 验证订单基础数据验证
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public DataValidResult ValidDataForOrderVerifyRequest(OrderCreateRequest request)
        {
            var orderInfo = request.Body.OrderInfo;
            var result    = new DataValidResult {
                Status = false
            };

            if (orderInfo.ContactPerson == null)
            {
                result.Code    = "113001";
                result.Message = "创建订单异常,取票人信息为空";
                return(result);
            }
            if (string.IsNullOrEmpty(orderInfo.ContactPerson.Name))
            {
                result.Code    = "113002";
                result.Message = "创建订单异常,取票人姓名不能为空";
                return(result);
            }
            if (string.IsNullOrEmpty(orderInfo.ContactPerson.Mobile))
            {
                result.Code    = "113003";
                result.Message = "创建订单异常,取票人手机号码不能为空";
                return(result);
            }
            if (!RegexValidation.IsCellPhone(orderInfo.ContactPerson.Mobile))
            {
                result.Code    = "113004";
                result.Message = "创建订单异常,取票人手机号码异常";
                return(result);
            }
            if (!string.IsNullOrEmpty(orderInfo.ContactPerson.CardType))
            {
                if (orderInfo.ContactPerson.CardType.ToUpper() == "ID_CARD" && !string.IsNullOrEmpty(orderInfo.ContactPerson.CardNo))
                {
                    if (!RegexValidation.IsIdCard(orderInfo.ContactPerson.CardNo))
                    {
                        result.Code    = "113005";
                        result.Message = "创建订单异常,游客身份证信息输入有误";
                        return(result);
                    }
                }
            }

            if (orderInfo.OrderPrice <= 0)
            {
                result.Code    = "113007";
                result.Message = "创建订单异常,订单总金额不能小于0";
                return(result);
            }
            if (orderInfo.OrderQuantity <= 0)
            {
                result.Code    = "113008";
                result.Message = "创建订单异常,订票总数量不能小于1";
                return(result);
            }
            if (!orderInfo.VisitDate.IsDataTime())
            {
                result.Code    = "113009";
                result.Message = "创建订单异常,游玩日期格式不合法";
                return(result);
            }
            if (orderInfo.TicketList == null || orderInfo.TicketList.Count <= 0)
            {
                result.Code    = "113010";
                result.Message = "创建订单异常,购买产品的数量不能小于1";
                return(result);
            }
            if (orderInfo.TicketList.Sum(a => a.Quantity) != orderInfo.OrderQuantity)
            {
                result.Code    = "113011";
                result.Message = "创建订单异常,购买产品的总数量和订票总数量不符";
                return(result);
            }
            if (orderInfo.TicketList.Sum(a => a.SellPrice * a.Quantity) != orderInfo.OrderPrice)
            {
                result.Code    = "113012";
                result.Message = "创建订单异常,购买产品的总金额和订票总金额不符";
                return(result);
            }
            foreach (var row in orderInfo.TicketList)
            {
                if (row.Quantity <= 0)
                {
                    result.Code    = "113013";
                    result.Message = "创建订单异常,购买产品的游客人数不能小于1";
                    return(result);
                }
                if (row.ProductId <= 0)
                {
                    result.Code    = "113014";
                    result.Message = "创建订单异常,购买产品的id不合法";
                    return(result);
                }
                if (orderInfo.TicketList == null)
                {
                    result.Code    = "113015";
                    result.Message = "创建订单异常,购买产品的数据不合法";
                    return(result);
                }
                if (row.SellPrice <= 0)
                {
                    result.Code    = "113016";
                    result.Message = "创建订单异常,购买产品的金额不合法";
                    return(result);
                }
            }

            if (orderInfo.OrderPayStatus > 1 || orderInfo.OrderPayStatus < 0)
            {
                result.Code    = "113017";
                result.Message = "创建订单异常,是否收款超出范围";
                return(result);
            }

            result.Status = true;
            return(result);
        }