package com.yeshi.buwan.controller.admin.api; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import com.yeshi.buwan.util.SystemUtil; import net.sf.json.JSONObject; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.commons.CommonsMultipartFile; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.yeshi.buwan.domain.system.DetailSystem; import com.yeshi.buwan.domain.SuperVideoType; import com.yeshi.buwan.domain.VideoType; import com.yeshi.buwan.service.imp.ClassService; import com.yeshi.buwan.service.imp.SystemService; import com.yeshi.buwan.util.Constant; import com.yeshi.buwan.util.StringUtil; import com.yeshi.buwan.web.tag.PageEntity; @Controller @RequestMapping("admin/new/api/videoType") public class VideoTypeAdminController { @Resource private ClassService classService; @Resource private SystemService systemService; private static final String IMGPATH = "/upload/class"; @RequestMapping("videoTypeList") public void videoTypeList(int pageIndex, int detailsystem, int pid, HttpSession session, PrintWriter out) { if (pageIndex == 0) pageIndex = 1; List list = classService.getVideoTypeAdmin(SystemUtil.getAdminSelectedSystemId(session), detailsystem, pid, pageIndex); long count = classService.getVideoTypeAdminCount(detailsystem, pid); PageEntity pe = new PageEntity(); pe.setPageIndex(pageIndex); pe.setPageSize(Constant.pageCount); Map map = new HashMap(); map.put("pid", pid + ""); map.put("detailsystem", detailsystem + ""); pe.setParams(map); pe.setTotalCount((int) count); JSONObject json = new JSONObject(); json.put("code", "0"); json.put("pageEntity", pe); Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create(); json.put("videoTypeAdminList", gson.toJson(list)); out.print(json); return; } @RequestMapping("getAllVideoType") public void getAllVideoType(PrintWriter out) { List list = classService.getAllVideoType(); Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create(); JSONObject json = new JSONObject(); json.put("code", "0"); json.put("list", gson.toJson(list)); out.print(json); } @RequestMapping("setSuperVideoType") public void set(String type, String id, String icon, String detailSystem, PrintWriter out) { if ("add".equals(type)) { SuperVideoType svt = new SuperVideoType(); svt.setCreatetime(System.currentTimeMillis() + ""); svt.setDetailSystem(new DetailSystem(detailSystem)); svt.setPicture(icon.trim()); svt.setType(new VideoType(Long.parseLong(id))); classService.addSuperVideoType(svt); out.print("yes"); } else if ("delete".equals(type)) { classService.deleteVideoTypeAdmin(id, detailSystem); out.print("yes"); } } @RequestMapping("getVideoType") public void getVideoType(String id, PrintWriter out) { VideoType vt = classService.getType(Long.parseLong(id)); JSONObject json = new JSONObject(); json.put("code", "0"); json.put("videoType", vt); out.print(json); return; } @RequestMapping("updateVideoType") public void updateVideoType(String id, String orderby, String name, String beizhu, String iconFile, String iconUrl, String show, String showTitle, PrintWriter out) { VideoType vt = classService.getType(Long.parseLong(id)); vt.setOrderby(Integer.parseInt(orderby)); if (iconFile != null && !"".equals(iconFile.trim())) {// 保存图片 vt.setIcon(iconFile); } else { if (!StringUtil.isNullOrEmpty(iconUrl)) vt.setIcon(iconUrl); } vt.setName(name); vt.setBeizhu(beizhu); vt.setShow(show); vt.setShowTitle(showTitle); classService.updateType(vt); out.print("yes"); return; } @RequestMapping("addVideoType") public void addVideoType(String pid, String orderby, String name, String beizhu, String iconFile, String iconUrl, String show, String showTitle, PrintWriter out) { VideoType vt = new VideoType(); if (iconFile != null && !"".equals(iconFile.trim())) {// 保存图片 vt.setIcon(iconFile); } else { if (!StringUtil.isNullOrEmpty(iconUrl)) vt.setIcon(iconUrl); } vt.setName(name); vt.setBeizhu(beizhu); vt.setOrderby(Integer.parseInt(orderby)); vt.setShow(show); vt.setCreatetime(String.valueOf(new Date().getTime())); vt.setShowTitle(showTitle); if (!StringUtil.isNullOrEmpty(pid) && !pid.equalsIgnoreCase("0")) { vt.setParent(new VideoType(Long.parseLong(pid))); } System.out.println("vt.getIcon()--" + vt.getIcon()); classService.createType(vt); out.print("yes"); return; } @RequestMapping(value = "updateVideoTypeFile", method = RequestMethod.POST) public void updateVideoTypeFile(@RequestParam("file") CommonsMultipartFile file, HttpServletRequest request, PrintWriter out) { ServletContext servletContext = request.getSession().getServletContext(); JSONObject json = new JSONObject(); if (file != null) { String root = servletContext.getRealPath(IMGPATH); if (!new File(root).exists()) { new File(root).mkdirs(); } File newFile = new File(root + "/" + file.getOriginalFilename()); //通过CommonsMultipartFile的方法直接写文件(注意这个时候) try { file.transferTo(newFile); json.put("code", "0"); json.put("path", IMGPATH + "/" + newFile.getName()); } catch (IllegalStateException e) { e.printStackTrace(); json.put("code", "2"); } catch (IOException e) { e.printStackTrace(); json.put("code", "2"); } finally { out.print(json); } } else { json.put("code", "1"); out.print(json); } } @RequestMapping("deleteVideoType") public void deleteVideoType(String ids, PrintWriter out) { String[] idArr = ids.split(","); for (String id : idArr) { System.out.println("id==" + id); if ("310".equals(id)) { //310做特殊处理不删除 20170915 continue; } classService.deleteVideoType(id); } out.print("yes"); return; } }