From aa1481b923ffefbf37d223ce78d7281d817fae07 Mon Sep 17 00:00:00 2001
From: Rzy <465386466@qq.com>
Date: Fri, 2 Aug 2024 18:38:51 +0800
Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=B9=B6=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/constants/common/common.go   |   2 +-
 app/http/entities/backend/app.go |  12 +--
 app/http/routes/route.go         |  13 +--
 app/services/app.go              |  10 +-
 app/utils/mq/mqs/kafka.go        | 174 +++++++++++++++----------------
 go.mod                           |   7 +-
 6 files changed, 101 insertions(+), 117 deletions(-)

diff --git a/app/constants/common/common.go b/app/constants/common/common.go
index 328530c..c961f93 100644
--- a/app/constants/common/common.go
+++ b/app/constants/common/common.go
@@ -3,7 +3,7 @@ package common
 const (
 	TOKEN_PRE   = "player_token_"
 	TOKEN_Admin = "Admin_token_"
-	ADMIN_V1     = "/pay/admin/api/v1
+	ADMIN_V1    = "/pay/admin/api/v1"
 	FRONT_V1    = "/api/v1"
 
 	// 支付渠道枚举,1微信JSAPI,2微信H5,3微信app,4微信Native,5微信小程序,6支付宝网页&移动应用,7支付宝小程序,8支付宝JSAPI
diff --git a/app/http/entities/backend/app.go b/app/http/entities/backend/app.go
index 11c0cf1..9956684 100644
--- a/app/http/entities/backend/app.go
+++ b/app/http/entities/backend/app.go
@@ -16,8 +16,8 @@ type AppResponse struct {
 	MerchantId        int64  `json:"merchant_id"`
 	AppName           string `json:"app_name"`
 	AppRemark         string `json:"app_remark"`
-	Status            int    `json:"status"`
-	KeyType           int    `json:"key_type"`
+	Status            int32  `json:"status"`
+	KeyType           int32  `json:"key_type"`
 	PublicKey         string `json:"public_key"`
 	PrivateKey        string `json:"private_key"`
 	MerchantPublicKey string `json:"merchant_public_key"`
@@ -45,8 +45,8 @@ type AppCreateRequest struct {
 	MerchantId        int64  `json:"merchant_id" validate:"required" label:"商户ID"`
 	AppName           string `json:"app_name" validate:"required" label:"应用名称"`
 	AppRemark         string `json:"app_remark" label:"应用备注"`
-	Status            int    `json:"status" validate:"oneof=0 1 2" label:"应用状态"`
-	KeyType           int    `json:"key_type" validate:"required" label:"应用密钥类型"`
+	Status            int32  `json:"status" validate:"oneof=0 1 2" label:"应用状态"`
+	KeyType           int32  `json:"key_type" validate:"required" label:"应用密钥类型"`
 	PublicKey         string `json:"public_key" validate:"required" label:"应用公钥"`
 	PrivateKey        string `json:"private_key" validate:"required" label:"应用私钥"`
 	MerchantPublicKey string `json:"merchant_public_key"  label:"商户公钥"`
@@ -72,8 +72,8 @@ type AppUpdateRequest struct {
 	Id                int64  `json:"id" validate:"required" label:"应用ID"`
 	AppName           string `json:"app_name" label:"应用名称"`
 	AppRemark         string `json:"app_remark" label:"应用备注"`
-	Status            int    `json:"status"  label:"应用状态"`
-	KeyType           int    `json:"key_type" label:"应用密钥类型"`
+	Status            int32  `json:"status"  label:"应用状态"`
+	KeyType           int32  `json:"key_type" label:"应用密钥类型"`
 	PublicKey         string `json:"public_key"  label:"应用公钥"`
 	PrivateKey        string `json:"private_key"  label:"应用私钥"`
 	MerchantPublicKey string `json:"merchant_public_key" label:"商户公钥"`
diff --git a/app/http/routes/route.go b/app/http/routes/route.go
index f4366f9..e0dc7ff 100644
--- a/app/http/routes/route.go
+++ b/app/http/routes/route.go
@@ -4,14 +4,15 @@ package routes
  * 配置路由
  */
 import (
-	"PaymentCenter/app/constants/common"
 	"PaymentCenter/app/http/controllers"
-	"PaymentCenter/app/http/controllers/front"
 	"PaymentCenter/app/http/controllers/backend"
+	"PaymentCenter/app/http/controllers/front"
 	"PaymentCenter/app/http/middlewares"
 	"PaymentCenter/app/http/trace"
 	"PaymentCenter/app/utils/metric"
 	"PaymentCenter/config"
+	ginSwagger "github.com/swaggo/gin-swagger"
+	"github.com/swaggo/gin-swagger/swaggerFiles"
 
 	"github.com/gin-gonic/gin"
 	"github.com/qit-team/snow-core/http/middleware"
@@ -45,8 +46,6 @@ func RegisterRoute(router *gin.Engine) {
 	router.NoRoute(controllers.Error404)
 
 	//router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
-	v1 := router.Group(common.FRONT_V1, middlewares.ValidateRequest())
-	{
 
 	v1 := router.Group("/v1")
 	{
@@ -59,8 +58,6 @@ func RegisterRoute(router *gin.Engine) {
 	}
 
 	router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
-		pay := v1.Group("pay", middlewares.ValidatePayRequest())
-		pay.POST("web", backend.MerchantList) // 商户列表
-	}
-
+	pay := v1.Group("pay", middlewares.ValidatePayRequest())
+	pay.POST("web", backend.MerchantList) // 商户列表
 }
diff --git a/app/services/app.go b/app/services/app.go
index 9b1211c..a161494 100644
--- a/app/services/app.go
+++ b/app/services/app.go
@@ -65,15 +65,7 @@ func AppUpdate(app *appmodel.App) (code int) {
 	} else {
 		_, err = repo.AppUpdate(app, conn)
 	}
-	if !has {
-		return errorcode.MerchantNotFound
-	}
-
-	// 拼接查询条件
-	uconn := builder.NewCond()
-	uconn = uconn.And(builder.Eq{"Id": App.Id})
-	_, err = repo.AppUpdate(App, uconn, "app_remark")
-
+	
 	code = handErr(err)
 	return
 }
diff --git a/app/utils/mq/mqs/kafka.go b/app/utils/mq/mqs/kafka.go
index 5208608..249a8b6 100644
--- a/app/utils/mq/mqs/kafka.go
+++ b/app/utils/mq/mqs/kafka.go
@@ -1,89 +1,89 @@
 package mq
 
-import (
-	"PaymentCenter/app/utils"
-	"PaymentCenter/config"
-	"context"
-	"encoding/json"
-	"fmt"
-	"github.com/Shopify/sarama"
-	"github.com/qit-team/snow-core/redis"
-
-	"strconv"
-	"sync"
-)
-
-type KafkaMq struct {
-}
-
-// 同步
-func (n KafkaMq) Produce(name string, log interface{}, delayTime int, args ...interface{}) error {
-	kafConfig := sarama.NewConfig()
-	kafConfig.Producer.RequiredAcks = sarama.WaitForAll          // 发送完数据需要leader和follow都确认
-	kafConfig.Producer.Partitioner = sarama.NewRandomPartitioner // 新选出一个partition
-	kafConfig.Producer.Return.Successes = true                   // 成功交付的消息将在success channel返回
-
-	// 构造一个消息
-	msg := &sarama.ProducerMessage{}
-	msg.Topic = name
-	var data, _ = json.Marshal(log)
-	msg.Value = sarama.StringEncoder(string(data))
-	// 连接kafka
-	client, err := sarama.NewSyncProducer(config.GetConf().KafkaUrl, kafConfig)
-	if err != nil {
-		fmt.Println("producer closed, err:", err)
-		return nil
-	}
-	defer client.Close()
-	// 发送消息
-	pid, offset, err := client.SendMessage(msg)
-	if err != nil {
-		utils.Log(nil, "send msg failed, err:", err, pid, offset)
-		return nil
-	}
-	return nil
-}
-
-func (n KafkaMq) Consume(name string, hand interface{}) {
-	consumer, err := sarama.NewConsumer(config.GetConf().KafkaUrl, nil)
-	if err != nil {
-		utils.Log(nil, "kafka comsume", err.Error())
-		return
-	}
-	partitionList, err := consumer.Partitions(name) // 根据topic取到所有的分区
-	if err != nil {
-		utils.Log(nil, "kafka comsume", err.Error())
-		return
-	}
-	//utils.Log(nil,"kafka comsume",name,partitionList)
-	for partition := range partitionList { // 遍历所有的分区
-		// 针对每个分区创建一个对应的分区消费者
-		var offsetReDis, _ = redis.GetRedis().Incr(context.Background(), "kafka_consume:"+strconv.Itoa(int(partition))).Result() //保证多消费者不重复消费
-		var offset int64 = sarama.OffsetNewest
-		if offsetReDis > 0 {
-			//offset = int64(offsetReDis)
-		}
-		pc, err := consumer.ConsumePartition(name, int32(partition), offset)
-		//utils.Log(nil,"partion",int32(partition))
-		if err != nil {
-			fmt.Printf("failed to start consumer for partition %d,err:%v\n", partition, err)
-			return
-		}
-		defer pc.AsyncClose()
-		var wg sync.WaitGroup
-		wg.Add(1)
-		// 异步从每个分区消费信息
-		go func(sarama.PartitionConsumer) {
-			for msg := range pc.Messages() {
-				defer wg.Done()
-				var handler = hand.(func(tag uint64, ch interface{}, msg []byte))
-				handler(0, nil, msg.Value)
-				//utils.Log(nil,"hand msg",string(msg.Value),msg.Offset)
-			}
-		}(pc)
-		wg.Wait()
-	}
-}
-func (n KafkaMq) DelyConsume(name string, hand interface{}) {
-
-}
+//
+//import (
+//	"PaymentCenter/app/utils"
+//	"PaymentCenter/config"
+//	"context"
+//	"fmt"
+//	"github.com/Shopify/sarama"
+//	"github.com/qit-team/snow-core/redis"
+//
+//	"strconv"
+//	"sync"
+//)
+//
+//type KafkaMq struct {
+//}
+//
+//// 同步
+//func (n KafkaMq) Produce(name string, log interface{}, delayTime int, args ...interface{}) error {
+//	//kafConfig := sarama.NewConfig()
+//	//kafConfig.Producer.RequiredAcks = sarama.WaitForAll          // 发送完数据需要leader和follow都确认
+//	//kafConfig.Producer.Partitioner = sarama.NewRandomPartitioner // 新选出一个partition
+//	//kafConfig.Producer.Return.Successes = true                   // 成功交付的消息将在success channel返回
+//	//
+//	//// 构造一个消息
+//	//msg := &sarama.ProducerMessage{}
+//	//msg.Topic = name
+//	//var data, _ = json.Marshal(log)
+//	//msg.Value = sarama.StringEncoder(string(data))
+//	//// 连接kafka
+//	//client, err := sarama.NewSyncProducer(config.GetConf().KafkaUrl, kafConfig)
+//	//if err != nil {
+//	//	fmt.Println("producer closed, err:", err)
+//	//	return nil
+//	//}
+//	//defer client.Close()
+//	//// 发送消息
+//	//pid, offset, err := client.SendMessage(msg)
+//	//if err != nil {
+//	//	utils.Log(nil, "send msg failed, err:", err, pid, offset)
+//	//	return nil
+//	//}
+//	return nil
+//}
+//
+//func (n KafkaMq) Consume(name string, hand interface{}) {
+//	consumer, err := sarama.NewConsumer(config.GetConf().KafkaUrl, nil)
+//	if err != nil {
+//		utils.Log(nil, "kafka comsume", err.Error())
+//		return
+//	}
+//	partitionList, err := consumer.Partitions(name) // 根据topic取到所有的分区
+//	if err != nil {
+//		utils.Log(nil, "kafka comsume", err.Error())
+//		return
+//	}
+//	//utils.Log(nil,"kafka comsume",name,partitionList)
+//	for partition := range partitionList { // 遍历所有的分区
+//		// 针对每个分区创建一个对应的分区消费者
+//		var offsetReDis, _ = redis.GetRedis().Incr(context.Background(), "kafka_consume:"+strconv.Itoa(int(partition))).Result() //保证多消费者不重复消费
+//		var offset int64 = sarama.OffsetNewest
+//		if offsetReDis > 0 {
+//			//offset = int64(offsetReDis)
+//		}
+//		pc, err := consumer.ConsumePartition(name, int32(partition), offset)
+//		//utils.Log(nil,"partion",int32(partition))
+//		if err != nil {
+//			fmt.Printf("failed to start consumer for partition %d,err:%v\n", partition, err)
+//			return
+//		}
+//		defer pc.AsyncClose()
+//		var wg sync.WaitGroup
+//		wg.Add(1)
+//		// 异步从每个分区消费信息
+//		go func(sarama.PartitionConsumer) {
+//			for msg := range pc.Messages() {
+//				defer wg.Done()
+//				var handler = hand.(func(tag uint64, ch interface{}, msg []byte))
+//				handler(0, nil, msg.Value)
+//				//utils.Log(nil,"hand msg",string(msg.Value),msg.Offset)
+//			}
+//		}(pc)
+//		wg.Wait()
+//	}
+//}
+//func (n KafkaMq) DelyConsume(name string, hand interface{}) {
+//
+//}
diff --git a/go.mod b/go.mod
index cc9e3a3..fdcd3e0 100644
--- a/go.mod
+++ b/go.mod
@@ -117,17 +117,12 @@ require (
 	go.uber.org/atomic v1.9.0 // indirect
 	go.uber.org/multierr v1.6.0 // indirect
 	go.uber.org/zap v1.21.0 // indirect
+	golang.org/x/arch v0.6.0 // indirect
 	golang.org/x/crypto v0.25.0 // indirect
 	golang.org/x/net v0.25.0 // indirect
 	golang.org/x/sync v0.7.0 // indirect
 	golang.org/x/sys v0.22.0 // indirect
 	golang.org/x/text v0.16.0 // indirect
-	golang.org/x/arch v0.6.0 // indirect
-	golang.org/x/crypto v0.17.0 // indirect
-	golang.org/x/net v0.17.0 // indirect
-	golang.org/x/sync v0.1.0 // indirect
-	golang.org/x/sys v0.15.0 // indirect
-	golang.org/x/text v0.14.0 // indirect
 	golang.org/x/time v0.1.0 // indirect
 	golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect
 	google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect