大家好,我是彬哥,本节给大家讲下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
有疑问加站长微信联系(非本文作者)