123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315 |
- package com.ym.mec.web.controller;
- import com.ym.mec.auth.api.client.SysUserFeignService;
- import com.ym.mec.auth.api.entity.SysUser;
- import com.ym.mec.biz.dal.dao.EmployeeDao;
- import com.ym.mec.biz.dal.dto.StudentManageListDto;
- import com.ym.mec.biz.dal.dto.UpdateStudentFeeDto;
- import com.ym.mec.biz.dal.entity.Employee;
- import com.ym.mec.biz.dal.page.*;
- import com.ym.mec.biz.service.MusicGroupStudentFeeService;
- import com.ym.mec.biz.service.StudentCourseHomeworkService;
- import com.ym.mec.biz.service.StudentManageService;
- import com.ym.mec.biz.service.StudentRegistrationService;
- import com.ym.mec.common.controller.BaseController;
- import com.ym.mec.common.exception.BizException;
- import com.ym.mec.common.page.QueryInfo;
- import com.ym.mec.util.date.DateUtil;
- import com.ym.mec.util.excel.POIUtil;
- import io.swagger.annotations.*;
- import org.apache.commons.lang3.StringUtils;
- import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.security.access.prepost.PreAuthorize;
- import org.springframework.web.bind.annotation.*;
- import javax.servlet.http.HttpServletResponse;
- import java.util.Arrays;
- import java.util.Date;
- import java.util.List;
- @Api(tags = "学生管理")
- @RestController
- public class StudentManageController extends BaseController {
- @Autowired
- private StudentManageService studentManageService;
- @Autowired
- private SysUserFeignService sysUserFeignService;
- @Autowired
- private StudentRegistrationService studentRegistrationService;
- @Autowired
- private MusicGroupStudentFeeService musicGroupStudentFeeService;
- @Autowired
- private StudentCourseHomeworkService studentCourseHomeworkService;
- @Autowired
- private EmployeeDao employeeDao;
- private final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
- @ApiOperation(value = "导出学员是否有课")
- @PostMapping("export/studentHasCourse")
- @PreAuthorize("@pcs.hasPermissions('export/studentHasCourse')")
- public void studentHasCourse(HttpServletResponse response, StudentManageQueryInfo queryInfo) {
- SysUser sysUser = sysUserFeignService.queryUserInfo();
- if (sysUser == null) {
- throw new BizException("用户信息获取失败");
- }
- if(!sysUser.getIsSuperAdmin()){
- Employee employee = employeeDao.get(sysUser.getId());
- if (StringUtils.isEmpty(queryInfo.getOrganId())) {
- queryInfo.setOrganId(employee.getOrganIdList());
- }else if(StringUtils.isEmpty(employee.getOrganIdList())){
- throw new BizException("用户所在分部异常");
- }else {
- List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
- if(!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))){
- throw new BizException("非法请求");
- }
- }
- }
- List<StudentManageListDto> rows = studentManageService.queryHasCourseStudent(queryInfo);
- if(rows.size() > 50000){
- throw new BizException("数据集太大,不能导出.最大数据集不能超过50000");
- }
- try {
- HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部", "学员编号", "学员姓名", "性别", "家长姓名",
- "家长联系电话", "是否激活", "是否有课", "是否预约陪练课","是否有陪练课", "课程余额(元)",
- "所在乐团", "乐团所属声部", "所在乐团状态", "所在vip课", "所在VIP状态"}, new String[]{
- "organName", "userId", "username", "gender.description", "parentsName", "parentsPhone",
- "isActive.msg","hasCourse.msg","isMake.msg","hasPracticeCourse.msg","courseBalance","musicGroupName",
- "subjectName","musicGroupStatus","vipGroupName","vipGroupStatus"}, rows);
- response.setContentType("application/octet-stream");
- response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
- response.flushBuffer();
- workbook.write(response.getOutputStream());
- workbook.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- @ApiOperation(value = "获取学生列表")
- @GetMapping("studentManage/queryStudentList")
- @PreAuthorize("@pcs.hasPermissions('studentManage/queryStudentList')")
- public Object queryStudentList(StudentManageQueryInfo queryInfo){
- SysUser sysUser = sysUserFeignService.queryUserInfo();
- if (sysUser == null) {
- return failed("用户信息获取失败");
- }
- if(!sysUser.getIsSuperAdmin()){
- Employee employee = employeeDao.get(sysUser.getId());
- if (StringUtils.isEmpty(queryInfo.getOrganId())) {
- queryInfo.setOrganId(employee.getOrganIdList());
- }else if(StringUtils.isEmpty(employee.getOrganIdList())){
- return failed("用户所在分部异常");
- }else {
- List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
- if(!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))){
- return failed("非法请求");
- }
- }
- }
- return succeed(studentManageService.findStudentsByOrganId(queryInfo));
- }
- @ApiOperation(value = "学员注册")
- @PostMapping("studentManage/register")
- @PreAuthorize("@pcs.hasPermissions('studentManage/register')")
- public Object studentRegister(SysUser sysUser){
- return succeed(studentManageService.studentRegister(sysUser));
- }
- @ApiOperation(value = "修改学员信息")
- @PostMapping("studentManage/studentUpdate")
- @PreAuthorize("@pcs.hasPermissions('studentManage/studentUpdate')")
- public Object studentUpdate(Integer id, String phone, String username, Integer gender, String realName, Date birthdate,String nation){
- SysUser sysUser = new SysUser();
- sysUser.setId(id);
- sysUser.setPhone(phone);
- sysUser.setUsername(username);
- sysUser.setGender(gender);
- sysUser.setRealName(realName);
- sysUser.setBirthdate(birthdate);
- sysUser.setNation(nation);
- return succeed(studentManageService.studentUpdate(sysUser));
- }
- @ApiOperation(value = "乐团管理--乐团详情--获取学员列表")
- @GetMapping("studentManage/queryMusicGroupStudent")
- @PreAuthorize("@pcs.hasPermissions('studentManage/queryMusicGroupStudent')")
- public Object queryMusicGroupStudent(MusicGroupStudentQueryInfo queryInfo){
- return succeed(studentManageService.queryMusicGroupStudent(queryInfo));
- }
- @ApiOperation(value = "乐团管理--乐团详情--学员列表--查看班级")
- @GetMapping("studentManage/queryStudentClassGroup")
- @PreAuthorize("@pcs.hasPermissions('studentManage/queryStudentClassGroup')")
- @ApiImplicitParams({@ApiImplicitParam(name = "teacherId", value = "学生编号", required = true, dataType = "Integer"),
- @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String")})
- public Object queryStudentClassGroup(String musicGroupId,Integer teacherId){
- if(StringUtils.isEmpty(musicGroupId) || teacherId == null){
- return failed("参数校验失败");
- }
- return succeed(studentManageService.queryStudentClassGroup(musicGroupId,teacherId));
- }
- @ApiOperation(value = "乐团管理--乐团详情--学员列表,汇总数据接口")
- @GetMapping("studentManage/musicGroupStudentsSum")
- @PreAuthorize("@pcs.hasPermissions('studentManage/musicGroupStudentsSum')")
- public Object musicGroupStudentsSum(String musicGroupId){
- return succeed(studentManageService.musicGroupStudentsSum(musicGroupId));
- }
- @ApiOperation(value = "乐团管理--乐团详情--点名总览")
- @GetMapping("studentManage/queryMusicGroupStudentsSign")
- @PreAuthorize("@pcs.hasPermissions('studentManage/queryMusicGroupStudentsSign')")
- public Object queryMusicGroupStudentsSign(StudentSignQueryInfo queryInfo){
- return succeed(studentManageService.queryMusicGroupStudentsSign(queryInfo));
- }
- @ApiOperation(value = "根据学生ID获取学生基本报名信息")
- @GetMapping("studentManage/findStudentBaseInfo")
- @PreAuthorize("@pcs.hasPermissions('studentManage/findStudentBaseInfo')")
- public Object findStudentBaseInfo(@ApiParam(value = "学生编号", required = true) Integer userId){
- return succeed(studentManageService.findStudentManageBaseInfo(userId));
- }
- @ApiOperation(value = "根据学生ID获取其所在的乐团")
- @GetMapping("studentManage/findStudentMusicGroups")
- @PreAuthorize("@pcs.hasPermissions('studentManage/findStudentMusicGroups')")
- public Object findStudentMusicGroups(@ApiParam(value = "学生编号", required = true) Integer userId){
- return succeed(studentManageService.findStudentMusicGroupsByUserId(userId));
- }
- @ApiOperation(value = "根据乐团获取排课列表")
- @GetMapping("studentManage/findStudentCourses")
- @PreAuthorize("@pcs.hasPermissions('studentManage/findStudentCourses')")
- public Object findStudentCourses(StudentManageCourseQueryInfo queryInfo){
- return succeed(studentManageService.findStudentCourseList(queryInfo));
- }
- @ApiOperation(value = "获取学生签到列表")
- @GetMapping("studentManage/findStudentAttendances")
- @PreAuthorize("@pcs.hasPermissions('studentManage/findStudentAttendances')")
- public Object findStudentAttendances(StudentManageAttendanceQueryInfo queryInfo){
- return succeed(studentManageService.findStudentAttendances(queryInfo));
- }
- @ApiOperation(value = "获取学生vip课程")
- @GetMapping("studentManage/findStudentVipGroups")
- @PreAuthorize("@pcs.hasPermissions('studentManage/findStudentVipGroups')")
- public Object findStudentVipGroups(StudentManageCourseQueryInfo queryInfo){
- return succeed(studentManageService.findStudentVipGroups(queryInfo));
- }
- @ApiOperation(value = "获取学生vip班级列表")
- @GetMapping("studentManage/findStudentVipGroupClass")
- @PreAuthorize("@pcs.hasPermissions('studentManage/findStudentVipGroupClass')")
- public Object findStudentVipGroupClass(StudentManageVipClassQueryInfo queryInfo){
- return succeed(studentManageService.findStudentVipGroupClass(queryInfo));
- }
- @ApiOperation(value = "获取用户默认账户基本信息")
- @GetMapping("studentManage/getUserCashAccountBaseInfo")
- @PreAuthorize("@pcs.hasPermissions('studentManage/getUserCashAccountBaseInfo')")
- public Object getUserCashAccountBaseInfo(Integer userId){
- return succeed(studentManageService.getStudentAccountBaseInfo(userId));
- }
- @ApiOperation(value = "获取学员扣费记录列表")
- @GetMapping("studentManage/queryStudentPayment")
- @PreAuthorize("@pcs.hasPermissions('studentManage/queryStudentPayment')")
- public Object queryStudentPayment(TeacherPaymentRecordInfo queryInfo){
- return succeed(studentManageService.queryStudentPayment(queryInfo));
- }
- /**
- * 获取学员基本信息
- * @param mobile
- * @return
- */
- @GetMapping(value = "studentManage/queryUserByPhone")
- @PreAuthorize("@pcs.hasPermissions('studentManage/queryUserByPhone')")
- public Object queryUserByPhone(String mobile) {
- return succeed(studentRegistrationService.queryUserByPhone(mobile));
- }
- /**
- * 修改学员缴费金额和缴费周期
- * @return
- */
- @PostMapping(value = "studentManage/updateStudentFee")
- @PreAuthorize("@pcs.hasPermissions('studentManage/updateStudentFee')")
- public Object updateStudentFee(UpdateStudentFeeDto studentFeeDto) {
- SysUser sysUser = sysUserFeignService.queryUserInfo();
- if(sysUser == null){
- throw new BizException("用户信息获取失败");
- }
- LOGGER.info("修改学员缴费金额和缴费周期,user:{},参数:{}",sysUser.getId(),studentFeeDto);
- musicGroupStudentFeeService.updateStudentFee(studentFeeDto);
- return succeed();
- }
- /**
- * 修改学员缴费周期锁定状态
- * @return
- */
- @PostMapping(value = "studentManage/updateStudentFeeIsLock")
- @PreAuthorize("@pcs.hasPermissions('studentManage/updateStudentFeeIsLock')")
- public Object updateStudentFeeIsLock(UpdateStudentFeeDto studentFeeDto) {
- SysUser sysUser = sysUserFeignService.queryUserInfo();
- if(sysUser == null){
- throw new BizException("用户信息获取失败");
- }
- LOGGER.info("修改学员缴费周期锁定状态,user:{},参数:{}",sysUser.getId(),studentFeeDto);
- musicGroupStudentFeeService.updateStudentFeeIsLock(studentFeeDto);
- return succeed();
- }
- /**
- * 获取学员缴费日历信息
- * @return
- */
- @GetMapping(value = "studentManage/findMusicGroupStudentFee")
- @PreAuthorize("@pcs.hasPermissions('studentManage/findMusicGroupStudentFee')")
- public Object findMusicGroupStudentFee(Integer studentId,String musicGroupId) {
- if(studentId == null || StringUtils.isEmpty(musicGroupId)){
- throw new BizException("参数校验异常");
- }
- SysUser sysUser = sysUserFeignService.queryUserInfo();
- if(sysUser == null){
- throw new BizException("用户信息获取失败");
- }
- return succeed(musicGroupStudentFeeService.findByUser(studentId,musicGroupId));
- }
- /**
- * 获取课程学员作业列表
- * @return
- */
- @GetMapping(value = "studentManage/findStudentCourseHomeworks")
- @PreAuthorize("@pcs.hasPermissions('studentManage/findStudentCourseHomeworks')")
- public Object findStudentCourseHomeworks(QueryInfo queryInfo) {
- SysUser sysUser = sysUserFeignService.queryUserInfo();
- if(sysUser == null){
- throw new BizException("用户信息获取失败");
- }
- return succeed(studentCourseHomeworkService.findStudentCourseHomeworks(queryInfo));
- }
- /**
- * 获取课程学员作业列表
- * @return
- */
- @GetMapping(value = "studentManage/sumStudentAttendance")
- @PreAuthorize("@pcs.hasPermissions('studentManage/sumStudentAttendance')")
- public Object sumStudentAttendance(Integer courseScheduleId) {
- SysUser sysUser = sysUserFeignService.queryUserInfo();
- if(sysUser == null){
- throw new BizException("用户信息获取失败");
- }
- return succeed(studentManageService.sumStudentAttendance(courseScheduleId));
- }
- }
|