You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
401 lines
8.6 KiB
401 lines
8.6 KiB
package gm |
|
|
|
import ( |
|
"fmt" |
|
"github.com/gin-gonic/gin" |
|
"github.com/liangdas/mqant/log" |
|
"server/call" |
|
"server/common" |
|
"server/db" |
|
"server/modules/customer/app" |
|
"server/modules/customer/values" |
|
"server/natsClient" |
|
"server/pb" |
|
"server/util" |
|
) |
|
|
|
// 获取客服机器人消息 |
|
func GetCustomerRobot(c *gin.Context) { |
|
a := app.NewApp(c) |
|
defer func() { |
|
a.Response() |
|
}() |
|
|
|
req := &values.GetCustomerRobotReq{} |
|
if !a.S(req) { |
|
return |
|
} |
|
|
|
resp := values.GetCustomerRobotResp{} |
|
if _, err := db.Mysql().QueryAll(fmt.Sprintf("parent_id = %v", req.ParentId), "", &common.ConfigCustomerRobot{}, &resp.List); err != nil { |
|
log.Error("err:%v", err) |
|
a.Code = values.CodeRetry |
|
return |
|
} |
|
|
|
a.Data = resp |
|
} |
|
|
|
// 编辑客服机器人消息 |
|
func EditCustomerRobot(c *gin.Context) { |
|
a := app.NewApp(c) |
|
defer func() { |
|
a.Response() |
|
}() |
|
req := &values.EditCustomerRobotReq{} |
|
if !a.S(req) { |
|
return |
|
} |
|
|
|
var resp values.EditCustomerRobotResp |
|
|
|
for i := 0; i < len(req.List); i++ { |
|
if req.List[i] != nil { |
|
// 新增 |
|
if req.List[i].ID == 0 { |
|
log.Debug("req:%+v", req.List[i]) |
|
err := db.Mysql().Create(req.List[i]) |
|
if err != nil { |
|
log.Error(err.Error()) |
|
a.Code = values.CodeRetry |
|
return |
|
} |
|
log.Debug("req:%+v", req.List[i]) |
|
resp.List = append(resp.List, req.List[i]) |
|
} else { |
|
// 修改 |
|
log.Debug("req:%+v", req.List[i]) |
|
u := &common.ConfigCustomerRobot{} |
|
u.ID = req.List[i].ID |
|
update := util.StructToMap(req.List[i], "json") |
|
if err := db.Mysql().Update(u, update); err != nil { |
|
log.Error("err:%v", err) |
|
a.Code = values.CodeRetry |
|
return |
|
} |
|
} |
|
} |
|
} |
|
|
|
err := call.Publish(natsClient.TopicReloadConfig, &pb.ReloadGameConfig{Type: common.ReloadConfigCustomerRobot}) |
|
if err != nil { |
|
log.Error(err.Error()) |
|
a.Code = values.CodeRetry |
|
return |
|
} |
|
|
|
// 写入日志 |
|
for i := 0; i < len(req.List); i++ { |
|
if req.List[i] != nil { |
|
a.RecordEdit(values.PowerGM, fmt.Sprintf("编辑客服机器人配置:%v", *req.List[i])) |
|
} |
|
} |
|
a.Data = resp |
|
} |
|
|
|
// 删除客服机器人消息 |
|
func DelCustomerRobot(c *gin.Context) { |
|
a := app.NewApp(c) |
|
defer func() { |
|
a.Response() |
|
}() |
|
req := &values.DelCustomerRobotReq{} |
|
if !a.S(req) { |
|
return |
|
} |
|
|
|
for i := 0; i < len(req.List); i++ { |
|
if req.List[i] != nil { |
|
log.Debug("req:%+v", *req.List[i]) |
|
err := db.Mysql().Del(&common.ConfigCustomerRobot{}, " id = ?", *req.List[i]) |
|
if err != nil { |
|
log.Error(err.Error()) |
|
} |
|
} |
|
} |
|
|
|
err := call.Publish(natsClient.TopicReloadConfig, &pb.ReloadGameConfig{Type: common.ReloadConfigCustomerRobot}) |
|
if err != nil { |
|
log.Error(err.Error()) |
|
a.Code = values.CodeRetry |
|
} |
|
|
|
// 写入日志 |
|
for i := 0; i < len(req.List); i++ { |
|
if req.List[i] != nil { |
|
a.RecordEdit(values.PowerGM, fmt.Sprintf("删除客服机器人配置:%v", *req.List[i])) |
|
} |
|
} |
|
} |
|
|
|
// 获取标签 |
|
func GetCustomerLabel(c *gin.Context) { |
|
a := app.NewApp(c) |
|
defer func() { |
|
a.Response() |
|
}() |
|
|
|
resp := values.GetCustomerLabelResp{} |
|
if _, err := db.Mysql().QueryAll("", "", &common.CustomerOrderLabel{}, &resp.List); err != nil { |
|
log.Error("err:%v", err) |
|
a.Code = values.CodeRetry |
|
return |
|
} |
|
|
|
a.Data = resp |
|
} |
|
|
|
// 编辑标签 |
|
func EditCustomerLabel(c *gin.Context) { |
|
a := app.NewApp(c) |
|
defer func() { |
|
a.Response() |
|
}() |
|
req := &values.EditCustomerLabelReq{} |
|
if !a.S(req) { |
|
return |
|
} |
|
|
|
for i := 0; i < len(req.List); i++ { |
|
if req.List[i] != nil { |
|
// 新增 |
|
if req.List[i].ID == 0 { |
|
log.Debug("req:%+v", req.List[i]) |
|
err := db.Mysql().Create(req.List[i]) |
|
if err != nil { |
|
log.Error(err.Error()) |
|
a.Code = values.CodeRetry |
|
return |
|
} |
|
} else { |
|
// 修改 |
|
log.Debug("req:%+v", req.List[i]) |
|
u := &common.CustomerOrderLabel{} |
|
u.ID = req.List[i].ID |
|
update := util.StructToMap(req.List[i], "json") |
|
if err := db.Mysql().Update(u, update); err != nil { |
|
log.Error("err:%v", err) |
|
a.Code = values.CodeRetry |
|
return |
|
} |
|
} |
|
} |
|
} |
|
|
|
err := call.Publish(natsClient.TopicReloadConfig, &pb.ReloadGameConfig{Type: common.ReloadConfigCustomerLabel}) |
|
if err != nil { |
|
log.Error(err.Error()) |
|
a.Code = values.CodeRetry |
|
} |
|
|
|
// 写入日志 |
|
for i := 0; i < len(req.List); i++ { |
|
if req.List[i] != nil { |
|
a.RecordEdit(values.PowerGM, fmt.Sprintf("编辑工单标签配置:%v", *req.List[i])) |
|
} |
|
} |
|
} |
|
|
|
// 删除标签 |
|
func DelCustomerLabel(c *gin.Context) { |
|
a := app.NewApp(c) |
|
defer func() { |
|
a.Response() |
|
}() |
|
req := &values.DelCustomerLabelReq{} |
|
if !a.S(req) { |
|
return |
|
} |
|
|
|
for i := 0; i < len(req.List); i++ { |
|
if req.List[i] != nil { |
|
log.Debug("req:%+v", req.List[i]) |
|
err := db.Mysql().Del(&common.ConfigCustomerRobot{}, " id = ?", *req.List[i]) |
|
if err != nil { |
|
log.Error(err.Error()) |
|
} |
|
} |
|
} |
|
|
|
err := call.Publish(natsClient.TopicReloadConfig, &pb.ReloadGameConfig{Type: common.ReloadConfigCustomerLabel}) |
|
if err != nil { |
|
log.Error(err.Error()) |
|
a.Code = values.CodeRetry |
|
} |
|
|
|
// 写入日志 |
|
for i := 0; i < len(req.List); i++ { |
|
if req.List[i] != nil { |
|
a.RecordEdit(values.PowerGM, fmt.Sprintf("删除工单标签配置:%v", *req.List[i])) |
|
} |
|
} |
|
} |
|
|
|
// 客服系统配置 |
|
func GetConfigCustomer(c *gin.Context) { |
|
a := app.NewApp(c) |
|
defer func() { |
|
a.Response() |
|
}() |
|
|
|
resp := values.GetConfigCustomerResp{} |
|
if _, err := db.Mysql().QueryAll("", "", &common.ConfigCustomer{}, &resp.List); err != nil { |
|
log.Error("err:%v", err) |
|
a.Code = values.CodeRetry |
|
return |
|
} |
|
|
|
a.Data = resp |
|
} |
|
|
|
// 客服系统配置 |
|
func EditConfigCustomer(c *gin.Context) { |
|
a := app.NewApp(c) |
|
defer func() { |
|
a.Response() |
|
}() |
|
req := &values.EditConfigCustomerReq{} |
|
if !a.S(req) { |
|
return |
|
} |
|
|
|
for i := 0; i < len(req.List); i++ { |
|
if req.List[i] != nil { |
|
// 新增 |
|
if req.List[i].ID == 0 { |
|
log.Debug("req:%+v", req.List[i]) |
|
err := db.Mysql().Create(req.List[i]) |
|
if err != nil { |
|
log.Error(err.Error()) |
|
a.Code = values.CodeRetry |
|
return |
|
} |
|
} else { |
|
// 修改 |
|
log.Debug("req:%+v", req.List[i]) |
|
u := &common.ConfigCustomer{} |
|
u.ID = req.List[i].ID |
|
update := util.StructToMap(req.List[i], "json") |
|
if err := db.Mysql().Update(u, update); err != nil { |
|
log.Error("err:%v", err) |
|
a.Code = values.CodeRetry |
|
return |
|
} |
|
} |
|
} |
|
} |
|
|
|
err := call.Publish(natsClient.TopicReloadConfig, &pb.ReloadGameConfig{Type: common.ReloadConfigCustomer}) |
|
if err != nil { |
|
log.Error(err.Error()) |
|
a.Code = values.CodeRetry |
|
} |
|
|
|
// 写入日志 |
|
for i := 0; i < len(req.List); i++ { |
|
if req.List[i] != nil { |
|
a.RecordEdit(values.PowerGM, fmt.Sprintf("编辑客服系统配置:%v", *req.List[i])) |
|
} |
|
} |
|
} |
|
|
|
// 客服系统配置 |
|
func DelConfigCustomer(c *gin.Context) { |
|
a := app.NewApp(c) |
|
defer func() { |
|
a.Response() |
|
}() |
|
req := &values.DelConfigCustomerReq{} |
|
if !a.S(req) { |
|
return |
|
} |
|
|
|
for i := 0; i < len(req.List); i++ { |
|
if req.List[i] != nil { |
|
log.Debug("req:%+v", req.List[i]) |
|
err := db.Mysql().Del(&common.ConfigCustomer{}, " id = ?", *req.List[i]) |
|
if err != nil { |
|
log.Error(err.Error()) |
|
} |
|
} |
|
} |
|
|
|
err := call.Publish(natsClient.TopicReloadConfig, &pb.ReloadGameConfig{Type: common.ReloadConfigCustomer}) |
|
if err != nil { |
|
log.Error(err.Error()) |
|
a.Code = values.CodeRetry |
|
} |
|
|
|
// 写入日志 |
|
for i := 0; i < len(req.List); i++ { |
|
if req.List[i] != nil { |
|
a.RecordEdit(values.PowerGM, fmt.Sprintf("删除客服系统配置:%v", *req.List[i])) |
|
} |
|
} |
|
} |
|
|
|
// 客服黑名单 |
|
func GetCustomerBlackUser(c *gin.Context) { |
|
a := app.NewApp(c) |
|
defer func() { |
|
a.Response() |
|
}() |
|
|
|
req := &values.CustomerBlackUserReq{} |
|
if !a.S(req) { |
|
return |
|
} |
|
|
|
var resp values.CustomerBlackUserResp |
|
count, err := db.Mysql().QueryList(req.Page-1, req.Num, "", "", &common.CustomerBlackUser{}, &resp.List) |
|
if err != nil { |
|
log.Error("err:%v", err) |
|
a.Code = values.CodeRetry |
|
return |
|
} |
|
resp.Count = count |
|
a.Data = resp |
|
} |
|
|
|
// 客服黑名单 |
|
func EditCustomerBlackUser(c *gin.Context) { |
|
a := app.NewApp(c) |
|
defer func() { |
|
a.Response() |
|
}() |
|
req := &values.EditCustomerBlackUserReq{} |
|
if !a.S(req) { |
|
return |
|
} |
|
|
|
for i := 0; i < len(req.List); i++ { |
|
if req.List[i] != nil { |
|
log.Debug("opt:%v, req:%+v", req.Opt, *req.List[i]) |
|
if req.Opt == 1 { |
|
err := db.Mysql().Create(&common.CustomerBlackUser{Uid: *req.List[i]}) |
|
if err != nil { |
|
log.Error(err.Error()) |
|
} |
|
} else { |
|
data := &common.CustomerBlackUser{Uid: *req.List[i]} |
|
err := db.Mysql().Get(data) |
|
if err == nil { |
|
db.Mysql().Del(data) |
|
} |
|
} |
|
} |
|
} |
|
|
|
var str string |
|
if req.Opt == 1 { |
|
str = "添加" |
|
} else { |
|
str = "删除" |
|
} |
|
// 写入日志 |
|
for i := 0; i < len(req.List); i++ { |
|
if req.List[i] != nil { |
|
a.RecordEdit(values.PowerGM, fmt.Sprintf("%v客服系统黑名单 uid:%v", str, *req.List[i])) |
|
} |
|
} |
|
}
|
|
|