Browse Source

Merge remote-tracking branch 'origin/master'

Joburgess 4 years ago
parent
commit
d5b35d8f9d
17 changed files with 622 additions and 195 deletions
  1. 3 3
      cms/src/main/java/com/ym/mec/cms/controller/NewsController.java
  2. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysImComplaintDao.java
  3. 14 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupRegRespDto.java
  4. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentPreRegistration.java
  5. 136 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysImComplaint.java
  6. 22 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentPreRegistrationQueryInfo.java
  7. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysImComplaintService.java
  8. 4 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  9. 1 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSubjectPlanServiceImpl.java
  10. 21 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysImComplaintServiceImpl.java
  11. 218 176
      mec-biz/src/main/resources/config/mybatis/StudentPreRegistrationMapper.xml
  12. 43 0
      mec-biz/src/main/resources/config/mybatis/SysImComplaintMapper.xml
  13. 4 7
      mec-biz/src/main/resources/config/mybatis/SysMusicScoreAccompanimentMapper.xml
  14. 35 0
      mec-student/src/main/java/com/ym/mec/student/controller/SysImComplaintController.java
  15. 35 0
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/SysImComplaintController.java
  16. 23 9
      mec-web/src/main/java/com/ym/mec/web/controller/StudentRegistrationController.java
  17. 35 0
      mec-web/src/main/java/com/ym/mec/web/controller/SysImComplaintController.java

+ 3 - 3
cms/src/main/java/com/ym/mec/cms/controller/NewsController.java

@@ -101,7 +101,7 @@ public class NewsController extends BaseController {
 	@ApiOperation("新增资讯")
 	@PostMapping(value = "/add", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
 	@AuditLogAnnotation(operateName = "资讯新增",interfaceURL = "news/add")
-//	@PreAuthorize("@pcs.hasPermissions('news/add')")
+	@PreAuthorize("@pcs.hasPermissions('news/add')")
 	public Object add(SysNewsInformation newsInfo) {
 		return succeed(sysNewsInformationService.insert(newsInfo));
 	}
@@ -109,7 +109,7 @@ public class NewsController extends BaseController {
 	@ApiOperation("更新资讯")
 	@PostMapping(value = "/update", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
 	@AuditLogAnnotation(operateName = "资讯更新",interfaceURL = "news/update")
-//	@PreAuthorize("@pcs.hasPermissions('news/update')")
+	@PreAuthorize("@pcs.hasPermissions('news/update')")
 	public Object update(SysNewsInformation newsInfo) {
 		Date date = new Date();
 		newsInfo.setUpdateTime(date);
@@ -120,7 +120,7 @@ public class NewsController extends BaseController {
 	@ApiOperation("删除")
 	@PostMapping(value = "/del/{id}", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
 	@AuditLogAnnotation(operateName = "资讯删除",interfaceURL = "news/del")
-//	@PreAuthorize("@pcs.hasPermissions('news/del')")
+	@PreAuthorize("@pcs.hasPermissions('news/del')")
 	public Object add(@PathVariable("id") Long id) {
 		return succeed(sysNewsInformationService.deleteWithLogical(id));
 	}

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

@@ -0,0 +1,9 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.biz.dal.entity.SysImComplaint;
+
+public interface SysImComplaintDao extends BaseDAO<Long, SysImComplaint>  {
+
+	
+}

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupRegRespDto.java

@@ -1,6 +1,8 @@
 package com.ym.mec.biz.dal.dto;
 
 import com.ym.mec.biz.dal.entity.Subject;
+import com.ym.mec.biz.dal.enums.CourseViewTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import java.util.List;
@@ -16,6 +18,10 @@ public class MusicGroupRegRespDto {
     //乐团状态
     private String musicGroupStatus;
 
+    //乐团收费方式
+    @ApiModelProperty(value = "乐团收费方式",required = false)
+    private CourseViewTypeEnum courseViewType;
+
     //乐团声部信息
     private List<Subject> subjectList;
 
@@ -48,4 +54,12 @@ public class MusicGroupRegRespDto {
     public void setMusicGroupStatus(String musicGroupStatus) {
         this.musicGroupStatus = musicGroupStatus;
     }
+
+    public CourseViewTypeEnum getCourseViewType() {
+        return courseViewType;
+    }
+
+    public void setCourseViewType(CourseViewTypeEnum courseViewType) {
+        this.courseViewType = courseViewType;
+    }
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentPreRegistration.java

@@ -44,6 +44,9 @@ public class StudentPreRegistration {
 	
 	/** 乐器提供方式 */
 	private String kitPurchaseMethod;
+
+	/** 云教练提供方式 */
+	private String cloudTeacherMethod;
 	
 	/** 创建时间 */
 	private java.util.Date createTime;
@@ -164,4 +167,12 @@ public class StudentPreRegistration {
 	public void setCurrentGradeNum(Integer currentGradeNum) {
 		this.currentGradeNum = currentGradeNum;
 	}
+
+	public String getCloudTeacherMethod() {
+		return cloudTeacherMethod;
+	}
+
+	public void setCloudTeacherMethod(String cloudTeacherMethod) {
+		this.cloudTeacherMethod = cloudTeacherMethod;
+	}
 }

+ 136 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysImComplaint.java

@@ -0,0 +1,136 @@
+package com.ym.mec.biz.dal.entity;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+/**
+ * 对应数据库表(sys_im_complaint):
+ */
+public class SysImComplaint {
+
+	/**  */
+	private Long id;
+	
+	/** 投诉对象类型 GROUP,PERSON*/
+	private String type;
+	
+	/** 图片凭证 */
+	private String url;
+	
+	/** 描述 */
+	private String memo;
+	
+	/** 投诉人 */
+	private Integer userId;
+	
+	/** 目标id */
+	private Long targetId;
+	
+	/** 处理人 */
+	private Long operator;
+	
+	/** 处理时间 */
+	private java.util.Date operatorTime;
+	
+	/** 处理状态0待处理,1已处理 */
+	private Integer status;
+	
+	/**  */
+	private java.util.Date createTime;
+	
+	/**  */
+	private java.util.Date updateTime;
+	
+	public void setId(Long id){
+		this.id = id;
+	}
+	
+	public Long getId(){
+		return this.id;
+	}
+			
+	public void setType(String type){
+		this.type = type;
+	}
+	
+	public String getType(){
+		return this.type;
+	}
+			
+	public void setUrl(String url){
+		this.url = url;
+	}
+	
+	public String getUrl(){
+		return this.url;
+	}
+			
+	public void setMemo(String memo){
+		this.memo = memo;
+	}
+	
+	public String getMemo(){
+		return this.memo;
+	}
+			
+	public void setUserId(Integer userId){
+		this.userId = userId;
+	}
+	
+	public Integer getUserId(){
+		return this.userId;
+	}
+			
+	public void setTargetId(Long targetId){
+		this.targetId = targetId;
+	}
+	
+	public Long getTargetId(){
+		return this.targetId;
+	}
+			
+	public void setOperator(Long operator){
+		this.operator = operator;
+	}
+	
+	public Long getOperator(){
+		return this.operator;
+	}
+			
+	public void setOperatorTime(java.util.Date operatorTime){
+		this.operatorTime = operatorTime;
+	}
+	
+	public java.util.Date getOperatorTime(){
+		return this.operatorTime;
+	}
+			
+	public void setStatus(Integer status){
+		this.status = status;
+	}
+	
+	public Integer getStatus(){
+		return this.status;
+	}
+			
+	public void setCreateTime(java.util.Date createTime){
+		this.createTime = createTime;
+	}
+	
+	public java.util.Date getCreateTime(){
+		return this.createTime;
+	}
+			
+	public void setUpdateTime(java.util.Date updateTime){
+		this.updateTime = updateTime;
+	}
+	
+	public java.util.Date getUpdateTime(){
+		return this.updateTime;
+	}
+			
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+
+}

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentPreRegistrationQueryInfo.java

@@ -18,6 +18,13 @@ public class StudentPreRegistrationQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "用户名或手机号",required = false)
     private String name;
 
+    @ApiModelProperty(value = "乐器提供方式",required = false)
+    private String kitPurchaseMethod;
+
+    @ApiModelProperty(value = "云教练提供方式",required = false)
+    private String cloudTeacherMethod;
+
+
 
     public String getName() {
         return name;
@@ -51,4 +58,19 @@ public class StudentPreRegistrationQueryInfo extends QueryInfo {
         this.isAllowAdjust = isAllowAdjust;
     }
 
+    public String getKitPurchaseMethod() {
+        return kitPurchaseMethod;
+    }
+
+    public void setKitPurchaseMethod(String kitPurchaseMethod) {
+        this.kitPurchaseMethod = kitPurchaseMethod;
+    }
+
+    public String getCloudTeacherMethod() {
+        return cloudTeacherMethod;
+    }
+
+    public void setCloudTeacherMethod(String cloudTeacherMethod) {
+        this.cloudTeacherMethod = cloudTeacherMethod;
+    }
 }

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysImComplaintService.java

@@ -0,0 +1,8 @@
+package com.ym.mec.biz.service;
+
+import com.ym.mec.biz.dal.entity.SysImComplaint;
+import com.ym.mec.common.service.BaseService;
+
+public interface SysImComplaintService extends BaseService<Long, SysImComplaint>{
+
+}

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

@@ -1362,6 +1362,10 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                         map, null, 0, "1", "STUDENT", musicGroup.getName(), sysConfigDao.findConfigValue(SysConfigService.REFUND_PERIOD));
             }
         }
+        //将学生退团
+        if (studentRegistrationService.quitAllStudent(musicGroup.getId(), "退团(乐团关闭)") <= 0) {
+            throw new BizException("处理学生退团失败,请重试");
+        }
         //记录建团日志
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "取消乐团", sysUser.getId(), ""));
         Set<Integer> roleIds = new HashSet<>(1);

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSubjectPlanServiceImpl.java

@@ -141,6 +141,7 @@ public class MusicGroupSubjectPlanServiceImpl extends BaseServiceImpl<Integer, M
         //乐团信息
         MusicGroup musicGroup = musicGroupService.get(musicGroupId);
         musicGroupRegResp.setMusicGroupName(musicGroup.getName());
+        musicGroupRegResp.setCourseViewType(musicGroup.getCourseViewType());
         musicGroupRegResp.setMusicGroupStatus(musicGroup.getStatus().getCode());
         //声部信息
         List<Subject> subjectList = subjectService.findSubByMusicGroupId(musicGroupId);

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

@@ -0,0 +1,21 @@
+package com.ym.mec.biz.service.impl;
+
+import com.ym.mec.biz.dal.dao.SysImComplaintDao;
+import com.ym.mec.biz.dal.entity.SysImComplaint;
+import com.ym.mec.biz.service.SysImComplaintService;
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class SysImComplaintServiceImpl extends BaseServiceImpl<Long, SysImComplaint> implements SysImComplaintService {
+
+	@Autowired
+	private SysImComplaintDao sysImComplaintDao;
+
+	@Override
+	public BaseDAO<Long, SysImComplaint> getDAO() {
+		return sysImComplaintDao;
+	}
+}

+ 218 - 176
mec-biz/src/main/resources/config/mybatis/StudentPreRegistrationMapper.xml

@@ -5,180 +5,222 @@
 不要修改此文件。所有改动将在下次重新自动生成时丢失。
 -->
 <mapper namespace="com.ym.mec.biz.dal.dao.StudentPreRegistrationDao">
-	
-	<resultMap type="com.ym.mec.biz.dal.entity.StudentPreRegistration" id="StudentPreRegistration">
-		<result column="id_" property="id" />
-		<result column="music_group_id_" property="musicGroupId" />
-		<result column="user_id_" property="userId" />
-		<result column="phone_" property="phone" />
-		<result column="user_name_" property="userName" />
-		<result column="gender_" property="gender" />
-		<result column="current_grade_" property="currentGrade" />
-		<result column="current_grade_num_" property="currentGradeNum" />
-		<result column="current_class_" property="currentClass" />
-		<result column="subject_first_" property="subjectFirst" />
-		<result column="subject_second_" property="subjectSecond" />
-		<result column="is_allow_adjust_" property="isAllowAdjust" />
-		<result column="kit_purchase_method_" property="kitPurchaseMethod" />
-		<result column="create_time_" property="createTime" />
-		<result column="is_registered_" property="isRegistered" />
-	</resultMap>
-	
-	<resultMap type="com.ym.mec.biz.dal.dto.StudentPreRegistrationDto" id="StudentPreRegistrationDto" extends="StudentPreRegistration">
-		<result column="subject_first_name_" property="subjectFirstName" />
-		<result column="subject_second_name_" property="subjectSecondName" />
-		<result column="is_registered_" property="isRegistered" />
-	</resultMap>
-	
-	<resultMap type="com.ym.mec.common.entity.Mapper" id="Mapper">
-		<result column="key_" property="key" />
-		<result column="value_" property="value" />
-	</resultMap>
-	
-	<!-- 根据主键查询一条记录 -->
-	<select id="get" resultMap="StudentPreRegistration" >
-		SELECT * FROM student_pre_registration WHERE id_ = #{id} 
-	</select>
-	
-	<!-- 全查询 -->
-	<select id="findAll" resultMap="StudentPreRegistration">
-		SELECT * FROM student_pre_registration ORDER BY id_
-	</select>
-	
-	<!-- 向数据库增加一条记录 -->
-	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.StudentPreRegistration" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		<!--
-		<selectKey resultClass="int" keyProperty="id" > 
-		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
-		</selectKey>
-		-->
-		INSERT INTO student_pre_registration (id_,music_group_id_,user_id_,phone_,user_name_,gender_,current_grade_,current_grade_num_,current_class_,subject_first_,subject_second_,is_allow_adjust_,kit_purchase_method_,create_time_) VALUES(#{id},#{musicGroupId},#{userId},#{phone},#{userName},#{gender},#{currentGrade},#{currentGradeNum},#{currentClass},#{subjectFirst},#{subjectSecond},#{isAllowAdjust},#{kitPurchaseMethod},#{createTime})
-	</insert>
-	
-	<!-- 根据主键查询一条记录 -->
-	<update id="update" parameterType="com.ym.mec.biz.dal.entity.StudentPreRegistration">
-		UPDATE student_pre_registration <set>
-		<if test="musicGroupId != null">
-		music_group_id_ = #{musicGroupId},
-		</if>
-		<if test="userId != null">
-		user_id_ = #{userId},
-		</if>
-		<if test="userName != null">
-		user_name_ = #{userName},
-		</if>
-		<if test="id != null">
-		id_ = #{id},
-		</if>
-		<if test="currentGrade != null">
-		current_grade_ = #{currentGrade},
-		</if>
-		<if test="currentGradeNum != null">
-			current_grade_num_ = #{currentGradeNum},
-		</if>
-		<if test="gender != null">
-		gender_ = #{gender},
-		</if>
-		<if test="subjectFirst != null">
-		subject_first_ = #{subjectFirst},
-		</if>
-		<if test="phone != null">
-		phone_ = #{phone},
-		</if>
-		<if test="subjectSecond != null">
-		subject_second_ = #{subjectSecond},
-		</if>
-		<if test="currentClass != null">
-		current_class_ = #{currentClass},
-		</if>
-		<if test="isAllowAdjust != null">
-		is_allow_adjust_ = #{isAllowAdjust},
-		</if>
-		<if test="kitPurchaseMethod != null">
-		kit_purchase_method_ = #{kitPurchaseMethod},
-		</if>
-		<if test="createTime != null">
-		create_time_ = #{createTime},
-		</if>
-		</set> WHERE id_ = #{id} 
-	</update>
-	
-	<!-- 根据主键删除一条记录 -->
-	<delete id="delete" >
-		DELETE FROM student_pre_registration WHERE id_ = #{id} 
-	</delete>
-	
-	<!-- 分页查询 -->
-	<select id="queryListForPage" resultMap="StudentPreRegistrationDto" parameterType="map">
-		SELECT spr.*,case when sr.id_ is null then false else true end is_registered_,s1.name_ subject_first_name_,s2.name_ subject_second_name_ FROM student_pre_registration spr 
-		left join subject s1 on s1.id_ = spr.subject_first_
-		left join subject s2 on s2.id_ = spr.subject_second_
-		left join student_registration sr on spr.music_group_id_ = sr.music_group_id_ and spr.user_id_ = sr.user_id_
-		<where>
-			<if test="musicGroupId != null">
-				and spr.music_group_id_ = #{musicGroupId}
-			</if>
-			<if test="isAllowAdjust != null">
-				and spr.is_allow_adjust_ = #{isAllowAdjust}
-			</if>
-			<if test="subjectId != null">
-				and (spr.subject_first_ = #{subjectId} or spr.subject_second_ = #{subjectId})
-			</if>
-			<if test="name != null">
-				and (spr.phone_ like concat('%',#{name},'%') or spr.user_name_ like concat('%',#{name},'%') or spr.user_id_ like concat('%',#{name},'%'))
-			</if>
-			<if test="isAllowAdjust != null">
-				and spr.is_allow_adjust_ = #{isAllowAdjust}
-			</if>
-		</where>
-		ORDER BY spr.id_ <include refid="global.limit"/>
-	</select>
-	
-	<!-- 查询当前表的总记录数 -->
-	<select id="queryCount" resultType="int">
-		SELECT COUNT(spr.id_) FROM student_pre_registration spr
-		<where>
-			<if test="musicGroupId != null">
-				and spr.music_group_id_ = #{musicGroupId}
-			</if>
-			<if test="isAllowAdjust != null">
-				and spr.is_allow_adjust_ = #{isAllowAdjust}
-			</if>
-			<if test="subjectId != null">
-				and (spr.subject_first_ = #{subjectId} or spr.subject_second_ = #{subjectId})
-			</if>
-			<if test="name != null">
-				and (spr.phone_ like concat('%',#{name},'%') or spr.user_name_ like concat('%',#{name},'%') or spr.user_id_ like concat('%',#{name},'%'))
-			</if>
-			<if test="isAllowAdjust != null">
-				and spr.is_allow_adjust_ = #{isAllowAdjust}
-			</if>
-		</where>
-	</select>
-	
-	<select id="queryFirstSubjectNum" resultMap="Mapper">
-		SELECT ifnull(s.name_,'听从老师安排') key_,COUNT(spr.id_) value_ FROM student_pre_registration spr 
-		left join subject s on s.id_ = spr.subject_first_
-		where spr.music_group_id_ = #{musicGroupId}
-		group by spr.subject_first_
-	</select>
-	
-	<select id="querySecondSubjectNum" resultMap="Mapper">
-		SELECT ifnull(s.name_,'听从老师安排') key_,COUNT(spr.id_) value_ FROM student_pre_registration spr  
-		left join subject s on s.id_ = spr.subject_second_
-		where spr.music_group_id_ = #{musicGroupId}
-		group by spr.subject_second_
-	</select>
-	
-	<select id="queryByMusicGroupIdAndUserId" resultMap="StudentPreRegistration" parameterType="map">
-		SELECT * FROM student_pre_registration WHERE user_id_ = #{userId} and music_group_id_ = #{musicGroupId}
-	</select>
-	
-	<select id="queryByMusicGroupIdAndPhone" resultMap="StudentPreRegistration" parameterType="map">
-		SELECT * FROM student_pre_registration WHERE phone_ = #{phone} and music_group_id_ = #{musicGroupId}
-	</select>
-	
-	<select id="queryByMusicGroupId" resultMap="StudentPreRegistration">
-		SELECT * FROM student_pre_registration WHERE music_group_id_ = #{musicGroupId}
-	</select>
+
+    <resultMap type="com.ym.mec.biz.dal.entity.StudentPreRegistration" id="StudentPreRegistration">
+        <result column="id_" property="id"/>
+        <result column="music_group_id_" property="musicGroupId"/>
+        <result column="user_id_" property="userId"/>
+        <result column="phone_" property="phone"/>
+        <result column="user_name_" property="userName"/>
+        <result column="gender_" property="gender"/>
+        <result column="current_grade_" property="currentGrade"/>
+        <result column="current_grade_num_" property="currentGradeNum"/>
+        <result column="current_class_" property="currentClass"/>
+        <result column="subject_first_" property="subjectFirst"/>
+        <result column="subject_second_" property="subjectSecond"/>
+        <result column="is_allow_adjust_" property="isAllowAdjust"/>
+        <result column="kit_purchase_method_" property="kitPurchaseMethod"/>
+        <result column="cloud_teacher_method_" property="cloudTeacherMethod"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="is_registered_" property="isRegistered"/>
+    </resultMap>
+
+    <resultMap type="com.ym.mec.biz.dal.dto.StudentPreRegistrationDto" id="StudentPreRegistrationDto"
+               extends="StudentPreRegistration">
+        <result column="subject_first_name_" property="subjectFirstName"/>
+        <result column="subject_second_name_" property="subjectSecondName"/>
+        <result column="is_registered_" property="isRegistered"/>
+    </resultMap>
+
+    <resultMap type="com.ym.mec.common.entity.Mapper" id="Mapper">
+        <result column="key_" property="key"/>
+        <result column="value_" property="value"/>
+    </resultMap>
+
+    <!-- 根据主键查询一条记录 -->
+    <select id="get" resultMap="StudentPreRegistration">
+        SELECT *
+        FROM student_pre_registration
+        WHERE id_ = #{id}
+    </select>
+
+    <!-- 全查询 -->
+    <select id="findAll" resultMap="StudentPreRegistration">
+        SELECT *
+        FROM student_pre_registration
+        ORDER BY id_
+    </select>
+
+    <!-- 向数据库增加一条记录 -->
+    <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.StudentPreRegistration" useGeneratedKeys="true"
+            keyColumn="id" keyProperty="id">
+        <!--
+        <selectKey resultClass="int" keyProperty="id" >
+        SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
+        </selectKey>
+        -->
+        INSERT INTO student_pre_registration
+        (id_,music_group_id_,user_id_,phone_,user_name_,gender_,current_grade_,current_grade_num_,current_class_,subject_first_,subject_second_,is_allow_adjust_,kit_purchase_method_,cloud_teacher_method_,create_time_)
+        VALUES(#{id},#{musicGroupId},#{userId},#{phone},#{userName},#{gender},#{currentGrade},#{currentGradeNum},#{currentClass},#{subjectFirst},#{subjectSecond},#{isAllowAdjust},#{kitPurchaseMethod},#{cloudTeacherMethod},#{createTime})
+    </insert>
+
+    <!-- 根据主键查询一条记录 -->
+    <update id="update" parameterType="com.ym.mec.biz.dal.entity.StudentPreRegistration">
+        UPDATE student_pre_registration
+        <set>
+            <if test="musicGroupId != null">
+                music_group_id_ = #{musicGroupId},
+            </if>
+            <if test="userId != null">
+                user_id_ = #{userId},
+            </if>
+            <if test="userName != null">
+                user_name_ = #{userName},
+            </if>
+            <if test="id != null">
+                id_ = #{id},
+            </if>
+            <if test="currentGrade != null">
+                current_grade_ = #{currentGrade},
+            </if>
+            <if test="currentGradeNum != null">
+                current_grade_num_ = #{currentGradeNum},
+            </if>
+            <if test="gender != null">
+                gender_ = #{gender},
+            </if>
+            <if test="subjectFirst != null">
+                subject_first_ = #{subjectFirst},
+            </if>
+            <if test="phone != null">
+                phone_ = #{phone},
+            </if>
+            <if test="subjectSecond != null">
+                subject_second_ = #{subjectSecond},
+            </if>
+            <if test="currentClass != null">
+                current_class_ = #{currentClass},
+            </if>
+            <if test="isAllowAdjust != null">
+                is_allow_adjust_ = #{isAllowAdjust},
+            </if>
+            <if test="kitPurchaseMethod != null">
+                kit_purchase_method_ = #{kitPurchaseMethod},
+            </if>
+            <if test="cloudTeacherMethod != null">
+                cloud_teacher_method_ = #{cloudTeacherMethod},
+            </if>
+            <if test="createTime != null">
+                create_time_ = #{createTime},
+            </if>
+        </set>
+        WHERE id_ = #{id}
+    </update>
+
+    <!-- 根据主键删除一条记录 -->
+    <delete id="delete">
+        DELETE
+        FROM student_pre_registration
+        WHERE id_ = #{id}
+    </delete>
+
+    <!-- 分页查询 -->
+    <select id="queryListForPage" resultMap="StudentPreRegistrationDto" parameterType="map">
+        SELECT spr.*,case when sr.id_ is null then false else true end is_registered_,s1.name_
+        subject_first_name_,s2.name_ subject_second_name_ FROM student_pre_registration spr
+        left join subject s1 on s1.id_ = spr.subject_first_
+        left join subject s2 on s2.id_ = spr.subject_second_
+        left join student_registration sr on spr.music_group_id_ = sr.music_group_id_ and spr.user_id_ = sr.user_id_
+        <where>
+            <if test="musicGroupId != null">
+                and spr.music_group_id_ = #{musicGroupId}
+            </if>
+            <if test="isAllowAdjust != null">
+                and spr.is_allow_adjust_ = #{isAllowAdjust}
+            </if>
+            <if test="subjectId != null">
+                and (spr.subject_first_ = #{subjectId} or spr.subject_second_ = #{subjectId})
+            </if>
+            <if test="name != null">
+                and (spr.phone_ like concat('%',#{name},'%') or spr.user_name_ like concat('%',#{name},'%') or
+                spr.user_id_ like concat('%',#{name},'%'))
+            </if>
+            <if test="isAllowAdjust != null">
+                and spr.is_allow_adjust_ = #{isAllowAdjust}
+            </if>
+            <if test="kitPurchaseMethod != null">
+                and spr.kit_purchase_method_ = #{kitPurchaseMethod}
+            </if>
+            <if test="cloudTeacherMethod != null">
+                and spr.cloud_teacher_method_ = #{cloudTeacherMethod}
+            </if>
+        </where>
+        ORDER BY spr.id_
+        <include refid="global.limit"/>
+    </select>
+
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryCount" resultType="int">
+        SELECT COUNT(spr.id_) FROM student_pre_registration spr
+        <where>
+            <if test="musicGroupId != null">
+                and spr.music_group_id_ = #{musicGroupId}
+            </if>
+            <if test="isAllowAdjust != null">
+                and spr.is_allow_adjust_ = #{isAllowAdjust}
+            </if>
+            <if test="subjectId != null">
+                and (spr.subject_first_ = #{subjectId} or spr.subject_second_ = #{subjectId})
+            </if>
+            <if test="name != null">
+                and (spr.phone_ like concat('%',#{name},'%') or spr.user_name_ like concat('%',#{name},'%') or
+                spr.user_id_ like concat('%',#{name},'%'))
+            </if>
+            <if test="isAllowAdjust != null">
+                and spr.is_allow_adjust_ = #{isAllowAdjust}
+            </if>
+            <if test="kitPurchaseMethod != null">
+                and spr.kit_purchase_method_ = #{kitPurchaseMethod}
+            </if>
+            <if test="cloudTeacherMethod != null">
+                and spr.cloud_teacher_method_ = #{cloudTeacherMethod}
+            </if>
+        </where>
+    </select>
+
+    <select id="queryFirstSubjectNum" resultMap="Mapper">
+        SELECT ifnull(s.name_, '听从老师安排') key_, COUNT(spr.id_) value_
+        FROM student_pre_registration spr
+                 left join subject s on s.id_ = spr.subject_first_
+        where spr.music_group_id_ = #{musicGroupId}
+        group by spr.subject_first_
+    </select>
+
+    <select id="querySecondSubjectNum" resultMap="Mapper">
+        SELECT ifnull(s.name_, '听从老师安排') key_, COUNT(spr.id_) value_
+        FROM student_pre_registration spr
+                 left join subject s on s.id_ = spr.subject_second_
+        where spr.music_group_id_ = #{musicGroupId}
+        group by spr.subject_second_
+    </select>
+
+    <select id="queryByMusicGroupIdAndUserId" resultMap="StudentPreRegistration" parameterType="map">
+        SELECT *
+        FROM student_pre_registration
+        WHERE user_id_ = #{userId}
+          and music_group_id_ = #{musicGroupId}
+    </select>
+
+    <select id="queryByMusicGroupIdAndPhone" resultMap="StudentPreRegistration" parameterType="map">
+        SELECT *
+        FROM student_pre_registration
+        WHERE phone_ = #{phone}
+          and music_group_id_ = #{musicGroupId}
+    </select>
+
+    <select id="queryByMusicGroupId" resultMap="StudentPreRegistration">
+        SELECT *
+        FROM student_pre_registration
+        WHERE music_group_id_ = #{musicGroupId}
+    </select>
 </mapper>

+ 43 - 0
mec-biz/src/main/resources/config/mybatis/SysImComplaintMapper.xml

@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!--
+这个文件是自动生成的。
+不要修改此文件。所有改动将在下次重新自动生成时丢失。
+-->
+<mapper namespace="com.ym.mec.biz.dal.dao.SysImComplaintDao">
+	
+	<resultMap type="com.ym.mec.biz.dal.entity.SysImComplaint" id="SysImComplaint">
+		<result column="id_" property="id" />
+		<result column="type_" property="type" />
+		<result column="url_" property="url" />
+		<result column="memo_" property="memo" />
+		<result column="user_id_" property="userId" />
+		<result column="target_id_" property="targetId" />
+		<result column="operator_" property="operator" />
+		<result column="operator_time_" property="operatorTime" />
+		<result column="status_" property="status" />
+		<result column="create_time_" property="createTime" />
+		<result column="update_time_" property="updateTime" />
+	</resultMap>
+	
+	<!-- 全查询 -->
+	<select id="findAll" resultMap="SysImComplaint">
+		SELECT * FROM sys_im_complaint
+	</select>
+	
+	<!-- 向数据库增加一条记录 -->
+	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.SysImComplaint" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+		INSERT INTO sys_im_complaint (type_,url_,memo_,user_id_,target_id_,operator_,operator_time_,status_,create_time_,update_time_)
+		VALUES(#{type},#{url},#{memo},#{userId},#{targetId},#{operator},#{operatorTime},#{status},NOW(),NOW())
+	</insert>
+	
+	<!-- 分页查询 -->
+	<select id="queryPage" resultMap="SysImComplaint" parameterType="map">
+		SELECT * FROM sys_im_complaint <include refid="global.limit"/>
+	</select>
+	
+	<!-- 查询当前表的总记录数 -->
+	<select id="queryCount" resultType="int">
+		SELECT COUNT(*) FROM sys_im_complaint
+	</select>
+</mapper>

+ 4 - 7
mec-biz/src/main/resources/config/mybatis/SysMusicScoreAccompanimentMapper.xml

@@ -47,16 +47,16 @@
 	
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.SysMusicScoreAccompaniment" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO sys_music_score_accompaniment (exam_song_id_,subject_id_,mp3_url_,speed_,xml_url_,create_time_,update_time_,client_type_)
-		VALUES(#{examSongId},#{subjectId},#{mp3Url},#{speed},#{xmlUrl},NOW(),NOW(),#{clientType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
+		INSERT INTO sys_music_score_accompaniment (exam_song_id_,subject_id_,mp3_url_,speed_,xml_url_,create_time_,update_time_)
+		VALUES(#{examSongId},#{subjectId},#{mp3Url},#{speed},#{xmlUrl},NOW(),NOW())
 	</insert>
     <insert id="batchInsert">
 		INSERT INTO sys_music_score_accompaniment (exam_song_id_,subject_id_,mp3_url_,speed_,xml_url_,
-		                                           create_time_,update_time_,is_show_fingering_,memo_,client_type_)
+		                                           create_time_,update_time_,is_show_fingering_,memo_)
 		VALUES
 		<foreach collection="sysMusicScoreAccompaniments" item="item"  separator=",">
 			(#{sysMusicScoreId},#{item.subjectId},#{item.mp3Url},#{item.speed},
-			 #{item.xmlUrl},NOW(),NOW(),#{item.isShowFingering},#{item.memo},#{item.clientType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
+			 #{item.xmlUrl},NOW(),NOW(),#{item.isShowFingering},#{item.memo})
 		</foreach>
 	</insert>
 
@@ -64,9 +64,6 @@
 	<update id="update" parameterType="com.ym.mec.biz.dal.entity.SysMusicScoreAccompaniment">
 		UPDATE sys_music_score_accompaniment
 		<set>
-		<if test="clientType != null">
-			client_type_ = #{clientType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-		</if>
 		<if test="isShowFingering != null">
 			is_show_fingering_ = #{isShowFingering},
 		</if>

+ 35 - 0
mec-student/src/main/java/com/ym/mec/student/controller/SysImComplaintController.java

@@ -0,0 +1,35 @@
+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.entity.SysImComplaint;
+import com.ym.mec.biz.service.SysImComplaintService;
+import com.ym.mec.common.controller.BaseController;
+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.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+@RequestMapping("sysImComplaint")
+@Api(tags = "im投诉服务")
+@RestController
+public class SysImComplaintController extends BaseController {
+
+    @Autowired
+    private SysImComplaintService sysImComplaintService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+    @ApiOperation(value = "新增")
+    @PostMapping("/add")
+    public Object getOrgans(SysImComplaint sysImComplaint) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        sysImComplaint.setUserId(sysUser.getId());
+        return succeed(sysImComplaintService.insert(sysImComplaint));
+    }
+}

+ 35 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/SysImComplaintController.java

@@ -0,0 +1,35 @@
+package com.ym.mec.teacher.controller;
+
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.entity.SysImComplaint;
+import com.ym.mec.biz.service.SysImComplaintService;
+import com.ym.mec.common.controller.BaseController;
+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.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+@RequestMapping("sysImComplaint")
+@Api(tags = "im投诉服务")
+@RestController
+public class SysImComplaintController extends BaseController {
+
+    @Autowired
+    private SysImComplaintService sysImComplaintService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+    @ApiOperation(value = "新增")
+    @PostMapping("/add")
+    public Object getOrgans(SysImComplaint sysImComplaint) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        sysImComplaint.setUserId(sysUser.getId());
+        return succeed(sysImComplaintService.insert(sysImComplaint));
+    }
+}

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

@@ -3,6 +3,7 @@ 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.entity.*;
+import com.ym.mec.biz.dal.enums.CourseViewTypeEnum;
 import com.ym.mec.biz.dal.page.NoClassMusicStudentQueryInfo;
 import com.ym.mec.biz.service.EmployeeService;
 import io.swagger.annotations.Api;
@@ -270,26 +271,39 @@ public class StudentRegistrationController extends BaseController {
             response.flushBuffer();
             return;
         }
+        MusicGroup musicGroup = musicGroupDao.get(queryInfo.getMusicGroupId());
         for (StudentPreRegistrationDto row : studentPreRegistration.getRows()) {
             if (row.getKitPurchaseMethod().equals("OWNED")) {
                 row.setKitPurchaseMethod("自行准备");
             } else if (row.getKitPurchaseMethod().equals("GROUP")) {
                 row.setKitPurchaseMethod("团购");
             }
-            if(row.getSubjectFirst().equals(999)){
+            if ("OWNED".equals(row.getCloudTeacherMethod())) {
+                row.setCloudTeacherMethod("自行准备");
+            } else if ("GROUP".equals(row.getCloudTeacherMethod())) {
+                row.setCloudTeacherMethod("团购");
+            }
+            if (row.getSubjectFirst().equals(999)) {
                 row.setSubjectFirstName("听从老师安排");
             }
-            if(row.getSubjectSecond().equals(999)){
+            if (row.getSubjectSecond().equals(999)) {
                 row.setSubjectSecondName("听从老师安排");
             }
             row.setCurrentGrade(row.getCurrentGrade() + row.getCurrentClass());
         }
         OutputStream outputStream = response.getOutputStream();
         try {
-            String[] header = {"学员编号", "学员姓名", "性别", "联系电话", "年级班级", "选报声部1", "选报声部2", "是否服从调剂", "乐器准备方式"};
-            String[] body = {"userId", "userName", "gender ? '男' : '女'", "phone", "currentGrade", "subjectFirstName", "subjectSecondName", "isAllowAdjust ? '是' : '否'", "kitPurchaseMethod"};
+            HSSFWorkbook workbook = null;
+            if (musicGroup.getCourseViewType().equals(CourseViewTypeEnum.CLOUD_TEACHER)) {
+                String[] header = {"学员编号", "学员姓名", "性别", "联系电话", "年级班级", "选报声部1", "选报声部2", "是否服从调剂", "乐器准备方式", "练习系统"};
+                String[] body = {"userId", "userName", "gender ? '男' : '女'", "phone", "currentGrade", "subjectFirstName", "subjectSecondName", "isAllowAdjust ? '是' : '否'", "kitPurchaseMethod", "cloudTeacherMethod"};
+                workbook = POIUtil.exportExcel(header, body, studentPreRegistration.getRows());
+            } else {
+                String[] header = {"学员编号", "学员姓名", "性别", "联系电话", "年级班级", "选报声部1", "选报声部2", "是否服从调剂", "乐器准备方式"};
+                String[] body = {"userId", "userName", "gender ? '男' : '女'", "phone", "currentGrade", "subjectFirstName", "subjectSecondName", "isAllowAdjust ? '是' : '否'", "kitPurchaseMethod"};
+                workbook = POIUtil.exportExcel(header, body, studentPreRegistration.getRows());
+            }
 
-            HSSFWorkbook workbook = POIUtil.exportExcel(header, body, studentPreRegistration.getRows());
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attachment;filename=pre-register-" + DateUtil.getDate(new Date()) + ".xls");
             response.flushBuffer();
@@ -312,7 +326,7 @@ public class StudentRegistrationController extends BaseController {
     @ApiOperation(value = "查询乐团中未加入班级学员信息")
     @GetMapping("/queryNoClassMusicStudentInfo")
     @PreAuthorize("@pcs.hasPermissions('studentRegistration/queryNoClassMusicStudentInfo')")
-    public HttpResponseResult queryNoClassMusicStudentInfo(NoClassMusicStudentQueryInfo queryInfo){
+    public HttpResponseResult queryNoClassMusicStudentInfo(NoClassMusicStudentQueryInfo queryInfo) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
             return failed("用户信息获取失败");
@@ -320,11 +334,11 @@ public class StudentRegistrationController extends BaseController {
         Employee employee = employeeService.get(sysUser.getId());
         if (StringUtils.isBlank(queryInfo.getOrganIds())) {
             queryInfo.setOrganIds(employee.getOrganIdList());
-        }else if(StringUtils.isEmpty(employee.getOrganIdList())){
+        } else if (StringUtils.isEmpty(employee.getOrganIdList())) {
             return failed("用户所在分部异常");
-        }else {
+        } else {
             List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
-            if(!list.containsAll(Arrays.asList(queryInfo.getOrganIds().split(",")))){
+            if (!list.containsAll(Arrays.asList(queryInfo.getOrganIds().split(",")))) {
                 return failed("非法请求");
             }
         }

+ 35 - 0
mec-web/src/main/java/com/ym/mec/web/controller/SysImComplaintController.java

@@ -0,0 +1,35 @@
+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.entity.SysImComplaint;
+import com.ym.mec.biz.service.SysImComplaintService;
+import com.ym.mec.common.controller.BaseController;
+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.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+@RequestMapping("sysImComplaint")
+@Api(tags = "im投诉服务")
+@RestController
+public class SysImComplaintController extends BaseController {
+
+    @Autowired
+    private SysImComplaintService sysImComplaintService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+    @ApiOperation(value = "新增")
+    @PostMapping("/add")
+    public Object getOrgans(SysImComplaint sysImComplaint) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        sysImComplaint.setUserId(sysUser.getId());
+        return succeed(sysImComplaintService.insert(sysImComplaint));
+    }
+}