Browse Source

合作单位关联乐团主管

zouxuan 4 years ago
parent
commit
afba8edf42

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java

@@ -395,4 +395,18 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
      * @return
      */
     List<Map<Long, String>> queryEduNameMapByCourseId(@Param("courseIds") List<Long> courseIds);
+
+    /**
+     * 根据合作单位获取乐团列表
+     * @param cooperationOrganId
+     * @return
+     */
+    List<MusicGroup> findByCooperationId(Integer cooperationOrganId);
+
+    /**
+     * 批量修改乐团主管
+     * @param cooperationOrganId
+     * @param educationUserId
+     */
+    void batchUpdateEdu(@Param("cooperationOrganId") Integer cooperationOrganId, @Param("educationUserId") Integer educationUserId);
 }

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CooperationOrgan.java

@@ -34,6 +34,12 @@ public class CooperationOrgan {
 	/**  */
 	private Integer id;
 
+	/**  */
+	private Integer educationUserId;
+
+	/**  */
+	private String realName;
+
 	/** 单位名称 */
 	@ApiModelProperty(value = "班级编号", required = false)
 	private String name;
@@ -75,6 +81,22 @@ public class CooperationOrgan {
 	@ApiModelProperty(value = "是否全职资源",required = false)
 	private Integer fullJobResource;
 
+	public String getRealName() {
+		return realName;
+	}
+
+	public void setRealName(String realName) {
+		this.realName = realName;
+	}
+
+	public Integer getEducationUserId() {
+		return educationUserId;
+	}
+
+	public void setEducationUserId(Integer educationUserId) {
+		this.educationUserId = educationUserId;
+	}
+
 	public Integer getFullJobResource() {
 		return fullJobResource;
 	}

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/CooperationOrganQueryInfo.java

@@ -10,6 +10,16 @@ public class CooperationOrganQueryInfo extends QueryInfo {
 
     private Integer fullJobResource;
 
+    private Integer educationUserId;
+
+	public Integer getEducationUserId() {
+		return educationUserId;
+	}
+
+	public void setEducationUserId(Integer educationUserId) {
+		this.educationUserId = educationUserId;
+	}
+
 	public Integer getFullJobResource() {
 		return fullJobResource;
 	}

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/CooperationOrganService.java

@@ -24,4 +24,6 @@ public interface CooperationOrganService extends BaseService<Integer, Cooperatio
      * @return
      */
     List<MusicGroupPaymentCalender> getCooperationOrganCalender4School(Integer id);
+
+    void updateCooperation(CooperationOrgan cooperationOrgan);
 }

+ 51 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CooperationOrganServiceImpl.java

@@ -1,8 +1,16 @@
 package com.ym.mec.biz.service.impl;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
+import com.ym.mec.biz.dal.dao.ClassGroupDao;
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.entity.ClassGroup;
+import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
+import com.ym.mec.biz.service.ImGroupMemberService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -11,12 +19,19 @@ import com.ym.mec.biz.dal.entity.CooperationOrgan;
 import com.ym.mec.biz.service.CooperationOrganService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
 
 @Service
 public class CooperationOrganServiceImpl extends BaseServiceImpl<Integer, CooperationOrgan>  implements CooperationOrganService {
 	
 	@Autowired
 	private CooperationOrganDao cooperationOrganDao;
+	@Autowired
+	private MusicGroupDao musicGroupDao;
+	@Autowired
+	private ClassGroupDao classGroupDao;
+	@Autowired
+	private ImGroupMemberService imGroupMemberService;
 
 	@Override
 	public BaseDAO<Integer, CooperationOrgan> getDAO() {
@@ -32,4 +47,40 @@ public class CooperationOrganServiceImpl extends BaseServiceImpl<Integer, Cooper
     public List<MusicGroupPaymentCalender> getCooperationOrganCalender4School(Integer id) {
 		return cooperationOrganDao.getCooperationOrganCalender4School(id);
     }
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void updateCooperation(CooperationOrgan cooperationOrgan) {
+		CooperationOrgan cooperationOrgan1 = cooperationOrganDao.get(cooperationOrgan.getId());
+		//修改了乐团主管后,修改关联乐团的乐团主管
+		if(!cooperationOrgan.getEducationUserId().equals(cooperationOrgan1.getEducationUserId())){
+			//获取进行中和暂停的乐团列表
+			List<MusicGroup> musicGroups = musicGroupDao.findByCooperationId(cooperationOrgan.getId());
+			if(musicGroups.size() > 0){
+				for (MusicGroup musicGroup : musicGroups) {
+					//获取当前乐团所有班级
+					List<ClassGroup> classGroups = classGroupDao.findClassGroups(musicGroup.getId());
+					if (classGroups == null || classGroups.size() == 0) {
+						continue;
+					}
+					Integer educationalTeacherId = musicGroup.getEducationalTeacherId();
+					List<Integer> quitUserIdList = new ArrayList<Integer>();
+					if(educationalTeacherId != null){
+						quitUserIdList.add(educationalTeacherId);
+					}
+					Map<Integer, String> userRoleMap = new HashMap<Integer, String>(1);
+					userRoleMap.put(cooperationOrgan.getEducationUserId(), "乐团主管");
+					classGroups.forEach(e -> {
+						if(educationalTeacherId != null){
+							imGroupMemberService.quit(e.getId().longValue(), quitUserIdList);
+						}
+						imGroupMemberService.join(e.getId().longValue(), userRoleMap);
+					});
+				}
+			}
+			//修改乐团主管
+			musicGroupDao.batchUpdateEdu(cooperationOrgan.getId(),cooperationOrgan.getEducationUserId());
+		}
+		cooperationOrganDao.update(cooperationOrgan);
+	}
 }

+ 22 - 23
mec-biz/src/main/resources/config/mybatis/CooperationOrganMapper.xml

@@ -6,6 +6,8 @@
     <resultMap type="com.ym.mec.biz.dal.entity.CooperationOrgan"
                id="CooperationOrgan">
         <result column="id_" property="id"/>
+        <result column="education_user_id_" property="educationUserId"/>
+        <result column="real_name_" property="realName"/>
         <result column="name_" property="name"/>
         <result column="linkman_" property="linkman"/>
         <result column="organ_id_" property="organId"/>
@@ -45,16 +47,19 @@
             useGeneratedKeys="true" keyColumn="id" keyProperty="id">
         INSERT INTO cooperation_organ
         (id_, name_, linkman_, job_, mobile_no_, address_, organ_id_, create_time_, update_time_, ownership_type_,
-         is_enable_, full_job_resource_)
+         is_enable_, full_job_resource_,education_user_id_)
         VALUES (#{id}, #{name}, #{linkman}, #{job}, #{mobileNo}, #{address}, #{organId}, now(), now(),
                 #{ownershipType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}, #{isEnable},
-                #{fullJobResource})
+                #{fullJobResource},#{educationUserId})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.CooperationOrgan">
         UPDATE cooperation_organ
         <set>
+            <if test="educationUserId != null">
+                education_user_id_ = #{educationUserId},
+            </if>
             <if test="fullJobResource != null">
                 full_job_resource_ = #{fullJobResource},
             </if>
@@ -99,11 +104,20 @@
     <!-- 分页查询 -->
     <select id="queryPage" resultMap="ExtCooperationOrgan"
             parameterType="map">
-        SELECT co.*,o.name_ organ_name_ FROM cooperation_organ co left join organization o on co.organ_id_ = o.id_
+        SELECT co.*,o.name_ organ_name_,su.real_name_ FROM cooperation_organ co
+        LEFT JOIN organization o ON co.organ_id_ = o.id_
+        LEFT JOIN sys_user su ON su.id_ = co.education_user_id_
+        <include refid="queryPageSql"/>
+        ORDER BY co.update_time_ DESC
+        <include refid="global.limit"/>
+    </select>
+
+    <sql id="queryPageSql">
         <where>
             co.del_flag_ != 1
             <if test="search != null">
-                AND (co.id_ LIKE CONCAT('%',#{search},'%') OR co.name_ LIKE CONCAT('%',#{search},'%'))
+                AND (co.education_user_id_ = #{search} OR su.real_name_ LIKE CONCAT('%',#{search},'%')
+                OR co.id_ LIKE CONCAT('%',#{search},'%') OR co.name_ LIKE CONCAT('%',#{search},'%'))
             </if>
             <if test="organId != null">
                 AND FIND_IN_SET(co.organ_id_,#{organId})
@@ -115,28 +129,13 @@
                 AND co.full_job_resource_ = #{fullJobResource}
             </if>
         </where>
-        ORDER BY co.update_time_ DESC
-        <include refid="global.limit"/>
-    </select>
+    </sql>
 
     <!-- 查询当前表的总记录数 -->
     <select id="queryCount" resultType="int">
-        SELECT COUNT(*) FROM cooperation_organ
-        <where>
-            del_flag_ != 1
-            <if test="search != null">
-                AND (id_ LIKE CONCAT('%',#{search},'%') OR name_ LIKE CONCAT('%',#{search},'%'))
-            </if>
-            <if test="organId != null">
-                AND FIND_IN_SET(organ_id_,#{organId})
-            </if>
-            <if test="isEnable != null">
-                AND is_enable_ = #{isEnable}
-            </if>
-            <if test="fullJobResource != null">
-                AND full_job_resource_ = #{fullJobResource}
-            </if>
-        </where>
+        SELECT COUNT(co.id_) FROM cooperation_organ co
+        LEFT JOIN sys_user su ON su.id_ = co.education_user_id_
+        <include refid="queryPageSql"/>
     </select>
 
     <select id="queryByOrganId" resultMap="CooperationOrgan">

+ 6 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml

@@ -185,6 +185,9 @@
         </set>
         WHERE id_ = #{id}
     </update>
+    <update id="batchUpdateEdu">
+        UPDATE music_group SET educational_teacher_id_ = #{educationUserId} WHERE cooperation_organ_id_ = #{cooperationOrganId}
+    </update>
 
     <!-- 根据主键删除一条记录 -->
     <delete id="delete">
@@ -739,4 +742,7 @@
         </foreach>
         AND mg.educational_teacher_id_ IS NOT NULL
     </select>
+    <select id="findByCooperationId" resultMap="MusicGroup">
+        SELECT * FROM music_group WHERE cooperation_organ_id_ = #{cooperationOrganId} AND status_ IN ('PROGRESS','PAUSE')
+    </select>
 </mapper>

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

@@ -55,7 +55,7 @@ public class CooperationOrganController extends BaseController {
     @PreAuthorize("@pcs.hasPermissions('cooperationOrgan/update')")
     public Object update(CooperationOrgan cooperationOrgan) {
         cooperationOrgan.setUpdateTime(new Date());
-        cooperationOrganService.update(cooperationOrgan);
+        cooperationOrganService.updateCooperation(cooperationOrgan);
         return succeed();
     }