コード例 #1
0
        /// <summary>
        /// 按客户名统计
        /// </summary>
        /// <returns></returns>
        public List <StatisticsView> GetDataByClient(StatisticsParam param)
        {
            var    sqlParam = new List <DbParameter>();
            string sqlWhere = " where oi.userId=@UserId ";

            sqlParam.Add(new MySqlParameter("@UserId", param.UserId));

            if (param.BeginDate != null)
            {
                sqlWhere += " and oi.CreateTime > @BeginDate ";
                sqlParam.Add(new MySqlParameter("@BeginDate", param.BeginDate));
            }

            if (param.EndDate != null)
            {
                sqlWhere += " and oi.CreateTime < @EndDate ";
                sqlParam.Add(new MySqlParameter("@EndDate", param.EndDate));
            }

            string sql  = $@"select ci.ClientName, gb.ChsBrandName,gb.EnBrandName,gi.GoodsName,gs.SpecificationName,CONVERT(sum(og.GoodsNum),SIGNED) as num 
                            from orderinfo oi
                            LEFT JOIN clientinfo ci on oi.ClientId = ci.id
                            LEFT JOIN ordergoods og on oi.id = og.orderId
                            LEFT JOIN goodsinfo gi on og.goodsId = gi.id
                            LEFT JOIN goodsspecification gs on og.gsId = gs.Id
                            LEFT JOIN goodsbrand gb on gi.gbId = gb.id
                            {sqlWhere}
                            group BY ci.id,gb.id,gi.id,gs.id";
            var    list = _context.Database.SqlQuery <StatisticsView>(sql, sqlParam.ToArray());

            return(list);
        }
コード例 #2
0
    public void Game_Event(CmdId eventId, ushort seqNr, object data)
    {
        broker.HandleMessage(eventId, seqNr, data);

        if (settlementOperations.ContainsKey(seqNr))
        {
            var op = settlementOperations[seqNr];
            HandleSettlementWokflowEvent(GameAPI, op, eventId, data);
        }

        GameAPI.Console_Write($"ID:EVENT! {eventId} - {seqNr}");
        try
        {
            switch (eventId)
            {
            case CmdId.Event_Playfield_Stats:
                var playfieldData = (PlayfieldStats)data;
                var pstatstring   = $"id: {Serializer.Serialize(playfieldData)}";
                GameAPI.Console_Write(pstatstring);
                break;

            case CmdId.Event_Player_Connected:
                GameAPI.Game_Request(CmdId.Request_Player_Info, (ushort)CmdId.Request_Player_Info, (Id)data);
                break;

            case CmdId.Event_Statistics:

                StatisticsParam stats = (StatisticsParam)data;
                Handle_event_statistics(stats);
                break;

            case CmdId.Event_ChatMessage:
                ChatInfo ci = (ChatInfo)data;
                Handle_chat_message(ci);
                break;

            case CmdId.Event_GlobalStructure_List:
                GlobalStructureList info = (GlobalStructureList)data;
                writeGlobalStructureList(info);
                break;

            default:
                GameAPI.Console_Write($"event: {eventId}");
                var outmessage = "NO DATA";
                if (data != null)
                {
                    outmessage = "data: " + data.ToString();
                }
                GameAPI.Console_Write(outmessage);

                break;
            }
        }
        catch (Exception ex)
        {
            GameAPI.Console_Write(ex.Message);
            GameAPI.Console_Write(ex.ToString());
        }
    }
コード例 #3
0
        public static StatisticsContainer FromStatisticsParam(StatisticsParam stats)
        {
            var type        = StatTypeManifest[stats.type];
            var constructor = type.GetConstructor(_tparam);
            var result      = constructor.Invoke(new object[] { stats });

            return((StatisticsContainer)result);
        }
コード例 #4
0
 private void Handle_event_statistics(StatisticsParam data)
 {
     if (data.type == StatisticsType.CoreRemoved)
     {
         var structureId = data.int1;
         var sequenceId  = unusedSettlementSequenceNumbers.Dequeue();
         SettlementOperation operation = new SettlementOperation();
         operation.seqNr = sequenceId;
         operation.stage = 0;
         operation.originalStructureId = structureId;
         settlementOperations.Add(sequenceId, operation);
         GameAPI.Game_Request(CmdId.Request_GlobalStructure_List, sequenceId, null);
     }
 }
コード例 #5
0
        private void ProcessEvent_Statistics(StatisticsParam obj)
        {
            DebugLog("Event_Statistics - {0} {1} {2} {3} {4}", obj.type, obj.int1, obj.int2, obj.int3, obj.int4);

            //CoreRemoved,    int1: Structure id, int2: destryoing entity id, int3: (optional) controlling entity id
            //CoreAdded,      int1: Structure id, int2: destryoing entity id, int3: (optional) controlling entity id
            //PlayerDied,     // int1: player entity id, int2: death type (Unknown = 0,Projectile = 1,Explosion = 2,Food = 3,Oxygen = 4,Disease = 5,Drowning = 6,Fall = 7,Suicide = 8), int3: (optional) other entity involved, int4: (optional) other entity CV/SV/HV id
            //StructOnOff,    int1: structure id, int2: changing entity id, int3: 0 = off, 1 = on
            //StructDestroyed,// int1: structure id, int2: type (0=wipe, 1=decay)

            if (obj.type == StatisticsType.PlayerDied)
            {
                HandleDeadPlayer(obj);
            }
        }
コード例 #6
0
        private void SetupGrids()
        {
            var blankEvent = new GridLogEvent();

            // таблица - лог роботов
            gridLog.Columns.Add(new FastColumn(blankEvent.Property(p => p.Time), Localizer.GetString("TitleTime"))
            {
                ColumnWidth = 90,
                SortOrder   = FastColumnSort.Ascending
            });
            gridLog.Columns.Add(new FastColumn(blankEvent.Property(p => p.RobotTitle), Localizer.GetString("TitleRobot"))
            {
                ColumnMinWidth = 50
            });
            gridLog.Columns.Add(new FastColumn(blankEvent.Property(p => p.Message), Localizer.GetString("TitleMessage"))
            {
                ColumnMinWidth = 40
            });
            gridLog.CheckSize();
            gridLog.CalcSetTableMinWidth();

            // статистика
            var blankStat = new StatisticsParam();

            gridStat.MultiSelectEnabled = true;
            gridStat.Columns.Add(new FastColumn(blankStat.Property(p => p.Title), Localizer.GetString("TitleParameter"))
            {
                //SortOrder = FastColumnSort.Ascending,
                ColumnMinWidth = 55
            });
            gridStat.Columns.Add(new FastColumn(blankStat.Property(p => p.Value), Localizer.GetString("TitleValue"))
            {
                ColumnMinWidth = 45,
                rowFormatter   = valueObject => ((StatisticsParam)valueObject).formatter == null
                                                      ? ((StatisticsParam)valueObject).Value.ToString()
                                                      : ((StatisticsParam)valueObject).formatter(
                    ((StatisticsParam)valueObject).Value)
            });
            gridStat.Columns.Add(new FastColumn(blankStat.Property(p => p.Description),
                                                Localizer.GetString("TitleDescription"))
            {
                ColumnMinWidth = 55
            });
            gridStat.CheckSize();
            gridStat.CalcSetTableMinWidth();
        }
コード例 #7
0
        private void PlayerDied_Event_Statistics(StatisticsParam obj)
        {
            Logger.log("***************event statistics!!!");
            var container = StatisticsContainer.FromStatisticsParam(obj);

            switch (container)
            {
            case PlayerDiedStatistics deathStats:
                var msg = $"Player {deathStats.PlayerId.id} was killed by {deathStats.KillerId.id}";

                Logger.log(msg, LogLevel.Message);
                MessageAllPlayers(msg);
                break;

            default:
                break;
            }
        }
コード例 #8
0
        private void PlayerDied_Event_Statistics(StatisticsParam obj)
        {
            log("***************event statistics!!!");
            var container = StatisticsContainer.FromStatisticsParam(obj);

            switch (container)
            {
            case PlayerDiedStatistics deathStats:
                var msg = new IdMsgPrio
                {
                    msg = $"Player {deathStats.PlayerId.id} was killed by {deathStats.KillerId.id}"
                };
                log(msg.msg);
                this.Request_InGameMessage_AllPlayers(msg);
                break;

            default:
                break;
            }
        }
コード例 #9
0
        /// <summary>
        /// 按客户名统计
        /// </summary>
        /// <returns></returns>
        public IActionResult GetDataByClient(StatisticsParam param)
        {
            if (param.BeginDate == null || param.EndDate == null)
            {
                return(JsonError("请输入查询时间段"));
            }

            param.UserId = CurrentUser.Id;
            if (param.BeginDate != null)
            {
                param.BeginDate = DateTime.Parse(string.Format("{0:yyyy-MM-dd}", param.BeginDate) + " 00:00:00");
            }
            if (param.EndDate != null)
            {
                param.EndDate = DateTime.Parse(string.Format("{0:yyyy-MM-dd}", param.EndDate) + " 23:59:59");
            }

            var list = _orderInfoRepository.GetDataByClient(param);

            return(Json(list));
        }
コード例 #10
0
        private async void PlayerDied_Event_Statistics(StatisticsParam obj)
        {
            //Log("***************event statistics!!!");
            var container = StatisticsContainer.FromStatisticsParam(obj);

            switch (container)
            {
            case PlayerDiedStatistics deathStats:
                var msg = new IdMsgPrio
                {
                    msg = $"Player {deathStats.PlayerId.id} was killed by {deathStats.KillerId.id}"
                };
                broker.Log(msg.msg);
                await broker.SendRequestAsync(CmdId.Request_InGameMessage_AllPlayers, msg);

                break;

            default:
                break;
            }
        }
コード例 #11
0
 public CoreAddedStatistics(StatisticsParam stats) : base(stats)
 {
 }
コード例 #12
0
 public CoreRemovedStatistics(StatisticsParam stats) : base(stats)
 {
 }
コード例 #13
0
 public StructureDestroyedStatistics(StatisticsParam stats) : base(stats)
 {
 }
コード例 #14
0
 public StatisticsContainer(StatisticsParam stats)
 {
     this.stats = stats;
 }
コード例 #15
0
 public StructurePowerStatistics(StatisticsParam stats) : base(stats)
 {
 }
コード例 #16
0
 public PlayerDiedStatistics(StatisticsParam stats) : base(stats)
 {
 }
コード例 #17
0
ファイル: StatInfoForm.cs プロジェクト: johnmensen/TradeSharp
        private void SetupGrids()
        {
            var blankEvent = new GridLogEvent();
            // таблица - лог роботов
            gridLog.Columns.Add(new FastColumn(blankEvent.Property(p => p.Time), Localizer.GetString("TitleTime"))
                {
                    ColumnWidth = 90,
                    SortOrder = FastColumnSort.Ascending
                });
            gridLog.Columns.Add(new FastColumn(blankEvent.Property(p => p.RobotTitle), Localizer.GetString("TitleRobot"))
                {
                    ColumnMinWidth = 50
                });
            gridLog.Columns.Add(new FastColumn(blankEvent.Property(p => p.Message), Localizer.GetString("TitleMessage"))
                {
                    ColumnMinWidth = 40
                });
            gridLog.CheckSize();
            gridLog.CalcSetTableMinWidth();

            // статистика
            var blankStat = new StatisticsParam();
            gridStat.Columns.Add(new FastColumn(blankStat.Property(p => p.Title), Localizer.GetString("TitleParameter"))
                {
                    //SortOrder = FastColumnSort.Ascending,
                    ColumnMinWidth = 55
                });
            gridStat.Columns.Add(new FastColumn(blankStat.Property(p => p.Value), Localizer.GetString("TitleValue"))
                {
                    ColumnMinWidth = 45,
                    rowFormatter = valueObject => ((StatisticsParam) valueObject).formatter == null
                                                      ? ((StatisticsParam) valueObject).Value.ToString()
                                                      : ((StatisticsParam) valueObject).formatter(
                                                          ((StatisticsParam) valueObject).Value)
                });
            gridStat.Columns.Add(new FastColumn(blankStat.Property(p => p.Description),
                                                Localizer.GetString("TitleDescription"))
                {
                    ColumnMinWidth = 55
                });
            gridStat.CheckSize();
            gridStat.CalcSetTableMinWidth();
        }
コード例 #18
0
        public void Game_Event(CmdId eventId, ushort seqNr, object data)
        {
            try
            {
                switch (eventId)
                {
                case CmdId.Event_Player_Info:
                    if (players.Where(e => e.entityId == ((PlayerInfo)data).entityId).Count() == 0)
                    {
                        players.Add((PlayerInfo)data);
                    }
                    break;

                case CmdId.Event_Player_Connected:
                    GameAPI.Game_Request(CmdId.Request_Player_Info, (ushort)CmdId.Request_Player_Info, (Id)data);
                    break;

                case CmdId.Event_Player_Disconnected:
                    players.Remove(players.FirstOrDefault(e => e.entityId == ((Id)data).id));
                    break;

                case CmdId.Event_Statistics:

                    StatisticsParam stats = (StatisticsParam)data;

                    if (stats.type == StatisticsType.PlayerDied)
                    {
                        String msg = String.Empty;

                        PlayerInfo result = players.FirstOrDefault(e => e.entityId == stats.int1);

                        String user = "******";

                        if (result != null)
                        {
                            user = ((PlayerInfo)result).playerName;
                        }
                        else
                        {
                            GameAPI.Game_Request(CmdId.Request_Player_Info, (ushort)CmdId.Request_Player_Info, new Id(stats.int1));
                        }

                        msg = String.Format(config.Messages.GetNextMessage(stats.int2), user);

                        PlayerInfo killer = players.FirstOrDefault(e => e.entityId == stats.int3);

                        if (killer != null)
                        {
                            msg += String.Format(config.Messages.GetNextMessage(-1), killer.playerName);
                        }

                        AlertMessage(msg);
                        if (config.MessageInChat)
                        {
                            ChatMessage(msg);
                        }
                    }
                    break;

                case CmdId.Event_ChatMessage:
                    ChatInfo ci = (ChatInfo)data;
                    if (ci == null)
                    {
                        break;
                    }

                    if (ci.type != 8 && ci.type != 7 && ci.msg == "!MODS")
                    {
                        ChatMessage("Death Messages by joemorin73.");
                    }
                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                GameAPI.Console_Write(ex.Message);
            }
        }
コード例 #19
0
        public void Game_Event(CmdId eventId, ushort seqNr, object data)
        {
            switch (eventId)
            {
            case CmdId.Event_Player_Connected:
                _scriptManager.HandlePlayerConnected((Id)data);
                break;

            case CmdId.Event_Player_Disconnected:
                _scriptManager.HandlePlayerDisconnected((Id)data);
                break;

            case CmdId.Event_ChatMessage:
                ChatInfo chatInfo = (ChatInfo)data;
                switch (chatInfo.type)
                {
                case 3:         // Global?
                    _scriptManager.HandleGlobalChatMessage(chatInfo.playerId, chatInfo.msg);
                    break;

                case 5:         // Faction?
                    _scriptManager.HandleFactionChatMessage(chatInfo.playerId, chatInfo.recipientFactionId, chatInfo.msg);
                    break;

                default:
                    LogMessage("Plugin", "Unknown Chat message Type: " + JsonUtility.ToJson(chatInfo));
                    break;
                }
                break;

            case CmdId.Event_Playfield_Loaded:
                _scriptManager.HandlePlayfieldLoaded((PlayfieldLoad)data);
                break;

            case CmdId.Event_Playfield_Unloaded:
                _scriptManager.HandlePlayfieldUnloaded((PlayfieldLoad)data);
                break;

            case CmdId.Event_Faction_Changed:
                _scriptManager.HandleFactionChanged((FactionChangeInfo)data);
                break;

            case CmdId.Event_Statistics:
                StatisticsParam statisticsParam = (StatisticsParam)data;
                switch (statisticsParam.type)
                {
                // TODO: Break these into Seperate functions
                case StatisticsType.CoreAdded:
                    LogMessage("Plugin", "Core Added: " + JsonUtility.ToJson(statisticsParam));
                    break;

                case StatisticsType.CoreRemoved:
                    LogMessage("Plugin", "Core Removed: " + JsonUtility.ToJson(statisticsParam));
                    break;

                case StatisticsType.PlayerDied:
                    LogMessage("Plugin", "Player Died: " + JsonUtility.ToJson(statisticsParam));
                    break;

                case StatisticsType.StructOnOff:
                    LogMessage("Plugin", "Struct On/Off: " + JsonUtility.ToJson(statisticsParam));
                    break;
                }
                break;

            case CmdId.Event_Player_Info:
                _scriptManager.ProcessResponseData(eventId, seqNr, data);
                break;

            case CmdId.Event_Error:
                _scriptManager.ProcessResponseData(eventId, seqNr, (ErrorInfo)data);
                break;

            default:
                LogMessage("Plugin",
                           "Unhandled Event - CmdId '" + Enum.GetName(typeof(CmdId), eventId) + "' " +
                           "seqNr: '" + seqNr + "' " +
                           "data: (" + data.GetType() + ") '" + JsonUtility.ToJson(data) + "'");
                break;
            }
        }