package com.qxueyou.scc.controller; import java.util.List; import java.util.Map; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; 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.ResponseBody; import org.springframework.web.bind.annotation.RestController; import com.qxueyou.scc.admin.classroom.model.ClassRoom; import com.qxueyou.scc.admin.classroom.service.IClassRoomService; import com.qxueyou.scc.base.dao.CommonDAO; import com.qxueyou.scc.base.model.Pager; import com.qxueyou.scc.base.model.Result; import com.qxueyou.scc.base.service.ICommonService; import com.qxueyou.scc.base.util.CollectionUtils; import com.qxueyou.scc.base.util.QBeanUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; @Api(tags = "教室管理") @RestController @RequestMapping(value = "admin/classroom") public class ClassRoomController { //日志 private final Logger log = LogManager.getLogger(ClassRoomController.class); // 分页查询中,默认记录条数和页数 private static final int DEFAULT_PAGE_SIZE = 10; private static final int DEFAULT_PAGE_NUM = 1; @Autowired private IClassRoomService classRoomService; @Autowired private CommonDAO commonDAO; /** * 课表列表 */ @ApiOperation(value = "获取教室列表") @RequestMapping(value = "list", method = RequestMethod.GET) public @ResponseBody Result list(String keyword,Short status,Integer pageSize,Integer pageNum) { pageSize = pageSize != null && pageSize > 0 ? pageSize : DEFAULT_PAGE_SIZE; pageNum = pageNum != null && pageNum > 0 ? pageNum : DEFAULT_PAGE_NUM; //总考试数量 int totalCount = classRoomService.listCount(keyword, status); Pager pager = new Pager(pageSize,pageNum); pager.setTotalCount(totalCount); List list = classRoomService.list(keyword == null ? "" : keyword.trim(),status,pageSize,pageNum); List> listResult =QBeanUtils.listBean2ListMap(list, CollectionUtils.newStringMap("roomId", "roomId", "name", "name", "address", "address", "status","status","creator", "creator", "updateTime", "updateTime")); return new Result(true,"",CollectionUtils.newObjectMap("examList",listResult,"page",pager)); } /** * 保存 * @param classRoom * @return */ @ApiOperation(value = "保存教室") @RequestMapping(value = "/save", method = RequestMethod.POST) public @ResponseBody Result save(@RequestBody ClassRoom classRoom) { if(checkIsDumplicate(classRoom.getRoomId(),classRoom.getName(),classRoom.getAddress())){ return new Result(false, "添加失败!重复的教室信息"); } if (StringUtils.isEmpty(classRoom.getRoomId())) { return new Result(true,"",CollectionUtils.newObjectMap("roomId", classRoomService.add(classRoom))); } else { return classRoomService.update(classRoom); } } private boolean checkIsDumplicate(String roomId,String name,String address){ if(StringUtils.isEmpty(name) || StringUtils.isEmpty(address)){ return false; } StringBuffer hql = new StringBuffer(500); hql.append("from ClassRoom r where r.name=? and r.address=?"); List args = CollectionUtils.newList(name,address); if(StringUtils.isNotEmpty(roomId)){ hql.append(" and roomId!=?"); args.add(roomId); } hql.append(" and r.deleteFlag is false"); int count = commonDAO.findCount(hql.toString(), args); return count>0; } /** * 删除 * * @param examIds * @return */ @ApiOperation(value = "删除教室", httpMethod = "GET") @ApiImplicitParam(name = "roomIds", value = "教室ID字符串", required = true, dataType = "String", paramType = "body") @RequestMapping(value = "delete", method = RequestMethod.GET) public @ResponseBody Result delete(String roomIds) { Result result = new Result(true); if (StringUtils.isNotEmpty(roomIds)) { result = classRoomService.delete(roomIds.split(",")); } return result; } /** * 发布教室 * * @param scheduleIds * @return */ @ApiOperation(value = "发布教室", httpMethod = "GET") @RequestMapping(value = "/publish", method = RequestMethod.GET) public @ResponseBody Result publish(String roomIds) { if (StringUtils.isEmpty(roomIds)) { return new Result(false, "参数错误"); } return this.classRoomService.doRelease(roomIds.split(",")); } /** * 撤回发布的教室 * * @param scheduleIds * @return */ @ApiOperation(value = "撤回教室", httpMethod = "GET") @RequestMapping(value = "/cancel", method = RequestMethod.GET) public @ResponseBody Result cancel(String roomIds) { if (StringUtils.isEmpty(roomIds)) { return new Result(false, "参数错误"); } return this.classRoomService.doCancel(roomIds.split(",")); } /** * 详情页面数据 * * @param examId * @return */ @ApiOperation(value = "详情页面数据") @ApiImplicitParams({ @ApiImplicitParam(name="roomId", dataType="String", paramType="query", value="教室ID", required=true), }) @RequestMapping(value = "/detail", method = RequestMethod.GET) public @ResponseBody Result detail(String roomId) { return new Result(true,"",CollectionUtils.newObjectMap("detail",this.classRoomService.detail(roomId))); } /** *查询所有教室的ID和名称 * * @param scheduleIds * @return */ @ApiOperation(value = "可选择教室ID和名称") @RequestMapping(value = "/allRoomIdAndNames", method = RequestMethod.GET) public @ResponseBody Result listClassRoomIdAndNames() { List> listResult = this.classRoomService.queryAllRoomIdAndNames(); return new Result(true,"",CollectionUtils.newObjectMap("listRooms",listResult)); } }