Exemple #1
0
 public JsonResult MakeRenwuWithBiao(MakeRenwuWithBiaoPostModel model)
 {
     var result = new MakeRenwuWithBiaoPostResult();
     using (var db = DbContextFactory.CreateDbContext())
     {
         Xiake xiake;
         TokenXCodeValidation.Validate(model, db, out xiake);
         var biao = db.Biaos.FirstOrDefault(a => a.Id == model.BiaoId);
         var biaoshi = db.Biaoshis.FirstOrDefault(a => a.Id == model.BiaoshiID);
         var renwu = new Renwu()
         {
             CreateTime = DateTime.Now,
             RunTime = biao.PlanTime,
             Biaoju = xiake,
             Biao = biao,
             Biaoshi = biaoshi 
         };
         db.Renwus.Add(renwu);
         db.SaveChanges();
         result.RunningTime = renwu.RunTime;
         result.BangpaiType = biaoshi.Bangpai;
         result.SearchWord = biao.SearchWord;
         result.Price = biao.Price;
         result.BiaoshiName = biaoshi.Title;
         result.ID = renwu.Id;
     }
     return new JsonResult() { Data = result };
 }
        public void DoAllow (long[] ids)
        {
            using(var db = DbContextFactory.CreateDbContext())
            {

                var xiake = db.Xiakes.FirstOrDefault(a => a.XiakeName == System.Threading.Thread.CurrentPrincipal.Identity.Name);
                if (xiake.UserType != XiakeType.Zhanggui)
                    throw new FaultException("非掌柜不可以核准");

                var vals =  db.Validations
                    .Include(a=>a.Biaoshi)
                    .Include(a=>a.Zhanggui)
                    .Include(a=>a.Biao )
                    .Include(a=>a.Biaoshi.Biaoju) 
                    .Where(a => ids.Contains(a.Id))
                    .ToArray();
                var renwus = new List<RenwuData>();
                foreach(var item in vals)
                {
                    if(item.Zhanggui != xiake)
                        throw new FaultException("别人的镖不可以核准");
                    var s = RunningStepsData.MakeDataWithString(item.Biao.Steps);
                    var renwu = new Renwu()
                    { 
                        RunTime = item.Biao.CreateTime ,
                        Biaoju = item.Biaoshi.Biaoju,
                        Biao = item.Biao,
                        Biaoshi = item.Biaoshi,
                        Bangpai = item.Biaoshi.Bangpai,
                        NextStep = s.JubenDayDatas[0].Juben,
                        Steps = item.Biao.Steps,
                        IsDisabled = false,
                        DaysForCurStep = s.JubenDayDatas[0].Days

                    };
                    db.Renwus.Add(renwu);

                    
                     var rendata =  new RenwuData()
                    {
                        RunningTime = renwu.RunTime,
                        BangpaiType = item.Biaoshi.Bangpai,
                        SearchWord = item.Biao.SearchWord,
                        Price = item.Biao.Price,
                        BiaoshiName = item.Biaoshi.Title ,
                        ID = renwu.Id,
                        BiaojuId = item.Biaoshi.Biaoju.Id,
                        NextStep = renwu.NextStep 
                    };
                    renwus.Add(rendata);
                    db.Validations.Remove(item);
                }
                db.SaveChanges();
                
                mMasterServiceProxy.PushRenwu(renwus.ToArray());
            }
        }
Exemple #3
0
        public RenwuData MakeRenwuWithBiao(long biaoId, long biaoshiID)
        {
            using (var db = DbContextFactory.CreateDbContext())
            {
                var xiake = db.Xiakes.Include(a => a.Credits).FirstOrDefault(a => a.XiakeName == Thread.CurrentPrincipal.Identity.Name);
                if(xiake.UserType != XiakeType.Biaoju)
                    throw new FaultException("非镖局账号不可接镖");
                var biao = db.Biaos.Include(a=>a.Zhanggui).Include(a=>a.Dianpu).FirstOrDefault(a => a.Id == biaoId);
                if(biao.Finished + biao.Running >= biao.PlanCount)
                   throw new FaultException("Sorry, 此镖已被抢光了!"); 
                var steps = RunningStepsData.MakeDataWithString(biao.Steps);
                var biaoshi = db.Biaoshis.FirstOrDefault(a => a.Id == biaoshiID && a.Biaoju.Id == xiake.Id);
                if(biaoshi == null)
                    throw new FaultException("您的帐号下未找到相应镖师");

                var renwu = new Renwu()
                { 
                    RunTime = DateTime.Now,
                    Biaoju = xiake,
                    Biao = biao,
                    Biaoshi = biaoshi,
                    Steps = biao.Steps,
                    NextStep =  steps.JubenDayDatas[0].Juben,
                    Bangpai = biao.Bangpai ,
                    IsDisabled = false,
                    DaysForCurStep = steps.JubenDayDatas[0].Days
                };
                biao.Running += 1;

                var set = ConfigSettings.GetConfigSettings(db.Settingses.FirstOrDefault().ConfigData);
                xiake.Credits.FreeCredits -= set.CreditsPolicySet.SpendForTakeBiao;
                if(xiake.Credits.FreeCredits <0)
                    throw new FaultException("您的余额不足,不可以获取此镖");

                if(biao.YqCheckRegDate == true && biaoshi.RegisterTime == null)
                {
                    throw new FaultException("此镖要求验证镖师的注册时间,而您选择的镖师还未验证注册时间; 请等待系统验证!");
                }
                if(biao.YqCheckRegDate == true && ( biaoshi.RegisterTime> biao.YqRegisterDate))
                {
                    throw new FaultException("镖师的注册时间不符合此镖的要求,您可选择其他镖师再试");
                }

                if(set.LawSet.HoursForRejectSameBiaoshi != 0)
                {
                    var tm = DateTime.Now.AddHours(-set.LawSet.HoursForRejectSameBiaoshi);
                    var isrenwu = db.Renwus.Any(a => a.Biaoshi.Id == biaoshiID && a.CreateTime > tm);
                    if(isrenwu)
                        throw new FaultException(string.Format( "禁止同一镖师在{0}小时里再次取镖,您可切换镖师再试!", set.LawSet.HoursForRejectSameBiaoshi));
                    var isval = db.Validations.Any(a => a.Biaoshi.Id == biaoshiID && a.CreateTime > tm);
                    if (isval)
                        throw new FaultException(string.Format("禁止同一镖师在{0}小时里再次取镖,您可切换镖师再试!", set.LawSet.HoursForRejectSameBiaoshi));

                }
                if (db.Renwus.Any(a=>a.Biao.Id == biaoId && a.Biaoshi.Id == biaoshiID))
                { 
                    throw new FaultException(string.Format("此镖师已经取过此镖了。")); 
                }

                if(biao.RejectOneBiaoju )
                {
                    var ccc = db.Renwus.Any(a => a.Biaoju.Id == xiake.Id &&  a.Biao.Zhanggui.Id == biao.Zhanggui.Id   );
                    if(ccc == true)
                    {
                        throw new FaultException(string.Format("此镖被设置为禁止老客户参加,您已经做过")); 
                    }
                }

                if(biao.AllowXiakeType == AllowXiakeType.JustNew)
                {
                    if(db.Renwus.Any(a => a.Biaoshi.Id == biaoshiID && a.Biao.Zhanggui.Id == biao.Zhanggui.Id))
                    {
                        throw new FaultException(string.Format("此镖被设置为禁止老客户参加,您已经做过")); 
                    }
                }
                if(biao.AllowXiakeType == AllowXiakeType.JustOld)
                {
                    if(biao.MaxFinishDaysForOldCustomer > 0)
                    {
                         var tm = DateTime.Now.AddDays(- biao.MaxFinishDaysForOldCustomer);
                        if (!db.Renwus.Any(a => a.Biaoshi.Id == biaoshiID &&  a.Biao.Dianpu.Id == biao.Dianpu.Id && a.NextStep == null && a.Biao.Id != biaoId && a.FinishTime <= tm  ))
                        {
                            throw new FaultException(string.Format("Sorry, 此镖被设置为仅老客户参加。"));
                        }
                    } else
                    {
                        if (!db.Renwus.Any(a => a.Biaoshi.Id == biaoshiID && a.Biao.Dianpu.Id == biao.Dianpu.Id  ))
                        {
                            throw new FaultException(string.Format("Sorry, 此镖被设置为仅老客户参加。"));
                        }
                    }

                }
               
                db.Renwus.Add(renwu);

                try
                {
                    db.SaveChanges();
                } catch(DbUpdateConcurrencyException)
                {
                    return MakeRenwuWithBiao(biaoId, biaoshiID);
                } catch(Exception e)
                {
                    
                }
                
                if(biao.Running + biao.Finished == biao.PlanCount)
                { 
                        mMasterServiceProxy.PushBiaoCancelMessage(biao.Id); 
                }

                if(set.CreditsPolicySet.SpendForTakeBiao > 0)
                {
                    mMasterServiceProxy.PushCreditsChangeMessage( xiake.Id, xiake.Credits.FreeCredits, xiake.Credits.FreezeCredits);
                }
                mMasterServiceProxy.PushBiaoCountChangedMessage(biao.Zhanggui.Id,biao.Id, biao.Running, biao.Finished);
                
                return new RenwuData()
                {
                     RunningTime = renwu.RunTime,
                     BangpaiType = biaoshi.Bangpai,
                     SearchWord = biao.SearchWord,
                     Price = biao.Price,
                     BiaoshiName = biaoshi.Title,
                     ID = renwu.Id,
                     BiaojuId = xiake.Id,
                     NextStep = renwu.NextStep,
                     NewFreezeCredits = xiake.Credits.FreezeCredits,
                     Steps = renwu.Steps,
                     Salary = biao.Salary,
                     

                };
                
            }
        }
Exemple #4
0
        public void RenwuTest10 ()
        {
            //注册和登录掌柜
            var zg = LoginService.XiakeJoin(XiakeNames.ZG_NAME, "ok1234", "111111", "*****@*****.**", "22222222",
                XiakeType.Zhanggui,"");
            Login(XiakeNames.ZG_NAME);

            //添加店铺
            var dpid = DianpuService.AddDianpu(BangpaiType.Taobao, "http://1234.taobao.com", "匹克");

            //发布镖-拒绝不同镖师接同一店铺任务
            var steps = "刷单@2=1;1=2;3=3";
            var b1id = BiaoService.PublishBiao(dpid, "abc", 32, 3, "hello", 5, "sku", "hahaha", true, true,false,
                DateTime.Now, true, 38, 35, 333, steps, AllowXiakeType.Both, 0, false);

            var b2id = BiaoService.PublishBiao(dpid, "acccbc", 32, 3, "heddllo", 5, "sku", "hahafasdha", true, true,false,
                   DateTime.Now, true, 38, 35, 333, steps, AllowXiakeType.JustOld, 10, false);
            
            //注册和登录镖局
            var bj = LoginService.XiakeJoin(XiakeNames.BJ_NAME, "ok1234", "9999", "*****@*****.**", "342342",
                XiakeType.Biaoju,"");
            Login(XiakeNames.BJ_NAME);
            //创建镖师1
            var biaoshiId = BiaoshiService.AddBiaoshiByBiaoju(BangpaiType.Taobao, "hai");
             RenwuService.MakeRenwuWithBiao(b1id, biaoshiId);

            try
            {
                var rw2 = RenwuService.MakeRenwuWithBiao(b2id, biaoshiId);
                Assert.Fail("老客户完成10天的可做");
            }
            catch (AssertFailedException)
            {
                throw;
            }
            catch (FaultException)
            {

            }

            using(var db = DbContextFactory.CreateDbContext())
            {
                var biao = db.Biaos.FirstOrDefault(a => a.Id == b1id);
                var biaoju = db.Xiakes.FirstOrDefault(a => a.Id == bj.ID);
                var bs = db.Biaoshis.FirstOrDefault(a => a.Id == biaoshiId);
                var dt = DateTime.Now.AddDays(-10);
                var renwu = new Renwu()
                {
                    Biao = biao,
                    Bangpai = biao.Bangpai,
                    Biaoju = biaoju,
                    Biaoshi = bs,
                    FinishTime = dt,
                    RunTime = DateTime.Now,
                    NextStep = null ,
                    Steps = steps
                };
                db.Renwus.Add(renwu);
                db.SaveChanges();
            }
            try
            {
                var rw3 = RenwuService.MakeRenwuWithBiao(b2id, biaoshiId);
                
            } 
            catch (FaultException)
            {
                Assert.Fail("老客户完成10天的可做");
            }
        }
Exemple #5
0
        static void Main(string[] args)
        {
            Console.WriteLine("准备创建模拟数据,请先删除原始数据库,回车后继续...");
            Console.ReadLine();
            var db = DbContextFactory.CreateDbContext();

            #region 创建管理员帐号
            Console.WriteLine("请输入管理员帐号名称");
            var adminName = Console.ReadLine().Trim();
            var u_admin = new Xiake()
            { 
                Credits = new XiakeCredits(),
                IsAuthorized = true,
                IsFrozen = false,
                XiakeName = adminName,
                Password = "******",
                UserType = XiakeType.Mengzhu,
                Status = XiakeStatus.Enabled,
                QQ = "12345",
                Mail = "*****@*****.**",
                Tel = "18686225002",
                LastLoginTime = DateTime.Now
            };
            db.Xiakes.Add(u_admin);
            var inte = new InviteStorage() {Credits = 0, Xiake = u_admin};
            db.InviteStorages.Add(inte);
            Console.WriteLine("管理员帐号:admin password: ok1234 ");
            #endregion
            #region 创建服务器列表
            {
                Console.WriteLine("请输入服务器URL (net.tcp://xxx:1981/)");
                var url = Console.ReadLine();
                if(string.IsNullOrEmpty(url))
                    url = "net.tcp://*****:*****@qq.com",
                    Tel = "18686225003",
                    LastLoginTime = DateTime.Now 
                };
                db.Xiakes.Add(u_shop);
                var inte2 = new InviteStorage() {Credits = 0, Xiake = u_shop};
                db.InviteStorages.Add(inte2);
                Console.WriteLine("店铺帐号: shop1 , ok1234");
                #endregion
                #region 创建店铺
    {
                
                    //创建三个店铺
                    db.Dianpus.Add(new Dianpu()
                    { 
                        Bangpai= BangpaiType.Taobao,
                        Name="江山水货店",
                        Url="http://js.taobao.com",
                        Zhanggui= u_shop
                    });
                    db.Dianpus.Add(new Dianpu()
                    { 
                        Bangpai = BangpaiType.Taobao,
                        Name = "丽水山货店",
                        Url = "http://ls.taobao.com",
                        Zhanggui = u_shop
                    });
                    db.Dianpus.Add(new Dianpu()
                    {  
                        Bangpai = BangpaiType.Taobao,
                        Name = "温州水货店",
                        Url = "http://wz.taobao.com",
                        Zhanggui = u_shop
                    });
                }
                #endregion
                #region 创建一个刷手帐号
                var u_customer = new Xiake()
                { 
                    Credits = new XiakeCredits(),
                    IsAuthorized = true,
                    IsFrozen = false,
                    XiakeName = "customer",
                    Password = "******",
                    UserType = XiakeType.Biaoju,
                    Status = XiakeStatus.Enabled,
                    QQ = "123456",
                    Mail = "*****@*****.**",
                    Tel = "18686225003",
                    LastLoginTime = DateTime.Now 
              
                };
            
                    db.Xiakes.Add(u_customer);
                    var inte3 = new InviteStorage() { Credits = 0, Xiake = u_customer };
                    db.InviteStorages.Add(inte3);
                Console.WriteLine("刷手: custmoer , ok1234");
            
                #endregion
                #region 创建镖
                var appBiao = new Biao();
                {
                
                    var rundata = string.Format("{0}@{1:D}=1;{2:D}=2;{3:D}=3", "刷单", JubenType.TaobaoCollect , JubenType.TaobaoBuy, JubenType.TaobaoPay);
                    for(var i = 0; i < 120; i++)
                    {
                        var biao = new Biao()
                        {
                            Dianpu = u_shop.Dianpus.First(), 
                            GoodsId = "ASDFASDF321234ASDf",
                            PlanCount = 10,
                            Price = 10,
                            RealCount = 0,
                            Zhanggui = u_shop,
                         
                            Salary = 3,
                            SearchWord= "男 内衣 " + i.ToString(), 
                            Sku = "XL;红色",
                            YqBindPhone = true ,
                            YqBindSfz = false,
                            YqManualCheck = false,
                            YqMonthCount = 10,
                            YqRegisterDate= DateTime.Now,
                            YqUserLevel = 200,
                            YqWeekCount = 5,
                            Steps = rundata,
                            IsEnable = true,
                            Bangpai  = BangpaiType.Taobao,
                            AllowXiakeType = AllowXiakeType.Both
                        };
                        db.Biaos.Add(biao);
                        appBiao = biao;
                    }
                 
                }
                #endregion
                #region 创建镖师
                Biaoshi BS = null;
                {
                
                    for(var i = 0; i < 5; i++)
                    {
                         var biaoshi = new Biaoshi()
                        {
                            Biaoju = u_customer, 
                            Bangpai = BangpaiType.Taobao,
                            Title = "Hai" + i.ToString()
                        };
                        db.Biaoshis.Add(biaoshi);
                        BS = biaoshi;
                    } 
                }
                #endregion
            
                #region 创建帮助
                {
                    var trf = @"{\rtf1\ansi\ansicpg1252\uc1\htmautsp\deff2{\fonttbl{\f0\fcharset0 Times New Roman;}{\f2\fcharset134 \'ce\'a2\'c8\'ed\'d1\'c5\'ba\'da;}}{\colortbl\red0\green0\blue0;\red255\green255\blue255;}\loch\hich\dbch\pard\plain\ltrpar\itap0{\lang1033\fs18\f2\cf0 \cf0\ql{\f2 {\ltrch sdfasdfsd}\li0\ri0\sa0\sb0\fi0\ql\par}  }  }";
                    var help1 = new Help()
                    {
                        Group = "帐户",
                        SortNum = 0,
                        Title = "怎么注册帐号?", 
                        UpdatedTime= DateTime.Now,
                        RtfData = trf  };
                    db.Helps.Add(help1);
               
                    var help2 = new Help()
                    {
                        Group = "帐户",
                        SortNum = 0,
                        Title = "我为什么不能注册帐号?",
                        UpdatedTime = DateTime.Now,
                        RtfData = trf
                    };
                    db.Helps.Add(help2);
                    var help3 = new Help()
                    {
                        Group = "刷单",
                        SortNum = 0,
                        Title = "我要怎么样才可以刷单?",
                        UpdatedTime = DateTime.Now,
                        RtfData = trf
                    };
                    db.Helps.Add(help3);

                    var help4 = new Help()
                    {
                        Group = "刷单",
                        SortNum = 0,
                        Title = "刷单要钱吗?",
                        UpdatedTime = DateTime.Now,
                        RtfData = trf
                    };
                    db.Helps.Add(help4);

                }

                #endregion

                #region 创建公告
                {
                    var trf = @"{\rtf1\ansi\ansicpg1252\uc1\htmautsp\deff2{\fonttbl{\f0\fcharset0 Times New Roman;}{\f2\fcharset134 \'ce\'a2\'c8\'ed\'d1\'c5\'ba\'da;}}{\colortbl\red0\green0\blue0;\red255\green255\blue255;}\loch\hich\dbch\pard\plain\ltrpar\itap0{\lang1033\fs18\f2\cf0 \cf0\ql{\f2 {\ltrch welcome!}\li0\ri0\sa0\sb0\fi0\ql\par}  }  }";
                    var gg = new Gonggao() {    RtfData = trf};
                    db.Gonggaos.Add(gg);
                }
                #endregion

                #region 创建任务
                {
                    var biaos = u_shop.Biaos.ToArray();


                    for(var i = 0; i < 100; i++)
                    {
                        var biao = biaos[RandomObj.Next(0, biaos.Length)];
                        var rw = new Renwu()
                        {
                            Biao = biao ,
                            Biaoju = u_customer,
                            Biaoshi = u_customer.Biaoshis.First(), 
                            RunTime = DateTime.Now.AddMinutes(2) ,
                            NextStep= JubenType.TaobaoCollect,
                            Steps = "刷单@2=0;1=1;3=0;",
                            Bangpai = biao.Bangpai 
                        };
                        db.Renwus.Add(rw);
                    }
                }
                #endregion
                #region 创建定单
                {
                    for(var i = 0; i < 200; i++)
                    {
                        var biaoshi = u_customer.Biaoshis.First();
                        var dan = new Dingdan()
                        {
                            BiaojuMarkInfo = "ok",
                            BiaojuMarkType = MarkType.Blue,
                            Biaoshi = biaoshi,
                            DateTime = DateTime.Now,
                            Dianpu = u_shop.Dianpus.First(),
                            Goods = "男士内衣" + i.ToString(),
                            Price = 32,
                            Salary = 5,
                            Bangpai = biaoshi.Bangpai
                        };
                        db.Dingdans.Add(dan);
                    }
                }
                #endregion
                #region 创建验证
                {
                    for (var i = 0; i < 5; i++)
                    {
                        var biao = appBiao;
                        var biaoshi = BS;

                        var val = new Validation()
                        {
                            Biao = biao,
                            Biaoshi = biaoshi, 
                            Details = "xxxxx xxx",
                            Zhanggui = biao.Zhanggui,

                        };
                        db.Validations.Add(val);
                    }

                }
                #endregion
                #region 创建付款
                for(var i = 0; i < 100; i++)
                {
                    var pay = new Pay()
                    {
                        Organization = "中国银行",
                        AccountTitle = "12341 2342 32323",
                        Account = "黄药帅" + i ,
                        Price = 32 + i,
                        Credits = 20 + i,
                        Xiake = u_shop
                    };
                    db.Pays.Add(pay);
                }
                #endregion

                #region 创建错误日志
            
                for(var i = 0; i < 10; i++)
                {

                    var log = new JubenErrorLog()
                    {
                        JubenType = JubenType.TaobaoBuy,
                        JubenErrorType = JubenErrorType.Exception,
                        Logs = "asdfsd, asdfa, asdfas",
                        Xiake = u_customer,
                        JubenName = "okokas" + i.ToString()
                    };
                    db.JubenErrorLogs.Add(log);
                }

                for (var i = 0; i < 80; i++)
                {

                    var log = new JubenErrorLog()
                    {
                        JubenType = JubenType.TaobaoGetGoods,
                        JubenErrorType = JubenErrorType.UnCorrect,
                        Logs = "asdfsd, asdfa, asdfas",
                        Xiake = u_shop,
                        JubenName = "ohaisdf as" + i.ToString()
                    };
                    db.JubenErrorLogs.Add(log);
                }

                #endregion 
            }
            
            db.SaveChanges();            
            Console.WriteLine("任务完成");
            Console.ReadLine();
            


        }