| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 |
- package controller
- import (
- "bet24.com/log"
- "bet24.com/servers/adminserver/character"
- "bet24.com/servers/adminserver/dao"
- "bet24.com/servers/adminserver/item"
- "bet24.com/servers/coreservice/client"
- item_inventory "bet24.com/servers/micros/item_inventory/proto"
- "fmt"
- "github.com/gin-gonic/gin"
- "net/http"
- )
- func SysExchange(c *gin.Context) {
- c.JSON(http.StatusOK, struct {
- RecordCount int
- List interface{}
- }{
- RecordCount: 0,
- List: client.GetExchangeType(),
- })
- return
- }
- // 兑换历史
- func ExchangeHistory(c *gin.Context) {
- obj := dao.NewExchangeHistory()
- if err := c.ShouldBind(&obj.In); err != nil {
- log.Debug("%s shouldBind err %v", "ExchangeHistory", err)
- return
- }
- obj.DoAction()
- tools := item.GetSysItems()
- for i := 0; i < len(obj.Out.List); i++ {
- list := &obj.Out.List[i]
- for j := 0; j < len(list.ItemPack); j++ {
- history := &list.ItemPack[j]
- sysItem, ok := tools[history.ItemId]
- if !ok {
- continue
- }
- obj.Out.List[i].Item = fmt.Sprintf("<b>%s</b>(Num:%d)", sysItem.Name, history.Count)
- if sysItem.Type == item_inventory.Item_Physical || sysItem.Type == item_inventory.Item_GiftCard {
- obj.Out.List[i].IsMust = 1
- }
- }
- }
- c.JSON(http.StatusOK, obj.Out)
- }
- // 兑换历史
- func ExchangeCash(c *gin.Context) {
- obj := dao.NewExchangeCash()
- if err := c.ShouldBind(&obj.In); err != nil {
- log.Debug("%s shouldBind err %v", "ExchangeCash", err)
- return
- }
- obj.DoAction()
- tools := item.GetSysItems()
- for i := 0; i < len(obj.Out.List); i++ {
- list := &obj.Out.List[i]
- for j := 0; j < len(list.ItemPack); j++ {
- history := &list.ItemPack[j]
- item, ok := tools[history.ItemId]
- if !ok {
- continue
- }
- obj.Out.List[i].Item = fmt.Sprintf("<b>%s</b>(Num:%d)", item.Name, history.Count)
- if item.Type == item_inventory.Item_Physical || item.Type == item_inventory.Item_GiftCard {
- obj.Out.List[i].IsMust = 1
- }
- }
- }
- c.JSON(http.StatusOK, obj.Out)
- }
- // 修改兑换历史
- func ExchangeHistoryUpdate(c *gin.Context) {
- obj := dao.NewExchangeHistoryUpdate()
- if err := c.ShouldBind(&obj.In); err != nil {
- log.Debug("%s shouldBind err %v", "ExchangeHistoryUpdate", err)
- return
- }
- if obj.In.Status == 0 {
- obj.Out.RetCode = 11
- obj.Out.ErrorMsg = "修改失败"
- c.JSON(http.StatusOK, obj.Out)
- return
- }
- obj.In.Items = character.GetSpecialCharacter(obj.In.Items)
- obj.DoAction()
- /*
- // 兑换成功
- if obj.Out.RetCode != 1 {
- c.JSON(http.StatusOK, obj.Out)
- return
- }
- // 拒绝,返还
- if obj.In.Status == 2 {
- itemId := 0
- switch obj.In.ExchangeType {
- case 1: // 奖券
- itemId = item_inventory.Item_GiftCard
- case 5: // 金币提现
- itemId = item_inventory.Item_Gold
- }
- // 返还道具
- if itemId > 0 && obj.In.Price > 0 {
- var tools []item_inventory.ItemPack
- tools = append(tools, item_inventory.ItemPack{
- ItemId: itemId,
- Count: obj.In.Price,
- })
- client.SendSysMail(obj.In.UserID, mail.SysMail{
- Id: 0,
- Title: config.Server.Exchange_Title,
- Content: config.Server.Exchange_Content,
- Status: 0,
- SourceName: "admin exchange",
- Crdate: common.GetTimeStamp(),
- Tools: tools,
- })
- }
- c.JSON(http.StatusOK, obj.Out)
- return
- }
- // 查询用户信息
- resp := client.GetUserInfo(obj.In.UserID)
- if resp.Data == "" {
- c.JSON(http.StatusOK, obj.Out)
- return
- }
- // 用户信息
- var UserHotInfo struct {
- UserId int
- NickName string
- Vip int
- FaceUrl string
- FaceId int
- Sex int
- UserWords string
- IsRobot int // 是否机器人
- Achievements []int // 成就列表
- }
- if err := json.Unmarshal([]byte(resp.Data), &UserHotInfo); err != nil {
- c.JSON(http.StatusOK, obj.Out)
- return
- }
- tools := item.GetSysItems()
- var items []item_inventory.ItemPack
- if err := json.Unmarshal([]byte(obj.In.Items), &items); err != nil {
- c.JSON(http.StatusOK, obj.Out)
- return
- }
- for _, v := range items {
- tmpItem, ok := tools[v.ItemId]
- if !ok {
- continue
- }
- broadcastMsg := ""
- // 8=话费
- if tmpItem.Type == 8 {
- // SNG赛 Cash 类处理
- if splitRemarks := strings.Split(obj.Out.Remark, ","); len(splitRemarks) > 0 {
- if rid, err := strconv.Atoi(splitRemarks[0]); err != nil {
- log.Error("ExchangeHistoryUpdate SNG 赛 Cash 处理 obj.In=%+v obj.Out=%+v ,err ==>%v", obj.In, obj.Out, err)
- } else {
- log.Debug("ExchangeHistoryUpdate SNG 赛 Cash 处理调用 rid=%d obj.In=%+v obj.Out=%+v", rid, obj.In, obj.Out)
- go gameHistory.MyMatch_UpdateStatus(obj.In.UserID, rid, gameHistory.MyMatch_Status_Received)
- }
- continue
- }
- broadcastMsg = config.Server.Exchange_Broadcast_Phone
- } else if tmpItem.Type == 11 { // 11=Cash
- broadcastMsg = config.Server.Exchange_Broadcast_Cash
- }
- broadcastMsg = strings.ReplaceAll(broadcastMsg, "数量", fmt.Sprintf("<color=#04ff0a>%d</color>", v.Count))
- broadcastMsg = strings.ReplaceAll(broadcastMsg, "玩家昵称", fmt.Sprintf("<color=#ffafd8>%s</color>", UserHotInfo.NickName))
- go client.SendBroadcast(obj.In.UserID, 0, 0, broadcastMsg, "")
- }
- */
- c.JSON(http.StatusOK, obj.Out)
- return
- }
|