lt 8 месяцев назад
Родитель
Сommit
54238508b3

+ 19 - 1
RO_Server_Trunk-branch_0.1.39/rocommon/service/init.go

@@ -28,7 +28,7 @@ var (
 	elasticConnector   *elastic.Client   //elastic
 	mysqlConnector     *mysql.MysqlConnector
 	mysqlOrmConnector  *mysql.MysqlOrmConnector
-
+	mysqlConnectorPay  []*mysql.MysqlConnector
 	//调试标记(调试模式下设置成true,不会触发重连)
 	//默认为非调试模式
 	DebugMode = false
@@ -145,6 +145,20 @@ func Init(name string) {
 		//})
 	}
 
+	if len(serviceConfig.Redis.MysqlAddrAll) > 0 {
+		for _, v := range serviceConfig.Redis.MysqlAddrAll {
+			mysqls := socket.NewServerNode("mysqlConnector", name,
+				v, nil).(*mysql.MysqlConnector)
+			mysqls.Start()
+			if mysqls.IsReady() {
+				util.InfoF("mysqlConnector connect success...")
+			} else {
+				util.PanicF("mysqlConnector connect failed...")
+			}
+			mysqlConnectorPay = append(mysqlConnectorPay, mysqls)
+		}
+	}
+
 	//是否需要连接elasticsearch
 	//http://www.wtgame.cn:9200/_nodes/http?pretty
 	if serviceConfig.Elastic.Url != "" {
@@ -281,6 +295,10 @@ func GetElastic() *elastic.Client {
 func GetMysql() *mysql.MysqlConnector {
 	return mysqlConnector
 }
+
+func GetMysqlPay() []*mysql.MysqlConnector {
+	return mysqlConnectorPay
+}
 func GetMysqlORM() *mysql.MysqlOrmConnector {
 	return mysqlOrmConnector
 }

+ 1 - 0
RO_Server_Trunk-branch_0.1.39/rocommon/service/yamlconfig.go

@@ -108,6 +108,7 @@ type configServerDB struct {
 	DBIndex2     int      `yaml:"dbindex2"`
 	DBIndex3     int      `yaml:"dbindex3"`
 	MysqlAddr    string   `yaml:"mysqladdr"`
+	MysqlAddrAll []string `yaml:"mysqladdrall"`
 	RedisCluster int      `yaml:"cluster"`
 }
 

+ 5 - 0
RO_Server_Trunk-branch_0.1.39/roserver/gmweb/main.go

@@ -132,6 +132,11 @@ func main() {
 		r1.GET("/register", msg.WebGMProcessServerRegister)
 		r1.GET("/reload", msg.WebGMProcessServerConfigReload) //配置文件热加载
 
+		//东南亚
+		r2 := router.Group("/v1")
+		r2.GET("/getUserList", msg.WebGmProcessUserListGet)
+		r2.GET("//check-uid", msg.WebGmProcessUserListGet)
+
 		router.POST("/pay", msg.WebPayQuickNotify)                                 // SDKquick 畅梦nbSDK
 		router.POST("/pay/hwQucik", msg.WebPayHwQuickNotify)                       // 海外quick
 		router.POST("/pay/hwRu", msg.WebPayHwRuNotify)                             // 海外俄罗斯

+ 120 - 0
RO_Server_Trunk-branch_0.1.39/roserver/gmweb/msg/web_gmmsg.go

@@ -31,6 +31,7 @@ type WebBriefInfo struct {
 	FightPower    uint32
 	ActiveCode    string
 	OpenId        string
+	Serverid      int //所属区服
 }
 type WebUserDetailInfo struct {
 	WebBriefInfo
@@ -245,6 +246,125 @@ func WebGmProcessUserInfoGet(c *gin.Context) {
 	}
 }
 
+// 东南亚支付服务使用
+func WebGmProcessUserListGet(c *gin.Context) {
+	if !verifyProcess(c) {
+		return
+	}
+
+	var errStr = ""
+	uidStr := c.DefaultQuery("userId", "") ///default ""
+	//uid, _ := model.Str2NumU64(uidStr)
+	if uidStr == "" {
+		errStr = "uid invalid!!!"
+		util.InfoF(errStr)
+		c.JSON(http.StatusOK, gin.H{
+			"err": errStr,
+		})
+		return
+	}
+
+	//获取简介信息
+	bfInfoList := make([]*Uid, 0)
+	if len(service.GetMysqlPay()) > 0 {
+		for _, v := range service.GetMysqlPay() {
+			var bfInfo *WebBriefInfo = nil
+			v.Operate(func(rawClient interface{}) interface{} {
+				wrapper := mysql.NewWrapper(rawClient.(*sql.DB))
+
+				wrapper.Query("select * from role where open_id=?", uidStr).Each(func(wrapper2 *mysql.Wrapper) bool {
+					bfInfo = parseUserInfo(wrapper2)
+
+					return true
+				})
+
+				if wrapper.Err != nil {
+					util.ErrorF("uid=%v WebGmProcessUserGet err=%v", uidStr, wrapper.Err)
+				}
+				return nil
+			})
+			bfInfoList = append(bfInfoList, &Uid{Uid: strconv.FormatUint(bfInfo.Uid, 10), Server: strconv.Itoa(bfInfo.Serverid / 2), CharacterName: bfInfo.NickName})
+		}
+		if len(bfInfoList) == 0 {
+			c.JSON(http.StatusOK, gin.H{
+				"err": "玩家不存在!!!",
+			})
+			return
+		}
+	}
+	c.JSON(http.StatusOK, UserList{UserId: uidStr, Uids: bfInfoList})
+}
+
+// 东南亚支付服务使用
+func WebGmProcessUserListCheck(c *gin.Context) {
+	if !verifyProcess(c) {
+		return
+	}
+
+	var errStr = ""
+	uidStr := c.DefaultQuery("uid", "") ///default ""
+	uid, _ := model.Str2NumU64(uidStr)
+	if uidStr == "" || uid == 0 {
+		errStr = "uid invalid!!!"
+		util.InfoF(errStr)
+		c.JSON(http.StatusOK, gin.H{
+			"err": errStr,
+		})
+		return
+	}
+
+	//获取简介信息
+	var bfInfo *WebBriefInfo = nil
+	if len(service.GetMysqlPay()) > 0 {
+		for _, v := range service.GetMysqlPay() {
+			v.Operate(func(rawClient interface{}) interface{} {
+				wrapper := mysql.NewWrapper(rawClient.(*sql.DB))
+
+				wrapper.Query("select * from role where uid=?", uid).Each(func(wrapper2 *mysql.Wrapper) bool {
+					bfInfo = parseUserInfo(wrapper2)
+
+					return true
+				})
+
+				if wrapper.Err != nil {
+					util.ErrorF("uid=%v WebGmProcessUserGet err=%v", uid, wrapper.Err)
+				}
+				return nil
+			})
+		}
+		if bfInfo == nil {
+			c.JSON(http.StatusOK, gin.H{
+				"err": "玩家不存在!!!",
+			})
+			return
+		}
+	}
+	callBackKey := "http://165.154.215.99:80"
+	if bfInfo.Serverid <= 10 {
+		callBackKey = callBackKey + "0" + strconv.Itoa(bfInfo.Serverid-1) + "/pay/hwDn"
+	} else {
+		callBackKey = callBackKey + strconv.Itoa(bfInfo.Serverid-1) + "/pay/hwDn"
+	}
+	c.JSON(http.StatusOK, CheckUser{CharacterName: bfInfo.NickName, Server: strconv.Itoa(bfInfo.Serverid / 2), CallBackKey: callBackKey})
+}
+
+type UserList struct {
+	UserId string `json:"userId"`
+	Uids   []*Uid `json:"uids"`
+}
+
+type Uid struct {
+	Uid           string `json:"uid"`
+	Server        string `json:"server"`
+	CharacterName string `json:"characterName"`
+}
+
+type CheckUser struct {
+	Server        string `json:"server"`
+	CharacterName string `json:"characterName"`
+	CallBackKey   string `json:"callBackKey"`
+}
+
 // 封号
 // http://127.0.0.1:8086/gm/ban?uid=1111&ban=1
 func WebGmProcessBanUser(c *gin.Context) {

+ 2 - 2
RO_Server_Trunk-branch_0.1.39/roserver/test/main.go

@@ -41,8 +41,8 @@ func (this *a1) GetBase() *abase {
 }
 
 func main() {
-
-	testModel.ConvertOldRedis()
+	testModel.GetUidListFromRedis2()
+	//testModel.ConvertOldRedis()
 	return
 
 	//tmpa1 := &a1{}

+ 74 - 0
RO_Server_Trunk-branch_0.1.39/roserver/test/model/combine_service.go

@@ -1,6 +1,7 @@
 package model
 
 import (
+	"fmt"
 	"os"
 	"rocommon/service"
 	"rocommon/util"
@@ -198,6 +199,30 @@ func getUidListFromRedis() []uint64 {
 	return uidList
 }
 
+func GetUidListFromRedis2() {
+	cli := service.NewNetRedisConnector([]string{"127.0.0.1:6379"}, "", 7, 0)
+	service.SetRedis(cli)
+	var uidList []uint64
+	tmpUidList, err := service.GetRedis().Keys("account_*").Result()
+	if err != nil {
+		fmt.Println("getUidListFromRedis2 err=", err)
+		return
+	}
+	for idx := 0; idx < len(tmpUidList); idx++ {
+		tmpMsg := &serverproto.SSAccountGetRoleListAck{}
+		err := model.GetMessageFromRedis(tmpUidList[idx], "", tmpMsg)
+		if err != nil || len(tmpMsg.Roles) <= 0 {
+			util.ErrorF("account=%v getUidListFromRedis err=%v", tmpUidList[idx], err)
+			continue
+		}
+		uidList = append(uidList, tmpMsg.Roles[0].Uid)
+	}
+	for _, v := range uidList {
+		convertActivityOld2Redis(v)
+	}
+	fmt.Println("getUidListFromRedis2 done")
+}
+
 // role_activity.go
 func convertActivityOldRedis(typeServerActsList set.Interface, uid uint64) {
 	uidStr := strconv.FormatUint(uid, 10)
@@ -251,6 +276,55 @@ func convertActivityOldRedis(typeServerActsList set.Interface, uid uint64) {
 	}
 }
 
+func convertActivityOld2Redis(uid uint64) {
+	uidStr := strconv.FormatUint(uid, 10)
+	tmpRoleActivity := &serverproto.RoleActivity{}
+	err := model2.GetSystemDataFromRedis(model2.RoleActivityDataSignPrefix, uid, tmpRoleActivity)
+	if err != nil && err != service.NIL {
+		util.ErrorF("uid=%v [convertActivityOldRedis] Get RoleActivitySign err=%v", uid, err)
+		return
+	}
+	data := make([]*serverproto.ActivitiesDetailData, 0)
+	for _, v := range tmpRoleActivity.ActivityDataList {
+		if v.ActivitiesId == 36 || v.ActivitiesId == 43 || v.ActivitiesId == 49 {
+			continue
+		}
+		data = append(data, v)
+	}
+
+	//2.已经开启的列表中清除根据开服时间的id
+	retList := service.GetRedis().SMembers(model2.RoleActivityDataOpenListPrefix + uidStr).Val()
+	for idx := 0; idx < len(retList); idx++ {
+		openActivityId, _ := strconv.Atoi(retList[idx])
+		if openActivityId == 36 || openActivityId == 43 || openActivityId == 49 {
+			service.GetRedis().SRem(model2.RoleActivityDataOpenListPrefix+uidStr, retList[idx])
+			tmpKeyStr := model2.RoleActivityDataPrefix + uidStr + ":" + retList[idx]
+			service.GetRedis().Del(tmpKeyStr)
+			continue
+		}
+	}
+
+	var tmpExpiredActivityList []int32
+	for idx := 0; idx < len(tmpRoleActivity.ExpiredActivityList); idx++ {
+		expiredActivityId := tmpRoleActivity.ExpiredActivityList[idx]
+		if expiredActivityId == 36 || expiredActivityId == 43 || expiredActivityId == 49 {
+			activityIdStr := strconv.Itoa(int(expiredActivityId))
+			tmpKeyStr := model2.RoleActivityDataPrefix + uidStr + ":" + activityIdStr
+			service.GetRedis().Del(tmpKeyStr)
+			continue
+		}
+		tmpExpiredActivityList = append(tmpExpiredActivityList, expiredActivityId)
+	}
+
+	//重新保存
+	tmpRoleActivity.ActivityDataList = data
+	tmpRoleActivity.ExpiredActivityList = tmpExpiredActivityList
+	err = model2.SetSystemDataToRedis(model2.RoleActivityDataSignPrefix, uid, tmpRoleActivity)
+	if err != nil {
+		util.ErrorF("uid=%v [convertActivityOldRedis] save err=%v", uid, err)
+	}
+}
+
 // roleanera
 func convertArenaOldRedis(uid uint64) {
 	//uidStr := strconv.FormatUint(uid, 10)

+ 13 - 13
RO_Server_Trunk-branch_0.1.39/roserver/test/model/test.go

@@ -27,19 +27,19 @@ func test() {
 
 	log.Println("prepare to connect gate...")
 
-	var cliSession rocommon.Session
-	go CreateClientConn(func(s rocommon.Session) {
-		log.Println("connect success addr:127.0.0.1:21001")
-
-		cliSession = s
-
-		/*
-			msg := serverproto.PingReq{}
-			msg.OpenId = "chy1111"
-			log.Println("send msg:", msg)
-			s.Send(&msg)
-		*/
-	})
+	//var cliSession rocommon.Session
+	//go CreateClientConn(func(s rocommon.Session) {
+	//	log.Println("connect success addr:127.0.0.1:21001")
+	//
+	//	cliSession = s
+	//
+	//	/*
+	//		msg := serverproto.PingReq{}
+	//		msg.OpenId = "chy1111"
+	//		log.Println("send msg:", msg)
+	//		s.Send(&msg)
+	//	*/
+	//})(cliSession)
 
 	/*
 		//客户端尝试发送消息