package com.qxueyou.scc.controller;
|
|
import java.util.List;
|
import java.util.Map;
|
|
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import com.qxueyou.scc.admin.teacher.service.ITeacherService;
|
import com.qxueyou.scc.base.model.Pager;
|
import com.qxueyou.scc.base.model.Result;
|
import com.qxueyou.scc.base.util.ClientUtils;
|
import com.qxueyou.scc.base.util.CollectionUtils;
|
import com.qxueyou.scc.base.util.QBeanUtils;
|
import com.qxueyou.scc.teach.res.service.IFileService;
|
import com.qxueyou.scc.teach.subject.model.Subject;
|
import com.qxueyou.scc.teach.subject.service.ISubjectService;
|
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
|
/**
|
* ¿Î³Ì¹ÜÀí¿ØÖÆÆ÷
|
*
|
* @author chenjunliang
|
*
|
*/
|
@Api(tags = "¿Î³Ì¹ÜÀí-½Ìʦ¶Ë")
|
@RestController
|
@RequestMapping(value = "/teach/subject")
|
public class SubjectController {
|
|
@Autowired
|
ISubjectService subjectService;
|
|
@Autowired
|
IFileService fileService;
|
|
@Autowired
|
private ITeacherService teacherService;
|
|
/**-------------------------------------------------------------------app½Ó¿Ú------------------------------------------------------------------------------------------**/
|
|
/**
|
* ¿Î³Ì¹ÜÀíÁбí
|
*
|
* @param keyword
|
* Ë÷Ëѹؼü×Ö
|
* @param limit
|
* ÏÔʾ¼¸Ìõ
|
* @param pageNum
|
* µ±Ç°Ò³Âë
|
* @param status
|
* ״̬
|
*/
|
@ApiOperation(value = "»ñÈ¡ÁбíÊý¾Ý-½Ìʦ¶Ë", notes = "")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "status", value = "״̬", required = false, paramType="query", dataType = "String"),
|
@ApiImplicitParam(name = "type", value = "ÀàÐÍ(1:°à¼¶¿Î³Ì,3:¹«¿ª¿Î³Ì)", required = false, paramType="query", dataType = "Integer")
|
})
|
@GetMapping(value = "/app/teacherSubjectList")
|
public Result list(Pager pager, @RequestParam(defaultValue="")String keyword, String status, Integer type) {
|
if(type == null) {
|
return new Result(false, "²ÎÊý´íÎó");
|
}
|
return subjectService.teacherSubjectList(pager, keyword, status, type);
|
}
|
|
/**-------------------------------------------------------------------ºó¶Ë½Ó¿Ú------------------------------------------------------------------------------------------**/
|
|
/**
|
* ¿Î³Ì¹ÜÀíÁбí
|
*
|
* @param keyword
|
* Ë÷Ëѹؼü×Ö
|
* @param limit
|
* ÏÔʾ¼¸Ìõ
|
* @param pageNum
|
* µ±Ç°Ò³Âë
|
* @param status
|
* ״̬
|
*/
|
@GetMapping(value = "/list")
|
public Result list(String keyword,String status,Integer type, Integer limit, Integer pageNum) {
|
|
String teacherId = ClientUtils.isAdmin() ? null : ClientUtils.getUserId();
|
|
List<Subject> lst = subjectService.list(keyword, teacherId, status, type, limit, pageNum);
|
|
int count = subjectService.listCount(keyword, teacherId, status,type);
|
|
return new Result(true, "success", CollectionUtils.newObjectMap("subjectLst",
|
QBeanUtils.listBean2ListMap(lst,
|
CollectionUtils.newStringMap("name", "subjectName", "subjectId", "subjectId","type","type", "status",
|
"status", "updateTime", "updateTime", "lectureCount", "lectureCount")),
|
|
"subjectCount", count));
|
}
|
|
/**
|
* ¿Î³Ì¹ÜÀíÁбí
|
*
|
* @param keyword
|
* Ë÷Ëѹؼü×Ö
|
* @param limit
|
* ÏÔʾ¼¸Ìõ
|
* @param pageNum
|
* µ±Ç°Ò³Âë
|
* @param status
|
* ״̬
|
*/
|
@GetMapping(value = "/listAllSimple")
|
public Result listAllSimple() {
|
|
List<Subject> lst = subjectService.list("", null, "1", null,1000, 1);
|
|
return new Result(true, "success", QBeanUtils.listBean2ListMap(lst,
|
CollectionUtils.newStringMap("name", "subjectName", "subjectId", "subjectId")));
|
}
|
|
/**
|
* ¿Î³Ì·¢²¼
|
* a
|
* @param ¿Î³Ìids
|
*/
|
@GetMapping(value = "/release")
|
public Result release(String subjectIds) {
|
|
return subjectService.doRelease(subjectIds.split(","));
|
|
}
|
|
/**
|
* ¿Î³ÌϼÜ
|
*
|
* @param subjectIds
|
* ¿Î³Ìids
|
*/
|
@GetMapping(value = "/soldOut")
|
public Result soldOut(String subjectIds) {
|
return subjectService.doCancel(subjectIds.split(","));
|
}
|
|
/**
|
* ¿Î³Ìɾ³ý
|
*
|
* @param subjectIds
|
* ¿Î³Ìids
|
*/
|
@GetMapping(value = "/delete")
|
public Result delete(String subjectIds) {
|
return subjectService.delete(subjectIds.split(","));
|
}
|
|
/**
|
* ¸´ÖƿγÌ
|
*
|
* @param subjectId
|
* ¿Î³Ìid
|
* @param subjectName
|
* ¿Î³ÌÃû³Æ
|
* @param imgPath
|
* ͼƬurl
|
* @param content
|
* ¿Î³Ì½éÉÜ
|
*/
|
@PostMapping(value = "/copy")
|
public Result copy(String subjectId, String subjectName, String imgPath, String content,int type) {
|
return add(subjectName, imgPath, content,type);
|
}
|
|
/**
|
* ÐÂÔö¿Î³Ì
|
*
|
* @param subjectName
|
* ¿Î³ÌÃû³Æ
|
* @param imgPath
|
* ͼƬurl
|
* @param content
|
* ¿Î³Ì½éÉÜ
|
* @return
|
*/
|
@PostMapping(value = "/add")
|
public Result add(String subjectName, String imgPath, String content,int type) {
|
String contentFileId = null;
|
|
if(StringUtils.isNotEmpty(content)){
|
Result fileResult = fileService.doUpload(IOUtils.toInputStream(content), subjectName + ".data");
|
contentFileId = fileResult.getDataT("fileId");
|
}
|
|
String coverPageFileId = null;
|
|
if (StringUtils.isNotBlank(imgPath)) {
|
coverPageFileId = fileService.readIdByPath(imgPath);
|
}
|
|
return subjectService.add(subjectName, coverPageFileId,contentFileId,type);
|
}
|
|
/**
|
* ÐÂÔöÁ·Ï°
|
*
|
* @param name
|
* ÌâÄ¿Ãû³Æ
|
* @param type
|
* Ìâ¿âÀàÐÍ
|
* @param difficulty
|
* ÄѶÈϵÊý
|
* @param repeatFlag
|
* ÊÇ·ñÖØ¸´
|
* @return
|
*/
|
@PostMapping(value = "addExercise")
|
public Result addOrgExercise(String name, Integer type, Integer difficulty, Boolean repeatFlag) {
|
return new Result(true, "success");
|
}
|
|
/**
|
* ¸üпγÌ
|
*
|
* @param subjectId
|
* ¿Î³Ìid
|
* @param subjectName
|
* ¿Î³ÌÃû³Æ
|
* @param imgPath
|
* ͼƬurl
|
* @param content
|
* ¿Î³Ì½éÉÜ
|
*/
|
@PostMapping(value = "/update")
|
public Result update(String subjectId, String subjectName, String imgPath, String content,int type) {
|
String contentFileId = null;
|
|
if(StringUtils.isNotEmpty(content)){
|
Result fileResult = fileService.doUpload(IOUtils.toInputStream(content), subjectName + ".data");
|
contentFileId = fileResult.getDataT("fileId");
|
}
|
|
String coverPageFileId = null;
|
if (StringUtils.isNotBlank(imgPath)) {
|
coverPageFileId = fileService.readIdByPath(imgPath);
|
}
|
|
return subjectService.update(subjectId, subjectName, coverPageFileId, contentFileId,type);
|
}
|
|
/**
|
* ¸üпγ̻ñÈ¡¿Î³ÌÄÚÈÝ
|
*
|
* @param subjectId
|
* ¿Î³Ìid
|
*/
|
@ApiOperation(value = "»ñÈ¡¿Î³ÌÏêÇé-½Ìʦ¶Ë", notes = "")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "subjectId", value = "¿Î³Ìid", required = false, paramType="query", dataType = "String")
|
})
|
@GetMapping(value = "getSubjectDetail")
|
public Result getSubjectDetail(String subjectId) {
|
|
Map<String, Object> result = QBeanUtils.bean2Map(subjectService.read(subjectId), CollectionUtils
|
.newStringMap("name", "subjectName",
|
"subjectId", "subjectId",
|
"type","type",
|
"coverPageUrl", "imgPath",
|
"teacherId","teacherId",
|
"teacherName","teacherName",
|
"schoolYear","schoolYear",
|
"createTime","createTime",
|
"creator","creator",
|
"term","term"));
|
|
result.put("reSubjects",this.subjectService.querySubjectReClassInfos(subjectId));
|
result.put("content", subjectService.readSubjectContent(subjectId));
|
result.put("lectureCount", subjectService.getLectureCount(subjectId));
|
return new Result(true, "success", result);
|
}
|
|
|
/**
|
* »ñÈ¡¿ÉÓÿγÌÏÂÀÁбí½Ó¿Ú
|
*
|
* @param examId
|
* @return
|
*/
|
@RequestMapping(value = "/selectlist", method = RequestMethod.GET)
|
public @ResponseBody List<Map<String,Object>> subjectList(Integer subjectType) {
|
//ÅжÏÊÇ·ñÊǽÌʦ
|
String teacherId = ClientUtils.isAdmin() ? null : teacherService.getTeacherIdByUserId(ClientUtils.getUserId());
|
|
if(subjectType==null){
|
subjectType= Subject.TYPE_ORG_SUBJECT;
|
}
|
|
return this.subjectService.queryAvailableSubjectIdAndName(teacherId,subjectType);
|
}
|
|
|
}
|