diff --git a/pkg/ws/types.go b/pkg/ws/types.go index b030aa6..aea2e17 100644 --- a/pkg/ws/types.go +++ b/pkg/ws/types.go @@ -6,7 +6,7 @@ import ( ) const ( - RedisKeyQRSession = "qr:session:" + RedisKeyQRSession = "ws:session:" RedisKeyQRShare = "qr:share:" RedisKeyOssUpload = "oss:upload:task:" RedisKeyTaskLights = "task:lights:" diff --git a/services/percutaneous/internal/logic/getWsCodeLogic.go b/services/percutaneous/internal/logic/getWsCodeLogic.go index d76217b..da3c9d9 100644 --- a/services/percutaneous/internal/logic/getWsCodeLogic.go +++ b/services/percutaneous/internal/logic/getWsCodeLogic.go @@ -3,11 +3,14 @@ package logic import ( "context" "fmt" + "lone-services/pkg/redis" "lone-services/pkg/utils" + pkgws "lone-services/pkg/ws" "lone-services/rpc/percutaneous/pb" "lone-services/services/percutaneous/internal/dao" "lone-services/services/percutaneous/internal/svc" + jsoniter "github.com/json-iterator/go" "github.com/zeromicro/go-zero/core/logx" ) @@ -38,6 +41,17 @@ func (l *GetWsCodeLogic) GetWsCode(in *percutaneous.GetWsCodeRequest) (*percutan } key := utils.MD5Encrypt(fmt.Sprintf("%d%s%s", adminInfo.ID, dao.WsCode, Type)) + redisKey := pkgws.RedisKeyQRSession + key + payload, err := jsoniter.MarshalToString(pkgws.Session{ + Status: pkgws.StatusUsePosition, + ClientCode: key, + }) + if err != nil { + return l.fail(utils.Fail) + } + if err := redis.Client.Set(l.ctx, redisKey, payload, pkgws.SessionTTL).Err(); err != nil { + return l.fail(utils.Fail) + } return l.ok(key) } diff --git a/services/percutaneous/internal/logic/setPositionLogic.go b/services/percutaneous/internal/logic/setPositionLogic.go index f13f8b4..ea2fddf 100644 --- a/services/percutaneous/internal/logic/setPositionLogic.go +++ b/services/percutaneous/internal/logic/setPositionLogic.go @@ -38,7 +38,7 @@ func (l *SetPositionLogic) SetPosition(in *percutaneous.SetPositionRequest) (*pe return l.fail(utils.ErrorQRcodeExp) } - data := map[string]int{"ws_type": pkgws.WsTypeScan} + data := in.Position if err := pkgws.Publish(l.ctx, in.SessionId, pkgws.Success(data)); err != nil { l.Errorf("qrcode scan publish: %v", err) } diff --git a/services/ws/internal/logic/connectLogic.go b/services/ws/internal/logic/connectLogic.go index 9755f0f..ea80fde 100644 --- a/services/ws/internal/logic/connectLogic.go +++ b/services/ws/internal/logic/connectLogic.go @@ -75,10 +75,12 @@ func (l *ConnectLogic) Connect(w http.ResponseWriter, r *http.Request, req *type func (l *ConnectLogic) pushSnapshot(c *svc.Client, sess *pkgws.Session) error { var data interface{} + l.Logger.Error(sess.Status) switch sess.Status { case pkgws.StatusPending: data = nil case pkgws.StatusScanned, pkgws.StatusLogined: + l.Logger.Error("status", sess.Status) if len(sess.Data) > 0 && string(sess.Data) != "null" { var parsed any if err := jsoniter.Unmarshal(sess.Data, &parsed); err != nil { @@ -92,8 +94,10 @@ func (l *ConnectLogic) pushSnapshot(c *svc.Client, sess *pkgws.Session) error { data = nil } case pkgws.StatusUsePosition: + l.Logger.Error("use position") if len(sess.Data) > 0 && string(sess.Data) != "null" { data = sess.Data + l.Logger.Error("data=", data) } else { data = nil } diff --git a/services/ws/run.toml b/services/ws/run.toml index 6069829..24adb45 100644 --- a/services/ws/run.toml +++ b/services/ws/run.toml @@ -18,7 +18,7 @@ host = '39.106.171.204' password = 'lLMLcuPpzSj' port = 6379 - db = 0 + db = 1 [log-redis] host = '39.106.171.204'