admin
2025-02-25 30d8e227e8d823b6c38c3b9c90ac2df03b63befe
fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5HelpCenterController.java
@@ -1,203 +1,222 @@
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;
import com.yeshi.fanli.entity.SystemEnum;
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.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.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.service.inter.homemodule.AdActivityVersionControlService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import net.sf.json.JSONObject;
@Controller
@RequestMapping("api/apph5/v1/helpCenter")
public class AppH5HelpCenterController {
   @Resource
   private HelpCenterService helpCenterService;
   @Resource
   private HelpClassService helpClassService;
   @Resource
   private AppVersionService appVersionService;
   @Resource
   private AdActivityVersionControlService adActivityVersionControlService;
   /**
    * 查询帮助列表
    * @param callback
    * @param pageSize
    * @param key
    * @param out
    */
   @RequestMapping(value = "query")
   public void query(String callback, AcceptData acceptData, Long pageId, Integer pageSize, String key, Long cid,
         PrintWriter out) {
      //其他APP无帮助中心列表
      acceptData.setSystem(SystemEnum.blks);
      try {
         if (pageSize == null)
            pageSize = Constant.PAGE_SIZE;
         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,acceptData.getSystem());
         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,acceptData.getSystem());
            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) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无数据"));
         e.printStackTrace();
      }
   }
   /**
    * 获取帮助详情
    * @param callback
    * @param id
    * @param out
    */
   @RequestMapping(value = "getInfo")
   public void getInfo(String callback, Long id, PrintWriter out) {
      try {
         if (id == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该内容不存在"));
            return;
         }
         HelpCenter crrent = helpCenterService.selectByPrimaryKeyCache(id);
         if (crrent == null) {
            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("html", html);
         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, AcceptData acceptData, PrintWriter out) {
      try {
         List<HelpClass> resultList = new ArrayList<>();
         List<HelpClass> list = helpClassService.getClassByState(1,acceptData.getSystem());
         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,acceptData.getSystem());
         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", JsonUtil.getApiCommonGson().toJson(resultList));
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
         e.printStackTrace();
      }
   }
}
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;
import com.yeshi.fanli.entity.SystemEnum;
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.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.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.service.inter.homemodule.AdActivityVersionControlService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import net.sf.json.JSONObject;
@Controller
@RequestMapping("api/apph5/v1/helpCenter")
public class AppH5HelpCenterController {
    @Resource
    private HelpCenterService helpCenterService;
    @Resource
    private HelpClassService helpClassService;
    @Resource
    private AppVersionService appVersionService;
    @Resource
    private AdActivityVersionControlService adActivityVersionControlService;
    /**
     * 查询帮助列表
     *
     * @param callback
     * @param pageSize
     * @param key
     * @param out
     */
    @RequestMapping(value = "query")
    public void query(String callback, AcceptData acceptData, Long pageId, Integer pageSize, String key, Long cid,
                      PrintWriter out) {
        //其他APP无帮助中心列表
        if (acceptData.getSystem() == null)
            acceptData.setSystem(SystemEnum.blks);
        try {
            if (pageSize == null)
                pageSize = Constant.PAGE_SIZE;
            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, acceptData.getSystem());
            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, acceptData.getSystem());
                if (versionList == null || versionList.size() <= 0) {
                    //降级
                    versionList = appVersionService.listByPlatformAndMaxVersionCode(platform, version, acceptData.getSystem());
                    if(versionList!=null&&versionList.size()>0) {
                        version = versionList.get(versionList.size() - 1).getVersionCode();
                        versionList = appVersionService.listByPlatformAndMinVersionCode(platform, version, acceptData.getSystem());
                    }
                }
                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) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无数据"));
            e.printStackTrace();
        }
    }
    /**
     * 获取帮助详情
     *
     * @param callback
     * @param id
     * @param out
     */
    @RequestMapping(value = "getInfo")
    public void getInfo(String callback, Long id, PrintWriter out) {
        try {
            if (id == null) {
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该内容不存在"));
                return;
            }
            HelpCenter crrent = helpCenterService.selectByPrimaryKeyCache(id);
            if (crrent == null) {
                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("html", html);
            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, AcceptData acceptData, PrintWriter out) {
        if (acceptData.getSystem() == null)
            acceptData.setSystem(SystemEnum.blks);
        try {
            List<HelpClass> resultList = new ArrayList<>();
            List<HelpClass> list = helpClassService.getClassByState(1, acceptData.getSystem());
            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, acceptData.getSystem());
            if (versionList == null || versionList.size() <= 0) {
                //降级
                versionList = appVersionService.listByPlatformAndMaxVersionCode(platform, version, acceptData.getSystem());
                if(versionList!=null&&versionList.size()>0) {
                    version = versionList.get(versionList.size() - 1).getVersionCode();
                    versionList = appVersionService.listByPlatformAndMinVersionCode(platform, version, acceptData.getSystem());
                }
            }
            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", JsonUtil.getApiCommonGson().toJson(resultList));
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
        } catch (Exception e) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
            e.printStackTrace();
        }
    }
}