Explorar el Código

Merge remote-tracking branch 'origin/master'

Joburgess hace 5 años
padre
commit
a427b30517
Se han modificado 20 ficheros con 246 adiciones y 124 borrados
  1. 14 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ChargeTypeSubjectMapperDao.java
  2. 3 5
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java
  3. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SubjectDao.java
  4. 24 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ChargeType.java
  5. 1 51
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentRegistration.java
  6. 13 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ChargeTypeService.java
  7. 10 3
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentRegistrationService.java
  8. 38 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ChargeTypeServiceImpl.java
  9. 5 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSubjectPlanServiceImpl.java
  10. 60 6
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  11. 5 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SubjectServiceImpl.java
  12. 8 1
      mec-biz/src/main/resources/config/mybatis/ChargeTypeMapper.xml
  13. 12 2
      mec-biz/src/main/resources/config/mybatis/ChargeTypeSubjectMapperMapper.xml
  14. 4 2
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  15. 2 1
      mec-biz/src/main/resources/config/mybatis/MusicGroupSubjectPlanMapper.xml
  16. 16 8
      mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml
  17. 5 5
      mec-biz/src/main/resources/config/mybatis/SubjectMapper.xml
  18. 10 26
      mec-web/src/main/java/com/ym/mec/web/controller/ChargeTypeController.java
  19. 6 6
      mec-web/src/main/java/com/ym/mec/web/controller/StudentRegistrationController.java
  20. 1 0
      mec-web/src/main/java/com/ym/mec/web/controller/TeacherController.java

+ 14 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ChargeTypeSubjectMapperDao.java

@@ -2,8 +2,21 @@ package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.entity.ChargeTypeSubjectMapper;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 public interface ChargeTypeSubjectMapperDao extends BaseDAO<Long, ChargeTypeSubjectMapper> {
 
-	
+    /**
+     * 删除当前收费类型关联的科目
+     */
+    void deleteByChargeTypeId(Integer chargeTypeId);
+
+    /**
+     * 批量新增
+     * @param subjectIds
+     * @param chargeTypeId
+     */
+    void batchAdd(@Param("subjectIds") List<Integer> subjectIds, @Param("chargeTypeId")Integer chargeTypeId);
 }

+ 3 - 5
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java

@@ -34,10 +34,9 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
 	 * 根据乐团编号和声部获取缴费学员人数
 	 *
 	 * @param musicGroupId
-	 * @param subjectId
 	 * @return
 	 */
-	Integer countPayNum(@Param("musicGroupId") String musicGroupId, @Param("subjectId") Integer subjectId);
+	List<Map<Integer,Integer>> countPayNum(@Param("musicGroupId") String musicGroupId);
 
 	/**
 	 * 学生报名缴费金额详情
@@ -55,16 +54,15 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
 	 * @param actualSubjectId 科目id
 	 * @return
 	 */
-	List<StudentRegistration> getNoClassStuBySubjectId(@Param("musicGroupId") String musicGroupId, @Param("actualSubjectId") Integer actualSubjectId);
+	List<StudentRegistration> getNoClassStuBySubjectId(@Param("musicGroupId") String musicGroupId, @Param("actualSubjectId") String actualSubjectId);
 
 	/**
 	 * 获取乐团声部未分配学生数
 	 *
 	 * @param musicGroupId
-	 * @param actualSubjectId
 	 * @return
 	 */
-	Integer getNoClassStuCountBySubjectId(@Param("musicGroupId") String musicGroupId, @Param("actualSubjectId") Integer actualSubjectId);
+	List<Map<Integer,Long>> getNoClassStuCountBySubjectId(@Param("musicGroupId") String musicGroupId);
 
 	/**
 	 * 根据乐团id和user_id 更新

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SubjectDao.java

@@ -10,6 +10,8 @@ import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 public interface SubjectDao extends BaseDAO<Integer, Subject> {
 
@@ -70,4 +72,11 @@ public interface SubjectDao extends BaseDAO<Integer, Subject> {
     List<Subject> findTeacherSubjects(Long teacherId);
 
     List<ConditionDto> findSubjectConditions();
+
+    /**
+     * 根据声部编号列表获取声部名称map
+     * @param subjectIds
+     * @return
+     */
+    List<Map<Integer, String>> queryNameByIds(@Param("subjectIds") String subjectIds);
 }

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

@@ -6,6 +6,8 @@ import io.swagger.annotations.ApiModelProperty;
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
+import java.util.List;
+
 /**
  * 对应数据库表(charge_type):
  */
@@ -36,7 +38,28 @@ public class ChargeType {
 	
 	/**  */
 	private java.util.Date updateTime;
-	
+
+	private List<Subject> subjects;
+
+	@ApiModelProperty(value = "声部编号列表",required = false)
+	private List<Integer> subjectIds;
+
+	public List<Integer> getSubjectIds() {
+		return subjectIds;
+	}
+
+	public void setSubjectIds(List<Integer> subjectIds) {
+		this.subjectIds = subjectIds;
+	}
+
+	public List<Subject> getSubjects() {
+		return subjects;
+	}
+
+	public void setSubjects(List<Subject> subjects) {
+		this.subjects = subjects;
+	}
+
 	public void setId(Integer id){
 		this.id = id;
 	}

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

@@ -12,20 +12,12 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
  */
 public class StudentRegistration {
 
-    /**
-     *
-     */
     @ApiModelProperty(value = "报名id", hidden = true)
     private Long id;
 
-    /**
-     *
-     */
     @ApiModelProperty(value = "机构id", hidden = true)
     private Integer organId;
-    /**
-     *
-     */
+
     @ApiModelProperty(value = "学生编号", hidden = true)
     private Integer userId;
 
@@ -38,87 +30,45 @@ public class StudentRegistration {
     @ApiModelProperty(value = "身份证号", required = true)
     private String idCardNo;
 
-    /**
-     * 所属乐团(对应 music_group 表id)
-     */
     @ApiModelProperty(value = "所属乐团(对应 music_group 表id)", required = true)
     private String musicGroupId;
 
-    /**
-     * 当前所在年级
-     */
     @ApiModelProperty(value = "当前所在年级", required = true)
     private String currentGrade;
 
-    /**
-     * 当前所在班级
-     */
     @ApiModelProperty(value = "当前所在班级", required = true)
     private String currentClass;
 
-    /**
-     * 报名科目
-     */
     @ApiModelProperty(value = "报名科目", required = true)
     private Integer subjectId;
 
-    /**
-     * 报名科目
-     */
     @ApiModelProperty(value = "实际科目", hidden = true)
     private Integer actualSubjectId;
 
-    /**
-     * 是否允许调剂
-     */
     @ApiModelProperty(value = "是否允许调剂", required = true)
     private YesOrNoEnum isAllowAdjust;
 
-    /**
-     * 器材购买方式(团购、自备)
-     */
     @ApiModelProperty(value = "器材购买方式(GROUP:团购,OWNED:自备)", required = true)
     private KitPurchaseMethodEnum kitPurchaseMethod;
 
-    /**
-     *
-     */
     @ApiModelProperty(value = "备注", hidden = false)
     private String remark;
 
-    /**
-     *
-     */
     @ApiModelProperty(value = "添加时间", hidden = true)
     private java.util.Date createTime;
 
-    /**
-     *
-     */
     @ApiModelProperty(value = "更新时间", hidden = true)
     private java.util.Date updateTime;
 
-    /**
-     * 家长姓名
-     */
     @ApiModelProperty(value = "家长姓名", required = true)
     private String parentsName;
 
-    /**
-     * 家长姓名
-     */
     @ApiModelProperty(value = "家长电话", required = true)
     private String parentsPhone;
 
-    /**
-     * 家长单位
-     */
     @ApiModelProperty(value = "家长单位", required = false)
     private String parentsCompany;
 
-    /**
-     * 缴费状态(1-已缴费 0-未交费)
-     */
     @ApiModelProperty(value = "缴费状态(1-已缴费 0-未交费)", hidden = true)
     private YesOrNoEnum paymentStatus;
 

+ 13 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ChargeTypeService.java

@@ -1,8 +1,21 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.entity.ChargeType;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
 
 public interface ChargeTypeService extends BaseService<Integer, ChargeType> {
 
+    /**
+     * 新增、修改收费类型
+     * @param chargeType
+     */
+    void upSet(ChargeType chargeType);
+
+    /**
+     * 删除
+     * @param id
+     */
+    void del(Integer id);
 }

+ 10 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/StudentRegistrationService.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.service;
 
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.Map;
 
 import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
 import com.ym.mec.biz.dal.dto.StudentFeeDto;
@@ -49,16 +50,15 @@ public interface StudentRegistrationService extends BaseService<Long, StudentReg
 	 * @param actualSubjectId 科目id
 	 * @return
 	 */
-	List<StudentRegistration> getNoClassStuBySubjectId(String musicGroupId, Integer actualSubjectId);
+	List<Map<String,Object>> getNoClassStuBySubjectId(String musicGroupId, String actualSubjectId);
 
 	/**
 	 * 获取乐团声部未分配学生统计
 	 *
 	 * @param musicGroupId
-	 * @param actualSubjectId
 	 * @return
 	 */
-	Integer getNoClassStuCountBySubjectId(String musicGroupId, Integer actualSubjectId);
+	List<Map<Integer,Long>> getNoClassStuCountBySubjectId(String musicGroupId);
 
 	/**
 	 * 根据user_id 和 乐团id更新
@@ -123,4 +123,11 @@ public interface StudentRegistrationService extends BaseService<Long, StudentReg
 	 * @return
 	 */
 	StudentRegistration getByPhoneAndMusicGroupId(String musicGroupId, String parentsPhone);
+
+	/**
+	 * 乐团插入新学员
+	 * @param studentRegistration
+	 * @return
+	 */
+    Integer insertStudent(StudentRegistration studentRegistration) throws Exception;
 }

+ 38 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ChargeTypeServiceImpl.java

@@ -1,5 +1,9 @@
 package com.ym.mec.biz.service.impl;
 
+import com.ym.mec.biz.dal.dao.ChargeTypeSubjectMapperDao;
+import com.ym.mec.biz.dal.entity.ChargeTypeSubjectMapper;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -8,16 +12,49 @@ import com.ym.mec.biz.dal.entity.ChargeType;
 import com.ym.mec.biz.service.ChargeTypeService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
 
 @Service
 public class ChargeTypeServiceImpl extends BaseServiceImpl<Integer, ChargeType>  implements ChargeTypeService {
 	
 	@Autowired
 	private ChargeTypeDao chargeTypeDao;
+	@Autowired
+	private ChargeTypeSubjectMapperDao chargeTypeSubjectMapperDao;
 
 	@Override
 	public BaseDAO<Integer, ChargeType> getDAO() {
 		return chargeTypeDao;
 	}
-	
+
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void upSet(ChargeType chargeType) {
+		if(chargeType.getId() != null){
+			//修改
+			chargeType.setUpdateTime(new Date());
+			chargeTypeDao.update(chargeType);
+			//删除关联的声部
+			chargeTypeSubjectMapperDao.deleteByChargeTypeId(chargeType.getId());
+			//批量插入关联的声部
+			chargeTypeSubjectMapperDao.batchAdd(chargeType.getSubjectIds(),chargeType.getId());
+		}else {
+			//新增
+			chargeTypeDao.insert(chargeType);
+			//批量插入关联的声部
+			chargeTypeSubjectMapperDao.batchAdd(chargeType.getSubjectIds(),chargeType.getId());
+		}
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void del(Integer chargeTypeId) {
+		//删除关联的声部
+		chargeTypeSubjectMapperDao.deleteByChargeTypeId(chargeTypeId);
+		chargeTypeDao.delete(chargeTypeId);
+	}
 }

+ 5 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSubjectPlanServiceImpl.java

@@ -6,6 +6,7 @@ import com.ym.mec.biz.dal.dto.MusicGroupSubjectGoodsAndInfoDto;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.GoodsType;
 import com.ym.mec.biz.service.*;
+import com.ym.mec.util.collection.MapUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -45,9 +46,11 @@ public class MusicGroupSubjectPlanServiceImpl extends BaseServiceImpl<Integer, M
     @Override
     public List<MusicGroupSubjectPlan> getMusicSubjectClassPlan(String musicGroupId) {
         List<MusicGroupSubjectPlan> musicSubjectClassPlans = musicGroupSubjectPlanDao.getMusicSubjectClassPlan(musicGroupId);
+        List<Map<Integer, Long>> noClassStuCountBySubjectIds = studentRegistrationService.getNoClassStuCountBySubjectId(musicGroupId);
+        Map<Integer, Long> map = MapUtil.convertMybatisMap(noClassStuCountBySubjectIds);
         for (MusicGroupSubjectPlan musicSubjectClassPlan : musicSubjectClassPlans) {
-            Integer noClassStuCount = studentRegistrationService.getNoClassStuCountBySubjectId(musicGroupId, musicSubjectClassPlan.getSubjectId());
-            musicSubjectClassPlan.setNoClassStudentNum(noClassStuCount);
+            Long aLong = map.get(musicSubjectClassPlan.getSubjectId());
+            musicSubjectClassPlan.setNoClassStudentNum(aLong==null?0:aLong.intValue());
         }
         return musicSubjectClassPlans;
     }

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

@@ -6,12 +6,17 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
 
+import com.ym.mec.biz.dal.dao.SubjectDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.service.MusicGroupSubjectPlanService;
+import com.ym.mec.common.entity.ImResult;
+import com.ym.mec.common.entity.ImUserModel;
+import com.ym.mec.im.ImFeignService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -44,14 +49,16 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     @Resource
     private StudentRegistrationDao studentRegistrationDao;
     @Autowired
-    private SysUserFeignService sysUserFeignService;
-    @Autowired
     private StudentPaymentOrderService studentPaymentOrderService;
     @Autowired
     private StudentPaymentOrderDetailService studentPaymentOrderDetailService;
     @Autowired
     private TeacherDao teacherDao;
     @Autowired
+    private SubjectDao subjectDao;
+    @Autowired
+    private ImFeignService imFeignService;
+    @Autowired
     private MusicGroupSubjectPlanService musicGroupSubjectPlanService;
 
     @Override
@@ -102,13 +109,31 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     }
 
     @Override
-    public List<StudentRegistration> getNoClassStuBySubjectId(String musicGroupId, Integer actualSubjectId) {
-        return studentRegistrationDao.getNoClassStuBySubjectId(musicGroupId, actualSubjectId);
+    public List<Map<String,Object>> getNoClassStuBySubjectId(String musicGroupId, String actualSubjectId) {
+        List<StudentRegistration> students = studentRegistrationDao.getNoClassStuBySubjectId(musicGroupId, actualSubjectId);
+        List<Map<String,Object>> mapArrayList = new ArrayList<>();
+        if(students != null && students.size() > 0){
+            String[] subjectIds = actualSubjectId.split(",");
+            if(subjectIds != null && subjectIds.length > 0){
+                List<Map<Integer, String>> subjectNames = subjectDao.queryNameByIds(actualSubjectId);
+                Map<Integer, String> subjectNameMap = MapUtil.convertMybatisMap(subjectNames);
+                for (int i = 0;i<subjectIds.length;i++){
+                    Map<String,Object> resultMap = new HashMap<>(3);
+                    int subjectId = Integer.parseInt(subjectIds[i]);
+                    List<StudentRegistration> collect = students.stream().filter(e -> e.getSubjectId().equals(subjectId)).collect(Collectors.toList());
+                    resultMap.put("subjectId",subjectId);
+                    resultMap.put("subjectName",subjectNameMap.get(subjectId));
+                    resultMap.put("rows",collect);
+                    mapArrayList.add(resultMap);
+                }
+            }
+        }
+        return mapArrayList;
     }
 
     @Override
-    public Integer getNoClassStuCountBySubjectId(String musicGroupId, Integer actualSubjectId) {
-        return studentRegistrationDao.getNoClassStuCountBySubjectId(musicGroupId, actualSubjectId);
+    public List<Map<Integer,Long>> getNoClassStuCountBySubjectId(String musicGroupId) {
+        return studentRegistrationDao.getNoClassStuCountBySubjectId(musicGroupId);
     }
 
     @Override
@@ -324,4 +349,33 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         return studentRegistrationDao.getByPhoneAndMusicGroupId(musicGroupId, parentsPhone);
     }
 
+    @Override
+    public Integer insertStudent(StudentRegistration studentRegistration) throws Exception {
+        StudentRegistration phoneAndMusicGroupId = studentRegistrationDao.getByPhoneAndMusicGroupId(studentRegistration.getMusicGroupId(), studentRegistration.getParentsPhone());
+        if(phoneAndMusicGroupId != null){
+            throw new Exception("该学员已存在");
+        }else {
+            SysUser sysUser = studentRegistrationDao.getSysUserByPhone(studentRegistration.getParentsPhone());
+            if(sysUser == null){
+                //新增user
+                sysUser = new SysUser();
+                sysUser.setRealName(studentRegistration.getName());
+                sysUser.setUsername(studentRegistration.getName());
+                sysUser.setGender(studentRegistration.getGender());
+                sysUser.setUserType(SysUserType.STUDENT);
+                teacherDao.addSysUser(sysUser);
+                //注册到融云
+                ImResult register = imFeignService.register(new ImUserModel(sysUser.getId().toString(), sysUser.getUsername(), sysUser.getAvatar()));
+                sysUser.setImToken(register.getToken());
+                teacherDao.updateUser(sysUser);
+            }
+            //学生报名表
+            studentRegistrationDao.insert(studentRegistration);
+            //学生注册
+            //缴费金额
+            //学员加入的金额
+        }
+        return null;
+    }
+
 }

+ 5 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SubjectServiceImpl.java

@@ -17,11 +17,13 @@ import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 
+import com.ym.mec.util.collection.MapUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 @Service
@@ -63,10 +65,10 @@ public class SubjectServiceImpl extends BaseServiceImpl<Integer, Subject>  imple
     @Override
     public List<SubjectApplyDetailDto> findSubApplyDetail(String musicGroupId) {
         List<SubjectApplyDetailDto> subApplyDetail = subjectDao.findSubApplyDetail(musicGroupId);
-        List<Integer> subjectIds = subApplyDetail.stream().map(e -> e.getSubjectId()).collect(Collectors.toList());
-
+        List<Map<Integer, Integer>> payNums = studentRegistrationDao.countPayNum(musicGroupId);
+        Map<Integer, Integer> payNumMap = MapUtil.convertMybatisMap(payNums);
         subApplyDetail.forEach(detail ->{
-            detail.setPayNum(studentRegistrationDao.countPayNum(musicGroupId,detail.getSubjectId()));
+            detail.setPayNum(payNumMap.get(detail.getSubjectId()));
         });
         return subApplyDetail;
     }

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

@@ -14,6 +14,10 @@
         <result column="course_form_" property="courseForm"/>
         <result column="create_time_" property="createTime"/>
         <result column="update_time_" property="updateTime"/>
+        <collection property="subjects" ofType="com.ym.mec.biz.dal.entity.Subject">
+            <result property="id" column="subject_id_"/>
+            <result property="name" column="subject_name_"/>
+        </collection>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -63,7 +67,10 @@
 
     <!-- 分页查询 -->
     <select id="queryPage" resultMap="ChargeType" parameterType="map">
-        SELECT * FROM charge_type ORDER BY id_
+        SELECT ct.*,s.id_ subject_id_,s.name_ subject_name_ FROM charge_type ct
+        LEFT JOIN charge_type_subject_mapper ctsm ON ct.id_ = ctsm.charge_type_id_
+        LEFT JOIN `subject` s ON ctsm.subject_id_ = s.id_
+        ORDER BY id_
         <include refid="global.limit"/>
     </select>
 

+ 12 - 2
mec-biz/src/main/resources/config/mybatis/ChargeTypeSubjectMapperMapper.xml

@@ -30,8 +30,14 @@
     <!-- 向数据库增加一条记录 -->
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.ChargeTypeSubjectMapper" useGeneratedKeys="true"
             keyColumn="id" keyProperty="id">
-        INSERT INTO charge_type_subject_mapper (id_,charge_type_id_,subject_id_,kit_group_purchase_type_,deposit_fee_,fee_,create_time_,update_time_)
-        VALUES(#{id},#{chargeTypeId},#{subjectId},#{kitGroupPurchaseTypeEnum,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{depositFee},#{fee},now(),now())
+        INSERT INTO charge_type_subject_mapper (charge_type_id_,subject_id_,kit_group_purchase_type_,deposit_fee_,fee_,create_time_,update_time_)
+        VALUES(#{chargeTypeId},#{subjectId},#{kitGroupPurchaseTypeEnum,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{depositFee},#{fee},now(),now())
+    </insert>
+    <insert id="batchAdd">
+        INSERT INTO charge_type_subject_mapper (charge_type_id_,subject_id_,create_time_,update_time_) VALUES
+        <foreach collection="subjectIds" item="item" separator=",">
+            (#{chargeTypeId},#{item},now(),now())
+        </foreach>
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -56,6 +62,10 @@
 		DELETE FROM charge_type_subject_mapper WHERE id_ = #{id} 
 	</delete>
 
+    <delete id="deleteByChargeTypeId">
+        DELETE FROM charge_type_subject_mapper WHERE charge_type_id_ = #{chargeTypeId}
+    </delete>
+
     <!-- 分页查询 -->
     <select id="queryPage" resultMap="ChargeTypeSubjectMapper" parameterType="map">
         SELECT * FROM charge_type_subject_mapper ORDER BY id_

+ 4 - 2
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -275,17 +275,19 @@
     <select id="queryCoursePage" resultMap="CourseListDto">
         SELECT * FROM (
             SELECT cg.type_,s.address_,mg.name_ music_group_name_,
-            cg.total_class_times_,cg.current_class_times_,'' single_class_minutes_,mg.id_ music_group_id_,cg.create_time_,cg.teach_mode_
+            cg.total_class_times_,cg.current_class_times_,'' single_class_minutes_,mg.id_ music_group_id_,cg.create_time_,cs.teach_mode_
             FROM student_registration sr
             LEFT JOIN class_group cg ON cg.id_ = sr.class_group_id_
+            LEFT JOIN course_schedule cs ON cs.class_group_id_ = cg.id_
             LEFT JOIN music_group mg ON cg.music_group_id_ = mg.id_
             LEFT JOIN school s ON mg.school_id_ = s.id_
             WHERE sr.user_id_ = #{search} AND cg.type_ != 'VIP'
             UNION ALL
             SELECT cg.type_,ts.address_,vg.name_ music_group_name_,
-            cg.total_class_times_,cg.current_class_times_,vg.single_class_minutes_,vg.id_ music_group_id_,cg.create_time_,cg.teach_mode_
+            cg.total_class_times_,cg.current_class_times_,vg.single_class_minutes_,vg.id_ music_group_id_,cg.create_time_,cs.teach_mode_
             FROM class_group_student_mapper cgsm
             LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
+            LEFT JOIN course_schedule cs ON cs.class_group_id_ = cg.id_
             LEFT JOIN vip_group_class_group_mapper vgcgm ON vgcgm.class_group_id_ = cgsm.class_group_id_
             LEFT JOIN vip_group vg ON vg.id_ = vgcgm.vip_group_id_
             LEFT JOIN teacher_school ts ON vg.teacher_school_id_ = ts.id_

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

@@ -20,6 +20,7 @@
         <result column="create_time_" property="createTime"/>
         <result column="update_time_" property="updateTime"/>
         <result column="version" property="version"/>
+        <result column="sub_name_" property="subName"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -97,7 +98,7 @@
 
     <!-- 查询乐团科目计划表 -->
     <select id="getMusicSubjectClassPlan" resultMap="MusicGroupSubjectPlan">
-        SELECT sp.*, sb.name_
+        SELECT sp.*, sb.name_ sub_name_
         FROM music_group_subject_plan sp
         LEFT JOIN subject sb ON sb.id_ = sp.subject_id_
         WHERE sp.music_group_id_=#{musicGroupId}

+ 16 - 8
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -209,9 +209,9 @@
         <include refid="queryStudentDetailPageSql"/>
     </select>
 
-    <select id="countPayNum" resultType="java.lang.Integer">
-        SELECT COUNT(DISTINCT user_id_) FROM student_registration
-        WHERE music_group_id_ = #{musicGroupId} AND subject_id_ = #{subjectId} AND payment_status_ = 1
+    <select id="countPayNum" resultType="map">
+        SELECT COUNT(DISTINCT user_id_) `value`,subject_id_ `key` FROM student_registration
+        WHERE music_group_id_ = #{musicGroupId} AND payment_status_ = 1 GROUP BY subject_id_
     </select>
 
     <resultMap id="queryFeeDetailMap" type="com.ym.mec.biz.dal.dto.StudentFeeDto">
@@ -226,14 +226,22 @@
 
     <!-- 根据乐团和声部获取未分班的学生 -->
     <select id="getNoClassStuBySubjectId" resultMap="StudentRegistration">
-        SELECT * FROM student_registration WHERE music_group_id_ = #{musicGroupId} AND actual_subject_id_ =
-        #{actualSubjectId} AND class_group_id_ >=1
+        SELECT sr.* FROM student_registration sr
+        WHERE sr.user_id_ NOT IN (
+        SELECT DISTINCT cgsm.user_id_ FROM class_group_student_mapper cgsm
+        LEFT JOIN class_group cg ON cg.id_ =  cgsm.class_group_id_
+        WHERE cg.music_group_id_ = #{musicGroupId})
+        AND sr.music_group_id_ = #{musicGroupId} AND FIND_IN_SET(sr.actual_subject_id_,#{actualSubjectId})
     </select>
 
     <!-- 根据乐团和声部获取未分班人数 -->
-    <select id="getNoClassStuCountBySubjectId" resultType="java.lang.Integer">
-        SELECT count(*) FROM student_registration WHERE music_group_id_ = #{musicGroupId} AND actual_subject_id_ =
-        #{actualSubjectId} AND class_group_id_ >=1
+    <select id="getNoClassStuCountBySubjectId" resultType="map">
+        SELECT COUNT(DISTINCT sr.user_id_) `value`,sr.actual_subject_id_ `key` FROM student_registration sr
+        WHERE sr.user_id_ NOT IN (
+        SELECT DISTINCT cgsm.user_id_ FROM class_group_student_mapper cgsm
+        LEFT JOIN class_group cg ON cg.id_ =  cgsm.class_group_id_
+        WHERE cg.music_group_id_ = #{musicGroupId})
+        AND sr.music_group_id_ = #{musicGroupId} GROUP BY sr.actual_subject_id_
     </select>
 
     <update id="updateByUserIdAndMusicGroupId" parameterType="com.ym.mec.biz.dal.entity.StudentRegistration">

+ 5 - 5
mec-biz/src/main/resources/config/mybatis/SubjectMapper.xml

@@ -122,15 +122,15 @@
     </select>
 
     <select id="findTeacherSubjects" resultMap="Subject">
-        SELECT
-            s.*
-        FROM
-            teacher t
+        SELECT s.* FROM teacher t
             LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,t.subject_id_)
             WHERE t.id_=#{teacherId}
     </select>
     <select id="findSubjectConditions" resultType="com.ym.mec.biz.dal.dto.ConditionDto">
-      select id_ id,name_ name from subject where parent_subject_id_=0
+      select id_ id,name_ `name` from subject where parent_subject_id_=0
+    </select>
+    <select id="queryNameByIds" resultType="java.util.Map">
+        select id_ `key`,name_ `value` FROM `subject` s WHERE FIND_IN_SET(s.id_,#{subjectIds})
     </select>
 
     <sql id="querySubPageSql">

+ 10 - 26
mec-web/src/main/java/com/ym/mec/web/controller/ChargeTypeController.java

@@ -1,22 +1,14 @@
 package com.ym.mec.web.controller;
 
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-
-import java.util.Date;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
 import com.ym.mec.biz.dal.entity.ChargeType;
 import com.ym.mec.biz.service.ChargeTypeService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 
 @RequestMapping("chargeType")
 @Api(tags = "收费类型服务")
@@ -26,25 +18,17 @@ public class ChargeTypeController extends BaseController {
     @Autowired
     private ChargeTypeService chargeTypeService;
 
-    @ApiOperation(value = "新增收费类型")
-    @PostMapping("/add")
-    public Object add(ChargeType chargeType) {
-        chargeTypeService.insert(chargeType);
+    @ApiOperation(value = "新增、修改收费类型")
+    @PostMapping("/upSet")
+    public Object upSet(@RequestBody ChargeType chargeType) {
+        chargeTypeService.upSet(chargeType);
         return succeed();
     }
 
     @ApiOperation(value = "删除收费类型")
     @PostMapping("/del/{id}")
     public Object del(@ApiParam(value = "收费类型编号", required = true) @PathVariable("id") Integer id) {
-        chargeTypeService.delete(id);
-        return succeed();
-    }
-
-    @ApiOperation(value = "修改收费类型")
-    @PostMapping("/update")
-    public Object update(ChargeType chargeType) {
-        chargeType.setUpdateTime(new Date());
-        chargeTypeService.update(chargeType);
+        chargeTypeService.del(id);
         return succeed();
     }
 

+ 6 - 6
mec-web/src/main/java/com/ym/mec/web/controller/StudentRegistrationController.java

@@ -29,10 +29,10 @@ public class StudentRegistrationController extends BaseController {
     @Autowired
     private StudentRegistrationService studentRegistrationService;
 
-    @ApiOperation(value = "新增学生报名信息")
-    @PostMapping("/add")
-    public Object add(StudentRegistration studentRegistration) {
-        studentRegistrationService.insert(studentRegistration);
+    @ApiOperation(value = "乐团添加学员")
+    @PostMapping("/insertStudent")
+    public Object add(StudentRegistration studentRegistration) throws Exception {
+        studentRegistrationService.insertStudent(studentRegistration);
         return succeed();
     }
 
@@ -80,8 +80,8 @@ public class StudentRegistrationController extends BaseController {
     @ApiOperation(value = "获取未分班的学生")
     @GetMapping("/getNoClassStu")
     @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String"),
-            @ApiImplicitParam(name = "actualSubjectId", value = "科目(声部)id", required = true, dataType = "int")})
-    public Object getNoClassStuBySubjectId(String musicGroupId, Integer actualSubjectId) {
+            @ApiImplicitParam(name = "actualSubjectId", value = "科目(声部)id,多个逗号分开", required = true, dataType = "String")})
+    public Object getNoClassStuBySubjectId(String musicGroupId, String actualSubjectId) {
         return succeed(studentRegistrationService.getNoClassStuBySubjectId(musicGroupId, actualSubjectId));
     }
 

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

@@ -1,6 +1,7 @@
 package com.ym.mec.web.controller;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysMenu;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.dal.page.TeacherQueryInfo;