Selaa lähdekoodia

整理数据权限

wangliang 3 vuotta sitten
vanhempi
commit
f88e8eb93d

+ 34 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/OrgDto.java

@@ -29,6 +29,40 @@ public class OrgDto {
 
     private List<OrgDto> children = new ArrayList<>();
 
+    @ApiModelProperty(value = "校区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long campusId;
+
+    @ApiModelProperty(value = "校区名称")
+    private String campusName;
+
+    @ApiModelProperty(value = "校区编码")
+    private String campusCode;
+
+    public String getCampusCode() {
+        return campusCode;
+    }
+
+    public void setCampusCode(String campusCode) {
+        this.campusCode = campusCode;
+    }
+
+    public String getCampusName() {
+        return campusName;
+    }
+
+    public void setCampusName(String campusName) {
+        this.campusName = campusName;
+    }
+
+    public Long getCampusId() {
+        return campusId;
+    }
+
+    public void setCampusId(Long campusId) {
+        this.campusId = campusId;
+    }
+
     public Long getId() {
         return id;
     }

+ 2 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/SysUser.java

@@ -53,8 +53,8 @@ public class SysUser extends BaseEntity implements Serializable {
      * 姓名
      */
     @TableField("code")
-//    @NotBlank(message = "请输入工号")
-//    @Length(message = "工号不能超过{max}个字符", max = 50)
+    @NotBlank(message = "请输入工号")
+    @Length(message = "工号不能超过{max}个字符", max = 50)
     private String code;
     /**
      * 密码

+ 9 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/SysOrgMapper.java

@@ -1,6 +1,7 @@
 package com.qmth.teachcloud.common.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qmth.teachcloud.common.bean.dto.OrgDto;
 import com.qmth.teachcloud.common.entity.SysOrg;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.OrgTypeEnum;
@@ -43,4 +44,12 @@ public interface SysOrgMapper extends BaseMapper<SysOrg> {
      * @return
      */
     List<SysOrg> findByConnectByRootOrgId(@Param("orgId") Long orgId);
+
+    /**
+     * 获取所有机构
+     *
+     * @param schoolId
+     * @return
+     */
+    List<OrgDto> listOrgAll(@Param("schoolId") Long schoolId);
 }

+ 9 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysOrgService.java

@@ -21,6 +21,14 @@ public interface SysOrgService extends IService<SysOrg> {
 
     List<OrgDto> listOrgTree();
 
+    /**
+     * 获取所有机构
+     *
+     * @param schoolId
+     * @return
+     */
+    List<OrgDto> listOrgAll(Long schoolId);
+
     boolean saveOrg(SysOrg org);
 
     /**
@@ -79,6 +87,7 @@ public interface SysOrgService extends IService<SysOrg> {
 
     /**
      * 根据机构类型和机构id查询它和它下级所有符合条件的机构
+     *
      * @param orgTypeEnum 机构类型
      * @return 机构集合
      */

+ 20 - 15
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysOrgServiceImpl.java

@@ -26,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -57,21 +58,8 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
     @Override
     public List<OrgDto> listOrgTree() {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        QueryWrapper<SysOrg> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(SysOrg::getSchoolId, schoolId).orderByAsc(SysOrg::getParentId);
-        List<SysOrg> orgList = this.list(queryWrapper);
-        Map<Long, OrgDto> map = new LinkedHashMap<>();
-        for (SysOrg sysOrg : orgList) {
-            OrgDto orgDto = new OrgDto();
-            orgDto.setId(sysOrg.getId());
-            orgDto.setSchoolId(String.valueOf(sysOrg.getSchoolId()));
-            orgDto.setCode(sysOrg.getCode());
-            orgDto.setName(sysOrg.getName());
-            orgDto.setParentId(sysOrg.getParentId());
-            orgDto.setEnable(sysOrg.getEnable());
-            orgDto.setType(sysOrg.getType());
-            map.put(sysOrg.getId(), orgDto);
-        }
+        List<OrgDto> orgList = this.listOrgAll(schoolId);
+        Map<Long, OrgDto> map = orgList.stream().collect(Collectors.toMap(OrgDto::getId, Function.identity(), (dto1, dto2) -> dto1));
 
         Iterator<Long> iterator = map.keySet().iterator();
         Set<Long> deleteKeys = new HashSet<>();
@@ -90,6 +78,17 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
         return new ArrayList<>(map.values());
     }
 
+    /**
+     * 获取所有机构
+     *
+     * @param schoolId
+     * @return
+     */
+    @Override
+    public List<OrgDto> listOrgAll(Long schoolId) {
+        return sysOrgMapper.listOrgAll(schoolId);
+    }
+
     @Override
     @Transactional
     public boolean saveOrg(SysOrg org) {
@@ -118,6 +117,12 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
                 success = this.updateById(org);
             }
             if (Objects.nonNull(org.getCampusId())) {//更新校区
+                BasicCampus basicCampus = basicCampusService.getById(org.getCampusId());
+                if (Objects.nonNull(basicCampus) && Objects.nonNull(basicCampus.getPrintHouseId())
+                        && basicCampus.getPrintHouseId().longValue() != org.getId().longValue()) {
+                    throw ExceptionResultEnum.ERROR.exception("该校区已绑定其它印刷室");
+                }
+
                 UpdateWrapper<BasicCampus> basicCampusUpdateWrapper = new UpdateWrapper<>();
                 basicCampusUpdateWrapper.lambda().eq(BasicCampus::getId, org.getCampusId())
                         .set(BasicCampus::getPrintHouseId, org.getId());

+ 24 - 0
teachcloud-common/src/main/resources/mapper/SysOrgMapper.xml

@@ -30,4 +30,28 @@
         SELECT so.* FROM sys_org so WHERE FIND_IN_SET(id, getRootChildId(#{orgId}))
     </select>
 
+    <select id="listOrgAll" resultType="com.qmth.teachcloud.common.bean.dto.OrgDto">
+        select
+            so.id,
+            so.school_id as school_id,
+            so.code,
+            so.name,
+            so.`type`,
+            so.parent_id as parentId,
+            so.enable,
+            bc.id as campusId,
+            bc.campus_name as campusName,
+            bc.campus_code as campusCode
+        from
+            sys_org so
+        left join basic_campus bc on
+            bc.print_house_id = so.id
+            and so.`type` = 'PRINTING_HOUSE'
+        <where>
+            <if test="schoolId != null and schoolId != ''">
+                and so.school_id = #{schoolId}
+            </if>
+        </where>
+            order by so.parent_id asc
+    </select>
 </mapper>