stop_api_avatar_logic.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package avatar
  2. import (
  3. "context"
  4. "encoding/json"
  5. "fmt"
  6. avatar20220130 "github.com/alibabacloud-go/avatar-20220130/v2/client"
  7. "github.com/suyuan32/simple-admin-common/msg/errormsg"
  8. "github.com/zeromicro/go-zero/core/errorx"
  9. "wechat-api/ent/wxcard"
  10. "wechat-api/hook/aliyun"
  11. "wechat-api/internal/utils/dberrorhandler"
  12. "wechat-api/internal/svc"
  13. "wechat-api/internal/types"
  14. "github.com/zeromicro/go-zero/core/logx"
  15. )
  16. type StopApiAvatarLogic struct {
  17. logx.Logger
  18. ctx context.Context
  19. svcCtx *svc.ServiceContext
  20. }
  21. func NewStopApiAvatarLogic(ctx context.Context, svcCtx *svc.ServiceContext) *StopApiAvatarLogic {
  22. return &StopApiAvatarLogic{
  23. Logger: logx.WithContext(ctx),
  24. ctx: ctx,
  25. svcCtx: svcCtx}
  26. }
  27. func (l *StopApiAvatarLogic) StopApiAvatar(req *types.StopInstanceReq) (*types.StopInstanceResp, error) {
  28. card, err := l.svcCtx.DB.WxCard.Query().Where(wxcard.ID(*req.CardId)).Only(l.ctx)
  29. if err != nil {
  30. return nil, dberrorhandler.DefaultEntError(l.Logger, err, req)
  31. }
  32. if card.AiInfo == "" {
  33. return nil, errorx.NewInvalidArgumentError("AiInfo is empty")
  34. }
  35. var jsonData aliyun.AiTypes
  36. err = json.Unmarshal([]byte(card.AiInfo), &jsonData)
  37. if err != nil {
  38. return nil, errorx.NewInvalidArgumentError(err.Error())
  39. }
  40. var aiData *avatar20220130.StopInstanceResponseBodyData
  41. aiData, err = aliyun.StopInstance(*req.SessionId, jsonData)
  42. fmt.Printf("aliData=%v error=%v \n", aiData, err)
  43. if err != nil {
  44. return nil, errorx.NewInternalError(err.Error())
  45. }
  46. return &types.StopInstanceResp{
  47. BaseDataInfo: types.BaseDataInfo{
  48. Code: 0,
  49. Msg: errormsg.Success,
  50. },
  51. Data: types.StopInstance{
  52. RequestId: aiData.RequestId,
  53. SessionId: aiData.SessionId,
  54. },
  55. }, nil
  56. }