liyubing

feat(广告):创建页面广角广告模型

@@ -15,12 +15,14 @@ import { CompDTO } from 'wdBean'; @@ -15,12 +15,14 @@ import { CompDTO } from 'wdBean';
15 import PageHelper from '../../viewmodel/PageHelper'; 15 import PageHelper from '../../viewmodel/PageHelper';
16 import { channelSkeleton } from '../skeleton/channelSkeleton' 16 import { channelSkeleton } from '../skeleton/channelSkeleton'
17 import { ProcessUtils } from 'wdRouter/Index'; 17 import { ProcessUtils } from 'wdRouter/Index';
  18 +import PageAdModel from '../../viewmodel/PageAdvModel';
18 19
19 const TAG = 'PageComponent'; 20 const TAG = 'PageComponent';
20 21
21 @Component 22 @Component
22 export struct PageComponent { 23 export struct PageComponent {
23 @State private pageModel: PageModel = new PageModel(); 24 @State private pageModel: PageModel = new PageModel();
  25 + @State private pageAdvModel: PageAdModel = new PageAdModel();
24 navIndex: number = 0; 26 navIndex: number = 0;
25 pageId: string = ""; 27 pageId: string = "";
26 channelId: string = ""; 28 channelId: string = "";
@@ -44,7 +46,7 @@ export struct PageComponent { @@ -44,7 +46,7 @@ export struct PageComponent {
44 .onTouch((event: TouchEvent | undefined) => { 46 .onTouch((event: TouchEvent | undefined) => {
45 if (event) { 47 if (event) {
46 if (this.pageModel.viewType === ViewType.LOADED) { 48 if (this.pageModel.viewType === ViewType.LOADED) {
47 - listTouchEvent(this.pageModel, event); 49 + listTouchEvent(this.pageModel, this.pageAdvModel, event);
48 } 50 }
49 } 51 }
50 }) 52 })
@@ -120,12 +122,12 @@ export struct PageComponent { @@ -120,12 +122,12 @@ export struct PageComponent {
120 @Builder 122 @Builder
121 pageHornAd() { 123 pageHornAd() {
122 124
123 - if (this.pageModel.isShowAds) {  
124 - if (this.pageModel.pageCornerAdv.matInfo != null) { 125 + if (this.pageAdvModel.isShowAds) {
  126 + if (this.pageAdvModel.pageCornerAdv.matInfo != null) {
125 // 页面右边挂角 127 // 页面右边挂角
126 - this.drawPageCornerAdvView(1, 1 == this.pageModel.isRightAdv)  
127 - } else if (this.pageModel.pageCornerContentInfo.advert != null) {  
128 - this.drawPageCornerAdvView(2, 1 == this.pageModel.isRightAdv) 128 + this.drawPageCornerAdvView(1, 1 == this.pageAdvModel.isRightAdv)
  129 + } else if (this.pageAdvModel.pageCornerContentInfo.advert != null) {
  130 + this.drawPageCornerAdvView(2, 1 == this.pageAdvModel.isRightAdv)
129 } 131 }
130 } 132 }
131 133
@@ -140,8 +142,8 @@ export struct PageComponent { @@ -140,8 +142,8 @@ export struct PageComponent {
140 @Builder 142 @Builder
141 drawPageCornerAdvView(type: number, isRightCorne: boolean) { 143 drawPageCornerAdvView(type: number, isRightCorne: boolean) {
142 // 页面左挂角 144 // 页面左挂角
143 - Image(type === 1 ? this.pageModel.pageCornerAdv.matInfo.matImageUrl[0]  
144 - : this.pageModel.pageCornerContentInfo.advert.displayUrl) 145 + Image(type === 1 ? this.pageAdvModel.pageCornerAdv.matInfo.matImageUrl[0]
  146 + : this.pageAdvModel.pageCornerContentInfo.advert.displayUrl)
145 .width($r('app.float.vp_80')) 147 .width($r('app.float.vp_80'))
146 .height($r('app.float.vp_80')) 148 .height($r('app.float.vp_80'))
147 .id("left_iv") 149 .id("left_iv")
@@ -159,10 +161,10 @@ export struct PageComponent { @@ -159,10 +161,10 @@ export struct PageComponent {
159 .onClick(() => { 161 .onClick(() => {
160 if (type === 1) { 162 if (type === 1) {
161 // 广告业务跳转 163 // 广告业务跳转
162 - ProcessUtils.openAdvDetail(this.pageModel.pageCornerAdv.matInfo); 164 + ProcessUtils.openAdvDetail(this.pageAdvModel.pageCornerAdv.matInfo);
163 } else { 165 } else {
164 // 展现中心的业务跳转 166 // 展现中心的业务跳转
165 - ProcessUtils.advJumpMainPage(this.pageModel.pageCornerContentInfo.advert) 167 + ProcessUtils.advJumpMainPage(this.pageAdvModel.pageCornerContentInfo.advert)
166 } 168 }
167 }) 169 })
168 // 关闭按钮 170 // 关闭按钮
@@ -180,7 +182,7 @@ export struct PageComponent { @@ -180,7 +182,7 @@ export struct PageComponent {
180 }) 182 })
181 .onClick(() => { 183 .onClick(() => {
182 // 关闭挂角广告 184 // 关闭挂角广告
183 - this.pageModel.isShowAds = false; 185 + this.pageAdvModel.isShowAds = false;
184 186
185 }) 187 })
186 188
@@ -228,7 +230,7 @@ export struct PageComponent { @@ -228,7 +230,7 @@ export struct PageComponent {
228 this.pageModel.groupId = this.pageId; 230 this.pageModel.groupId = this.pageId;
229 this.pageModel.channelId = this.channelId; 231 this.pageModel.channelId = this.channelId;
230 this.pageModel.currentPage = 1; 232 this.pageModel.currentPage = 1;
231 - PageHelper.getInitData(this.pageModel) 233 + PageHelper.getInitData(this.pageModel, this.pageAdvModel)
232 // let pageInfo = await PageViewModel.getPageInfo(this.pageModel.pageId); 234 // let pageInfo = await PageViewModel.getPageInfo(this.pageModel.pageId);
233 // if (pageInfo == null) { 235 // if (pageInfo == null) {
234 // this.pageModel.viewType = ViewType.EMPTY; 236 // this.pageModel.viewType = ViewType.EMPTY;
@@ -6,8 +6,9 @@ import PageModel from '../viewmodel/PageModel'; @@ -6,8 +6,9 @@ import PageModel from '../viewmodel/PageModel';
6 import PageViewModel from '../viewmodel/PageViewModel'; 6 import PageViewModel from '../viewmodel/PageViewModel';
7 import { DateTimeUtils } from 'wdKit'; 7 import { DateTimeUtils } from 'wdKit';
8 import PageHelper from '../viewmodel/PageHelper'; 8 import PageHelper from '../viewmodel/PageHelper';
  9 +import PageAdModel from '../viewmodel/PageAdvModel';
9 10
10 -export function listTouchEvent(pageModel: PageModel, event: TouchEvent) { 11 +export function listTouchEvent(pageModel: PageModel,pageAdvModel:PageAdModel, event: TouchEvent) {
11 switch (event.type) { 12 switch (event.type) {
12 case TouchType.Down: 13 case TouchType.Down:
13 pageModel.downY = event.touches[0].y; 14 pageModel.downY = event.touches[0].y;
@@ -35,7 +36,7 @@ export function listTouchEvent(pageModel: PageModel, event: TouchEvent) { @@ -35,7 +36,7 @@ export function listTouchEvent(pageModel: PageModel, event: TouchEvent) {
35 } 36 }
36 if ((pageModel.isPullRefreshOperation === true)) { 37 if ((pageModel.isPullRefreshOperation === true)) {
37 // Lift your finger and pull down to refresh. 38 // Lift your finger and pull down to refresh.
38 - touchUpPullRefresh(pageModel); 39 + touchUpPullRefresh(pageModel,pageAdvModel);
39 } else { 40 } else {
40 // Fingers up, handle loading more. 41 // Fingers up, handle loading more.
41 touchUpLoadMore(pageModel); 42 touchUpLoadMore(pageModel);
@@ -65,14 +66,15 @@ export function touchMovePullRefresh(pageModel: PageModel, event: TouchEvent) { @@ -65,14 +66,15 @@ export function touchMovePullRefresh(pageModel: PageModel, event: TouchEvent) {
65 } 66 }
66 } 67 }
67 68
68 -export function touchUpPullRefresh(pageModel: PageModel) { 69 +export function touchUpPullRefresh(pageModel: PageModel,pageAdvModel:PageAdModel) {
69 if (pageModel.isCanRefresh === true) { 70 if (pageModel.isCanRefresh === true) {
70 pageModel.offsetY = vp2px(pageModel.pullDownRefreshHeight); 71 pageModel.offsetY = vp2px(pageModel.pullDownRefreshHeight);
71 pullRefreshState(pageModel, RefreshState.Refreshing); 72 pullRefreshState(pageModel, RefreshState.Refreshing);
72 pageModel.currentPage = 1; 73 pageModel.currentPage = 1;
73 setTimeout(() => { 74 setTimeout(() => {
74 let self: PageModel = pageModel; 75 let self: PageModel = pageModel;
75 - PageHelper.refreshUI(self) 76 + let advSelf: PageAdModel = pageAdvModel;
  77 + PageHelper.refreshUI(self,advSelf)
76 // PageViewModel.getPageData(self.bizCopy(2)) 78 // PageViewModel.getPageData(self.bizCopy(2))
77 // .then((data: PageDTO) => { 79 // .then((data: PageDTO) => {
78 // self.timestamp = DateTimeUtils.getTimeStamp().toString() 80 // self.timestamp = DateTimeUtils.getTimeStamp().toString()
  1 +import { PageInfoDTO } from 'wdBean/Index';
  2 +import { AdvRuleBean, CompAdvBean } from 'wdBean/src/main/ets/bean/adv/AdvsRuleBean';
  3 +
  4 +/**
  5 + * @Description: 处理页面的广告业务
  6 + * @Author: lyb
  7 + * @Email: liyubing@wondertek.com.cn
  8 + * @CreateDate:
  9 + * @UpdateRemark: 更新说明
  10 + * @Version: 1.0
  11 + */
  12 +export default class PageAdModel {
  13 + //左右挂角广告对象
  14 + pageCornerAdv: CompAdvBean = {} as CompAdvBean
  15 + // 挂角广告
  16 + isShowAds: boolean = false;
  17 + isRightAdv: number = 1;
  18 + // 1:右边;2:左边 -> 默认右边
  19 + pageCornerContentInfo: AdvRuleBean = {} as AdvRuleBean
  20 +
  21 + // 展现中心业务信息
  22 +
  23 +
  24 +
  25 +
  26 + /**
  27 + * 解析广告资源
  28 + * @param pageInfo
  29 + */
  30 + analysisAdvSource(pageInfo: PageInfoDTO): void {
  31 +
  32 + if (pageInfo.hasAdInfo === 1 && pageInfo.cornersAdv != null) {
  33 + // 优先展示展现中心广告
  34 + let cornersAdv = pageInfo.cornersAdv
  35 +
  36 + if (cornersAdv == null) {
  37 + return
  38 + }
  39 + if (cornersAdv.advert == null) {
  40 + return
  41 + }
  42 +
  43 + if ("left_down" == cornersAdv.pos) {
  44 + // 左边挂角广告
  45 + this.isRightAdv = 2
  46 + } else {
  47 + // 右边挂角广告
  48 + this.isRightAdv = 1
  49 +
  50 + }
  51 +
  52 + this.pageCornerContentInfo = cornersAdv;
  53 + this.isShowAds = true
  54 +
  55 + } else if (pageInfo.cornersAdv2 != null && pageInfo.cornersAdv2.length > 0) {
  56 + // 广告中心-挂角广告信息
  57 + let cornersAdv2 = pageInfo.cornersAdv2
  58 + // 获取
  59 + let showCompAdvBean = cornersAdv2[0]
  60 +
  61 + if (showCompAdvBean.matInfo == null) {
  62 + return
  63 + }
  64 + //
  65 + let slotInfo = showCompAdvBean.slotInfo;
  66 + let postion = slotInfo.position
  67 + if (postion == 0) {
  68 + //左边挂角
  69 + this.isRightAdv = 2
  70 + } else {
  71 + // 右边挂角
  72 + this.isRightAdv = 1
  73 + }
  74 + this.pageCornerAdv = showCompAdvBean
  75 + this.isShowAds = true
  76 + }
  77 +
  78 + }
  79 +}
@@ -6,6 +6,7 @@ import PageModel from './PageModel'; @@ -6,6 +6,7 @@ import PageModel from './PageModel';
6 import PageViewModel from './PageViewModel'; 6 import PageViewModel from './PageViewModel';
7 import { promptAction } from '@kit.ArkUI'; 7 import { promptAction } from '@kit.ArkUI';
8 import { AdvRuleBean } from 'wdBean/src/main/ets/bean/adv/AdvsRuleBean'; 8 import { AdvRuleBean } from 'wdBean/src/main/ets/bean/adv/AdvsRuleBean';
  9 +import PageAdModel from './PageAdvModel';
9 10
10 const TAG = 'PageHelper'; 11 const TAG = 'PageHelper';
11 12
@@ -13,12 +14,14 @@ const TAG = 'PageHelper'; @@ -13,12 +14,14 @@ const TAG = 'PageHelper';
13 * 处理返回后的数据 14 * 处理返回后的数据
14 */ 15 */
15 export class PageHelper { 16 export class PageHelper {
  17 +
  18 +
16 /** 19 /**
17 * 刷新数据 20 * 刷新数据
18 */ 21 */
19 - async refreshUI(pageModel: PageModel) { 22 + async refreshUI(pageModel: PageModel,pageAdvModel:PageAdModel) {
20 pageModel.loadStrategy = 2 23 pageModel.loadStrategy = 2
21 - this.getPageInfo(pageModel) 24 + this.getPageInfo(pageModel,pageAdvModel)
22 } 25 }
23 26
24 /** 27 /**
@@ -33,12 +36,12 @@ export class PageHelper { @@ -33,12 +36,12 @@ export class PageHelper {
33 /** 36 /**
34 * 进页面请求数据 37 * 进页面请求数据
35 */ 38 */
36 - async getInitData(pageModel: PageModel) { 39 + async getInitData(pageModel: PageModel,pageAdvModel:PageAdModel) {
37 pageModel.loadStrategy = 1 40 pageModel.loadStrategy = 1
38 - this.getPageInfo(pageModel) 41 + this.getPageInfo(pageModel,pageAdvModel)
39 } 42 }
40 43
41 - async getPageInfo(pageModel: PageModel) { 44 + async getPageInfo(pageModel: PageModel,pageAdvModel:PageAdModel) {
42 pageModel.currentPage = 1; 45 pageModel.currentPage = 1;
43 let pageInfo = await PageViewModel.getPageInfo(pageModel.pageId); 46 let pageInfo = await PageViewModel.getPageInfo(pageModel.pageId);
44 if (pageInfo == null) { 47 if (pageInfo == null) {
@@ -47,67 +50,12 @@ export class PageHelper { @@ -47,67 +50,12 @@ export class PageHelper {
47 } 50 }
48 pageModel.pageInfo = pageInfo; 51 pageModel.pageInfo = pageInfo;
49 //解析广告资源 52 //解析广告资源
50 - this.analysisAdvSource(pageModel); 53 + pageAdvModel.analysisAdvSource(pageInfo)
51 54
52 this.parseGroup(pageModel) 55 this.parseGroup(pageModel)
53 56
54 } 57 }
55 58
56 - /**  
57 - * 解析广告资源  
58 - * @param pageInfo  
59 - */  
60 - analysisAdvSource(pageModel: PageModel) {  
61 -  
62 - let pageInfo = pageModel.pageInfo  
63 - if (pageInfo.hasAdInfo === 1 && pageInfo.cornersAdv != null) {  
64 - // 优先展示展现中心广告  
65 - let cornersAdv = pageInfo.cornersAdv  
66 -  
67 - if (cornersAdv == null) {  
68 - return  
69 - }  
70 - if (cornersAdv.advert == null) {  
71 - return  
72 - }  
73 -  
74 - if ("left_down" == cornersAdv.pos) {  
75 - // 左边挂角广告  
76 - pageModel.isRightAdv = 2  
77 - } else {  
78 - // 右边挂角广告  
79 - pageModel.isRightAdv = 1  
80 -  
81 - }  
82 -  
83 - pageModel.pageCornerContentInfo = cornersAdv;  
84 - pageModel.isShowAds = true  
85 -  
86 - } else if (pageInfo.cornersAdv2 != null && pageInfo.cornersAdv2.length > 0) {  
87 - // 广告中心-挂角广告信息  
88 - let cornersAdv2 = pageInfo.cornersAdv2  
89 - // 获取  
90 - let showCompAdvBean = cornersAdv2[0]  
91 -  
92 - if (showCompAdvBean.matInfo == null) {  
93 - return  
94 - }  
95 - //  
96 - let slotInfo = showCompAdvBean.slotInfo;  
97 - let postion = slotInfo.position  
98 - if (postion == 0) {  
99 - //左边挂角  
100 - pageModel.isRightAdv = 2  
101 - } else {  
102 - // 右边挂角  
103 - pageModel.isRightAdv = 1  
104 - }  
105 - pageModel.pageCornerAdv = showCompAdvBean  
106 - pageModel.isShowAds = true  
107 - }  
108 -  
109 -  
110 - }  
111 59
112 60
113 async parseGroup(pageModel: PageModel) { 61 async parseGroup(pageModel: PageModel) {
@@ -51,11 +51,11 @@ export default class PageModel { @@ -51,11 +51,11 @@ export default class PageModel {
51 // keyGenerator相关字符串,用于刷新list布局 51 // keyGenerator相关字符串,用于刷新list布局
52 timestamp: String = '1'; 52 timestamp: String = '1';
53 53
54 - //左右挂角广告对象  
55 - pageCornerAdv:CompAdvBean = {} as CompAdvBean // 挂角广告  
56 - isShowAds : boolean = false;  
57 - isRightAdv : number = 1;// 1:右边;2:左边 -> 默认右边  
58 - pageCornerContentInfo:AdvRuleBean = {} as AdvRuleBean // 展现中心业务信息 54 + // //左右挂角广告对象
  55 + // pageCornerAdv:CompAdvBean = {} as CompAdvBean // 挂角广告
  56 + // isShowAds : boolean = false;
  57 + // isRightAdv : number = 1;// 1:右边;2:左边 -> 默认右边
  58 + // pageCornerContentInfo:AdvRuleBean = {} as AdvRuleBean // 展现中心业务信息
59 59
60 60
61 /** 61 /**