|
@@ -19,6 +19,7 @@
|
|
|
|
|
|
package com.qunzhixinxi.hnqz.admin.controller;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
@@ -27,12 +28,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysDict;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysDictItem;
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.SysDeptSub;
|
|
|
import com.qunzhixinxi.hnqz.admin.mapper.SysDeptMapper;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.SysDeptSubService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysDictItemService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysDictService;
|
|
|
import com.qunzhixinxi.hnqz.common.core.constant.CacheConstants;
|
|
|
import com.qunzhixinxi.hnqz.common.core.util.R;
|
|
|
import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
|
|
|
+import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
|
|
|
import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import lombok.AllArgsConstructor;
|
|
@@ -44,7 +48,9 @@ import org.springframework.web.bind.annotation.*;
|
|
|
import javax.validation.Valid;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
+import java.util.Collections;
|
|
|
import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -66,6 +72,8 @@ public class SysDictController {
|
|
|
|
|
|
private final SysDeptMapper sysDeptMapper;
|
|
|
|
|
|
+ private final SysDeptSubService deptSubService;
|
|
|
+
|
|
|
/**
|
|
|
* 通过ID查询字典信息
|
|
|
* @param id ID
|
|
@@ -90,13 +98,33 @@ public class SysDictController {
|
|
|
|
|
|
/**
|
|
|
* 通过字典类型查找字典
|
|
|
+ *
|
|
|
* @param type 类型
|
|
|
* @return 同类型字典
|
|
|
*/
|
|
|
@GetMapping("/type/{type}")
|
|
|
- @Cacheable(value = CacheConstants.DICT_DETAILS, key = "#type", unless = "#result.data.isEmpty()")
|
|
|
- public R getDictByType(@PathVariable String type) {
|
|
|
- return R.ok(sysDictItemService.list(Wrappers.<SysDictItem>query().lambda().eq(SysDictItem::getType, type)));
|
|
|
+ // @Cacheable(value = CacheConstants.DICT_DETAILS, key = "#type", unless = "#result.data.isEmpty()")
|
|
|
+ public R<?> getDictByType(@PathVariable String type) {
|
|
|
+
|
|
|
+ List<SysDictItem> list = sysDictItemService.list(Wrappers.<SysDictItem>query().lambda().eq(SysDictItem::getType, type));
|
|
|
+
|
|
|
+ Integer deptId = SecurityUtils.getUser().getDeptId();
|
|
|
+ if ("subject_location".equals(type) && 1 != deptId) {
|
|
|
+ List<SysDeptSub> l = deptSubService.list(Wrappers.<SysDeptSub>lambdaQuery().eq(SysDeptSub::getDeptId, deptId));
|
|
|
+ if (CollUtil.isNotEmpty(l)) {
|
|
|
+ List<String> collect = l.stream().filter(sub -> sub.getSubjectLocation() != null).map(sub -> sub.getSubjectLocation().getType()).collect(Collectors.toList());
|
|
|
+ if (CollUtil.isNotEmpty(collect)) {
|
|
|
+ List<SysDictItem> items = list.stream().filter(item -> collect.contains(item.getValue())).collect(Collectors.toList());
|
|
|
+ return R.ok(items);
|
|
|
+ } else {
|
|
|
+ return R.ok(Collections.emptyList());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return R.ok(list);
|
|
|
}
|
|
|
|
|
|
/**
|