You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.4 KiB
54 lines
1.4 KiB
package member |
|
|
|
import ( |
|
"context" |
|
"net" |
|
|
|
"go-common/app/interface/main/account/model" |
|
secmodel "go-common/app/service/main/secure/model" |
|
|
|
"go-common/library/log" |
|
) |
|
|
|
// NoticeV2 notice v2. |
|
func (s *Service) NoticeV2(c context.Context, mid int64, uuid string, pf string, b int64) (res *model.Notice2, err error) { |
|
var msg *secmodel.Msg |
|
if msg, err = s.secureRPC.Status(c, &secmodel.ArgSecure{Mid: mid, UUID: uuid}); err != nil { |
|
log.Error("service.secureRPC.Status(%d) uuid(%s) error(%v)", mid, uuid, err) |
|
return |
|
} |
|
if msg == nil || !msg.Notify { |
|
log.Info("s.NoticeV2(%d) msg(%v) continue", mid, msg) |
|
res = &model.Notice2{Status: model.NoticeStatusNotNotify} |
|
return |
|
} |
|
res = &model.Notice2{ |
|
Status: model.NoticeStatusNotify, |
|
Type: model.NoticeTypeSecurity, |
|
Security: &model.Security{ |
|
Location: msg.Log.Location, |
|
Time: msg.Log.Time, |
|
IP: inetNtoA(msg.Log.IP), |
|
Mid: msg.Log.Mid, |
|
}} |
|
return |
|
} |
|
|
|
func inetNtoA(sum uint32) string { |
|
ip := make(net.IP, net.IPv4len) |
|
ip[0] = byte((sum >> 24) & 0xFF) |
|
ip[1] = byte((sum >> 16) & 0xFF) |
|
ip[2] = byte((sum >> 8) & 0xFF) |
|
ip[3] = byte(sum & 0xFF) |
|
return ip.String() |
|
} |
|
|
|
// CloseNoticeV2 close notice v2. |
|
func (s *Service) CloseNoticeV2(c context.Context, mid int64, uuid string) (err error) { |
|
arg := &secmodel.ArgSecure{Mid: mid, UUID: uuid} |
|
if err = s.secureRPC.CloseNotify(c, arg); err != nil { |
|
log.Error("service.secureRPC.CloseNotify(%v) error(%v)", arg, err) |
|
return |
|
} |
|
return |
|
}
|
|
|