Browse Source

Merge remote-tracking branch 'origin/master'

Joburgess 5 years ago
parent
commit
bda37aa8ff

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

@@ -48,6 +48,11 @@ public class MusicGroupStudentsDto{
 
     private Boolean isActive = false;
 
+
+    private String activeName;
+
+    private String isNewStudentStr;
+
     public Boolean getIsActive() {
         return isActive;
     }
@@ -159,4 +164,20 @@ public class MusicGroupStudentsDto{
     public void setIsNewStudent(Integer isNewStudent) {
         this.isNewStudent = isNewStudent;
     }
+
+    public String getActiveName() {
+        return activeName;
+    }
+
+    public void setActiveName(String activeName) {
+        this.activeName = activeName;
+    }
+
+    public String getIsNewStudentStr() {
+        return isNewStudentStr;
+    }
+
+    public void setIsNewStudentStr(String isNewStudentStr) {
+        this.isNewStudentStr = isNewStudentStr;
+    }
 }

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

@@ -3,12 +3,22 @@ package com.ym.mec.biz.dal.dto;
 public class StudentRegisterPerDto {
     private String organName;
 
+    private String organId;
+
     private Integer studentNum;
 
     private Integer perNum;
 
     private float per;
 
+    public String getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(String organId) {
+        this.organId = organId;
+    }
+
     public String getOrganName() {
         return organName;
     }

+ 13 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -1920,12 +1920,22 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if(sysUser == null){
             throw new BizException("用户信息获取失败");
         }
-        MusicGroup musicGroup = saveLog(musicGroupId,MusicGroupStatusEnum.PAY);
+        MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
+        if(musicGroup == null){
+            throw new BizException("乐团信息不存在");
+        }
         //记录操作日志
-        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"确认开团(缴费中 -> 筹备中)",sysUser.getId(),""));
+        String event;
+        if(musicGroup.getStatus() == MusicGroupStatusEnum.APPLY){
+            event = "确认开团(报名中 -> 筹备中)";
+        }else if (musicGroup.getStatus() == MusicGroupStatusEnum.PAY){
+            event = "确认开团(缴费中 -> 筹备中)";
+        }else {
+            throw new BizException("当前乐团状态不支持此操作");
+        }
+        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,event,sysUser.getId(),""));
         musicGroup.setStatus(MusicGroupStatusEnum.PREPARE);
         musicGroupDao.update(musicGroup);
-
         //给家长发送乐团基础训练课短信
         //获取所有乐团学员列表
         List<StudentRegistration> students = studentRegistrationDao.queryStudentByMusicGroupId(musicGroupId);

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

@@ -536,9 +536,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         if (studentRegistration == null) {
             throw new BizException("参数校验失败");
         }
-        if(studentAddDto.getSignClassId() == null && studentAddDto.getMixClassId() == null){
+        /*if(studentAddDto.getSignClassId() == null && studentAddDto.getMixClassId() == null){
             throw new BizException("参数校验失败: 单技班或合奏班必填一项");
-        }
+        }*/
         String musicGroupId = studentRegistration.getMusicGroupId();
 
         StudentRegistration phoneAndMusicGroupId = studentRegistrationDao.getByPhoneAndMusicGroupId(musicGroupId, studentRegistration.getParentsPhone());
@@ -845,14 +845,14 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                     studentRegistration.getParentsName(), studentPaymentOrder.getActualAmount());
 
 //            //生成课程协议
-            contractService.transferMusicGroupCoursesContract(studentRegistration.getUserId(),studentRegistration.getMusicGroupId());
+            /*contractService.transferMusicGroupCoursesContract(studentRegistration.getUserId(),studentRegistration.getMusicGroupId());
             //商品协议(租赁时候有)
             if(musicOneSubjectClassPlan.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.LEASE)){
                 StudentPaymentOrderDetail applyOrderMusical = studentPaymentOrderDetailService.findApplyOrderMusical(studentPaymentOrder.getId());
                 if(applyOrderMusical != null && applyOrderMusical.getGoodsIdList() != null && !applyOrderMusical.getGoodsIdList().equals("")){
                     contractService.transferGoodsContract(studentPaymentOrder.getUserId(),studentPaymentOrder.getMusicGroupId(),applyOrderMusical.getGoodsIdList(),musicOneSubjectClassPlan.getKitGroupPurchaseType());
                 }
-            }
+            }*/
         }
 
 

+ 1 - 2
mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml

@@ -631,13 +631,12 @@
         GROUP_CONCAT(DISTINCT vg.name_) vip_group_name_,GROUP_CONCAT(DISTINCT o.name_) organ_name_,GROUP_CONCAT(DISTINCT s.name_) music_group_subject_
         FROM sys_user su
         LEFT JOIN course_schedule_student_payment cssp ON su.id_ = cssp.user_id_
-        LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
         LEFT JOIN music_group mg ON cssp.music_group_id_ = mg.id_ AND cssp.group_type_ = 'MUSIC'
         LEFT JOIN vip_group vg ON cssp.music_group_id_ = vg.id_ AND cssp.group_type_ = 'VIP'
         LEFT JOIN organization o ON su.organ_id_ = o.id_
         LEFT JOIN student_registration sr ON su.id_ = sr.user_id_ AND cssp.music_group_id_ = sr.music_group_id_
         LEFT JOIN `subject` s ON s.id_ = sr.actual_subject_id_
-        WHERE cs.status_ != 'OVER' AND su.password_ IS NULL AND su.user_type_ = 'STUDENT'
+        WHERE cssp.id_ IS NOT NULL AND su.user_type_ = 'STUDENT' AND (sr.music_group_status_ != 'QUIT' OR sr.id_ IS NULL) AND su.password_ IS NULL
         <if test="organId != null and organId != ''">
             AND FIND_IN_SET(su.organ_id_,#{organId})
         </if>

+ 13 - 15
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -561,22 +561,20 @@
         <result property="perNum" column="per_num_"/>
     </resultMap>
     <select id="queryStudentPer" resultMap="StudentRegisterPerDtoMap">
-        SELECT a.name_ organ_name_,a.num student_num_,b.num per_num_,ifnull(b.num,0)*100/a.num per_ FROM (
-        SELECT b.name_,COUNT(a.id_) num,b.id_ FROM sys_user a LEFT JOIN organization b ON a.organ_id_=b.id_
-        WHERE a.id_ IN(
-        SELECT b.id_ FROM course_schedule_student_payment a LEFT JOIN sys_user b ON a.user_id_=b.id_
-        LEFT JOIN course_schedule c ON a.course_schedule_id_=c.id_ WHERE b.user_type_='STUDENT' AND c.status_ IN('UNDERWAY','NOT_START')
-        GROUP BY a.user_id_,b.organ_id_ )
-        GROUP BY organ_id_) a
+        SELECT a.name_ organ_name_,a.num_ student_num_,b.num_ per_num_,ifnull(b.num_,0)*100/a.num_ per_
+        FROM (SELECT o.id_,o.name_,COUNT(DISTINCT su.id_) num_ FROM sys_user su
+        LEFT JOIN course_schedule_student_payment cssp ON su.id_ = cssp.user_id_
+        LEFT JOIN student_registration sr ON su.id_ = sr.user_id_ AND cssp.music_group_id_ = sr.music_group_id_
+        LEFT JOIN organization o ON su.organ_id_ = o.id_
+        WHERE cssp.id_ IS NOT NULL AND su.user_type_ = 'STUDENT' AND (sr.id_ IS NULL OR sr.music_group_status_ != 'QUIT')
+        GROUP BY su.organ_id_) a
         LEFT JOIN
-        (SELECT b.name_,COUNT(a.id_) num,b.id_ FROM sys_user a LEFT JOIN organization b ON a.organ_id_=b.id_
-        WHERE a.id_ IN(
-        SELECT b.id_ FROM course_schedule_student_payment a LEFT JOIN sys_user b ON a.user_id_=b.id_
-        LEFT JOIN course_schedule c ON a.course_schedule_id_ = c.id_
-        WHERE b.user_type_='STUDENT' AND password_ IS NOT NULL AND c.status_ IN('UNDERWAY','NOT_START') GROUP BY a.user_id_,b.organ_id_ )
-        GROUP BY organ_id_) b
-        ON a.id_=b.id_
-        WHERE a.name_ IS NOT NULL
+        (SELECT su.organ_id_ id_,COUNT(DISTINCT su.id_) num_ FROM sys_user su
+        LEFT JOIN course_schedule_student_payment cssp ON su.id_ = cssp.user_id_
+        LEFT JOIN student_registration sr ON su.id_ = sr.user_id_ AND cssp.music_group_id_ = sr.music_group_id_
+        WHERE cssp.id_ IS NOT NULL AND su.user_type_ = 'STUDENT' AND (sr.id_ IS NULL OR sr.music_group_status_ != 'QUIT') AND su.password_ IS NOT NULL
+        GROUP BY su.organ_id_) b
+        ON a.id_ = b.id_
         ORDER BY per_ DESC
     </select>
 

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/TeacherAttendanceMapper.xml

@@ -205,7 +205,7 @@
         FROM
             course_schedule cs left join teacher_attendance ta  ON ta.course_schedule_id_=cs.id_
         <include refid="queryCondition"/>
-        ORDER BY cs.class_date_ DESC,cs.start_class_time_ DESC
+        ORDER BY cs.class_date_ ASC,cs.start_class_time_ ASC
         <include refid="global.limit"/>
     </select>
 

+ 1 - 1
mec-teacher/src/main/java/com/ym/mec/teacher/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/*","/teacher/queryStudentApply","/teacher/querySubByMusicGroupId").permitAll().anyRequest().authenticated().and().httpBasic();
+				.authorizeRequests().antMatchers("/v2/api-docs","/code/*","/teacher/queryStudentApply","/teacher/querySubByMusicGroupId","/studentRegistration/updateSubject").permitAll().anyRequest().authenticated().and().httpBasic();
 	}
 
 	@Override

+ 13 - 3
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherManageController.java

@@ -9,13 +9,12 @@ import com.ym.mec.biz.service.*;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.UploadReturnBean;
 import com.ym.mec.util.upload.UploadUtil;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.*;
 import org.apache.commons.lang3.StringUtils;
 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.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -38,6 +37,8 @@ public class TeacherManageController extends BaseController {
     private ClassGroupService classGroupService;
     @Autowired
     private SysUserBankCardService sysUserBankCardService;
+    @Autowired
+    private StudentRegistrationService studentRegistrationService;
 
     private final static Logger LOGGER = LoggerFactory.getLogger(TeacherManageController.class);
 
@@ -143,4 +144,13 @@ public class TeacherManageController extends BaseController {
         }
         return succeed(sysUserBankCardService.findByUser(sysUser.getId()));
     }
+
+    @ApiOperation(value = "调剂学生报名专业")
+    @PostMapping("studentRegistration/updateSubject")
+    public Object batchUpdateSubject(Integer userId,Integer subId,String musicGroupId) throws Exception {
+        if (null == userId || subId == null || StringUtils.isEmpty(musicGroupId)) {
+            return failed("参数校验异常");
+        }
+        return succeed(studentRegistrationService.batchUpdateSubject(userId, subId,musicGroupId));
+    }
 }

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

@@ -2,18 +2,19 @@ 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.*;
+import com.ym.mec.biz.dal.dao.EmployeeDao;
+import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
+import com.ym.mec.biz.dal.dao.VipGroupDao;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.GroupType;
-import com.ym.mec.biz.dal.enums.KitPurchaseMethodEnum;
 import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.dal.page.CourseScheduleTeacherSalaryQueryInfo;
+import com.ym.mec.biz.dal.page.MusicGroupStudentQueryInfo;
 import com.ym.mec.biz.dal.page.StudentPaymentOrderQueryInfo;
 import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.util.collection.MapUtil;
@@ -26,13 +27,16 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
-import java.util.*;
-import java.util.stream.Collectors;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 @RequestMapping
 @Api(tags = "数据导出服务")
@@ -54,12 +58,8 @@ public class ExportController extends BaseController {
     @Autowired
     private StudentPaymentOrderService studentPaymentOrderService;
     @Autowired
-    private StudentPaymentOrderDetailDao studentPaymentOrderDetailDao;
-    @Autowired
     private StudentRegistrationDao studentRegistrationDao;
     @Autowired
-    private SporadicChargeInfoDao sporadicChargeInfoDao;
-    @Autowired
     private VipGroupDao vipGroupDao;
 
     @ApiOperation(value = "导出学员是否有课")
@@ -265,4 +265,57 @@ public class ExportController extends BaseController {
         }
     }
 
+
+    @ApiOperation(value = "乐团管理--乐团详情-导出学员列表")
+    @RequestMapping("export/musicGroupStudent")
+    @PreAuthorize("@pcs.hasPermissions('export/musicGroupStudent')")
+    public void queryMusicGroupStudent(MusicGroupStudentQueryInfo queryInfo, HttpServletResponse response) {
+        queryInfo.setRows(99999);
+        PageInfo<MusicGroupStudentsDto> musicGroupStudentsDtoPageInfo = studentManageService.queryMusicGroupStudent(queryInfo);
+        try {
+            for (MusicGroupStudentsDto row : musicGroupStudentsDtoPageInfo.getRows()) {
+                if (row.getGender().equals("1")) {
+                    row.setGender("男");
+                } else {
+                    row.setGender("女");
+                }
+                if (row.getPaymentStatus().equals("PAID_COMPLETED")) {
+                    row.setPaymentStatus("完成缴费");
+                } else if (row.getPaymentStatus().equals("NON_PAYMENT")) {
+                    row.setPaymentStatus("未缴费");
+                } else if (row.getPaymentStatus().equals("PROCESSING")) {
+                    row.setPaymentStatus("缴费中");
+                }
+                if(row.getStudentStatus().equals("NORMAL")){
+                    row.setStudentStatus("在读");
+                }else {
+                    row.setStudentStatus("退团");
+                }
+                if (row.getIsActive()) {
+                    row.setActiveName("是");
+                } else {
+                    row.setActiveName("否");
+                }
+                if(row.getIsNewStudent().equals(1)){
+                    row.setIsNewStudentStr("是");
+                }else {
+                    row.setIsNewStudentStr("否");
+                }
+                row.setCurrentGrade(row.getCurrentGrade() + row.getCurrentClass());
+            }
+            String[] header = {"学生姓名", "性别", "联系电话", "年级班级", "专业", "学员状态", "新增学员", "缴费金额",
+                    "下次缴费日期", "报名缴费", "是否激活"};
+            String[] body = {"realName", "gender", "phone", "currentGrade", "subjectName", "studentStatus", "isNewStudentStr",
+                    "courseFee", "nextPaymentDate","paymentStatus", "activeName"};
+            HSSFWorkbook workbook = POIUtil.exportExcel(header, body, musicGroupStudentsDtoPageInfo.getRows());
+            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();
+        }
+    }
+
 }

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java

@@ -161,7 +161,7 @@ public class MusicGroupController extends BaseController {
 		return succeed(musicGroupService.openPay(musicGroupId, expireDate));
 	}
 
-	@ApiOperation(value = "确认开团(缴费中 -->  筹备中)")
+	@ApiOperation(value = "确认开团(缴费中(报名中) -->  筹备中)")
 	@PostMapping("/found")
 	@PreAuthorize("@pcs.hasPermissions('musicGroup/found')")
 	@ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String") })