yangsunyue_wd

desc:评论详情页面 25%

Showing 30 changed files with 1065 additions and 0 deletions
... ... @@ -425,6 +425,20 @@ export class HttpUrlUtils {
return url;
}
/*优质评论页*/
static getQualityCommentUrl() {
let url = HttpUrlUtils._hostUrl + "api/rmrb-comment/comment/zh/c/highQuality"
return url
}
/*获取详情页评论列表*/
static getContentCommentListDataUrl() {
let url = HttpUrlUtils._hostUrl + "api/rmrb-comment/comment/zh/c/contentCommentList"
return url
}
static getAppointmentListDataUrl() {
let url = HttpUrlUtils._hostUrl + HttpUrlUtils.APPOINTMENT_LIST_DATA_PATH
return url
... ...
import PageModel from '../../../viewmodel/PageModel'
/// 所有用户类型定义
/// 1--普通账户正常;--不能直播、点播
/// 2--视频号,可以直播、点播;显示查看修改都是自己的信息;
/// 3--矩阵号,是有视频号升级来的;可以登陆app,我的里面是自己的信息;发评论、发视频、直播都是自己;矩阵号下面可以挂视频号、运营子账号;
/// 4--运营子账号,登陆使用的是自己的userId手机,密码;显示是对应视频号的信息,我的里面是视频号的信息,无法更改基本信息,自己没有头像,昵称信息;发点播、发直播、发评论,都是对应视频号的身份发送的;还是需要记录子账号的userId;(评论表 userId,userType,creatorId)
export enum WDPublicUserType {
/// 未知类型
WDPublicUserType_Unkown = 0,
/// 普通用户
WDPublicUserType_NormalUser = 1,
/// 号主
WDPublicUserType_AccountOwner = 2,
/// 矩阵号
WDPublicUserType_Matrix = 3,
/// 运营子账号
WDPublicUserType_OperatingSubAccount = 4,
/// 内容源账号
WDPublicUserType_ContentSourceAccount = 5,
}
@Observed
export class commentListModel extends PageModel{
pageNum: number = 0
pageSize: number = 0
totalCount: number = 0
hasNext: number = 0
list: commentItemModel[] = []
}
export class commentItemModel {
authorLike: string = ''
avatarFrame: string = ''
checkStatus: string = ''
childCommentNum: string = ''
childComments: commentItemModel[] = []
commentContent: string = ''
commentContentSensitive: string = ''
commentLevel: number = 0
commentPics: string = ''
commentSensitive: string = ''
commentType: number = 0
contentAuthor: number = 0
createTime: string = ''
creatorFlag: string = ''
fromCreatorId: string = ''
fromDeviceId: string = ''
fromUserHeader: string = ''
fromUserId: string = ''
fromUserName: string = ''
fromUserType: WDPublicUserType = 0
id: string = ''
likeNum: string = ''
/*是否点赞*/
isLike: boolean = false
mySelf: string = ''
parentId: string = ''
region: string = ''
replyNum: string = ''
rootCommentId: string = ''
sensitiveExist: string = ''
sensitiveShow: string = ''
toUserContentAuthor: string = ''
toUserId: string = ''
toUserName: string = ''
toUserType: string = ''
topFlag: string = ''
uuid: string = ''
/*本地使用,收起时默认3行 -1为不限制行数*/
maxLine: number = 3
/*是否有展示更多*/
hasMore:boolean = false
/*当有展示更多的时候,当前的状态是展开还是收起*/
expanded:boolean = false
highQualityExpireTime:string = '';
highQualityTime:string = '';
targetTitle:string = '';
targetStatus:string = '';
targetId:string = '';
targetRelId:string = '';
targetRelObjectId:string = '';
targetRelType:string = '';
targetType:string = '';
visitorComment:string = '';
shareInfo:commentItemShareInfoModel[] = []
// targetId:string = '';
// targetId:string = '';
// targetId:string = '';
}
export class commentItemShareInfoModel {
shareCoverUrl: string = ''
shareSummary: string = ''
shareTitle: string = ''
shareUrl: string = ''
}
\ No newline at end of file
... ...
import ArrayList from '@ohos.util.ArrayList'
import { ViewType } from 'wdConstant/Index';
import { LazyDataSource } from 'wdKit/Index';
import PageModel from '../../../viewmodel/PageModel';
import { commentItemModel, commentListModel, WDPublicUserType } from '../model/CommentModel';
import commentViewModel from '../viewmodel/CommentViewModel'
import { CommentText } from './CommentText';
import measure from '@ohos.measure'
@Entry
@Preview
@Component
export struct CommentComponent {
@State private browSingModel: commentListModel = new commentListModel()
isloading: boolean = false
// @State allDatas :commentItemModel[] = [];
@State allDatas: LazyDataSource<commentItemModel> = new LazyDataSource();
aboutToAppear() {
this.getData();
this.getData();
this.getData();
this.getData();
}
/*标题:全部评论*/
@Builder
titleHeader() {
Row() {
Row() {
Image($r('app.media.redLine'))
.height(16)
.width(3)
Text('全部评论')
.fontSize(18)// .fontColor('#222222')
.fontColor($r('app.color.color_222222'))
.fontWeight(FontWeight.Medium)
.margin({ left: 5 })
}
.margin({ left: 16 })
}.height(44)
.width('100%')
.justifyContent(FlexAlign.SpaceBetween);
}
/*1级评论作为titleHeader*/
@Builder
CommentHeaderItem(item: commentItemModel) {
Column() {
Row() {
//头像
Stack() {
Image(item.fromUserHeader)
.alt($r('app.media.default_head'))
.width('32')
.height('32')
.objectFit(ImageFit.Cover)
.borderRadius(16)
Image($r('app.media.icon_border_test'))
.width('48')
.height('48')
.objectFit(ImageFit.Cover)
.borderRadius(24)
}
.width(48)
.height(48)
.margin({ left: 8 })
.alignContent(Alignment.Center)
.onClick(() => {
// TODO 跳转个人详情
})
//昵称
Text(item.fromUserName)
.fontSize(14)
.fontColor($r('app.color.color_222222'))
.fontWeight(FontWeight.Medium)
.margin({ left: 5 })
/// 暂时不显示 “我” 的标签了
/// 人民号>置顶>作者
//人民号
// if (item.fromUserType === WDPublicUserType.WDPublicUserType_Matrix) {
Image($r('app.media.comment_rmh_tag')).width(20).height(20).margin({ left: 5 });
// }
//置顶
// if (item.topFlag) {
Image($r('app.media.comment_icon_zhiding')).width(30).height(18).margin({ left: 5 });
// }
//作者
// if (item.contentAuthor === 1) {
Text('作者')
.fontSize(11)
.fontColor('#968562')
.backgroundColor('#F1EFEB')
.textAlign(TextAlign.Center)
.borderRadius(2)
.width(30)
.height(18)
.margin({ left: 5 });
// }
}
CommentText({
longMessage: item.commentContent,
maxline: 3,
fontSize: 16,
fontWeight: FontWeight.Regular,
marginWidth: (59 + 16)
})
.margin({ left: 59, right: 16 })
this.CommentFooterView(item);
}.alignItems(HorizontalAlign.Start)
}
/*查看更多和收起*/
@Builder
GroupFooterView(item: commentItemModel) {
Row() {
if (item.expanded){
Row() {
Text('收起').fontColor($r('app.color.color_222222')).fontSize(14)
Image($r('app.media.comment_pickUp')).width(12).height(12)
}.margin({ left: 213 })
}else {
Row() {
Text().backgroundColor($r('app.color.color_EDEDED')).width(24).height(1)
Text('查看更多回复').fontColor($r('app.color.color_222222')).fontSize(14).margin({ left: 6 })
Image($r('app.media.comment_unfold')).width(12).height(12)
}.margin({ left: 53 })
}
}.height(30)
}
/*评论内容下面的IP地址时间点赞*/
@Builder
CommentFooterView(item: commentItemModel) {
Row() {
Row({ space: 6 }) {
Text(item.region ? (item.region + '网友') : '人民日报客户端网友')
.fontColor($r('app.color.color_B0B0B0'))
.fontSize(12);
Image($r('app.media.comment_hyphen'))
.size({
width: 4,
height: 4
})
//TODO: 时间格式需要本地调整
// / 展现专用,用于获取多久之前
// ///小于1分钟:刚刚
// ///1~60分钟:x分钟前
// ///1小时~1天:x小时前
// ///1天~2天:1天前
// ///2天~:日期隐藏
Text(item.createTime)
.fontColor($r('app.color.color_B0B0B0'))
.fontSize(12)
Image($r('app.media.comment_hyphen_block'))
.size({
width: 4,
height: 4
})
Text('回复')
.fontColor($r('app.color.color_222222'))
.fontSize(12)
.onClick(() => {
//TODO: 回复
})
}
Row({ space: 6 }) {
Text(item.likeNum)
.fontColor($r('app.color.color_666666'))
.fontSize(14)
Image($r('app.media.comment_like_normal'))
.size({
width: 16,
height: 16
})
.onClick(() => {
//TODO: 点赞
})
}
}
.justifyContent(FlexAlign.SpaceBetween)
.height(30)
.margin({ left: 59, right: 16 })
}
build() {
Column() {
List() {
ListItemGroup({ header: this.titleHeader() })
LazyForEach(this.allDatas, (item: commentItemModel, index: number) => {
if (item.hasMore) {
ListItemGroup({ header: this.CommentHeaderItem(item), footer: this.GroupFooterView(item) }) {
ForEach(item.childComments, (childItem: commentItemModel, subIndex: number) => {
ListItem() {
ChildCommentItem();
}
})
}
}else {
ListItemGroup({ header: this.CommentHeaderItem(item)}) {
ForEach(item.childComments, (childItem: commentItemModel, subIndex: number) => {
ListItem() {
ChildCommentItem();
}
})
}
}
})
}.layoutWeight(1)
}
}
//获取数据
async getData() {
this.browSingModel.currentPage = 1
commentViewModel.getCommentLocal(getContext()).then(commentListModel => {
if (commentListModel && commentListModel.list && commentListModel.list.length > 0) {
commentListModel.hasMore = true;
this.browSingModel.viewType = ViewType.LOADED;
this.allDatas.push(...commentListModel.list)
if (commentListModel.list.length === this.browSingModel.pageSize) {
this.browSingModel.currentPage++;
this.browSingModel.hasMore = true;
} else {
this.browSingModel.hasMore = false;
}
} else {
this.browSingModel.viewType = ViewType.EMPTY;
}
})
}
/*回复评论*/
ReplyComment() {
}
}
@Component
struct ChildCommentItem {
build() {
Text('child')
}
}
... ...
import measure from '@ohos.measure'
import curves from '@ohos.curves';
import { BusinessError } from '@ohos.base';
import display from '@ohos.display';
const collapseString = '...展开全文'
const uncollapseString = '...收起'
@Component
@Preview
export struct CommentText {
// 长文本
@State longMessage: string = ''
// 最大显示行数
@State maxLineMesssage: string = '';
@State lines: number = 3;
@State maxline: number = 3;
@State marginWidth:number = 0;
// 长文本状态(展开 or 收起)
@State collapseText: string = collapseString
// 屏幕宽度(单位px)
screenWidth: number = 0;
// 是否需要显示"展开"字样(注:当文本长度较短时就不需要“展开”)
@State isExpanded: boolean = false
/*当前展开状态*/
@State expandedStates: boolean = false;
@State fontSize: number = 18;
@State fontWeight: FontWeight = FontWeight.Regular
fontColor: ResourceColor = $r('app.color.color_222222')
// 测量文本宽度(单位px)
@State textWidth: number = 0;
// constructor(longMessage?:string,) {
// super();
// this.longMessage = longMessage;
// }
// 获取当前所有的display对象
promise: Promise<Array<display.Display>> = display.getAllDisplays()
aboutToAppear() {
console.log(`文本宽度为:${this.textWidth}`)
let padding = vp2px(5 + this.marginWidth)
this.textWidth = measure.measureText({
textContent: this.longMessage,
fontSize: this.fontSize,
fontWeight: this.fontWeight,
constraintWidth:(this.screenWidth - padding)
})
console.log(`文本宽度为:${this.textWidth}`)
this.promise.then((data: Array<display.Display>) => {
console.log(`所有的屏幕信息:${JSON.stringify(data)}`)
//单位为像素
this.screenWidth = data[0]["width"]
// 屏幕宽度 * 最大行数 * 组件宽度比例 和 文字测量宽度
this.isExpanded = (this.screenWidth - padding) * this.lines <= this.textWidth
// this.expandedStates = this.isExpanded;
//需要展开的话计算3行需要显示的文字
if (this.isExpanded) {
let padding = vp2px(5 + this.marginWidth)
let maxLineTextWidth = (this.screenWidth - padding) * this.maxline;
for (let index = 0; index < this.longMessage.length; index++) {
const element = this.longMessage.substring(0, index)
const string = element + this.collapseText; //截取
const thisTextWidth = measure.measureText({
textContent: string,
fontSize: this.fontSize,
fontWeight: this.fontWeight,
constraintWidth:(this.screenWidth - padding)
})
//计算有误差20
if (thisTextWidth >= maxLineTextWidth) {
break
}
this.maxLineMesssage = element;
}
}
}).catch((err: BusinessError) => {
console.error(`Failed to obtain all the display objects. Code: ${JSON.stringify(err)}`)
})
}
build() {
Row() {
Column() {
if (this.isExpanded) {
// Stack({ alignContent: Alignment.BottomEnd }) {
Text(this.longMessage) {
Span(this.expandedStates ? this.longMessage : this.maxLineMesssage)
Span(this.collapseText).onClick(() => {
if (this.collapseText == collapseString) {
this.collapseText = uncollapseString;
this.expandedStates = true;
this.lines = -1; // 使得设置的最大行属性无效
// 展开动画
// animateTo({
// duration: 150,
// curve: curves.springMotion(),
// }, () => {
// this.lines = -1; // 使得设置的最大行属性无效
// })
} else {
this.collapseText = collapseString;
this.expandedStates = false;
this.lines = this.maxline; // 只显示3行
// 收起动画
// animateTo({
// duration: 100,
// curve: Curve.Friction,
// }, () => {
// this.lines = this.maxline; // 只显示3行
// })
}
})
}
.width('100%')
.fontSize(this.fontSize)
.fontWeight(this.fontWeight)
.fontColor(this.fontColor)
.maxLines(this.lines)
// .backgroundColor(Color.Red)
// }
}
else {
Text('我没有展开收起')
.width('100%')
.fontSize(this.fontSize)
.fontWeight(this.fontWeight)
.fontColor(this.fontColor)
}
}
// .backgroundColor(Color.Brown)
.width('100%')
}
// .height('100%')
}
}
// Index.ets
@Entry
@Component
struct Index {
build() {
Column() {
CommentText()
}
}
}
\ No newline at end of file
... ...
import { ViewType } from 'wdConstant/Index'
import { LazyDataSource } from 'wdKit/Index'
import { commentItemModel, commentListModel } from '../model/CommentModel'
import commentViewModel from '../viewmodel/CommentViewModel'
@Entry
@Preview
@Component
export struct QualityCommentsComponent {
@State private browSingModel: commentListModel = new commentListModel()
isloading: boolean = false
@State allDatas: LazyDataSource<commentItemModel> = new LazyDataSource();
aboutToAppear(): void {
commentViewModel.fetchQualityCommentList('1').then((commentListModel)=>{
if (commentListModel && commentListModel.list && commentListModel.list.length > 0) {
commentListModel.hasMore = true;
this.browSingModel.viewType = ViewType.LOADED;
this.allDatas.push(...commentListModel.list)
if (commentListModel.list.length === this.browSingModel.pageSize) {
this.browSingModel.currentPage++;
this.browSingModel.hasMore = true;
} else {
this.browSingModel.hasMore = false;
}
} else {
this.browSingModel.viewType = ViewType.EMPTY;
}
})
}
build() {
}
}
\ No newline at end of file
... ...
import { Logger, ResourcesUtils } from 'wdKit/Index';
import { HttpUrlUtils, ResponseDTO } from 'wdNetwork/Index';
import { HttpRequest } from 'wdNetwork/src/main/ets/http/HttpRequest';
import { commentItemModel, commentListModel } from '../model/CommentModel';
import HashMap from '@ohos.util.HashMap';
const TAG = "CommentViewModel"
class CommentViewModel {
private static instance: CommentViewModel
/**
* 单例模式
* @returns
*/
public static getInstance(): CommentViewModel {
if (!CommentViewModel.instance) {
CommentViewModel.instance = new CommentViewModel();
}
return CommentViewModel.instance;
}
/*获取本地mock数据*/
async getCommentLocal(context: Context): Promise<commentListModel> {
Logger.info(TAG, `getBottomNavDataMock start`);
let compRes: ResponseDTO<commentListModel> | null = await ResourcesUtils.getResourcesJson<ResponseDTO<commentListModel>>(context,'comment_local.json' );
if (!compRes || !compRes.data) {
Logger.info(TAG, `getAppointmentListDataLocal compRes is empty`);
return new commentListModel()
}
Logger.info(TAG, `getAppointmentListDataLocal getResourcesJsonSync compRes : ${JSON.stringify(compRes)}`);
return compRes.data
}
fetchQualityCommentList(pageNum: string) {
let url = HttpUrlUtils.getQualityCommentUrl() + `?&pageSize=${10}&pageNum=${pageNum}`
let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders();
return new Promise<commentListModel>((success, fail) => {
HttpRequest.get<ResponseDTO<commentListModel>>(url, headers).then((data: ResponseDTO<commentListModel>) => {
if (!data || !data.data) {
fail("数据为空")
return
}
if (data.code != 0) {
fail(data.message)
return
}
let listData = data.data as commentListModel
success(listData)
}, (error: Error) => {
fail(error.message)
Logger.debug(TAG, error.toString())
})
})
}
// BaseGetRequest(contentID:number,contentType:string,pageNum:string){
// let url = HttpUrlUtils.getMyCollectionListDataUrl()+ `?type=${type}&operateTag=${1}&pageSize=${10}&pageNum=${pageNum}`
// if (tagId.length > 0) {
// url = url + `&tagId=${tagId}`
// }
// let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders()
// return WDHttp.get<ResponseDTO<commentListModel>>(url, headers)
// }
//
//
// fetchCommentList(contentID:number,contentType:string,pageNum:string):Promise<commentListModel>{
// return new Promise<commentListModel>((success,error) => {
// this.BaseGetRequest(contentID,contentType,pageNum).then((navResDTO: ResponseDTO<commentListModel>) => {
// if (!navResDTO || navResDTO.code != 0) {
// // success(this.getAppointmentListDataLocal(context))
// return
// }
// Logger.info(TAG, "getAppointmentList then,AppointmentResDTO.timeStamp:" + navResDTO.timestamp);
// let listData = navResDTO.data as commentListModel
// success(listData)
// }).catch((err: Error) => {
// Logger.error(TAG, `fetchAppointmentListDataApi catch, error.name : ${err.name}, error.message:${err.message}`);
// error("page data invalid");
// })
// })
// }
}
const commentViewModel = CommentViewModel.getInstance();
export default commentViewModel as CommentViewModel
\ No newline at end of file
... ...
{
"code": "0",
"data": {
"hasNext": 1,
"list": [{
"authorLike": 0,
"avatarFrame": "",
"checkStatus": 2,
"childCommentNum": 0,
"childComments": [],
"commentContent": "走在繁华的城市街头,明空感到无比紧张。他的心跳如雷鼓般擂动着胸膛,使得身上的伪装仿佛随时都要被揭开。然而,他仍然保持着冷静,凭借着过人的胆识与智慧,成功地躲过了敌人的层层封锁。走在繁华的城市街头,明空感到无比紧张。他的心跳如雷鼓般擂动着胸膛,使得身上的伪装仿佛随时都要被揭开。然而,他仍然保持着冷静,凭借着过人的胆识与智慧,成功地躲过了敌人的层层封锁。走在繁华的城市街头,明空感到无比紧张。他的心跳如雷鼓般擂动着胸膛,使得身上的伪装仿佛随时都要被揭开。然而,他仍然保持着冷静,凭借着过人的胆识与智慧,成功地躲过了敌人的层层封锁。",
"commentContentSensitive": "",
"commentLevel": 1,
"commentPics": "",
"commentSensitive": "",
"commentType": "1",
"contentAuthor": 0,
"createTime": "2024-04-09 18:07:24",
"creatorFlag": 0,
"fromCreatorId": "",
"fromDeviceId": "",
"fromUserHeader": "https://rmrbcmsonline.peopleapp.com/upload/user_app/202010/rmrb_mMCZxkBw1602498775.jpg?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
"fromUserId": "531160058210565",
"fromUserName": "**勇",
"fromUserType": 1,
"id": 57187947,
"likeNum": 4,
"mySelf": 0,
"parentId": -1,
"region": "新疆维吾尔自治区乌鲁木齐市",
"replyNum": 0,
"rootCommentId": 57187947,
"sensitiveExist": 0,
"sensitiveShow": 1,
"toUserContentAuthor": 0,
"toUserId": "",
"toUserName": "",
"toUserType": null,
"topFlag": 0,
"uuid": "c31fe10c-38b4-48f9-a847-eeb33ffae35e"
}, {
"authorLike": 0,
"avatarFrame": "",
"checkStatus": 2,
"childCommentNum": 0,
"childComments": [],
"commentContent": "咎由自取",
"commentContentSensitive": "",
"commentLevel": 1,
"commentPics": "",
"commentSensitive": "",
"commentType": "1",
"contentAuthor": 0,
"createTime": "2024-04-09 17:59:17",
"creatorFlag": 0,
"fromCreatorId": "",
"fromDeviceId": "",
"fromUserHeader": "http://thirdqq.qlogo.cn/qqapp/100857255/F4069650B754E8DEDB65DFCCB6261211/100",
"fromUserId": "530949198104837",
"fromUserName": "[@王者之师@]",
"fromUserType": 1,
"id": 57255431,
"likeNum": 3,
"mySelf": 0,
"parentId": -1,
"region": "河南省商丘市",
"replyNum": 0,
"rootCommentId": 57255431,
"sensitiveExist": 0,
"sensitiveShow": 1,
"toUserContentAuthor": 0,
"toUserId": "",
"toUserName": "",
"toUserType": null,
"topFlag": 0,
"uuid": "a44b8513-4e7e-4644-b0ed-37fa3fd98788"
}, {
"authorLike": 0,
"avatarFrame": "",
"checkStatus": 2,
"childCommentNum": 0,
"childComments": [],
"commentContent": "违纪违法,严惩不贷!",
"commentContentSensitive": "",
"commentLevel": 1,
"commentPics": "",
"commentSensitive": "",
"commentType": "1",
"contentAuthor": 0,
"createTime": "2024-04-09 17:44:10",
"creatorFlag": 0,
"fromCreatorId": "",
"fromDeviceId": "",
"fromUserHeader": "https://rmrbcmsonline.peopleapp.com/upload/user_app/202010/rmrb_ZTKHKDIA1603932748.jpg?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
"fromUserId": "531165579823365",
"fromUserName": "哆啦A梦伴我同行",
"fromUserType": 1,
"id": 57186915,
"likeNum": 3,
"mySelf": 0,
"parentId": -1,
"region": "安徽省铜陵市",
"replyNum": 0,
"rootCommentId": 57186915,
"sensitiveExist": 0,
"sensitiveShow": 1,
"toUserContentAuthor": 0,
"toUserId": "",
"toUserName": "",
"toUserType": null,
"topFlag": 0,
"uuid": "d9c7bd8f-59e8-46cb-9525-d4414049a8ea"
}, {
"authorLike": 0,
"avatarFrame": "",
"checkStatus": 2,
"childCommentNum": 0,
"childComments": [],
"commentContent": "反腐倡廉,没有禁区",
"commentContentSensitive": "",
"commentLevel": 1,
"commentPics": "",
"commentSensitive": "",
"commentType": "1",
"contentAuthor": 0,
"createTime": "2024-04-09 17:36:44",
"creatorFlag": 0,
"fromCreatorId": "",
"fromDeviceId": "",
"fromUserHeader": "https://rmrbcmsonline.peopleapp.com/upload/user_app/201709/rmrb_RIg022m31504938430.jpg?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
"fromUserId": "530884188965125",
"fromUserName": "太宗裔仁寿李登榜",
"fromUserType": 1,
"id": 57186467,
"likeNum": 4,
"mySelf": 0,
"parentId": -1,
"region": "",
"replyNum": 0,
"rootCommentId": 57186467,
"sensitiveExist": 0,
"sensitiveShow": 1,
"toUserContentAuthor": 0,
"toUserId": "",
"toUserName": "",
"toUserType": null,
"topFlag": 0,
"uuid": "e54c1396-441e-450e-9714-632d9e097b08"
}, {
"authorLike": 0,
"avatarFrame": "",
"checkStatus": 2,
"childCommentNum": 0,
"childComments": [],
"commentContent": "严惩!",
"commentContentSensitive": "",
"commentLevel": 1,
"commentPics": "",
"commentSensitive": "",
"commentType": "1",
"contentAuthor": 0,
"createTime": "2024-04-09 17:29:56",
"creatorFlag": 0,
"fromCreatorId": "",
"fromDeviceId": "",
"fromUserHeader": "https://rmrbcmsonline.peopleapp.com/upload/user_app/201906/rmrb_sfiKkJEo1561260739.jpg?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
"fromUserId": "530983644408069",
"fromUserName": "时间的折叠",
"fromUserType": 1,
"id": 57186157,
"likeNum": 1,
"mySelf": 0,
"parentId": -1,
"region": "河南省郑州市",
"replyNum": 0,
"rootCommentId": 57186157,
"sensitiveExist": 0,
"sensitiveShow": 1,
"toUserContentAuthor": 0,
"toUserId": "",
"toUserName": "",
"toUserType": null,
"topFlag": 0,
"uuid": "daebe242-5e10-430f-8de8-7ff1d8fae27b"
}, {
"authorLike": 0,
"avatarFrame": "",
"checkStatus": 2,
"childCommentNum": 0,
"childComments": [],
"commentContent": "孔祥喜,寡廉鲜耻、贪得无厌,终落法网,大快人心。孔祥喜,寡廉鲜耻、贪得无厌,终落法网,大快人心。孔祥喜,寡廉鲜耻、贪得无厌,终落法网,大快人心。孔祥喜,寡廉鲜耻、贪得无厌,终落法网,大快人心。孔祥喜,寡廉鲜耻、贪得无厌,终落法网,大快人心。孔祥喜,寡廉鲜耻、贪得无厌,终落法网,大快人心。孔祥喜,寡廉鲜耻、贪得无厌,终落法网,大快人心。孔祥喜,寡廉鲜耻、贪得无厌,终落法网,大快人心。孔祥喜,寡廉鲜耻、贪得无厌,终落法网,大快人心。孔祥喜,寡廉鲜耻、贪得无厌,终落法网,大快人心。孔祥喜,寡廉鲜耻、贪得无厌,终落法网,大快人心。",
"commentContentSensitive": "",
"commentLevel": 1,
"commentPics": "",
"commentSensitive": "",
"commentType": "1",
"contentAuthor": 0,
"createTime": "2024-04-09 17:28:14",
"creatorFlag": 0,
"fromCreatorId": "",
"fromDeviceId": "",
"fromUserHeader": "https://rmrbcmsonline.peopleapp.com/upload/user_app/201912/rmrb_a_393944911428186112.jpg?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
"fromUserId": "530796590283333",
"fromUserName": "爱我中华",
"fromUserType": 1,
"id": 57185773,
"likeNum": 20,
"mySelf": 0,
"parentId": -1,
"region": "陕西省榆林市",
"replyNum": 0,
"rootCommentId": 57185773,
"sensitiveExist": 0,
"sensitiveShow": 1,
"toUserContentAuthor": 0,
"toUserId": "",
"toUserName": "",
"toUserType": null,
"topFlag": 0,
"uuid": "a1371f97-ccfa-4477-893d-4f46144f320d"
}, {
"authorLike": 0,
"avatarFrame": "",
"checkStatus": 2,
"childCommentNum": 0,
"childComments": [],
"commentContent": "违法乱纪必究!",
"commentContentSensitive": "",
"commentLevel": 1,
"commentPics": "",
"commentSensitive": "",
"commentType": "1",
"contentAuthor": 0,
"createTime": "2024-04-09 17:27:10",
"creatorFlag": 0,
"fromCreatorId": "",
"fromDeviceId": "",
"fromUserHeader": "https://rmrbcmsonline.peopleapp.com/upload/user_app/202403/rmrb_pMPU7m4t1711116925.jpg?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
"fromUserId": "530911710439685",
"fromUserName": "上善若水",
"fromUserType": 1,
"id": 57185770,
"likeNum": 5,
"mySelf": 0,
"parentId": -1,
"region": "",
"replyNum": 0,
"rootCommentId": 57185770,
"sensitiveExist": 0,
"sensitiveShow": 1,
"toUserContentAuthor": 0,
"toUserId": "",
"toUserName": "",
"toUserType": null,
"topFlag": 0,
"uuid": "60779cde-36cc-4fec-a984-58035dea35ea"
}, {
"authorLike": 0,
"avatarFrame": "",
"checkStatus": 2,
"childCommentNum": 0,
"childComments": [],
"commentContent": "反腐永遠吹衝鋒號",
"commentContentSensitive": "",
"commentLevel": 1,
"commentPics": "",
"commentSensitive": "",
"commentType": "1",
"contentAuthor": 0,
"createTime": "2024-04-09 17:26:34",
"creatorFlag": 0,
"fromCreatorId": "",
"fromDeviceId": "",
"fromUserHeader": "https://rmrbcmsonline.peopleapp.com/upload/default.png?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
"fromUserId": "531302591987589",
"fromUserName": "荒菴",
"fromUserType": 1,
"id": 57185761,
"likeNum": 4,
"mySelf": 0,
"parentId": -1,
"region": "",
"replyNum": 0,
"rootCommentId": 57185761,
"sensitiveExist": 0,
"sensitiveShow": 1,
"toUserContentAuthor": 0,
"toUserId": "",
"toUserName": "",
"toUserType": null,
"topFlag": 0,
"uuid": "6d4bc2e1-78b8-4c71-af77-db3b460f35c8"
}, {
"authorLike": 0,
"avatarFrame": "",
"checkStatus": 2,
"childCommentNum": 0,
"childComments": [],
"commentContent": "丧失理想信念;\n背弃初心使命。\n无视八项规定;\n依法审查起诉。👈👈",
"commentContentSensitive": "",
"commentLevel": 1,
"commentPics": "",
"commentSensitive": "",
"commentType": "1",
"contentAuthor": 0,
"createTime": "2024-04-09 17:12:59",
"creatorFlag": 0,
"fromCreatorId": "",
"fromDeviceId": "",
"fromUserHeader": "https://rmrbcmsonline.peopleapp.com/upload/user_app/202312/rmrb_KVwjcPrp1701846404.jpg?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
"fromUserId": "531592816140165",
"fromUserName": "佛系生存",
"fromUserType": 1,
"id": 57254110,
"likeNum": 20,
"mySelf": 0,
"parentId": -1,
"region": "新疆维吾尔自治区乌鲁木齐市",
"replyNum": 0,
"rootCommentId": 57254110,
"sensitiveExist": 0,
"sensitiveShow": 1,
"toUserContentAuthor": 0,
"toUserId": "",
"toUserName": "",
"toUserType": null,
"topFlag": 0,
"uuid": "a5a61f24-6c97-479f-8ff4-0b23330fe6c2"
}, {
"authorLike": 0,
"avatarFrame": "",
"checkStatus": 2,
"childCommentNum": 0,
"childComments": [],
"commentContent": "作恶必受报应👊🏻👊🏻",
"commentContentSensitive": "",
"commentLevel": 1,
"commentPics": "",
"commentSensitive": "",
"commentType": "1",
"contentAuthor": 0,
"createTime": "2024-04-09 17:11:32",
"creatorFlag": 0,
"fromCreatorId": "",
"fromDeviceId": "",
"fromUserHeader": "https://rmrbcmsonline.peopleapp.com/upload/user_app/202402/rmrb_QEU4YSVc1708676160.jpg?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
"fromUserId": "522520907165062",
"fromUserName": "天耀中华888合十",
"fromUserType": 1,
"id": 57184951,
"likeNum": 5,
"mySelf": 0,
"parentId": -1,
"region": "山东省烟台市",
"replyNum": 0,
"rootCommentId": 57184951,
"sensitiveExist": 0,
"sensitiveShow": 1,
"toUserContentAuthor": 0,
"toUserId": "",
"toUserName": "",
"toUserType": null,
"topFlag": 0,
"uuid": "81f86371-83b8-4144-8699-23e4ee876378"
}],
"pageNum": 0,
"pageSize": 10,
"totalCommentNum": 11,
"totalCount": 11
},
"message": "Success",
"meta": null,
"requestId": "",
"success": true,
"timestamp": 1712667900724
}
\ No newline at end of file
... ...