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();
|
}
|
}
|
|
}
|