|
@@ -8,6 +8,7 @@ import com.qmth.teachcloud.common.bean.dto.OrgDto;
|
|
|
import com.qmth.teachcloud.common.bean.dto.excel.DescribeImportDto;
|
|
|
import com.qmth.teachcloud.common.bean.dto.excel.SysOrgImportDto;
|
|
|
import com.qmth.teachcloud.common.bean.params.UserSaveParams;
|
|
|
+import com.qmth.teachcloud.common.bean.result.RoleResult;
|
|
|
import com.qmth.teachcloud.common.bean.result.SysUserResult;
|
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
|
import com.qmth.teachcloud.common.entity.SysOrg;
|
|
@@ -27,6 +28,7 @@ import com.qmth.teachcloud.common.util.ExcelUtil;
|
|
|
import com.qmth.teachcloud.common.util.ResultUtil;
|
|
|
import com.qmth.teachcloud.common.util.ServletUtil;
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.dao.DuplicateKeyException;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -65,24 +67,38 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
|
|
|
@Override
|
|
|
public List<OrgDto> listOrgTree(SpecialPrivilegeEnum specialPrivilegeEnum, boolean withoutPrintingRoom) {
|
|
|
Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
|
|
|
- List<SysUserResult> sysUserResultList = sysUserService.findSysUserResultList();
|
|
|
- List<SysUserResult> finalSysUserResultList = sysUserResultList.stream()
|
|
|
- .filter(e -> {
|
|
|
- if (Objects.isNull(specialPrivilegeEnum)) {
|
|
|
- return true;
|
|
|
- } else {
|
|
|
- // 用户特殊权限
|
|
|
- SpecialPrivilegeEnum userP = sysUserService.findUserSpecialPrivilegeByUserId(e.getId(), schoolId);
|
|
|
- // 如果用户是复合权限,条件为复合、评卷员、科组长都可以
|
|
|
- if (SpecialPrivilegeEnum.COMPOSITE.equals(userP)) {
|
|
|
- return SpecialPrivilegeEnum.COMPOSITE.equals(specialPrivilegeEnum) || SpecialPrivilegeEnum.MARKER.equals(specialPrivilegeEnum) || SpecialPrivilegeEnum.SUBJECT_HEADER.equals(specialPrivilegeEnum);
|
|
|
- } else {
|
|
|
- // 如果用户不是复合条件,用户权限和条件权限对应
|
|
|
- return specialPrivilegeEnum.equals(userP);
|
|
|
- }
|
|
|
+// List<SysUserResult> sysUserResultList = sysUserService.findSysUserResultList();
|
|
|
+// List<SysUserResult> finalSysUserResultList = sysUserResultList.stream()
|
|
|
+// .filter(e -> {
|
|
|
+// if (Objects.isNull(specialPrivilegeEnum)) {
|
|
|
+// return true;
|
|
|
+// } else {
|
|
|
+// // 用户特殊权限
|
|
|
+// SpecialPrivilegeEnum userP = sysUserService.findUserSpecialPrivilegeByUserId(e.getId(), schoolId);
|
|
|
+// // 如果用户是复合权限,条件为复合、评卷员、科组长都可以
|
|
|
+// if (SpecialPrivilegeEnum.COMPOSITE.equals(userP)) {
|
|
|
+// return SpecialPrivilegeEnum.COMPOSITE.equals(specialPrivilegeEnum) || SpecialPrivilegeEnum.MARKER.equals(specialPrivilegeEnum) || SpecialPrivilegeEnum.SUBJECT_HEADER.equals(specialPrivilegeEnum);
|
|
|
+// } else {
|
|
|
+// // 如果用户不是复合条件,用户权限和条件权限对应
|
|
|
+// return specialPrivilegeEnum.equals(userP);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }).collect(Collectors.toList());
|
|
|
+
|
|
|
+ List<SysUserResult> finalSysUserResultList = sysUserService.findSysUserResultListNew(schoolId, specialPrivilegeEnum);
|
|
|
+ if (!CollectionUtils.isEmpty(finalSysUserResultList)) {
|
|
|
+ finalSysUserResultList.forEach(e -> {
|
|
|
+ if (Objects.nonNull(e.getRoleIds())) {
|
|
|
+ String[] roldIds = StringUtils.split(e.getRoleIds(), ";");
|
|
|
+ List<RoleResult> roleResultList = new ArrayList<>(roldIds.length);
|
|
|
+ for (int y = 0; y < roldIds.length; y++) {
|
|
|
+ String[] strs = StringUtils.split(roldIds[y], ",");
|
|
|
+ roleResultList.add(new RoleResult(Long.parseLong(strs[0]), strs[1]));
|
|
|
}
|
|
|
- }).collect(Collectors.toList());
|
|
|
-
|
|
|
+ e.setRoleResultList(roleResultList);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
List<OrgDto> orgList = this.listOrgAll(schoolId);
|
|
|
if (withoutPrintingRoom) {
|
|
|
orgList = orgList.stream().filter(e -> !OrgTypeEnum.PRINTING_HOUSE.name().equals(e.getType())).collect(Collectors.toList());
|