Browse Source

修改设置设置巴主自动设置权限

anderx 3 years ago
parent
commit
b0a5cf8876

+ 6 - 16
src/main/java/com/goafanti/ambSystem/service/Impl/AmbServiceImpl.java

@@ -96,20 +96,9 @@ public class AmbServiceImpl extends BaseMybatisDao<AmbSystemMapper> implements A
         Admin a =new Admin();
         if (!list.isEmpty()){
             //不为空就是巴主,如果不是巴主则设置成巴主
-            List<UserRole> al = userRoleMapper.selectAdminRole("巴主");
-            String roleId = roleMapper.selectIdByName("巴主");
-            boolean flag=false;
-            if (al.isEmpty()){
-                flag=true;
-            }else {
-                flag=true;
-                for (UserRole userRole : al) {
-                    if (userRole.getUid().equals(leader)){
-                        flag=false;
-                    }
-                }
-            }
-            if (flag){
+            Integer i = userRoleMapper.selectByUidAndRoleName(leader, "巴主");
+            if (i<1){
+                String roleId = roleMapper.selectIdByName("巴主");
                 UserRole userRole=new UserRole();
                 userRole.setUid(leader);
                 userRole.setRid(roleId);
@@ -126,8 +115,9 @@ public class AmbServiceImpl extends BaseMybatisDao<AmbSystemMapper> implements A
         }
         a.setId(leader);
         if (StringUtils.isNotBlank(str)) a.setAmbRole(str.substring(0,str.length()-1));
-        adminMapper.updateByPrimaryKeySelective(a);
-
+        if (a.getAmbManage()!=null||a.getAmbRole()!=null){
+            adminMapper.updateByPrimaryKeySelective(a);
+        }
     }
     private List<AmbSystem> selectByLeader(String leader) {
         AmbSystem a =new AmbSystem();

+ 3 - 0
src/main/java/com/goafanti/common/dao/UserRoleMapper.java

@@ -5,6 +5,7 @@ import java.util.Map;
 
 import com.goafanti.common.model.Role;
 import com.goafanti.common.model.UserRole;
+import org.apache.ibatis.annotations.Param;
 
 public interface UserRoleMapper {
 	int insert(UserRole record);
@@ -32,4 +33,6 @@ public interface UserRoleMapper {
 	List<UserRole> selectAdminRole(String roleName);
 
     Role selectById(String roleId);
+
+	Integer  selectByUidAndRoleName(@Param("aid") String aid, @Param("roleName") String roleName);
 }

+ 20 - 15
src/main/java/com/goafanti/common/mapper/UserRoleMapper.xml

@@ -30,47 +30,47 @@
   </insert>
   <delete id="deleteByRoleId" parameterType="java.lang.String">
     delete from user_role
-    where rid in 
-    <foreach item="item" index="index" collection="list" open="(" separator="," close=")">  
-	  #{item,jdbcType=VARCHAR}  
+    where rid in
+    <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
+	  #{item,jdbcType=VARCHAR}
     </foreach>
   </delete>
-  
+
   <delete id="deleteByPrimaryKey">
     delete from user_role
     where rid = #{rid,jdbcType=VARCHAR} and uid = #{uid,jdbcType=VARCHAR}
   </delete>
-  
+
   <delete id="deleteByUserId" parameterType="java.lang.String">
     delete from user_role
-    where uid = #{userId,jdbcType=VARCHAR}  
+    where uid = #{userId,jdbcType=VARCHAR}
   </delete>
 
   <insert id="insertBatch">
     insert into user_role (uid, rid)
-    values 
+    values
     <foreach item="item" index="index" collection="roles" separator=",">
       (#{uid,jdbcType=VARCHAR}, #{item,jdbcType=VARCHAR})
     </foreach>
   </insert>
-  
+
   <select id ="findUserIdByRoleId" parameterType="java.lang.String" resultType="java.lang.String">
     select uid from user_role where rid = #{rid, jdbcType=VARCHAR}
   </select>
-  
+
   <select id="findUserIdByRoleIds" parameterType="java.util.List" resultType="java.lang.String">
     select uid from user_role where rid in
-     <foreach item="item" index="index" collection="list" open="(" separator="," close=")">  
-	  #{item,jdbcType=VARCHAR}  
+     <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
+	  #{item,jdbcType=VARCHAR}
     </foreach>
   </select>
-  
+
   <select id ="listAuditor"  resultType="String">
     select uid from user_role where rid = 3
   </select>
-  
+
   <select id ="selectAdminRole"  resultType="com.goafanti.common.model.UserRole">
-    select a.uid,b.role_name,a.rid from user_role a 
+    select a.uid,b.role_name,a.rid from user_role a
 	left join role b on a.rid=b.id
 	where b.role_name=#{roleName,jdbcType=VARCHAR}
   </select>
@@ -78,4 +78,9 @@
       select id,role_name roleName,role_type roleType
       from `role` where id = #{roleId}
     </select>
-</mapper>
+  <select id="selectByUidAndRoleName" resultType="java.lang.Integer">
+    select count(*) from user_role a
+    left join role b on a.rid=b.id
+    where b.role_name= #{roleName} and a.uid=#{aid}
+  </select>
+</mapper>