彬哥笔记 --14 Go语言 游戏服务器数据统计导出CSV功能简单介绍 实例

Golang语言社区 · · 850 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

      大家好,我是彬哥,本节给大家讲下go语言服务器游戏数据统计相关,抛砖引玉了,主要是针对活动游戏数据库导出数据的需求。

代码如下:

func GetCQJB_LingQu_Info(TimeStart, TimeEnd string) string {
    // 获取数据
    strSql := "select * from t_CQJB_lingquBak where time <  " + TimeEnd + "  AND time > " + TimeStart
    Rows, err := GetMySQL().Query(strSql)
    defer Rows.Close()
    if err != nil {
        glog.Info("GetAcount_OutTime_Data err:" + err.Error())
        return ""
    }
    // 二维数组
    var data [][]string
    data = append(data, []string{"id", "姓名", "手机", "中奖信息", "中奖时间"})
    indexNUM := 1
    // 取数据
    for Rows.Next() {
        gameinfo := new(MysqlST)
        gameinfosend := new(MysqlSTbak)
        Rows.Scan(&gameinfo.id, &gameinfo.mobi, &gameinfo.data, &gameinfo.time)
        // 1 查分 gameinfo.data
        datass := strings.Split(gameinfo.data, "|")
        if len(datass) == 2 {
            // 2 查询中奖名字

            gameinfosend.id = gameinfo.id
            gameinfosend.name = datass[0]
            gameinfosend.mobi = gameinfo.mobi
            sss, _ := strconv.Atoi(datass[1])
            gameinfosend.jiangpin = JiangPin[sss]
            // 3 时间戳转时间
            int64time, _ := strconv.ParseInt(gameinfo.time, 10, 64)
            tm := time.Unix(int64time, 0)
            gameinfosend.time = tm.Format("2006-01-02 03:04:05")
            // 4 保存数据
            data = append(data, []string{strconv.Itoa(indexNUM), datass[0], gameinfo.mobi, JiangPin[sss], tm.Format("2006-01-02 03:04:05 PM")})
            indexNUM++
        }

    }
    // 5 写csv文件
    int64timestart, _ := strconv.ParseInt(TimeStart, 10, 64)
    int64timeend, _ := strconv.ParseInt(TimeEnd, 10, 64)
    tm1 := time.Unix(int64timestart, 0)
    tm2 := time.Unix(int64timeend, 0)
    f, err := os.Create("/var/www/html/CSV_CQJB/" + tm1.Format("2006-01-02") + "至" + tm2.Format("2006-01-02") + ".csv") //创建文件
    if err != nil {
        panic(err)
    }
    defer f.Close()
    f.WriteString("\xEF\xBB\xBF") // 写入UTF-8 BOM
    w := csv.NewWriter(f)         //创建一个新的写入文件流
    w.WriteAll(data)              //写入数据
    w.Flush()

    return "CSV_CQJB/" + tm1.Format("2006-01-02") + "至" + tm2.Format("2006-01-02") + ".csv"
}

注:
游戏服务器的数据库都会配置一台作为数据统计的服务器,主要目的是做数据分析,具体设计请参考社区框架LollipopGo框架设计

      每天坚持学习1小时Go语言,大家加油,我是彬哥,下期见!如果文章中不同观点、意见请文章下留言或者关注下方订阅号反馈!


社区交流群:221273219
Golang语言社区论坛 :
www.Golang.Ltd
LollipopGo游戏服务器地址:
https://github.com/Golangltd/LollipopGo
社区视频课程课件GIT地址:
https://github.com/Golangltd/codeclass


Golang语言社区

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:Golang语言社区

查看原文:彬哥笔记 --14 Go语言 游戏服务器数据统计导出CSV功能简单介绍 实例

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

850 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传