package com.yeshi.fanli.controller.admin; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.springframework.cache.ehcache.EhCacheCacheManager; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.yeshi.utils.JsonUtil; import com.yeshi.fanli.entity.AppVersionInfo; import com.yeshi.fanli.entity.common.Config; import com.yeshi.fanli.service.inter.config.AppVersionService; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.tag.PageEntity; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; import net.sf.json.JSONObject; @Controller @RequestMapping("admin/new/api/v1/config") public class ConfigAdminController { @Resource private ConfigService configService; @Resource private AppVersionService appVersionService; @Resource private EhCacheCacheManager ehCacheCacheManager; /** * 查询列表 - 新后台 * * @param callback * @param key * 查询词 名称 * @param pageIndex * @param out */ @RequestMapping(value = "getNewConfigList") public void getNewConfigList(String callback, String key, Integer pageIndex, PrintWriter out) { try { if (pageIndex == null || pageIndex < 0) { pageIndex = 1; } List versionList = appVersionService.getAppVersionInfoListByPlatform("android"); Map androidMapName = new HashMap<>(); for (AppVersionInfo version : versionList) androidMapName.put(version.getVersionCode(), version.getVersion()); versionList = appVersionService.getAppVersionInfoListByPlatform("ios"); Map iosMapName = new HashMap<>(); for (AppVersionInfo version : versionList) iosMapName.put(version.getVersionCode(), version.getVersion()); List list = configService.listObjects(key, pageIndex); for (Config config : list) { config.setMinAndroidVersion(androidMapName.get(config.getMinAndroidVersionCode())); config.setMinIosVersion(iosMapName.get(config.getMinIosVersionCode())); } if (list == null || list.size() == 0) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无更多数据")); return; } int pageSize = Constant.PAGE_SIZE; int count = configService.getCount(key); int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1); PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage); JSONObject data = new JSONObject(); data.put("pe", pe); data.put("result_list", list); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); } catch (Exception e) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询失败")); e.printStackTrace(); } } /** * 参数修改 - 新后台 * * @param callback * @param config * @param out */ @RequestMapping(value = "saveModify") public void saveModify(String callback, Config config, PrintWriter out) { Long id = config.getId(); if (id == null) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("ID不能为空")); return; } try { Config crentconfig = configService.getConfig(id); if (crentconfig == null) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作数据已不存在")); return; } if (StringUtil.isNullOrEmpty(config.getName()) || StringUtil.isNullOrEmpty(config.getValue())) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("说明、有效值不能为空")); return; } crentconfig.setName(config.getName()); crentconfig.setValue(config.getValue()); if (!StringUtil.isNullOrEmpty(config.getBeizhu())) { crentconfig.setBeizhu(config.getBeizhu()); } configService.update(crentconfig); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("修改成功")); } catch (Exception e) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("修改失败")); e.printStackTrace(); } } /** * 版本号信息 * * @param callback * @param out */ @RequestMapping(value = "getVersionList") public void getVersionList(String callback, PrintWriter out) { try { AppVersionInfo appVersionInfo = new AppVersionInfo(); appVersionInfo.setVersion("全推"); // IOS版本 List list1 = appVersionService.getAppVersionInfoListByPlatform(AppVersionInfo.PLATFORM_IOS); if (list1 == null) { list1 = new ArrayList(); } List listIOS = new ArrayList(); listIOS.add(appVersionInfo); listIOS.addAll(list1); // 安卓版本 List list2 = appVersionService .getAppVersionInfoListByPlatform(AppVersionInfo.PLATFORM_ANDROID); if (list2 == null) { list2 = new ArrayList(); } List listAndroid = new ArrayList(); listAndroid.add(appVersionInfo); listAndroid.addAll(list2); JSONObject data = new JSONObject(); data.put("android", listAndroid); data.put("ios", listIOS); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); } catch (Exception e) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("版本查询失败")); e.printStackTrace(); } } @RequestMapping(value = "clearCaches") public void clearCaches(String callback, PrintWriter out) { ehCacheCacheManager.getCacheManager().clearAll(); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("")); } }