package com.qxueyou.scc.admin.classroom.service.impl;
|
|
import java.util.List;
|
import java.util.Map;
|
|
import org.springframework.stereotype.Service;
|
|
import com.qxueyou.scc.admin.classroom.model.ClassRoom;
|
import com.qxueyou.scc.admin.classroom.service.IClassRoomService;
|
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;
|
|
@Service
|
public class ClassRoomService extends CommonAppService implements IClassRoomService {
|
|
@Override
|
public String add(ClassRoom classRoom) {
|
TraceUtils.setCreateTrace(classRoom);
|
classRoom.setStatus(ClassRoom.STATUS_PUBLISH);
|
this.insert(classRoom);
|
return classRoom.getRoomId();
|
}
|
|
@Override
|
public Result update(ClassRoom classRoom) {
|
ClassRoom newClassRoom = read(ClassRoom.class, classRoom.getRoomId());
|
|
if (newClassRoom == null) {
|
return new Result(false, "½ÌÊÒ²»´æÔÚ");
|
}
|
|
TraceUtils.setUpdateTrace(newClassRoom);
|
newClassRoom.setName(classRoom.getName());
|
newClassRoom.setAddress(classRoom.getAddress());
|
return save(newClassRoom);
|
}
|
|
@Override
|
public Result delete(String[] roomIds) {
|
Result result = new Result(true);
|
if (roomIds != null && roomIds.length > 0) {
|
String hql = "update ClassRoom set deleteFlag = true where roomId=?";
|
result = bulkUpdateInLoop(hql, roomIds);
|
}
|
return result;
|
}
|
|
@Override
|
public Result doRelease(String[] roomIds) {
|
if(roomIds==null || roomIds.length==0){
|
return new Result(false, "ûÓÐÑ¡ÔñÒª·¢²¼µÄ½ÌÊÒ");
|
}
|
|
List<ClassRoom> lstClsRoom = this.findByComplexHql("from ClassRoom where roomId in (:roomIds)",
|
CollectionUtils.newObjectMap("roomIds",roomIds), ClassRoom.class);
|
|
for (ClassRoom room : lstClsRoom) {
|
if (ExamInfo.STATUS_DRAFT != room.getStatus()) {
|
return new Result(false, "Ö»Óвݸå״̬µÄ½ÌÊÒ,²ÅÄÜ·¢²¼¡£");
|
}
|
room.setStatus(ClassRoom.STATUS_PUBLISH);
|
TraceUtils.setUpdateTrace(room);
|
save(room);
|
}
|
|
return new Result(true);
|
}
|
|
@Override
|
public Result doCancel(String[] roomIds) {
|
if(roomIds==null || roomIds.length==0){
|
return new Result(false, "ûÓÐÑ¡ÔñÒª³·»ØµÄ½ÌÊÒ");
|
}
|
|
List<ClassRoom> lstClsRoom = this.findByComplexHql("from ClassRoom where roomId in (:roomIds)",
|
CollectionUtils.newObjectMap("roomIds",roomIds), ClassRoom.class);
|
|
for (ClassRoom 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<ClassRoom> list(String keyword, Short status, Integer pageSize, Integer pageNum) {
|
StringBuffer hql = new StringBuffer(500);
|
hql.append(" from ClassRoom where name like ? and createId=? ");
|
List<Object> params = CollectionUtils.newList('%' + keyword.trim() + '%',ClientUtils.getUserId());
|
|
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, ClassRoom.class);
|
}
|
|
@Override
|
public int listCount(String keyword, Short status) {
|
StringBuffer hql = new StringBuffer(500);
|
hql.append(" from ClassRoom where name like ? and createId=? ");
|
List<Object> params = CollectionUtils.newList('%' + keyword.trim() + '%',ClientUtils.getUserId());
|
|
if(status!=null){
|
hql.append(" and status = ? ");
|
params.add(status);
|
}
|
|
hql.append(" and deleteFlag is false ");
|
|
return findCount(hql.toString(),params);
|
|
|
}
|
|
@Override
|
public ClassRoom detail(String roomId) {
|
return this.read(ClassRoom.class,roomId);
|
}
|
|
@Override
|
public List<Map<String,Object>> queryAllRoomIdAndNames(){
|
StringBuffer hql = new StringBuffer(500);
|
hql.append("select roomId as roomId,name as roomName,address as address from ClassRoom where status = :status and deleteFlag is false ");
|
|
return this.findListWithMapByHql(hql.toString(), CollectionUtils.newObjectMap("status",ClassRoom.STATUS_PUBLISH));
|
}
|
|
|
}
|