陈剑华

Merge remote-tracking branch 'origin/main'

@@ -133,10 +133,15 @@ export class NetworkManager { @@ -133,10 +133,15 @@ export class NetworkManager {
133 * 同步获取网络类型,耗时 133 * 同步获取网络类型,耗时
134 */ 134 */
135 public getNetTypeSync(): NetworkType { 135 public getNetTypeSync(): NetworkType {
136 - let netHandle = connection.getDefaultNetSync();  
137 - let netCapabilities = connection.getNetCapabilitiesSync(netHandle)  
138 - this.reset(netCapabilities.bearerTypes)  
139 - return this.networkType; 136 + try {
  137 + let netHandle = connection.getDefaultNetSync();
  138 + let netCapabilities = connection.getNetCapabilitiesSync(netHandle)
  139 + this.reset(netCapabilities.bearerTypes)
  140 + return this.networkType;
  141 + } catch (e) {
  142 + Logger.error(TAG, 'getNetTypeSync e: ' + JSON.stringify(e))
  143 + }
  144 + return NetworkType.TYPE_UNKNOWN
140 } 145 }
141 146
142 private parseData(data: connection.NetCapabilityInfo) { 147 private parseData(data: connection.NetCapabilityInfo) {
@@ -43,7 +43,7 @@ export class NetworkUtil { @@ -43,7 +43,7 @@ export class NetworkUtil {
43 */ 43 */
44 static isNetConnected(): boolean { 44 static isNetConnected(): boolean {
45 let type = NetworkManager.getInstance().getNetType() 45 let type = NetworkManager.getInstance().getNetType()
46 - if (type == NetworkType.TYPE_NONE) { 46 + if (type == NetworkType.TYPE_UNKNOWN || type == NetworkType.TYPE_NONE) {
47 return false 47 return false
48 } 48 }
49 return true 49 return true
@@ -255,7 +255,7 @@ export struct PageComponent { @@ -255,7 +255,7 @@ export struct PageComponent {
255 this.pageModel.channelId = this.channelId; 255 this.pageModel.channelId = this.channelId;
256 this.pageModel.currentPage = 1; 256 this.pageModel.currentPage = 1;
257 this.pageModel.pageTotalCompSize = 0; 257 this.pageModel.pageTotalCompSize = 0;
258 - // TODO PageHelper.getInitCacheData(this.pageModel, this.pageAdvModel) 258 + PageHelper.getInitCacheData(this.pageModel, this.pageAdvModel)
259 PageHelper.getInitData(this.pageModel, this.pageAdvModel) 259 PageHelper.getInitData(this.pageModel, this.pageAdvModel)
260 }, 100) 260 }, 100)
261 } 261 }
@@ -95,15 +95,17 @@ struct MineHomePage { @@ -95,15 +95,17 @@ struct MineHomePage {
95 } 95 }
96 WDRouterRule.jumpWithPage(WDRouterPage.editUserNikeNamePage,params) 96 WDRouterRule.jumpWithPage(WDRouterPage.editUserNikeNamePage,params)
97 }) 97 })
  98 +
98 if(this.levelId>0){ 99 if(this.levelId>0){
99 - Text(`等级${this.levelId}`)  
100 - .textAlign(TextAlign.Center)  
101 - .fontColor($r('app.color.color_ED2800'))  
102 - .backgroundColor($r('app.color.white'))  
103 - .fontSize('19lpx')  
104 - .width('96lpx')  
105 - .height('35lpx')  
106 - .margin({ left: '10lpx' }) 100 + Text(`等级${this.levelId}`)
  101 + .fontColor($r('app.color.color_ED2800'))
  102 + .fontSize('23lpx')
  103 + .fontWeight(500)
  104 + .margin({ left: '10lpx' })
  105 + .backgroundImage($r("app.media.my_grade_bg"))
  106 + .backgroundImageSize(ImageSize.Cover)
  107 + .padding({left:"17lpx",right:"8lpx"})
  108 + .height('35lpx')
107 } 109 }
108 110
109 Blank() 111 Blank()
@@ -86,14 +86,17 @@ struct OtherNormalUserHomePage { @@ -86,14 +86,17 @@ struct OtherNormalUserHomePage {
86 .lineHeight('50lpx') 86 .lineHeight('50lpx')
87 .fontWeight('500lpx') 87 .fontWeight('500lpx')
88 88
89 - Text(`等级${this.levelId}`)  
90 - .textAlign(TextAlign.Center)  
91 - .fontColor($r('app.color.color_ED2800'))  
92 - .backgroundColor($r('app.color.white'))  
93 - .fontSize('19lpx')  
94 - .width('96lpx')  
95 - .height('35lpx')  
96 - .margin({ left: '10lpx' }) 89 + if(this.levelId>0){
  90 + Text(`等级${this.levelId}`)
  91 + .fontColor($r('app.color.color_ED2800'))
  92 + .fontSize('23lpx')
  93 + .fontWeight(500)
  94 + .margin({ left: '10lpx' })
  95 + .backgroundImage($r("app.media.my_grade_bg"))
  96 + .backgroundImageSize(ImageSize.Cover)
  97 + .padding({left:"17lpx",right:"8lpx"})
  98 + .height('35lpx')
  99 + }
97 Blank() 100 Blank()
98 }.width('507lpx') 101 }.width('507lpx')
99 102
1 import { CompDTO, ContentDTO, InteractDataDTO, LiveReviewDTO, LiveRoomDataBean, PageDTO, PageInfoDTO } from 'wdBean'; 1 import { CompDTO, ContentDTO, InteractDataDTO, LiveReviewDTO, LiveRoomDataBean, PageDTO, PageInfoDTO } from 'wdBean';
2 import { CompStyle, ViewType } from 'wdConstant/Index'; 2 import { CompStyle, ViewType } from 'wdConstant/Index';
3 -import { CollectionUtils, DateTimeUtils, LazyDataSource, Logger, NetworkUtil, StringUtils } from 'wdKit'; 3 +import { CollectionUtils, DateTimeUtils, LazyDataSource, Logger, NetworkUtil, StringUtils, ToastUtils } from 'wdKit';
4 import { closeRefresh } from '../utils/PullDownRefresh'; 4 import { closeRefresh } from '../utils/PullDownRefresh';
5 import PageModel from './PageModel'; 5 import PageModel from './PageModel';
6 import PageViewModel from './PageViewModel'; 6 import PageViewModel from './PageViewModel';
@@ -33,9 +33,16 @@ export class PageHelper { @@ -33,9 +33,16 @@ export class PageHelper {
33 * 刷新数据 33 * 刷新数据
34 */ 34 */
35 async refreshUI(pageModel: PageModel, pageAdvModel: PageAdModel) { 35 async refreshUI(pageModel: PageModel, pageAdvModel: PageAdModel) {
  36 + let netStatus = NetworkUtil.isNetConnected()
  37 + if (!netStatus) {
  38 + ToastUtils.showToast('网络出小差了,请检查网络后重试', 1000)
  39 + setTimeout(() => {
  40 + closeRefresh(pageModel, false)
  41 + }, 500)
  42 + return
  43 + }
36 pageModel.loadStrategy = 2 44 pageModel.loadStrategy = 2
37 pageModel.pageTotalCompSize = 0; 45 pageModel.pageTotalCompSize = 0;
38 - // TODO 下拉刷新,是否加载缓存  
39 this.getPageInfo(pageModel, pageAdvModel) 46 this.getPageInfo(pageModel, pageAdvModel)
40 } 47 }
41 48
@@ -43,6 +50,11 @@ export class PageHelper { @@ -43,6 +50,11 @@ export class PageHelper {
43 * 分页加载 50 * 分页加载
44 */ 51 */
45 async loadMore(pageModel: PageModel) { 52 async loadMore(pageModel: PageModel) {
  53 + let netStatus = NetworkUtil.isNetConnected()
  54 + if (!netStatus) {
  55 + ToastUtils.showToast('网络出小差了,请检查网络后重试', 1000)
  56 + return
  57 + }
46 pageModel.loadStrategy = 3 58 pageModel.loadStrategy = 3
47 // 暂只支持comp分页加载,节目分页加载的得完善框架(如直播回看节目数据分页) 59 // 暂只支持comp分页加载,节目分页加载的得完善框架(如直播回看节目数据分页)
48 this.compLoadMore(pageModel) 60 this.compLoadMore(pageModel)
@@ -52,55 +64,20 @@ export class PageHelper { @@ -52,55 +64,20 @@ export class PageHelper {
52 * 进页面请求数据 64 * 进页面请求数据
53 */ 65 */
54 async getInitCacheData(pageModel: PageModel, pageAdvModel: PageAdModel) { 66 async getInitCacheData(pageModel: PageModel, pageAdvModel: PageAdModel) {
55 - Logger.error('zzzz', 'getInitCacheData') 67 + Logger.debug(TAG, 'getInitCacheData')
56 PageViewModel.getPageInfoCache(pageModel.pageId).then(pageInfo => { 68 PageViewModel.getPageInfoCache(pageModel.pageId).then(pageInfo => {
  69 + Logger.debug(TAG, 'getInitCacheData back: ' + pageInfo)
57 if (pageInfo == null) { 70 if (pageInfo == null) {
58 return; 71 return;
59 } 72 }
60 pageModel.pageInfo = pageInfo; 73 pageModel.pageInfo = pageInfo;
  74 + pageModel.cachePageInfoMd5 = pageInfo.md5
61 //解析页面挂角广告资源 75 //解析页面挂角广告资源
62 pageAdvModel.analysisAdvSource(pageInfo); 76 pageAdvModel.analysisAdvSource(pageInfo);
63 - this.parseCacheGroup(pageModel) 77 + this.parseGroup(pageModel, true)
64 }) 78 })
65 } 79 }
66 80
67 - async parseCacheGroup(pageModel: PageModel) {  
68 - Logger.error('zzzz', 'parseCacheGroup')  
69 - let pageInfo: PageInfoDTO = pageModel.pageInfo  
70 - pageModel.groupList = []  
71 - pageInfo.pageAdList = []  
72 - pageInfo.oneRequestPageGroupCompList = new ArrayList()  
73 - pageModel.groupList.push(...pageInfo.groups)  
74 - for (const group of pageInfo.groups) {  
75 - pageModel.groupId = group.id;  
76 - pageModel.groupData = group  
77 - // await,确保groups接口顺序执行  
78 - let pageDto = await PageViewModel.getPageGroupCacheData(pageModel.bizCopy()) as PageDTO  
79 - let index = pageInfo.groups.indexOf(group)  
80 - if (index == 0) {  
81 - // 清空comp列表  
82 - pageModel.compList.clear()  
83 - }  
84 - this.analysisPageGroupCompData(pageDto, pageInfo)  
85 - }  
86 -  
87 - // 收集页面所有楼层的组件信息,同步完成广告投放计算,异步完成稿件批查,  
88 -  
89 - pageModel.pageTotalCompSize = pageInfo.oneRequestPageGroupCompList.length + pageModel.pageTotalCompSize  
90 - // 处理页面广告数据,投放到页面的位置  
91 - // TODO 缓存数据不加载广告  
92 - // this.handlePageCompAdvPostion(pageInfo.oneRequestPageGroupCompList, pageModel, pageInfo.pageAdList);  
93 -  
94 - //遍历所有组件和稿件数据 push到页面  
95 - for (let element of pageInfo.oneRequestPageGroupCompList) {  
96 - pageModel.compList.push(CompDTO.createNewsBean(element))  
97 - }  
98 - pageModel.currentPage++  
99 - pageModel.viewType = ViewType.LOADED  
100 - closeRefresh(pageModel, true)  
101 -  
102 - }  
103 -  
104 /** 81 /**
105 * 进页面请求数据 82 * 进页面请求数据
106 */ 83 */
@@ -134,33 +111,51 @@ export class PageHelper { @@ -134,33 +111,51 @@ export class PageHelper {
134 promptAction.showToast({ message: err }); 111 promptAction.showToast({ message: err });
135 }) 112 })
136 } else { 113 } else {
  114 + Logger.debug(TAG, 'getPageInfo')
137 PageViewModel.getPageInfo(pageModel.pageId).then(pageInfo => { 115 PageViewModel.getPageInfo(pageModel.pageId).then(pageInfo => {
  116 + Logger.debug(TAG, 'getPageInfo back: ' + JSON.stringify(pageInfo))
138 if (pageInfo == null) { 117 if (pageInfo == null) {
139 pageModel.viewType = ViewType.EMPTY; 118 pageModel.viewType = ViewType.EMPTY;
140 pageModel.emptyType = WDViewDefaultType.WDViewDefaultType_NoContent1; 119 pageModel.emptyType = WDViewDefaultType.WDViewDefaultType_NoContent1;
141 return; 120 return;
142 } 121 }
143 pageModel.pageInfo = pageInfo; 122 pageModel.pageInfo = pageInfo;
144 - //解析页面挂角广告资源  
145 - pageAdvModel.analysisAdvSource(pageInfo);  
146 - this.parseGroup(pageModel)  
147 - // if (pageModel.currentPage == 1) {  
148 - // // 保存缓存  
149 - // CacheData.saveCacheData(CacheData.comPageInfoCacheKey + pageModel.pageId, pageInfo, pageInfo.md5)  
150 - // } 123 + if (pageInfo.md5 == pageModel.cachePageInfoMd5) {
  124 + // 缓存一致,不解析
  125 + Logger.debug(TAG, 'getPageInfo 与缓存一致,不解析广告。。。')
  126 + } else {
  127 + Logger.debug(TAG, 'getPageInfo 要解析广告')
  128 + if (pageModel.currentPage == 1) {
  129 + // 保存缓存
  130 + CacheData.saveCacheData(CacheData.comPageInfoCacheKey + pageModel.pageId, pageInfo, pageInfo.md5)
  131 + }
  132 + //解析页面挂角广告资源
  133 + pageAdvModel.analysisAdvSource(pageInfo);
  134 + }
  135 + Logger.debug(TAG, 'getPageInfo go on')
  136 + this.parseGroup(pageModel, false)
151 }).catch(() => { 137 }).catch(() => {
  138 + if (this.isPageLoaded(pageModel)) {
  139 + return
  140 + }
152 pageModel.viewType = ViewType.EMPTY; 141 pageModel.viewType = ViewType.EMPTY;
153 pageModel.emptyType = WDViewDefaultType.WDViewDefaultType_ContentFailed; 142 pageModel.emptyType = WDViewDefaultType.WDViewDefaultType_ContentFailed;
154 }) 143 })
155 } 144 }
156 } 145 }
157 146
  147 + private isPageLoaded(pageModel: PageModel) {
  148 + if (pageModel.compList.size() > 0) {
  149 + return true
  150 + }
  151 + return false
  152 + }
158 153
159 /** 154 /**
160 * 解析信息流页面楼层数据 155 * 解析信息流页面楼层数据
161 * @param pageModel 156 * @param pageModel
162 */ 157 */
163 - async parseGroup(pageModel: PageModel) { 158 + async parseGroup(pageModel: PageModel, isCache: boolean) {
164 let pageInfo: PageInfoDTO = pageModel.pageInfo 159 let pageInfo: PageInfoDTO = pageModel.pageInfo
165 pageModel.groupList = [] 160 pageModel.groupList = []
166 pageInfo.pageAdList = [] 161 pageInfo.pageAdList = []
@@ -177,8 +172,26 @@ export class PageHelper { @@ -177,8 +172,26 @@ export class PageHelper {
177 pageModel.groupData = group 172 pageModel.groupData = group
178 173
179 //Logger.error("ZZZXXXXX", '楼层id-start--》' + pageModel.groupId); 174 //Logger.error("ZZZXXXXX", '楼层id-start--》' + pageModel.groupId);
  175 + let pageDto: PageDTO
  176 + Logger.debug(TAG, 'parseGroup isCache: ' + isCache)
  177 + if (isCache) {
  178 + pageDto = await PageViewModel.getPageGroupCacheData(pageModel.bizCopy()) as PageDTO
  179 + pageModel.cacheGroupInfoMd5 = pageDto.md5
  180 + } else {
  181 + pageDto = await PageViewModel.getPageGroupCompData(pageModel.bizCopy()) as PageDTO
  182 + if (pageDto.md5 == pageModel.cacheGroupInfoMd5) {
  183 + Logger.debug(TAG, 'parseGroup cache load, return: ' + pageDto.md5)
  184 + // 缓存数据一致,不再刷新
  185 + return
  186 + }
  187 + Logger.debug(TAG, 'parseGroup cache load, save: ')
  188 + // 保存缓存
  189 + CacheData.saveCacheData(CacheData.compGroupInfoDataCacheKey + pageModel.pageId + pageModel.groupId, pageDto,
  190 + pageDto.md5)
  191 + }
  192 + Logger.debug(TAG, 'parseGroup go on')
180 // await,确保groups接口顺序执行 193 // await,确保groups接口顺序执行
181 - let pageDto = await PageViewModel.getPageGroupCompData(pageModel.bizCopy()) as PageDTO 194 + // let pageDto = page
182 let index = pageInfo.groups.indexOf(group) 195 let index = pageInfo.groups.indexOf(group)
183 196
184 // 解析楼层组件 197 // 解析楼层组件
@@ -197,9 +210,6 @@ export class PageHelper { @@ -197,9 +210,6 @@ export class PageHelper {
197 } else { 210 } else {
198 pageInfo.lastCompSourceType = 0 211 pageInfo.lastCompSourceType = 0
199 } 212 }
200 - // // 保存缓存  
201 - // CacheData.saveCacheData(CacheData.compGroupInfoDataCacheKey + pageModel.pageId + pageModel.groupId, pageDto,  
202 - // pageDto.md5)  
203 } 213 }
204 } 214 }
205 215
@@ -63,6 +63,10 @@ export default class PageModel { @@ -63,6 +63,10 @@ export default class PageModel {
63 pageType: number = 0; 63 pageType: number = 0;
64 64
65 extra: string = '' 65 extra: string = ''
  66 + // 缓存数据相关
  67 + cachePageInfoMd5: string = ''
  68 + cacheGroupInfoMd5: string = ''
  69 +
66 /** 70 /**
67 * 简单复制业务数据 71 * 简单复制业务数据
68 */ 72 */
@@ -16,6 +16,7 @@ import { HostEnum, HostManager, WDHttp } from 'wdNetwork/Index' @@ -16,6 +16,7 @@ import { HostEnum, HostManager, WDHttp } from 'wdNetwork/Index'
16 import { registerRouter } from 'wdRouter/Index' 16 import { registerRouter } from 'wdRouter/Index'
17 import { TrackingModule } from 'wdTracking/Index' 17 import { TrackingModule } from 'wdTracking/Index'
18 import { JSON } from '@kit.ArkTS' 18 import { JSON } from '@kit.ArkTS'
  19 +import app from '@system.app'
19 20
20 const TAG = "[StartupManager]" 21 const TAG = "[StartupManager]"
21 22
@@ -36,6 +37,8 @@ export class StartupManager { @@ -36,6 +37,8 @@ export class StartupManager {
36 appOnCreate(want: Want, launchParam: AbilityConstant.LaunchParam, context: common.UIAbilityContext) { 37 appOnCreate(want: Want, launchParam: AbilityConstant.LaunchParam, context: common.UIAbilityContext) {
37 Logger.debug(TAG, "App onCreate: " + `\nwant: ${want}\nlaunchParam: ${launchParam}`) 38 Logger.debug(TAG, "App onCreate: " + `\nwant: ${want}\nlaunchParam: ${launchParam}`)
38 this.context = context 39 this.context = context
  40 + // 设置图片文件数据缓存上限为200MB (200MB=200*1024*1024B=209715200B)
  41 + app.setImageFileCacheSize(209715200)
39 42
40 // KV存储 43 // KV存储
41 SPHelper.init(context); 44 SPHelper.init(context);