Exemple #1
0
        private static void SuccessfulGroupBuyProcess(ProductGroupBuyingEntity group, JobContext context)
        {
            List <GroupBuyItemEntity> GroupBuyItemList = GroupBuyProcessDA.GetGroupBuyItems(group.SystemNumber);

            if (GroupBuyItemList == null || GroupBuyItemList.Count == 0)
            {
                Console.WriteLine("没有团购商品");
            }

            Console.WriteLine(string.Format("团购号:{0}", group.SystemNumber));

            foreach (GroupBuyItemEntity groupBuyItem in GroupBuyItemList)
            {
                Console.WriteLine(string.Format("订单:{0},商品{1}", groupBuyItem.SOSysNo, groupBuyItem.ProductSysNo));

                int ItemExSysNo   = groupBuyItem.SysNo;
                int soSysNo       = groupBuyItem.SOSysNo;
                int groupBuySysNo = groupBuyItem.ReferenceSysNo;
                int productSysNo  = groupBuyItem.ProductSysNo;
                //更新订单
                try
                {
                    //修改团购商品价格
                    UpdateSO(soSysNo, groupBuySysNo, productSysNo);

                    //修改团购Item状态
                    UpdateItemSettlementStatus(ItemExSysNo, "S");
                }
                catch (Exception ex)
                {
                    UpdateItemSettlementStatus(ItemExSysNo, "F");
                    UpdateSOGroupBuyStatus(soSysNo, "F");
                    context.Message += ex.ToString();
                    Dealfault(ex);
                    continue;
                }
            }


            if (group.Status == "F")
            {
                EndGroupBuying(group.SystemNumber);
            }
        }
Exemple #2
0
 public static bool IsPartlyFail(int soSysNo)
 {
     return(GroupBuyProcessDA.IsPartlyFail(soSysNo));
 }
Exemple #3
0
 public static bool IsOnlyHaveFailItem(int soSysNo, int productSysNo)
 {
     return(GroupBuyProcessDA.IsOnlyHaveFailItem(soSysNo, productSysNo));
 }
Exemple #4
0
 public static bool IsItemAllSettled(int soSysNo)
 {
     return(GroupBuyProcessDA.IsItemAllSettled(soSysNo));
 }
Exemple #5
0
 public static int UpdateItemSettlementStatus(int itemSysNo, string settlementStatus)
 {
     return(GroupBuyProcessDA.UpdateItemSettlementStatus(itemSysNo, settlementStatus));
 }
Exemple #6
0
        /// <summary>
        /// 处理团购
        /// </summary>
        public static void Process(JobContext context)
        {
            GetConfig();

            List <int> soList = GroupBuyProcessDA.GetSOSysNosNeedMark();

            if (soList != null)
            {
                foreach (int soSysNo in soList)
                {
                    Console.WriteLine(string.Format("订单:{0}", soSysNo));
                    try
                    {
                        //获取所有Item
                        List <GroupBuyItemEntity> items = GroupBuyProcessDA.GetGroupBuyItemBySOSysNo(soSysNo);

                        if (items == null || items.Count == 0)
                        {
                            continue;
                        }

                        //如果含有未处理的Item就过
                        if (items.Exists(x => x.ReferenceSysNo != 0 && string.IsNullOrEmpty(x.SettlementStatus)))
                        {
                            continue;
                        }
                        //如果含有F
                        else if (items.Exists(x => x.SettlementStatus == "F"))
                        {
                            //更新Checkshipping
                            UpdateSOGroupBuyStatus(soSysNo, "F");
                        }
                        //如果含有P
                        else if (items.Exists(x => x.SettlementStatus == "P"))
                        {
                            //只含P,作废
                            if (!items.Exists(x => x.SettlementStatus != "P"))
                            {
                                if (ExistsNetPay(soSysNo))
                                {
                                    AuditNetPay(soSysNo);

                                    CreateAO(soSysNo);
                                }

                                AbandonSO(soSysNo);
                            }
                            //还有其他商品
                            else
                            {
                                //更新Checkshipping
                                UpdateSOGroupBuyStatus(soSysNo, "P");
                            }
                        }
                        //全S
                        else if (!items.Exists(x => x.ReferenceSysNo != 0 && x.SettlementStatus != "S"))
                        {
                            //审核NetPay
                            if (ExistsNetPay(soSysNo))
                            {
                                AuditNetPay(soSysNo);
                            }

                            //修改CheckShippingSettlement
                            UpdateSOGroupBuyStatus(soSysNo, "S");
                        }
                    }
                    catch (Exception ex)
                    {
                        UpdateSOGroupBuyStatus(soSysNo, "F");

                        context.Message += ex.ToString();
                        Dealfault(ex);
                        continue;
                    }
                }
            }
        }