diff --git a/app/src/main/java/com/chwl/app/avroom/dialog/RoomLuckyBagDialog.kt b/app/src/main/java/com/chwl/app/avroom/dialog/RoomLuckyBagDialog.kt index 52c76da03..402641fce 100644 --- a/app/src/main/java/com/chwl/app/avroom/dialog/RoomLuckyBagDialog.kt +++ b/app/src/main/java/com/chwl/app/avroom/dialog/RoomLuckyBagDialog.kt @@ -7,7 +7,6 @@ import android.view.WindowManager import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView import com.chad.library.adapter.base.BaseQuickAdapter -import com.chwl.app.BuildConfig import com.chwl.app.R import com.chwl.app.avroom.bean.LuckyBagGiftBody import com.chwl.app.avroom.bean.LuckyBagGiftItemBody @@ -22,8 +21,10 @@ import com.chwl.app.databinding.ItemRoomLuckyBagTimeBinding import com.chwl.app.ui.pay.ChargeActivity import com.chwl.app.ui.utils.loadAvatar import com.chwl.app.ui.utils.loadImage +import com.chwl.app.ui.webview.DialogWebViewActivity import com.chwl.app.utils.KeyBoardUtils import com.chwl.app.utils.RoomHelperManager +import com.chwl.core.UriProvider import com.chwl.core.auth.AuthModel import com.chwl.core.bean.response.ServiceResult import com.chwl.core.gift.GiftModel @@ -119,10 +120,10 @@ class RoomLuckyBagDialog : BaseDialogFragment() { R.id.down -> { if (position.isVerify(mGiftData)) { val data = mGiftData[position] - data.count = data.count.minus(1) + data.count = data.count.minus(1).coerceAtLeast(0) mGiftAdapter.notifyItemChanged(position,1) - if (data.count == 0) { + if (data.count <= 0) { mGiftDataSelectPos.remove(position) } } @@ -296,6 +297,7 @@ class RoomLuckyBagDialog : BaseDialogFragment() { binding.notifyView.desc.text = if (mIsGift) R.string._ver_24_lucky_bag_room_notify_gift.getString() else R.string._ver_24_lucky_bag_room_notify_coin.getString() binding.btnConfirm.click { + if (isSenting) return@click if (checkSendData()) { if (mIsGift) { if (!mIsGiftReview) { @@ -316,18 +318,21 @@ class RoomLuckyBagDialog : BaseDialogFragment() { } binding.btnBill.click { - binding.root.setVis(false) + val root = binding.root + root.setVis(false) val biliDialog = RoomLuckyBagBiliDialog() biliDialog.mActionCallBack = object : Action { override fun onAction(type: Int, data: Any?) { - binding.root.setVis(true) + if (isViewLoaded && isAdded) { + root.setVis(true) + } } } biliDialog.show(context) } binding.btnMore.click { - + DialogWebViewActivity.start(binding.btnMore.context,UriProvider.getLuckyBagRule()) } binding.inputLayout.setOnTouchListener { _: View?, _: MotionEvent? -> @@ -566,7 +571,9 @@ class RoomLuckyBagDialog : BaseDialogFragment() { } + var isSenting = false private fun doSendGiftBag() { + isSenting = true val items = mutableListOf() mGiftDataSelectPos.keys.forEach{ key-> items.add(LuckyBagGiftItemBody().apply { @@ -574,9 +581,6 @@ class RoomLuckyBagDialog : BaseDialogFragment() { giftNum = mGiftDataSelectPos[key]?.count ?: -1 }) } - if (BuildConfig.DEBUG) { - mGiftTimeSelect = 20 - } sentGiftBag(LuckyBagGiftBody().apply { roomUid = AvRoomDataManager.get().roomUid uid = AuthModel.get().currentUid @@ -584,17 +588,17 @@ class RoomLuckyBagDialog : BaseDialogFragment() { giftItems = items }).compose(bindToLifecycle()) .doOnSuccess { + isSenting = false dismiss() } .doOnError { + isSenting = false it?.message?.doToast() }.subscribe() } private fun doSendGoldBag() { - if (BuildConfig.DEBUG) { - mGoldTimeSelect = 20 - } + isSenting = true sentGoldBag(LuckyBagGoldBody().apply { roomUid = AvRoomDataManager.get().roomUid uid = AuthModel.get().currentUid @@ -603,9 +607,11 @@ class RoomLuckyBagDialog : BaseDialogFragment() { countDownSecond = mGoldTimeSelect }).compose(bindToLifecycle()) .doOnSuccess { + isSenting = false dismiss() } .doOnError { + isSenting = false it?.message?.doToast() }.subscribe() } diff --git a/app/src/main/java/com/chwl/app/avroom/fragment/BaseRoomFragment.kt b/app/src/main/java/com/chwl/app/avroom/fragment/BaseRoomFragment.kt index 1d9ae6572..094132e05 100644 --- a/app/src/main/java/com/chwl/app/avroom/fragment/BaseRoomFragment.kt +++ b/app/src/main/java/com/chwl/app/avroom/fragment/BaseRoomFragment.kt @@ -144,6 +144,7 @@ import com.chwl.core.utils.LogUtils import com.chwl.core.utils.net.VipLevelNotEnoughException import com.chwl.library.common.util.ClickUtils.click import com.chwl.library.common.util.LimitClickUtils +import com.chwl.library.common.util.doLog import com.chwl.library.common.util.doToast import com.chwl.library.common.util.isVerify import com.chwl.library.common.util.postSafe @@ -1919,6 +1920,9 @@ open class BaseRoomFragment?> : } private fun checkBoomInfo() { + checkLuckyBagInfo() + "checkBoomInfo".doLog() + RoomBoomManager.clearQueue() AvRoomModel.get().getRoomBoomInfo(AvRoomDataManager.get().roomUid) .compose(bindToLifecycle()) .doOnSuccess { boomInfo: RoomBoomInfo -> @@ -1931,7 +1935,7 @@ open class BaseRoomFragment?> : level = roomBoomInfoSign.level }) } - }else{ + } else { return@doOnSuccess } @@ -1949,24 +1953,33 @@ open class BaseRoomFragment?> : } .subscribe() - checkLuckyBagInfo() + } //幸运礼包推送 private fun onLuckyBagAdd(roomEvent: RoomEvent) { - RoomHelperManager.onLuckyBagAdd(roomEvent,luckyBagBtn) + luckyBagBtn?.postSafe(200) { + RoomHelperManager.onLuckyBagAdd(roomEvent,luckyBagBtn) + } } private fun checkLuckyBagInfo() { - RoomHelperManager.getLuckyBagInfo { - if (isAdded) { -// "红包信息 = $it".doLog() - if (it.redEnvelopeListVoList.isVerify()) { - luckyBagBtn.setNewData(it.redEnvelopeListVoList) + luckyBagBtn?.postSafe(200){ + "红包信息 = checkLuckyBagInfo = $isAdded".doLog() + RoomHelperManager.getLuckyBagInfo { + luckyBagBtn?.postSafe { + "红包信息 = isAdded = $isAdded".doLog() + if (isAdded) { + "红包信息 = $it".doLog() + if (it.redEnvelopeListVoList.isVerify()) { + luckyBagBtn.setNewData(it.redEnvelopeListVoList) + } + } } } } } + public fun initFloatBtnLayout() { diff --git a/app/src/main/java/com/chwl/app/home/adapter/HomeBannerAdapter.kt b/app/src/main/java/com/chwl/app/home/adapter/HomeBannerAdapter.kt index ebb0458d2..7e5cc1b78 100644 --- a/app/src/main/java/com/chwl/app/home/adapter/HomeBannerAdapter.kt +++ b/app/src/main/java/com/chwl/app/home/adapter/HomeBannerAdapter.kt @@ -1,14 +1,44 @@ package com.chwl.app.home.adapter +import com.bumptech.glide.load.DataSource +import com.bumptech.glide.load.engine.GlideException +import com.bumptech.glide.request.RequestListener +import com.bumptech.glide.request.target.Target import com.chwl.app.R -import com.chwl.app.view.EffectView +import com.chwl.app.ui.utils.loadImage +import com.chwl.app.utils.AnimLoadUtil import com.chwl.core.home.bean.BannerInfo +import com.chwl.core.home.bean.BannerInfo.SKIP_TYP_H5_CP +import com.chwl.core.home.bean.BannerInfo.SKIP_TYP_H5_CUSTOM +import com.chwl.core.home.bean.BannerInfo.SKIP_TYP_H5_WEE_STAR +import com.chwl.library.common.glide.GlideUtils +import com.chwl.library.common.util.isVerify +import com.chwl.library.common.util.postSafe +import com.chwl.library.widget.SVGAView +import com.makeramen.roundedimageview.RoundedImageView +import com.opensource.svgaplayer.SVGAVideoEntity import com.zhpan.bannerview.BaseBannerAdapter import com.zhpan.bannerview.BaseViewHolder +import java.io.File class HomeBannerAdapter : BaseBannerAdapter() { + + val entityMap = hashMapOf() + + private fun isSVGA(type:Int): Boolean{ + return type == SKIP_TYP_H5_CUSTOM || type == SKIP_TYP_H5_WEE_STAR ||type == SKIP_TYP_H5_CP + } + override fun getLayoutId(viewType: Int): Int { - return R.layout.activity_home_banner + if (isSVGA(viewType)) { + return R.layout.activity_home_banner_svga + } else { + return R.layout.activity_home_banner + } + } + + override fun getViewType(position: Int): Int { + return mList?.getOrNull(position)?.getSkipType() ?: 0 } override fun bindData( @@ -17,10 +47,63 @@ class HomeBannerAdapter : BaseBannerAdapter() { position: Int, pageSize: Int ) { - val effectView = helper.findViewById(R.id.effectView) - effectView.load(item?.bannerPic?:"",item?.fillVo?.imgMap,item?.fillVo?.textMap) + try { + item?.let { + if (isSVGA(it.getSkipType())) { + val effectView = helper.findViewById(R.id.iv_cover) + val bannerPic = it.bannerPic + if (!bannerPic.isVerify()) return + if (entityMap.containsKey(bannerPic)) { + try { + entityMap[bannerPic]?.let { entity -> + AnimLoadUtil.loadSvgaForEntity(effectView, entity, item?.fillVo?.imgMap, item?.fillVo?.textMap){ + + } + } + } catch (e: Exception) { + } + } else { + GlideUtils.instance().downloadFromUrl2(effectView.context,it?.bannerPic?:"",object : RequestListener { + override fun onLoadFailed( + p0: GlideException?, + p1: Any?, + p2: Target?, + p3: Boolean + ): Boolean { + return true + } + + override fun onResourceReady( + p0: File?, + p1: Any?, + p2: Target?, + p3: DataSource?, + p4: Boolean + ): Boolean { + p0?.let { + effectView.postSafe{ + try { + AnimLoadUtil.loadSvgaGetCache(effectView,it.path ?: "", item?.fillVo?.imgMap, item?.fillVo?.textMap){ entity-> + if (entity != null) { + entityMap[bannerPic] = entity + } + } + } catch (e: Exception) { + } + } + } + return true + } + }) + } + } else { + val effectView = helper.findViewById(R.id.iv_cover) + effectView.loadImage(item?.bannerPic ?: "") + } + } + } catch (e: Exception) { + } } - } \ No newline at end of file diff --git a/app/src/main/java/com/chwl/app/home/fragment/HomeFragment.kt b/app/src/main/java/com/chwl/app/home/fragment/HomeFragment.kt index 90ca458a0..c43a63e5d 100644 --- a/app/src/main/java/com/chwl/app/home/fragment/HomeFragment.kt +++ b/app/src/main/java/com/chwl/app/home/fragment/HomeFragment.kt @@ -8,6 +8,7 @@ import com.chwl.app.R import com.chwl.app.application.IReportConstants import com.chwl.app.application.ReportManager import com.chwl.app.avroom.adapter.CommonVPAdapter +import com.chwl.app.avroom.dialog.RoomLuckyBagDialog import com.chwl.app.base.BaseViewBindingFragment import com.chwl.app.databinding.FragmentHomeBinding import com.chwl.app.home.adapter.HomeIndicatorAdapter @@ -16,8 +17,6 @@ import com.chwl.app.ui.widget.magicindicator.ViewPagerHelper import com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator import com.chwl.app.utils.HomeUIManager import com.chwl.core.DemoCache -import com.chwl.library.common.util.doToastDeBug -import com.example.lib_utils.ktx.getString /** 首页 @@ -44,8 +43,8 @@ class HomeFragment : BaseViewBindingFragment(), View.OnClic // DemoActivity.start(it) -// RoomLuckyBagDialog().show(it) - R.string._ver_24_cpInRoomTips.getString("string-1", "string-2", "string-3").doToastDeBug() + RoomLuckyBagDialog().show(it) +// R.string._ver_24_cpInRoomTips.getString("string-1", "string-2", "string-3").doToastDeBug() // R.string._ver_24_cpUpMicTips.getString("string-1", "string-2", "string-3").doToastDeBug() // GiftDialog(it,3224,false,false,false).show() diff --git a/app/src/main/java/com/chwl/app/ui/webview/DialogWebViewActivity.java b/app/src/main/java/com/chwl/app/ui/webview/DialogWebViewActivity.java index ceac9477e..e082f932f 100644 --- a/app/src/main/java/com/chwl/app/ui/webview/DialogWebViewActivity.java +++ b/app/src/main/java/com/chwl/app/ui/webview/DialogWebViewActivity.java @@ -7,9 +7,10 @@ import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; -import com.netease.nim.uikit.common.util.sys.ScreenUtil; import com.chwl.app.R; +import com.netease.nim.uikit.common.util.sys.ScreenUtil; +//todo do 半屏 Web public class DialogWebViewActivity extends CommonWebViewActivity { private boolean showTitleBar; diff --git a/app/src/main/java/com/chwl/app/utils/AnimLoadUtil.kt b/app/src/main/java/com/chwl/app/utils/AnimLoadUtil.kt index 5caa26915..050602e11 100644 --- a/app/src/main/java/com/chwl/app/utils/AnimLoadUtil.kt +++ b/app/src/main/java/com/chwl/app/utils/AnimLoadUtil.kt @@ -232,6 +232,7 @@ object AnimLoadUtil { val inputStream = BufferedInputStream(FileInputStream(path)) shareParser().decodeFromInputStream(inputStream, path, object : SVGAParser.ParseCompletion { override fun onComplete(svgaVideoEntity: SVGAVideoEntity) { + if(!svgaView.isAttachedToWindow) return val dynamicEntity = SVGADynamicEntity() @@ -280,6 +281,119 @@ object AnimLoadUtil { }, true, null, null) } + fun loadSvgaForEntity( + svgaView: SVGAImageView, + svgaVideoEntity: SVGAVideoEntity, + imgUrlMap: HashMap? = null, + textMap: HashMap? = null, + callBack: (isSuccess: Boolean) -> Unit + ) { + + if(!svgaView.isAttachedToWindow) return + + val dynamicEntity = SVGADynamicEntity() + + if (!imgUrlMap.isNullOrEmpty()) { + imgUrlMap.keys.forEach { key -> + addDynamicImage( + svgaView, + dynamicEntity, + imgUrlMap[key], + key + ) + } + } + + if (!textMap.isNullOrEmpty()) { + textMap.keys.forEach { key -> + val textPaint = TextPaint() + textPaint.color = Color.WHITE //字体颜色 + textPaint.textSize = 24f //字体大小 + dynamicEntity.setDynamicText( + StaticLayout( + textMap[key], + 0, + textMap[key]!!.length, + textPaint, + 0, + Layout.Alignment.ALIGN_CENTER, + 1.0f, + 0.0f, + false + ), key + ) + } + } + val drawable = SVGADrawable(svgaVideoEntity, dynamicEntity) + svgaView.setImageDrawable(drawable) + svgaView.stepToFrame(0, true) + + callBack(true) + + } + + + fun loadSvgaGetCache( + svgaView: SVGAImageView, + path: String, + imgUrlMap: HashMap? = null, + textMap: HashMap? = null, + callBack: (entity: SVGAVideoEntity?) -> Unit + ) { + + val inputStream = BufferedInputStream(FileInputStream(path)) + shareParser().decodeFromInputStream(inputStream, path, object : SVGAParser.ParseCompletion { + override fun onComplete(svgaVideoEntity: SVGAVideoEntity) { + if(!svgaView.isAttachedToWindow) return + + val dynamicEntity = SVGADynamicEntity() + + if (!imgUrlMap.isNullOrEmpty()) { + imgUrlMap.keys.forEach { key -> + addDynamicImage( + svgaView, + dynamicEntity, + imgUrlMap[key], + key + ) + } + } + + if (!textMap.isNullOrEmpty()) { + textMap.keys.forEach { key -> + val textPaint = TextPaint() + textPaint.color = Color.WHITE //字体颜色 + textPaint.textSize = 24f //字体大小 + dynamicEntity.setDynamicText( + StaticLayout( + textMap[key], + 0, + textMap[key]!!.length, + textPaint, + 0, + Layout.Alignment.ALIGN_CENTER, + 1.0f, + 0.0f, + false + ), key + ) + } + } + val drawable = SVGADrawable(svgaVideoEntity, dynamicEntity) + svgaView.setImageDrawable(drawable) + svgaView.stepToFrame(0, true) + + callBack(svgaVideoEntity) + + } + + override fun onError() { + callBack(null) + } + }, true, null, null) + } + + private fun addDynamicImage( view: View, dynamicEntity: SVGADynamicEntity, diff --git a/app/src/main/java/com/chwl/app/utils/RoomBoomManager.kt b/app/src/main/java/com/chwl/app/utils/RoomBoomManager.kt index 4eef11f2a..35b5bd5dd 100644 --- a/app/src/main/java/com/chwl/app/utils/RoomBoomManager.kt +++ b/app/src/main/java/com/chwl/app/utils/RoomBoomManager.kt @@ -298,4 +298,11 @@ object RoomBoomManager { boomInfo = null } + fun clearQueue() { + mAnimLayout = null + AnimQueue.clear() + awardQueue.clear() + boomInfo = null + } + } \ No newline at end of file diff --git a/app/src/main/java/com/chwl/app/utils/RoomHelperManager.kt b/app/src/main/java/com/chwl/app/utils/RoomHelperManager.kt index 7c0a2676e..0e9b3e875 100644 --- a/app/src/main/java/com/chwl/app/utils/RoomHelperManager.kt +++ b/app/src/main/java/com/chwl/app/utils/RoomHelperManager.kt @@ -118,7 +118,7 @@ object RoomHelperManager { countDownSecond = attachment.redPackageLuckyBag.countDownSecond countDownTime = System.currentTimeMillis() type = attachment.redPackageLuckyBag.redEnvelopeType - nick = attachment.redPackageLuckyBag.sendUserAvatar + nick = attachment.redPackageLuckyBag.sendUserNick avatar = attachment.redPackageLuckyBag.sendUserAvatar userId = attachment.redPackageLuckyBag.roomUid roomUid = attachment.redPackageLuckyBag.roomUid diff --git a/app/src/main/res/layout/activity_home_banner.xml b/app/src/main/res/layout/activity_home_banner.xml index e8bd0e439..6a798fc10 100644 --- a/app/src/main/res/layout/activity_home_banner.xml +++ b/app/src/main/res/layout/activity_home_banner.xml @@ -1,17 +1,23 @@ - - - + android:layout_height="0dp" + android:scaleType="centerCrop" + android:src="@drawable/default_cover" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:riv_corner_radius_bottom_left="8dp" + app:riv_corner_radius_bottom_right="8dp" + app:riv_corner_radius_top_left="8dp" + app:riv_corner_radius_top_right="8dp" /> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_home_banner_svga.xml b/app/src/main/res/layout/activity_home_banner_svga.xml new file mode 100644 index 000000000..025e1293c --- /dev/null +++ b/app/src/main/res/layout/activity_home_banner_svga.xml @@ -0,0 +1,23 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_room_lucky_bag.xml b/app/src/main/res/layout/dialog_room_lucky_bag.xml index 8441ad26a..ddfe5fa48 100644 --- a/app/src/main/res/layout/dialog_room_lucky_bag.xml +++ b/app/src/main/res/layout/dialog_room_lucky_bag.xml @@ -217,7 +217,7 @@ app:layout_constraintTop_toBottomOf="@id/flListGiftTypeLayout" tools:visibility="visible" /> - @@ -408,7 +408,7 @@ + diff --git a/app/src/main/res/layout/fragment_game_room.xml b/app/src/main/res/layout/fragment_game_room.xml index 1de9fcef4..0eafe223a 100644 --- a/app/src/main/res/layout/fragment_game_room.xml +++ b/app/src/main/res/layout/fragment_game_room.xml @@ -1,6 +1,7 @@ @@ -329,14 +330,16 @@ android:textColorHint="#c8c8c8" android:textSize="12sp" /> + + android:src="@drawable/ic_btn_room_sent_img" />/> + tools:visibility="visible"> + diff --git a/app/src/main/res/layout/item_room_lucky_bag_gift.xml b/app/src/main/res/layout/item_room_lucky_bag_gift.xml index 946b1a69b..8bbd52eab 100644 --- a/app/src/main/res/layout/item_room_lucky_bag_gift.xml +++ b/app/src/main/res/layout/item_room_lucky_bag_gift.xml @@ -10,8 +10,9 @@ #FF6645 #FFA957 #ffea5c + #606060 #8461FE #CC81EF #589DE7 diff --git a/core/src/main/java/com/chwl/core/UriProvider.java b/core/src/main/java/com/chwl/core/UriProvider.java index 1a733567f..5e6a85209 100644 --- a/core/src/main/java/com/chwl/core/UriProvider.java +++ b/core/src/main/java/com/chwl/core/UriProvider.java @@ -331,6 +331,13 @@ public class UriProvider { return JAVA_WEB_URL.concat("/molistar/modules/roomLevel/index.html"); } + /** + * 幸运红包 规则 + */ + public static String getLuckyBagRule() { + return JAVA_WEB_URL.concat("/molistar/modules/luckyBagRules/index.html"); + } + public static String toFullUrl(String shortUrl) { if (shortUrl == null) { diff --git a/mode.json b/mode.json index 7b82fb989..d1c25e080 100644 --- a/mode.json +++ b/mode.json @@ -1,28 +1,131 @@ -{ - "data": { - "avatar": "https://image.pekolive.com/bfed3b08-1ebe-42dc-b9a4-619cb2da0e43.gif", - "carName": "boom1122", - "charmUrl": "https://image.pekolive.com/Charm_43.png", - "cpList": [ - { - "cpAvatar": "https://image.pekolive.com/image/b92b1deee5a24ee754618d230aed3946.jpeg", - "cpErbanNo": 992, - "cpLevel": 5, - "cpNick": "曜燦殿下45", - "cpUid": 3203 - } - ], - "defUser": 1, - "enterHide": false, - "erbanNo": 6228657, - "experUrl": "https://image.pekolive.com/Wealth_59.png", - "inRoomNameplatePic": "http://beta.img.pekolive.com/FgqigBQvHY_2Gzo7OBlENtMusDEH?imageslim", - "inRoomNameplateWord": " ", - "nick": "Molistar", - "screenType": 2, - "uid": 3224, - "vipIcon": "https://image.pekolive.com/v9.png" +[ + { + "bannerId": 55, + "bannerName": "每日消费", + "bannerPic": "https://image.pekolive.com/banner .png", + "firstCharge": false, + "radish": false, + "showType": 1, + "skipType": 3, + "skipUri": "http://beta.api.molistar.xyz/molistar/modules/dailyConsumption/index.html" }, - "first": 115, - "second": 1152 -} \ No newline at end of file + { + "bannerId": 51, + "bannerName": "ss公会", + "bannerPic": "https://image.pekolive.com/ssgongh.png", + "firstCharge": false, + "radish": false, + "showType": 1, + "skipType": 3, + "skipUri": "http://beta.api.molistar.xyz/molistar/activity/ssGuild/index.html" + }, + { + "bannerId": 48, + "bannerName": "月充值", + "bannerPic": "https://image.pekolive.com/banner.png", + "firstCharge": false, + "radish": false, + "showType": 1, + "skipType": 3, + "skipUri": "http://beta.api.molistar.xyz/molistar/activity/rechargeNew/index.html" + }, + { + "bannerId": 50, + "bannerName": "周星榜", + "bannerPic": "https://image.pekolive.com/zhouxing-banner-ar.svga", + "firstCharge": false, + "radish": false, + "showType": 1, + "skipType": 5, + "skipUri": "http://beta.api.molistar.xyz/molistar/modules/weekStar/newWeekStar.html" + }, + { + "bannerId": 52, + "bannerName": "靓号活动", + "bannerPic": "https://image.pekolive.com/sid.png", + "firstCharge": false, + "radish": false, + "showType": 1, + "skipType": 3, + "skipUri": "http://beta.api.molistar.xyz/molistar/modules/superId/index.html" + }, + { + "bannerId": 59, + "bannerName": "定制活动", + "bannerPic": "https://image.pekolive.com/dingzhi-banner-ar.svga", + "firstCharge": false, + "radish": false, + "showType": 1, + "skipType": 6, + "skipUri": "http://beta.api.molistar.xyz/molistar/activity/customizedGift/index.html" + }, + { + "bannerId": 62, + "bannerName": "元旦", + "bannerPic": "https://image.pekolive.com/yuand-yingyu.png", + "firstCharge": false, + "radish": false, + "showType": 1, + "skipType": 3, + "skipUri": "http://beta.api.molistar.xyz/molistar/activity/2024-newYear/index.html" + }, + { + "bannerId": 64, + "bannerName": "CP活动", + "bannerPic": "https://image.pekolive.com/cp-banner-ar.svga", + "fillVo": { + "avatar": "https://image.pekolive.com/0baefcc9-07ee-4ee1-a600-160914f0853c.jpeg", + "erbanNo": 2222, + "giftId": 0, + "imgMap": { + "avatar": "https://image.pekolive.com/0baefcc9-07ee-4ee1-a600-160914f0853c.jpeg", + "avatar_2": "https://image.pekolive.com/935ef3a7-b668-4bc5-a215-7ad55fae20da.jpeg", + "avatar_1": "https://image.pekolive.com/0baefcc9-07ee-4ee1-a600-160914f0853c.jpeg" + }, + "loverAvatar": "https://image.pekolive.com/935ef3a7-b668-4bc5-a215-7ad55fae20da.jpeg", + "loverErbanNo": 2211, + "loverNick": "mo", + "nick": "mo", + "textMap": { + "id": "ID:2222", + "id_1": "ID:2222", + "id_2": "ID:2211" + } + }, + "firstCharge": false, + "radish": false, + "showType": 1, + "skipType": 4, + "skipUri": "http://beta.api.molistar.xyz/molistar/activity/2024-cpActive/index.html" + }, + { + "bannerId": 65, + "bannerName": "年度", + "bannerPic": "https://image.pekolive.com/niandu-ar.png", + "firstCharge": false, + "radish": false, + "showType": 1, + "skipType": 3, + "skipUri": "http://beta.api.molistar.xyz/molistar/activity/annualReport/index.html" + }, + { + "bannerId": 66, + "bannerName": "lucky1122", + "bannerPic": "https://image.pekolive.com/lucky-ar.png", + "firstCharge": false, + "radish": false, + "showType": 1, + "skipType": 3, + "skipUri": "http://beta.api.molistar.xyz/molistar/modules/superLucky/index.html" + }, + { + "bannerId": 67, + "bannerName": "Weekly Star", + "bannerPic": "https://image.pekolive.com/weeklystar7.png", + "firstCharge": false, + "radish": false, + "showType": 1, + "skipType": 3, + "skipUri": "http://beta.api.molistar.xyz/molistar/modules/weekStarPlus/index.html" + } +] \ No newline at end of file