Example #1
0
        /// <summary>
        /// 获取应用统计信息
        /// </summary>
        /// <param name="appId">AppId</param>
        /// <returns>结果</returns>
        public AppStatisticsDTO GetAppStatisticsExt(System.Guid appId)
        {
            AppStatisticsDTO model = new AppStatisticsDTO();

            try
            {
                var order = CommodityOrder.ObjectSet().Where(p => p.EsAppId == appId && !new[] { 0, 4, 5, 6, 11, 17, 19, 21 }.Contains(p.State)).Select(p => new
                {
                    RealPrice = p.RealPrice ?? 0,
                }).ToList();
                var orderCount = order.Count();
                var totalMoney = (int)order.Sum(p => p.RealPrice) * 100;
                var query      = new ZPH.Deploy.CustomDTO.QueryPavilionAppParam
                {
                    Id        = appId,
                    pageIndex = 1,
                    pageSize  = int.MaxValue
                };
                var appIdList      = ZPHSV.Instance.GetPavilionApp(query).Data.Select(t => t.appId).ToList();
                var commodityCount = Commodity.ObjectSet().Count(p => appIdList.Contains(p.AppId));

                model.msg_salesvolume     = totalMoney.ToString();
                model.msg_ordernumber     = orderCount.ToString();
                model.msg_productquantity = commodityCount.ToString();
            }
            catch (Exception ex)
            {
                LogHelper.Error("获取应用统计信息AppExtensionBP.GetAppStatisticsExt异常," + appId, ex);
                model = null;
            }
            return(model);
        }
Example #2
0
        public static bool RefundCoupon(ContextSession contextSession, CommodityOrder commodityOrder)
        {
            var result = Instance.RefundCoupon(new SpendCouponRequestDTO
            {
                EsAppId = commodityOrder.EsAppId ?? Guid.Empty,
                ShopID  = commodityOrder.AppId,
                OrderID = commodityOrder.Id,
                UserID  = commodityOrder.UserId
            });

            if (result.IsSuccess)
            {
                return(result.IsSuccess);
            }
            LogHelper.Error(string.Format("取消订单时回退优惠券失败。OrderId:{0},", commodityOrder.Id));
            ErrorCommodityOrder errorOrder = new ErrorCommodityOrder
            {
                Id           = Guid.NewGuid(),
                ErrorOrderId = commodityOrder.Id,
                ResourceType = 8,
                Description  = "取消订单时回退优惠券失败",
                Source       = commodityOrder.State,
                State        = 0,
                AppId        = commodityOrder.EsAppId.HasValue ? commodityOrder.EsAppId.Value : commodityOrder.AppId,
                UserId       = commodityOrder.UserId,
                OrderCode    = commodityOrder.Code,
                CouponId     = Guid.Empty,
                SubTime      = DateTime.Now,
                ModifiedOn   = DateTime.Now,
                EntityState  = System.Data.EntityState.Added
            };

            contextSession.SaveObject(errorOrder);
            return(result.IsSuccess);
        }
Example #3
0
        /// <summary>
        /// 获取极光数据
        /// </summary>
        /// <param name="orderExpressRoute"></param>
        /// <returns></returns>
        private string GetWuliuJson(string ExpOrderNo)
        {
            string        sappids    = CustomConfig.SappIds;
            List <string> Sappidlist = null;

            if (!string.IsNullOrEmpty(sappids))
            {
                Sappidlist = sappids.Split(new char[] { ',' }).ToList();
            }
            string appkey         = CustomConfig.zshappkey;
            string json           = null;
            string url            = null;
            Guid   AppId          = Guid.Empty;
            var    commodityOrder = CommodityOrder.ObjectSet().FirstOrDefault(p => p.ExpOrderNo == ExpOrderNo);

            if (commodityOrder != null)
            {
                AppId = commodityOrder.AppId;
            }

            if (Sappidlist.Contains(AppId.ToString().ToUpper()))
            {
                var orderExpressRoute = OrderExpressRoute.ObjectSet().FirstOrDefault(p => p.ExpOrderNo == ExpOrderNo);
                //苏宁易购
                url = string.Format("http://api.jisuapi.com/express/query?appkey={0}&type={1}&number={2}", appkey, orderExpressRoute.ShipperCode, ExpOrderNo);
            }
            else
            {
                //中石化
                url = string.Format("http://api.jisuapi.com/express/query?appkey={0}&type={1}&number={2}", appkey, "auto", ExpOrderNo);
            }
            json = WebRequestHelper.SendGetRequest(url);
            return(json.ToString());
        }
Example #4
0
        private static string FangZheng_Order_Confirm(string Name, CommodityOrder OrderInfo)
        {
            string ReutnValue = string.Empty;

            if (",北京市,天津市,上海市,重庆市,".IndexOf(OrderInfo.Province.Trim()) > 0)
            {
                switch (Name)
                {
                case "省": ReutnValue = OrderInfo.Province; break;

                case "市": ReutnValue = OrderInfo.Province; break;

                case "区": ReutnValue = OrderInfo.City; break;
                }
            }
            else
            {
                switch (Name)
                {
                case "省": ReutnValue = OrderInfo.Province; break;

                case "市": ReutnValue = OrderInfo.City; break;

                case "区": ReutnValue = OrderInfo.District; break;
                }
            }
            return(ReutnValue);
        }
Example #5
0
        public static DataTable ImportOrder()
        {
            var startDate  = new DateTime(2018, 4, 10);
            var endDate    = new DateTime(2018, 5, 10);
            var orderItems = OrderItem.ObjectSet().Where(_ => _.SubTime > startDate && _.SubTime < endDate && _.YJCouponPrice > 0).ToList();
            var orderIds   = orderItems.Select(_ => _.CommodityOrderId).ToList();

            var       orders = CommodityOrder.ObjectSet().Where(_ => orderIds.Contains(_.Id) && _.State != 5).OrderBy(_ => _.SubTime).ToList();
            DataTable dt     = new DataTable();

            dt.Columns.Add("APP名称", typeof(string));
            dt.Columns.Add("订单编号", typeof(string));
            dt.Columns.Add("订单金额", typeof(decimal));
            dt.Columns.Add("支付金额", typeof(decimal));
            dt.Columns.Add("运费金额  ", typeof(decimal));
            dt.Columns.Add("抵用券金额  ", typeof(decimal));
            foreach (var d in orders)
            {
                var yjcouponPrice = orderItems.Where(_ => _.CommodityOrderId == d.Id).Sum(_ => _.YJCouponPrice);

                var payPrice = d.Price - yjcouponPrice;

                if (d.RealPrice > (payPrice < 0 ? 0 : payPrice) + d.Freight)
                {
                    dt.Rows.Add(d.AppName, d.Code, d.Price, d.RealPrice, d.Freight, yjcouponPrice);
                }
            }
            return(dt);
        }
Example #6
0
        public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO <List <KeyValuePair <Guid, string> > > GetOrderInfoByCouponIdExt(Guid couponId)
        {
            var returnDto = new ResultDTO <List <KeyValuePair <Guid, string> > >()
            {
                isSuccess = true,
                Data      = new List <KeyValuePair <Guid, string> >()
            };

            try
            {
                var listOrder = OrderPayDetail.ObjectSet().Where(o => o.ObjectId == couponId && o.ObjectType == 1).Select(o => o.OrderId); //获取OrderId
                var orderInfo = CommodityOrder.ObjectSet().Where(o => listOrder.Contains(o.Id)).Select(o => new { o.Id, o.Code });
                foreach (var item in orderInfo)
                {
                    returnDto.Data.Add(new KeyValuePair <Guid, string>(item.Id, item.Code));
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error("CouponRefundBP.GetOrderInfoByCouponIdExt 异常", ex);
                returnDto.isSuccess = false;
            }

            return(returnDto);
        }
Example #7
0
        /// <summary>
        ///  取消订单时,回退用户易捷币
        /// </summary>
        public static ResultDTO CancelOrder(ContextSession contextSession, CommodityOrder commodityOrder)
        {
            if (commodityOrder.EsAppId != Jinher.AMP.YJB.Deploy.CustomDTO.YJBConsts.YJAppId)
            {
                return(ResultDTO.Successed);
            }

            decimal yjbMoney = OrderPayDetail.ObjectSet()
                               .Where(t => t.OrderId == commodityOrder.Id && (t.ObjectType == 10 || t.ObjectType == 15) && t.Amount > 0)
                               .Select(t => t.Amount).FirstOrDefault();

            if (yjbMoney <= 0)
            {
                return(ResultDTO.Successed);
            }

            var result = YJBSV.RefundAllOrderJournal(commodityOrder.Id);

            if (!result.IsSuccess)
            {
                if (result.Code != "OrderNotFound")
                {
                    LogHelper.Error("取消订单时,回退用户易捷币失败,订单ID:" + commodityOrder.Id + ",错误内容:" + result.Message);
                    LogOrderErrorInfo(contextSession, commodityOrder, "取消订单时,回退用户易捷币失败");
                }
            }
            return(result);
        }
Example #8
0
 /// <summary>
 /// 售后退货时,记录退款金额
 /// </summary>
 public static void OrderRefund(ContextSession contextSession, CommodityOrder commodityOrder, OrderRefundAfterSales orderRefundAfterSales)
 {
     if (orderRefundAfterSales.IsFullRefund.HasValue && orderRefundAfterSales.IsFullRefund == 1)
     {
         CancelOrder(contextSession, commodityOrder);
     }
     else
     {
         LogHelper.Info("结算单记录售后退款信息,订单ID:" + commodityOrder.Id + ",退款:" + orderRefundAfterSales.RefundMoney);
         try
         {
             var sad = SettleAccountsDetails.FindByID(commodityOrder.Id);
             if (sad != null)
             {
                 if (sad.OrderRefundAmount == 0)
                 {
                     sad.OrderRefundAmount = orderRefundAfterSales.RefundMoney;
                     sad.SellerAmount     -= orderRefundAfterSales.RefundMoney;
                 }
                 sad.EntityState = EntityState.Modified;
                 contextSession.SaveObject(sad);
             }
         }
         catch (Exception ex)
         {
             LogHelper.Error("结算单记录售后退款信息,订单ID:" + commodityOrder.Id + ",退款:" + orderRefundAfterSales.RefundMoney + ",异常:", ex);
         }
     }
 }
Example #9
0
        /// <summary>
        /// 严选物流绑单回调补偿机制
        /// </summary>
        public static void AutoDeliverOrder()
        {
            var yesterday = DateTime.Now.AddDays(-5);
            var ComOrders = (from co in CommodityOrder.ObjectSet()
                             join yo in YXOrder.ObjectSet() on co.Id equals yo.OrderId
                             where CustomConfig.YxAppIdList.Contains(co.AppId) && co.State == 1 && co.PaymentTime >= yesterday
                             select co.Id).ToList();

            LogHelper.Info("YXJob.AutoDeliverOrder 严选物流绑单回调补偿机制订单Id:" + string.Join(",", ComOrders.Select(c => c.ToString()).ToArray()));
            ComOrders.ForEach(p =>
            {
                string jsonstr = string.Empty;
                var orderOut   = YXSV.GetPaidOrder(p.ToString(), ref jsonstr);
                if (orderOut == null || orderOut.orderPackages == null)
                {
                    return;
                }
                var orderPackages = orderOut.orderPackages.Select(o => new JobOrderPackage
                {
                    orderId            = p.ToString(),
                    packageId          = long.Parse(o.packageId),
                    expressDetailInfos = o.expressDetailInfos,
                    expCreateTime      = ConvertDataTimeToLong(Convert.ToDateTime(o.expCreateTime))
                }).ToList();
                orderPackages.ForEach(op =>
                {
                    var package = SerializationHelper.JsonSerialize(op);
                    YXOrderHelper.DeliverOrder(new YXSign(), package, true);
                });
            });
        }
Example #10
0
        /// <summary>
        /// 订单支付成功时调用
        /// </summary>
        /// <param name="order"></param>
        public static void OnOrderPaySuccess(CommodityOrder order)
        {
            LogHelper.Info("进入OrderEventHelper.OnOrderPaySuccess-" + order.Code + ",OrderId:" + order.Id + ",OrderState:" + order.State);

            // 拼图支付成功时不触发
            if (order.State != 1)
            {
                return;
            }

            // 发送消息
            var requestPar = "{\"project\":\"btp\",\"topic\":\"btporder-0x0001\",\"data\":\"";
            var data       = "{\"orderId\": \"" + order.Id + "\",\"userId\": \"" + order.UserId + "\",\"appId\": \"" + order.AppId + "\"}";

            requestPar += System.Web.HttpUtility.UrlEncode(data, Encoding.GetEncoding("gbk")) + "\"}";
            var            requestUrl = msgUrl + "?" + System.Web.HttpUtility.UrlEncode(requestPar, Encoding.GetEncoding("gbk"));
            HttpWebRequest request    = (HttpWebRequest)WebRequest.Create(requestUrl);

            request.Method      = "GET";
            request.ContentType = "text/html;charset=UTF-8";
            try
            {
                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                {
                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                        LogHelper.Info("OrderEventHelper.OnOrderPaySuccess 发送消息成功, RequestUrl: " + requestUrl);
                    }
                    else
                    {
                        LogHelper.Error("OrderEventHelper.OnOrderPaySuccess 发送消息失败, RequestUrl: " + requestUrl + " \r\nResponseCode: " + response.StatusCode);
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error("OrderEventHelper.OnOrderPaySuccess 发送消息异常, RequestUrl: " + requestUrl, ex);
            }


            switch (ThirdECommerceHelper.GetAppThirdECommerceType(order.AppId))
            {
            case Deploy.Enum.ThirdECommerceTypeEnum.JingDongDaKeHu:
                // 更新京东订单
                JdOrderHelper.UpdateJdorder(order.Id);
                break;

            case Deploy.Enum.ThirdECommerceTypeEnum.SuNingYiGou:
                // 确认苏宁预占
                SuningSV.suning_govbus_confirmorder_add(order.Id, false);
                break;

            case Deploy.Enum.ThirdECommerceTypeEnum.FangZheng:
                // 方正电商订单
                FangZhengSV.FangZheng_Order_Confirm(order.Id, false);
                break;
            }
        }
Example #11
0
 /// <summary>
 ///  支付成功时时,解冻用户易捷币和易捷抵现劵
 /// </summary>
 public static ResultDTO PayOrder(CommodityOrder order)
 {
     LogHelper.Info("YJBHelper.PayOrder, OrderId: " + order.Id);
     if (order.EsAppId.HasValue && order.EsAppId.Value == YJBConsts.YJAppId)
     {
         return(YJBSV.PayOrderJournal(order));
     }
     return(ResultDTO.Successed);
 }
Example #12
0
 /// <summary>
 /// 取消整单退款时调用(售后)
 /// </summary>
 public static ResultDTO OnCancelOrderRefundAfterSales(CommodityOrder order, OrderRefundAfterSales refund)
 {
     // 判断严选订单
     if (ThirdECommerceHelper.IsWangYiYanXuan(order.AppId))
     {
     }
     return(new ResultDTO {
         isSuccess = true
     });
 }
Example #13
0
        /// <summary>
        /// 待自提订单数量
        /// </summary>
        /// <param name="userId">自提点管理员</param>
        /// <returns>待自提订单数量</returns>
        public ResultDTO <int> GetSelfTakeManagerExt(Guid userId)
        {
            try
            {
                // 返回 是否管理员,待自提订单数量
                if (userId == Guid.Empty)
                {
                    return new ResultDTO <int> {
                               Data = 0, ResultCode = 1, Message = "管理员用户ID非法."
                    }
                }
                ;
                var managerInfo = (from p in AppStsManager.ObjectSet()
                                   join r in AppSelfTakeStation.ObjectSet() on p.SelfTakeStationId equals r.Id
                                   where p.UserId == userId && p.IsDel == false && r.IsDel == false
                                   select p.SelfTakeStationId
                                   ).Distinct();
                if (!managerInfo.Any())
                {
                    LogHelper.Info(string.Format("该用户不是自提点管理员或没有与自提点绑定,userId:{0}", userId));

                    return(new ResultDTO <int> {
                        Data = 0, ResultCode = -1, Message = "抱歉,您暂时没有权限查看此信息"
                    });
                }

                IQueryable <CommodityOrder> query = CommodityOrder.ObjectSet().Where(n => (n.State == 1 || n.State == 11) && n.IsDel != 1 && n.IsDel != 3);

                var commodityorderListCount = (from r in managerInfo
                                               join t in AppOrderPickUp.ObjectSet() on r equals t.SelfTakeStationId
                                               join p in query on t.Id equals p.Id
                                               select t.Id).Count();

                if (commodityorderListCount != 0)
                {
                    return(new ResultDTO <int> {
                        Data = commodityorderListCount, ResultCode = 0, Message = "sucess"
                    });
                }
                else
                {
                    return new ResultDTO <int> {
                               Data = 0, ResultCode = -2, Message = "订单数量为0"
                    }
                };
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("BTPUserSV.GetSelfTakeManagerExt获取待自提订单数量异常。userId:{0},ex:{1}", userId, ex));
                return(new ResultDTO <int> {
                    Data = 0, ResultCode = -3, Message = "Exception"
                });
            }
        }
Example #14
0
 /// <summary>
 /// 整单退款时调用
 /// </summary>
 /// <param name="order"></param>
 /// <param name="oldState"></param>
 /// <param name="refund"></param>
 public static ResultDTO OnOrderRefund(CommodityOrder order, int oldState, OrderRefund refund)
 {
     // 网易严选和其他第三方电商只有在未发货时支持整单退款
     if (oldState == 1)
     {
         return(ThirdECommerceHelper.CancelOrder(order));
     }
     return(new ResultDTO {
         isSuccess = true
     });
 }
Example #15
0
        public static bool CheckPayType(CommodityOrder commodityOrder)
        {
            var paySources = PaySource.GetPaymentByTradeType(0);

            if (paySources.Contains(commodityOrder.Payment))
            {
                return(true);
            }
            LogHelper.Warn("担保交易(金币)支付,生成结算单失败,该订单:[" + commodityOrder.Id + "]非担保交易。");
            return(false);
        }
Example #16
0
        /// <summary>
        /// 售中退款时,回退用户易捷币和易捷抵用券
        /// </summary>
        public static ResultDTO OrderRefund(ContextSession contextSession, CommodityOrder commodityOrder, OrderRefund orderRefund, decimal commodityPrice, Guid useryjcouponid)
        {
            if (commodityOrder.EsAppId != Jinher.AMP.YJB.Deploy.CustomDTO.YJBConsts.YJAppId)
            {
                return(ResultDTO.Successed);
            }

            //var result = YJBSV.RefundAllOrderJournal(commodityOrder.Id);
            //if (!result.IsSuccess)
            //{
            //    LogHelper.Error("售中退款时,回退用户易捷币失败,订单ID:" + commodityOrder.Id + ",错误内容:" + result.Message);
            //    LogOrderErrorInfo(contextSession, commodityOrder, "售中退款时,回退用回退用户易捷币失败户易捷币");
            //}
            //return result;
            #region 记录抵用券退款明细表
            var orderitemorder = (from i in OrderItem.ObjectSet()
                                  where commodityOrder.Id == i.CommodityOrderId
                                  select i).ToList();
            var user = CBCSV.GetUserNameAndCode(commodityOrder.UserId);
            foreach (var item in orderitemorder)
            {
                CouponRefundDetail couponRefundDetailDTO = new CouponRefundDetail();
                couponRefundDetailDTO.Id                   = Guid.NewGuid();
                couponRefundDetailDTO.SubTime              = DateTime.Now;
                couponRefundDetailDTO.ModifiedOn           = DateTime.Now;
                couponRefundDetailDTO.RefundTime           = DateTime.Now;
                couponRefundDetailDTO.ReceiveAccount       = user != null ? user.Item2 : "";
                couponRefundDetailDTO.ReceiveName          = user != null ? user.Item1 : "";
                couponRefundDetailDTO.CommodityCouponMoney = commodityPrice;
                couponRefundDetailDTO.FreightCouponMoney   = 0;
                couponRefundDetailDTO.CommodityRefundMoney = orderRefund.RefundMoney;
                couponRefundDetailDTO.FreightRefundMoney   = orderRefund.RefundFreightPrice;
                couponRefundDetailDTO.RefundTotalMoney     = commodityPrice + orderRefund.RefundMoney + orderRefund.RefundFreightPrice;
                couponRefundDetailDTO.ShopName             = commodityOrder.AppName;
                couponRefundDetailDTO.OrderNo              = commodityOrder.Code;
                couponRefundDetailDTO.CommoidtyName        = item.Name;
                couponRefundDetailDTO.ReceivePhone         = commodityOrder.ReceiptPhone;
                couponRefundDetailDTO.ConsigneeName        = commodityOrder.ReceiptUserName;
                couponRefundDetailDTO.Remark               = "";
                couponRefundDetailDTO.EntityState          = System.Data.EntityState.Added;

                contextSession.SaveObject(couponRefundDetailDTO);
            }
            contextSession.SaveChanges();
            #endregion
            var mobile = user != null ? user.Item2 : "";
            var result = YJBSV.RefundOrderJournal(commodityOrder.Id, orderRefund.RefundYJBMoney, commodityPrice, mobile, commodityOrder.UserId, useryjcouponid);
            if (!result.IsSuccess)
            {
                LogHelper.Error("售中退款时,回退用户易捷币失败,订单ID:" + commodityOrder.Id + ",错误内容:" + result.Message);
                LogOrderErrorInfo(contextSession, commodityOrder, "售中退款时,回退用回退用户易捷币失败户易捷币");
            }
            return(result);
        }
Example #17
0
        /// <summary>
        /// 获取发票历史数据
        /// </summary>
        /// <param name="appId"></param>
        /// <param name="userId"></param>
        /// <param name="category">发票类型 1:增值税专用发票,2:电子发票,4:增值税专用发票</param>
        /// <returns></returns>
        public Deploy.CustomDTO.ResultDTO <List <InvoiceInfoDTO> > GetInvoiceInfoListExt(Guid appId, Guid userId, int category)
        {
            LogHelper.Debug("开始进入获取发票历史数据接口GetInvoiceInfoList:appId:" + appId + ",userId:" + userId + ",category:" + category);
            if (appId == null || userId == null || userId == Guid.Empty || appId == Guid.Empty)
            {
                return new ResultDTO <List <InvoiceInfoDTO> >()
                       {
                           isSuccess = false, Message = "参数为空"
                       }
            }
            ;
            //判断appId是否是馆 是的话获取所有的入驻app集合 不是的话只获取当前app下的发票集合
            var appids = TPS.ZPHSV.Instance.GetAppIdlist(new List <Guid>()
            {
                appId
            }).Select(t => t.AppId).ToList();

            appids.Add(appId);

            List <InvoiceInfoDTO> resultDto = new List <InvoiceInfoDTO>();

            var temp = (from c in CommodityOrder.ObjectSet()
                        join i in Invoice.ObjectSet() on c.Id equals i.CommodityOrderId
                        where appids.Contains(c.AppId) && i.SubId == userId && i.Category == category && i.InvoiceType == 2
                        orderby i.SubTime descending
                        select i).Distinct();

            LogHelper.Debug("开始进入获取发票历史数据接口GetInvoiceInfoList:temp:" + JsonHelper.JsSerializer(temp));

            foreach (var invoice in temp)
            {
                InvoiceInfoDTO rInfoDto = new InvoiceInfoDTO
                {
                    Id           = invoice.Id,
                    InvoiceTitle = invoice.InvoiceTitle,
                    Code         = invoice.Code,
                    SubTime      = invoice.SubTime
                };

                var tem = resultDto.Where(t => t.InvoiceTitle == invoice.InvoiceTitle && t.Code == invoice.Code);
                if (!tem.Any())
                {
                    resultDto.Add(rInfoDto);
                }
            }

            return(new ResultDTO <List <InvoiceInfoDTO> >
            {
                isSuccess = true,
                Data = resultDto.OrderByDescending(t => t.SubTime).ToList()
            });
        }
    }
Example #18
0
        public async Task <IActionResult> CommditiesOrderCreate(CommoditiesOrderViewModel commoditiesorder)
        {
            var commodities       = _context.Commoditys.Single(x => x.Id == commoditiesorder.commoditiesid);
            var commoditiesorders = new CommodityOrder {
                Commoditys = commodities, Name = commoditiesorder.Name, Number = commoditiesorder.Number, Remarks = commoditiesorder.Remarks, SaleStates = commoditiesorder.SaleStates, CommoditysId = commodities.Id, OrderStatus = true
            };

            _context.CommodityOrders.Add(commoditiesorders);
            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
Example #19
0
 /// <summary>
 /// 整单退款时调用(售后)
 /// </summary>
 /// <param name="order"></param>
 /// <param name="orderItrefundem"></param>
 public static ResultDTO OnOrderRefundAfterSales(CommodityOrder order, OrderRefundAfterSales refund)
 {
     // 判断严选订单
     if (ThirdECommerceHelper.IsWangYiYanXuan(order.AppId))
     {
         return(new ResultDTO {
             isSuccess = false, ResultCode = 1, Message = "该订单不支持整单退款,请选择单品退款~"
         });
     }
     return(new ResultDTO {
         isSuccess = true
     });
 }
Example #20
0
 /// <summary>
 /// 单品退款时调用(售前)
 /// </summary>
 /// <param name="order"></param>
 /// <param name="orderItem"></param>
 /// <param name="refund"></param>
 public static ResultDTO OnOrderItemRefund(CommodityOrder order, OrderItem orderItem, OrderRefund refund)
 {
     // 判断严选订单
     if (ThirdECommerceHelper.IsWangYiYanXuan(order.AppId))
     {
         return(new ResultDTO {
             isSuccess = false, ResultCode = 1, Message = "确认收货后才能申请售后~"
         });
     }
     return(new ResultDTO {
         isSuccess = true
     });
 }
Example #21
0
 /// <summary>
 /// 取消整单退款时调用
 /// </summary>
 /// <param name="order"></param>
 /// <param name="refund"></param>
 public static ResultDTO OnCancelOrderRefund(CommodityOrder order, OrderRefund refund)
 {
     // 判断严选订单
     if (ThirdECommerceHelper.IsWangYiYanXuan(order.AppId))
     {
         return(new ResultDTO {
             ResultCode = 1, Message = "不支持整单取消退款。"
         });
     }
     return(new ResultDTO {
         isSuccess = true
     });
 }
Example #22
0
        /// <summary>
        /// 获取众销统计信息
        /// </summary>
        /// <param name="search">查询类</param>
        /// <returns>结果</returns>
        public Jinher.AMP.BTP.Deploy.CustomDTO.ShareOrderMoneySumDTO GetShareOrderMoneySumInfoExt(Jinher.AMP.BTP.Deploy.CustomDTO.ShareOrderMoneySumSearchDTO search)
        {
            if (search == null || search.UseId == Guid.Empty || search.AppId == Guid.Empty)
            {
                return(null);
            }
            Jinher.AMP.BTP.Deploy.CustomDTO.ShareOrderMoneySumDTO result = new ShareOrderMoneySumDTO();

            //售中待收益
            var orderStates = new List <int>()
            {
                1, 2, 8, 9, 10, 12, 13, 14
            };
            //售后待收益
            var orderAfterStates = new List <int>()
            {
                3, 5, 10, 12, 13
            };

            //佣金总数(已收益佣金)
            var sumInfo = (from orderShare in OrderShare.ObjectSet()
                           join order in CommodityOrder.ObjectSet()
                           on orderShare.OrderId equals order.Id
                           join dataS in CommodityOrderService.ObjectSet()
                           on orderShare.OrderId equals dataS.Id
                           into tempS
                           from orderService in tempS.DefaultIfEmpty()
                           where
                           orderShare.PayeeId == search.UseId && orderShare.PayeeType == search.PayeeType && orderShare.Commission > 0 &&
                           order.EsAppId == search.AppId && order.State == 3 && orderService.State == 15
                           select orderShare.Commission).ToList().Sum();

            //待收益佣金总数
            var sumUnPayInfo = (from orderShare in OrderShare.ObjectSet()
                                join order in CommodityOrder.ObjectSet()
                                on orderShare.OrderId equals order.Id
                                join dataS in CommodityOrderService.ObjectSet()
                                on orderShare.OrderId equals dataS.Id
                                into tempS
                                from orderService in tempS.DefaultIfEmpty()
                                where
                                orderShare.PayeeId == search.UseId && orderShare.PayeeType == search.PayeeType && orderShare.Commission > 0 &&
                                order.EsAppId == search.AppId && (orderStates.Contains(order.State) ||
                                                                  order.State == 3 && orderService.State != null && orderAfterStates.Contains(orderService.State))
                                select orderShare.Commission).ToList().Sum();

            result.CommissionAmount = sumInfo;
            result.CommmissionUnPay = sumUnPayInfo;

            return(result);
        }
Example #23
0
        /// <summary>
        /// 售后完成渠道打积分
        /// </summary>
        /// <param name="contextSession"></param>
        /// <param name="commodityOrder"></param>
        /// <param name="commodityOrderService"></param>
        /// <returns></returns>
        public static bool ChannelShareSaleGiveScore(ContextSession contextSession, CommodityOrder commodityOrder, CommodityOrderService commodityOrderService)
        {
            if (!commodityOrder.EsAppId.HasValue)
            {
                return(true);
            }
            //使用了积分
            if (commodityOrder.ChannelShareMoney > 0)
            {
                //取商货众销的收款人
                var shareModel = OrderShare.ObjectSet().FirstOrDefault(t => t.OrderId == commodityOrder.Id && t.PayeeType == 12);

                //没有收款人
                if (shareModel == null || shareModel.PayeeId == Guid.Empty)
                {
                    LogHelper.Error(string.Format("售后完成渠道打积,找不到收款人。OrderId:{0}", commodityOrder.Id));
                    return(false);
                }
                //获取当时的积分比例
                CostScoreInfoDTO scoreCostDto;
                if (new ScoreSV().GetScoreCost(commodityOrder.EsAppId.Value, out scoreCostDto, commodityOrder.SubTime))
                {
                    int  srore             = (int)(commodityOrder.ChannelShareMoney * scoreCostDto.Cost);
                    bool refundScoreResult = Instance.GiveScoreBtpShare(shareModel.PayeeId, commodityOrder.EsAppId.Value, srore, commodityOrder.Id, commodityOrder.Code, ScoringType.BtpChannelBrokerage, commodityOrder.ChannelShareMoney, scoreCostDto.Cost, scoreCostDto.ScoreType);
                    if (!refundScoreResult)
                    {
                        LogHelper.Error(string.Format("售后完成渠道打积分失败。UserId:{0},AppId:{1},srore:{2},OrderId:{3}", shareModel.PayeeId, commodityOrder.AppId, srore, commodityOrder.Id));
                        ErrorCommodityOrder errorOrder = new ErrorCommodityOrder
                        {
                            Id           = Guid.NewGuid(),
                            ErrorOrderId = commodityOrder.Id,
                            ResourceType = 6,
                            Source       = 3,
                            State        = 0,
                            AppId        = commodityOrder.EsAppId.Value,
                            UserId       = shareModel.PayeeId,
                            OrderCode    = commodityOrder.Code,
                            CouponId     = Guid.Empty,
                            Score        = srore,
                            SubTime      = DateTime.Now,
                            ModifiedOn   = DateTime.Now,
                            ScoreType    = (int)scoreCostDto.ScoreType,
                            EntityState  = System.Data.EntityState.Added
                        };
                        contextSession.SaveObject(errorOrder);
                    }
                    return(refundScoreResult);
                }
            }
            return(true);
        }
Example #24
0
        /// <summary>
        /// 取消订单时回退积分
        /// </summary>
        /// <param name="contextSession"></param>
        /// <param name="commodityOrder"></param>
        /// <returns></returns>
        public static bool CommodityOrderCancelSrore(ContextSession contextSession, CommodityOrder commodityOrder)
        {
            if (!commodityOrder.EsAppId.HasValue)
            {
                return(true);
            }
            //获取下订单时用的积分金额
            var sroreMoney = OrderPayDetail.ObjectSet().Where(t => t.OrderId == commodityOrder.Id && t.ObjectType == 2 && t.Amount > 0).Select(t => t.Amount).FirstOrDefault();

            if (sroreMoney <= 0)
            {
                return(true);
            }
            //获取当时的积分汇率
            CostScoreInfoDTO scoreCostDto;
            bool             isscsc = new ScoreSV().GetScoreCost(commodityOrder.EsAppId.Value, out scoreCostDto, commodityOrder.SubTime);

            if (!isscsc)
            {
                return(true);
            }
            int  srore             = (int)(sroreMoney * scoreCostDto.Cost);
            bool refundScoreResult = Instance.RefundScore(commodityOrder.UserId, commodityOrder.EsAppId.Value, srore, commodityOrder.Id, commodityOrder.Code, scoreCostDto.ScoreType);

            if (refundScoreResult)
            {
                return(refundScoreResult);
            }

            LogHelper.Error(string.Format("取消订单时回退积分失败。UserId:{0},EsAppId:{1},srore:{2}", commodityOrder.UserId, commodityOrder.EsAppId.Value, srore));
            ErrorCommodityOrder errorOrder = new ErrorCommodityOrder();

            errorOrder.Id           = Guid.NewGuid();
            errorOrder.ErrorOrderId = commodityOrder.Id;
            errorOrder.ResourceType = 1;
            errorOrder.Source       = commodityOrder.State;
            errorOrder.State        = 0;
            errorOrder.AppId        = commodityOrder.EsAppId.Value;
            errorOrder.UserId       = commodityOrder.UserId;
            errorOrder.OrderCode    = commodityOrder.Code;
            errorOrder.CouponId     = Guid.Empty;
            errorOrder.Score        = srore;
            errorOrder.SubTime      = DateTime.Now;
            errorOrder.ModifiedOn   = DateTime.Now;
            errorOrder.ScoreType    = (int)scoreCostDto.ScoreType;
            errorOrder.EntityState  = System.Data.EntityState.Added;
            contextSession.SaveObject(errorOrder);
            return(refundScoreResult);
        }
Example #25
0
        /// <summary>
        /// 保存打印发货单
        /// </summary>
        /// <param name="orders"></param>
        public ResultDTO SavePrintInvoiceOrdersExt(UpdatePrintDTO orders)
        {
            try
            {
                if (orders == null || orders.Orders == null || orders.Orders.Count == 0)
                {
                    return new ResultDTO()
                           {
                               ResultCode = 1, Message = "参数错误,参数不能为空!"
                           }
                }
                ;

                var tempOrderIds = orders.Orders.Select(r => r.OrderId).ToList();
                var newOrders    = (from n in CommodityOrder.ObjectSet()
                                    join o in tempOrderIds on n.Id equals o
                                    select n).ToList();


                if (newOrders == null || newOrders.Count == 0)
                {
                    return new ResultDTO()
                           {
                               ResultCode = 1, Message = "数据错误"
                           }
                }
                ;

                //记录打印日志,延迟提交库
                RecordPrintLog(newOrders, orders);

                if (ContextFactory.CurrentThreadContext.SaveChanges() > 0)
                {
                    return new ResultDTO()
                           {
                               ResultCode = 0, Message = "保存成功"
                           }
                }
                ;
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("保存打印发货单。SavePrintInvoiceOrdersExt:{0}", JsonHelper.JsonSerializer(orders)), ex);
            }
            return(new ResultDTO()
            {
                ResultCode = 1, Message = "保存失败"
            });
        }
Example #26
0
        /// <summary>
        ///  创建订单失败时,回退用户易捷币
        /// </summary>
        public static ResultDTO CreateOrderFail(ContextSession contextSession, CommodityOrder commodityOrder)
        {
            if (commodityOrder.EsAppId != Jinher.AMP.YJB.Deploy.CustomDTO.YJBConsts.YJAppId)
            {
                return(ResultDTO.Successed);
            }
            var result = YJBSV.CancelOrderJournal(commodityOrder.Id);

            if (!result.IsSuccess)
            {
                LogHelper.Error("创建订单失败时,回退用户易捷币失败,订单ID:" + commodityOrder.Id + ",错误内容:" + result.Message);
                LogOrderErrorInfo(contextSession, commodityOrder, "创建订单失败时,回退用户易捷币");
            }
            return(result);
        }
Example #27
0
 /// <summary>
 /// 添加退货物流信息时调用(售后)
 /// </summary>
 public static ResultDTO OnOrderRefundOfferExpress(CommodityOrder order, OrderRefundAfterSales refund, string trackingCompany, string trackingNum)
 {
     // 判断严选订单
     if (ThirdECommerceHelper.IsWangYiYanXuan(order.AppId))
     {
         return(YXSV.ExpressOfferRefundOrder(refund.ApplyId, new List <ExpressInfo> {
             new ExpressInfo {
                 trackingCompany = trackingCompany, trackingNum = trackingNum
             }
         }));
     }
     return(new ResultDTO {
         isSuccess = true
     });
 }
Example #28
0
        /// <summary>
        /// 第三方电商取消订单申请
        /// </summary>
        /// <param name="order"></param>
        /// <returns></returns>
        public static ResultDTO CancelOrder(CommodityOrder order)
        {
            var type = GetAppThirdECommerceType(order.AppId);

            if (type == ThirdECommerceTypeEnum.WangYiYanXuan && YXOrderHelper.IsYXOrder(order.Id))
            {
                return(YXOrderRefundHelper.CancelPaidOrder(order));
            }
            else if (type == ThirdECommerceTypeEnum.ByBiaoZhunJieKou && ThirdECommerceOrderHelper.IsThirdECOrder(order.Id))
            {
                return(ThirdECommerceOrderHelper.CancelOrder(order.Id));
            }
            return(new ResultDTO {
                isSuccess = true
            });
        }
Example #29
0
        /// <summary>
        /// 第三方电商取消售后服务申请
        /// </summary>
        /// <param name="order"></param>
        /// <param name="orderItem"></param>
        /// <param name="refund"></param>
        /// <returns></returns>
        public static ResultDTO CancelService(CommodityOrder order, OrderItem orderItem, OrderRefundAfterSales refund)
        {
            var type = GetAppThirdECommerceType(order.AppId);

            if (type == ThirdECommerceTypeEnum.WangYiYanXuan)
            {
                return(YXSV.CancelRefundOrder(refund.ApplyId));
            }
            else if (type == ThirdECommerceTypeEnum.ByBiaoZhunJieKou)
            {
                return(ThirdECommerceServiceHelper.CancelService(order.AppId, order.Id, refund.Id));
            }
            return(new ResultDTO {
                isSuccess = true
            });
        }
Example #30
0
        /// <summary>
        /// 妥投后自动确认收货
        /// </summary>
        /// <param name="orderId"></param>
        private void ConfirmOrder(Guid orderId)
        {
            var order = CommodityOrder.ObjectSet().FirstOrDefault(p => p.Id == orderId);

            if (order == null)
            {
                LogHelper.Error("进销存-妥投后自动确认收货:未找到订单,入参:" + orderId);
                return;
            }
            var result = new CommodityOrderSV().UpdateCommodityOrderExt(3, orderId, order.SubId, order.AppId, order.Payment, string.Empty, string.Empty);

            if (result.ResultCode != 0)
            {
                LogHelper.Error("进销存-妥投后自动确认收货失败:" + result.Message + ",入参:" + orderId);
            }
        }