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<ClassRoom> list = classRoomService.list(keyword == null ? "" : keyword.trim(),status,pageSize,pageNum);
|
|
List<Map<String, Object>> 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<Object> 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<Map<String,Object>> listResult = this.classRoomService.queryAllRoomIdAndNames();
|
return new Result(true,"",CollectionUtils.newObjectMap("listRooms",listResult));
|
}
|
|
|
}
|