Browse Source

Merge remote-tracking branch 'origin/master'

Joburgess 4 years ago
parent
commit
31d9159940

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

@@ -14,4 +14,11 @@ public interface MemberRankPrivilegesDao extends BaseDAO<Integer, MemberRankPriv
     List<MemberRankPrivileges> findByRankSettingId(Integer memberRankSettingId);
 
     void deleteByRankSettingId(Integer memberRankSettingId);
+
+    /**
+     * 当前功能是否被会员使用
+     * @param parentId
+     * @return
+     */
+    boolean hasPrivileges(Integer parentId);
 }

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

@@ -623,4 +623,12 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
      * @return
      */
     boolean checkHasNotClass(@Param("musicGroupId") String musicGroupId);
+
+    /**
+     * 是否有其他会员收费团
+     * @param musicGroupId
+     * @param userId
+     * @return
+     */
+    boolean checkHasMemberGroup(@Param("musicGroupId") String musicGroupId, @Param("userId") Integer userId);
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentManageListDto.java

@@ -102,6 +102,16 @@ public class StudentManageListDto {
 
     private String cooperationOrganName;
 
+    private Integer memberRankSettingId;
+
+    public Integer getMemberRankSettingId() {
+        return memberRankSettingId;
+    }
+
+    public void setMemberRankSettingId(Integer memberRankSettingId) {
+        this.memberRankSettingId = memberRankSettingId;
+    }
+
     public Integer getCooperationOrganId() {
         return cooperationOrganId;
     }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentManageQueryInfo.java

@@ -74,6 +74,17 @@ public class StudentManageQueryInfo extends QueryInfo {
         this.activityCourseType = activityCourseType;
     }
 
+    //是否有会员
+    private Integer hasMember;
+
+    public Integer getHasMember() {
+        return hasMember;
+    }
+
+    public void setHasMember(Integer hasMember) {
+        this.hasMember = hasMember;
+    }
+
     public Integer getCarePackage() {
         return carePackage;
     }

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

@@ -14,4 +14,8 @@ public interface MemberPrivilegesItemService extends BaseService<Integer, Member
     PageInfo<MemberPrivilegesItem> queryItemPage(MemberPrivilegesItemQueryInfo queryInfo);
 
     List<MemberPrivilegesItem> findAllItem(MemberPrivilegesItemQueryInfo queryInfo);
+
+    void updateItem(MemberPrivilegesItem memberPrivilegesItem);
+
+    void add(MemberPrivilegesItem memberPrivilegesItem);
 }

+ 52 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberPrivilegesItemServiceImpl.java

@@ -1,10 +1,12 @@
 package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.biz.dal.dao.MemberPrivilegesItemDao;
+import com.ym.mec.biz.dal.dao.MemberRankPrivilegesDao;
 import com.ym.mec.biz.dal.entity.MemberPrivilegesItem;
 import com.ym.mec.biz.dal.page.MemberPrivilegesItemQueryInfo;
 import com.ym.mec.biz.service.MemberPrivilegesItemService;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -19,6 +21,8 @@ public class MemberPrivilegesItemServiceImpl extends BaseServiceImpl<Integer, Me
 	
 	@Autowired
 	private MemberPrivilegesItemDao memberPrivilegesItemDao;
+	@Autowired
+	private MemberRankPrivilegesDao memberRankPrivilegesDao;
 
 	@Override
 	public BaseDAO<Integer, MemberPrivilegesItem> getDAO() {
@@ -38,17 +42,26 @@ public class MemberPrivilegesItemServiceImpl extends BaseServiceImpl<Integer, Me
 
     @Override
 	@Transactional(rollbackFor = Exception.class)
-    public void recursiveDel(Integer parentId) {
-		List<MemberPrivilegesItem> memberPrivilegesItems = memberPrivilegesItemDao.findList(parentId);
+    public void recursiveDel(Integer memberPrivilegesItemId) {
+//		MemberPrivilegesItem privilegesItem = memberPrivilegesItemDao.get(memberPrivilegesItemId);
+//		Integer parentId = privilegesItem.getParentId();
+		//当前功能原有父级是否被会员使用
+//		if(memberRankPrivilegesDao.hasPrivileges(parentId)){
+//			throw new BizException("修改失败:该功能已被使用");
+//		}
+		if(memberRankPrivilegesDao.hasPrivileges(memberPrivilegesItemId)){
+			throw new BizException("删除失败:该功能已被使用");
+		}
+		List<MemberPrivilegesItem> memberPrivilegesItems = memberPrivilegesItemDao.findList(memberPrivilegesItemId);
 		for (MemberPrivilegesItem item : memberPrivilegesItems) {
 			item = getTree(item);
 		}
 		List<Integer> collect = memberPrivilegesItems.stream().map(e -> e.getId()).collect(Collectors.toList());
 		if(collect == null || collect.size() <= 0){
-			memberPrivilegesItemDao.delete(parentId);
+			memberPrivilegesItemDao.delete(memberPrivilegesItemId);
 			return;
 		}
-		collect.add(parentId);
+		collect.add(memberPrivilegesItemId);
 		memberPrivilegesItemDao.batchDel(collect);
     }
 
@@ -76,4 +89,39 @@ public class MemberPrivilegesItemServiceImpl extends BaseServiceImpl<Integer, Me
 		}
 		return rows;
 	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void updateItem(MemberPrivilegesItem memberPrivilegesItem) {
+		List<MemberPrivilegesItem> itemList = memberPrivilegesItemDao.findList(memberPrivilegesItem.getParentId());
+		if(itemList.size() == 0){
+			if(memberRankPrivilegesDao.hasPrivileges(memberPrivilegesItem.getParentId())){
+				throw new BizException("修改失败:被关联的子集不能被添加子功能");
+			}
+		}
+//		MemberPrivilegesItem privilegesItem = memberPrivilegesItemDao.get(memberPrivilegesItem.getId());
+//		Integer parentId = memberPrivilegesItem.getParentId();
+//		if(privilegesItem.getParentId() != parentId){
+			//当前功能原有父级是否被会员使用
+//			if(memberRankPrivilegesDao.hasPrivileges(parentId)){
+//				throw new BizException("修改失败:该功能已被使用");
+//			}
+//		}
+		if(memberRankPrivilegesDao.hasPrivileges(memberPrivilegesItem.getId())){
+			throw new BizException("修改失败:被关联的功能不能修改");
+		}
+		memberPrivilegesItemDao.update(memberPrivilegesItem);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void add(MemberPrivilegesItem memberPrivilegesItem) {
+		List<MemberPrivilegesItem> itemList = memberPrivilegesItemDao.findList(memberPrivilegesItem.getParentId());
+		if(itemList.size() == 0){
+			if(memberRankPrivilegesDao.hasPrivileges(memberPrivilegesItem.getParentId())){
+				throw new BizException("修改失败:被关联的子集不能被添加子功能");
+			}
+		}
+		memberPrivilegesItemDao.insert(memberPrivilegesItem);
+	}
 }

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -167,6 +167,11 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		if (paymentType == PaymentType.ADD_STUDENT) {
 			//获取缴费状态在审核中或者已拒绝的缴费项目的学员
 			Integer userId = Integer.parseInt(musicGroupPaymentCalenderDto.getStudentIds());
+			//该学员是否在其他的会员团
+			boolean hasMemberGroup = studentRegistrationDao.checkHasMemberGroup(musicGroupId,userId);
+			if(hasMemberGroup){
+				throw new BizException("操作失败:该学员已在其他系统收费团");
+			}
 			String studentIds = musicGroupPaymentCalenderDao.queryCalenderStudentIds(musicGroupId,null);
 			if(StringUtils.isNotEmpty(studentIds)){
 				if(studentIds.contains(userId.toString())){
@@ -536,6 +541,10 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		List<MusicGroupPaymentCalenderCourseSettings> musicGroupPaymentCalenderCourseSettings = musicGroupPaymentCalenderCourseSettingsDao.queryCalenderCourseSettings(id);
 		Map<String, Object> result = new HashMap<>(4);
 		result.put("musicGroupPaymentCalenderCourseSettings", musicGroupPaymentCalenderCourseSettings);
+		if(calender.getMemberRankSettingId() != null){
+			MemberRankSetting memberRankSetting = memberRankSettingDao.get(calender.getMemberRankSettingId());
+			calender.setMemberRankSettingName(memberRankSetting.getName());
+		}
 		result.put("calender", calender);
 		result.put("calenderSettingsName", name);
 		result.put("sumActualAmount", sumActualAmount);

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

@@ -722,6 +722,10 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 sysUser.setImToken(register.getToken());
                 teacherDao.updateUser(sysUser);
             } else {
+                boolean hasMemberGroup = studentRegistrationDao.checkHasMemberGroup(musicGroupId, sysUser.getId());
+                if(hasMemberGroup){
+                    throw new BizException("操作失败:该学员已在其他系统收费团");
+                }
                 StudentRegistration oldReg = studentRegistrationDao.getByUserIdAndMusicGroupId(musicGroupId, sysUser.getId());
                 if (oldReg != null && oldReg.getMusicGroupStatus() != StudentMusicGroupStatusEnum.QUIT && oldReg.getMusicGroupStatus() != StudentMusicGroupStatusEnum.APPLY) {
                     throw new BizException("该学员已存在,原手机号为" + oldReg.getParentsPhone());

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/MemberRankPrivilegesMapper.xml

@@ -60,4 +60,7 @@
 	<select id="findByRankSettingId" resultMap="MemberRankPrivileges">
 		SELECT * FROM member_rank_privileges WHERE member_rank_id_ = #{memberRankSettingId}
 	</select>
+    <select id="hasPrivileges" resultType="java.lang.Boolean">
+		SELECT COUNT(member_privileges_id_) > 0 FROM member_rank_privileges WHERE member_privileges_id_ = #{parentId}
+	</select>
 </mapper>

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

@@ -66,6 +66,7 @@
         <result property="subjectIdList" column="subject_id_list_"/>
         <result property="isNewUser" column="is_new_user_"/>
         <result property="isSignedContract" column="is_signed_contract_"/>
+        <result property="memberRankSettingId" column="member_rank_setting_id_"/>
         <result column="care_package_" property="carePackage"/>
         <result column="come_on_package_" property="comeOnPackage"/>
         <result column="grade_type_" property="gradeType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
@@ -161,7 +162,7 @@
         sut.name_ real_name_,su.`gender_` , su.organ_id_,
 		tu.`real_name_` teacher_name_,CASE s.service_tag_ WHEN 2 THEN 0 ELSE s.service_tag_ END service_tag_ ,s.`operating_tag_` ,
         s.care_package_, s.come_on_package_, suca.`course_balance_` ,suca.balance_,
-		sub.`name_` music_group_subject_ ,su.birthdate_,s.subject_id_list_,s.teacher_id_,s.current_grade_num_,s.current_class_,
+		sub.`name_` music_group_subject_ ,su.birthdate_,s.subject_id_list_,s.teacher_id_,s.current_grade_num_,s.current_class_,s.member_rank_setting_id_,
         CASE WHEN su.password_ IS NULL THEN FALSE ELSE TRUE END isActive_,s.is_new_user_,CASE WHEN sut.user_id_ IS NULL THEN 0 ELSE 1 END is_signed_contract_,
         s.cooperation_organ_id_,co.name_ cooperation_organ_name_
 		FROM `student` s LEFT JOIN `sys_user` su ON s.`user_id_` = su.`id_`
@@ -204,6 +205,14 @@
                     AND s.service_tag_ = 1
                 </if>
             </if>
+            <if test="hasMember != null">
+                <if test="hasMember == 0">
+                    AND s.member_rank_setting_id_ IS NULL
+                </if>
+                <if test="hasMember == 1">
+                    AND s.member_rank_setting_id_ IS NOT NULL
+                </if>
+            </if>
             <if test="teacherId != null">
                 AND s.teacher_id_ = #{teacherId}
             </if>

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

@@ -1526,4 +1526,9 @@
           AND paying_status_ = 2
           AND music_group_status_ = 'NORMAL'
     </select>
+    <select id="checkHasMemberGroup" resultType="java.lang.Boolean">
+        SELECT COUNT(sr.id_) > 0 FROM student_registration sr
+        LEFT JOIN music_group mg ON mg.id_ = sr.music_group_id_
+        WHERE sr.music_group_id_ != #{musicGroupId} AND sr.music_group_status_ != 'QUIT' AND sr.user_id_ = #{userId} AND mg.course_view_type_ = 1
+    </select>
 </mapper>

+ 2 - 2
mec-web/src/main/java/com/ym/mec/web/controller/MemberPrivilegesItemController.java

@@ -24,7 +24,7 @@ public class MemberPrivilegesItemController extends BaseController {
     @PreAuthorize("@pcs.hasPermissions('memberPrivilegesItem/add')")
     @AuditLogAnnotation(operateName = "新增系统功能类型")
     public Object add(@RequestBody MemberPrivilegesItem memberPrivilegesItem) {
-        memberPrivilegesItemService.insert(memberPrivilegesItem);
+        memberPrivilegesItemService.add(memberPrivilegesItem);
         return succeed();
     }
 
@@ -40,7 +40,7 @@ public class MemberPrivilegesItemController extends BaseController {
     @PostMapping("/update")
     @PreAuthorize("@pcs.hasPermissions('memberPrivilegesItem/update')")
     public Object update(@RequestBody MemberPrivilegesItem memberPrivilegesItem) {
-        memberPrivilegesItemService.update(memberPrivilegesItem);
+        memberPrivilegesItemService.updateItem(memberPrivilegesItem);
         return succeed();
     }