浏览代码

update:学生端退团相关

yonge 4 年之前
父节点
当前提交
b1ea5afaa6
共有 18 个文件被更改,包括 327 次插入58 次删除
  1. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupQuitDao.java
  2. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java
  3. 15 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicCardDto.java
  4. 28 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentMusicGroupDto.java
  5. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ApprovalStatus.java
  6. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupQuit.java
  7. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentManageCourseQueryInfo.java
  8. 11 1
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java
  9. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentRegistrationService.java
  10. 61 21
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  11. 45 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  12. 3 2
      mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml
  13. 10 2
      mec-biz/src/main/resources/config/mybatis/MusicGroupQuitMapper.xml
  14. 2 1
      mec-biz/src/main/resources/config/mybatis/StudentAttendanceMapper.xml
  15. 15 0
      mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml
  16. 32 8
      mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java
  17. 45 0
      mec-student/src/main/java/com/ym/mec/student/controller/StudentAttendanceController.java
  18. 23 12
      mec-student/src/main/java/com/ym/mec/student/controller/StudentManageController.java

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupQuitDao.java

@@ -32,4 +32,12 @@ public interface MusicGroupQuitDao extends BaseDAO<Long, MusicGroupQuit> {
      * @return
      */
     List<MusicGroupQuit> getQuits(@Param("musicGroupId") String musicGroupId, @Param("userIds") List<Integer> userIds);
+    
+    /**
+     * 获取学生乐团最后一次退团记录
+     * @param userId
+     * @param musicGroupId
+     * @return
+     */
+    MusicGroupQuit queryByUserIdAndMusicGroupId(@Param("userId") Integer userId, @Param("musicGroupId") String musicGroupId);
 }

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

@@ -6,6 +6,7 @@ import java.util.Set;
 
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.Subject;
+
 import org.apache.ibatis.annotations.Param;
 
 import com.ym.mec.auth.api.entity.SysUser;
@@ -392,4 +393,11 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
      * @return
      */
     Integer getMusicGroupSubjectStudentNum(@Param("musicGroupId") String musicGroupId, @Param("subjectIds") String subjectIds);
+    
+    /**
+     * 查询用户所在乐团信息
+     * @param userId
+     * @return
+     */
+    List<StudentMusicGroupDto> queryStudentMusicGroupInfo(Integer userId);
 }

+ 15 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicCardDto.java

@@ -1,9 +1,11 @@
 package com.ym.mec.biz.dal.dto;
 
-import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
 import io.swagger.annotations.ApiModelProperty;
+
 import org.apache.commons.lang3.StringUtils;
 
+import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
+
 public class MusicCardDto {
     @ApiModelProperty(value = "报名id",required = true)
     private String registerId;
@@ -13,6 +15,9 @@ public class MusicCardDto {
 
     @ApiModelProperty(value = "乐团编号",required = true)
     private String musicGroupId;
+    
+    @ApiModelProperty(value = "乐团状态(报名中、缴费中、筹备中、进行中、取消)",required = false)
+    private MusicGroupStatusEnum musicGroupStatus;
 
     @ApiModelProperty(value = "科目编号",required = true)
     private String subjectId;
@@ -57,7 +62,15 @@ public class MusicCardDto {
         this.musicGroupId = musicGroupId;
     }
 
-    public Integer getMusicGroupNum() {
+    public MusicGroupStatusEnum getMusicGroupStatus() {
+		return musicGroupStatus;
+	}
+
+	public void setMusicGroupStatus(MusicGroupStatusEnum musicGroupStatus) {
+		this.musicGroupStatus = musicGroupStatus;
+	}
+
+	public Integer getMusicGroupNum() {
         return musicGroupNum;
     }
 

+ 28 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentMusicGroupDto.java

@@ -0,0 +1,28 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.entity.MusicGroup;
+import com.ym.mec.biz.dal.entity.MusicGroupQuit;
+import com.ym.mec.biz.dal.entity.StudentRegistration;
+
+public class StudentMusicGroupDto extends StudentRegistration {
+
+	private MusicGroupQuit musicGroupQuit = new MusicGroupQuit();
+	
+	private MusicGroup musicGroup = new MusicGroup();
+
+	public MusicGroupQuit getMusicGroupQuit() {
+		return musicGroupQuit;
+	}
+
+	public void setMusicGroupQuit(MusicGroupQuit musicGroupQuit) {
+		this.musicGroupQuit = musicGroupQuit;
+	}
+
+	public MusicGroup getMusicGroup() {
+		return musicGroup;
+	}
+
+	public void setMusicGroup(MusicGroup musicGroup) {
+		this.musicGroup = musicGroup;
+	}
+}

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ApprovalStatus.java

@@ -3,7 +3,7 @@ package com.ym.mec.biz.dal.entity;
 import com.ym.mec.common.enums.BaseEnum;
 
 public enum ApprovalStatus implements BaseEnum<String, ApprovalStatus> {
-	APPROVED, DENIED, PROCESSING;
+	APPROVED, DENIED, PROCESSING, CANCELED;
 
 	@Override
 	public String getCode() {

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

@@ -26,6 +26,8 @@ public class MusicGroupQuit {
 
 	/**  */
 	private java.util.Date createTime;
+	
+	private String userComment;
 
 	/** 原因 */
 	private String reason;
@@ -92,6 +94,14 @@ public class MusicGroupQuit {
 		return this.reason;
 	}
 
+	public String getUserComment() {
+		return userComment;
+	}
+
+	public void setUserComment(String userComment) {
+		this.userComment = userComment;
+	}
+
 	public ApprovalStatus getStatus() {
 		return status;
 	}

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentManageCourseQueryInfo.java

@@ -13,7 +13,7 @@ import com.ym.mec.common.page.QueryInfo;
 public class StudentManageCourseQueryInfo extends QueryInfo {
 
     @ApiModelProperty(value = "学生id",required = true)
-    private Long studentId;
+    private Integer studentId;
 
     @ApiModelProperty(value = "vip课程ID",required = false)
     private Long vipGroupId;
@@ -41,11 +41,11 @@ public class StudentManageCourseQueryInfo extends QueryInfo {
         this.vipGroupId = vipGroupId;
     }
 
-    public Long getStudentId() {
+    public Integer getStudentId() {
         return studentId;
     }
 
-    public void setStudentId(Long studentId) {
+    public void setStudentId(Integer studentId) {
         this.studentId = studentId;
     }
 

+ 11 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java

@@ -115,9 +115,19 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	/**
 	 * 申请退团
 	 * @param musicGroupId 乐团编号
+	 * @param reason
+	 * @return
+	 */
+	boolean applyQuitMusicGroup(String musicGroupId, String reason);
+	
+	/**
+	 * 取消退团
+	 * @param userId
+	 * @param musicGroupId
+	 * @param reason
 	 * @return
 	 */
-	boolean applyQuitMusicGroup(String musicGroupId);
+	boolean cancelQuitMusicGroup(Integer userId, String musicGroupId, String reason);
 
 	/**
 	 * 审批退团

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

@@ -310,5 +310,12 @@ public interface StudentRegistrationService extends BaseService<Long, StudentReg
      * @return boolean
      */
     BigDecimal updateUserSurplusCourseFee(Integer userId, String musicGroupId, BigDecimal amount, String memo, Integer operatorId);
+    
+    /**
+     * 查询指定学生的乐团信息
+     * @param userId
+     * @return
+     */
+    List<StudentMusicGroupDto> queryStudentMusicGroupInfo(Integer userId);
 
 }

+ 61 - 21
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -6,10 +6,18 @@ import static com.ym.mec.biz.dal.enums.DealStatusEnum.SUCCESS;
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
 import java.util.stream.Collectors;
 
-import com.ym.mec.biz.dal.dao.*;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -22,6 +30,38 @@ import com.alibaba.fastjson.TypeReference;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUserRole;
+import com.ym.mec.biz.dal.dao.ChargeTypeDao;
+import com.ym.mec.biz.dal.dao.ClassGroupDao;
+import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
+import com.ym.mec.biz.dal.dao.CooperationOrganDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
+import com.ym.mec.biz.dal.dao.EmployeeDao;
+import com.ym.mec.biz.dal.dao.MusicGroupBuildLogDao;
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderCourseSettingsDao;
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDetailDao;
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentEntitiesDao;
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentStudentCourseDetailDao;
+import com.ym.mec.biz.dal.dao.MusicGroupPurchaseListDao;
+import com.ym.mec.biz.dal.dao.MusicGroupQuitDao;
+import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
+import com.ym.mec.biz.dal.dao.MusicGroupSubjectGoodsGroupDao;
+import com.ym.mec.biz.dal.dao.MusicGroupSubjectPlanDao;
+import com.ym.mec.biz.dal.dao.OrganizationDao;
+import com.ym.mec.biz.dal.dao.SchoolDao;
+import com.ym.mec.biz.dal.dao.SporadicChargeInfoDao;
+import com.ym.mec.biz.dal.dao.StudentDao;
+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDetailDao;
+import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
+import com.ym.mec.biz.dal.dao.StudentVisitDao;
+import com.ym.mec.biz.dal.dao.SubjectChangeDao;
+import com.ym.mec.biz.dal.dao.SysConfigDao;
+import com.ym.mec.biz.dal.dao.TeacherAttendanceDao;
+import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.BasicUserDto;
 import com.ym.mec.biz.dal.dto.CourseFormDto;
 import com.ym.mec.biz.dal.dto.CourseScheduleTeachersDto;
@@ -1512,7 +1552,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
     @Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
-    public boolean applyQuitMusicGroup(String musicGroupId) {
+    public boolean applyQuitMusicGroup(String musicGroupId, String reason) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
             throw new BizException("用户信息获取失败");
@@ -1527,6 +1567,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         musicGroupQuit.setJoinDate(sysUser.getCreateTime());
         musicGroupQuit.setMusicGroupId(musicGroupId);
         musicGroupQuit.setUserId(sysUser.getId());
+        musicGroupQuit.setUserComment(reason);
         musicGroupQuit.setStatus(ApprovalStatus.PROCESSING);
 
         musicGroupQuitDao.insert(musicGroupQuit);
@@ -1541,6 +1582,19 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     }
 
     @Override
+	public boolean cancelQuitMusicGroup(Integer userId, String musicGroupId, String reason) {
+    	MusicGroupQuit musicGroupQuit = musicGroupQuitDao.queryByUserIdAndMusicGroupId(userId, musicGroupId);
+    	if(musicGroupQuit == null){
+    		throw new BizException("操作失败,没有查询到退团记录");
+    	}
+    	musicGroupQuit.setStatus(ApprovalStatus.CANCELED);
+        musicGroupQuit.setReason(reason);
+        musicGroupQuit.setQuitDate(new Date());
+        musicGroupQuitDao.update(musicGroupQuit);
+    	return true;
+	}
+
+	@Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     public boolean approveQuitMusicGroup(Long id, ApprovalStatus status, String reason, boolean isRefundCourseFee, boolean isRefundInstrumentFee,
                                          boolean isRefundTeachingAssistantsFee) {
@@ -1639,10 +1693,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
             List<StudentPaymentOrderDetail> orderDetailList = studentPaymentOrderDetailDao.findApplyOrderGoods(studentPaymentOrder.getId());
 
-            Set<String> courseTypeSet = new HashSet<>();
             if (isRefundCourseFee) {
-                List<MusicGroupPaymentCalenderCourseSettings> courseSettings = musicGroupPaymentCalenderCourseSettingsDao.getMusicGroupRegCalenderCourseSettings(studentRegistration.getMusicGroupId());
-                courseTypeSet = courseSettings.stream().map(e -> e.getCourseType().getCode()).collect(Collectors.toSet());
+                // 退课程费用
+            	amount = amount.add(studentRegistration.getSurplusCourseFee());
             }
 
             SubjectChange studentLastChange = null;
@@ -1660,12 +1713,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                     remitFee = BigDecimal.ZERO;
                 }
 
-                if (isRefundCourseFee) {
-                    // 退课程费用
-                    if (courseTypeSet.contains(detail.getType().getCode())) {
-                        amount = amount.add(detail.getPrice());
-                    }
-                }
                 if (isRefundInstrumentFee && studentLastChange == null) {
                     // 退乐器费用
                     if (detail.getType() == OrderDetailTypeEnum.MUSICAL) {
@@ -1794,10 +1841,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
         List<StudentPaymentOrderDetail> orderDetailList = studentPaymentOrderDetailDao.findApplyOrderGoods(studentPaymentOrder.getId());
 
-        Set<String> courseTypeSet = new HashSet<>();
         if (isRefundCourseFee) {
-            List<MusicGroupPaymentCalenderCourseSettings> courseSettings = musicGroupPaymentCalenderCourseSettingsDao.getMusicGroupRegCalenderCourseSettings(studentRegistration.getMusicGroupId());
-            courseTypeSet = courseSettings.stream().map(e -> e.getCourseType().getCode()).collect(Collectors.toSet());
+            // 退课程费用
+        	amount = amount.add(studentRegistration.getSurplusCourseFee());
         }
 
         SubjectChange studentLastChange = null;
@@ -1815,12 +1861,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 detail.setPrice(detail.getPrice().subtract(remitFee));
                 remitFee = BigDecimal.ZERO;
             }
-            if (isRefundCourseFee) {
-                // 退课程费用
-                if (courseTypeSet.contains(detail.getType().getCode())) {
-                    amount = amount.add(detail.getPrice());
-                }
-            }
             if (isRefundInstrumentFee && studentLastChange == null) {
                 // 退乐器费用
                 if (detail.getType() == OrderDetailTypeEnum.MUSICAL) {

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

@@ -16,10 +16,6 @@ import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
 
-import com.ym.mec.biz.dal.dao.*;
-import com.ym.mec.biz.dal.dto.*;
-import com.ym.mec.biz.dal.enums.*;
-import com.ym.mec.util.date.DateUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -27,11 +23,37 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
 import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUserRole;
+import com.ym.mec.biz.dal.dao.CourseScheduleDao;
+import com.ym.mec.biz.dal.dao.GoodsDao;
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderCourseSettingsDao;
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDetailDao;
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentStudentCourseDetailDao;
+import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
+import com.ym.mec.biz.dal.dao.MusicGroupSubjectPlanDao;
+import com.ym.mec.biz.dal.dao.StudentCourseFeeDetailDao;
+import com.ym.mec.biz.dal.dao.StudentDao;
+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDetailDao;
+import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
+import com.ym.mec.biz.dal.dao.SubjectChangeDao;
+import com.ym.mec.biz.dal.dao.SubjectDao;
+import com.ym.mec.biz.dal.dao.SysConfigDao;
+import com.ym.mec.biz.dal.dao.SysUserCashAccountDao;
+import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.biz.dal.dto.CourseFormDto;
+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.StudentMusicDetailDto;
+import com.ym.mec.biz.dal.dto.StudentMusicGroupDto;
 import com.ym.mec.biz.dal.entity.ClassGroup;
 import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
 import com.ym.mec.biz.dal.entity.CooperationOrgan;
@@ -55,6 +77,19 @@ import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.biz.dal.entity.SubjectChange;
 import com.ym.mec.biz.dal.entity.SysUserCashAccount;
 import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
+import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
+import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
+import com.ym.mec.biz.dal.enums.CourseStatusEnum;
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
+import com.ym.mec.biz.dal.enums.GoodsType;
+import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
+import com.ym.mec.biz.dal.enums.MessageTypeEnum;
+import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
+import com.ym.mec.biz.dal.enums.OrderTypeEnum;
+import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
+import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
+import com.ym.mec.biz.dal.enums.StudentMusicGroupStatusEnum;
 import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo;
 import com.ym.mec.biz.service.ClassGroupService;
 import com.ym.mec.biz.service.ClassGroupStudentMapperService;
@@ -83,8 +118,8 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
+import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.http.HttpUtil;
-import org.springframework.util.CollectionUtils;
 
 @Service
 public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, StudentRegistration> implements StudentRegistrationService {
@@ -1469,4 +1504,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         studentRegistrationDao.update(studentRegistration);
         return amount;
     }
+
+	@Override
+	public List<StudentMusicGroupDto> queryStudentMusicGroupInfo(Integer userId) {
+		return studentRegistrationDao.queryStudentMusicGroupInfo(userId);
+	}
 }

+ 3 - 2
mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml

@@ -230,7 +230,7 @@
         <result column="music_group_id_" property="musicGroupId"/>
         <result column="vip_class_num_" property="vipClassNum"/>
         <result column="music_group_num_" property="musicGroupNum"/>
-        <!--<result column="payment_status_" property="paymentStatus" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>-->
+        <result column="music_group_status_" property="musicGroupStatus" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
     </resultMap>
 
     <select id="queryUserMusicGroups" resultMap="queryUserMusicGroupsMap">
@@ -241,7 +241,8 @@
              , mg.name_     music_group_name_
              , s.name_      subject_name_
              , s.id_        subject_id_
-             , mg.id_       music_group_id_
+             , mg.id_       music_group_id_,
+    		 mg.status_ music_group_status_
         FROM student_registration sr
                  LEFT JOIN music_group mg ON sr.music_group_id_ = mg.id_
                  LEFT JOIN `subject` s ON sr.actual_subject_id_ = s.id_

+ 10 - 2
mec-biz/src/main/resources/config/mybatis/MusicGroupQuitMapper.xml

@@ -12,6 +12,7 @@
         <result column="quit_date_" property="quitDate"/>
         <result column="create_time_" property="createTime"/>
         <result column="reason_" property="reason"/>
+        <result column="user_comment_" property="userComment"/>
         <result column="status_" property="status"
                 typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
     </resultMap>
@@ -36,8 +37,8 @@
         <!-- <selectKey resultClass="int" keyProperty="id" > SELECT SEQ_WSDEFINITION_ID.nextval
             AS ID FROM DUAL </selectKey> -->
         INSERT INTO music_group_quit
-        (id_,user_id_,music_group_id_,join_date_,quit_date_,create_time_,reason_,status_)
-        VALUES(#{id},#{userId},#{musicGroupId},#{joinDate},#{quitDate},#{createTime},#{reason},
+        (id_,user_id_,music_group_id_,join_date_,quit_date_,create_time_,reason_,user_comment_,status_)
+        VALUES(#{id},#{userId},#{musicGroupId},#{joinDate},#{quitDate},#{createTime},#{reason},#{userComment},
         #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
     </insert>
 
@@ -57,6 +58,9 @@
             <if test="reason != null">
                 reason_ = #{reason},
             </if>
+            <if test="userComment != null">
+                user_comment_ = #{userComment},
+            </if>
             <if test="quitDate != null">
                 quit_date_ = #{quitDate},
             </if>
@@ -116,4 +120,8 @@
         GROUP BY user_id_
         )
     </select>
+
+    <select id="queryByUserIdAndMusicGroupId" resultMap="MusicGroupQuit">
+        select * from music_group_quit where id_ in (select max(id_) from music_group_quit where music_group_id_ = #{musicGroupId} AND user_id_ = #{userId})
+    </select>
 </mapper>

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

@@ -37,6 +37,7 @@
         <result column="class_date_" property="courseSchedule.classDate"/>
         <result column="start_class_time_" property="courseSchedule.startClassTime"/>
         <result column="end_class_time_" property="courseSchedule.endClassTime"/>
+        <result column="new_course_id_" property="courseSchedule.newCourseId"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -486,7 +487,7 @@
     <select id="findStudentAttendance" resultMap="StudentAttendance">
         SELECT cssp.course_schedule_id_,cssp.user_id_,cssp.group_type_,cssp.music_group_id_,sa.sign_in_time_,sa.sign_out_time_,sa.status_,
         su.username_,su.phone_,su.avatar_,cs.teach_mode_,cs.type_ course_type_,o.name_ organ_name_,tu.real_name_ teacher_name_,cs.name_ course_schedule_name_,cs.status_ course_status_,
-        cs.actual_teacher_id_ teacher_id_,cs.class_date_ ,cs.start_class_time_,cs.end_class_time_ 
+        cs.actual_teacher_id_ teacher_id_,cs.class_date_ ,cs.start_class_time_,cs.end_class_time_ ,cs.new_course_id_
         FROM course_schedule_student_payment cssp left join course_schedule cs on cs.id_ = cssp.course_schedule_id_
         left join student_attendance sa on cssp.course_schedule_id_ = sa.course_schedule_id_ and cssp.user_id_ = sa.user_id_
         LEFT JOIN sys_user su ON cssp.user_id_ = su.id_

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

@@ -42,6 +42,12 @@
         <result column="deposit_fee_" property="depositFee" />
         <result column="surplus_course_fee_" property="surplusCourseFee"/>
     </resultMap>
+    
+    <resultMap type="com.ym.mec.biz.dal.dto.StudentMusicGroupDto" id="StudentMusicGroupDto" extends="StudentRegistration">
+    	<result column="music_group_quit_status_" property="musicGroupQuit.status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="music_group_status_" property="musicGroup.status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="music_group_name_" property="musicGroup.name"/>
+    </resultMap>
 
     <resultMap type="com.ym.mec.biz.dal.dto.StudentInfo" id="StudentInfo">
         <result column="id_" property="id"/>
@@ -708,4 +714,13 @@
         SELECT COUNT(*) FROM student_registration WHERE music_group_id_=#{musicGroupId}
         AND INTE_ARRAY(actual_subject_id_,#{subjectIds}) AND music_group_status_ = 'NORMAL'
     </select>
+    
+    <select id="queryStudentMusicGroupInfo" resultMap="StudentMusicGroupDto">
+    	select sr.*,s.name_ subject_name_,mg.status_ music_group_status_,mg.name_ music_group_name_,mgq.status_ music_group_quit_status_ 
+    	from student_registration sr left join subject s on s.id_ = sr.actual_subject_id_
+    	left join music_group mg on sr.music_group_id_ = mg.id_
+    	left join (select * from music_group_quit where id_ in (select max(id_) from music_group_quit group by music_group_id_)) mgq  on mgq.music_group_id_ = mg.id_
+    	where sr.user_id_ = #{userId}
+    	order by sr.id_ 
+    </select>
 </mapper>

+ 32 - 8
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java

@@ -1,12 +1,10 @@
 package com.ym.mec.student.controller;
 
-import com.ym.mec.biz.dal.entity.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 
-import java.math.BigDecimal;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -18,7 +16,6 @@ import javax.annotation.Resource;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
-import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -29,10 +26,15 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
 import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDetailDao;
-import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
 import com.ym.mec.biz.dal.dto.RegisterPayDto;
+import com.ym.mec.biz.dal.entity.Goods;
+import com.ym.mec.biz.dal.entity.MusicGroup;
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum;
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
@@ -79,6 +81,16 @@ public class MusicGroupController extends BaseController {
         }
         return succeed(musicGroupService.queryUserMusicGroups(sysUser.getId()));
     }
+    
+    @ApiOperation("获取学生所在乐团列表")
+    @GetMapping(value = "/queryStudentMusicGroupInfo")
+    public Object queryStudentMusicGroupInfo() {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        return succeed(studentRegistrationService.queryStudentMusicGroupInfo(sysUser.getId()));
+    }
 
     @ApiOperation("获取学生个人中心乐团信息")
     @GetMapping(value = "/queryPersonalMusicGroups")
@@ -210,11 +222,23 @@ public class MusicGroupController extends BaseController {
         return succeed(renew);
     }
 
-    @ApiOperation(value = "退团")
+    @ApiOperation(value = "申请退团")
     @PostMapping("/quitMusicGroup")
-    @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String")})
-    public HttpResponseResult quitMusicGroup(String musicGroupId) throws Exception {
-        return succeed(musicGroupService.applyQuitMusicGroup(musicGroupId));
+    @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String"),
+    	@ApiImplicitParam(name = "reason", value = "原因", required = true, dataType = "String")})
+    public HttpResponseResult quitMusicGroup(String musicGroupId, String reason) throws Exception {
+        return succeed(musicGroupService.applyQuitMusicGroup(musicGroupId, reason));
+    }
+
+    @ApiOperation(value = "取消退团申请")
+    @PostMapping("/cancelQuitMusicGroup")
+    @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String"),
+    	@ApiImplicitParam(name = "reason", value = "取消原因", required = true, dataType = "String")})
+    public HttpResponseResult cancelQuitMusicGroup(String musicGroupId, String reason) throws Exception {
+    	SysUser sysUser = sysUserFeignService.queryUserInfo();
+        Integer userId = sysUser.getId();
+        
+        return succeed(musicGroupService.cancelQuitMusicGroup(userId, musicGroupId, reason));
     }
 
     @ApiOperation(value = "乐团报名支付")

+ 45 - 0
mec-student/src/main/java/com/ym/mec/student/controller/StudentAttendanceController.java

@@ -0,0 +1,45 @@
+package com.ym.mec.student.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+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.page.StudentAttendanceQueryInfo;
+import com.ym.mec.biz.service.ClassGroupService;
+import com.ym.mec.biz.service.StudentAttendanceService;
+import com.ym.mec.common.controller.BaseController;
+
+@RequestMapping("studentAttendance")
+@Api(tags = "学生考勤服务")
+@RestController
+public class StudentAttendanceController extends BaseController {
+
+    @Autowired
+    private StudentAttendanceService studentAttendanceService;
+    @Autowired
+    private ClassGroupService classGroupService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private EmployeeDao employeeDao;
+
+
+    @ApiOperation(value = "获取某节课学生签到列表")
+    @GetMapping("/findStudentAttendance")
+    public Object findStudentAttendance(StudentAttendanceQueryInfo queryInfo){
+    	SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        queryInfo.setStudentID(sysUser.getId());
+        return succeed(studentAttendanceService.findStudentAttendance(queryInfo));
+    }
+
+}

+ 23 - 12
mec-student/src/main/java/com/ym/mec/student/controller/StudentManageController.java

@@ -1,19 +1,11 @@
 package com.ym.mec.student.controller;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dto.CashAccountDetail;
-import com.ym.mec.biz.dal.entity.SysSuggestion;
-import com.ym.mec.biz.dal.entity.SysUserBankCard;
-import com.ym.mec.biz.service.*;
-import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.entity.UploadReturnBean;
-import com.ym.mec.common.filters.TenantIdThreadLocal;
-import com.ym.mec.common.page.QueryInfo;
-import com.ym.mec.util.upload.UploadUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+
+import java.util.Date;
+
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -25,7 +17,25 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.util.Date;
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dto.CashAccountDetail;
+import com.ym.mec.biz.dal.entity.SysSuggestion;
+import com.ym.mec.biz.dal.entity.SysUserBankCard;
+import com.ym.mec.biz.service.ClassGroupService;
+import com.ym.mec.biz.service.ImGroupNoticeService;
+import com.ym.mec.biz.service.StudentManageService;
+import com.ym.mec.biz.service.SubjectService;
+import com.ym.mec.biz.service.SysSuggestionService;
+import com.ym.mec.biz.service.SysUserBankCardService;
+import com.ym.mec.biz.service.SysUserCashAccountDetailService;
+import com.ym.mec.biz.service.SysUserCashAccountService;
+import com.ym.mec.biz.service.UploadFileService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.UploadReturnBean;
+import com.ym.mec.common.filters.TenantIdThreadLocal;
+import com.ym.mec.common.page.QueryInfo;
+import com.ym.mec.util.upload.UploadUtil;
 
 @Api(tags = "学生管理")
 @RestController
@@ -199,4 +209,5 @@ public class StudentManageController extends BaseController {
         }
         return succeed(subjectService.findSubSubjects(tenantId));
     }
+
 }