package com.yeshi.fanli.controller.client.v1; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import java.util.HashMap; import java.util.Map; import javax.annotation.Resource; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.yeshi.fanli.entity.accept.AcceptData; import com.yeshi.fanli.entity.bus.help.AppPageNotification; import com.yeshi.fanli.service.inter.help.AppPageNotificationService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.VersionUtil; import org.yeshi.utils.HttpUtil; import org.yeshi.utils.JsonUtil; @Controller @RequestMapping("api/v1/help") public class HelpController { @Resource private AppPageNotificationService appPageNotificationService; /** * 获取app页面的通知 * * @param acceptData * @param type * @param out */ @RequestMapping(value = "getAppPageNotification") public void getAppPageNotification(AcceptData acceptData, String type, PrintWriter out) { if (StringUtil.isNullOrEmpty(type)) { out.print(JsonUtil.loadFalseResult(1, "请上传类型")); return; } String platform = acceptData.getPlatform(); String version = acceptData.getVersion(); AppPageNotification ap = appPageNotificationService.getValidNotificationByTypeCache(type,platform, Integer.parseInt(version)); if ("home".equalsIgnoreCase(type) && VersionUtil.smallerThan_1_5_1(platform, version) && ap != null) { AppPageNotification no = new AppPageNotification(); no.setContentUrl(""); no.setMd5("111111111111111111"); no.setPageName(ap.getPageName()); no.setShow(true); no.setType(ap.getType()); no.setUpdateTime(ap.getUpdateTime()); no.setCanClose(false); no.setContent(String.format("尊敬的用户,为更加准确高效的为你返利、省钱,请升级到%s最新版本",Constant.getAppName(platform, version))); Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create(); out.print(JsonUtil.loadTrueResult(gson.toJson(no))); return; } // 没有通知 if (ap == null || !ap.getShow()) { out.print(JsonUtil.loadFalseResult(2, "无通知")); } else {// 有通知 Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create(); out.print(JsonUtil.loadTrueResult(gson.toJson(ap))); } } @RequestMapping(value = "updateApp") public void updateApp(AcceptData acceptData, PrintWriter out) { Map params = new HashMap<>(); if ("android".equalsIgnoreCase(acceptData.getPlatform())) {// android更新 // acceptData.setVersion("10"); params.put("method", "update"); params.put("Platform", "Android"); params.put("Version", acceptData.getVersion()); params.put("device ", acceptData.getDevice()); params.put("time", System.currentTimeMillis() + ""); params.put("Package", acceptData.getPackages()); params.put("device", acceptData.getDevice()); params.put("platform", "Android"); params.put("key", "a3f390d88e4c41f2747bfa2f1b5f87db"); params.put("versionCode", acceptData.getVersion() + ""); } else {// IOS更新 params.put("method", "update"); params.put("Platform", "IOS"); params.put("Version", acceptData.getVersion()); params.put("device ", acceptData.getDevice()); params.put("time", System.currentTimeMillis() + ""); params.put("Package", acceptData.getPackages()); params.put("device", acceptData.getDevice()); params.put("platform", "IOS"); params.put("key", "32bb90e8976aab5298d5da10fe66f21d"); params.put("versionCode", acceptData.getVersion() + ""); } String url = "http://update.yeshitv.com:8090/update/update"; String result = HttpUtil.post(url, params, null); try { out.print(new String(result.getBytes("ISO-8859-1"), "UTF-8")); } catch (UnsupportedEncodingException e) { out.print(result); } } }