admin
2020-02-12 df7554c138d0366514968eba9a32670876510df7
fanli/src/main/java/com/yeshi/fanli/controller/admin/ConfigAdminController.java
@@ -2,156 +2,200 @@
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 javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONObject;
import org.springframework.cache.ehcache.EhCacheCacheManager;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.yeshi.utils.JsonUtil;
import com.yeshi.fanli.entity.common.AdminUser;
import com.yeshi.fanli.entity.AppVersionInfo;
import com.yeshi.fanli.entity.common.Config;
import com.yeshi.fanli.service.AdminUserService;
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 com.yeshi.fanli.util.annotation.RequestNoLogin;
import org.yeshi.utils.JsonUtil;
import net.sf.json.JSONObject;
@Controller
@RequestMapping("admin/new/api/v1/config")
public class ConfigAdminController {
   @Resource
   private ConfigService configService;
   @Resource
   private AdminUserService adminUserService;
   @RequestMapping(value = "getConfigList", method = RequestMethod.POST)
   public void getConfigList(PrintWriter out){
      List<Config> configList =  configService.getAllList();
      out.print(JsonUtil.loadTrueResult(configList));
   }
   @RequestMapping(value = "updateConfig", method = RequestMethod.POST)
   public void updateConfig(String map, PrintWriter out) {
      List<Config> list = configService.getAllList();
      List<Config> newList = new ArrayList<Config>();
      Map<String, String> data = JsonUtil.parseData(map);
      for (Config config : list) {
         String key = config.getKey();
         if(data.containsKey(key)){
            String value =data.get(key);
            if(!config.getValue().equals(value)){
               config.setValue(value);
               newList.add(config);
            }
         }
      }
      configService.update(newList);
      out.print(JsonUtil.loadTrueResult("修改成功"));
      return;
   }
   private AppVersionService appVersionService;
   @Resource
   private EhCacheCacheManager ehCacheCacheManager;
   /**
    * 查询列表 - 新后台
    *
    * @param callback
    * @param key 查询词  名称
    * @param key
    *            查询词 名称
    * @param pageIndex
    * @param out
    */
   @RequestMapping(value = "getNewConfigList")
   public void getNewConfigList(String callback, String key, Integer pageIndex, PrintWriter out){
   public void getNewConfigList(String callback, String key, Integer pageIndex, PrintWriter out) {
      try {
         if (pageIndex == null || pageIndex < 0){
         if (pageIndex == null || pageIndex < 0) {
            pageIndex = 1;
         }
         List<Config> list =  configService.listObjects(key, pageIndex);
         List<AppVersionInfo> versionList = appVersionService.getAppVersionInfoListByPlatform("android");
         Map<Integer, String> androidMapName = new HashMap<>();
         for (AppVersionInfo version : versionList)
            androidMapName.put(version.getVersionCode(), version.getVersion());
         versionList = appVersionService.getAppVersionInfoListByPlatform("ios");
         Map<Integer, String> iosMapName = new HashMap<>();
         for (AppVersionInfo version : versionList)
            iosMapName.put(version.getVersionCode(), version.getVersion());
         List<Config> 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 count = configService.getCount(key, pageIndex);
         PageEntity pe = new PageEntity(pageIndex, Constant.PAGE_SIZE, count);
         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
    */
   @RequestNoLogin()
   @RequestMapping(value = "saveModify")
   public void saveModify(String callback, Config config, Long uid, HttpServletResponse response, PrintWriter out) {
      response.setHeader("Access-Control-Allow-Origin", "*");
      response.setHeader("Access-Control-Allow-Methods", "*");
   public void saveModify(String callback, Config config, PrintWriter out) {
      AdminUser admin = adminUserService.selectByPrimaryKey(uid);
      if (admin == null) {
         out.print(JsonUtil.loadFalseResult("当前账户验证失败"));
         return;
      }
      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<AppVersionInfo> list1 = appVersionService.getAppVersionInfoListByPlatform(AppVersionInfo.PLATFORM_IOS);
         if (list1 == null) {
            list1 = new ArrayList<AppVersionInfo>();
         }
         List<AppVersionInfo> listIOS = new ArrayList<AppVersionInfo>();
         listIOS.add(appVersionInfo);
         listIOS.addAll(list1);
         // 安卓版本
         List<AppVersionInfo> list2 = appVersionService
               .getAppVersionInfoListByPlatform(AppVersionInfo.PLATFORM_ANDROID);
         if (list2 == null) {
            list2 = new ArrayList<AppVersionInfo>();
         }
         List<AppVersionInfo> listAndroid = new ArrayList<AppVersionInfo>();
         listAndroid.add(appVersionInfo);
         listAndroid.addAll(list2);
         //小程序版本
         List<AppVersionInfo> list3 = appVersionService
               .getAppVersionInfoListByPlatform(AppVersionInfo.PLATFORM_XCX);
         if (list3 == null) {
            list3 = new ArrayList<AppVersionInfo>();
         }
         List<AppVersionInfo> listWxmp = new ArrayList<AppVersionInfo>();
         listWxmp.add(appVersionInfo);
         listWxmp.addAll(list3);
         JSONObject data = new JSONObject();
         data.put("android", listAndroid);
         data.put("ios", listIOS);
         data.put("wxmp", listWxmp);
         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(""));
   }
}