Пример #1
0
    public void Enable(Transform board, Transform[,] tiles, BasicAgent notAgent, BasicAgent crossAgent, BrainType brainType = BrainType.Player, Transform menu = null, int dim = 3)
    {
        cleanup = false;


        theTiles        = tiles;
        this.dim        = dim;
        this.board      = board;
        this.brainType  = brainType;
        this.notAgent   = notAgent;
        this.crossAgent = crossAgent;

        this.menu = menu;
        //Debug.Log ( "MyAgent val " + myAgent.Val);

        InitEventTriggers();
        winner       = false;
        game         = TicTacToe.Instance;
        this.myAgent = BoardGame.Computer == notAgent.Val ? notAgent : crossAgent;
        if (menu != null)
        {
            menu.gameObject.SetActive(true);
            spriteRenderer = menu.GetComponent <SpriteRenderer> ();
        }
    }
    public override void InitializeAcademy()
    {
        InitEventTriggers();

        TicTacToe game = TicTacToe.Instance;

        Brain[]    brains   = GetComponentsInChildren <Brain>();
        bool       training = true;
        BasicAgent cross    = new BasicAgent(1);
        BasicAgent not      = new BasicAgent(-1);

        if (brains [0].brainType == BrainType.Internal)
        {
            training = false;
        }
        game.init(training, dim, 0, ComputerSymbol);

        if (!training)
        {
            SetupTiles();
            You.gameObject.SetActive(true);
            game.StateMachine.Enable(BackgroundPlane, theTiles, not, cross, BrainType.Internal, You);
        }
        else
        {
            You.gameObject.SetActive(false);
        }
    }
Пример #3
0
    public override void DoAction(BasicAgent owner, float[] vectorAction)
    {
        var rBody = owner.GetComponent <Rigidbody>();
        var scale = owner.gameObject.transform.localScale.x;

        //rBody.angularVelocity = Vector3.zero;
        //rBody.velocity = Vector3.zero;
        //if (animator.GetInteger("AnimIndex") != 0)
        //{
        //    animator.SetInteger("AnimIndex", 0);
        //    animator.SetTrigger("Next");
        //}

        if (rBody is object)
        {
            Vector3 controlSignal = Vector3.zero;
            controlSignal.x = vectorAction[0];
            controlSignal.z = vectorAction[1];

            rBody.AddForce(new Vector3(controlSignal.x * owner.acceleration * scale, 0, controlSignal.z * owner.acceleration * scale));
        }

        SetDirection(owner);
        _lastPosition = owner.transform.position;

        IsFinished = true;
    }
    public override Vector3 Execute()
    {
        Vector3 force = Vector3.zero;

        GameObject[] gameObjects = perception.GetGameObjects();
        if (gameObjects != null && gameObjects.Length > 0)
        {
            // ****
            Vector3 positions = Vector3.zero;
            foreach (GameObject go in gameObjects)
            {
                BasicAgent agent = go.GetComponent <BasicAgent>();
                positions += agent.Velocity;
            }

            Vector3 center = positions / gameObjects.Length;

            Vector3 direction = (center).normalized;

            //****

            Vector3 desired = direction * Agent.maxSpeed;
            force = Vector3.ClampMagnitude(desired - Agent.Velocity, Agent.maxForce);

            Debug.DrawRay(transform.position, desired, Color.red);                  //Desired
            Debug.DrawRay(transform.position + Agent.Velocity, force, Color.green); //Steering
        }

        return(force);
    }
Пример #5
0
 public void IncreaseStat(BasicAgent agent)
 {
     Debug.Log("Increasing stats!");
     if (uses > 0)
     {
         if (isEnergyPotion)
         {
             agent.GetComponentInChildren <EnergyController> ().ChangeEnergy(increaseAmount);
         }
         else
         {
             agent.Heal(increaseAmount);
         }
         uses--;
         if (uses > 0)
         {
             evt_usePotion.Invoke(isEnergyPotion);
         }
         else
         {
             evt_outOfPotions.Invoke(isEnergyPotion);
         }
         if (healthBar != null)
         {
             healthBar.currentHealth = (float)uses;
         }
         ;
     }
     ;
 }
Пример #6
0
    public void TriggerActivate(GameObject trg)
    {
        BasicAgent agent = trg.GetComponent <BasicAgent> ();

        Debug.Log("Agent >" + agent);
        if (agent != null)
        {
            // We only do it if they aren't at full health/energy
            if (isEnergyPotion)
            {
                EnergyController ctrl = agent.GetComponentInChildren <EnergyController> ();
                Debug.Log("Energycontroller >" + ctrl);
                if (ctrl != null)
                {
                    if (ctrl.currentEnergy < ctrl.minMaxEnergy.y)
                    {
                        IncreaseStat(agent);
                    }
                }
            }
            else
            {
                if (agent.currentHealth < agent.healthMinMax.y)
                {
                    IncreaseStat(agent);
                }
            }
        }
    }
Пример #7
0
    void StartGame(params GameObject[] dummy)
    {
        int curPlayer = game.getCurPlayerVal();

        Debug.Log("Starting Game " + curPlayer);
        RemoveDelegates();
        timeStart    = 0f;
        this.myAgent = BoardGame.Computer == notAgent.Val ? notAgent : crossAgent;
        if (curPlayer == BoardGame.Computer)
        {
            ProcessStateMachine += WaitForComputerMove;
            player      = false;
            toggleCount = -1000;


            //Debug.Log ("WaitForComputerMove");
        }
        else
        {
            //Debug.Log ("WaitState");
            ProcessStateMachine += WaitState;
            player      = true;
            toggleCount = 0;
        }

        winner = false;
    }
Пример #8
0
 public void EnergyDamage(BasicAgent agent, float amount)
 {
     if (agent == this)
     {
         Damage(Mathf.Abs(amount) * 0.1f);
     }
     ;
 }
Пример #9
0
    private void SetDirection(BasicAgent owner)
    {
        var direction = (owner.transform.position - _lastPosition).normalized;

        if (owner.transform.rotation != Quaternion.LookRotation(direction))
        {
            owner.transform.rotation = Quaternion.Slerp(owner.transform.rotation, Quaternion.LookRotation(direction), 0.08F);
        }
    }
Пример #10
0
 public void InteractWith(BasicAgent agent, GenericActivate source)
 {
     Debug.Log("Interacted with " + gameObject);
     FungusManager.Instance.EventDispatcher.Raise(new AgentInteracted.Custom_EventHandlerEvent()
     {
         data = data
     });
     GameManager.instance.lastItem = transform.position;
     GameManager.instance.finishedItems.Add(data);
 }
Пример #11
0
 public void MakeVisible(bool visible, BasicAgent activatingAgent)
 {
     if (enabled)
     {
         promptCanvas.gameObject.SetActive(visible);
         awaitingInput = visible;
         agent         = activatingAgent;
     }
     ;
 }
        private void SendSMS(string SendText, string Mobile, SysSet SS)
        {
            SMSLog SMSLog = new SMSLog();

            SMSLog.SendText = SendText;
            SMSLog.Mobile   = Mobile;
            SysAgent SA = BasicAgent.GetTopAgent(Entity);

            SMSLog.SendSMS(SS, SA, Entity);
        }
Пример #13
0
 public override void OnFixedUpdate(BasicAgent owner)
 {
     if (owner.StepCount - counter >= 50)
     {
         actionToExecute();
         IsFinished         = true;
         owner.CurrentState = AgentStateType.Idle;
     }
     ;
 }
        public JsonResult GetCode(string Tel, byte CType)
        {
            if (Tel.IsNullOrEmpty())
            {
                return(Json(new { code = 1, msg = "手机号不能为空" }));
            }
            if (CType != 5)
            {
                return(Json(new { code = 1, msg = " 非法操作" }));
            }
            //验证是否重复
            SysAdmin Old = Entity.SysAdmin.FirstOrDefault(n => n.UserName == Tel);

            if (Old != null)
            {
                return(Json(new { code = 1, msg = "“联系手机号”已在系统中存在,无法开通管理员!" }));
            }
            if (Entity.UserBlackList.FirstOrDefault(UBL => UBL.CardNumber == Tel && UBL.State == 1) != null)
            {
                return(Json(new { code = 1, msg = "暂不支持您的手机号入网!" }));
            }
            SysSet ss = new SysSet();

            ss.SMSEnd     = BasicSet.SMSEnd;
            ss.SMSActives = BasicSet.SMSActives;
            DateTime Today = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));

            //失效之前获取验证码
            IList <SMSCode> List = Entity.SMSCode.Where(n => n.UId == BasicAgent.Id && n.Mobile == Tel && n.CType == CType && n.State == 1).ToList();

            foreach (var p in List)
            {
                p.State = 0;
            }
            Entity.SaveChanges();
            //生成验证码
            string Code = Utils.RandomSMSCode(6);

            SMSCode SSC = new SMSCode();

            SSC.CType   = CType;
            SSC.UId     = BasicAgent.Id;
            SSC.Mobile  = Tel;
            SSC.Code    = Code;
            SSC.AddTime = DateTime.Now;
            SSC.State   = 1;
            Entity.SMSCode.AddObject(SSC);
            Entity.SaveChanges();
            var topAgent = BasicAgent.GetTopAgent(this.Entity);

            //发送验证码
            SSC.SendSMS(ss, topAgent, Entity);

            return(Json(new { code = 2, msg = "ok" }));
        }
        public ActionResult Index(JobOrders JobOrders, EFPagingInfo <JobOrders> p, bool?IsShowSupAgent, int?LowerLevel, DateTime?STime, DateTime?ETime, int IsFirst = 0)
        {
            IPageOfItems <JobOrders> JobOrdersList = null;

            if (IsShowSupAgent == null)
            {
                IsShowSupAgent = false;
            }
            ViewBag.BasicAgent = BasicAgent;
            ViewBag.IsAll      = IsAll;
            LowerLevel         = LowerLevel == null ? 0 : LowerLevel;
            if (IsFirst == 0)
            {
                JobOrders.State = 99;
                JobOrdersList   = new PageOfItems <JobOrders>(new List <JobOrders>(), 0, 10, 0, new Hashtable());
            }
            else
            {
                p = this.Condition(JobOrders, p, STime, ETime);

                IList <SysAgent> SysAgentList = null;
                if ((bool)IsShowSupAgent)
                {
                    IList <int> UID = new List <int>();
                    if (LowerLevel != 0)
                    {
                        SysAgent LowerLevelAgent = Entity.SysAgent.Where(s => s.Id == LowerLevel).FirstOrNew();
                        SysAgentList = LowerLevelAgent.GetSupAgent(Entity, true);
                    }
                    else
                    {
                        SysAgentList = BasicAgent.GetSupAgent(Entity, true);//获取所有下级代理商信息
                    }
                    UID = SysAgentList.Select(o => o.Id).ToList();
                    p.SqlWhere.Add(f => UID.Contains(f.AgentId));
                }
                else
                {
                    p.SqlWhere.Add(f => f.AgentId == BasicAgent.Id);//读取全部分支机构
                }

                JobOrdersList = Entity.Selects <JobOrders>(p);
            }
            ViewBag.JobOrdersList  = JobOrdersList;
            ViewBag.JobOrders      = JobOrders;
            ViewBag.Edit           = this.checkPower("Edit");
            ViewBag.ETime          = ETime;
            ViewBag.STime          = STime;
            ViewBag.IsShowSupAgent = IsShowSupAgent;
            ViewBag.LowerLevel     = LowerLevel;
            List <int> UId = JobOrdersList.Select(o => o.UId).Distinct().ToList();

            ViewBag.UsersList = Entity.Users.Where(n => n.State == 1 && UId.Contains(n.Id)).ToList();
            return(View());
        }
Пример #16
0
    public override void OnEnter(BasicAgent owner)
    {
        IsFinished = false;
        var rBody = owner.GetComponent <Rigidbody>();

        if (rBody is object)
        {
            rBody.angularVelocity = Vector3.zero;
            rBody.velocity        = Vector3.zero;
        }
        IsFinished = true;
    }
 public ActionResult Index(ApplyJoin ApplyJoin, EFPagingInfo<ApplyJoin> p, int IsFirst = 0 ,int IsShowSupAgent = -1)
 {
     ViewBag.Save = checkPower("Save");
     ViewBag.IsShowSupAgent = IsShowSupAgent;
     if (IsFirst == 0)
     {
         PageOfItems<ApplyJoin> ApplyJoinList1 = new PageOfItems<ApplyJoin>(new List<ApplyJoin>(), 0, 10, 0, new Hashtable());
         ViewBag.ApplyJoinList = ApplyJoinList1;
         ViewBag.ApplyJoin = ApplyJoin;
         ViewBag.BasicProvinceList = Entity.BasicProvince.ToList();
         ViewBag.BasicCityList = Entity.BasicCity.ToList();
         return View();
     }
     if (!ApplyJoin.ServiceType.IsNullOrEmpty()) { p.SqlWhere.Add(f => f.ServiceType == ApplyJoin.ServiceType); }
     if (!ApplyJoin.ApplyType.IsNullOrEmpty()) { p.SqlWhere.Add(f => f.ApplyType == ApplyJoin.ApplyType); }
     if (!ApplyJoin.Linker.IsNullOrEmpty()) { p.SqlWhere.Add(f => f.Linker.Contains(ApplyJoin.Linker)); }
     if (!ApplyJoin.Mobile.IsNullOrEmpty()) { p.SqlWhere.Add(f => f.Mobile.Contains(ApplyJoin.Mobile)); }
     if (!ApplyJoin.ComName.IsNullOrEmpty()) { p.SqlWhere.Add(f => f.ComName.Contains(ApplyJoin.ComName)); }
     if (!ApplyJoin.Province.IsNullOrEmpty()) { p.SqlWhere.Add(f => f.Province == ApplyJoin.Province); }
     if (!ApplyJoin.City.IsNullOrEmpty()) { p.SqlWhere.Add(f => f.City == ApplyJoin.City); }
     if (!ApplyJoin.State.IsNullOrEmpty()) { p.SqlWhere.Add(f => f.State == ApplyJoin.State); }
     //List<Int32> AgentId = new List<Int32>();
     //IList<SysAgent> SysAgentList = BasicAgent.GetSupAgent(Entity);
     //foreach (var pp in SysAgentList)
     //{
     //    AgentId.Add(pp.Id);
     //}
     //p.SqlWhere.Add(f =>AgentId.Contains(f.AgentId));
     if (IsShowSupAgent == 1)
     {
         List<Int32> AgentId = new List<Int32>();
         IList<SysAgent> SysAgentList = BasicAgent.GetSupAgent(Entity);
         foreach (var pp in SysAgentList)
         {
             AgentId.Add(pp.Id);
         }
         p.SqlWhere.Add(f => AgentId.Contains(f.AgentId));
     }
     else
     {
         p.SqlWhere.Add(f => f.AgentId == BasicAgent.Id);
     }
     p.OrderByList.Add("Id", "DESC");
     IPageOfItems<ApplyJoin> ApplyJoinList = Entity.Selects<ApplyJoin>(p);
     ViewBag.ApplyJoinList = ApplyJoinList;
     ViewBag.ApplyJoin = ApplyJoin;
     ViewBag.BasicProvinceList = Entity.BasicProvince.ToList();
     ViewBag.BasicCityList = Entity.BasicCity.ToList();
     return View();
 }
Пример #18
0
 public override void OnEnter(BasicAgent owner)
 {
     IsFinished = false;
 }
Пример #19
0
 public override void DoAction(BasicAgent owner)
 {
     return;
 }
        /// <summary>
        /// 解冻管理
        /// </summary>
        /// <param name="Users"></param>
        /// <param name="p"></param>
        /// <returns></returns>
        public ActionResult Index(StopPayAudit StopPayAudit, EFPagingInfo <StopPayAudit> p, bool IsShowSupAgent = false, int LowerLevel = 0, int UserSelect = 1, int IsFirst = 0)
        {
            if (!StopPayAudit.TState.IsNullOrEmpty())
            {
                p.SqlWhere.Add(o => o.TState == StopPayAudit.TState);
            }
            //一级只有的功能
            if (BasicAgent.Tier == 1)
            {
                IList <SysAgent> SysAgentList = null;
                if (IsShowSupAgent)
                {
                    IList <int> UID = new List <int>();
                    if (LowerLevel != 0)
                    {
                        SysAgent LowerLevelAgent = Entity.SysAgent.Where(s => s.Id == LowerLevel).FirstOrNew();
                        SysAgentList = LowerLevelAgent.GetSupAgent(Entity, true);
                    }
                    else
                    {
                        SysAgentList = BasicAgent.GetSupAgent(Entity, true);//获取所有下级代理商信息
                    }
                    UID = SysAgentList.Select(o => o.Id).ToList();
                    p.SqlWhere.Add(f => UID.Contains(f.Agent));
                }
                else
                {
                    p.SqlWhere.Add(f => f.Agent == BasicAgent.Id);//读取全部分支机构
                }
            }
            else
            {
                p.SqlWhere.Add(f => f.Agent == BasicAgent.Id);
            }

            if (!StopPayAudit.CreateAdminName.IsNullOrEmpty())
            {
                List <int> uids = new List <int>();
                if (StopPayAudit.UId == 1)
                {
                    uids = Entity.Users.Where(o => o.UserName == StopPayAudit.CreateAdminName).Select(o => o.Id).ToList();
                }
                else if (StopPayAudit.UId == 2)
                {
                    uids = Entity.Users.Where(o => o.Mobile == StopPayAudit.CreateAdminName).Select(o => o.Id).ToList();
                }
                else if (StopPayAudit.UId == 3)
                {
                    uids = Entity.Users.Where(o => o.TrueName == StopPayAudit.CreateAdminName).Select(o => o.Id).ToList();
                }
                p.SqlWhere.Add(f => uids.Contains(f.UId));
            }
            p.OrderByList.Add("Id", "DESC");
            IPageOfItems <StopPayAudit> StopPayAuditList = null;

            if (IsFirst == 0)
            {
                StopPayAuditList = new PageOfItems <StopPayAudit>(new List <StopPayAudit>(), 0, 10, 0, new Hashtable());
            }
            else
            {
                StopPayAuditList = Entity.Selects <StopPayAudit>(p);
            }
            //用户表
            var SPAUsersList = StopPayAuditList.Select(o => o.UId).ToList();

            ViewBag.UserSelect = Entity.Users.Where(o => SPAUsersList.Contains(o.Id)).ToList();

            ViewBag.StopPayAuditList = StopPayAuditList;
            ViewBag.StopPayAudit     = StopPayAudit;
            ViewBag.IsShowSupAgent   = IsShowSupAgent;
            ViewBag.LowerLevel       = LowerLevel;
            return(View());
        }
Пример #21
0
 public abstract void DoAction(BasicAgent owner);
Пример #22
0
 public abstract void DoAction(BasicAgent owner, float[] vectorActions);
Пример #23
0
 public override void DoAction(BasicAgent owner, float[] vectorActions)
 {
     return;
 }
Пример #24
0
        public ActionResult Index(Orders Orders, EFPagingInfo <Orders> p, bool?IsShowSupAgent, int?LowerLevel, int IsFirst = 0)
        {
            if (IsFirst == 0)
            {
                if (IsShowSupAgent == null)
                {
                    IsShowSupAgent = false;
                }
                if (checkPower("ALL"))
                {
                    IsAll = true;
                }
                LowerLevel    = LowerLevel == null ? 0 : LowerLevel;
                ViewBag.IsAll = IsAll;
                PageOfItems <Orders> OrdersList1 = new PageOfItems <Orders>(new List <Orders>(), 0, 10, 0, new Hashtable());
                ViewBag.OrdersList = OrdersList1;
                ViewBag.Orders     = Orders;
                //查询对应的商户
                List <int> UId1 = OrdersList1.Select(o => o.UId).Distinct().ToList();
                ViewBag.UsersList      = Entity.Users.Where(n => n.State == 1 && UId1.Contains(n.Id)).ToList();
                ViewBag.PayConfigList  = Entity.PayConfig.Where(n => n.State == 1).ToList();
                ViewBag.IsShowSupAgent = IsShowSupAgent;
                ViewBag.BasicAgent     = BasicAgent;
                SysSet SysSet1 = Entity.SysSet.FirstOrNew();
                ViewBag.SysSet     = SysSet1;
                ViewBag.Entity     = Entity;
                ViewBag.LowerLevel = LowerLevel;
                return(View());
            }
            //if (Orders.STime.IsNullOrEmpty())
            //{
            //    Orders.STime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
            //}
            //if (Orders.ETime.IsNullOrEmpty())
            //{
            //    Orders.ETime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
            //}
            //if (!Orders.STime.IsNullOrEmpty() && !Orders.ETime.IsNullOrEmpty())
            //{
            //    DateTime ETime = Orders.ETime;
            //    p.SqlWhere.Add(f => f.PayTime > Orders.STime && f.PayTime < ETime);
            //}

            if (IsShowSupAgent == null)
            {
                IsShowSupAgent = false;
            }
            if (checkPower("ALL"))
            {
                IsAll = true;
            }
            ViewBag.IsAll = IsAll;

            /*有没有指定交易所属代理
             * 有:校验是否从属关系
             * 无:指定当前代理
             */
            if (!Orders.Agent.IsNullOrEmpty())
            {
                if (!IsBelongToAgent(Orders.Agent))
                {
                    ViewBag.ErrorMsg = "只能查询当前用户下属代理的交易";
                    return(View("Error"));
                }
            }
            else
            {
                Orders.Agent = this.BasicAgent.Id;
            }
            LowerLevel = LowerLevel == null ? 0 : LowerLevel;
            //没有"管理所有"权限的只能看到操作员自己的数据
            //if (!IsAll)
            //{
            //    p.SqlWhere.Add(f => f.AId == AdminUser.Id);//交易所属用户
            //}
            //else
            {
                IList <SysAgent> SysAgentList = null;
                if ((bool)IsShowSupAgent)
                {
                    IList <int> UID = new List <int>();
                    if (LowerLevel != 0)
                    {
                        SysAgent LowerLevelAgent = Entity.SysAgent.Where(s => s.Id == LowerLevel).FirstOrNew();
                        SysAgentList = LowerLevelAgent.GetSupAgent(Entity);
                    }
                    else
                    {
                        SysAgentList = BasicAgent.GetSupAgent(Entity);//获取所有下级代理商信息
                    }
                    foreach (var s in SysAgentList)
                    {
                        UID.Add(s.Id);
                    }
                    p.SqlWhere.Add(f => UID.Contains(f.Agent));
                }
                else
                {
                    p.SqlWhere.Add(f => f.Agent == Orders.Agent);//交易所属代理
                }
            }
            #region 筛选条件
            if (!Orders.OrderAddress.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.OrderAddress.Contains(Orders.OrderAddress));
            }
            if (!Orders.TNum.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.TNum == Orders.TNum);
            }
            if (!Orders.LagEntryDay.IsNullOrEmpty())
            {
                if (Orders.LagEntryDay == 99)
                {
                    p.SqlWhere.Add(f => f.LagEntryDay == 0);
                }
                else
                {
                    p.SqlWhere.Add(f => f.LagEntryDay > 0);
                }
            }
            if (!Orders.TrunType.IsNullOrEmpty())
            {
                if (Orders.TrunType == 1)
                {
                    p.SqlWhere.Add(f => f.TrunType == 1);
                }
                else
                {
                    p.SqlWhere.Add(f => f.TrunType == 0);
                }
            }

            if (!Orders.TName.IsNullOrEmpty())
            {
                IList <Users> UList = Entity.Users.Where(n => n.TrueName.Contains(Orders.TName) || n.NeekName.Contains(Orders.TName) || n.UserName == Orders.TName).ToList();
                List <int>    UIds  = new List <int>();
                foreach (var pp in UList)
                {
                    UIds.Add(pp.Id);
                }
                p.SqlWhere.Add(f => UIds.Contains(f.UId));
            }
            if (!Orders.PayWay.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.PayWay == Orders.PayWay);
            }
            if (!Orders.STime.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.AddTime >= Orders.STime);
            }
            if (!Orders.ETime.IsNullOrEmpty())
            {
                DateTime ETime = Orders.ETime.AddHours(23).AddMinutes(59).AddSeconds(59);
                p.SqlWhere.Add(f => f.AddTime <= ETime);
            }
            #region 交易类型条件判断
            p.SqlWhere.Add(f => f.TType == 2);//读取对应的类型
            if (Orders.TType == 2)
            {
                if (!Orders.TState.IsNullOrEmpty())
                {
                    p.SqlWhere.Add(f => f.TState == Orders.TState);
                }
            }
            #endregion
            #endregion
            p.OrderByList.Add("Id", "DESC");
            IPageOfItems <Orders> OrdersList = Entity.Selects <Orders>(p);
            ViewBag.OrdersList = OrdersList;
            ViewBag.Orders     = Orders;
            //查询对应的商户
            List <int> UId = OrdersList.Select(o => o.UId).Distinct().ToList();
            ViewBag.UsersList = Entity.Users.Where(n => n.State == 1 && UId.Contains(n.Id)).ToList();
            //因为上面判段过了,这里其实是不用的
            //if (checkPower("ALL"))
            //{
            //    ViewBag.UsersList = Entity.Users.Where(n => n.State == 1 && n.Agent == AdminUser.AgentId && UId.Contains(n.Id)).ToList();
            //}
            //else
            //{
            //    ViewBag.UsersList = Entity.Users.Where(n => n.State == 1 && n.AId == AdminUser.Id && UId.Contains(n.Id)).ToList();
            //}
            ViewBag.PayConfigList  = Entity.PayConfig.Where(n => n.State == 1).ToList();
            ViewBag.IsShowSupAgent = IsShowSupAgent;
            ViewBag.BasicAgent     = BasicAgent;
            SysSet SysSet = Entity.SysSet.FirstOrNew();
            ViewBag.SysSet     = SysSet;
            ViewBag.Entity     = Entity;
            ViewBag.LowerLevel = LowerLevel;
            return(View());
        }
 public void removePlayer(BasicAgent player)
 {
     thePlayers.Remove(player);
 }
Пример #26
0
 public override void OnExit(BasicAgent owner)
 {
     return;
 }
Пример #27
0
 public override void OnUpdate(BasicAgent owner)
 {
     return;
 }
        public ActionResult Index(Orders Orders, EFPagingInfo <Orders> p, bool?IsShowSupAgent, int?LowerLevel, int IsFirst = 0)
        {
            if (IsShowSupAgent == null)
            {
                IsShowSupAgent = false;
            }
            if (IsFirst == 0)
            {
                if (checkPower("ALL"))
                {
                    IsAll = true;
                }
                ViewBag.IsAll = IsAll;
                PageOfItems <Orders> OrdersList1 = new PageOfItems <Orders>(new List <Orders>(), 0, 10, 0, new Hashtable());
                ViewBag.OrdersList = OrdersList1;
                ViewBag.Orders     = Orders;
                //查询对应的商户
                List <int> UId1 = OrdersList1.Select(o => o.UId).Distinct().ToList();
                ViewBag.UsersList      = Entity.Users.Where(n => n.State == 1 && UId1.Contains(n.Id)).ToList();
                ViewBag.PayConfigList  = Entity.PayConfig.Where(n => n.State == 1).ToList();
                ViewBag.IsShowSupAgent = false;
                ViewBag.BasicAgent     = BasicAgent;
                SysSet SysSet1 = Entity.SysSet.FirstOrNew();
                ViewBag.SysSet     = SysSet1;
                ViewBag.Entity     = Entity;
                ViewBag.LowerLevel = 0;
                ViewBag.Edit       = this.checkPower("Edit");
                return(View());
            }

            if (checkPower("ALL"))
            {
                IsAll = true;
            }
            ViewBag.IsAll = IsAll;

            /*有没有指定交易所属代理
             * 有:校验是否从属关系
             * 无:指定当前代理
             */
            if (!Orders.Agent.IsNullOrEmpty())
            {
                if (!IsBelongToAgent(Orders.Agent))
                {
                    ViewBag.ErrorMsg = "只能查询当前用户下属代理的交易";
                    return(View("Error"));
                }
            }
            else
            {
                Orders.Agent = this.BasicAgent.Id;
            }
            LowerLevel = LowerLevel == null ? 0 : LowerLevel;
            //没有"管理所有"权限的只能看到操作员自己的数据
            if (!IsAll)
            {
                p.SqlWhere.Add(f => f.AId == AdminUser.Id);//交易所属用户
            }
            else
            {
                IList <SysAgent> SysAgentList = null;
                if ((bool)IsShowSupAgent)
                {
                    IList <int> UID = new List <int>();
                    if (LowerLevel != 0)
                    {
                        SysAgent LowerLevelAgent = Entity.SysAgent.Where(s => s.Id == LowerLevel).FirstOrNew();
                        SysAgentList = LowerLevelAgent.GetSupAgent(Entity, true);
                    }
                    else
                    {
                        SysAgentList = BasicAgent.GetSupAgent(Entity, true);//获取所有下级代理商信息
                    }
                    UID = SysAgentList.Select(o => o.Id).ToList();
                    p.SqlWhere.Add(f => UID.Contains(f.Agent));
                }
                else
                {
                    p.SqlWhere.Add(f => f.Agent == BasicAgent.Id);//读取全部分支机构
                }
            }
            #region 筛选条件
            if (!Orders.OrderAddress.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.OrderAddress.Contains(Orders.OrderAddress));
            }
            if (!Orders.TNum.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.TNum == Orders.TNum);
            }
            if (!Orders.LagEntryDay.IsNullOrEmpty())
            {
                if (Orders.LagEntryDay == 99)
                {
                    p.SqlWhere.Add(f => f.LagEntryDay == 0);
                }
                else
                {
                    p.SqlWhere.Add(f => f.LagEntryDay > 0);
                }
            }
            if (!Orders.TrunType.IsNullOrEmpty())
            {
                if (Orders.TrunType == 1)
                {
                    p.SqlWhere.Add(f => f.TrunType == 1);
                }
                else
                {
                    p.SqlWhere.Add(f => f.TrunType == 0);
                }
            }

            if (!Orders.TName.IsNullOrEmpty())
            {
                IList <Users> UList = Entity.Users.Where(n => n.TrueName.Contains(Orders.TName) || n.NeekName.Contains(Orders.TName) || n.UserName == Orders.TName).ToList();
                List <int>    UIds  = new List <int>();
                foreach (var pp in UList)
                {
                    UIds.Add(pp.Id);
                }
                p.SqlWhere.Add(f => UIds.Contains(f.UId));
            }
            if (!Orders.PayWay.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.PayWay == Orders.PayWay);
            }
            if (!Orders.STime.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.AddTime >= Orders.STime);
            }
            if (!Orders.ETime.IsNullOrEmpty())
            {
                DateTime ETime = Orders.ETime.AddHours(23).AddMinutes(59).AddSeconds(59);
                p.SqlWhere.Add(f => f.AddTime <= ETime);
            }
            #region 交易类型条件判断
            if (!Orders.TType.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.TType == Orders.TType);//读取对应的类型
                if (Orders.TType == 1)
                {
                    if (!Orders.TState.IsNullOrEmpty())
                    {
                        switch (Orders.TState)
                        {
                        case 1:    //未付
                            p.SqlWhere.Add(f => f.TState == 1 && f.PayState == 0);
                            break;

                        case 2:    //已付
                            p.SqlWhere.Add(f => f.TState == 2 && f.PayState == 1);
                            break;

                        case 3:    //待传证照
                            p.SqlWhere.Add(f => f.TState == 1 && f.PayState == 1 && f.IdCardState == 1);
                            break;

                        case 4:    //待审核
                            p.SqlWhere.Add(f => f.TState == 1 && f.PayState == 1 && f.IdCardState == 2);
                            break;

                        case 5:    //审核失败
                            p.SqlWhere.Add(f => f.TState == 1 && f.PayState == 1 && f.IdCardState == 4);
                            break;

                        case 6:    //退单
                            p.SqlWhere.Add(f => f.TState == 4);
                            break;

                        case 7:    //待入帐
                            p.SqlWhere.Add(f => f.TState == 1 && f.PayState == 1 && f.InState == 0);
                            break;
                        }
                    }
                }
                if (Orders.TType == 2)
                {
                    if (!Orders.TState.IsNullOrEmpty())
                    {
                        p.SqlWhere.Add(f => f.TState == Orders.TState);
                    }
                }
                if (Orders.TType == 3)
                {
                    switch (Orders.TState)
                    {
                    case 1:    //未付
                        p.SqlWhere.Add(f => f.TState == 1 && f.PayState == 0);
                        break;

                    case 2:    //已付
                        p.SqlWhere.Add(f => f.TState == 2 && f.PayState == 1);
                        break;

                    case 3:    //待传证照
                        p.SqlWhere.Add(f => f.TState == 1 && f.PayState == 1 && f.IdCardState == 1);
                        break;

                    case 4:    //待审核
                        p.SqlWhere.Add(f => f.TState == 1 && f.PayState == 1 && f.IdCardState == 2);
                        break;

                    case 5:    //审核失败
                        p.SqlWhere.Add(f => f.TState == 1 && f.PayState == 1 && f.IdCardState == 4);
                        break;
                    }
                }
                if (Orders.TType == 5)
                {
                    if (!Orders.TState.IsNullOrEmpty())
                    {
                        switch (Orders.TState)
                        {
                        case 99:    //未付
                            p.SqlWhere.Add(f => f.TState == 1 && f.PayState == 0);
                            break;

                        case 1:    //处理中
                            p.SqlWhere.Add(f => f.TState == 1 && f.PayState == 1 && f.IdCardState == 0);
                            break;

                        case 2:    //已汇出
                            p.SqlWhere.Add(f => f.TState == 2 && f.PayState == 2);
                            break;

                        case 4:    //出款中
                            p.SqlWhere.Add(f => (f.TState == 2 && f.PayState == 2 && f.IdCardState == 0) || (f.TState == 2 && f.PayState == 1 && f.IdCardState == 3));
                            break;

                        case 3:    //审核失败
                            p.SqlWhere.Add(f => f.TState == 1 && f.PayState == 1 && f.IdCardState == 4);
                            break;

                        case 5:    //退款中
                            p.SqlWhere.Add(f => f.TState == 2 && f.PayState == 3);
                            break;

                        case 6:    //已退款
                            p.SqlWhere.Add(f => f.TState == 2 && f.PayState == 4);
                            break;

                        case 7:    //待传身份证
                            p.SqlWhere.Add(f => f.TState == 1 && f.PayState == 1 && f.IdCardState == 1);
                            break;

                        case 8:    //已传身份证
                            p.SqlWhere.Add(f => f.TState == 1 && f.PayState == 1 && f.IdCardState == 2);
                            break;
                        }
                    }
                }
                if (Orders.TType == 6)
                {
                    if (!Orders.TState.IsNullOrEmpty())
                    {
                        p.SqlWhere.Add(f => f.TState == Orders.TState);
                    }
                }
                if (Orders.TType == 7 || Orders.TType == 8 || Orders.TType == 9)
                {
                    if (!Orders.TState.IsNullOrEmpty())
                    {
                        if (Orders.TState == 99)
                        {
                            p.SqlWhere.Add(f => f.TState == 0);
                        }
                        if (Orders.TState == 1)
                        {
                            p.SqlWhere.Add(f => f.TState == 1 && f.PayState == 0);
                        }
                        if (Orders.TState == 2)
                        {
                            p.SqlWhere.Add(f => f.TState == 2 && f.PayState == 1);
                        }
                        if (Orders.TState == 3)//退单
                        {
                            p.SqlWhere.Add(f => f.TState == 4);
                        }
                        if (Orders.TState == 4)//待入帐
                        {
                            p.SqlWhere.Add(f => f.TState == 1 && f.PayState == 1 && f.InState == 0);
                        }
                        if (Orders.TState == 5)//待审核
                        {
                            p.SqlWhere.Add(f => f.TState == 1 && f.PayState == 1 && f.InState == 1 && f.IdCardState == 2);
                        }
                        if (Orders.TState == 6)//待传证照
                        {
                            p.SqlWhere.Add(f => f.TState == 1 && f.PayState == 1 && f.InState == 1 && f.IdCardState == 1);
                        }
                        if (Orders.TState == 7)//审核失败
                        {
                            p.SqlWhere.Add(f => f.TState == 1 && f.PayState == 1 && f.InState == 1 && f.IdCardState == 4);
                        }
                    }
                }
                if (Orders.TType == 10)
                {
                    if (!Orders.TState.IsNullOrEmpty())
                    {
                        p.SqlWhere.Add(f => f.TState == Orders.TState);
                    }
                }
            }
            #endregion
            #endregion
            p.OrderByList.Add("Id", "DESC");
            IPageOfItems <Orders> OrdersList = Entity.Selects <Orders>(p);
            ViewBag.OrdersList = OrdersList;
            ViewBag.Orders     = Orders;
            //查询对应的商户
            List <int> UId = OrdersList.Select(o => o.UId).Distinct().ToList();
            ViewBag.UsersList      = Entity.Users.Where(n => n.State == 1 && UId.Contains(n.Id)).ToList();
            ViewBag.PayConfigList  = Entity.PayConfig.Where(n => n.State == 1).ToList();
            ViewBag.IsShowSupAgent = IsShowSupAgent;
            ViewBag.BasicAgent     = BasicAgent;
            SysSet SysSet = Entity.SysSet.FirstOrNew();
            ViewBag.SysSet     = SysSet;
            ViewBag.Entity     = Entity;
            ViewBag.LowerLevel = LowerLevel;
            ViewBag.Edit       = this.checkPower("Edit");
            return(View());
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="Orders"></param>
        /// <param name="p"></param>
        /// <param name="IsShowSupAgent">是否显示下级</param>
        /// <param name="LowerLevel">下级代理商</param>
        /// <returns></returns>
        public ActionResult Index(Orders Orders, EFPagingInfo <Orders> p, bool?IsShowSupAgent, int?LowerLevel, int IsFirst = 0)
        {
            bool IsAll = false;

            if (checkPower("ALL"))
            {
                IsAll = true;
            }
            ViewBag.IsAll = IsAll;
            #region 条件校验
            if (IsShowSupAgent == null)
            {
                IsShowSupAgent = false;
            }
            LowerLevel = LowerLevel == null ? 0 : LowerLevel;
            p.SqlWhere.Add(f => f.PayState != 0);
            p.SqlWhere.Add(f => f.TState == 2);
            if (!Orders.TNum.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.TNum == Orders.TNum);
            }
            if (!Orders.TName.IsNullOrEmpty())
            {
                IList <Users> UList = Entity.Users.Where(n => n.TrueName == Orders.TName || n.NeekName == Orders.TName || n.UserName == Orders.TName).ToList();
                List <int>    UIds  = new List <int>();
                foreach (var pp in UList)
                {
                    UIds.Add(pp.Id);
                }
                p.SqlWhere.Add(f => UIds.Contains(f.UId));
            }
            if (!Orders.TType.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.TType == Orders.TType);
            }
            if (!Orders.AId.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.AId == Orders.AId);
            }
            if (!Orders.AgentState.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.AgentState == Orders.AgentState);
            }
            if (!Orders.STime.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.PayTime > Orders.STime);
            }
            else
            {
                Orders.STime = DateTime.Now.AddMonths(-1);
            }
            if (!Orders.ETime.IsNullOrEmpty())
            {
                DateTime ETime = Orders.ETime;
                p.SqlWhere.Add(f => f.PayTime < ETime);
            }
            else
            {
                Orders.ETime = DateTime.Now;
            }
            TimeSpan TS   = Orders.ETime.Subtract(Orders.STime);
            int      Days = TS.Days;
            if (Days > 31)
            {
                ViewBag.ErrorMsg = "统计时间间隔不能超过31天!";
                return(View("Error"));
            }
            if (IsAll)
            {
                IList <SysAgent> SysAgentList = null;
                if ((bool)IsShowSupAgent)
                {
                    IList <int> UID = new List <int>();
                    if (LowerLevel != 0)
                    {
                        SysAgent LowerLevelAgent = Entity.SysAgent.Where(s => s.Id == LowerLevel).FirstOrNew();
                        SysAgentList = LowerLevelAgent.GetSupAgent(Entity, true);
                    }
                    else
                    {
                        SysAgentList = BasicAgent.GetSupAgent(Entity, true);//获取所有下级代理商信息
                    }
                    UID = SysAgentList.Select(o => o.Id).ToList();
                    p.SqlWhere.Add(f => UID.Contains(f.Agent));
                }
                else
                {
                    p.SqlWhere.Add(f => f.Agent == BasicAgent.Id);//读取全部分支机构
                }
            }
            else
            {
                p.SqlWhere.Add(f => f.AId == AdminUser.Id);//读取用户
            }
            #endregion
            p.OrderByList.Add("Id", "DESC");
            IPageOfItems <Orders> OrdersList = null;
            if (IsFirst == 0)
            {
                OrdersList = new PageOfItems <Orders>(new List <Orders>(), 0, 10, 0, new Hashtable());
            }
            else
            {
                OrdersList = Entity.Selects <Orders>(p);
            }

            ViewBag.OrdersList = OrdersList;
            ViewBag.Orders     = Orders;
            //统计查询
            if (OrdersList.TotalCount > 0)
            {
                var iquery = Entity.Orders.AsQueryable();
                foreach (var item in p.SqlWhere)
                {
                    iquery = iquery.Where(item);
                }
                //总金额
                decimal SumAmoney = iquery.Sum(o => o.Amoney);
                ViewBag.SumAmoney = SumAmoney;
                //我的总佣金
                decimal?SumMyProfit = Entity.OrderProfitLog.Where(o => o.Agent == BasicAgent.Id).Join(iquery, op => op.TNum, o => o.TNum, (op, o) => op.Profit).Sum(o => (decimal?)o);
                ViewBag.SumMyProfit = SumMyProfit;
            }

            //商户查询
            IList <Orders> List = OrdersList.GroupBy(n => n.UId).Select(n => n.First()).ToList();
            List <int>     UId  = new List <int>();
            foreach (var pp in List)
            {
                UId.Add(pp.UId);
            }
            Dictionary <string, decimal> DicOrderProfitLog = new Dictionary <string, decimal>();
            IList <Users> UsersList = Entity.Users.Where(n => UId.Contains(n.Id)).ToList();
            foreach (var item in OrdersList)
            {
                DicOrderProfitLog.Add(item.TNum, Entity.OrderProfitLog.Where(o => o.TNum == item.TNum && o.Agent == BasicAgent.Id).Select(o => o.Profit).FirstOrDefault());
            }
            ViewBag.DicOrderProfitLog = DicOrderProfitLog;
            ViewBag.UsersList         = UsersList;
            ViewBag.SysAdminList      = Entity.SysAdmin.Where(n => n.State == 1 && n.AgentId == AdminUser.AgentId).ToList();
            //ViewBag.PayConfigList = Entity.PayConfig.Where(n => n.State == 1).ToList();
            ViewBag.IsShowSupAgent = IsShowSupAgent;
            ViewBag.BasicAgent     = BasicAgent;
            SysSet SysSet = Entity.SysSet.FirstOrNew();
            ViewBag.SysSet     = SysSet;
            ViewBag.LowerLevel = LowerLevel;
            ViewBag.Edit       = this.checkPower("Edit");
            return(View());
        }
    protected int curPlayer = -1;     // Index into list



    public void addPlayer(BasicAgent player)
    {
        thePlayers.Add(player);
    }