From 626d711cb15896055c13fe344eb7fcc824589715 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期四, 19 十二月 2019 15:38:42 +0800 Subject: [PATCH] 帮助中心 --- fanli/src/main/java/com/yeshi/fanli/controller/admin/HelpCenterAdminController.java | 328 ++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 256 insertions(+), 72 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/admin/HelpCenterAdminController.java b/fanli/src/main/java/com/yeshi/fanli/controller/admin/HelpCenterAdminController.java index c5ef06f..70f8923 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/admin/HelpCenterAdminController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/admin/HelpCenterAdminController.java @@ -4,30 +4,41 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Set; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.commons.CommonsMultipartFile; import org.yeshi.utils.JsonUtil; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; +import com.yeshi.fanli.entity.AppVersionInfo; 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; +import com.yeshi.fanli.entity.bus.homemodule.AdActivityVersionControl.AdActivityType; import com.yeshi.fanli.exception.config.HelpCenterException; import com.yeshi.fanli.exception.config.HelpClassException; +import com.yeshi.fanli.exception.homemodule.FloatADException; import com.yeshi.fanli.log.LogHelper; +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.tag.PageEntity; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; +import com.yeshi.fanli.util.TimeUtil; +import net.sf.json.JSONArray; import net.sf.json.JSONObject; @Controller @@ -39,6 +50,12 @@ @Resource private HelpClassService helpClassService; + + @Resource + private AppVersionService appVersionService; + + @Resource + private AdActivityVersionControlService adActivityVersionControlService; /** @@ -54,16 +71,10 @@ public void save(String callback,HelpCenter helpCenter, String acction ,String content, String html, PrintWriter out) { try { - String title = helpCenter.getTitle(); - if (StringUtil.isNullOrEmpty(title)) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏍囬涓嶈兘涓虹┖")); - return; - } - helpCenterService.save(helpCenter, content, html); - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("鎿嶄綔鎴愬姛")); - + } catch (HelpCenterException e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg())); } catch (Exception e) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父")); try { @@ -72,7 +83,6 @@ e1.printStackTrace(); } } - } @@ -83,9 +93,7 @@ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇蜂紶閫掓纭弬鏁�")); return; } - - HelpCenter crrent = helpCenterService.selectByPrimaryKey(id); - + HelpCenter crrent = helpCenterService.selectByPrimaryKey(id); if (crrent == null) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔鏁版嵁宸蹭笉瀛樺湪")); return; @@ -96,10 +104,28 @@ JSONObject data = new JSONObject(); data.put("id",crrent.getId()); data.put("title",crrent.getTitle()); + + if (crrent.getStartTime() != null) { + data.put("startTime", TimeUtil.getWholeTime(crrent.getStartTime().getTime())); + } else { + data.put("startTime", ""); + } + if (crrent.getEndTime() != null) { + data.put("endTime", TimeUtil.getWholeTime(crrent.getEndTime().getTime())); + } else { + data.put("endTime", ""); + } + if (helpInfo != null){ data.put("html",helpInfo.getHtml()); } else { data.put("html", ""); + } + + if (crrent.getHelpClass() != null){ + data.put("cid",crrent.getHelpClass().getId()); + } else { + data.put("cid", 0); } JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); @@ -119,28 +145,77 @@ */ @RequestMapping(value = "query") public void query(String callback, Integer pageIndex, Integer pageSize, String key, Long cid, - Integer orderMode, PrintWriter out) { - + Integer orderMode, String version, String platform, PrintWriter out) { try { - if (orderMode == null) orderMode = 1; if (pageIndex == null) pageIndex = 1; - + if (pageSize == null) pageSize = Constant.PAGE_SIZE; - List<HelpCenter> helpCenterList = - helpCenterService.query((pageIndex - 1) * pageSize, pageSize, key, cid, orderMode); - - if (helpCenterList == null || helpCenterList.size() == 0) { + List<HelpCenter> list = helpCenterService.query(0, Integer.MAX_VALUE, key, cid, orderMode); + if (list == null || list.size() == 0) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤鏁版嵁")); return; } - for (HelpCenter helpCenter: helpCenterList) { + int count = list.size(); + List<AppVersionInfo> versionList = null; + if (!StringUtil.isNullOrEmpty(version) || !StringUtil.isNullOrEmpty(platform)) { + versionList = new ArrayList<>(); + if (!StringUtil.isNullOrEmpty(version)) { + AppVersionInfo appVersion = appVersionService.selectByPrimaryKey(Long.parseLong(version)); + if (appVersion != null) + versionList.add(appVersion); + } else { + List<AppVersionInfo> appVersionList = appVersionService.getAppVersionInfoListByPlatform(platform); + if (appVersionList != null) { + versionList.addAll(appVersionList); + } + } + } + + if (versionList != null) { + if (versionList.size() > 0) { + List<Long> sourceIdList = new ArrayList<>(); + for (HelpCenter helpCenter: list) { + sourceIdList.add(helpCenter.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--); + } + } + count = list.size(); + } else { + list.clear(); + count = 0; + } + } + + int totalPage = count % pageSize == 0 ? count / pageSize : count / pageSize + 1; + PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage); + List<HelpCenter> listResult = null; + if (pageIndex < totalPage) { + int start = (pageIndex - 1) * pageSize; + listResult = list.subList(start, start + pageSize); + } else if (pageIndex == totalPage) { + listResult = list.subList((pageIndex - 1) * pageSize, list.size()); + } else { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("娌℃湁鏇村浜�")); + return; + } + + for (HelpCenter helpCenter: listResult) { HelpClass helpClass = helpCenter.getHelpClass(); if (helpClass == null ) { helpClass = new HelpClass(); @@ -149,26 +224,58 @@ helpCenter.setHelpClass(helpClass); } } - - 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); - GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.serializeNulls(); Gson gson = gsonBuilder.setDateFormat("yyyy/MM/dd HH:mm:ss").create(); JSONObject data = new JSONObject(); data.put("pe", pe); - data.put("result_list", gson.toJson(helpCenterList)); - + data.put("result_list", gson.toJson(listResult)); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); - } catch (Exception e) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ寮傚父")); e.printStackTrace(); } + } + + + /** + * 璁剧疆鐗堟湰 + * + * @param callback + * @param id + * @param moveType + * @param sex + * @param out + */ + @RequestMapping(value = "setCenterVersions") + public void setCenterVersions(String callback, Long id, String versions, PrintWriter out) { + JSONArray versionArray = JSONArray.fromObject(versions); + List<Long> versionIds = new ArrayList<>(); + for (int i = 0; i < versionArray.size(); i++) { + Long version = versionArray.optLong(i); + versionIds.add(version); + } + try { + helpCenterService.setVersions(id, versionIds); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("")); + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMessage())); + } + } + + @RequestMapping(value = "getCenterVersions") + public void getCenterVersions(String callback, Long id, PrintWriter out) { + List<AdActivityVersionControl> list = adActivityVersionControlService + .listByTypeAndSourceId(AdActivityType.helpCenter, id); + + List<Long> versionList = new ArrayList<>(); + if (list != null) + for (AdActivityVersionControl control : list) + versionList.add(control.getVersion().getId()); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(versionList)); } @@ -178,26 +285,19 @@ * @param idArray * @param out */ - @RequestMapping(value = "saveModify") - public void saveModify(String callback, HelpCenter helpCenter, PrintWriter out) { + @RequestMapping(value = "setWeight") + public void setWeight(String callback, Long id, Integer weight, PrintWriter out) { try { - - Long id = helpCenter.getId(); - if (id == null) { + if (id == null || weight == null) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇蜂紶閫掓纭弬鏁�")); return; } - HelpCenter crrent = helpCenterService.selectByPrimaryKey(id); - if (crrent == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔鏁版嵁宸蹭笉瀛樺湪")); - return; - } - - helpCenterService.updateByPrimaryKeySelective(helpCenter); - + HelpCenter crrent = new HelpCenter(); + crrent.setId(id); + crrent.setWeight(weight); + helpCenterService.updateByPrimaryKeySelective(crrent); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("鎿嶄綔鎴愬姛")); - } catch (HelpCenterException e) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔澶辫触")); e.printStackTrace(); @@ -213,12 +313,10 @@ @RequestMapping(value = "deleteBatch") public void deleteBatch(String callback, String idArray, PrintWriter out) { try { - if (StringUtil.isNullOrEmpty(idArray)) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏈�夋嫨鎿嶄綔鐨勬暟鎹�")); return; } - Gson gson = new Gson(); List<String> idList = gson.fromJson(idArray, new TypeToken<ArrayList<String>>() {}.getType()); @@ -231,9 +329,7 @@ helpCenterService.deleteBatchById(idList); // 鍒犻櫎甯姪鍏蜂綋璇︽儏 helpCenterService.deleteInfoBatchById(idList); - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("鍒犻櫎鎴愬姛")); - } catch (HelpCenterException e) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍒犻櫎澶辫触")); e.printStackTrace(); @@ -248,7 +344,6 @@ @RequestMapping(value = "setClass") public void saveModify(String callback, Long id, Long cid, PrintWriter out) { try { - if (id == null || cid == null) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇蜂紶閫掓纭弬鏁�")); return; @@ -267,41 +362,40 @@ } crrent.setUpdatetime(new Date()); helpCenterService.updateByPrimaryKey(crrent); - - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("鎿嶄綔鎴愬姛")); - } catch (HelpCenterException e) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔澶辫触")); e.printStackTrace(); } } + /** - * 鍒嗙被淇濆瓨-鏂板銆佷慨鏀� + * 淇濆瓨淇℃伅 + * * @param callback * @param special * @param out */ @RequestMapping(value = "saveClass") - public void saveClass(String callback, HelpClass helpClass, PrintWriter out) { + public void saveClass(String callback, HelpClass helpClass, HttpServletRequest request,PrintWriter out) { try { - String name = helpClass.getName(); - if (StringUtil.isNullOrEmpty(name)) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍚嶇О涓嶈兘涓虹┖")); - return; - } - - helpClassService.save(helpClass); - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("鎿嶄綔鎴愬姛")); - } catch (HelpClassException e) { + // 1. 鍏堝垽鏂環ttpRequest 鏄惁鍚湁鏂囦欢绫诲瀷 + if (request instanceof MultipartHttpServletRequest) { + MultipartHttpServletRequest fileRequest = (MultipartHttpServletRequest) request; + helpClassService.save(helpClass, fileRequest.getFile("file")); + }else{ + helpClassService.save(helpClass, null); + } + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("淇濆瓨鎴愬姛")); + } catch (FloatADException e) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg())); } catch (Exception e) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔澶辫触")); + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("淇濆瓨澶辫触")); e.printStackTrace(); } } - + /** * 淇敼绯荤粺鐘舵�� @@ -402,25 +496,77 @@ */ @RequestMapping(value = "queryClass") public void queryClass(String callback, Integer pageIndex, Integer pageSize, String key, - Integer showState, PrintWriter out) { + Integer showState, String version, String platform, PrintWriter out) { if (pageIndex == null || pageIndex < 1) { pageIndex = 1; } - if (pageSize == null || pageSize < 1) { - pageSize = Constant.PAGE_SIZE; - } - + pageSize = Integer.MAX_VALUE; try { - List<HelpClass> list = helpClassService.query((pageIndex - 1) * pageSize, pageSize, key, showState); - + List<HelpClass> list = helpClassService.query(0, pageSize, key, showState); if (list == null || list.size() == 0) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤鏁版嵁")); return; } - long count = helpClassService.countQuery(key, showState); + List<AppVersionInfo> versionList = null; + if (!StringUtil.isNullOrEmpty(version) || !StringUtil.isNullOrEmpty(platform)) { + versionList = new ArrayList<>(); + if (!StringUtil.isNullOrEmpty(version)) { + AppVersionInfo appVersion = appVersionService.selectByPrimaryKey(Long.parseLong(version)); + if (appVersion != null) + versionList.add(appVersion); + } else { + List<AppVersionInfo> appVersionList = appVersionService.getAppVersionInfoListByPlatform(platform); + if (appVersionList != null) { + versionList.addAll(appVersionList); + } + } + } + + for (HelpClass helpClass: list) { + Date startTime = helpClass.getStartTime(); + if (startTime == null) { + helpClass.setStartTime_str(""); + } else { + helpClass.setStartTime_str(TimeUtil.formatDateAddT(startTime)); + } + + Date endTime = helpClass.getEndTime(); + if (endTime == null) { + helpClass.setEndTime_str(""); + } else { + helpClass.setEndTime_str(TimeUtil.formatDateAddT(endTime)); + } + } + + + // 杩囨护 + long count = 0; + if (versionList != null) { + if (versionList.size() > 0) { + List<Long> sourceIdList = new ArrayList<>(); + for (HelpClass helpClass : list) { + sourceIdList.add(helpClass.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--); + } + } + count = list.size(); + } else { + list.clear(); + count = 0; + } + } int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1); PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage); @@ -469,4 +615,42 @@ e.printStackTrace(); } } + + + /** + * 璁剧疆鐗堟湰 + * + * @param callback + * @param id + * @param moveType + * @param sex + * @param out + */ + @RequestMapping(value = "setVersions") + public void setVersions(String callback, Long id, String versions, PrintWriter out) { + JSONArray versionArray = JSONArray.fromObject(versions); + List<Long> versionIds = new ArrayList<>(); + for (int i = 0; i < versionArray.size(); i++) { + Long version = versionArray.optLong(i); + versionIds.add(version); + } + try { + helpClassService.setVersions(id, versionIds); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("")); + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMessage())); + } + } + + @RequestMapping(value = "getVersions") + public void getVersions(String callback, Long id, PrintWriter out) { + List<AdActivityVersionControl> list = adActivityVersionControlService + .listByTypeAndSourceId(AdActivityType.helpClass, id); + + List<Long> versionList = new ArrayList<>(); + if (list != null) + for (AdActivityVersionControl control : list) + versionList.add(control.getVersion().getId()); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(versionList)); + } } -- Gitblit v1.8.0