admin
2020-05-19 744594ef1a2f530fc3e86ea9dc48b62247f79420
fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5HelpCenterController.java
@@ -1,7 +1,9 @@
package com.yeshi.fanli.controller.apph5;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import javax.annotation.Resource;
@@ -9,14 +11,18 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.yeshi.utils.JsonUtil;
import com.yeshi.fanli.entity.AppVersionInfo;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.help.HelpCenter;
import com.yeshi.fanli.entity.bus.help.HelpClass;
import com.yeshi.fanli.entity.bus.help.HelpInfo;
import com.yeshi.fanli.exception.HelpCenterException;
import com.yeshi.fanli.entity.bus.homemodule.AdActivityVersionControl.AdActivityType;
import com.yeshi.fanli.service.inter.config.AppVersionService;
import com.yeshi.fanli.service.inter.help.HelpCenterService;
import com.yeshi.fanli.service.inter.help.HelpClassService;
import com.yeshi.fanli.tag.PageEntity;
import com.yeshi.fanli.service.inter.homemodule.AdActivityVersionControlService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import net.sf.json.JSONObject;
@@ -26,10 +32,16 @@
   @Resource
   private HelpCenterService helpCenterService;
   @Resource
   private HelpClassService helpClassService;
   @Resource
   private AppVersionService appVersionService;
   @Resource
   private AdActivityVersionControlService adActivityVersionControlService;
   /**
    * 查询帮助列表
    * @param callback
@@ -39,49 +51,68 @@
    * @param out
    */
   @RequestMapping(value = "query")
   public void query(String callback, Integer pageIndex, Integer pageSize,   String key, Long cid,
   public void query(String callback, AcceptData acceptData, Long pageId, Integer pageSize, String key, Long cid,
         PrintWriter out) {
      try {
         if (pageIndex == null)
            pageIndex = 1;
         if (pageSize == null)
         if (pageSize == null)
            pageSize = Constant.PAGE_SIZE;
         if (cid != null && cid == 0) {
            cid = null; // 查询全部
         }
         List<HelpCenter> helpCenterList =
               helpCenterService.queryIdAndTitle((pageIndex - 1) * pageSize, pageSize, key, cid);
         if (helpCenterList == null || helpCenterList.size() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "没有更多了"));
            return;
         }
         long count = helpCenterService.countQuery(key, cid);
         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", helpCenterList);
         out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
         if (cid != null && cid == 0)
            cid = null; // 查询全部
         if (!StringUtil.isNullOrEmpty(key))
            key = key.trim();
         if (pageId == null)
            pageId = 0L;
         List<HelpCenter> list1 = helpCenterService.listValid(pageId, pageSize, key, cid);
         List<HelpCenter> list = new ArrayList<>();
         if (list1 != null && list1.size() > 0)
            list.addAll(list1);
         if (list.size() == 0) {
            pageId = 0L;
         } else {
            pageId = list.get(list.size() - 1).getId();
            // 版本过滤
            int version = Integer.parseInt(acceptData.getVersion());
            String platform = acceptData.getPlatform().toLowerCase();
            List<AppVersionInfo> versionList = appVersionService.listByPlatformAndMinVersionCode(platform, version);
            if (versionList == null || versionList.size() <= 0) {
               list.clear();
            } else {
               List<Long> sourceIdList = new ArrayList<>();
               for (HelpCenter record : list) {
                  sourceIdList.add(record.getId());
               }
               List<Long> versionIdList = new ArrayList<>();
               for (AppVersionInfo versionInfo : versionList)
                  versionIdList.add(versionInfo.getId());
               Set<Long> sets = adActivityVersionControlService.filterSourceIdByVersion(sourceIdList,
                     AdActivityType.helpCenter, versionIdList);
               for (int i = 0; i < list.size(); i++) {
                  if (!sets.contains(list.get(i).getId())) {
                     list.remove(i--);
                  }
               }
            }
         }
         JSONObject data = new JSONObject();
         data.put("pageId", pageId);
         data.put("result_list", JsonUtil.getApiCommonGson().toJson(list));
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("暂未数据")));
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无数据"));
         e.printStackTrace();
      }
   }
   /**
    * 获取帮助详情
    * @param callback
@@ -89,65 +120,82 @@
    * @param out
    */
   @RequestMapping(value = "getInfo")
   public void getInfo(String callback, Long id, PrintWriter out){
   public void getInfo(String callback, Long id, PrintWriter out) {
      try {
         if (id == null) {
            out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("该内容不存在")));
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该内容不存在"));
            return;
         }
         HelpCenter crrent = helpCenterService.selectByPrimaryKeyCache(id);
         if (crrent == null) {
            out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("该内容已不存在")));
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该内容已不存在"));
            return;
         }
         String html = null;
         HelpInfo helpInfo = helpCenterService.getHelpInfoCache(id);
         if (helpInfo != null) {
            html = helpInfo.getHtml();
         }
         JSONObject data = new JSONObject();
         data.put("id",crrent.getId());
         data.put("title",crrent.getTitle());
         data.put("id", crrent.getId());
         data.put("title", crrent.getTitle());
         data.put("html", html);
         out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
      } catch (HelpCenterException e) {
         out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("未获取到内容")));
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("数据失败"));
         e.printStackTrace();
      }
   }
   /**
    * 查询启用的分类
    * @param callback
    * @param out
    */
   @RequestMapping(value = "getClass")
   public void getClass(String callback, PrintWriter out) {
   public void getClass(String callback, AcceptData acceptData, PrintWriter out) {
      try {
         List<HelpClass> resultList = new ArrayList<>();
         List<HelpClass> list = helpClassService.getClassByState(1);
         if (list == null || list.size() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无数据"));
            return;
         if (list != null && list.size() > 0) {
            resultList.addAll(list);
         }
         // 版本过滤
         int version = Integer.parseInt(acceptData.getVersion());
         String platform = acceptData.getPlatform().toLowerCase();
         List<AppVersionInfo> versionList = appVersionService.listByPlatformAndMinVersionCode(platform, version);
         if (versionList == null || versionList.size() <= 0) {
            resultList.clear();
         } else {
            List<Long> sourceIdList = new ArrayList<>();
            for (HelpClass record : resultList) {
               sourceIdList.add(record.getId());
            }
            List<Long> versionIdList = new ArrayList<>();
            for (AppVersionInfo versionInfo : versionList)
               versionIdList.add(versionInfo.getId());
            Set<Long> sets = adActivityVersionControlService.filterSourceIdByVersion(sourceIdList,
                  AdActivityType.helpClass, versionIdList);
            for (int i = 0; i < list.size(); i++) {
               if (!sets.contains(list.get(i).getId())) {
                  list.remove(i--);
               }
            }
         }
         JSONObject data = new JSONObject();
         data.put("class_list", list);
         data.put("class_list", JsonUtil.getApiCommonGson().toJson(resultList));
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
         e.printStackTrace();
      }
   }
}