Browse Source

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

# Conflicts:
#	mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
yonge 5 years ago
parent
commit
2108d47e1d

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

@@ -30,4 +30,11 @@ public interface MusicGroupSubjectGoodsGroupDao extends BaseDAO<Long, MusicGroup
      * @return
      */
     List<MusicGroupSubjectGoodsGroup> findGoodsGroupByIds(@Param("ids") String ids);
+
+    /**
+     * 删除声部商品打包列表
+     * @param musicGroupId
+     * @return
+     */
+    int delByMusicGroupId(String musicGroupId);
 }

+ 15 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupSubjectPlanDao.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.dao;
 
+import com.ym.mec.biz.dal.dto.UpdateExpectedNumDto;
 import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
 import com.ym.mec.common.dal.BaseDAO;
 
@@ -38,4 +39,18 @@ public interface MusicGroupSubjectPlanDao extends BaseDAO<Integer, MusicGroupSub
      * @param musicOneSubjectClassPlan
      */
     void updateApplyStudentNum(MusicGroupSubjectPlan musicOneSubjectClassPlan);
+
+    /**
+     * 删除乐团声部规划
+     * @param musicGroupId
+     * @return
+     */
+    int delByMusicGroupId(String musicGroupId);
+
+    /**
+     * 修改计划招生人数
+     * @param updateExpectedNumDtos
+     * @return
+     */
+    int updateExpectedStudentNum(@Param("updateExpectedNumDtos") List<UpdateExpectedNumDto> updateExpectedNumDtos);
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/SubFeeSettingDto.java

@@ -25,6 +25,17 @@ public class SubFeeSettingDto {
     @ApiModelProperty(value = "科目关联注册学员",required = false)
     private List<SubjectRegisterDto> subjectRegisters;
 
+    @ApiModelProperty(value = "乐团编号(修改时用)",required = false)
+    private String musicGroupId;
+
+    public String getMusicGroupId() {
+        return musicGroupId;
+    }
+
+    public void setMusicGroupId(String musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+
     public MusicGroup getMusicGroup() {
         return musicGroup;
     }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/SubjectApplyDetailDto.java

@@ -7,6 +7,9 @@ import io.swagger.annotations.ApiModelProperty;
  */
 public class SubjectApplyDetailDto {
 
+    @ApiModelProperty(value = "乐团声部计划编号",required = false)
+    private Integer musicGroupSubjectPlanId;
+
     @ApiModelProperty(value = "科目编号",required = false)
     private Integer subjectId;
 
@@ -25,6 +28,14 @@ public class SubjectApplyDetailDto {
     @ApiModelProperty(value = "未分班人数",required = false)
     private Integer notPartClassNum;
 
+    public Integer getMusicGroupSubjectPlanId() {
+        return musicGroupSubjectPlanId;
+    }
+
+    public void setMusicGroupSubjectPlanId(Integer musicGroupSubjectPlanId) {
+        this.musicGroupSubjectPlanId = musicGroupSubjectPlanId;
+    }
+
     public Integer getNotPartClassNum() {
         return notPartClassNum;
     }

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

@@ -0,0 +1,28 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+public class UpdateExpectedNumDto {
+
+    @ApiModelProperty(value = "乐团声部计划编号",required = false)
+    private Integer musicGroupSubjectPlanId;
+
+    @ApiModelProperty(value = "计划招生人数",required = false)
+    private Integer expectedNum;
+
+    public Integer getMusicGroupSubjectPlanId() {
+        return musicGroupSubjectPlanId;
+    }
+
+    public void setMusicGroupSubjectPlanId(Integer musicGroupSubjectPlanId) {
+        this.musicGroupSubjectPlanId = musicGroupSubjectPlanId;
+    }
+
+    public Integer getExpectedNum() {
+        return expectedNum;
+    }
+
+    public void setExpectedNum(Integer expectedNum) {
+        this.expectedNum = expectedNum;
+    }
+}

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

@@ -81,7 +81,7 @@ public class MusicGroupStudentFee {
 		this.nextPaymentDate = nextPaymentDate;
 		this.continuousAbsenteeismTimes = continuousAbsenteeismTimes;
 		this.temporaryCourseFee = temporaryCourseFee;
-		this.paymentStatus = PaymentStatus.NON_PAYMENT;
+		this.paymentStatus = PaymentStatus.PAID_COMPLETED;
 	}
 
 	public MusicGroupStudentFee() {

+ 14 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java

@@ -7,10 +7,7 @@ import java.util.Map;
 import java.util.Set;
 
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dto.BasicUserDto;
-import com.ym.mec.biz.dal.dto.CourseScheduleTeachersDto;
-import com.ym.mec.biz.dal.dto.MusicCardDto;
-import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.ApprovalStatus;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
@@ -193,4 +190,17 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 * @return
 	 */
 	SubFeeSettingDto findMusicGroupSubjectInfo(String musicGroupId);
+
+	/**
+	 * 修改乐团声部、商品组信息
+	 * @param subFeeSettingDto
+	 */
+	void updateSubjectInfo(SubFeeSettingDto subFeeSettingDto) throws Exception;
+
+	/**
+	 * 修改乐团计划招生人数
+	 * @param updateExpectedNumDtos
+	 * @return
+	 */
+    int updateExpectedStudentNum(List<UpdateExpectedNumDto> updateExpectedNumDtos);
 }

+ 48 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -16,6 +16,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
+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.biz.dal.dao.ChargeTypeDao;
@@ -40,6 +41,7 @@ import com.ym.mec.biz.dal.dto.CourseScheduleTeachersDto;
 import com.ym.mec.biz.dal.dto.MusicCardDto;
 import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
 import com.ym.mec.biz.dal.dto.SubjectRegisterDto;
+import com.ym.mec.biz.dal.dto.UpdateExpectedNumDto;
 import com.ym.mec.biz.dal.entity.ApprovalStatus;
 import com.ym.mec.biz.dal.entity.ChargeType;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
@@ -226,6 +228,42 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void updateSubjectInfo(SubFeeSettingDto subFeeSettingDto) throws Exception {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            throw new Exception("身份校验失败");
+        }
+        String musicGroupId = subFeeSettingDto.getMusicGroupId();
+
+        //乐团状态是否正确
+        MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
+        if(musicGroup != null){
+            if(musicGroup.getStatus() != MusicGroupStatusEnum.AUDIT || musicGroup.getStatus() != MusicGroupStatusEnum.DRAFT){
+                throw new Exception("乐团状态异常");
+            }
+
+            //记录日志信息
+            musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"修改乐团计划声部、乐器",sysUser.getId(), JSONObject.toJSONString(subFeeSettingDto)));
+            //删除原有的乐团声部规划
+            musicGroupSubjectPlanDao.delByMusicGroupId(musicGroupId);
+            //删除原有的声部商品组合
+            musicGroupSubjectGoodsGroupDao.delByMusicGroupId(subFeeSettingDto.getMusicGroupId());
+
+            musicGroupSubjectPlanDao.batchAdd(subFeeSettingDto.getMusicGroupSubjectPlans(),musicGroupId);
+            musicGroupSubjectGoodsGroupDao.batchInsert(subFeeSettingDto.getMusicGroupSubjectGoodsGroups(),musicGroupId);
+        }else {
+            throw new Exception("乐团信息不存在");
+        }
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int updateExpectedStudentNum(List<UpdateExpectedNumDto> updateExpectedNumDtos) {
+        return musicGroupSubjectPlanDao.updateExpectedStudentNum(updateExpectedNumDtos);
+    }
+
+    @Override
     public List<MusicCardDto> queryUserMusicGroups(Integer userId) {
         List<MusicCardDto> musicCardDtos = musicGroupDao.queryUserMusicGroups(userId);
         Set<String> musicGroupIds = musicCardDtos.stream().map(MusicCardDto::getMusicGroupId).collect(Collectors.toSet());
@@ -714,6 +752,16 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     }
 
     @Override
+    public SubFeeSettingDto findMusicGroupSubjectInfo(String musicGroupId) {
+        SubFeeSettingDto subFeeSettingDto = new SubFeeSettingDto();
+        //获取乐团声部规划列表
+        subFeeSettingDto.setMusicGroupSubjectPlans(musicGroupSubjectPlanDao.getMusicSubjectClassPlan(musicGroupId));
+        //获取乐团声部商品组
+        subFeeSettingDto.setMusicGroupSubjectGoodsGroups(musicGroupSubjectGoodsGroupDao.findGoodsGroup(musicGroupId,null));
+        return subFeeSettingDto;
+    }
+
+    @Override
     public List<MusicGroup> queryListByIds(Set<String> musicGroupIds) {
         return musicGroupDao.queryListByIds(StringUtils.join(musicGroupIds,","));
     }
@@ -785,9 +833,4 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 //        String content = sysConfigDao.findConfigValue(MessageTypeEnum.SMS_BASICS_SKILL_APPLY_MESSAGE.getCode());
 //        sysMessageService.batchSendMessage(MessageSender.YIMEI,"",content,parentsPhones,date,0,"");
     }
-
-    @Override
-    public SubFeeSettingDto findMusicGroupSubjectInfo(String musicGroupId) {
-        return null;
-    }
 }

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

@@ -132,7 +132,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 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());
+                    List<StudentRegistration> collect = students.stream().filter(e -> e.getActualSubjectId().equals(subjectId)).collect(Collectors.toList());
                     resultMap.put("subjectId", subjectId);
                     resultMap.put("subjectName", subjectNameMap.get(subjectId));
                     resultMap.put("rows", collect);
@@ -444,7 +444,6 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 }
                 //新增班级学生关系
                 classGroupStudentMapperDao.insert(new ClassGroupStudentMapper(studentRegistration.getClassGroupId(), userId));
-                //乐团学生费用表
                 MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getActualSubjectId());
                 //获取当前月
                 Integer month = Integer.parseInt(DateUtil.getMonth(new Date()));

+ 8 - 3
mec-biz/src/main/resources/config/mybatis/MusicGroupSubjectGoodsGroupMapper.xml

@@ -78,8 +78,10 @@
 
     <!-- 根据主键删除一条记录 -->
     <delete id="delete">
-        DELETE FROM music_group_subject_goods_group
-        WHERE id_ = #{id}
+        DELETE FROM music_group_subject_goods_group WHERE id_ = #{id}
+    </delete>
+    <delete id="delByMusicGroupId">
+        DELETE FROM music_group_subject_goods_group WHERE music_group_id_ = #{musicGroupId}
     </delete>
 
     <!-- 分页查询 -->
@@ -103,7 +105,10 @@
         g_complement_goods_id_list_
         FROM music_group_subject_goods_group mgs,goods g
         WHERE FIND_IN_SET (g.id_ ,mgs.goods_id_list_)
-        AND mgs.music_group_id_ = #{musicGroupId} AND mgs.subject_id_ = #{subId}
+        AND mgs.music_group_id_ = #{musicGroupId}
+        <if test="subId != null">
+            AND mgs.subject_id_ = #{subId}
+        </if>
     </select>
 
     <!-- 根据ids获取对应分组商品 -->

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

@@ -103,11 +103,25 @@
         WHERE id_ = #{id} AND version =#{version}
     </update>
 
+    <update id="updateExpectedStudentNum">
+        <foreach collection="updateExpectedNumDtos" item="item" index="index" open="" close="" separator=";">
+            UPDATE music_group_subject_plan
+            <set>
+                expected_student_num_ = #{item.expectedNum}
+            </set>
+            where id_ = #{item.musicGroupSubjectPlanId}
+        </foreach>
+    </update>
+
     <!-- 根据主键删除一条记录 -->
     <delete id="delete">
         DELETE FROM music_group_subject_plan WHERE id_ = #{id}
     </delete>
 
+    <delete id="delByMusicGroupId">
+        DELETE FROM music_group_subject_plan WHERE music_group_id_=#{musicGroupId}
+    </delete>
+
     <!-- 分页查询 -->
     <select id="queryPage" resultMap="MusicGroupSubjectPlan" parameterType="map">
         SELECT * FROM music_group_subject_plan ORDER BY id_

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

@@ -379,6 +379,7 @@
         <result property="userId" column="user_id_"/>
         <result property="realName" column="real_name_"/>
         <result property="phone" column="parents_phone_"/>
+        <result property="gender" column="gender_"/>
         <result property="currentGrade" column="current_grade_"/>
         <result property="currentClass" column="current_class_"/>
         <result property="subjectName" column="subject_name_"/>
@@ -389,7 +390,8 @@
     </resultMap>
     <select id="queryMusicGroupStudent" resultMap="MusicGroupStudentsDto">
         SELECT sr.user_id_,su.real_name_,su.gender_,sr.parents_phone_,sr.current_grade_,
-        sr.current_class_,sr.music_group_status_,mgsf.payment_status_,s.name_ subject_name_,sr.music_group_id_,
+        sr.current_class_,sr.music_group_status_,IF(mgsf.payment_status_ IS NULL,'NON_PAYMENT',mgsf.payment_status_) payment_status_,
+        s.name_ subject_name_,sr.music_group_id_,
         IF(sr.create_time_ > mg.payment_expire_date_,1,0) is_new_student_
         FROM student_registration sr
         LEFT JOIN sys_user su ON sr.user_id_ = su.id_

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

@@ -407,6 +407,15 @@
         </foreach>
     </insert>
 
+    <insert id="insertBasic" parameterType="com.ym.mec.biz.dal.entity.StudentRegistration">
+        INSERT INTO student_registration
+        (parents_phone_,user_id_,name_,music_group_id_,current_grade_,current_class_,subject_id_,
+        create_time_,update_time_,parents_name_,payment_status_,actual_subject_id_,music_group_status_)
+        VALUES (#{parentsPhone},#{userId},#{name},#{musicGroupId},#{currentGrade},#{currentClass},#{subjectId},
+            now(),now(),#{parentsName},#{paymentStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{subjectId},
+            #{musicGroupStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
+    </insert>
+
     <!-- 查询乐团userIdList的学生 -->
     <select id="findStudentListByUserIdList" resultMap="StudentRegistration">
         SELECT * FROM student_registration WHERE music_group_id_ = #{musicGroupId} AND user_id_ IN

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

@@ -105,11 +105,12 @@
         <result column="name_" property="subjectName"/>
         <result column="subject_id_" property="subjectId"/>
         <result column="expected_student_num_" property="expectedStudentNum"/>
+        <result column="music_group_subject_plan_id_" property="musicGroupSubjectPlanId"/>
         <result column="apply_student_num_" property="applyStudentNum"/>
         <result column="not_part_class_num_" property="notPartClassNum"/>
     </resultMap>
     <select id="findSubApplyDetail" resultMap="subApplyDetail">
-        SELECT mgsp.subject_id_,s.name_,mgsp.expected_student_num_
+        SELECT mgsp.subject_id_,s.name_,mgsp.expected_student_num_,mgsp.id_ music_group_subject_plan_id_
         FROM music_group_subject_plan mgsp
         LEFT JOIN `subject` s ON mgsp.subject_id_ = s.id_
         WHERE mgsp.music_group_id_ = #{musicGroupId} AND s.del_flag_ = 0

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

@@ -1,11 +1,13 @@
 package com.ym.mec.web.controller;
 
+import com.ym.mec.biz.dal.dto.UpdateExpectedNumDto;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 
 import java.util.Date;
+import java.util.List;
 import java.util.Set;
 
 import org.apache.commons.lang3.StringUtils;
@@ -62,6 +64,24 @@ public class MusicGroupController extends BaseController {
 		return succeed(musicGroupService.findMusicGroupSubjectInfo(musicGroupId));
 	}
 
+	@ApiOperation(value = "修改乐团声部信息")
+	@PostMapping("/updateSubjectInfo")
+	@PreAuthorize("@pcs.hasPermissions('musicGroup/updateSubjectInfo')")
+	public Object updateSubjectInfo(@RequestBody SubFeeSettingDto subFeeSettingDto) throws Exception {
+		musicGroupService.updateSubjectInfo(subFeeSettingDto);
+		return succeed();
+	}
+
+	@ApiOperation(value = "修改乐团计划招生人数")
+	@PostMapping("/updateExpectedStudentNum")
+	@PreAuthorize("@pcs.hasPermissions('musicGroup/updateExpectedStudentNum')")
+	public Object updateExpectedStudentNum(@RequestBody List<UpdateExpectedNumDto> updateExpectedNumDtos){
+		if(updateExpectedNumDtos == null || updateExpectedNumDtos.size() <= 0){
+			return failed("参数校验错误");
+		}
+		return succeed(musicGroupService.updateExpectedStudentNum(updateExpectedNumDtos));
+	}
+
 	@ApiOperation(value = "根据乐团编号查询乐团详情")
 	@GetMapping("/get")
 	@PreAuthorize("@pcs.hasPermissions('musicGroup/get')")