private void sendMail(ParamSendMailFullSvr sendParam)
    {
        BsonDocument mailItem = null;

        if (sendParam.m_itemList != "")
        {
            List <ParamItem> tmpItem = new List <ParamItem>();
            Tool.parseItemList(sendParam.m_itemList, tmpItem);

            Dictionary <string, object> dd = new Dictionary <string, object>();
            for (int i = 0; i < tmpItem.Count; i++)
            {
                Dictionary <string, object> tmpd = new Dictionary <string, object>();
                tmpd.Add("giftId", tmpItem[i].m_itemId);
                tmpd.Add("count", tmpItem[i].m_itemCount);
                tmpd.Add("receive", false);
                dd.Add(i.ToString(), tmpd.ToBsonDocument());
            }
            mailItem = dd.ToBsonDocument();
        }

        DateTime now = DateTime.Now;
        DateTime nt  = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second);

        int skip = 0;
        List <Dictionary <string, object> > data    = null;
        List <Dictionary <string, object> > docList = new List <Dictionary <string, object> >();

        int serverId = DBMgr.getInstance().getDbId(sendParam.m_dbServerIP);

        if (serverId == -1)
        {
            LogMgr.error("sendMail,找不到 dbIP={0} 相关信息", sendParam.m_dbServerIP);
            return;
        }

        IMongoQuery imq = createImq(sendParam);

        while (true)
        {
            data = ExportExcelBase.nextData(ref skip, 1000, imq, TableName.PLAYER_INFO, serverId, DbName.DB_PLAYER, m_playerFields);
            if (data == null)
            {
                break;
            }

            docList.Clear();
            for (int i = 0; i < data.Count; i++)
            {
                if (!data[i].ContainsKey("player_id"))
                {
                    continue;
                }

                Dictionary <string, object> tmp = new Dictionary <string, object>();
                tmp.Add("title", sendParam.m_title);
                tmp.Add("sender", sendParam.m_sender);
                tmp.Add("content", sendParam.m_content);

                tmp.Add("time", nt);
                tmp.Add("deadTime", nt.AddDays(sendParam.m_validDay));
                tmp.Add("isReceive", false);
                tmp.Add("playerId", Convert.ToInt32(data[i]["player_id"]));

                if (mailItem != null)
                {
                    tmp.Add("gifts", mailItem);
                }
                docList.Add(tmp);
            }

            DBMgr.getInstance().insertData(TableName.PLAYER_MAIL, docList, serverId, DbName.DB_PLAYER);
        }
    }
示例#2
0
    public override OpRes exportData(StreamWriter sheet, ExportParam param, int dbServerId)
    {
        int skip = 0;
        List <Dictionary <string, object> > data = null;

        sheet.WriteLine("时间,玩家ID,玩家昵称,属性,变化原因,初始值,结束值,差值(结束值-初始值),所在游戏,备注");

        int       t   = 0;
        XmlConfig xml = ResMgr.getInstance().getRes("money_reason.xml");

        while (true)
        {
            data = nextData(ref skip, 1000, m_imq, TableName.PUMP_PLAYER_MONEY, dbServerId, DbName.DB_PUMP);
            if (data == null)
            {
                break;
            }

            for (int i = 0; i < data.Count; i++)
            {
                sheet.Write(Convert.ToDateTime(data[i]["genTime"]).ToLocalTime().ToString());
                sheet.Write(",");

                t = Convert.ToInt32(data[i]["playerId"]);
                sheet.Write(t);
                sheet.Write(",");

                Dictionary <string, object> ret = getPlayerProperty(t, dbServerId, m_playerFields1);
                if (ret != null && ret.ContainsKey("nickname"))
                {
                    sheet.Write(Convert.ToString(ret["nickname"]));
                }
                sheet.Write(",");

                t = Convert.ToInt32(data[i]["itemId"]);
                sheet.Write(t == 1 ? "金币" : "礼券");
                sheet.Write(",");

                t = Convert.ToInt32(data[i]["reason"]);
                if (xml != null)
                {
                    sheet.Write(xml.getString(t.ToString(), ""));
                }
                sheet.Write(",");

                t = Convert.ToInt32(data[i]["oldValue"]);
                sheet.Write(t);
                sheet.Write(",");

                t = Convert.ToInt32(data[i]["newValue"]);
                sheet.Write(t);
                sheet.Write(",");

                t = Convert.ToInt32(data[i]["addValue"]);
                sheet.Write(t);
                sheet.Write(",");

                t = Convert.ToInt32(data[i]["gameId"]);
                sheet.Write(StrName.s_gameName[t]);
                sheet.Write(",");

                if (data[i].ContainsKey("param"))
                {
                    string str = ExportExcelBase.convertToCsvStr(Convert.ToString(data[i]["param"]));
                    sheet.Write(str);
                }

                sheet.WriteLine();
            }
        }

        return(OpRes.opres_success);
    }
示例#3
0
    public override OpRes exportData(StreamWriter sheet, ExportParam param, int dbServerId)
    {
        for (int i = 0; i < s_head.Length; i++)
        {
            sheet.Write(s_head[i]);
            sheet.Write(',');
        }
        sheet.WriteLine();

        MapReduceResult map_result = DBMgr.getInstance().executeMapReduce(TableName.PUMP_RECHARGE_PLAYER,
                                                                          dbServerId,
                                                                          DbName.DB_PUMP,
                                                                          m_imq,
                                                                          MapReduceTable.getMap("rechargePlayer"),
                                                                          MapReduceTable.getReduce("rechargePlayer"));

        if (map_result != null)
        {
            IEnumerable <BsonDocument> bson = map_result.GetResults();
            foreach (BsonDocument d in bson)
            {
                try
                {
                    ResultRPlayerItem tmp = new ResultRPlayerItem();

                    tmp.m_playerId = Convert.ToInt32(d["_id"]);
                    BsonValue resValue = d["value"];
                    tmp.m_rechargeCount = resValue["rechargeCount"].ToInt32();
                    tmp.m_rechargeMoney = resValue["rechargeMoney"].ToInt32();
                    tmp.m_loginCount    = resValue["loginCount"].ToInt32();

                    var arr = resValue["enterGame"].AsBsonArray;
                    for (int i = 0; i < arr.Count; i++)
                    {
                        tmp.addEnterCount(i + 1, arr[i].ToInt32());
                    }

                    Dictionary <string, object> pd = ExportExcelBase.getPlayerProperty(tmp.m_playerId, dbServerId, s_fields);
                    if (pd != null)
                    {
                        tmp.m_mostGold      = Convert.ToInt32(pd["maxGold"]);
                        tmp.m_remainGold    = Convert.ToInt32(pd["gold"]);
                        tmp.m_regTime       = Convert.ToDateTime(pd["create_time"]).ToLocalTime();
                        tmp.m_lastLoginTime = Convert.ToDateTime(pd["logout_time"]).ToLocalTime();
                    }

                    sheet.Write(tmp.m_playerId); sheet.Write(",");
                    sheet.Write(tmp.m_rechargeCount); sheet.Write(",");
                    sheet.Write(tmp.m_rechargeMoney); sheet.Write(",");

                    sheet.Write(tmp.m_regTime.ToString()); sheet.Write(",");
                    sheet.Write(tmp.m_loginCount); sheet.Write(",");
                    sheet.Write(tmp.m_remainGold); sheet.Write(",");
                    sheet.Write(tmp.m_lastLoginTime.ToString()); sheet.Write(",");
                    sheet.Write(tmp.m_mostGold); sheet.Write(",");

                    sheet.Write(tmp.getEnterCount((int)GameId.fishlord)); sheet.Write(",");
                    sheet.Write(tmp.getEnterCount((int)GameId.shcd)); sheet.Write(",");
                    sheet.Write(tmp.getEnterCount((int)GameId.cows)); sheet.Write(",");
                    sheet.Write(tmp.getEnterCount((int)GameId.dragon)); sheet.Write(",");
                    sheet.Write(tmp.getEnterCount((int)GameId.crocodile)); sheet.Write(",");
                    sheet.Write(tmp.getEnterCount((int)GameId.baccarat)); sheet.Write(",");
                    sheet.Write(tmp.getEnterCount((int)GameId.dice));

                    sheet.WriteLine();
                }
                catch (System.Exception ex)
                {
                }
            }
        }
        return(OpRes.opres_success);
    }