浏览代码

支付配置

huwei 2 周之前
父节点
当前提交
273822d7b4

+ 11 - 10
server/internal/admin/gm_services/gms_rpc_handlers.go

@@ -2,6 +2,7 @@ package gm_services
 
 
 import (
 import (
 	"encoding/json"
 	"encoding/json"
+	"fmt"
 	"gadmin/internal/admin/consts"
 	"gadmin/internal/admin/consts"
 	"gadmin/internal/admin/gm_rpc/rpc_share"
 	"gadmin/internal/admin/gm_rpc/rpc_share"
 	"gadmin/internal/admin/ws"
 	"gadmin/internal/admin/ws"
@@ -41,16 +42,16 @@ func ListenRespMsg() {
 							CID:  cId,
 							CID:  cId,
 							//Extra: ext,
 							//Extra: ext,
 						}
 						}
-						/*case "qs": // query switcher
-							resp := logMsg.Data.(*msg.ResponseGmQueryModelStart)
-							ws.BoardCast <- ws.Msg{
-								Type: getMsgType(logMsg.MsgID),
-								Id:   time.Now().Unix(),
-								Code: resp.ErrCode,
-								Msg:  fmt.Sprintf(`{"iosPay":%d,"openLevel":%d,"andrPay":%d,"andrOpenLevel":%d,"doubleAd":%d,"adOpenLevel":%d}`, resp.IosPay, resp.OpenLevel, resp.AndroidPay, resp.AndroidOpenLevel, resp.AdCount, resp.AdLevel),
-								CID:  cId,
-							}
-						case "qe": // query endlessRand
+					case "qs": // query switcher
+						resp := logMsg.Data.(*msg.ResponseGetGmIosPay)
+						ws.BoardCast <- ws.Msg{
+							Type: getMsgType(logMsg.MsgID),
+							Id:   time.Now().Unix(),
+							Code: resp.ErrCode,
+							Msg:  fmt.Sprintf(`{"iosOpenLevel":%d}`, resp.IosPayOpenLevel),
+							CID:  cId,
+						}
+						/*case "qe": // query endlessRand
 							resp := logMsg.Data.(*msg.ResponseGmQueryEndlessRank)
 							resp := logMsg.Data.(*msg.ResponseGmQueryEndlessRank)
 							//if len(resp.Data) == 0 {
 							//if len(resp.Data) == 0 {
 							//	getCurrentRankingListKey := func() string {
 							//	getCurrentRankingListKey := func() string {

+ 60 - 20
server/internal/admin/service/pay_switch.go

@@ -2,13 +2,16 @@ package service
 
 
 import (
 import (
 	"encoding/json"
 	"encoding/json"
+	"fmt"
 	"gadmin/config"
 	"gadmin/config"
 	"gadmin/internal/admin/forms"
 	"gadmin/internal/admin/forms"
+	"gadmin/internal/admin/gm_rpc/rpc_share"
+	"gadmin/utility/character"
 	"gadmin/utility/serializer"
 	"gadmin/utility/serializer"
 	"github.com/gin-gonic/gin"
 	"github.com/gin-gonic/gin"
 	"github.com/sirupsen/logrus"
 	"github.com/sirupsen/logrus"
 	clientv3 "go.etcd.io/etcd/client/v3"
 	clientv3 "go.etcd.io/etcd/client/v3"
-	"strconv"
+	msg2 "leafstalk/covenant/msg"
 )
 )
 
 
 var (
 var (
@@ -42,29 +45,66 @@ func (s *sPaySwitch) GetPaySwitch(ctx *gin.Context) serializer.Response {
 }
 }
 
 
 func (s *sPaySwitch) EditPaySwitch(ctx *gin.Context, req forms.EditPaySwitchReq) serializer.Response {
 func (s *sPaySwitch) EditPaySwitch(ctx *gin.Context, req forms.EditPaySwitchReq) serializer.Response {
-	payConfig := forms.PayConfig{
-		IosOpenLevel: req.IosOpenLevel,
-	}
-
-	marshal, err := json.Marshal(payConfig)
-	if err != nil {
-		return serializer.DBErr(err.Error(), err)
-	}
+	successIds := make([]int, 0)
+	failIds := make([]int, 0)
+	for _, serverId := range ServerOption.GetServerIds() {
+		msg := msg2.GmIosPay{
+			MsgId:           character.GenerateMsgId(),
+			IosPayOpenLevel: req.IosOpenLevel,
+			OperatorId:      ctx.GetInt64("admin_id"),
+		}
 
 
-	logrus.Warnf("sPaySwitch PayConfig:%v", string(marshal))
+		var resp *msg2.ResponseGmIosPay
+		res, err := config.GmNats.GmRequest(serverId, "UpdateGmIosPay", msg)
+		if err != nil {
+			logrus.Warnf("EditPaySwitch serverId:%v, msg:%v GmRequest err:%+v", serverId, msg, err)
+			failIds = append(failIds, serverId)
+			continue
+		}
 
 
-	kv := clientv3.NewKV(config.Etcd)
-	putResp, err := kv.Put(ctx, s.key, string(marshal), clientv3.WithPrevKV())
-	if err != nil {
-		return serializer.DBErr(err.Error(), err)
+		if err = json.Unmarshal(res, &resp); err != nil {
+			logrus.Warnf("EditPaySwitch serverId:%v, msg:%v Unmarshal err:%+v", serverId, msg, err)
+			failIds = append(failIds, serverId)
+			continue
+		}
+		successIds = append(successIds, serverId)
+	}
+	msgId := character.GenerateMsgId()
+	if len(failIds) == 0 {
+		rpc_share.MsgMap[msgId] = fmt.Sprintf("GM成功修改苹果支付开启等级为: %v", req.IosOpenLevel)
+	} else {
+		rpc_share.MsgMap[msgId] = fmt.Sprintf("GM修改服务器%v的苹果支付开启等级为: %v失败", failIds, req.IosOpenLevel)
 	}
 	}
 
 
-	logrus.Warnf("Revision:%v", putResp.Header.Revision)
-	if putResp.PrevKv != nil {
-		logrus.Warnf("key:%v", string(putResp.PrevKv.Key))
-		logrus.Warnf("Value:%v", string(putResp.PrevKv.Value))
-		logrus.Warnf("Version:%v", strconv.FormatInt(putResp.PrevKv.Version, 10))
+	rpc_share.LogChan <- rpc_share.LogMsg{
+		MsgID: msgId,
 	}
 	}
 
 
-	return serializer.Suc(nil)
+	return serializer.Suc(req)
+
+	//payConfig := forms.PayConfig{
+	//	IosOpenLevel: req.IosOpenLevel,
+	//}
+	//
+	//marshal, err := json.Marshal(payConfig)
+	//if err != nil {
+	//	return serializer.DBErr(err.Error(), err)
+	//}
+	//
+	//logrus.Warnf("sPaySwitch PayConfig:%v", string(marshal))
+	//
+	//kv := clientv3.NewKV(config.Etcd)
+	//putResp, err := kv.Put(ctx, s.key, string(marshal), clientv3.WithPrevKV())
+	//if err != nil {
+	//	return serializer.DBErr(err.Error(), err)
+	//}
+	//
+	//logrus.Warnf("Revision:%v", putResp.Header.Revision)
+	//if putResp.PrevKv != nil {
+	//	logrus.Warnf("key:%v", string(putResp.PrevKv.Key))
+	//	logrus.Warnf("Value:%v", string(putResp.PrevKv.Value))
+	//	logrus.Warnf("Version:%v", strconv.FormatInt(putResp.PrevKv.Version, 10))
+	//}
+	//
+	//return serializer.Suc(nil)
 }
 }

+ 43 - 0
server/internal/admin/ws/handler.go

@@ -7,6 +7,7 @@ import (
 	"gadmin/config"
 	"gadmin/config"
 	"gadmin/internal/admin/consts"
 	"gadmin/internal/admin/consts"
 	"gadmin/internal/admin/gm_rpc/rpc_share"
 	"gadmin/internal/admin/gm_rpc/rpc_share"
+	"gadmin/internal/gorm/query"
 	"gadmin/utility/player"
 	"gadmin/utility/player"
 	"leafstalk/covenant/msg"
 	"leafstalk/covenant/msg"
 	"strconv"
 	"strconv"
@@ -87,6 +88,48 @@ func (client *Client) HandlerReqMsg(reqMsg ReqMsg) {
 			return
 			return
 		}
 		}
 
 
+		rpc_share.LogChan <- rpc_share.LogMsg{
+			MsgID: data.MsgId,
+			Data:  resp,
+		}
+
+	// 查询开关
+	case consts.SocketQuerySwitcher:
+
+		data := &msg.GetGmIosPay{
+			MsgId: fmt.Sprintf("qs:%d:%s", client.Id, reqMsg.Data),
+		}
+		q := query.Use(config.DB).ServerOption
+		server, err := q.Order(q.ID.Desc()).First()
+		if err != nil {
+			logrus.Warnf("SocketQuerySwitcher 查询出错 server err:%+v", err)
+			client.msgChan <- Msg{
+				Type: consts.SocketQuerySwitcher,
+				Code: consts.CodePanicErr,
+				Msg:  "查询开关信息失败 获取服务器错误:" + err.Error(),
+			}
+			return
+		}
+		var resp *msg.ResponseGetGmIosPay
+		res, err := config.GmNats.GmRequest(int(server.ServerID), "GetGmIosPay", data)
+		if err != nil {
+			client.msgChan <- Msg{
+				Type: consts.SocketQuerySwitcher,
+				Code: consts.CodePanicErr,
+				Msg:  "查询开关信息失败 nats查询出错:" + err.Error(),
+			}
+			return
+		}
+
+		if err = json.Unmarshal(res, &resp); err != nil {
+			client.msgChan <- Msg{
+				Type: consts.SocketQueryUserGuide,
+				Code: consts.CodePanicErr,
+				Msg:  "查询开关信息失败 nats Unmarshal出错:" + err.Error(),
+			}
+			return
+		}
+
 		rpc_share.LogChan <- rpc_share.LogMsg{
 		rpc_share.LogChan <- rpc_share.LogMsg{
 			MsgID: data.MsgId,
 			MsgID: data.MsgId,
 			Data:  resp,
 			Data:  resp,

+ 74 - 71
web/src/views/system/config/IosPay.vue

@@ -81,14 +81,14 @@
       const useUserStore = useUserStoreWidthOut();
       const useUserStore = useUserStoreWidthOut();
       const formRef: any = ref(null);
       const formRef: any = ref(null);
       const message = useMessage();
       const message = useMessage();
-      // const router = useRouter();
+      const router = useRouter();
       const show = ref(false);
       const show = ref(false);
       const data = ref({});
       const data = ref({});
       const state = reactive({
       const state = reactive({
         formValue: {
         formValue: {
           // serverId: 1,
           // serverId: 1,
           // iosPay: 0,
           // iosPay: 0,
-          iosOpenLevel: 1,
+          iosOpenLevel: 0,
           // andrPay: 0,
           // andrPay: 0,
           // andrOpenLevel: 1,
           // andrOpenLevel: 1,
         },
         },
@@ -115,80 +115,83 @@
         formRef.value.restoreValidation();
         formRef.value.restoreValidation();
       }
       }
 
 
-      // function queryGuide() {
-      //   show.value = true;
-      //
-      //   if (getSocket() === undefined) {
-      //     message.error('socket连接异常,请重试!');
-      //     router.push({ name: 'account-list' });
-      //     return;
-      //   }
-      //
-      //   try {
-      //     getSocket().send(
-      //       JSON.stringify({
-      //         type: SocketEnum.TypeQuerySwitcher,
-      //         data: state.formValue.serverId.toString(),
-      //       })
-      //     );
-      //   } catch (_err) {
-      //     console.log('错误信息:' + _err.message);
-      //
-      //     setTimeout(function () {
-      //       message.error('socket连接被断开,正在尝试恢复....');
-      //       getSocket().send(
-      //         JSON.stringify({
-      //           type: SocketEnum.TypeQuerySwitcher,
-      //           data: state.formValue.serverId.toString(),
-      //         })
-      //       );
-      //       message.success('socket已恢复');
-      //     }, 1000);
-      //   }
-      // }
+      function queryGuide() {
+        show.value = true;
+
+        if (getSocket() === undefined) {
+          message.error('socket连接异常,请重试!');
+          router.push({ name: 'account-list' });
+          return;
+        }
 
 
-      async function queryGuide() {
-        const res = await GetPayConfig();
-        console.log('res:' + JSON.stringify(res));
-        state.formValue.iosOpenLevel = res.iosOpenLevel;
+        try {
+          console.log('查询开关信息');
+          getSocket().send(
+            JSON.stringify({
+              type: SocketEnum.TypeQuerySwitcher,
+              // data: state.formValue.serverId.toString(),
+            })
+          );
+        } catch (_err) {
+          console.log('错误信息:' + _err.message);
+
+          setTimeout(function () {
+            message.error('socket连接被断开,正在尝试恢复....');
+            getSocket().send(
+              JSON.stringify({
+                type: SocketEnum.TypeQuerySwitcher,
+                // data: state.formValue.serverId.toString(),
+              })
+            );
+            message.success('socket已恢复');
+          }, 1000);
+        }
       }
       }
 
 
+      // async function queryGuide() {
+      //   const res = await GetPayConfig();
+      //   console.log('res:' + JSON.stringify(res));
+      //   state.formValue.iosOpenLevel = res.iosOpenLevel;
+      // }
+
       onMounted(async () => {
       onMounted(async () => {
-        await queryGuide();
+        // await queryGuide();
+        queryGuide();
       });
       });
 
 
-      // const onMessageList = inject('onMessageList'); // 接收注入
-      // const querySwitcher = (res) => {
-      //   const data = JSON.parse(res.data);
-      //   if (data.type !== SocketEnum.TypeQuerySwitcher) {
-      //     return;
-      //   }
-      //
-      //   show.value = false;
-      //
-      //   if (data.code == SocketEnum.CodeErr) {
-      //     message.error('查询服务出错,cid:' + data.cid);
-      //     router.push({ name: 'account-list' });
-      //     return;
-      //   }
-      //   if (data.msg !== undefined && data.msg !== null) {
-      //     try {
-      //       data.value = JSON.parse(data.msg);
-      //       state.formValue.playerLevel = data.value.openLevel;
-      //       state.formValue.iosPay = data.value.iosPay;
-      //       state.formValue.andrPay = data.value.andrPay;
-      //       state.formValue.andrOpenLevel = data.value.andrOpenLevel;
-      //     } catch (e) {
-      //       message.error('查询服务出错,' + data.msg);
-      //     }
-      //   }
-      // };
-      //
-      // addOnMessage(onMessageList, querySwitcher);
-
-      // function handleUpdateValue(value: string, _option) {
-      //   queryGuide();
-      // }
+      const onMessageList = inject('onMessageList'); // 接收注入
+      const querySwitcher = (res) => {
+        const data = JSON.parse(res.data);
+        if (data.type !== SocketEnum.TypeQuerySwitcher) {
+          return;
+        }
+
+        show.value = false;
+
+        if (data.code == SocketEnum.CodeErr) {
+          message.error('查询服务出错,cid:' + data.cid);
+          router.push({ name: 'account-list' });
+          return;
+        }
+        if (data.msg !== undefined && data.msg !== null) {
+          try {
+            data.value = JSON.parse(data.msg);
+            // state.formValue.playerLevel = data.value.openLevel;
+            // state.formValue.iosPay = data.value.iosPay;
+            // state.formValue.andrPay = data.value.andrPay;
+            // state.formValue.andrOpenLevel = data.value.andrOpenLevel;
+            state.formValue.iosOpenLevel = data.value.iosOpenLevel;
+          } catch (e) {
+            message.error('查询服务出错,' + data.msg);
+          }
+        }
+      };
+
+      addOnMessage(onMessageList, querySwitcher);
+
+      function handleUpdateValue(value: string, _option) {
+        queryGuide();
+      }
 
 
       const serverOptions = useUserStore.config.server_simple_option;
       const serverOptions = useUserStore.config.server_simple_option;
       return {
       return {
@@ -199,7 +202,7 @@
         show,
         show,
         data,
         data,
         serverOptions,
         serverOptions,
-        // handleUpdateValue,
+        handleUpdateValue,
       };
       };
     },
     },
   });
   });