chenjun3_wd

直播回看数据请求

... ... @@ -50,6 +50,8 @@ export { GroupDTO } from './src/main/ets/bean/component/GroupDTO';
export { CompDTO } from './src/main/ets/bean/component/CompDTO';
export { LiveReviewDTO } from './src/main/ets/bean/component/LiveReviewDTO';
export { NewspaperListBean } from './src/main/ets/bean/newspaper/NewspaperListBean';
export { NewspaperListItemBean } from './src/main/ets/bean/newspaper/NewspaperListItemBean';
... ...
import { ContentDTO } from '../content/ContentDTO';
export interface LiveReviewDTO {
hasNext: boolean;
pageNum: number;
pageSize: number;
totalCount: number;
list: ContentDTO[];
}
\ No newline at end of file
... ...
import { CommonConstants, ViewType } from 'wdConstant';
import { Logger, DateTimeUtils } from 'wdKit';
import { DateTimeUtils, Logger } from 'wdKit';
import PageViewModel from '../../viewmodel/PageViewModel';
import { EmptyComponent } from '../view/EmptyComponent';
import { ErrorComponent } from '../view/ErrorComponent';
... ... @@ -11,7 +11,7 @@ import NoMoreLayout from './NoMoreLayout';
import LoadMoreLayout from './LoadMoreLayout';
import CustomRefreshLoadLayout from './CustomRefreshLoadLayout';
import { CompParser } from '../CompParser';
import { CompDTO } from 'wdBean';
import { CompDTO, LiveReviewDTO } from 'wdBean';
const TAG = 'PageComponent';
... ... @@ -21,6 +21,14 @@ export struct PageComponent {
navIndex: number = 0;
pageId: string = "";
channelId: string = "";
pageNum: number = 1;
liveReviewDTO: LiveReviewDTO = {
hasNext: false,
pageNum: 0,
pageSize: 0,
totalCount: 0,
list: []
};
@Link @Watch('onChange') currentTopNavSelectedIndex: number
build() {
... ... @@ -94,15 +102,20 @@ export struct PageComponent {
@Builder
LoadingLayout() {
CustomRefreshLoadLayout({ refreshBean: new RefreshLayoutBean(true,
$r('app.media.ic_pull_up_load'), $r('app.string.pull_up_load_text'), this.pageModel.pullDownRefreshHeight) })
CustomRefreshLoadLayout({
refreshBean: new RefreshLayoutBean(true,
$r('app.media.ic_pull_up_load'), $r('app.string.pull_up_load_text'), this.pageModel.pullDownRefreshHeight)
})
}
async aboutToAppear() {
// 选中tab,才请求数据。拦截大量接口请求
if (this.navIndex === this.currentTopNavSelectedIndex) {
if (this.navIndex === 0 && this.navIndex === this.currentTopNavSelectedIndex) {
this.getData();
} else if (this.navIndex === 1) {
this.getPreviewData()
}
}
onChange() {
... ... @@ -140,6 +153,13 @@ export struct PageComponent {
Logger.debug(TAG, 'aboutToAppear, data response page ' + this.pageId + ', comp list is empty.');
this.pageModel.viewType = ViewType.EMPTY;
}
}
async getPreviewData() {
this.liveReviewDTO = await PageViewModel.getLiveReviewUrl(this.pageNum, this.pageModel.pageSize)
Logger.debug(TAG, 'aboutToAppear, getPreviewData ' + this.liveReviewDTO.hasNext);
this.getData();
}
}
... ...
... ... @@ -5,8 +5,10 @@ import {
batchLikeAndCollectResult,
CompInfoBean,
ContentDetailDTO,
ContentDTO,
contentListParams,
InteractDataDTO,
LiveReviewDTO,
MorningEveningPaperDTO,
NavigationBodyDTO,
NewspaperListBean,
... ... @@ -18,8 +20,7 @@ import {
postExecuteCollectRecordParams,
postExecuteLikeParams,
postInteractAccentionOperateParams,
postRecommendListParams,
ContentDTO
postRecommendListParams
} from 'wdBean';
const TAG = 'HttpRequest';
... ... @@ -146,9 +147,9 @@ export class PageRepository {
return url;
}
static getLivePreviewUrl() {
let url = HttpUrlUtils.getHost() + HttpUrlUtils.LIVE_REVIEW_PATH;
Logger.info(TAG, "getLivePreviewUrl url = " + url)
static getLiveReviewUrl(pageNum: number = 1, pageSize: number = 20) {
let url = HttpUrlUtils.getHost() + HttpUrlUtils.LIVE_REVIEW_PATH + "?pageNum=" + pageNum + "&pageSize=" + pageSize;
Logger.info(TAG, "getLiveReviewUrl url = " + url)
return url;
}
... ... @@ -322,10 +323,10 @@ export class PageRepository {
/**
* 获取直播回顾双卡位数据
* */
static fetchLivePreviewUrl() {
let url = PageRepository.getLivePreviewUrl()
static fetchLiveReviewUrl(pageNum: number, pageSize: number) {
let url = PageRepository.getLiveReviewUrl(pageNum, pageSize)
let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders();
return WDHttp.get<ResponseDTO<PageInfoBean>>(url, headers)
return WDHttp.get<ResponseDTO<LiveReviewDTO>>(url, headers)
};
/**
... ... @@ -334,7 +335,7 @@ export class PageRepository {
* @param params
* @returns
* */
static postRecommendList(params:postRecommendListParams){
static postRecommendList(params: postRecommendListParams) {
let url = HttpUrlUtils.getHost() + HttpUrlUtils.RECOMMEND_LIST
let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders();
Logger.info(TAG, "postRecommendList url = " + url + JSON.stringify(params))
... ...
... ... @@ -3,11 +3,12 @@ import {
ContentBean,
InteractDataDTO,
InteractParam,
LiveReviewDTO,
MorningEveningPaperDTO,
NavigationBodyDTO,
PageDTO,
PageInfoBean
PageDTO
} from 'wdBean';
import { CollectionUtils, Logger, ResourcesUtils, StringUtils } from 'wdKit';
import { ResponseDTO, } from 'wdNetwork';
import { PageRepository } from '../repository/PageRepository';
... ... @@ -285,10 +286,10 @@ export class PageViewModel extends BaseViewModel {
return param;
}
async getLivePreviewUrl(): Promise<PageInfoBean> {
return new Promise<PageInfoBean>((success, error) => {
async getLiveReviewUrl(pageNum: number, pageSize: number): Promise<LiveReviewDTO> {
return new Promise<LiveReviewDTO>((success, error) => {
Logger.info(TAG, `getLivePreviewUrl pageInfo start`);
PageRepository.fetchLivePreviewUrl().then((resDTO: ResponseDTO<PageInfoBean>) => {
PageRepository.fetchLiveReviewUrl(pageNum, pageSize).then((resDTO: ResponseDTO<LiveReviewDTO>) => {
if (!resDTO || !resDTO.data) {
Logger.error(TAG, 'getLivePreviewUrl then navResDTO is empty');
error('resDTO is empty');
... ...