示例#1
0
 public List <YJBJCardDTO> GetExt(Guid orderId)
 {
     return(YJBJCard.ObjectSet().Where(p => p.OrderId == orderId).ToList().Select(p => p.ToEntityData()).ToList());
 }
示例#2
0
        public ResultDTO CreateExt(Guid orderId)
        {
            try
            {
                var order = CommodityOrder.ObjectSet().FirstOrDefault(p => p.Id == orderId);
                if (order == null)
                {
                    return new ResultDTO {
                               isSuccess = false, Message = "未找到订单"
                    }
                }
                ;
                if (order.EsAppId != YJB.Deploy.CustomDTO.YJBConsts.YJAppId)
                {
                    return new ResultDTO {
                               isSuccess = false, Message = "非易捷北京订单"
                    }
                }
                ;
                if (order.OrderType != 3)
                {
                    return new ResultDTO {
                               isSuccess = false, Message = "非易捷卡密订单"
                    }
                }
                ;
                if (order.State == 7)
                {
                    return new ResultDTO {
                               isSuccess = false, Message = "订单已退款"
                    }
                }
                ;
                if (YJBJCard.ObjectSet().Any(p => p.OrderId == orderId && p.Status == 2))
                {
                    return new ResultDTO {
                               isSuccess = false, Message = "已获取卡信息"
                    }
                }
                ;
                var yjUserId = TPS.CBCSV.GetYJUserId(order.UserId);
                if (string.IsNullOrEmpty(yjUserId))
                {
                    return new ResultDTO {
                               isSuccess = false, Message = "非易捷北京会员用户"
                    }
                }
                ;
                var isNoPhoneAccount = yjUserId == "NoPhoneAccount";
                //var yjUserId = "77fca49d080d4bcba3eca52e715e37f6";
                var orderItemList = OrderItem.ObjectSet()
                                    .Where(p => p.CommodityOrderId == orderId && p.Type == 1).Select(p => new { p.Id, p.CommodityId, p.Number, p.YJCouponActivityId, p.YJCouponType, }).ToList()
                                    .Where(p => !string.IsNullOrEmpty(p.YJCouponActivityId) && !string.IsNullOrEmpty(p.YJCouponType)).ToList();
                if (orderItemList.Count == 0)
                {
                    return new ResultDTO {
                               isSuccess = false, Message = "未找到易捷卡密订单项"
                    }
                }
                ;
                orderItemList.ForEach(p =>
                {
                    var list = isNoPhoneAccount ? new List <YJBJCard>() : CreateYingKeCoupon(p.YJCouponActivityId, p.YJCouponType, p.Number, yjUserId);
                    if (list.Count == 0)//接口调用失败后再调用一次
                    {
                        list = isNoPhoneAccount ? new List <YJBJCard>() : CreateYingKeCoupon(p.YJCouponActivityId, p.YJCouponType, p.Number, yjUserId);
                        #region 接口二次调用失败

                        if (list.Count == 0)
                        {
                            list.Add(new YJBJCard
                            {
                                CardName    = string.Empty,
                                CardNo      = string.Empty,
                                CheckCode   = string.Empty,
                                CouponUrl   = string.Empty,
                                EndTime     = DateTime.MaxValue,
                                Status      = isNoPhoneAccount ? 1 : 0,
                                Message     = isNoPhoneAccount ? "用户未绑定手机号" : "失败",
                                EntityState = EntityState.Added
                            });
                        }

                        #endregion
                    }
                    list.ForEach(x =>
                    {
                        x.Id          = Guid.NewGuid();
                        x.UserId      = order.UserId;
                        x.AppId       = order.AppId;
                        x.EsAppId     = (Guid)order.EsAppId;
                        x.OrderId     = order.Id;
                        x.OrderCode   = order.Code;
                        x.OrderItemId = p.Id;
                        x.CommodityId = p.CommodityId;
                        x.SubTime     = DateTime.Now;
                        ContextFactory.CurrentThreadContext.SaveObject(x);
                    });
                });
                DateTime now = DateTime.Now;
                #region CommodityOrderService

                var commodityOrderService = CommodityOrderService.FindByID(order.Id);
                if (commodityOrderService == null)
                {
                    commodityOrderService = new CommodityOrderService
                    {
                        Id          = order.Id,
                        Name        = order.Name,
                        Code        = order.Code,
                        State       = 3,
                        SubId       = order.UserId,
                        SubTime     = now,
                        ModifiedOn  = now,
                        EntityState = EntityState.Added
                    };

                    ContextFactory.CurrentThreadContext.SaveObject(commodityOrderService);
                }

                #endregion
                #region Journal

                var journal = new Journal
                {
                    Id               = Guid.NewGuid(),
                    Name             = "易捷卡密成功获取卡信息",
                    Code             = order.Code,
                    SubId            = order.UserId,
                    SubTime          = now,
                    Details          = "订单状态由" + order.State + "变为3",
                    StateFrom        = order.State,
                    StateTo          = 3,
                    IsPush           = false,
                    OrderType        = order.OrderType,
                    CommodityOrderId = order.Id,
                    EntityState      = EntityState.Added
                };
                ContextFactory.CurrentThreadContext.SaveObject(journal);

                #endregion
                #region CommodityOrder

                order.State      = 3;
                order.ModifiedOn = now;

                #endregion
                int count = ContextFactory.CurrentThreadContext.SaveChanges();
                return(count == 0
                    ? new ResultDTO {
                    isSuccess = false, Message = "数据库保存0行"
                }
                    : new ResultDTO {
                    isSuccess = true, Message = "成功"
                });
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("YJBJCardBP.CreateExt异常,orderId={0}", orderId), ex);
                return(new ResultDTO {
                    isSuccess = false, Message = "异常"
                });
            }
        }