123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853 |
- package com.qxgmat.controller.admin;
- import com.alibaba.fastjson.JSONObject;
- import com.github.pagehelper.Page;
- import com.nuliji.tools.*;
- import com.nuliji.tools.exception.ParameterException;
- import com.qxgmat.data.constants.enums.ExperienceDayRange;
- import com.qxgmat.data.constants.enums.ExperienceScoreRange;
- import com.qxgmat.data.constants.enums.module.CourseModule;
- import com.qxgmat.data.constants.enums.module.ProductType;
- import com.qxgmat.data.constants.enums.status.AnswerStatus;
- import com.qxgmat.data.constants.enums.status.DirectionStatus;
- import com.qxgmat.data.constants.enums.trade.RecordSource;
- import com.qxgmat.data.constants.enums.user.DataType;
- import com.qxgmat.data.constants.enums.user.MoneyRange;
- import com.qxgmat.data.dao.entity.*;
- import com.qxgmat.data.relation.entity.CourseNoStatRelation;
- import com.qxgmat.data.relation.entity.CourseStudentNumberRelation;
- import com.qxgmat.dto.admin.extend.*;
- import com.qxgmat.dto.admin.request.*;
- import com.qxgmat.dto.admin.response.*;
- import com.qxgmat.help.ShiroHelp;
- import com.qxgmat.service.ManagerService;
- import com.qxgmat.service.UsersService;
- import com.qxgmat.service.extend.CourseExtendService;
- import com.qxgmat.service.extend.MessageExtendService;
- import com.qxgmat.service.extend.OrderFlowService;
- import com.qxgmat.service.extend.ToolsService;
- import com.qxgmat.service.inline.*;
- import com.qxgmat.task.AsyncTask;
- import io.swagger.annotations.ApiOperation;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.validation.annotation.Validated;
- import org.springframework.web.bind.annotation.*;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpSession;
- import java.math.BigDecimal;
- import java.util.Collection;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- @RestController("AdminClassController")
- @RequestMapping("/admin/course")
- public class CourseController {
- @Autowired
- private ShiroHelp shiroHelp;
- @Autowired
- private CourseService courseService;
- @Autowired
- private CourseNoService courseNoService;
- @Autowired
- private CoursePackageService coursePackageService;
- @Autowired
- private CourseDataService courseDataService;
- @Autowired
- private CourseDataHistoryService courseDataHistoryService;
- @Autowired
- private CourseExperienceService courseExperienceService;
- @Autowired
- private CourseTeacherService courseTeacherService;
- @Autowired
- private CourseTimeService courseTimeService;
- @Autowired
- private PreviewPaperService previewPaperService;
- @Autowired
- private PreviewAssignService previewAssignService;
- @Autowired
- private UserAskCourseService userAskCourseService;
- @Autowired
- private ManagerLogService managerLogService;
- @Autowired
- private ManagerService managerService;
- @Autowired
- private UsersService usersService;
- @Autowired
- private UserOrderRecordService userOrderRecordService;
- @Autowired
- private UserCourseRecordService userCourseRecordService;
- @Autowired
- private CourseExtendService courseExtendService;
- @Autowired
- private OrderFlowService orderFlowService;
- @Autowired
- private ToolsService toolsService;
- @Autowired
- private MessageExtendService messageExtendService;
- @Autowired
- private AsyncTask asyncTask;
- @RequestMapping(value = "/add", method = RequestMethod.POST)
- @ApiOperation(value = "添加课程", httpMethod = "POST")
- public Response<Course> add(@RequestBody @Validated Course dto, HttpServletRequest request) {
- Course entity = Transform.convert(dto, Course.class);
- entity = courseService.add(entity);
- managerLogService.log(request);
- return ResponseHelp.success(Transform.convert(entity, Course.class));
- }
- @RequestMapping(value = "/edit", method = RequestMethod.PUT)
- @ApiOperation(value = "编辑课程", httpMethod = "PUT")
- public Response<Boolean> edit(@RequestBody @Validated Course dto, HttpServletRequest request) {
- Course entity = Transform.convert(dto, Course.class);
- entity = courseService.edit(entity);
- managerLogService.log(request);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/delete", method = RequestMethod.DELETE)
- @ApiOperation(value = "删除课程", httpMethod = "DELETE")
- public Response<Boolean> delete(@RequestParam int id, HttpServletRequest request) {
- Course entity = courseService.get(id);
- courseService.delete(id);
- managerLogService.log(request);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/detail", method = RequestMethod.GET)
- @ApiOperation(value = "获取课程", httpMethod = "GET")
- public Response<Course> detail(@RequestParam int id,HttpSession session) {
- Course entity = courseService.get(id);
- return ResponseHelp.success(Transform.convert(entity, Course.class));
- }
- @RequestMapping(value = "/list", method = RequestMethod.GET)
- @ApiOperation(value = "课程列表", httpMethod = "GET")
- public Response<PageMessage<CourseListDto>> list(
- @RequestParam(required = false, defaultValue = "1") int page,
- @RequestParam(required = false, defaultValue = "100") int size,
- @RequestParam(required = false) Integer[] ids,
- @RequestParam(required = false) String keyword,
- @RequestParam(required = false) String courseModule,
- @RequestParam(required = false) Integer structId,
- @RequestParam(required = false) Boolean excludeVs,
- @RequestParam(required = false) Boolean excludeOnline,
- @RequestParam(required = false, defaultValue = "id") String order,
- @RequestParam(required = false, defaultValue = "desc") String direction,
- HttpSession session) {
- Page<Course> p;
- if (ids != null && ids.length > 0){
- p = courseService.select(ids);
- }else{
- p = courseService.listAdmin(page, size, keyword, CourseModule.ValueOf(courseModule), structId, excludeVs, excludeOnline, order, DirectionStatus.ValueOf(direction));
- }
- List<CourseListDto> pr = Transform.convert(p, CourseListDto.class);
- return ResponseHelp.success(pr, page, size, p.getTotal());
- }
- @RequestMapping(value = "/package/add", method = RequestMethod.POST)
- @ApiOperation(value = "添加套餐", httpMethod = "POST")
- public Response<CoursePackage> addPackage(@RequestBody @Validated CoursePackageDto dto, HttpServletRequest request) {
- CoursePackage entity = Transform.dtoToEntity(dto);
- entity = coursePackageService.add(entity);
- managerLogService.log(request);
- return ResponseHelp.success(Transform.convert(entity, CoursePackage.class));
- }
- @RequestMapping(value = "/package/edit", method = RequestMethod.PUT)
- @ApiOperation(value = "编辑套餐", httpMethod = "PUT")
- public Response<Boolean> editPackage(@RequestBody @Validated CoursePackageDto dto, HttpServletRequest request) {
- CoursePackage entity = Transform.dtoToEntity(dto);
- entity = coursePackageService.edit(entity);
- managerLogService.log(request);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/package/delete", method = RequestMethod.DELETE)
- @ApiOperation(value = "删除套餐", httpMethod = "DELETE")
- public Response<Boolean> deletePackage(@RequestParam int id, HttpServletRequest request) {
- coursePackageService.delete(id);
- managerLogService.log(request);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/package/detail", method = RequestMethod.GET)
- @ApiOperation(value = "获取套餐", httpMethod = "GET")
- public Response<CoursePackage> detailPackage(@RequestParam int id,HttpSession session) {
- CoursePackage entity = coursePackageService.get(id);
- return ResponseHelp.success(Transform.convert(entity, CoursePackage.class));
- }
- @RequestMapping(value = "/package/list", method = RequestMethod.GET)
- @ApiOperation(value = "套餐列表", httpMethod = "GET")
- public Response<PageMessage<CoursePackage>> listPackage(
- @RequestParam(required = false, defaultValue = "1") int page,
- @RequestParam(required = false, defaultValue = "100") int size,
- @RequestParam(required = false) String keyword,
- @RequestParam(required = false, defaultValue = "id") String order,
- @RequestParam(required = false, defaultValue = "desc") String direction,
- HttpSession session) {
- Page<CoursePackage> p = coursePackageService.listAdmin(page, size, keyword, order, DirectionStatus.ValueOf(direction));
- List<CoursePackage> pr = Transform.convert(p, CoursePackage.class);
- return ResponseHelp.success(pr, page, size, p.getTotal());
- }
- @RequestMapping(value = "/data/add", method = RequestMethod.POST)
- @ApiOperation(value = "添加资料", httpMethod = "POST")
- public Response<CourseData> addData(@RequestBody @Validated CourseDataDto dto, HttpServletRequest request) {
- CourseData entity = Transform.dtoToEntity(dto);
- entity = courseDataService.add(entity);
- managerLogService.log(request);
- return ResponseHelp.success(Transform.convert(entity, CourseData.class));
- }
- @RequestMapping(value = "/data/edit", method = RequestMethod.PUT)
- @ApiOperation(value = "编辑资料", httpMethod = "PUT")
- public Response<Boolean> editData(@RequestBody @Validated CourseDataDto dto, HttpServletRequest request) {
- CourseData entity = Transform.dtoToEntity(dto);
- entity = courseDataService.edit(entity);
- managerLogService.log(request);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/data/delete", method = RequestMethod.DELETE)
- @ApiOperation(value = "删除资料", httpMethod = "DELETE")
- public Response<Boolean> deleteData(@RequestParam int id, HttpServletRequest request) {
- courseDataService.delete(id);
- managerLogService.log(request);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/data/detail", method = RequestMethod.GET)
- @ApiOperation(value = "获取资料", httpMethod = "GET")
- public Response<CourseData> detailData(@RequestParam int id,HttpSession session) {
- CourseData entity = courseDataService.get(id);
- return ResponseHelp.success(Transform.convert(entity, CourseData.class));
- }
- @RequestMapping(value = "/data/list", method = RequestMethod.GET)
- @ApiOperation(value = "资料列表", httpMethod = "GET")
- public Response<PageMessage<CourseData>> listData(
- @RequestParam(required = false, defaultValue = "1") int page,
- @RequestParam(required = false, defaultValue = "100") int size,
- @RequestParam(required = false) String keyword,
- @RequestParam(required = false) Integer structId,
- @RequestParam(required = false) String dataType,
- @RequestParam(required = false, defaultValue = "id") String order,
- @RequestParam(required = false, defaultValue = "desc") String direction,
- HttpSession session) {
- Page<CourseData> p = courseDataService.listAdmin(page, size, keyword, structId, DataType.ValueOf(dataType), order, DirectionStatus.ValueOf(direction));
- List<CourseData> pr = Transform.convert(p, CourseData.class);
- return ResponseHelp.success(pr, page, size, p.getTotal());
- }
- @RequestMapping(value = "/data/history/add", method = RequestMethod.POST)
- @ApiOperation(value = "添加资料历史", httpMethod = "POST")
- public Response<CourseDataHistory> addDataHistory(@RequestBody @Validated CourseDataHistoryDto dto, HttpServletRequest request) {
- CourseDataHistory entity = Transform.dtoToEntity(dto);
- entity = courseDataHistoryService.add(entity);
- CourseData in = courseDataService.get(entity.getDataId());
- CourseData tmp = CourseData.builder()
- .id(entity.getDataId())
- .build();
- if(in.getLatestTime() == null){
- tmp.setLatestTime(entity.getTime());
- courseDataService.edit(tmp);
- }else if(entity.getTime().after(in.getLatestTime())){
- tmp.setLatestTime(entity.getTime());
- courseDataService.edit(tmp);
- }
- asyncTask.postDataUpdate(entity.getId());
- managerLogService.log(request);
- return ResponseHelp.success(Transform.convert(entity, CourseDataHistory.class));
- }
- @RequestMapping(value = "/data/history/edit", method = RequestMethod.PUT)
- @ApiOperation(value = "编辑资料历史", httpMethod = "PUT")
- public Response<Boolean> editDataHistory(@RequestBody @Validated CourseDataHistoryDto dto, HttpServletRequest request) {
- CourseDataHistory entity = Transform.dtoToEntity(dto);
- entity = courseDataHistoryService.edit(entity);
- CourseData in = courseDataService.get(entity.getDataId());
- CourseData tmp = CourseData.builder()
- .id(entity.getDataId())
- .build();
- if(in.getLatestTime() == null){
- tmp.setLatestTime(entity.getTime());
- courseDataService.edit(tmp);
- }else if(entity.getTime().after(in.getLatestTime())){
- tmp.setLatestTime(entity.getTime());
- courseDataService.edit(tmp);
- }
- managerLogService.log(request);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/data/history/delete", method = RequestMethod.DELETE)
- @ApiOperation(value = "删除资料历史", httpMethod = "DELETE")
- public Response<Boolean> deleteDataHistory(@RequestParam int id, HttpServletRequest request) {
- courseDataHistoryService.delete(id);
- managerLogService.log(request);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/data/history/list", method = RequestMethod.GET)
- @ApiOperation(value = "资料历史列表", httpMethod = "GET")
- public Response<PageMessage<CourseDataHistory>> listDataHistory(
- @RequestParam(required = false, defaultValue = "1") int page,
- @RequestParam(required = false, defaultValue = "100") int size,
- @RequestParam(required = true) Integer dataId,
- @RequestParam(required = false, defaultValue = "id") String order,
- @RequestParam(required = false, defaultValue = "desc") String direction,
- HttpSession session) {
- Page<CourseDataHistory> p = courseDataHistoryService.listByData(page, size, dataId);
- List<CourseDataHistory> pr = Transform.convert(p, CourseDataHistory.class);
- return ResponseHelp.success(pr, page, size, p.getTotal());
- }
- @RequestMapping(value = "/experience/add", method = RequestMethod.POST)
- @ApiOperation(value = "添加心经", httpMethod = "POST")
- public Response<CourseExperience> addExperience(@RequestBody @Validated CourseExperienceDto dto, HttpServletRequest request) {
- CourseExperience entity = Transform.dtoToEntity(dto);
- entity = courseExperienceService.add(entity);
- managerLogService.log(request);
- return ResponseHelp.success(Transform.convert(entity, CourseExperience.class));
- }
- @RequestMapping(value = "/experience/edit", method = RequestMethod.PUT)
- @ApiOperation(value = "编辑心经", httpMethod = "PUT")
- public Response<Boolean> editExperience(@RequestBody @Validated CourseExperienceDto dto, HttpServletRequest request) {
- CourseExperience entity = Transform.dtoToEntity(dto);
- entity = courseExperienceService.edit(entity);
- managerLogService.log(request);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/experience/delete", method = RequestMethod.DELETE)
- @ApiOperation(value = "删除心经", httpMethod = "DELETE")
- public Response<Boolean> deleteExperience(@RequestParam int id, HttpServletRequest request) {
- courseExperienceService.delete(id);
- managerLogService.log(request);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/experience/detail", method = RequestMethod.GET)
- @ApiOperation(value = "获取心经", httpMethod = "GET")
- public Response<CourseExperience> detailExperience(@RequestParam int id,HttpSession session) {
- CourseExperience entity = courseExperienceService.get(id);
- return ResponseHelp.success(Transform.convert(entity, CourseExperience.class));
- }
- @RequestMapping(value = "/experience/list", method = RequestMethod.GET)
- @ApiOperation(value = "心经列表", httpMethod = "GET")
- public Response<PageMessage<CourseExperienceListDto>> listExperience(
- @RequestParam(required = false, defaultValue = "1") int page,
- @RequestParam(required = false, defaultValue = "100") int size,
- @RequestParam(required = false) Integer userId,
- @RequestParam(required = false) String keyword,
- @RequestParam(required = false) String prepareStatus,
- @RequestParam(required = false) String experienceScore,
- @RequestParam(required = false) String experienceDay,
- @RequestParam(required = false) String experiencePercent,
- @RequestParam(required = false, defaultValue = "id") String order,
- @RequestParam(required = false, defaultValue = "desc") String direction,
- HttpSession session) {
- Page<CourseExperience> p = courseExperienceService.listAdmin(page, size, userId, keyword, prepareStatus, ExperienceScoreRange.ValueOf(experienceScore), ExperienceDayRange.ValueOf(experienceDay), experiencePercent, order, DirectionStatus.ValueOf(direction));
- List<CourseExperienceListDto> pr = Transform.convert(p, CourseExperienceListDto.class);
-
- Collection userIds = Transform.getIds(p, CourseExperience.class, "userId");
- List<User> userList = usersService.select(userIds);
- Transform.combine(pr, userList, CourseExperienceListDto.class, "userId", "user", User.class, "id", UserExtendDto.class);
- return ResponseHelp.success(pr, page, size, p.getTotal());
- }
- @RequestMapping(value = "/teacher/add", method = RequestMethod.POST)
- @ApiOperation(value = "添加老师", httpMethod = "POST")
- public Response<CourseTeacher> addTeacher(@RequestBody @Validated CourseTeacherDto dto, HttpServletRequest request) {
- CourseTeacher entity = Transform.dtoToEntity(dto);
- entity = courseTeacherService.add(entity);
- managerLogService.log(request);
- return ResponseHelp.success(Transform.convert(entity, CourseTeacher.class));
- }
- @RequestMapping(value = "/teacher/edit", method = RequestMethod.PUT)
- @ApiOperation(value = "编辑教师", httpMethod = "PUT")
- public Response<Boolean> editTeacher(@RequestBody @Validated CourseTeacherDto dto, HttpServletRequest request) {
- CourseTeacher entity = Transform.dtoToEntity(dto);
- entity = courseTeacherService.edit(entity);
- managerLogService.log(request);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/teacher/delete", method = RequestMethod.DELETE)
- @ApiOperation(value = "删除教师", httpMethod = "DELETE")
- public Response<Boolean> deleteTeacher(@RequestParam int id, HttpServletRequest request) {
- courseTeacherService.delete(id);
- managerLogService.log(request);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/teacher/detail", method = RequestMethod.GET)
- @ApiOperation(value = "获取教师", httpMethod = "GET")
- public Response<CourseTeacher> detailTeacher(@RequestParam int id,HttpSession session) {
- CourseTeacher entity = courseTeacherService.get(id);
- return ResponseHelp.success(Transform.convert(entity, CourseTeacher.class));
- }
- @RequestMapping(value = "/teacher/list", method = RequestMethod.GET)
- @ApiOperation(value = "教师列表", httpMethod = "GET")
- public Response<PageMessage<CourseTeacher>> listTeacher(
- @RequestParam(required = false, defaultValue = "1") int page,
- @RequestParam(required = false, defaultValue = "100") int size,
- @RequestParam(required = false) Integer courseId,
- @RequestParam(required = false, defaultValue = "id") String order,
- @RequestParam(required = false, defaultValue = "desc") String direction,
- HttpSession session) {
- Page<CourseTeacher> p = courseTeacherService.listAdmin(page, size, courseId);
- return ResponseHelp.success(p, page, size, p.getTotal());
- }
- @RequestMapping(value = "/no/add", method = RequestMethod.POST)
- @ApiOperation(value = "添加课时", httpMethod = "POST")
- public Response<CourseNo> addNo(@RequestBody @Validated CourseNoDto dto, HttpServletRequest request) {
-
- CourseNo entity = Transform.dtoToEntity(dto);
- entity = courseNoService.addNo(entity);
-
- CourseNoStatRelation relation = courseNoService.statCourse(dto.getCourseId());
- courseService.edit(Course.builder().id(dto.getCourseId()).noNumber(relation.getNumber()).time(relation.getNumber()).build());
- managerLogService.log(request);
- return ResponseHelp.success(Transform.convert(entity, CourseNo.class));
- }
- @RequestMapping(value = "/no/edit", method = RequestMethod.PUT)
- @ApiOperation(value = "编辑课时", httpMethod = "PUT")
- public Response<Boolean> editNo(@RequestBody @Validated CourseNoDto dto, HttpServletRequest request) {
-
- CourseNo entity = Transform.dtoToEntity(dto);
- entity = courseNoService.editNo(entity);
- CourseNoStatRelation relation = courseNoService.statCourse(dto.getCourseId());
- courseService.edit(Course.builder().id(dto.getCourseId()).noNumber(relation.getNumber()).time(relation.getNumber()).build());
- managerLogService.log(request);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/no/delete", method = RequestMethod.DELETE)
- @ApiOperation(value = "删除课时", httpMethod = "DELETE")
- public Response<Boolean> deleteNo(@RequestParam int id, HttpServletRequest request) {
- CourseNo in = courseNoService.get(id);
- courseNoService.deleteNo(id);
-
- CourseNoStatRelation relation = courseNoService.statCourse(in.getCourseId());
- courseService.edit(Course.builder().id(in.getCourseId()).noNumber(relation.getNumber()).time(relation.getNumber()).build());
-
- previewPaperService.removeCourseNo(in.getCourseId(), in.getId());
- previewAssignService.removeCourseNo(in.getCourseId(), in.getId());
- managerLogService.log(request);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/no/detail", method = RequestMethod.GET)
- @ApiOperation(value = "获取课时", httpMethod = "GET")
- public Response<CourseNo> detailNo(@RequestParam int id,HttpSession session) {
- CourseNo entity = courseNoService.get(id);
- return ResponseHelp.success(Transform.convert(entity, CourseNo.class));
- }
- @RequestMapping(value = "/no/all", method = RequestMethod.GET)
- @ApiOperation(value = "课时列表", httpMethod = "GET")
- public Response<List<CourseNo>> listNo(
- @RequestParam(required = false) Integer courseId,
- HttpSession session) {
- List<CourseNo> p = courseNoService.allCourse(courseId);
- return ResponseHelp.success(p);
- }
- @RequestMapping(value = "/time/add", method = RequestMethod.POST)
- @ApiOperation(value = "添加课时", httpMethod = "POST")
- public Response<CourseTime> addTime(@RequestBody @Validated CourseTimeDto dto, HttpServletRequest request) {
- CourseTime entity = Transform.dtoToEntity(dto);
- entity = courseTimeService.add(entity);
- managerLogService.log(request);
- return ResponseHelp.success(Transform.convert(entity, CourseTime.class));
- }
- @RequestMapping(value = "/time/edit", method = RequestMethod.PUT)
- @ApiOperation(value = "编辑课时", httpMethod = "PUT")
- public Response<Boolean> editTime(@RequestBody @Validated CourseTimeDto dto, HttpServletRequest request) {
- CourseTime entity = Transform.dtoToEntity(dto);
- entity = courseTimeService.edit(entity);
-
- userOrderRecordService.changeStudentTime(entity.getCourseId(), dto.getId(), entity.getStartTime(), entity.getEndTime());
- managerLogService.log(request);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/time/delete", method = RequestMethod.DELETE)
- @ApiOperation(value = "删除课时", httpMethod = "DELETE")
- public Response<Boolean> deleteTime(@RequestParam int id, HttpServletRequest request) {
- CourseTime in = courseTimeService.get(id);
- courseTimeService.delete(id);
-
- previewAssignService.removeCourseTime(in.getCourseId(), in.getId());
-
- managerLogService.log(request);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/time/detail", method = RequestMethod.GET)
- @ApiOperation(value = "获取课时", httpMethod = "GET")
- public Response<CourseTime> detailTime(@RequestParam int id,HttpSession session) {
- CourseTime entity = courseTimeService.get(id);
- return ResponseHelp.success(Transform.convert(entity, CourseTime.class));
- }
- @RequestMapping(value = "/time/list", method = RequestMethod.GET)
- @ApiOperation(value = "课时列表", httpMethod = "GET")
- public Response<PageMessage<CourseTimeInfoDto>> listTime(
- @RequestParam(required = false, defaultValue = "1") int page,
- @RequestParam(required = false, defaultValue = "100") int size,
- @RequestParam(required = false) Integer[] ids,
- @RequestParam(required = false) Integer courseId,
- @RequestParam(required = false) String keyword,
- @RequestParam(required = false, defaultValue = "id") String order,
- @RequestParam(required = false, defaultValue = "desc") String direction,
- HttpSession session) {
- Page<CourseTime> p;
- if (ids != null && ids.length > 0){
- p = courseTimeService.select(ids);
- }else{
- p = courseTimeService.listAdmin(page, size, courseId, keyword);
- }
- List<CourseTimeInfoDto> pr = Transform.convert(p, CourseTimeInfoDto.class);
-
- Collection timeIds = Transform.getIds(p, CourseTime.class, "id");
- List<CourseStudentNumberRelation> relations = userOrderRecordService.groupByCourse(timeIds);
- Map map = Transform.getMap(relations, CourseStudentNumberRelation.class, "id", "number");
- Transform.combine(pr, map, CourseTimeInfoDto.class, "id", "studentNumber");
- return ResponseHelp.success(pr, page, size, p.getTotal());
- }
- @RequestMapping(value = "/student/online/add", method = RequestMethod.POST)
- @ApiOperation(value = "添加学员", httpMethod = "POST")
- public Response<UserOrderRecord> addStudentOnline(@RequestBody @Validated CourseStudentOnlineDto dto, HttpServletRequest request) {
- UserOrderRecord entity = Transform.dtoToEntity(dto);
- CourseTime courseTime = courseTimeService.get(dto.getTimeId());
- if (courseTime == null){
- throw new ParameterException("时间段错误");
- }
- entity.setSource(RecordSource.BACKEND.key);
- entity.setProductType(ProductType.COURSE.key);
- entity.setTimeId(dto.getTimeId());
- entity.setProductId(dto.getCourseId());
- entity.setUseStartTime(courseTime.getStartTime());
- entity.setUseEndTime(courseTime.getEndTime());
-
- entity.setUseExpireDays((int)(courseTime.getEndTime().getTime() - courseTime.getStartTime().getTime())/86400000);
-
- JSONObject askInfo = toolsService.getAskTime(BigDecimal.valueOf(0));
- if (askInfo != null )entity.setAskTime(askInfo.getIntValue("hour") * 3600);
- entity = userOrderRecordService.addStudent(entity);
- managerLogService.log(request);
- return ResponseHelp.success(Transform.convert(entity, UserOrderRecord.class));
- }
- @RequestMapping(value = "/student/online/edit", method = RequestMethod.PUT)
- @ApiOperation(value = "编辑学员", httpMethod = "PUT")
- public Response<Boolean> editStudentOnline(@RequestBody @Validated CourseStudentOnlineDto dto, HttpServletRequest request) {
- UserOrderRecord entity = Transform.dtoToEntity(dto);
- entity = userOrderRecordService.edit(entity);
- managerLogService.log(request);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/student/online/delete", method = RequestMethod.DELETE)
- @ApiOperation(value = "删除学员", httpMethod = "DELETE")
- public Response<Boolean> deleteStudentOnline(@RequestParam int id, HttpServletRequest request) {
- userOrderRecordService.delete(id);
- managerLogService.log(request);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/student/online/detail", method = RequestMethod.GET)
- @ApiOperation(value = "获取学员", httpMethod = "GET")
- public Response<UserOrderRecord> detailStudentOnline(@RequestParam int id,HttpSession session) {
- UserOrderRecord entity = userOrderRecordService.get(id);
- return ResponseHelp.success(Transform.convert(entity, UserOrderRecord.class));
- }
- @RequestMapping(value = "/student/online/list", method = RequestMethod.GET)
- @ApiOperation(value = "课时学员", httpMethod = "GET")
- public Response<PageMessage<CourseStudentOnlineListDto>> listStudentOnline(
- @RequestParam(required = false, defaultValue = "1") int page,
- @RequestParam(required = false, defaultValue = "100") int size,
- @RequestParam(required = false) Integer courseId,
- @RequestParam(required = false) Integer timeId,
- @RequestParam(required = false, defaultValue = "id") String order,
- @RequestParam(required = false, defaultValue = "desc") String direction,
- HttpSession session) {
- Page<UserOrderRecord> p = userOrderRecordService.listAdminByOnline(page, size, courseId, timeId);
- List<CourseStudentOnlineListDto> pr = Transform.convert(p, CourseStudentOnlineListDto.class);
-
- Collection userIds = Transform.getIds(p, UserOrderRecord.class, "userId");
- List<User> userList = usersService.select(userIds);
- Transform.combine(pr, userList, CourseStudentOnlineListDto.class, "userId", "user", User.class, "id", UserExtendDto.class);
-
- Collection timeIds = Transform.getIds(p, UserOrderRecord.class, "no");
- List<CourseTime> timeList = courseTimeService.select(timeIds);
- Transform.combine(pr, timeList, CourseStudentOnlineListDto.class, "no", "time", CourseTime.class, "id", CourseTimeExtendDto.class);
- return ResponseHelp.success(pr, page, size, p.getTotal());
- }
- @RequestMapping(value = "/student/vs/add", method = RequestMethod.POST)
- @ApiOperation(value = "添加vs学员", httpMethod = "POST")
- private Response<Boolean> addStudentVs(@RequestBody @Validated UserCourseRecordDto dto){
- UserOrderRecord entity = Transform.dtoToEntity(dto);
- Course course = courseService.get(dto.getCourseId());
- entity.setProductType(ProductType.COURSE.key);
- entity.setOrderId(0);
- entity.setProductId(dto.getCourseId());
- entity.setTeacherId(dto.getTeacherId());
- entity.setSource(RecordSource.BACKEND.key);
- entity.setNumber(dto.getNumber());
- entity.setExpireDays(course.getExpireDays());
- entity.setUseExpireDays(courseExtendService.computeExpire(dto.getNumber(), course));
-
- orderFlowService.addRecord(entity);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/student/vs/edit", method = RequestMethod.PUT)
- @ApiOperation(value = "修改vs学员", httpMethod = "PUT")
- private Response<Boolean> editStudentVs(@RequestBody @Validated UserCourseRecordDto dto){
- UserOrderRecord entity = Transform.dtoToEntity(dto);
- UserOrderRecord in = userOrderRecordService.get(entity.getId());
- if (in.getIsUsed() > 0 && !in.getNumber().equals(dto.getNumber())){
-
- Course course = courseService.get(dto.getCourseId());
- Integer expireDay = courseExtendService.computeExpire(dto.getNumber(), course);
- entity.setEndTime(Tools.addDate(in.getStartTime(), expireDay));
- entity.setNumber(dto.getNumber());
- entity.setUseExpireDays(expireDay);
- }
- userOrderRecordService.edit(entity);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/student/vs/delete", method = RequestMethod.DELETE)
- @ApiOperation(value = "删除vs学员", httpMethod = "DELETE")
- private Response<Boolean> deleteStudentVs(@RequestParam int id){
- userOrderRecordService.delete(id);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/student/vs/list", method = RequestMethod.GET)
- @ApiOperation(value = "获取vs学员", httpMethod = "GET")
- private Response<PageMessage<UserCourseStudentRecordInfoDto>> listStudentVs(
- @RequestParam(required = false, defaultValue = "1") int page,
- @RequestParam(required = false, defaultValue = "100") int size,
- @RequestParam(required = false) Integer courseId,
- @RequestParam(required = false) Integer userId,
- @RequestParam(required = false, defaultValue = "id") String order,
- @RequestParam(required = false, defaultValue = "desc") String direction
- ){
- Page<UserOrderRecord> p = userOrderRecordService.listWithStudentAdmin(page, size, courseId, userId);
- List<UserCourseStudentRecordInfoDto> pr = Transform.convert(p, UserCourseStudentRecordInfoDto.class);
-
- Collection userIds = Transform.getIds(p, UserOrderRecord.class, "userId");
- List<User> userList = usersService.select(userIds);
- Transform.combine(pr, userList, UserCourseStudentRecordInfoDto.class, "userId", "user", User.class, "id", UserExtendDto.class);
-
- Collection teacherIds = Transform.getIds(p, UserOrderRecord.class, "teacherId");
- List<CourseTeacher> teacherList = courseTeacherService.select(teacherIds);
- Transform.combine(pr, teacherList, UserCourseStudentRecordInfoDto.class, "teacherId", "teacher", CourseTeacher.class, "id", CourseTeacherExtendDto.class);
- return ResponseHelp.success(pr, page, size, p.getTotal());
- }
- @RequestMapping(value = "/study/list", method = RequestMethod.GET)
- @ApiOperation(value = "获取学习记录", httpMethod = "GET")
- private Response<PageMessage<UserCourseStudyRecordInfoDto>> listStudy(
- @RequestParam(required = false, defaultValue = "1") int page,
- @RequestParam(required = false, defaultValue = "100") int size,
- @RequestParam(required = false) Integer[] ids,
- @RequestParam(required = false) String courseModule,
- @RequestParam(required = false) Integer structId,
- @RequestParam(required = false) Integer courseId,
- @RequestParam(required = false) Integer userId,
- @RequestParam(required = false) String teacher,
- @RequestParam(required = false, defaultValue = "id") String order,
- @RequestParam(required = false, defaultValue = "desc") String direction
- ){
- Page<UserOrderRecord> p;
- if (ids != null && ids.length > 0){
- p = userOrderRecordService.select(ids);
- }else{
- p = userOrderRecordService.listWithStudyAdmin(page, size, courseModule != null ? new String[]{courseModule} : null, structId, courseId, userId, teacher, order, DirectionStatus.ValueOf(direction));
- }
- List<UserCourseStudyRecordInfoDto> pr = Transform.convert(p, UserCourseStudyRecordInfoDto.class);
-
- Collection userIds = Transform.getIds(p, UserOrderRecord.class, "userId");
- List<User> userList = usersService.select(userIds);
- Transform.combine(pr, userList, UserCourseStudyRecordInfoDto.class, "userId", "user", User.class, "id", UserExtendDto.class);
-
- Map courseMap = Transform.getMap(p, UserOrderRecord.class, "id", "productId");
- Transform.combine(pr, courseMap, UserCourseStudyRecordInfoDto.class, "id", "courseId");
- Collection courseIds = Transform.getIds(p, UserOrderRecord.class, "productId");
- List<Course> courseList = courseService.select(courseIds);
- Transform.combine(pr, courseList, UserCourseStudyRecordInfoDto.class, "courseId", "course", Course.class, "id", CourseExtendDto.class);
-
- Collection teacherIds = Transform.getIds(p, UserOrderRecord.class, "teacherId");
- List<CourseTeacher> teacherList = courseTeacherService.select(teacherIds);
- Map teacherMap = Transform.getMap(teacherList, CourseTeacher.class,"id", "realname");
- Transform.combine(pr, teacherMap, UserCourseStudyRecordInfoDto.class, "teacherId", "teacher");
-
- Collection recordIds = Transform.getIds(p, UserOrderRecord.class, "id");
- List<UserCourseRecord> userCourseRecordList = userCourseRecordService.listWithLast(recordIds);
- Map recordMap = Transform.getMap(userCourseRecordList, UserCourseRecord.class,"recordId", "createTime");
- Transform.combine(pr, recordMap, UserCourseStudyRecordInfoDto.class, "id", "lastTime");
- return ResponseHelp.success(pr, page, size, p.getTotal());
- }
- @RequestMapping(value = "/ask/edit", method = RequestMethod.PUT)
- @ApiOperation(value = "修改提问信息", httpMethod = "PUT")
- public Response<Boolean> edit(@RequestBody @Validated UserAskCourseDto dto, HttpServletRequest request) {
- UserAskCourse entity = Transform.dtoToEntity(dto);
- UserAskCourse in = userAskCourseService.get(entity.getId());
-
- if(entity.getAnswer() != null && (!entity.getAnswer().isEmpty() || !in.getAnswer().equals(entity.getAnswer()))){
- entity.setAnswerTime(new Date());
- entity.setAnswerStatus(AnswerStatus.ANSWER.index);
- Manager manager = shiroHelp.getLoginManager();
- entity.setManagerId(manager.getId());
- User user = usersService.get(in.getUserId());
- messageExtendService.sendAskCourse(user, entity);
- }
- if (dto.getIgnoreStatus() != null && dto.getIgnoreStatus() > 0){
- entity.setAnswerStatus(AnswerStatus.IGNORE.index);
- }
- entity = userAskCourseService.edit(entity);
- if (dto.getOther() !=null && dto.getOther().length > 0){
-
- userAskCourseService.updateOrder(dto.getOther());
- }
- managerLogService.log(request);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/ask/detail", method = RequestMethod.GET)
- @ApiOperation(value = "提问详情", httpMethod = "GET")
- public Response<UserAskCourseDetailDto> detail(@RequestParam int id, HttpServletRequest request) {
- UserAskCourse entity = userAskCourseService.get(id);
- UserAskCourseDetailDto dto = Transform.convert(entity, UserAskCourseDetailDto.class);
- if (entity.getManagerId() != null && entity.getManagerId() > 0){
- Manager manager = managerService.get(entity.getManagerId());
- if (manager != null)
- dto.setManager(Transform.convert(manager, ManagerExtendDto.class));
- }
- User user = usersService.get(entity.getUserId());
- dto.setUser(Transform.convert(user, UserExtendDto.class));
- Course course = courseService.get(entity.getCourseId());
- dto.setCourse(Transform.convert(course, CourseExtendDto.class));
- CourseNo courseNo = courseNoService.get(entity.getCourseNoId());
- dto.setCourseNo(Transform.convert(courseNo, CourseNoExtendDto.class));
-
- List<UserAskCourse> userAskList = userAskCourseService.listByCoursePosition(entity.getCourseNoId(), entity.getPosition(), true);
- dto.setOthers(Transform.convert(userAskList, UserAskCourseExtendDto.class));
- return ResponseHelp.success(dto);
- }
- @RequestMapping(value = "/ask/list", method = RequestMethod.GET)
- @ApiOperation(value = "提问列表", httpMethod = "GET")
- public Response<PageMessage<UserAskCourseListDto>> list(
- @RequestParam(required = false, defaultValue = "1") int page,
- @RequestParam(required = false, defaultValue = "100") int size,
- @RequestParam(required = false) Integer structId,
- @RequestParam(required = false) Integer courseId,
- @RequestParam(required = false) Integer answerStatus,
- @RequestParam(required = false) Integer showStatus,
- @RequestParam(required = false) Integer userId,
- @RequestParam(required = false) Integer moneyRang,
- @RequestParam(required = false) String startTime,
- @RequestParam(required = false) String endTime,
- @RequestParam(required = false, defaultValue = "id") String order,
- @RequestParam(required = false, defaultValue = "desc") String direction,
- HttpSession session) {
- Page<UserAskCourse> p = userAskCourseService.listAdmin(page, size, structId, courseId, AnswerStatus.ValueOf(answerStatus), showStatus, userId, MoneyRange.ValueOf(moneyRang), startTime, endTime, order, DirectionStatus.ValueOf(direction));
- List<UserAskCourseListDto> pr = Transform.convert(p, UserAskCourseListDto.class);
-
- Collection userIds = Transform.getIds(p, UserAskQuestion.class, "userId");
- List<User> userList = usersService.select(userIds);
- Transform.combine(pr, userList, UserAskQuestionListDto.class, "userId", "user", User.class, "id", UserExtendDto.class);
-
- Collection managerIds = Transform.getIds(p, UserAskQuestion.class, "managerId");
- List<Manager> managerList = managerService.select(managerIds);
- Transform.combine(pr, managerList, UserAskQuestionListDto.class, "managerId", "manager", Manager.class, "id", ManagerExtendDto.class);
-
- Collection courseIds = Transform.getIds(p, UserAskCourse.class, "courseId");
- List<Course> courseList = courseService.select(courseIds);
- Transform.combine(pr, courseList, UserAskCourseListDto.class, "courseId", "course", Course.class, "id", CourseExtendDto.class);
-
- Collection courseNoIds = Transform.getIds(p, UserAskCourse.class, "courseNoId");
- List<CourseNo> courseNoList = courseNoService.select(courseNoIds);
- Transform.combine(pr, courseNoList, UserAskCourseListDto.class, "courseNoId", "courseNo", CourseNo.class, "id", CourseNoExtendDto.class);
- return ResponseHelp.success(pr, page, size, p.getTotal());
- }
- }
|