Browse Source

Merge branch 'feature/0427-school' of http://git.dayaedu.com/yonge/mec into master_saas

zouxuan 2 years ago
parent
commit
05dcadb82b

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupQuit.java

@@ -79,6 +79,9 @@ public class MusicGroupQuit {
 	@ApiModelProperty(value = "学校审核状态",required = false)
 	private EQuitGroupAuditStatusEnum schoolStaffAuditStatus;
 
+	@ApiModelProperty(value = "学校审核原因",required = true)
+	private String schoolStaffAuditReason;
+
 	//毕业、不感兴趣、时间冲突、身体不适、其他(必选)
 	public enum ReasonEnum implements BaseEnum<String, MusicGroupQuit.ReasonEnum> {
 		GRADUATE("GRADUATE", "毕业"),

+ 21 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/school/dto/MusicGroupQuitDetailDto.java

@@ -0,0 +1,21 @@
+package com.ym.mec.biz.dal.school.dto;
+
+import com.ym.mec.biz.dal.entity.MusicGroupQuit;
+import com.ym.mec.biz.dal.enums.school.EQuitGroupAuditStatusEnum;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class MusicGroupQuitDetailDto extends MusicGroupQuitPageDto{
+
+    @ApiModelProperty(value = "审核原因",required = true)
+    private String schoolStaffAuditReason;
+
+    @ApiModelProperty(value = "学员退团原因",required = true)
+    private String userComment;
+
+    @ApiModelProperty(value = "学员编号",required = true)
+    private MusicGroupQuit.ReasonEnum reasonEnum;
+}

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/school/dto/MusicGroupQuitPageDto.java

@@ -31,5 +31,5 @@ public class MusicGroupQuitPageDto {
     private String subjectName;
 
     @ApiModelProperty(value = "退团id",required = true)
-    private Integer musicGroupQuitId;
+    private Long musicGroupQuitId;
 }

+ 28 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupQuitService.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.entity.MusicGroupQuit;
+import com.ym.mec.biz.dal.school.dto.MusicGroupQuitDetailDto;
 import com.ym.mec.biz.dal.school.dto.MusicGroupQuitPageDto;
 import com.ym.mec.biz.dal.school.page.MusicGroupQuitQueryInfo;
 import com.ym.mec.common.page.PageInfo;
@@ -18,4 +19,31 @@ public interface MusicGroupQuitService extends BaseService<Long, MusicGroupQuit>
     * @date 2023/5/10 19:03
     */
     PageInfo<MusicGroupQuitPageDto> queryPageBySchool(MusicGroupQuitQueryInfo queryInfo);
+
+    /**
+    * @description: 获取退团详情
+     * @param musicGroupQuitId
+    * @return com.ym.mec.biz.dal.school.dto.MusicGroupQuitDetailDto
+    * @author zx
+    * @date 2023/5/11 13:57
+    */
+    MusicGroupQuitDetailDto getDetailBySchool(Long musicGroupQuitId);
+
+    /**
+    * @description: 学校退团审批通过
+     * @param musicGroupQuitId
+    * @return void
+    * @author zx
+    * @date 2023/5/11 14:08
+    */
+    void auditPassBySchool(Long musicGroupQuitId,String reason);
+
+    /**
+    * @description: 学校退团审批拒绝
+     * @param musicGroupQuitId
+    * @return void
+    * @author zx
+    * @date 2023/5/11 14:08
+    */
+    void auditRejectBySchool(Long musicGroupQuitId,String reason);
 }

+ 59 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupQuitServiceImpl.java

@@ -1,11 +1,17 @@
 package com.ym.mec.biz.service.impl;
 
+import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
 import com.ym.mec.biz.dal.dao.SubjectDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.SimpleUserDto;
+import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.entity.Subject;
+import com.ym.mec.biz.dal.enums.school.EQuitGroupAuditStatusEnum;
+import com.ym.mec.biz.dal.school.dto.MusicGroupQuitDetailDto;
 import com.ym.mec.biz.dal.school.dto.MusicGroupQuitPageDto;
 import com.ym.mec.biz.dal.school.page.MusicGroupQuitQueryInfo;
+import com.ym.mec.biz.service.SysUserService;
+import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.util.collection.MapUtil;
 import org.apache.commons.collections.CollectionUtils;
@@ -17,6 +23,7 @@ import com.ym.mec.biz.dal.entity.MusicGroupQuit;
 import com.ym.mec.biz.service.MusicGroupQuitService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
 import java.util.stream.Collectors;
@@ -30,6 +37,10 @@ public class MusicGroupQuitServiceImpl extends BaseServiceImpl<Long, MusicGroupQ
 	private TeacherDao teacherDao;
 	@Autowired
 	private SubjectDao subjectDao;
+	@Autowired
+	private StudentRegistrationDao studentRegistrationDao;
+	@Autowired
+	private SysUserService sysUserService;
 
 	@Override
 	public BaseDAO<Long, MusicGroupQuit> getDAO() {
@@ -70,4 +81,52 @@ public class MusicGroupQuitServiceImpl extends BaseServiceImpl<Long, MusicGroupQ
 		pageInfo.setRows(dataList);
 		return pageInfo;
     }
+
+    @Override
+    public MusicGroupQuitDetailDto getDetailBySchool(Long musicGroupQuitId) {
+		MusicGroupQuit musicGroupQuit = musicGroupQuitDao.get(musicGroupQuitId);
+		if(Objects.isNull(musicGroupQuit)){
+			throw new BizException("退团申请不存在");
+		}
+		MusicGroupQuitDetailDto detailDto = new MusicGroupQuitDetailDto();
+		StudentRegistration studentRegistration = studentRegistrationDao.getStudentRegister(musicGroupQuit.getMusicGroupId(),musicGroupQuit.getUserId());
+		Subject subject = subjectDao.get(studentRegistration.getActualSubjectId());
+		SimpleUserDto simpleUser = teacherDao.getSimpleUser(musicGroupQuit.getUserId());
+		detailDto.setStudentId(musicGroupQuit.getUserId());
+		detailDto.setReasonEnum(musicGroupQuit.getReasonEnum());
+		detailDto.setUserComment(musicGroupQuit.getUserComment());
+		detailDto.setSchoolStaffAuditReason(musicGroupQuit.getSchoolStaffAuditReason());
+		detailDto.setStudentName(simpleUser.getNickName());
+		detailDto.setStudentAvatar(simpleUser.getAvatar());
+		detailDto.setCreateTime(musicGroupQuit.getCreateTime());
+		detailDto.setSubjectName(subject.getName());
+		return detailDto;
+    }
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void auditPassBySchool(Long musicGroupQuitId,String reason) {
+		this.schoolAudit(musicGroupQuitId,reason,EQuitGroupAuditStatusEnum.PASS);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void auditRejectBySchool(Long musicGroupQuitId,String reason) {
+		this.schoolAudit(musicGroupQuitId,reason,EQuitGroupAuditStatusEnum.REJECT);
+	}
+
+	public void schoolAudit(Long musicGroupQuitId,String reason,EQuitGroupAuditStatusEnum status){
+		MusicGroupQuit musicGroupQuit = musicGroupQuitDao.get(musicGroupQuitId);
+		if(Objects.isNull(musicGroupQuit)){
+			throw new BizException("退团申请不存在");
+		}
+		if(musicGroupQuit.getSchoolStaffAuditStatus() != EQuitGroupAuditStatusEnum.ING){
+			throw new BizException("当前审批状态不支持此操作");
+		}
+		Integer userId = sysUserService.getUserId();
+		musicGroupQuit.setAuditSchoolStaff(userId);
+		musicGroupQuit.setSchoolStaffAuditStatus(status);
+		musicGroupQuit.setSchoolStaffAuditReason(reason);
+		musicGroupQuitDao.update(musicGroupQuit);
+	}
 }

+ 9 - 3
mec-biz/src/main/resources/config/mybatis/MusicGroupQuitMapper.xml

@@ -23,6 +23,7 @@
         <result column="apply_user_id_" property="applyUserId"/>
         <result column="audit_school_staff_" property="auditSchoolStaff"/>
         <result column="school_staff_audit_status_" property="schoolStaffAuditStatus"/>
+        <result column="school_staff_audit_reason_" property="schoolStaffAuditReason"/>
         <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <association property="musicGroup" javaType="com.ym.mec.biz.dal.entity.MusicGroup">
             <result column="music_group_name_" property="name"/>
@@ -53,11 +54,12 @@
             useGeneratedKeys="true" keyColumn="id" keyProperty="id">
         INSERT INTO music_group_quit
         (id_,user_id_,music_group_id_,join_date_,quit_date_,create_time_,reason_,user_comment_,status_,
-         apply_user_id_,is_visit_,visit_time_,fee_json_,current_approve_role_,return_total_fee_,tenant_id_,reason_enum_,audit_school_staff_,school_staff_audit_status_)
+         apply_user_id_,is_visit_,visit_time_,fee_json_,current_approve_role_,return_total_fee_,tenant_id_,
+         reason_enum_,audit_school_staff_,school_staff_audit_status_,school_staff_audit_reason_)
         VALUES(#{id},#{userId},#{musicGroupId},#{joinDate},#{quitDate},#{createTime},#{reason},#{userComment},
         #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{applyUserId},#{isVisit},#{visitTime},
                #{feeJson},#{currentApproveRole},#{returnTotalFee},#{tenantId},#{reasonEnum,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-               #{auditSchoolStaff},#{schoolStaffAuditStatus})
+               #{auditSchoolStaff},#{schoolStaffAuditStatus},#{schoolStaffAuditReason})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -70,6 +72,9 @@
             <if test="userId != null">
                 user_id_ = #{userId},
             </if>
+            <if test="schoolStaffAuditReason != null and schoolStaffAuditReason != ''">
+                school_staff_audit_reason_ = #{schoolStaffAuditReason},
+            </if>
             <if test="auditSchoolStaff != null">
                 audit_school_staff_ = #{auditSchoolStaff},
             </if>
@@ -133,7 +138,7 @@
     </select>
     <sql id="queryPageSql">
         <where>
-        	mgq.tenant_id_ = #{tenantId}
+        	mgq.tenant_id_ = #{tenantId} AND (mgq.school_staff_audit_status_ IS NULL OR mgq.school_staff_audit_status_ = 'PASS')
             <if test="ids != null and ids != ''">
                 AND FIND_IN_SET(mgq.id_,#{ids})
             </if>
@@ -222,6 +227,7 @@
                 AND mgq.school_staff_audit_status_ IN ('PASS','REJECT')
             </if>
         </where>
+        ORDER BY mgq.id_ DESC
         <include refid="global.limit"/>
     </select>
     <select id="countBySchool" resultType="java.lang.Integer">

+ 0 - 1
mec-web/src/main/java/com/ym/mec/web/controller/school/SchoolCourseScheduleController.java

@@ -66,5 +66,4 @@ public class SchoolCourseScheduleController extends BaseController {
     public HttpResponseResult<List<CourseStudentDto>> queryCourseStudentList(Long courseId) {
         return succeed(courseScheduleService.queryCourseStudentList(courseId));
     }
-
 }

+ 22 - 2
mec-web/src/main/java/com/ym/mec/web/controller/school/SchoolMusicGroupQuitController.java

@@ -1,5 +1,6 @@
 package com.ym.mec.web.controller.school;
 
+import com.ym.mec.biz.dal.school.dto.MusicGroupQuitDetailDto;
 import com.ym.mec.biz.dal.school.dto.MusicGroupQuitPageDto;
 import com.ym.mec.biz.dal.school.page.MusicGroupQuitQueryInfo;
 import com.ym.mec.biz.service.MusicGroupQuitService;
@@ -25,11 +26,30 @@ public class SchoolMusicGroupQuitController extends BaseController {
     @Autowired
     private MusicGroupQuitService musicGroupQuitService;
 
-
 	@ApiOperation(value = "分页查询")
     @PostMapping("/queryPage")
-    public HttpResponseResult<PageInfo<MusicGroupQuitPageDto>> detail(@RequestBody MusicGroupQuitQueryInfo queryInfo,@RequestHeader Integer coopId) {
+    public HttpResponseResult<PageInfo<MusicGroupQuitPageDto>> queryPage(@RequestBody MusicGroupQuitQueryInfo queryInfo,@RequestHeader Integer coopId) {
         queryInfo.setCoopId(coopId);
         return succeed(musicGroupQuitService.queryPageBySchool(queryInfo));
 	}
+
+	@ApiOperation(value = "获取退团详情")
+    @GetMapping("/getDetail")
+    public HttpResponseResult<MusicGroupQuitDetailDto> getDetail(Long musicGroupQuitId) {
+        return succeed(musicGroupQuitService.getDetailBySchool(musicGroupQuitId));
+	}
+
+	@ApiOperation(value = "退团审批通过")
+    @GetMapping("/auditPass")
+    public HttpResponseResult auditPass(Long musicGroupQuitId,String reason) {
+        musicGroupQuitService.auditPassBySchool(musicGroupQuitId,reason);
+        return succeed();
+	}
+
+	@ApiOperation(value = "退团审批拒绝")
+    @GetMapping("/auditReject")
+    public HttpResponseResult auditReject(Long musicGroupQuitId,String reason) {
+        musicGroupQuitService.auditRejectBySchool(musicGroupQuitId,reason);
+        return succeed();
+	}
 }

+ 53 - 0
mec-web/src/main/java/com/ym/mec/web/controller/school/SchoolStudentHomeworkController.java

@@ -0,0 +1,53 @@
+package com.ym.mec.web.controller.school;
+
+
+import com.ym.mec.biz.dal.dto.StudentLessonExaminationDetailDto;
+import com.ym.mec.biz.dal.dto.StudentLessonExaminationDto;
+import com.ym.mec.biz.dal.page.StudentLessonExaminationQueryDto;
+import com.ym.mec.biz.dal.page.StudentLessonExaminationQueryInfo;
+import com.ym.mec.biz.service.StudentLessonExaminationDetailService;
+import com.ym.mec.biz.service.StudentLessonExaminationService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.page.PageInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Api(tags = "学校学员课后作业")
+@RestController
+@RequestMapping("/schoolStudentHomework")
+public class SchoolStudentHomeworkController extends BaseController {
+
+    @Resource
+    private StudentLessonExaminationService studentLessonExaminationService;
+    @Resource
+    private StudentLessonExaminationDetailService studentLessonExaminationDetailService;
+
+    @ApiOperation(value = "获取课后评测学员列表")
+    @PostMapping("queryLessonStudent")
+    public HttpResponseResult<PageInfo<StudentLessonExaminationDto>> queryLessonStudent(@RequestBody StudentLessonExaminationQueryInfo queryInfo) {
+        return succeed(studentLessonExaminationService.queryPage(queryInfo));
+    }
+
+    @ApiOperation(value = "获取单个学员评测")
+    @PostMapping("getLessonStudent")
+    public HttpResponseResult<StudentLessonExaminationDto> getLessonStudent(@RequestBody StudentLessonExaminationQueryInfo queryInfo) {
+        return succeed(studentLessonExaminationService.queryPage(queryInfo).getRows().get(0));
+    }
+
+    @ApiOperation(value = "获取学员评测详情列表")
+    @PostMapping("queryStudentLessonDetail")
+    public HttpResponseResult<List<StudentLessonExaminationDetailDto>> queryStudentLessonDetail(@RequestBody StudentLessonExaminationQueryDto query) {
+        return succeed(studentLessonExaminationDetailService.queryAll(query));
+    }
+
+
+}
+