123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- package addfriend
- import (
- "context"
- "github.com/bwmarrin/snowflake"
- "github.com/zeromicro/go-zero/core/logx"
- "log"
- "time"
- "wechat-api/ent/addwechatfriendlog"
- "wechat-api/hook"
- "wechat-api/internal/svc"
- )
- type AddWechatFriendService struct {
- logx.Logger
- ctx context.Context
- svcCtx *svc.ServiceContext
- }
- func NewAddWechatFriendService(ctx context.Context, svcCtx *svc.ServiceContext) *AddWechatFriendService {
- return &AddWechatFriendService{
- Logger: logx.WithContext(ctx),
- ctx: ctx,
- svcCtx: svcCtx}
- }
- // FindFriendByContent 查找好友的服务
- // 参数 wechatId 微信ID
- // content 手机号 或者其他
- func (l *AddWechatFriendService) FindFriendByContent(wechatId, content string) bool {
- //先记录数据 --- 避免 发送出请求,立马返回 导致 数据 还没入库
- hookClient := hook.NewHook("", "", "")
- result, err := hookClient.FindContactByContent(wechatId, content)
- if err != nil {
- result["sendResult"] = "success"
- } else {
- result["sendResult"] = err
- }
- //发送第三方查找
- update := l.svcCtx.DB.AddWechatFriendLog.Update().
- Where(addwechatfriendlog.OwnerWxIDEQ(wechatId)).
- Where(addwechatfriendlog.FindContentEQ(content)).
- SetFindResult(result).
- SetUpdatedAt(time.Now().Unix())
- _, err = update.Save(l.ctx)
- if err != nil || result["sendResult"] != "success" {
- logx.Errorf("更新 AddWechatFriendLog 失败 或者: %v", err)
- return false
- }
- return true
- }
- // AddNewFriend 添加好友的服务
- // 参数 wechatId 微信ID
- // content 手机号 或者其他
- // message 备注
- func (l *AddWechatFriendService) AddNewFriend(wechatId, content, message string) bool {
- //先记录请求
- hookClient := hook.NewHook("", "", "")
- node, err := snowflake.NewNode(1) // 1 是节点 ID,根据需要设置
- if err != nil {
- log.Fatal(err)
- }
- taskId := node.Generate()
- result, err := hookClient.AddFriendTask(wechatId, content, message, taskId.Int64())
- if err != nil {
- result["sendResult"] = "success"
- } else {
- result["sendResult"] = err
- }
- update := l.svcCtx.DB.AddWechatFriendLog.Update().
- Where(addwechatfriendlog.OwnerWxIDEQ(wechatId)).
- Where(addwechatfriendlog.FindContentEQ(content)).
- SetAddResult(result).
- AddTaskCount(1).
- SetUpdatedAt(time.Now().Unix())
- _, err = update.Save(l.ctx)
- if err != nil || result["sendResult"] != "success" {
- logx.Errorf("更新 AddWechatFriendLog 失败 或者: %v", err)
- return false
- }
- return true //获取好友列表
- }
|