package com.yeshi.buwan.controller.admin.api; import java.io.PrintWriter; import java.io.Serializable; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpSession; import javax.validation.Valid; import com.yeshi.buwan.domain.recommend.HomeRecommendSpecial; import com.yeshi.buwan.service.inter.recommend.HomeRecommendSpecialService; import com.yeshi.buwan.util.SystemUtil; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.yeshi.buwan.domain.system.DetailSystem; import com.yeshi.buwan.domain.HomeType; import com.yeshi.buwan.domain.HomeVideo; import com.yeshi.buwan.domain.SuperHomeType; import com.yeshi.buwan.domain.VideoInfo; import com.yeshi.buwan.domain.web.DetailSystemSelect; import com.yeshi.buwan.domain.web.HomeTypeAdmin; import com.yeshi.buwan.service.imp.HomeTypeService; import com.yeshi.buwan.util.Constant; import com.yeshi.buwan.util.StringUtil; import com.yeshi.buwan.web.tag.PageEntity; @Controller @RequestMapping("admin/new/api/home") public class HomeTypeController { @Resource private HomeTypeService homeTypeService; @Resource private HomeRecommendSpecialService homeRecommendSpecialService; @RequestMapping(value = "/gethometypelist", method = RequestMethod.POST) public void getHomeTypeList(HttpSession session, PrintWriter out) { List list = homeTypeService.getHomeTypeList(SystemUtil.getAdminSelectedSystemId(session)); JSONArray array = new JSONArray(); Gson gson = new GsonBuilder().create(); for (HomeType ht : list) { ht.setHomeVideoList(null); ht.setItemTypeList(null); ht.setVideoList(null); ht.setAdmin(null); ht.setSystem(null); array.add(gson.toJson(ht)); } JSONObject object = new JSONObject(); object.put("code", 0); object.put("data", array); out.print(object); } @RequestMapping(value = "/gethometypelistadmin", method = RequestMethod.POST) public void getHomeTypeListAdmin(int page, int detailsystem, String special, String key, HttpSession session, PrintWriter out) { key = StringUtil.isNullOrEmpty(key) ? "" : key; String dataKey = null; if (special != null && !special.equalsIgnoreCase("0")) { HomeRecommendSpecial bean = homeRecommendSpecialService.getSpecial(special); if (bean != null) { dataKey = bean.getDataKey(); } } List list = homeTypeService.getHomeTypeAdmin(key, SystemUtil.getAdminSelectedSystemId(session), dataKey, detailsystem, page); //拉取标签 Map specialMap = new HashMap<>(); long count = homeTypeService.getHomeTypeAdminCount(key, SystemUtil.getAdminSelectedSystemId(session), detailsystem, dataKey); PageEntity pe = new PageEntity(); pe.setPageIndex(page); pe.setPageSize(Constant.pageCount); pe.setTotalCount((int) count); JSONArray array = new JSONArray(); Gson gson = new GsonBuilder().create(); for (HomeTypeAdmin ht : list) { String specialDataKey = ht.getHomeType().getHomeType().getSpecialDataKey(); if (specialMap.get(specialDataKey) == null) { specialMap.put(specialDataKey, homeRecommendSpecialService.getSpecialByDataKey(specialDataKey)); } ht.setSpecial(specialMap.get(specialDataKey)); JSONObject root = new JSONObject(); ht.getHomeType().getHomeType().getSystem().setAdmin(null); root.put("homeType", gson.toJson(ht.getHomeType().getHomeType())); JSONArray darray = new JSONArray(); for (DetailSystemSelect dss : ht.getDetailSystemList()) { dss.getDetailSystem().setSystem(null); darray.add(gson.toJson(dss)); } root.put("detailSystemList", darray); root.put("special", specialMap.get(specialDataKey)); array.add(root); } JSONObject data = new JSONObject(); data.put("pageEntity", gson.toJson(pe)); data.put("data", array); JSONObject object = new JSONObject(); object.put("code", 0); object.put("data", data); out.print(object); } @RequestMapping(value = "/addhomevideos", method = RequestMethod.POST) public void addHomeVideos(String videoids, String tag, String picture, String types, PrintWriter out) { List list = new ArrayList<>(); String[] videos = videoids.split(","); String[] homeTypes = types.split(","); for (String ht : homeTypes) { for (String vid : videos) { HomeVideo hv = new HomeVideo(); hv.setCreatetime(System.currentTimeMillis() + ""); if (homeTypes.length < 2 && videos.length < 2) { hv.setPicture(picture); hv.setTag(tag); } hv.setType(new HomeType(ht)); hv.setVideo(new VideoInfo(vid)); list.add(hv); } } homeTypeService.addHomeTypeVideo(list); JSONObject object = new JSONObject(); object.put("code", 0); object.put("msg", "添加成功"); out.print(object); } @RequestMapping(value = "/addhometype", method = RequestMethod.POST) public void addHomeType(@Valid HomeType homeType, String detailsystemids, BindingResult bingdingResult, HttpSession session, PrintWriter out) { if (bingdingResult.hasErrors()) {// 错误 } homeType.setCreatetime(System.currentTimeMillis() + ""); homeType.setSystem(SystemUtil.getAdminSelectedSystem(session)); Serializable id = homeTypeService.addHomeType(homeType); if (id != null && !StringUtil.isNullOrEmpty(detailsystemids)) { homeType.setId(id + ""); String[] dss = detailsystemids.split(","); for (String did : dss) { SuperHomeType sht = new SuperHomeType(); sht.setCreatetime(System.currentTimeMillis() + ""); sht.setDetailSystem(new DetailSystem(did)); sht.setHomeType(new HomeType(homeType.getId())); homeTypeService.addSuperHomeType(sht); } } if (id != null) { JSONObject object = new JSONObject(); object.put("code", 0); object.put("msg", "添加成功"); out.print(object); } else { JSONObject object = new JSONObject(); object.put("code", 1); object.put("msg", "添加失败"); out.print(object); } } @RequestMapping(value = "/updatehometype", method = RequestMethod.POST) public void updateHomeType(@Valid HomeType homeType, String detailsystemids, PrintWriter out) { homeTypeService.deleteSuperHomeTypeByType(homeType.getId()); if (!StringUtil.isNullOrEmpty(detailsystemids)) { String[] dss = detailsystemids.split(","); for (String did : dss) { SuperHomeType sht = new SuperHomeType(); sht.setCreatetime(System.currentTimeMillis() + ""); sht.setDetailSystem(new DetailSystem(did)); sht.setHomeType(new HomeType(homeType.getId())); homeTypeService.addSuperHomeType(sht); } } HomeType ht = homeTypeService.getHomeTypeById(homeType.getId()); ht.setActivity(homeType.getActivity()); ht.setColumns(homeType.getColumns()); ht.setHasMore(homeType.isHasMore()); ht.setIcon(homeType.getIcon()); ht.setIosControl(homeType.getIosControl()); ht.setName(homeType.getName()); ht.setNumber(homeType.getNumber()); ht.setOrderby(homeType.getOrderby()); ht.setParams(homeType.getParams()); // ht.setVideoType(homeType.getVideoType()); ht.setSpecialDataKey(homeType.getSpecialDataKey()); homeTypeService.updateHomeType(ht); JSONObject object = new JSONObject(); object.put("code", 0); object.put("msg", "更改成功"); out.print(object); } @RequestMapping(value = "/gethometype", method = RequestMethod.POST) public void getHomeType(long id, PrintWriter out) { HomeType ht = homeTypeService.getHomeTypeById(id + ""); ht.setSystem(null); ht.setAdmin(null); List selectList = homeTypeService.getDetailSystemSelectByType(id + ""); Gson gson = new GsonBuilder().create(); JSONObject object = new JSONObject(); object.put("code", 0); object.put("data", gson.toJson(ht)); for (DetailSystemSelect dss : selectList) { dss.getDetailSystem().setSystem(null); } object.put("detailsystemselect", gson.toJson(selectList)); out.print(object); } @RequestMapping(value = "/deletehometype", method = RequestMethod.POST) public void deleteHomeType(String ids, PrintWriter out) { String[] idStrs = ids.split(","); for (String id : idStrs) { homeTypeService.deleteHomeType(id); } JSONObject object = new JSONObject(); object.put("code", 0); object.put("msg", "删除成功"); out.print(object); } @RequestMapping(value = "/deletesuperhometype", method = RequestMethod.POST) public void deleteSuperHomeType(long id, int detailsystem, PrintWriter out) { homeTypeService.deleteHomeTypeAdmin(id + "", detailsystem + ""); JSONObject object = new JSONObject(); object.put("code", 0); object.put("msg", "删除成功"); out.print(object); } @RequestMapping(value = "/addsuperhometype", method = RequestMethod.POST) public void addSuperHomeType(long id, int detailsystem, PrintWriter out) { SuperHomeType sht = new SuperHomeType(); sht.setCreatetime(System.currentTimeMillis() + ""); sht.setDetailSystem(new DetailSystem(detailsystem + "")); sht.setHomeType(new HomeType(id + "")); homeTypeService.addSuperHomeType(sht); JSONObject object = new JSONObject(); object.put("code", 0); object.put("msg", "添加成功"); out.print(object); } @RequestMapping(value = "/gethomevideolist", method = RequestMethod.POST) public void getHomeVideoList(long id, int page, String key, PrintWriter out) { key = StringUtil.isNullOrEmpty(key) ? "" : key; List list = homeTypeService.getHomeVideoList(id + "", key, page); for (HomeVideo homeVideo : list) { homeVideo.setType(null); homeVideo.setAdmin(null); } long count = homeTypeService.getHomeVideoListCount(id + "", key); PageEntity pe = new PageEntity(); pe.setPageIndex(page); pe.setPageSize(Constant.pageCount); pe.setTotalCount((int) count); Gson gson = new GsonBuilder().create(); JSONObject data = new JSONObject(); data.put("pageEntity", gson.toJson(pe)); data.put("data", gson.toJson(list)); JSONObject object = new JSONObject(); object.put("code", 0); object.put("data", data); out.print(object); } @RequestMapping(value = "/deletehomevideo", method = RequestMethod.POST) public void deleteHomeVideo(String ids, PrintWriter out) { String[] idStrs = ids.split(","); for (String id : idStrs) { homeTypeService.deleteHomeVideo(new HomeVideo(id)); } JSONObject object = new JSONObject(); object.put("code", 0); object.put("msg", "删除成功"); out.print(object); } @RequestMapping(value = "/gethomevideo", method = RequestMethod.POST) public void getHomeVideo(long id, PrintWriter out) { HomeVideo hv = homeTypeService.getHomeVideoById(id + ""); if (hv == null) { JSONObject object = new JSONObject(); object.put("code", 1); object.put("msg", "该视频不存在"); out.print(object); } else { Gson gson = new GsonBuilder().create(); JSONObject object = new JSONObject(); object.put("code", 0); object.put("data", gson.toJson(hv)); out.print(object); } } @RequestMapping(value = "/updatehomevideo", method = RequestMethod.POST) public void updateHomeVideo(long id, String tag, String picture, String orderby, PrintWriter out) { HomeVideo hv = homeTypeService.getHomeVideoById(id + ""); if (hv == null) { JSONObject object = new JSONObject(); object.put("code", 1); object.put("msg", "该视频不存在"); out.print(object); } else { hv.setPicture(picture); hv.setTag(tag); int ob = 1; if (orderby != null) { ob = Integer.parseInt(orderby); } hv.setOrderby(ob); homeTypeService.updateHomeVideo(hv); JSONObject object = new JSONObject(); object.put("code", 0); object.put("msg", "更新成功"); out.print(object); } } }