package cn.efunbox.audio.controller; import cn.efunbox.audio.consts.Status; import cn.efunbox.audio.entity.Channel; import cn.efunbox.audio.entity.Grouping; import cn.efunbox.audio.entity.Record; import cn.efunbox.audio.entity.Rights; import cn.efunbox.audio.service.*; import cn.efunbox.audio.utils.ApiCode; import cn.efunbox.audio.utils.Common; import cn.efunbox.audio.utils.HttpUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.sql.Timestamp; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Created by yao on 17-9-26. */ @RestController @Slf4j @RequestMapping(value = "/rights") public class RightsController { @Autowired RightsService rightsService; @Autowired ChannelService channelService; @Autowired GroupingService groupingService; @Autowired AdminService adminService; @Autowired TrailService trailService; @RequestMapping(value = "/search" ,method = RequestMethod.POST) public void Search(HttpServletRequest request, HttpServletResponse response){ String idRights = request.getParameter("idRights"); String idChannel = request.getParameter("idChannel"); String idGroup = request.getParameter("idGroup"); String page = request.getParameter("page"); String size = request.getParameter("size"); if(page==null || page.length()<1) page = "0"; if(size==null || size.length()<1) size = "0"; // if(idRights==null && idChannel==null && idGroup==null){ // HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR); // return; // } Map map = new HashMap<>(); List list = null; Page pageRes = null; if(idRights!=null && idRights.length()>0) list = rightsService.SearchById(Long.valueOf(idRights)); else if(idChannel!=null && idChannel.length()>0 && idGroup!=null && idGroup.length()>0) list = rightsService.SearchByIdChannelAndIdGroup(Long.valueOf(idChannel), Long.valueOf(idGroup)); else if(idChannel!=null && idChannel.length()>0) pageRes = rightsService.SearchByIdChannel(Long.valueOf(idChannel), Integer.valueOf(page), Integer.valueOf(size)); else if(idGroup!=null && idGroup.length()>0) pageRes = rightsService.SearchByIdGroup(Long.valueOf(idGroup), Integer.valueOf(page), Integer.valueOf(size)); else pageRes = rightsService.SearchAll(Integer.valueOf(page), Integer.valueOf(size)); // if(list==null || list.size()<1){ // HttpUtil.responseApiCode(request, response, ApiCode.NOT_FOUND); // return; // } if(list!=null){ map.put("data", list); map.put("size", list.size()); map.put("total", list.size()); }else if(pageRes!=null){ map.put("data", pageRes.getContent()); map.put("size", pageRes.getNumberOfElements()); map.put("total", pageRes.getTotalElements()); } HttpUtil.responseOkData(request, response, map); return; } // @RequestMapping(value = "/insert", method = RequestMethod.POST) // public void Insert(HttpServletRequest request, HttpServletResponse response){ // String idChannel = request.getParameter("idChannel"); // String idGroup = request.getParameter("idGroup"); // if(idChannel==null || idGroup==null){ // HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR); // return; // } // // List list = rightsService.SearchByIdChannelAndIdGroup(Long.valueOf(idChannel), Long.valueOf(idGroup)); // if(list!=null && list.size()>0){ // HttpUtil.responseApiCode(request, response, ApiCode.RECORD_EXIST); // return; // } // List cList = channelService.SearchById(Long.valueOf(idChannel)); // List gList = groupingService.SearchById(Long.valueOf(idGroup)); // if(cList==null || cList.size()<1 || gList==null || gList.size()<1){ // HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR); // return; // } // Rights rights = new Rights(); // rights.setIdChannel(cList.get(0).getId()); // rights.setNameChannel(cList.get(0).getName()); // rights.setIdGroup(gList.get(0).getId()); // rights.setNameGroup(gList.get(0).getName()); // rights = rightsService.Insert(rights); // // HttpUtil.responseOutWithJson(request, response, rights); // return; // } @RequestMapping(value = "/insert", method = RequestMethod.POST) public void Insert(HttpServletRequest request, HttpServletResponse response, @RequestBody Rights rights){ if(rights.getIdChannel()==null || rights.getIdGroup()==null){ HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR); return; } List list = rightsService.SearchByIdChannelAndIdGroup(rights.getIdChannel(), rights.getIdGroup()); if(list!=null && list.size()>0){ HttpUtil.responseApiCode(request, response, ApiCode.RECORD_EXIST); return; } List cList = channelService.SearchById(rights.getIdChannel()); List gList = groupingService.SearchById(rights.getIdGroup()); if(cList==null || cList.size()<1 || gList==null || gList.size()<1){ HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR); return; } rights.setNameChannel(cList.get(0).getName()); rights.setNameGroup(gList.get(0).getName()); rights.setStatus(Status.ONLINE.getCode()); rights.setCreated(new Timestamp(new Date().getTime())); rights = rightsService.Insert(rights); TrailController.Insert(adminService, trailService, request, "rights", rights.getId(), " 新建渠道对资源的访问权限:" + rights.getNameChannel()+",资源:"+rights.getNameGroup()); HttpUtil.responseOkData(request, response, rights); return; } @RequestMapping(value = "/update", method = RequestMethod.POST) public void Update(HttpServletRequest request, HttpServletResponse response, @RequestBody Rights rights){ Rights rightsOld = rightsService.GetOne(rights.getId()); if(rightsOld==null){ HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR); return; } rights = (Rights) Common.CopyValue(rights, rightsOld); rights = rightsService.Insert(rights); TrailController.Insert(adminService, trailService, request, "rights", rights.getId(), " 更新渠道对资源的访问权限:" + rights.getNameChannel()+",资源:"+rights.getNameGroup()); HttpUtil.responseOkData(request, response, rights); return; } @RequestMapping(value = "/delete", method = RequestMethod.POST) public void Delete(HttpServletRequest request, HttpServletResponse response){ String idRights = request.getParameter("idRights"); rightsService.Delete(Long.valueOf(idRights)); TrailController.Insert(adminService, trailService, request, "rights", Long.valueOf(idRights), " 删除渠道对资源的访问权限:" + idRights); HttpUtil.responseOk(request, response); return; } }