|
@@ -2,7 +2,11 @@ package whatsapp
|
|
|
|
|
|
import (
|
|
|
"context"
|
|
|
+ "github.com/alibabacloud-go/cams-20200606/v2/client"
|
|
|
"github.com/suyuan32/simple-admin-core/rpc/types/core"
|
|
|
+ "github.com/zeromicro/go-zero/core/errorx"
|
|
|
+ "wechat-api/hook/aliyun"
|
|
|
+
|
|
|
"wechat-api/ent/predicate"
|
|
|
"wechat-api/ent/whatsapp"
|
|
|
"wechat-api/internal/svc"
|
|
@@ -40,18 +44,20 @@ func (l *GetWhatsappListLogic) GetWhatsappList(req *types.WhatsappListReq) (*typ
|
|
|
if req.PhoneName != nil {
|
|
|
predicates = append(predicates, whatsapp.PhoneName(*req.PhoneName))
|
|
|
}
|
|
|
+
|
|
|
+ ids := make([]string, 0)
|
|
|
if req.WaId != nil && *req.WaId != "" {
|
|
|
+ ids = append(ids, *req.WaId)
|
|
|
predicates = append(predicates, whatsapp.WaID(*req.WaId))
|
|
|
} else {
|
|
|
- //wclist, err := l.svcCtx.DB.WhatsappChannel.Query().All(l.ctx)
|
|
|
- //if err != nil {
|
|
|
- // return nil, errorx.NewInvalidArgumentError(err.Error())
|
|
|
- //}
|
|
|
- //ids := make([]string, 0)
|
|
|
- //for _, v := range wclist {
|
|
|
- // ids = append(ids, v.WaID)
|
|
|
- //}
|
|
|
+ wclist, err := l.svcCtx.DB.WhatsappChannel.Query().All(l.ctx)
|
|
|
+ if err != nil {
|
|
|
+ return nil, errorx.NewInvalidArgumentError(err.Error())
|
|
|
+ }
|
|
|
|
|
|
+ for _, v := range wclist {
|
|
|
+ ids = append(ids, v.WaID)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
data, err := l.svcCtx.DB.Whatsapp.Query().Where(predicates...).WithAgent().Page(l.ctx, req.Page, req.PageSize)
|
|
@@ -64,10 +70,13 @@ func (l *GetWhatsappListLogic) GetWhatsappList(req *types.WhatsappListReq) (*typ
|
|
|
resp.Msg = errormsg.Success
|
|
|
resp.Data.Total = data.PageDetails.Total
|
|
|
|
|
|
- //result, err := aliyun.QueryCamsChatappPhoneNumbers(*req.WaId)
|
|
|
- //l.Logger.Infof("result=%v err=%v\n", result, err)
|
|
|
+ phoneNumbers := make([]*client.QueryChatappPhoneNumbersResponseBodyPhoneNumbers, 0)
|
|
|
+ for _, vid := range ids {
|
|
|
+ result, _ := aliyun.QueryCamsChatappPhoneNumbers(vid)
|
|
|
+ l.Logger.Infof("result=%v err=%v vid=%v\n", result, err, vid)
|
|
|
|
|
|
- //phoneNumbers := result.Body.PhoneNumbers
|
|
|
+ phoneNumbers = append(phoneNumbers, result.Body.PhoneNumbers...)
|
|
|
+ }
|
|
|
|
|
|
for _, v := range data.List {
|
|
|
organizationName := ""
|
|
@@ -97,16 +106,16 @@ func (l *GetWhatsappListLogic) GetWhatsappList(req *types.WhatsappListReq) (*typ
|
|
|
}
|
|
|
|
|
|
var phoneStatus, quality, verifyStatus, frequency string
|
|
|
- //currentPhone := v.Cc + v.Phone
|
|
|
- //for _, v := range phoneNumbers {
|
|
|
- // if *v.PhoneNumber == currentPhone {
|
|
|
- // phoneStatus = *v.Status
|
|
|
- // verifyStatus = *v.CodeVerificationStatus
|
|
|
- // quality = *v.QualityRating
|
|
|
- // frequency = *v.MessagingLimitTier
|
|
|
- // break
|
|
|
- // }
|
|
|
- //}
|
|
|
+ currentPhone := v.Cc + v.Phone
|
|
|
+ for _, v := range phoneNumbers {
|
|
|
+ if *v.PhoneNumber == currentPhone {
|
|
|
+ phoneStatus = *v.Status
|
|
|
+ verifyStatus = *v.CodeVerificationStatus
|
|
|
+ quality = *v.QualityRating
|
|
|
+ frequency = *v.MessagingLimitTier
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
resp.Data.Data = append(resp.Data.Data,
|
|
|
types.WhatsappInfo{
|