package com.qxueyou.scc.admin.examroom.service.impl;
|
|
import com.qxueyou.scc.admin.examroom.model.ExamRoom;
|
import com.qxueyou.scc.admin.examroom.service.IExamRoomService;
|
import com.qxueyou.scc.base.model.Pager;
|
import com.qxueyou.scc.base.model.Result;
|
import com.qxueyou.scc.base.service.impl.CommonAppService;
|
import com.qxueyou.scc.base.util.ClientUtils;
|
import com.qxueyou.scc.base.util.CollectionUtils;
|
import com.qxueyou.scc.base.util.TraceUtils;
|
import com.qxueyou.scc.exam.model.ExamInfo;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.stereotype.Service;
|
|
import java.util.List;
|
import java.util.Map;
|
|
@Service
|
public class ExamRoomService extends CommonAppService implements IExamRoomService {
|
|
@Override
|
public String add(ExamRoom examRoom) {
|
TraceUtils.setCreateTrace(examRoom);
|
examRoom.setStatus(ExamRoom.STATUS_PUBLISH);
|
this.insert(examRoom);
|
return examRoom.getExamroomId();
|
}
|
|
@Override
|
public Result update(ExamRoom examRoom) {
|
ExamRoom newExamRoom = read(ExamRoom.class, examRoom.getExamroomId());
|
|
if (newExamRoom == null) {
|
return new Result(false, "考场不存在");
|
}
|
|
TraceUtils.setUpdateTrace(newExamRoom);
|
newExamRoom.setExamroomName(examRoom.getExamroomName());
|
newExamRoom.setSeatsNum(examRoom.getSeatsNum());
|
return save(newExamRoom);
|
}
|
|
@Override
|
public Result delete(String[] examroomIds) {
|
Result result = new Result(true);
|
if (examroomIds != null && examroomIds.length > 0) {
|
String hql = "update ExamRoom set deleteFlag = true where examroomId=?";
|
result = bulkUpdateInLoop(hql, examroomIds);
|
}
|
return result;
|
}
|
|
@Override
|
public Result doRelease(String[] examroomIds) {
|
if(examroomIds==null || examroomIds.length==0){
|
return new Result(false, "没有选择要发布的考场");
|
}
|
|
List<ExamRoom> lstClsRoom = this.findByComplexHql("from ExamRoom where examroomId in (:examroomIds)",
|
CollectionUtils.newObjectMap("examroomIds",examroomIds), ExamRoom.class);
|
|
for (ExamRoom room : lstClsRoom) {
|
if (ExamInfo.STATUS_DRAFT != room.getStatus()) {
|
return new Result(false, "只有草稿状态的考场,才能发布。");
|
}
|
room.setStatus(ExamRoom.STATUS_PUBLISH);
|
TraceUtils.setUpdateTrace(room);
|
save(room);
|
}
|
|
return new Result(true);
|
}
|
|
@Override
|
public Result doCancel(String[] examroomIds) {
|
if(examroomIds==null || examroomIds.length==0){
|
return new Result(false, "没有选择要撤回的考场");
|
}
|
|
List<ExamRoom> lstClsRoom = this.findByComplexHql("from ExamRoom where examroomId in (:examroomIds)",
|
CollectionUtils.newObjectMap("examroomIds",examroomIds), ExamRoom.class);
|
|
for (ExamRoom room : lstClsRoom) {
|
if (ExamInfo.STATUS_PUBLISH != room.getStatus()) {
|
return new Result(false, "只有发布状态的 考场,才能撤回");
|
}
|
room.setStatus(ExamInfo.STATUS_DRAFT);
|
TraceUtils.setUpdateTrace(room);
|
save(room);
|
}
|
return new Result(true);
|
}
|
|
@Override
|
public List<ExamRoom> list(String roomID, String keyword, Short status, Integer pageSize, Integer pageNum) {
|
StringBuffer hql = new StringBuffer(500);
|
//判断是否是教师
|
String teacherId = ClientUtils.isAdmin() ? null : ClientUtils.getUserId();
|
hql.append(" from ExamRoom where roomId =? ");
|
List<Object> params = CollectionUtils.newList(roomID);
|
if (StringUtils.isNotBlank(teacherId)) {
|
hql.append(" and createId=?");
|
params.add(teacherId);
|
}
|
if(status!=null){
|
hql.append(" and status = ? ");
|
params.add(status);
|
}
|
|
hql.append(" and deleteFlag is false order by createTime desc");
|
|
return findList(hql.toString(),new Pager(pageSize, pageNum),params, ExamRoom.class);
|
}
|
|
@Override
|
public int listCount(String roomID, String keyword, Short status) {
|
StringBuffer hql = new StringBuffer(500);
|
//判断是否是教师
|
String teacherId = ClientUtils.isAdmin() ? null : ClientUtils.getUserId();
|
hql.append(" from ExamRoom where roomId =? ");
|
List<Object> params = CollectionUtils.newList(roomID);
|
|
if(status!=null){
|
hql.append(" and status = ? ");
|
params.add(status);
|
}
|
if (StringUtils.isNotBlank(teacherId)) {
|
hql.append(" and createId=?");
|
params.add(teacherId);
|
}
|
/**
|
*
|
*/
|
hql.append(" and deleteFlag is false ");
|
|
return findCount(hql.toString(),params);
|
|
|
}
|
|
@Override
|
public ExamRoom detail(String roomId) {
|
return this.read(ExamRoom.class,roomId);
|
}
|
|
@Override
|
public List<Map<String,Object>> queryAllRoomIdAndNames(){
|
StringBuffer hql = new StringBuffer(500);
|
hql.append("select examroomId as examroomId,examroomName as examroomName from ExamRoom where status = :status and deleteFlag is false ");
|
|
return this.findListWithMapByHql(hql.toString(), CollectionUtils.newObjectMap("status", ExamRoom.STATUS_PUBLISH));
|
}
|
|
|
}
|