Selaa lähdekoodia

用户使用的声部不允许删除

liweifan 3 vuotta sitten
vanhempi
commit
1ac1e74909

+ 7 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/SubjectDao.java

@@ -33,6 +33,12 @@ public interface SubjectDao extends BaseDAO<Long, Subject> {
      */
     List<Subject> findByParentId(@Param("parentId") Long parentId);
 
+    /**
+     * 判断声部是否有人使用
+     * @param id
+     * @return
+     */
+    Boolean useSubject(@Param("id") Long id);
     /***
      * 通过id删除
      * @param: id
@@ -47,4 +53,5 @@ public interface SubjectDao extends BaseDAO<Long, Subject> {
     Subject queryByCode(@Param("code") String code);
 
     Subject queryByName(@Param("name") String name);
+
 }

+ 4 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/SubjectServiceImpl.java

@@ -53,6 +53,10 @@ public class SubjectServiceImpl extends BaseServiceImpl<Long, Subject> implement
         if (subjectList != null && subjectList.size() > 0) {
             throw new BizException("该分类下已创建下级,无法删除");
         }
+        Boolean flag = subjectDao.useSubject(id);
+        if (flag) {
+            throw new BizException("该分类有用户使用,无法删除");
+        }
         return subjectDao.deleteById(id);
     }
 

+ 11 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/SubjectMapper.xml

@@ -140,4 +140,15 @@
         SELECT * FROM subject WHERE del_flag_ = 0 and name_ = #{name}
     </select>
 
+    <select id="useSubject" resultType="java.lang.Boolean">
+        select
+            case when (
+                select count(1) from teacher a where find_in_set(t.id_,a.subject_id_)
+            )> 0 then 1 when (
+                select count(1) from student a where find_in_set(t.id_,a.subject_id_)
+            )> 0 then 1 else 0 end
+        from `subject` t
+        where  t.id_ = #{id}
+    </select>
+
 </mapper>

+ 3 - 3
cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherAuthEntryRecordMapper.xml

@@ -40,7 +40,7 @@
     <select id="selectPage" resultType = "com.yonge.cooleshow.biz.dal.vo.TeacherAuthEntryRecordVo">
         SELECT
             <include refid="baseColumns"/>,
-            u.real_name_ as realName,
+            ifnull(u.real_name_,u.username_) as realName,
             u.id_card_no_ as idCardNo,
             u.phone_ as phone,
             u.gender_ as gender,
@@ -78,7 +78,7 @@
     <select id="detail" resultType="com.yonge.cooleshow.biz.dal.vo.TeacherAuthEntryRecordVo">
         select
         	<include refid="baseColumns"/>,
-			u.real_name_ as realName,
+            ifnull(u.real_name_,u.username_) as realName,
 			u.id_card_no_ as idCardNo,
 			u.phone_ as phone,
 			u.gender_ as gender,
@@ -95,7 +95,7 @@
     <select id="getLastRecordByUserId" resultType="com.yonge.cooleshow.biz.dal.vo.TeacherAuthEntryRecordVo">
         select
             <include refid="baseColumns"/>,
-            u.real_name_ as realName,
+            ifnull(u.real_name_,u.username_) as realName,
             u.id_card_no_ as idCardNo,
             u.gender_ as gender,
             (

+ 4 - 4
cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherAuthMusicianRecordMapper.xml

@@ -25,7 +25,7 @@
     <select id="detail" resultType="com.yonge.cooleshow.biz.dal.vo.MusicianAuthEntryRecordVo">
         select
             <include refid="baseColumns"/>,
-            u.real_name_ as realName,
+            ifnull(u.real_name_,u.username_) as realName,
             u.id_card_no_ as idCardNo,
             (
                 SELECT u.username_ FROM sys_user u WHERE u.id_ = t.verify_user_id_
@@ -37,9 +37,9 @@
             , te.grad_certificate_ as "gradCertificate"
             , te.degree_certificate_ as "degreeCertificate"
             , te.teacher_certificate_ as "teacherCertificate"
-        from teacher_auth_entry_record t
+        from teacher_auth_musician_record t
+        left join teacher_auth_entry_record te on t.user_id_ = te.user_id_ and te.teacher_auth_status_ in ('DOING','PASS')
         left join sys_user u on t.user_id_ = u.id_
-        left join teacher te on  t.user_id_ = te.user_id_
         where t.id_ = #{id}
     </select>
 
@@ -47,7 +47,7 @@
     <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.vo.MusicianAuthEntryRecordVo">
         SELECT
             <include refid="baseColumns"/>,
-            u.real_name_ as realName,
+            ifnull(u.real_name_,u.username_) as realName,
             u.id_card_no_ as idCardNo,
             u.phone_ as phone,
             v.username_ as verifyUser