diff --git a/common/src/main/java/com/yunbao/common/bean/OpenAdModel.java b/common/src/main/java/com/yunbao/common/bean/OpenAdModel.java index 0189513be..a6a4ce3ac 100644 --- a/common/src/main/java/com/yunbao/common/bean/OpenAdModel.java +++ b/common/src/main/java/com/yunbao/common/bean/OpenAdModel.java @@ -17,14 +17,17 @@ public class OpenAdModel extends BaseModel { public static final int MODEL_SQUARE = 1;//正方形 public static final int MODEL_RECTANGLE = 2;//长方形 public static final int MODEL_BOTTOM = 3;//底部 + public static final int SHOW_DEF = 1;//1. 杀死程序后弹出; + public static final int SHOW_DIY = 2;//2. 自定义时间:自上次弹出弹窗后,00:00小时(范围:00:01小时-48:00小时)后再弹出(到时间后也需满足触发条件再弹出); + public static final int SHOW_ONE = 3;//3. 仅弹出一次; @SerializedName("id") private int id; @SerializedName("popup_location") private int type = TYPE_HOME; @SerializedName("activity_url") - private String url; + private String url;//点击跳转url @SerializedName("image_url") - private String imageUrl; + private String imageUrl;//图片url @SerializedName("display_time") private int showTime; //持续展示时间 @SerializedName("delay_show_time") @@ -37,11 +40,48 @@ public class OpenAdModel extends BaseModel { private String endTime;//活动结束时间 @SerializedName("popup_permission") private int permission; + @SerializedName("popup_frequency") + private int showModel = SHOW_DEF;//显示模式,1:杀死程序后弹出 2:指定时间内(本机时间) 3:1. 仅弹出一次 + @SerializedName("popup_frequency_time") + private String section = "0";// SHOW_DEF = 2 public OpenAdModel() { } + public static OpenAdModel createTestData() { + OpenAdModel model = new OpenAdModel(); + model.id=3; + model.type=1; + model.url = "/h5/GuildTournament/20230821/rank.html"; + model.imageUrl = "https://ceshi.yaoulive.com/data/upload/20230913/1694589490.png"; + model.showTime = 10; + model.delayShowTime = 0; + model.model = MODEL_SQUARE; + model.startTime = "2019-01-01 00:00:00"; + model.endTime = "2029-01-01 00:00:00"; + model.permission = 4; + model.showModel = SHOW_DIY; + model.section = "5"; + return model; + } + + public int getShowModel() { + return showModel; + } + + public void setShowModel(int showModel) { + this.showModel = showModel; + } + + public String getSection() { + return section; + } + + public void setSection(String section) { + this.section = section; + } + public int getType() { return type; } diff --git a/common/src/main/java/com/yunbao/common/manager/OpenAdManager.java b/common/src/main/java/com/yunbao/common/manager/OpenAdManager.java index 7d64a092c..19e366823 100644 --- a/common/src/main/java/com/yunbao/common/manager/OpenAdManager.java +++ b/common/src/main/java/com/yunbao/common/manager/OpenAdManager.java @@ -11,6 +11,8 @@ import com.yunbao.common.dialog.OpenAdBottomDialogPopup; import com.yunbao.common.dialog.OpenAdCenterDialogPopup; import com.yunbao.common.http.base.HttpCallback; import com.yunbao.common.http.live.LiveNetManager; +import com.yunbao.common.utils.SpUtil; +import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.ToastUtil; import java.util.ArrayList; @@ -93,6 +95,18 @@ public class OpenAdManager { if (type == OpenAdModel.TYPE_LIVE && !model.userIsPermission(isGuard)) { continue; } + if (model.getShowModel() == OpenAdModel.SHOW_ONE) { + if (SpUtil.getInstance().getBooleanValue("open_ad_popup_" + model.getId())) { + continue; + } + SpUtil.getInstance().setBooleanValue("open_ad_popup_" + model.getId(), true); + } + if (model.getShowModel() == OpenAdModel.SHOW_DIY) { + String value = SpUtil.getStringValue("open_ad_popup_time_" + model.getId()); + if (!StringUtil.isEmpty(value) && System.currentTimeMillis() < Long.parseLong(value)) { + continue; + } + } if (runnableMap.containsKey(model.getId())) { AdRunnable runnable = runnableMap.get(model.getId()); if (runnable != null) { @@ -166,6 +180,10 @@ public class OpenAdManager { return; } showMap.put(model.getId(), true); + if (model.getShowModel() == OpenAdModel.SHOW_DIY) { + String nextTime= String.valueOf(System.currentTimeMillis() + (Long.parseLong(model.getSection()) * 60 * 1000)); + SpUtil.setStringValue("open_ad_popup_time_" + model.getId(), nextTime); + } if (model.getModel() == OpenAdModel.MODEL_BOTTOM) { new OpenAdBottomDialogPopup(CommonAppContext.getTopActivity(), model).setListener((bean, position) -> { }).showDialog();