generated from root/miduo_server
1185 lines
35 KiB
Go
1185 lines
35 KiB
Go
package gm
|
||
|
||
import (
|
||
"context"
|
||
"encoding/csv"
|
||
"encoding/json"
|
||
"fmt"
|
||
"github.com/gogf/gf/container/glist"
|
||
"github.com/gogf/gf/container/gmap"
|
||
"github.com/gogf/gf/frame/g"
|
||
"github.com/gogf/gf/net/ghttp"
|
||
"github.com/gogf/gf/os/gfile"
|
||
"github.com/gogf/gf/util/gconv"
|
||
"gmanager/app/api/game"
|
||
"gmanager/library/base"
|
||
"gmanager/library/mongo/gameinfo"
|
||
"gmanager/library/mongo/gm"
|
||
"gmanager/library/mongo/util"
|
||
"gmanager/library/netutil"
|
||
"go.mongodb.org/mongo-driver/bson"
|
||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||
"log"
|
||
"os"
|
||
"strings"
|
||
"time"
|
||
)
|
||
|
||
type Action struct {
|
||
base.BaseRouter
|
||
}
|
||
|
||
//发送邮件日志列表
|
||
func (action *Action) GetSendMailList(r *ghttp.Request) {
|
||
var timeLayoutStr = "2006-01-02 15:04:05"
|
||
form := base.NewForm(r.GetMap())
|
||
bs := bson.D{bson.E{"cmd", "sendmail"}}
|
||
data := g.ListAnyAny{}
|
||
count := gm.ModelSendMailLog.GetListCount(bs)
|
||
page := util.Page{
|
||
PageSize: gconv.Int64(form.Rows),
|
||
CurrentPage: gconv.Int64(form.Page),
|
||
Total: gconv.Int64(count),
|
||
}
|
||
sendMailLogList := gm.ModelSendMailLog.GetPageList(bs, page)
|
||
dayMap := gmap.New()
|
||
for sendMailLogList.Next(context.TODO()) {
|
||
var sendMailLog gm.SendMailLog
|
||
err := sendMailLogList.Decode(&sendMailLog)
|
||
if err != nil {
|
||
//log.Fatal(err)
|
||
log.Println(err)
|
||
continue
|
||
}
|
||
dayMap.Set("id", sendMailLog.Id)
|
||
dayMap.Set("userid", sendMailLog.UserId)
|
||
dayMap.Set("servername", sendMailLog.ServerName)
|
||
dayMap.Set("param", sendMailLog.Param)
|
||
dayMap.Set("title", sendMailLog.Title)
|
||
dayMap.Set("content", sendMailLog.Content)
|
||
dayMap.Set("cmd", sendMailLog.Cmd)
|
||
dayMap.Set("updateuser", sendMailLog.UpdateUser)
|
||
st := time.Unix(sendMailLog.UpdateTime, 0).Format(timeLayoutStr)
|
||
dayMap.Set("updatetime", st)
|
||
dayMap.Set("state", sendMailLog.State)
|
||
data = append(g.ListAnyAny{gconv.Map(dayMap)}, data...)
|
||
}
|
||
fmt.Println(data)
|
||
base.Succ(r,
|
||
g.Map{
|
||
"rows": data,
|
||
"total": page.Total,
|
||
"current": page.CurrentPage,
|
||
})
|
||
}
|
||
|
||
//全服发送邮件日志列表
|
||
func (action *Action) GetSendMailAllList(r *ghttp.Request) {
|
||
var timeLayoutStr = "2006-01-02 15:04:05"
|
||
form := base.NewForm(r.GetMap())
|
||
bs := bson.D{bson.E{"cmd", "sendmailall"}}
|
||
data := g.ListAnyAny{}
|
||
count := gm.ModelSendMailLog.GetListCount(bs)
|
||
page := util.Page{
|
||
PageSize: gconv.Int64(form.Rows),
|
||
CurrentPage: gconv.Int64(form.Page),
|
||
Total: gconv.Int64(count),
|
||
}
|
||
sendMailLogList := gm.ModelSendMailLog.GetPageList(bs, page)
|
||
dayMap := gmap.New()
|
||
for sendMailLogList.Next(context.TODO()) {
|
||
var sendMailLog gm.SendMailLog
|
||
err := sendMailLogList.Decode(&sendMailLog)
|
||
if err != nil {
|
||
//log.Fatal(err)
|
||
log.Println(err)
|
||
continue
|
||
}
|
||
dayMap.Set("id", sendMailLog.Id)
|
||
dayMap.Set("servername", sendMailLog.ServerName)
|
||
dayMap.Set("param", sendMailLog.Param)
|
||
dayMap.Set("title", sendMailLog.Title)
|
||
dayMap.Set("content", sendMailLog.Content)
|
||
dayMap.Set("cmd", sendMailLog.Cmd)
|
||
dayMap.Set("updateuser", sendMailLog.UpdateUser)
|
||
st := time.Unix(sendMailLog.UpdateTime, 0).Format(timeLayoutStr)
|
||
dayMap.Set("updatetime", st)
|
||
dayMap.Set("state", sendMailLog.State)
|
||
data = append(g.ListAnyAny{gconv.Map(dayMap)}, data...)
|
||
}
|
||
fmt.Println(data)
|
||
base.Succ(r,
|
||
g.Map{
|
||
"rows": data,
|
||
"total": page.Total,
|
||
"current": page.CurrentPage,
|
||
})
|
||
}
|
||
|
||
//保存邮件日志
|
||
func (action *Action) SaveMailLog(r *ghttp.Request) {
|
||
form := base.NewForm(r.GetMap())
|
||
cmdStr := form.Params["cmdStr"]
|
||
serverid := form.Params["serverid"]
|
||
if serverid == "" {
|
||
base.Fail(r, "请选择服务器")
|
||
}
|
||
userid := form.Params["userid"]
|
||
if cmdStr == "sendmail" && userid == "" {
|
||
base.Fail(r, "请输入用户uid")
|
||
}
|
||
useridArray := strings.Split(userid, "#")
|
||
param := form.Params["param"]
|
||
if param == "" {
|
||
base.Fail(r, "请输入参数")
|
||
}
|
||
title := form.Params["title"]
|
||
if title == "" {
|
||
base.Fail(r, "请输入标题")
|
||
}
|
||
content := form.Params["content"]
|
||
if content == "" {
|
||
base.Fail(r, "请输入内容")
|
||
}
|
||
//根据服务器id查询gmip,gmport,服务器名称
|
||
singleResult := gameinfo.ModelServer.FindOne("_id", gconv.Int32(serverid))
|
||
var serverInfo gameinfo.ServerInfo
|
||
err := singleResult.Decode(&serverInfo)
|
||
if err != nil {
|
||
base.Fail(r, "查询服务器信息出现异常,"+serverid)
|
||
}
|
||
gmip := serverInfo.GMIp
|
||
gmport := serverInfo.GMPort
|
||
servername := serverInfo.Name
|
||
data := g.ListAnyAny{}
|
||
dayMap := gmap.New()
|
||
for _, uid := range useridArray {
|
||
//保存日志
|
||
sendmail := new(gm.SendMailLog)
|
||
sendmail.Id = primitive.NewObjectID()
|
||
if cmdStr == "sendmail" {
|
||
sendmail.UserId = gconv.String(uid)
|
||
}
|
||
sendmail.ServerId = gconv.String(serverid)
|
||
sendmail.ServerName = gconv.String(servername)
|
||
sendmail.GMIp = gconv.String(gmip)
|
||
sendmail.GMPort = gconv.String(gmport)
|
||
sendmail.Param = gconv.String(param)
|
||
sendmail.Title = gconv.String(title)
|
||
sendmail.Content = gconv.String(content)
|
||
sendmail.Cmd = gconv.String(cmdStr)
|
||
username := base.GetUser(r).Username
|
||
sendmail.UpdateUser = username
|
||
sendmail.UpdateTime = time.Now().Unix()
|
||
sendmail.State = 2 //刚保存为发送中 30s后执行发送;邮件状态:0:未发送 1:已发送 2:发送中 3:发送失败
|
||
gm.ModelSendMailLog.InsertOne(sendmail)
|
||
dayMap.Set("id", sendmail.Id)
|
||
data = append(g.ListAnyAny{gconv.Map(dayMap)}, data...)
|
||
}
|
||
base.Resp(r, 0, "保存成功", data)
|
||
}
|
||
|
||
//保存邮件日志
|
||
func (action *Action) SaveMailLogAll(r *ghttp.Request) {
|
||
form := base.NewForm(r.GetMap())
|
||
cmdStr := form.Params["cmdStr"]
|
||
serverid := form.Params["serverid"]
|
||
if serverid == "" {
|
||
base.Fail(r, "请选择服务器")
|
||
}
|
||
|
||
jsonData := form.Params["jsonData"]
|
||
var mailParams []game.MailParam
|
||
decodeErr := json.Unmarshal([]byte(jsonData), &mailParams)
|
||
if decodeErr != nil {
|
||
base.Fail(r, "解析JSON时发生错误:,"+serverid)
|
||
}
|
||
|
||
//根据服务器id查询gmip,gmport,服务器名称
|
||
singleResult := gameinfo.ModelServer.FindOne("_id", gconv.Int32(serverid))
|
||
var serverInfo gameinfo.ServerInfo
|
||
err := singleResult.Decode(&serverInfo)
|
||
if err != nil {
|
||
base.Fail(r, "查询服务器信息出现异常,"+serverid)
|
||
}
|
||
gmip := serverInfo.GMIp
|
||
gmport := serverInfo.GMPort
|
||
servername := serverInfo.Name
|
||
data := g.ListAnyAny{}
|
||
dayMap := gmap.New()
|
||
for _, mailInfo := range mailParams {
|
||
//保存日志
|
||
sendmail := new(gm.SendMailLog)
|
||
sendmail.Id = primitive.NewObjectID()
|
||
if cmdStr == "sendmail" {
|
||
sendmail.UserId = gconv.String(mailInfo.Id)
|
||
}
|
||
sendmail.ServerId = gconv.String(serverid)
|
||
sendmail.ServerName = gconv.String(servername)
|
||
sendmail.GMIp = gconv.String(gmip)
|
||
sendmail.GMPort = gconv.String(gmport)
|
||
sendmail.Param = gconv.String(mailInfo.Param)
|
||
sendmail.Title = gconv.String(mailInfo.Title)
|
||
sendmail.Content = gconv.String(mailInfo.Content)
|
||
sendmail.Cmd = gconv.String(cmdStr)
|
||
username := base.GetUser(r).Username
|
||
sendmail.UpdateUser = username
|
||
sendmail.UpdateTime = time.Now().Unix()
|
||
sendmail.State = 2 //刚保存为发送中 30s后执行发送;邮件状态:0:未发送 1:已发送 2:发送中 3:发送失败
|
||
gm.ModelSendMailLog.InsertOne(sendmail)
|
||
dayMap.Set("id", sendmail.Id)
|
||
data = append(g.ListAnyAny{gconv.Map(dayMap)}, data...)
|
||
}
|
||
base.Resp(r, 0, "保存成功", data)
|
||
}
|
||
|
||
//修改邮件
|
||
func (action *Action) UpdateMail(r *ghttp.Request) {
|
||
form := base.NewForm(r.GetMap())
|
||
data := gconv.Map(form.Params["data"])
|
||
gm.ModelSendMailLog.InsUpdate(gconv.String(data["id"]), gconv.Int(data["state"]))
|
||
base.Resp(r, 0, "操作成功", nil)
|
||
}
|
||
|
||
//发送邮件
|
||
func (action *Action) SendMail(r *ghttp.Request) {
|
||
form := base.NewForm(r.GetMap())
|
||
_dataId := gconv.Map(form.Params["dataId"])
|
||
for _, id := range _dataId {
|
||
_data := gconv.Map(id)
|
||
dataId := gconv.String(_data["id"])
|
||
obj_id, _ := primitive.ObjectIDFromHex(dataId)
|
||
data := gm.ModelSendMailLog.FindOne("_id", obj_id)
|
||
var sendMailLog gm.SendMailLog
|
||
err := data.Decode(&sendMailLog)
|
||
if err != nil {
|
||
gm.ModelSendMailLog.InsUpdate(gconv.String(dataId), 3)
|
||
base.Resp(r, -1, "当前数据有误", nil)
|
||
}
|
||
cmdStr := sendMailLog.Cmd
|
||
serverid := sendMailLog.ServerId
|
||
userid := ""
|
||
if cmdStr == "sendmail" {
|
||
userid = sendMailLog.UserId
|
||
}
|
||
param := sendMailLog.Param
|
||
title := sendMailLog.Title
|
||
content := sendMailLog.Content
|
||
//根据服务器id查询gmip,gmport,服务器名称
|
||
singleResult := gameinfo.ModelServer.FindOne("_id", gconv.Int32(serverid))
|
||
var serverInfo gameinfo.ServerInfo
|
||
err = singleResult.Decode(&serverInfo)
|
||
if err != nil {
|
||
gm.ModelSendMailLog.InsUpdate(gconv.String(dataId), 3)
|
||
base.Resp(r, -1, "查询服务器信息出现异常", nil)
|
||
}
|
||
gmip := serverInfo.GMIp
|
||
gmport := serverInfo.GMPort
|
||
ages := param + "@#" + title + "@#" + content
|
||
cmd := netutil.Gmcmd{
|
||
ServerIp: gmip,
|
||
ServerPort: gmport,
|
||
Cmd: cmdStr,
|
||
UserId: userid,
|
||
Args: ages,
|
||
}
|
||
res := int32(-1)
|
||
if cmdStr == "sendmail" {
|
||
res = cmd.SendGM() //0 成功
|
||
} else if cmdStr == "sendmailall" {
|
||
res = cmd.SendGMAll() //0 成功
|
||
} else {
|
||
gm.ModelSendMailLog.InsUpdate(gconv.String(dataId), 3)
|
||
base.Resp(r, -1, "当前数据有误", nil)
|
||
}
|
||
if res == -100 {
|
||
// 修改日志状态为发送失败
|
||
gm.ModelSendMailLog.InsUpdate(gconv.String(dataId), 3)
|
||
base.Resp(r, -1, "thrift解析地址时出错", nil)
|
||
} else if res == -101 {
|
||
gm.ModelSendMailLog.InsUpdate(gconv.String(dataId), 3)
|
||
base.Resp(r, -1, "thrift打开服务器socket出错", nil)
|
||
} else if res == 0 {
|
||
// 修改日志状态为已发送
|
||
gm.ModelSendMailLog.InsUpdate(gconv.String(dataId), 1)
|
||
} else {
|
||
gm.ModelSendMailLog.InsUpdate(gconv.String(dataId), 3)
|
||
base.Resp(r, -1, "发送失败", nil)
|
||
}
|
||
}
|
||
base.Resp(r, 0, "发送成功", nil)
|
||
|
||
}
|
||
|
||
//全服发送邮件
|
||
func (action *Action) SendMailAll(r *ghttp.Request) {
|
||
const cmdStr = "sendmailall"
|
||
form := base.NewForm(r.GetMap())
|
||
serverid := form.Params["serverid"]
|
||
if serverid == "" {
|
||
base.Fail(r, "请选择服务器")
|
||
}
|
||
param := form.Params["param"]
|
||
if param == "" {
|
||
base.Fail(r, "请输入参数")
|
||
}
|
||
title := form.Params["title"]
|
||
if title == "" {
|
||
base.Fail(r, "请输入标题")
|
||
}
|
||
content := form.Params["content"]
|
||
if content == "" {
|
||
base.Fail(r, "请输入内容")
|
||
}
|
||
ages := param + "@#" + title + "@#" + content
|
||
//根据服务器id查询gmip,gmport,服务器名称
|
||
singleResult := gameinfo.ModelServer.FindOne("_id", gconv.Int32(serverid))
|
||
var serverInfo gameinfo.ServerInfo
|
||
err := singleResult.Decode(&serverInfo)
|
||
gmip := serverInfo.GMIp
|
||
gmport := serverInfo.GMPort
|
||
servername := serverInfo.Name
|
||
if err != nil {
|
||
base.Fail(r, "查询服务器信息出现异常,"+serverid)
|
||
}
|
||
cmd := netutil.Gmcmd{
|
||
ServerIp: gmip,
|
||
ServerPort: gmport,
|
||
Cmd: cmdStr,
|
||
Args: ages,
|
||
}
|
||
res := cmd.SendGMAll() //0 成功
|
||
if res == -100 {
|
||
base.Resp(r, 1, "thrift解析地址时出错", nil)
|
||
} else if res == -101 {
|
||
base.Resp(r, 1, "thrift打开服务器socket出错", nil)
|
||
}
|
||
//保存日志
|
||
sendmail := new(gm.SendMailLog)
|
||
sendmail.Id = primitive.NewObjectID()
|
||
sendmail.ServerId = gconv.String(serverid)
|
||
sendmail.ServerName = gconv.String(servername)
|
||
sendmail.GMIp = gconv.String(gmip)
|
||
sendmail.GMPort = gconv.String(gmport)
|
||
sendmail.Param = gconv.String(param)
|
||
sendmail.Title = gconv.String(title)
|
||
sendmail.Content = gconv.String(content)
|
||
sendmail.Cmd = gconv.String(cmdStr)
|
||
username := base.GetUser(r).Username
|
||
sendmail.UpdateUser = username
|
||
sendmail.UpdateTime = time.Now().Unix()
|
||
insertOne := gm.ModelSendMailLog.InsertOne(sendmail)
|
||
fmt.Println(serverid, servername, gmip, gmport, param, title, content, cmdStr, username, time.Now().Unix())
|
||
fmt.Println("insertOne.InsertedID==============", insertOne.InsertedID)
|
||
if res == 0 {
|
||
base.Resp(r, 0, "发送成功", nil)
|
||
} else {
|
||
base.Resp(r, 1, "发送失败", nil)
|
||
}
|
||
}
|
||
|
||
//查询用户充值记录
|
||
func (action *Action) GetRechargeInfoList(r *ghttp.Request) {
|
||
form := base.NewForm(r.GetMap())
|
||
serverid := form.Params["serverid"]
|
||
if serverid == "" {
|
||
base.Fail(r, "请选择服务器")
|
||
}
|
||
userid := form.Params["userid"]
|
||
if userid == "" {
|
||
base.Fail(r, "请输入用户id")
|
||
}
|
||
page := g.ListAnyAny{}
|
||
bs := bson.D{bson.E{"_id", gconv.Int32(userid)}}
|
||
rechargeInfoRes := gm.ModelRechargeInfo.FindRechargeInfo(bs, serverid)
|
||
|
||
var showsWithInfo []bson.M
|
||
if err := rechargeInfoRes.All(context.TODO(), &showsWithInfo); err != nil {
|
||
fmt.Println(err)
|
||
}
|
||
if showsWithInfo == nil {
|
||
base.Fail(r, "该用户不存在")
|
||
return
|
||
}
|
||
playerManager := showsWithInfo[0]["playerManager"]
|
||
playerManagerMap := gconv.Map(playerManager)
|
||
res := gconv.Map(playerManagerMap["rechargeInfo"])
|
||
dayMap := gmap.New()
|
||
dayMap.Set("userid", userid)
|
||
dayMap.Set("servername", serverid)
|
||
dayMap.Set("saveAmt", res["saveAmt"])
|
||
dayMap.Set("soulCrystalAmt", res["soulCrystalAmt"])
|
||
dayMap.Set("monthSaveAmt", res["monthSaveAmt"])
|
||
dayMap.Set("smonthSaveAmt", res["smonthSaveAmt"])
|
||
dayMap.Set("isFirst", res["isFirst"])
|
||
var timeLayoutStr = "2006-01-02 15:04:05"
|
||
st := time.Unix(gconv.Int64(res["createTime"])/1000, 0).Format(timeLayoutStr)
|
||
dayMap.Set("createTime", st)
|
||
dayMap.Set("isDayFirst", res["isDayFirst"])
|
||
page = append(g.ListAnyAny{gconv.Map(dayMap)}, page...)
|
||
base.Succ(r,
|
||
g.Map{
|
||
"page": form.Page,
|
||
"rows": page,
|
||
"total": form.TotalPage,
|
||
"records": form.TotalSize,
|
||
})
|
||
}
|
||
|
||
func (action *Action) Pay(r *ghttp.Request) {
|
||
const cmdStr = "pay"
|
||
form := base.NewForm(r.GetMap())
|
||
serverid := form.Params["serverid"]
|
||
if serverid == "" {
|
||
base.Fail(r, "请选择服务器")
|
||
}
|
||
userid := form.Params["userid"]
|
||
if userid == "" {
|
||
base.Fail(r, "请输入userid")
|
||
}
|
||
payid := form.Params["payid"]
|
||
if payid == "" {
|
||
base.Fail(r, "请输入payid")
|
||
}
|
||
ages := payid
|
||
//根据服务器id查询gmip,gmport,服务器名称
|
||
singleResult := gameinfo.ModelServer.FindOne("_id", gconv.Int32(serverid))
|
||
var serverInfo gameinfo.ServerInfo
|
||
err := singleResult.Decode(&serverInfo)
|
||
gmip := serverInfo.GMIp
|
||
gmport := serverInfo.GMPort
|
||
servername := serverInfo.Name
|
||
if err != nil {
|
||
base.Fail(r, "查询服务器信息出现异常,"+serverid)
|
||
}
|
||
cmd := netutil.Gmcmd{
|
||
ServerIp: gmip,
|
||
ServerPort: gmport,
|
||
Cmd: cmdStr,
|
||
UserId: userid,
|
||
Args: ages,
|
||
}
|
||
res := cmd.SendGM() //0 成功
|
||
if res == -100 {
|
||
base.Resp(r, 1, "thrift解析地址时出错", nil)
|
||
} else if res == -101 {
|
||
base.Resp(r, 1, "thrift打开服务器socket出错", nil)
|
||
}
|
||
//保存日志
|
||
payLog := new(gm.PayLog)
|
||
payLog.Id = primitive.NewObjectID()
|
||
payLog.UserId = gconv.String(userid)
|
||
payLog.PayId = gconv.String(payid)
|
||
payLog.ServerId = gconv.String(serverid)
|
||
payLog.ServerName = gconv.String(servername)
|
||
payLog.GMIp = gconv.String(gmip)
|
||
payLog.GMPort = gconv.String(gmport)
|
||
payLog.Cmd = gconv.String(cmdStr)
|
||
username := base.GetUser(r).Username
|
||
payLog.UpdateUser = username
|
||
payLog.UpdateTime = time.Now().Unix()
|
||
gm.ModelPayLog.InsertOne(payLog)
|
||
fmt.Println(userid, serverid, servername, gmip, gmport, payid, cmdStr, username, time.Now().Unix())
|
||
if res == 0 {
|
||
base.Resp(r, 0, "充值成功", nil)
|
||
} else {
|
||
base.Resp(r, 1, "充值失败", nil)
|
||
}
|
||
}
|
||
|
||
//充值日志列表
|
||
func (action *Action) GetPayLogList(r *ghttp.Request) {
|
||
var timeLayoutStr = "2006-01-02 15:04:05"
|
||
form := base.NewForm(r.GetMap())
|
||
//bs := bson.D{bson.E{"cmd", "pay"}}
|
||
bs := bson.D{{}}
|
||
data := g.ListAnyAny{}
|
||
count := gm.ModelPayLog.GetListCount(bs)
|
||
page := util.Page{
|
||
PageSize: gconv.Int64(form.Rows),
|
||
CurrentPage: gconv.Int64(form.Page),
|
||
Total: gconv.Int64(count),
|
||
}
|
||
payLogList := gm.ModelPayLog.GetPageList(bs, page)
|
||
dayMap := gmap.New()
|
||
for payLogList.Next(context.TODO()) {
|
||
var payLog gm.PayLog
|
||
err := payLogList.Decode(&payLog)
|
||
if err != nil {
|
||
//log.Fatal(err)
|
||
log.Println(err)
|
||
continue
|
||
}
|
||
dayMap.Set("servername", payLog.ServerName)
|
||
dayMap.Set("userid", payLog.UserId)
|
||
dayMap.Set("payid", payLog.PayId)
|
||
dayMap.Set("cmd", payLog.Cmd)
|
||
dayMap.Set("updateuser", payLog.UpdateUser)
|
||
st := time.Unix(payLog.UpdateTime, 0).Format(timeLayoutStr)
|
||
dayMap.Set("updatetime", st)
|
||
data = append(g.ListAnyAny{gconv.Map(dayMap)}, data...)
|
||
}
|
||
fmt.Println(data)
|
||
base.Succ(r,
|
||
g.Map{
|
||
"rows": data,
|
||
"total": page.Total,
|
||
"current": page.CurrentPage,
|
||
})
|
||
}
|
||
|
||
//查询CreatCdk列表
|
||
func (action *Action) GetCreatCdkList(r *ghttp.Request) {
|
||
var timeLayoutStr = "2006-01-02 15:04:05"
|
||
form := base.NewForm(r.GetMap())
|
||
bs := bson.D{{}}
|
||
data := g.ListAnyAny{}
|
||
count := gm.ModelCreatcdkLog.GetListCount(bs)
|
||
page := util.Page{
|
||
PageSize: gconv.Int64(form.Rows),
|
||
CurrentPage: gconv.Int64(form.Page),
|
||
Total: gconv.Int64(count),
|
||
}
|
||
creatcdkLogList := gm.ModelCreatcdkLog.GetPageList(bs, page)
|
||
dayMap := gmap.New()
|
||
for creatcdkLogList.Next(context.TODO()) {
|
||
var creatcdkLog gm.CreatcdkLog
|
||
err := creatcdkLogList.Decode(&creatcdkLog)
|
||
if err != nil {
|
||
//log.Fatal(err)
|
||
log.Println(err)
|
||
continue
|
||
}
|
||
dayMap.Set("infoid", creatcdkLog.InfoId)
|
||
dayMap.Set("ctype", creatcdkLog.Ctype)
|
||
dayMap.Set("reward", creatcdkLog.Reward)
|
||
dayMap.Set("title", creatcdkLog.Title)
|
||
dayMap.Set("contetnt", creatcdkLog.Contetnt)
|
||
dayMap.Set("channelname", creatcdkLog.ChannelName)
|
||
dayMap.Set("cmd", creatcdkLog.Cmd)
|
||
dayMap.Set("updateuser", creatcdkLog.UpdateUser)
|
||
st := time.Unix(creatcdkLog.UpdateTime, 0).Format(timeLayoutStr)
|
||
dayMap.Set("updatetime", st)
|
||
data = append(g.ListAnyAny{gconv.Map(dayMap)}, data...)
|
||
}
|
||
fmt.Println(data)
|
||
base.Succ(r,
|
||
g.Map{
|
||
"rows": data,
|
||
"total": page.Total,
|
||
"current": page.CurrentPage,
|
||
})
|
||
}
|
||
|
||
func (action *Action) CreatCdk(r *ghttp.Request) {
|
||
const cmdStr = "creatcdk"
|
||
form := base.NewForm(r.GetMap())
|
||
ctype := form.Params["ctype"]
|
||
if ctype == "" {
|
||
base.Fail(r, "请选择类型")
|
||
}
|
||
reward := form.Params["reward"]
|
||
if reward == "" {
|
||
base.Fail(r, "请输入奖励")
|
||
}
|
||
title := form.Params["title"]
|
||
if title == "" {
|
||
base.Fail(r, "请输入邮件标题")
|
||
}
|
||
contetnt := form.Params["contetnt"]
|
||
if contetnt == "" {
|
||
base.Fail(r, "请输入邮件内容")
|
||
}
|
||
channelname := form.Params["channelname"]
|
||
if channelname == "" {
|
||
base.Fail(r, "请输入CDK标识")
|
||
} else if len(channelname) != 3 || len(channelname) != 4 {
|
||
base.Fail(r, "长度只允许为3-4个字符")
|
||
}
|
||
ages := ctype + "@" + reward + "@" + title + "@" + contetnt + "@" + channelname
|
||
singleResult := gameinfo.ModelServer.FindOne("_id", 1) //取1服
|
||
var serverInfo gameinfo.ServerInfo
|
||
err := singleResult.Decode(&serverInfo)
|
||
gmip := serverInfo.GMIp
|
||
gmport := serverInfo.GMPort
|
||
servername := serverInfo.Name
|
||
if err != nil {
|
||
base.Fail(r, "查询服务器信息出现异常")
|
||
}
|
||
cmd := netutil.Gmcmd{
|
||
ServerIp: gmip,
|
||
ServerPort: gmport,
|
||
Cmd: cmdStr,
|
||
Args: ages,
|
||
}
|
||
res := cmd.Creatcdk()
|
||
if res == -100 {
|
||
base.Resp(r, 1, "thrift解析地址时出错", nil)
|
||
} else if res == -101 {
|
||
base.Resp(r, 1, "thrift打开服务器socket出错", nil)
|
||
}
|
||
//保存日志
|
||
creatcdkLog := new(gm.CreatcdkLog)
|
||
singleResult1 := gm.ModelCdkAddInfo.FindOne("goods_channel", channelname)
|
||
var cdkAddInfo gm.CdkAddInfo
|
||
err1 := singleResult1.Decode(&cdkAddInfo)
|
||
if err1 != nil {
|
||
base.Fail(r, "查询出现异常")
|
||
}
|
||
creatcdkLog.Id = primitive.NewObjectID()
|
||
creatcdkLog.InfoId = cdkAddInfo.Id
|
||
creatcdkLog.ServerId = gconv.String(1)
|
||
creatcdkLog.ServerName = servername
|
||
creatcdkLog.Ctype = ctype
|
||
creatcdkLog.Reward = reward
|
||
creatcdkLog.Title = title
|
||
creatcdkLog.Contetnt = contetnt
|
||
creatcdkLog.ChannelName = channelname
|
||
creatcdkLog.Cmd = gconv.String(cmdStr)
|
||
username := base.GetUser(r).Username
|
||
creatcdkLog.UpdateUser = username
|
||
creatcdkLog.UpdateTime = time.Now().Unix()
|
||
gm.ModelCreatcdkLog.InsertOne(creatcdkLog)
|
||
base.Resp(r, 0, "执行完成", nil)
|
||
}
|
||
|
||
//获取Cdkinfo列表
|
||
func (action *Action) GetCdkIdList(r *ghttp.Request) {
|
||
list := glist.New()
|
||
bs := bson.D{}
|
||
creatcdkLogList := gm.ModelCdkAddInfo.FindServerInfoList(bs)
|
||
for creatcdkLogList.Next(context.TODO()) {
|
||
dayMap := gmap.New()
|
||
var cdkAddInfo gm.CdkAddInfo
|
||
err := creatcdkLogList.Decode(&cdkAddInfo)
|
||
if err != nil {
|
||
//log.Fatal(err)
|
||
log.Println(err)
|
||
continue
|
||
}
|
||
dayMap.Set("id", cdkAddInfo.Id)
|
||
dayMap.Set("channelName", cdkAddInfo.GoodsChannel)
|
||
list.PushFront(dayMap)
|
||
}
|
||
base.Succ(r, list)
|
||
}
|
||
|
||
//查询CreatCdk列表
|
||
func (action *Action) GetCreatCdkCodeList(r *ghttp.Request) {
|
||
var timeLayoutStr = "2006-01-02 15:04:05"
|
||
form := base.NewForm(r.GetMap())
|
||
bs := bson.D{{}}
|
||
data := g.ListAnyAny{}
|
||
count := gm.ModelCreatcdkCodeLog.GetListCount(bs)
|
||
page := util.Page{
|
||
PageSize: gconv.Int64(form.Rows),
|
||
CurrentPage: gconv.Int64(form.Page),
|
||
Total: gconv.Int64(count),
|
||
}
|
||
creatcdkCodeLogList := gm.ModelCreatcdkCodeLog.GetPageList(bs, page)
|
||
dayMap := gmap.New()
|
||
for creatcdkCodeLogList.Next(context.TODO()) {
|
||
var creatcdkCodeLog gm.CreatcdkCodeLog
|
||
err := creatcdkCodeLogList.Decode(&creatcdkCodeLog)
|
||
if err != nil {
|
||
//log.Fatal(err)
|
||
log.Println(err)
|
||
continue
|
||
}
|
||
dayMap.Set("cdkid", creatcdkCodeLog.CdkId)
|
||
dayMap.Set("cdknum", creatcdkCodeLog.CdkNum)
|
||
dayMap.Set("tick", creatcdkCodeLog.Tick)
|
||
dayMap.Set("cmd", creatcdkCodeLog.Cmd)
|
||
dayMap.Set("updateuser", creatcdkCodeLog.UpdateUser)
|
||
st := time.Unix(creatcdkCodeLog.UpdateTime, 0).Format(timeLayoutStr)
|
||
dayMap.Set("updatetime", st)
|
||
data = append(g.ListAnyAny{gconv.Map(dayMap)}, data...)
|
||
}
|
||
fmt.Println(data)
|
||
base.Succ(r,
|
||
g.Map{
|
||
"rows": data,
|
||
"total": page.Total,
|
||
"current": page.CurrentPage,
|
||
})
|
||
}
|
||
|
||
func (action *Action) CreatCdkCode(r *ghttp.Request) {
|
||
const cmdStr = "creatcdkcode"
|
||
form := base.NewForm(r.GetMap())
|
||
cdkid := form.Params["cdkid"]
|
||
if cdkid == "" {
|
||
base.Fail(r, "请选择CDKID")
|
||
}
|
||
cdknum := form.Params["cdknum"]
|
||
if cdknum == "" {
|
||
base.Fail(r, "请输入数量")
|
||
}
|
||
nowtime := time.Now().Unix()
|
||
ages := cdkid + " " + cdknum + " " + gconv.String(nowtime)
|
||
singleResult := gameinfo.ModelServer.FindOne("_id", 1) //取1服
|
||
var serverInfo gameinfo.ServerInfo
|
||
err := singleResult.Decode(&serverInfo)
|
||
gmip := serverInfo.GMIp
|
||
gmport := serverInfo.GMPort
|
||
if err != nil {
|
||
base.Fail(r, "查询服务器信息出现异常")
|
||
}
|
||
cmd := netutil.Gmcmd{
|
||
ServerIp: gmip,
|
||
ServerPort: gmport,
|
||
Cmd: cmdStr,
|
||
Args: ages,
|
||
}
|
||
res := cmd.Creatcdk()
|
||
if res == -100 {
|
||
base.Resp(r, 1, "thrift解析地址时出错", nil)
|
||
} else if res == -101 {
|
||
base.Resp(r, 1, "thrift打开服务器socket出错", nil)
|
||
}
|
||
//保存日志
|
||
var creatcdkCodeLog gm.CreatcdkCodeLog
|
||
creatcdkCodeLog.Id = primitive.NewObjectID()
|
||
creatcdkCodeLog.CdkId = gconv.Int(cdkid)
|
||
creatcdkCodeLog.CdkNum = gconv.Int(cdknum)
|
||
creatcdkCodeLog.Tick = nowtime
|
||
creatcdkCodeLog.Cmd = gconv.String(cmdStr)
|
||
username := base.GetUser(r).Username
|
||
creatcdkCodeLog.UpdateUser = username
|
||
creatcdkCodeLog.UpdateTime = time.Now().Unix()
|
||
gm.ModelCreatcdkCodeLog.InsertOne(creatcdkCodeLog)
|
||
base.Resp(r, 0, "执行完成", nil)
|
||
}
|
||
|
||
func (action *Action) DownloadCdk(r *ghttp.Request) {
|
||
ticke := r.GetString("ticke")
|
||
singleResult := gm.ModelCdkInfo.FindAll("ticke", gconv.String(ticke))
|
||
fileName := "CDK_" + gconv.String(time.Now().Unix()) + ".txt"
|
||
file, err := gfile.Create(fileName)
|
||
if err != nil {
|
||
fmt.Println("open file is failed, err: ", err.Error())
|
||
}
|
||
// 写入UTF-8 BOM,防止中文乱码
|
||
file.WriteString("\xEF\xBB\xBF")
|
||
w := csv.NewWriter(file)
|
||
for singleResult.Next(context.TODO()) {
|
||
var cdkInfo gm.CdkInfo
|
||
err := singleResult.Decode(&cdkInfo)
|
||
if err != nil {
|
||
//log.Fatal(err)
|
||
log.Println(err)
|
||
continue
|
||
}
|
||
w.Write([]string{cdkInfo.Id})
|
||
// 刷新缓冲
|
||
w.Flush()
|
||
}
|
||
r.Response.ServeFileDownload(fileName)
|
||
file.Close()
|
||
//删除生成的文件
|
||
os.Remove("./" + fileName)
|
||
}
|
||
|
||
//查询禁言列表
|
||
func (action *Action) GetSilenceList(r *ghttp.Request) {
|
||
var timeLayoutStr = "2006-01-02 15:04:05"
|
||
form := base.NewForm(r.GetMap())
|
||
bs := bson.D{{}}
|
||
data := g.ListAnyAny{}
|
||
count := gm.ModelSilence.GetListCount(bs)
|
||
page := util.Page{
|
||
PageSize: gconv.Int64(form.Rows),
|
||
CurrentPage: gconv.Int64(form.Page),
|
||
Total: gconv.Int64(count),
|
||
}
|
||
silenceLogList := gm.ModelSilence.GetPageList(bs, page)
|
||
dayMap := gmap.New()
|
||
for silenceLogList.Next(context.TODO()) {
|
||
var silenceLog gm.SilenceLog
|
||
err := silenceLogList.Decode(&silenceLog)
|
||
if err != nil {
|
||
//log.Fatal(err)
|
||
log.Println(err)
|
||
continue
|
||
}
|
||
dayMap.Set("uid", silenceLog.Uid)
|
||
dayMap.Set("serverName", silenceLog.ServerName)
|
||
dayMap.Set("stype", silenceLog.Stype)
|
||
dayMap.Set("cmd", silenceLog.Cmd)
|
||
dayMap.Set("updateuser", silenceLog.UpdateUser)
|
||
st := time.Unix(silenceLog.UpdateTime, 0).Format(timeLayoutStr)
|
||
dayMap.Set("updatetime", st)
|
||
data = append(g.ListAnyAny{gconv.Map(dayMap)}, data...)
|
||
}
|
||
fmt.Println(data)
|
||
base.Succ(r,
|
||
g.Map{
|
||
"rows": data,
|
||
"total": page.Total,
|
||
"current": page.CurrentPage,
|
||
})
|
||
}
|
||
|
||
//禁言
|
||
func (action *Action) SetSilence(r *ghttp.Request) {
|
||
const cmdStr = "silence"
|
||
form := base.NewForm(r.GetMap())
|
||
serverid := form.Params["serverid"]
|
||
if serverid == "" {
|
||
base.Fail(r, "请选择服务器")
|
||
}
|
||
userid := form.Params["userid"]
|
||
if userid == "" {
|
||
base.Fail(r, "请输入用户id")
|
||
}
|
||
stype := form.Params["stype"]
|
||
if stype == "" {
|
||
base.Fail(r, "请选择禁言类型")
|
||
}
|
||
ages := userid + " " + stype
|
||
//根据服务器id查询gmip,gmport,服务器名称
|
||
singleResult := gameinfo.ModelServer.FindOne("_id", gconv.Int32(serverid))
|
||
var serverInfo gameinfo.ServerInfo
|
||
err := singleResult.Decode(&serverInfo)
|
||
gmip := serverInfo.GMIp
|
||
gmport := serverInfo.GMPort
|
||
servername := serverInfo.Name
|
||
if err != nil {
|
||
base.Fail(r, "查询服务器信息出现异常,"+serverid)
|
||
}
|
||
cmd := netutil.Gmcmd{
|
||
ServerIp: gmip,
|
||
ServerPort: gmport,
|
||
Cmd: cmdStr,
|
||
Args: ages,
|
||
}
|
||
fmt.Println(cmd)
|
||
res := cmd.Creatcdk() //0 成功
|
||
if res == -100 {
|
||
base.Resp(r, 1, "thrift解析地址时出错", nil)
|
||
} else if res == -101 {
|
||
base.Resp(r, 1, "thrift打开服务器socket出错", nil)
|
||
}
|
||
//保存日志
|
||
var silenceLog gm.SilenceLog
|
||
silenceLog.Id = primitive.NewObjectID()
|
||
silenceLog.ServerId = serverid
|
||
silenceLog.ServerName = servername
|
||
silenceLog.Uid = gconv.Int(userid)
|
||
silenceLog.Stype = gconv.Int(stype)
|
||
silenceLog.Cmd = gconv.String(cmdStr)
|
||
silenceLog.UpdateUser = base.GetUser(r).Username
|
||
silenceLog.UpdateTime = time.Now().Unix()
|
||
gm.ModelSilence.InsertOne(silenceLog)
|
||
if res == 0 {
|
||
base.Resp(r, 0, "发送成功", nil)
|
||
} else {
|
||
base.Resp(r, 1, "发送失败", nil)
|
||
}
|
||
}
|
||
|
||
// 坦克评论列表
|
||
func (action *Action) HeroCommentList(r *ghttp.Request) {
|
||
var timeLayoutStr = "2006-01-02 15:04:05"
|
||
form := base.NewForm(r.GetMap())
|
||
bs := bson.D{{}}
|
||
if form.Params != nil {
|
||
if form.Params["uid"] != "" {
|
||
bs1 := bson.E{"uid", form.Params["uid"]}
|
||
bs = append(bs, bs1)
|
||
}
|
||
if form.Params["heroId"] != "" {
|
||
bs1 := bson.E{"heroId", gconv.Int32(form.Params["heroId"])}
|
||
bs = append(bs, bs1)
|
||
}
|
||
}
|
||
data := g.ListAnyAny{}
|
||
count := gm.ModelHeroComment.GetListCount(bs)
|
||
page := util.Page{
|
||
PageSize: gconv.Int64(form.Rows),
|
||
CurrentPage: gconv.Int64(form.Page),
|
||
Total: gconv.Int64(count),
|
||
}
|
||
heroCommentList := gm.ModelHeroComment.GetPageList(bs, page)
|
||
dayMap := gmap.New()
|
||
for heroCommentList.Next(context.TODO()) {
|
||
var heroComment gm.HeroComment
|
||
err := heroCommentList.Decode(&heroComment)
|
||
if err != nil {
|
||
//log.Fatal(err)
|
||
log.Println(err)
|
||
continue
|
||
}
|
||
dayMap.Set("serverId", heroComment.ServerId)
|
||
dayMap.Set("heroId", heroComment.HeroId)
|
||
dayMap.Set("uid", heroComment.Uid)
|
||
dayMap.Set("uName", heroComment.UName)
|
||
dayMap.Set("content", heroComment.Content)
|
||
dayMap.Set("likes", heroComment.Likes)
|
||
st := time.Unix(heroComment.Time, 0).Format(timeLayoutStr)
|
||
dayMap.Set("time", st)
|
||
data = append(g.ListAnyAny{gconv.Map(dayMap)}, data...)
|
||
}
|
||
base.Succ(r,
|
||
g.Map{
|
||
"rows": data,
|
||
"total": page.Total,
|
||
"current": page.CurrentPage,
|
||
})
|
||
}
|
||
|
||
//禁言英雄评论
|
||
func (action *Action) SetSilenceHeroComment(r *ghttp.Request) {
|
||
const cmdStr = "silence_herocomment"
|
||
serverId := r.GetString("serverId")
|
||
uid := r.GetString("uid")
|
||
stype := r.GetString("stype") // 0解除禁言 1删除记录并设置禁言
|
||
ages := uid + " " + stype
|
||
//根据服务器id查询gmip,gmport,服务器名称
|
||
singleResult := gameinfo.ModelServer.FindOne("server_id", serverId)
|
||
var serverInfo gameinfo.ServerInfo
|
||
err := singleResult.Decode(&serverInfo)
|
||
gmip := serverInfo.GMIp
|
||
gmport := serverInfo.GMPort
|
||
if err != nil {
|
||
base.Fail(r, "查询服务器信息出现异常,"+serverId)
|
||
}
|
||
cmd := netutil.Gmcmd{
|
||
ServerIp: gmip,
|
||
ServerPort: gmport,
|
||
Cmd: cmdStr,
|
||
Args: ages,
|
||
}
|
||
fmt.Println(cmd)
|
||
res := cmd.Creatcdk() //0 成功
|
||
if res == -100 {
|
||
base.Resp(r, 1, "thrift解析地址时出错", nil)
|
||
} else if res == -101 {
|
||
base.Resp(r, 1, "thrift打开服务器socket出错", nil)
|
||
}
|
||
if stype == "1" {
|
||
// 删除英雄评论
|
||
gm.ModelHeroComment.DeleteMany("uid", uid)
|
||
}
|
||
// 保存日志
|
||
var heroCommentLog gm.HeroCommentLog
|
||
heroCommentLog.Id = primitive.NewObjectID()
|
||
heroCommentLog.ServerId = serverInfo.ServerId
|
||
heroCommentLog.ServerName = serverInfo.Name
|
||
heroCommentLog.Uid = uid
|
||
heroCommentLog.Stype = gconv.Int(stype)
|
||
heroCommentLog.Cmd = cmdStr
|
||
heroCommentLog.UpdateUser = base.GetUser(r).Username
|
||
heroCommentLog.UpdateTime = time.Now().Unix()
|
||
gm.ModelHeroCommentLog.InsertOne(heroCommentLog)
|
||
if res == 0 {
|
||
base.Resp(r, 0, "操作成功", nil)
|
||
} else {
|
||
base.Resp(r, 1, "操作失败", nil)
|
||
}
|
||
}
|
||
|
||
// 坦克评论日志列表
|
||
func (action *Action) HeroCommentLogList(r *ghttp.Request) {
|
||
var timeLayoutStr = "2006-01-02 15:04:05"
|
||
form := base.NewForm(r.GetMap())
|
||
bs := bson.D{{}}
|
||
data := g.ListAnyAny{}
|
||
count := gm.ModelHeroCommentLog.GetListCount(bs)
|
||
page := util.Page{
|
||
PageSize: gconv.Int64(form.Rows),
|
||
CurrentPage: gconv.Int64(form.Page),
|
||
Total: gconv.Int64(count),
|
||
}
|
||
heroCommentLogList := gm.ModelHeroCommentLog.GetPageList(bs, page)
|
||
dayMap := gmap.New()
|
||
for heroCommentLogList.Next(context.TODO()) {
|
||
var heroCommentLog gm.HeroCommentLog
|
||
err := heroCommentLogList.Decode(&heroCommentLog)
|
||
if err != nil {
|
||
//log.Fatal(err)
|
||
log.Println(err)
|
||
continue
|
||
}
|
||
dayMap.Set("uid", heroCommentLog.Uid)
|
||
dayMap.Set("serverId", heroCommentLog.ServerId)
|
||
dayMap.Set("serverName", heroCommentLog.ServerName)
|
||
dayMap.Set("type", heroCommentLog.Stype)
|
||
dayMap.Set("cmd", heroCommentLog.Cmd)
|
||
dayMap.Set("updateuser", heroCommentLog.UpdateUser)
|
||
st := time.Unix(heroCommentLog.UpdateTime, 0).Format(timeLayoutStr)
|
||
dayMap.Set("updatetime", st)
|
||
data = append(g.ListAnyAny{gconv.Map(dayMap)}, data...)
|
||
}
|
||
base.Succ(r,
|
||
g.Map{
|
||
"rows": data,
|
||
"total": page.Total,
|
||
"current": page.CurrentPage,
|
||
})
|
||
}
|
||
|
||
//发送道具日志列表
|
||
func (action *Action) GetSendModifyItemList(r *ghttp.Request) {
|
||
var timeLayoutStr = "2006-01-02 15:04:05"
|
||
form := base.NewForm(r.GetMap())
|
||
bs := bson.D{bson.E{"cmd", "modifyitem"}}
|
||
data := g.ListAnyAny{}
|
||
count := gm.ModelModifyItemLog.GetListCount(bs)
|
||
page := util.Page{
|
||
PageSize: gconv.Int64(form.Rows),
|
||
CurrentPage: gconv.Int64(form.Page),
|
||
Total: gconv.Int64(count),
|
||
}
|
||
sendModifyItemLogList := gm.ModelModifyItemLog.GetPageList(bs, page)
|
||
dayMap := gmap.New()
|
||
for sendModifyItemLogList.Next(context.TODO()) {
|
||
var modifyItemLog gm.ModifyItemLog
|
||
err := sendModifyItemLogList.Decode(&modifyItemLog)
|
||
if err != nil {
|
||
//log.Fatal(err)
|
||
log.Println(err)
|
||
continue
|
||
}
|
||
dayMap.Set("id", modifyItemLog.Id)
|
||
dayMap.Set("userid", modifyItemLog.UserId)
|
||
dayMap.Set("servername", modifyItemLog.ServerName)
|
||
dayMap.Set("param", modifyItemLog.Param)
|
||
dayMap.Set("modifyMode", modifyItemLog.ModifyMode)
|
||
dayMap.Set("cmd", modifyItemLog.Cmd)
|
||
dayMap.Set("updateuser", modifyItemLog.UpdateUser)
|
||
st := time.Unix(modifyItemLog.UpdateTime, 0).Format(timeLayoutStr)
|
||
dayMap.Set("updatetime", st)
|
||
dayMap.Set("state", modifyItemLog.State)
|
||
data = append(g.ListAnyAny{gconv.Map(dayMap)}, data...)
|
||
}
|
||
fmt.Println(data)
|
||
base.Succ(r,
|
||
g.Map{
|
||
"rows": data,
|
||
"total": page.Total,
|
||
"current": page.CurrentPage,
|
||
})
|
||
}
|
||
|
||
//保存发送道具日志
|
||
func (action *Action) SaveModifyItemLog(r *ghttp.Request) {
|
||
form := base.NewForm(r.GetMap())
|
||
cmdStr := form.Params["cmdStr"]
|
||
serverid := form.Params["serverid"]
|
||
if serverid == "" {
|
||
base.Fail(r, "请选择服务器")
|
||
}
|
||
userid := form.Params["userid"]
|
||
if cmdStr == "sendmail" && userid == "" {
|
||
base.Fail(r, "请输入用户uid")
|
||
}
|
||
modifyMode := form.Params["modifyMode"]
|
||
if modifyMode == "" {
|
||
base.Fail(r, "请输入修改模式")
|
||
}
|
||
param := form.Params["param"]
|
||
if param == "" {
|
||
base.Fail(r, "请输入道具参数")
|
||
}
|
||
//根据服务器id查询gmip,gmport,服务器名称
|
||
singleResult := gameinfo.ModelServer.FindOne("_id", gconv.Int32(serverid))
|
||
var serverInfo gameinfo.ServerInfo
|
||
err := singleResult.Decode(&serverInfo)
|
||
if err != nil {
|
||
base.Fail(r, "查询服务器信息出现异常,"+serverid)
|
||
}
|
||
gmip := serverInfo.GMIp
|
||
gmport := serverInfo.GMPort
|
||
servername := serverInfo.Name
|
||
//保存日志
|
||
modifyItemLog := new(gm.ModifyItemLog)
|
||
modifyItemLog.Id = primitive.NewObjectID()
|
||
if cmdStr == "modifyitem" {
|
||
modifyItemLog.UserId = gconv.String(userid)
|
||
}
|
||
modifyItemLog.ServerId = gconv.String(serverid)
|
||
modifyItemLog.ServerName = gconv.String(servername)
|
||
modifyItemLog.GMIp = gconv.String(gmip)
|
||
modifyItemLog.GMPort = gconv.String(gmport)
|
||
modifyItemLog.ModifyMode = gconv.Int(modifyMode)
|
||
modifyItemLog.Param = gconv.String(param)
|
||
modifyItemLog.Cmd = gconv.String(cmdStr)
|
||
username := base.GetUser(r).Username
|
||
modifyItemLog.UpdateUser = username
|
||
modifyItemLog.UpdateTime = time.Now().Unix()
|
||
modifyItemLog.State = 2 //刚保存为发送中 30s后执行发送;邮件状态:0:未发送 1:已发送 2:发送中 3:发送失败
|
||
gm.ModelModifyItemLog.InsertOne(modifyItemLog)
|
||
base.Resp(r, 0, "保存成功", modifyItemLog.Id)
|
||
}
|
||
|
||
//修改发送道具
|
||
func (action *Action) UpdateModifyItem(r *ghttp.Request) {
|
||
form := base.NewForm(r.GetMap())
|
||
data := gconv.Map(form.Params["data"])
|
||
gm.ModelModifyItemLog.InsUpdate(gconv.String(data["id"]), gconv.Int(data["state"]))
|
||
base.Resp(r, 0, "操作成功", nil)
|
||
}
|
||
|
||
//发送道具
|
||
func (action *Action) SendModifyItem(r *ghttp.Request) {
|
||
form := base.NewForm(r.GetMap())
|
||
dataId := form.Params["dataId"]
|
||
obj_id, _ := primitive.ObjectIDFromHex(gconv.String(dataId))
|
||
data := gm.ModelModifyItemLog.FindOne("_id", obj_id)
|
||
var modifyItemLog gm.ModifyItemLog
|
||
err := data.Decode(&modifyItemLog)
|
||
if err != nil {
|
||
gm.ModelModifyItemLog.InsUpdate(gconv.String(dataId), 3)
|
||
base.Resp(r, -1, "当前数据有误", nil)
|
||
}
|
||
cmdStr := modifyItemLog.Cmd
|
||
serverid := modifyItemLog.ServerId
|
||
userid := ""
|
||
if cmdStr == "modifyitem" {
|
||
userid = modifyItemLog.UserId
|
||
}
|
||
modifyMode := gconv.String(modifyItemLog.ModifyMode)
|
||
param := modifyItemLog.Param
|
||
//根据服务器id查询gmip,gmport,服务器名称
|
||
singleResult := gameinfo.ModelServer.FindOne("_id", gconv.Int32(serverid))
|
||
var serverInfo gameinfo.ServerInfo
|
||
err = singleResult.Decode(&serverInfo)
|
||
if err != nil {
|
||
gm.ModelModifyItemLog.InsUpdate(gconv.String(dataId), 3)
|
||
base.Resp(r, -1, "查询服务器信息出现异常", nil)
|
||
}
|
||
gmip := serverInfo.GMIp
|
||
gmport := serverInfo.GMPort
|
||
ages := modifyMode + " " + param
|
||
cmd := netutil.Gmcmd{
|
||
ServerIp: gmip,
|
||
ServerPort: gmport,
|
||
Cmd: cmdStr,
|
||
UserId: userid,
|
||
Args: ages,
|
||
}
|
||
res := int32(-1)
|
||
if cmdStr == "modifyitem" {
|
||
res = cmd.SendGM() //0 成功
|
||
} else {
|
||
gm.ModelModifyItemLog.InsUpdate(gconv.String(dataId), 3)
|
||
base.Resp(r, -1, "当前数据有误", nil)
|
||
}
|
||
if res == -100 {
|
||
// 修改日志状态为发送失败
|
||
gm.ModelModifyItemLog.InsUpdate(gconv.String(dataId), 3)
|
||
base.Resp(r, -1, "thrift解析地址时出错", nil)
|
||
} else if res == -101 {
|
||
gm.ModelModifyItemLog.InsUpdate(gconv.String(dataId), 3)
|
||
base.Resp(r, -1, "thrift打开服务器socket出错", nil)
|
||
} else if res == 0 {
|
||
// 修改日志状态为已发送
|
||
gm.ModelModifyItemLog.InsUpdate(gconv.String(dataId), 1)
|
||
base.Resp(r, 0, "发送成功", nil)
|
||
} else {
|
||
gm.ModelModifyItemLog.InsUpdate(gconv.String(dataId), 3)
|
||
base.Resp(r, -1, "发送失败", nil)
|
||
}
|
||
}
|