Bladeren bron

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

周箭河 5 jaren geleden
bovenliggende
commit
cd491d1dba

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.dal.dao;
 import java.util.List;
 import java.util.Map;
 
+import com.ym.mec.biz.dal.dto.StudentRegisterPerDto;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import org.apache.ibatis.annotations.Param;
 
@@ -291,4 +292,10 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
      * @return
      */
     List<Map<Long, String>> queryPurchaseTypeMap(String musicGroupId);
+
+    /**
+     * 获取学员注册比例
+     * @return
+     */
+    List<StudentRegisterPerDto> queryStudentPer();
 }

+ 43 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentRegisterPerDto.java

@@ -0,0 +1,43 @@
+package com.ym.mec.biz.dal.dto;
+
+public class StudentRegisterPerDto {
+    private String organName;
+
+    private Integer studentNum;
+
+    private Integer perNum;
+
+    private float per;
+
+    public String getOrganName() {
+        return organName;
+    }
+
+    public void setOrganName(String organName) {
+        this.organName = organName;
+    }
+
+    public Integer getStudentNum() {
+        return studentNum;
+    }
+
+    public void setStudentNum(Integer studentNum) {
+        this.studentNum = studentNum;
+    }
+
+    public Integer getPerNum() {
+        return perNum;
+    }
+
+    public void setPerNum(Integer perNum) {
+        this.perNum = perNum;
+    }
+
+    public float getPer() {
+        return per;
+    }
+
+    public void setPer(float per) {
+        this.per = per;
+    }
+}

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupService.java

@@ -359,4 +359,11 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
      */
     void updateClassGroupInfo(Integer classGroupId);
 
+    /**
+     * 清除班级未开始课程
+     * @param classGroupId
+     * @return
+     */
+    boolean delClassNoStartCourse(Integer classGroupId);
+
 }

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentManageService.java

@@ -124,4 +124,10 @@ public interface StudentManageService {
      * @return
      */
     int studentUpdate(SysUser sysUser);
+
+    /**
+     * 获取激活比例
+     * @return
+     */
+    List<StudentRegisterPerDto> queryStudentPer();
 }

+ 1 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/StudentRegistrationService.java

@@ -1,9 +1,6 @@
 package com.ym.mec.biz.service;
 
-import com.ym.mec.biz.dal.dto.StudentAddDto;
-import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
-import com.ym.mec.biz.dal.dto.StudentFeeDetailDto;
-import com.ym.mec.biz.dal.dto.StudentInfo;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo;

+ 21 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -2093,4 +2093,25 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         }
         classGroupDao.update(classGroup);
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean delClassNoStartCourse(Integer classGroupId) {
+        Date date = new Date();
+        ClassGroup classGroup = classGroupDao.get(classGroupId);
+        if (classGroup == null) {
+            throw new BizException("班级不存在");
+        }
+
+        List<CourseSchedule> noStartCourses = courseScheduleService.findNoStartCoursesByClassGroupId(classGroup.getId());
+        if (noStartCourses == null || noStartCourses.size() <= 0) {
+            return true;
+        }
+        List<Long> courseScheduleIds = noStartCourses.stream().map(courseSchedule -> courseSchedule.getId()).collect(Collectors.toList());
+        courseScheduleDao.batchDeleteCourseSchedules(courseScheduleIds);
+        courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
+        teacherAttendanceDao.batchDeleteByCourseSchedules(courseScheduleIds);
+        courseScheduleStudentPaymentDao.deleteByCourseSchedule(courseScheduleIds);
+        return true;
+    }
 }

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java

@@ -319,4 +319,9 @@ public class StudentManageServiceImpl implements StudentManageService {
         teacherDao.updateUser(sysUser);
         return userId;
     }
+
+    @Override
+    public List<StudentRegisterPerDto> queryStudentPer() {
+        return studentRegistrationDao.queryStudentPer();
+    }
 }

+ 1 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -6,10 +6,7 @@ import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUserRole;
 import com.ym.mec.auth.api.enums.SysUserType;
 import com.ym.mec.biz.dal.dao.*;
-import com.ym.mec.biz.dal.dto.StudentAddDto;
-import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
-import com.ym.mec.biz.dal.dto.StudentFeeDetailDto;
-import com.ym.mec.biz.dal.dto.StudentInfo;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo;

+ 14 - 0
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -57,6 +57,7 @@
         <result column="email_" property="email"/>
         <result column="im_token_" property="imToken"/>
         <result column="id_card_no_" property="idCardNo"/>
+        <result column="real_name_" property="realName"/>
         <result column="wechat_id_" property="wechatId"/>
         <result column="name_" property="name"/>
         <result column="parents_name_" property="parentsName"/>
@@ -548,6 +549,19 @@
         LEFT JOIN music_group_subject_plan mgsp ON sr.actual_subject_id_ = mgsp.subject_id_ AND sr.music_group_id_ = mgsp.music_group_id_
         WHERE sr.music_group_id_ = #{musicGroupId}
     </select>
+    <resultMap id="StudentRegisterPerDtoMap" type="com.ym.mec.biz.dal.dto.StudentRegisterPerDto">
+        <result property="organName" column="organ_name_"/>
+        <result property="studentNum" column="student_num_"/>
+        <result property="per" column="per_"/>
+        <result property="perNum" column="per_num_"/>
+    </resultMap>
+    <select id="queryStudentPer" resultMap="StudentRegisterPerDtoMap">
+        SELECT o.`name_` organ_name_ ,a.n student_num_,ifnull(b.num,0) per_num_,ifnull(b.num,0)*100/a.n per_ FROM
+        (SELECT u.`organ_id_` ,count(u.id_) n from `sys_user` u WHERE u.`user_type_` = 'STUDENT' GROUP BY u.`organ_id_` ) a
+        left join
+        (select u.`organ_id_`,count(ifnull(u.id_,0)) num  from `sys_user` u WHERE u.`password_` IS NOT NULL and u.`user_type_` = 'STUDENT' GROUP BY u.`organ_id_` ) b
+        on a.organ_id_ = b.organ_id_ LEFT JOIN `organization` o on o.`id_` = a.organ_id_
+    </select>
 
     <update id="updateUser">
         UPDATE sys_user SET real_name_ = #{realName},id_card_no_=#{idCardNo} WHERE id_=#{id}

+ 1 - 1
mec-student/src/main/java/com/ym/mec/student/config/ResourceServerConfig.java

@@ -25,7 +25,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
 	@Override
 	public void configure(HttpSecurity http) throws Exception {
 		http.csrf().disable().exceptionHandling().accessDeniedHandler(baseAccessDeniedHandler).authenticationEntryPoint(baseAuthenticationEntryPoint).and()
-				.authorizeRequests().antMatchers("/v2/api-docs","/code/*","/register/*","/studentOrder/*","/musicGroup/getSubjectGoodsAndInfo","/musicGroup/getMusicGroupStatus","/musicGroup/getOrderStatus","/musicGroup/pay","/musicGroup/rePay").permitAll().anyRequest().authenticated().and().httpBasic();
+				.authorizeRequests().antMatchers("/v2/api-docs","/code/*","/register/*","/studentOrder/*","/musicGroup/getSubjectGoodsAndInfo","/musicGroup/getMusicGroupStatus","/musicGroup/getOrderStatus","/musicGroup/pay","/musicGroup/rePay","/studentManage/queryStudentPer").permitAll().anyRequest().authenticated().and().httpBasic();
 	}
 
 	@Override

+ 9 - 0
mec-student/src/main/java/com/ym/mec/student/controller/StudentManageController.java

@@ -154,4 +154,13 @@ public class StudentManageController extends BaseController {
         }
         return failed("获取用户失败");
     }
+
+    /**
+     * 学员注册激活比例列表
+     * @return
+     */
+    @GetMapping(value = "studentManage/queryStudentPer")
+    public Object queryStudentPer() {
+        return succeed(studentManageService.queryStudentPer());
+    }
 }

+ 8 - 0
mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupController.java

@@ -279,4 +279,12 @@ public class ClassGroupController extends BaseController {
     public HttpResponseResult getClassGroupTeachers(Integer classGroupId){
         return succeed(classGroupTeacherMapperService.getClassGroupTeachers(classGroupId));
     }
+
+    @ApiOperation(value = "清除班级未上课程")
+    @PostMapping("/delClassNoStartCourse")
+    @PreAuthorize("@pcs.hasPermissions('classGroup/delClassNoStartCourse')")
+    @ApiImplicitParams({@ApiImplicitParam(name = "classGroupId", value = "班级id", required = true, dataType = "int")})
+    public HttpResponseResult delClassNoStartCourse(Integer classGroupId) throws Exception {
+        return succeed(classGroupService.delClassNoStartCourse(classGroupId));
+    }
 }

+ 0 - 9
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -42,9 +42,6 @@ public class ExportController extends BaseController {
     @PreAuthorize("@pcs.hasPermissions('order/musicalListExport')")
     public void musicalListExport(HttpServletResponse response, String musicGroupId){
         List<Goods> musicalList = studentPaymentOrderDetailService.getMusicalList(musicGroupId);
-        if(musicalList == null || musicalList.size() < 1){
-            throw new BizException("数据为空");
-        }
         try {
             HSSFWorkbook workbook = POIUtil.exportExcel(new String[] {"乐团","分部","商品类型", "商品名称", "型号", "数量"}, new String[] {
                     "brief","memo","type.desc","name","specification","sellCount"}, musicalList);
@@ -63,9 +60,6 @@ public class ExportController extends BaseController {
     @PreAuthorize("@pcs.hasPermissions('order/musicalListDetailExport')")
     public void musicalListDetailExport(HttpServletResponse response, String musicGroupId){
         List<musicalListDetailDto> musicalList = studentPaymentOrderDetailService.getMusicalListDetail(musicGroupId);
-        if(musicalList == null || musicalList.size() < 1){
-            throw new BizException("数据为空");
-        }
         try {
             HSSFWorkbook workbook = POIUtil.exportExcel(new String[] {"乐团","学员编号","购买商品","学员姓名", "分部", "采购方式", "乐器金额", "教辅金额", "课程金额", "订单总价"}, new String[] {
                     "musicGroupName","userId","goodsNames","username","organName","kitGroupPurchaseTypeEnum.msg","musicalAmount","accessoriesAmount","courseAmount","orderAmount"}, musicalList);
@@ -84,9 +78,6 @@ public class ExportController extends BaseController {
     @PreAuthorize("@pcs.hasPermissions('studentRegistration/queryStudentApplyDetailExport')")
     public void queryStudentApplyDetailExport(StudentRegistrationQueryInfo queryInfo, HttpServletResponse response) {
         List<StudentApplyDetailDto> studentApplyDetail = studentRegistrationService.queryStudentDetailPage(queryInfo).getRows();
-        if(studentApplyDetail == null || studentApplyDetail.size() < 1){
-            throw new BizException("数据为空");
-        }
         try {
             HSSFWorkbook workbook = POIUtil.exportExcel(new String[] { "学生姓名","家长姓名", "年级", "班级", "性别", "服从调剂","报名专业", "实际专业","联系电话", "学员缴费状态", "乐器购买方式"}, new String[] {
                     "studentName","parentsName", "currentGrade", "currentClass", "gender.description", "isAllowAdjust.msg", "subjectName", "actualSubjectName", "parentsPhone","paymentStatus.desc","kitGroupPurchaseTypeEnum.msg"}, studentApplyDetail);