| | |
| | | |
| | | import com.yeshi.buwan.domain.DetailSystem; |
| | | import com.yeshi.buwan.service.imp.SystemService; |
| | | import com.yeshi.buwan.util.IPUtil; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.vo.AcceptData; |
| | | import org.springframework.stereotype.Controller; |
| | | |
| | |
| | | @Resource |
| | | private SystemService systemService; |
| | | |
| | | public void getConfig(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { |
| | | String channel = request.getParameter("Channel"); |
| | | DetailSystem detailSystem = systemService.getDetailSystemByPackage(acceptData.getPackageName()); |
| | | String version = request.getParameter("Version"); |
| | | Map<String, String> map = configService.getConfigAsMap(detailSystem, acceptData.getVersion()); |
| | | String splash = map.get("ad_splash_config"); |
| | | private String getAdShowType(String key, String channel, int version, Map<String, String> map) { |
| | | String splash = map.get(key); |
| | | JSONObject jsonObject = JSONObject.fromObject(splash); |
| | | ADConfig splashAD = null; |
| | | channel = channel.toLowerCase(); |
| | | if (jsonObject.optJSONObject(channel) == null) { |
| | | // 默认为应用宝 |
| | | channel = "qq"; |
| | | } |
| | | String splashAdType = ""; |
| | | String adType = ""; |
| | | splashAD = new Gson().fromJson(jsonObject.optJSONObject(channel).toString(), ADConfig.class); |
| | | if (Integer.parseInt(version) >= splashAD.getVersion()) { |
| | | splashAdType = ""; |
| | | if (version >= splashAD.getVersion()) { |
| | | adType = ""; |
| | | } else { |
| | | splashAdType = splashAD.getType(); |
| | | adType = splashAD.getType(); |
| | | } |
| | | |
| | | return adType; |
| | | } |
| | | |
| | | public void getConfig(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { |
| | | DetailSystem detailSystem = systemService.getDetailSystemByPackage(acceptData.getPackageName()); |
| | | Map<String, String> map = configService.getConfigAsMap(detailSystem, acceptData.getVersion()); |
| | | JSONObject data = new JSONObject(); |
| | | JSONObject ad = new JSONObject(); |
| | | ad.put("splash", splashAdType); |
| | | |
| | | String ip = IPUtil.getRemotIP(request); |
| | | String splash = getAdShowType("ad_splash_config", acceptData.getChannel(), acceptData.getVersion(), map); |
| | | |
| | | |
| | | //开屏的地区屏蔽规则 |
| | | String shieldProvince = map.get("shield_province"); |
| | | if(!StringUtil.isNullOrEmpty(shieldProvince)) { |
| | | JSONObject json = JSONObject.fromObject(shieldProvince); |
| | | //获取渠道需要屏蔽的城市 |
| | | String province = json.optString(acceptData.getChannel().toLowerCase()); |
| | | if (!StringUtil.isNullOrEmpty(splash) && !StringUtil.isNullOrEmpty(province)) { |
| | | String pro = IPUtil.getIPProvince(ip); |
| | | if (pro != null && pro.contains(province)) {//屏蔽IP |
| | | splash = ""; |
| | | } |
| | | } |
| | | } |
| | | |
| | | //开屏 |
| | | ad.put("splash", splash); |
| | | |
| | | |
| | | //视频前贴 |
| | | ad.put("videoPlayPre", getAdShowType("ad_play_video_pre", acceptData.getChannel(), acceptData.getVersion(), map)); |
| | | //APP退出 |
| | | ad.put("exitApp", getAdShowType("ad_exit_app", acceptData.getChannel(), acceptData.getVersion(), map)); |
| | | |
| | | data.put("ad", ad); |
| | | out.print(JsonUtil.loadTrueJson(data.toString())); |
| | | } |