InteractMessageViewModel.ets 2.39 KB
// import { collcetRecordParams, MyCollectionItem, MyCollectionListModel } from '../model/MyCollectionModel';
import { HttpUrlUtils, HttpUtils, ResponseDTO, WDHttp } from 'wdNetwork';
import { Logger } from 'wdKit';
import promptAction from '@ohos.promptAction';
import {
  InteractMDTO,
  InteractMessageListModel, InteractMessageMItem, InteractMParams } from '../model/InteractMessageModel';

const TAG = "MyCollectionViewModel"

class InteractMessageViewModel {
  private static instance:InteractMessageViewModel
  /**
   * 单例模式
   * @returns
   */
  public static getInstance(): InteractMessageViewModel {
    if (!InteractMessageViewModel.instance) {
      InteractMessageViewModel.instance = new InteractMessageViewModel();
    }
    return InteractMessageViewModel.instance;
  }

  // ///互动通知
  // WDMessageCenterMessageType_Interact     = 1,
  //
  // ///预约消息
  // WDMessageCenterMessageType_Subscribe    = 2,
  //
  // ///系统消息
  // WDMessageCenterMessageType_System     = 3

  BaseGetRequest(contentType:number,pageNum:number){
    let userID = HttpUtils.getUserId();
    let url = HttpUrlUtils.getMessageListDataUrl()+`?contentType=${contentType}&userId=${userID}&pageSize=${20}&pageNum=${pageNum}`
    return WDHttp.get<InteractMessageListModel>(url)
  }


  fetchMessageList(contentType:number,pageNum:number):Promise<InteractMessageMItem>{
    return new Promise((success,error) => {
      this.BaseGetRequest(contentType,pageNum).then((navResDTO: InteractMessageListModel) => {
        if (!navResDTO || navResDTO.code != 0) {
          return
        }
        Logger.info(TAG, "fetchMessageList then,navResDTO.timeStamp:" + navResDTO.timestamp);
        success(navResDTO.data)
      }).catch((err: Error) => {
        Logger.error(TAG, `fetchMessageList catch, error.name : ${err.name},  error.message:${err.message}`);
        error("page data invalid");
      })
    })
  }

  getMessageLikeCount():Promise<number>{
    return new Promise((success,error) => {
      WDHttp.get<InteractMDTO>(HttpUrlUtils.getMessageLikeCount()).then((navResDTO: InteractMDTO) => {
        if (navResDTO.code == 0) {
          success(navResDTO.data)
        }
      })
        .catch((error: Error) => {
          Logger.info(TAG,'executeCollcet','ResponseDTO')
        })
    })
  }
}

const interactMViewModel = InteractMessageViewModel.getInstance();

export default interactMViewModel as InteractMessageViewModel