Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/dev0928' into dev0928

guomengjiao 2 mēneši atpakaļ
vecāks
revīzija
cf9ffedf8d

+ 27 - 1
ruoyi-api/src/main/java/com/ruoyi/api/controller/info/ApiHospitalController.java

@@ -1,13 +1,21 @@
 package com.ruoyi.api.controller.info;
 
 import cn.hutool.core.util.StrUtil;
+
+import com.ruoyi.api.controller.common.AbstractApiController;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.enums.FilePathSplicingType;
 import com.ruoyi.common.filepathsplicing.FilePathSplicing;
+import com.ruoyi.common.utils.BeanCopyUtils;
+import com.ruoyi.common.utils.CollectionUtils;
 import com.ruoyi.common.utils.MapTools;
 import com.ruoyi.info.hospital.domain.bo.HospitalBo;
+import com.ruoyi.info.hospital.domain.vo.HospitalSimpleInfoVo;
 import com.ruoyi.info.hospital.domain.vo.HospitalVo;
 import com.ruoyi.info.hospital.service.IHospitalService;
+import com.ruoyi.info.management.domain.TeacherDepartmentRel;
+import com.ruoyi.info.management.service.ITeacherDepartmentRelService;
+
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -20,6 +28,9 @@ import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.util.Comparator;
 import java.util.List;
+import java.util.Set;
+
+import static com.ruoyi.common.utils.CollectionUtils.*;
 
 /**
  * @author fucheng.bai
@@ -30,10 +41,12 @@ import java.util.List;
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/api/info/hospital")
-public class ApiHospitalController {
+public class ApiHospitalController extends AbstractApiController {
 
     private final IHospitalService iHospitalService;
 
+    private final ITeacherDepartmentRelService iTeacherDepartmentRelService;
+
     /**
      * 获取所有医院列表
      */
@@ -83,4 +96,17 @@ public class ApiHospitalController {
                                  @PathVariable("id") Long id) {
         return R.ok(iHospitalService.queryById(id));
     }
+
+    @ApiOperation("获取管理老师关联的医院列表")
+    @GetMapping("/teacher/simpleList")
+    public R<List<HospitalSimpleInfoVo>> getTeacherSimpleInfo() {
+        Long teacherId = getTeacherId();
+
+        List<TeacherDepartmentRel> teacherDepartmentRelList = iTeacherDepartmentRelService.queryByTeacherId(teacherId);
+        Set<Long> hospitalIds = convertSet(teacherDepartmentRelList, TeacherDepartmentRel::getHospitalId);
+
+        // 获取医院列表
+        List<HospitalSimpleInfoVo> hospitalSimpleInfoVoList = BeanCopyUtils.copyList(iHospitalService.queryListByIds(hospitalIds), HospitalSimpleInfoVo.class);
+        return R.ok(hospitalSimpleInfoVoList);
+    }
 }

+ 28 - 1
ruoyi-api/src/main/java/com/ruoyi/api/controller/info/ApiHospitalDepartmentController.java

@@ -1,6 +1,8 @@
 package com.ruoyi.api.controller.info;
 
 import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -8,16 +10,24 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.ruoyi.api.controller.common.AbstractApiController;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.validate.QueryGroup;
+import com.ruoyi.common.utils.BeanCopyUtils;
 import com.ruoyi.info.hospital.domain.bo.HospitalDepartmentBo;
+import com.ruoyi.info.hospital.domain.vo.DepartmentSimpleInfoVo;
 import com.ruoyi.info.hospital.domain.vo.HospitalDepartmentVo;
+import com.ruoyi.info.hospital.domain.vo.HospitalSimpleInfoVo;
 import com.ruoyi.info.hospital.service.IHospitalDepartmentService;
+import com.ruoyi.info.management.domain.TeacherDepartmentRel;
+import com.ruoyi.info.management.service.ITeacherDepartmentRelService;
 
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 
+import static com.ruoyi.common.utils.CollectionUtils.convertSet;
+
 /**
  * @author fucheng.bai
  * @date 2025/9/22
@@ -27,10 +37,12 @@ import lombok.RequiredArgsConstructor;
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/api/info/hospitalDepartment")
-public class ApiHospitalDepartmentController {
+public class ApiHospitalDepartmentController extends AbstractApiController {
 
     private final IHospitalDepartmentService iHospitalDepartmentService;
 
+    private final ITeacherDepartmentRelService iTeacherDepartmentRelService;
+
     /**
      * 获取科室列表
      */
@@ -41,5 +53,20 @@ public class ApiHospitalDepartmentController {
         return R.ok(iHospitalDepartmentService.queryByHospitalId(bo));
     }
 
+    @ApiOperation("获取管理老师关联的科室列表")
+    @GetMapping("/teacher/simpleList")
+    public R<List<DepartmentSimpleInfoVo>> getTeacherSimpleInfo(@RequestParam(value = "hospitalId", required = false) Long hospitalId) {
+        Long teacherId = getTeacherId();
+
+        List<TeacherDepartmentRel> teacherDepartmentRelList = iTeacherDepartmentRelService.queryByTeacherId(teacherId);
+        Set<Long> departmentIds = teacherDepartmentRelList.stream()
+            .filter(item -> hospitalId == null || item.getHospitalId().equals(hospitalId))
+            .map(TeacherDepartmentRel::getDepartmentId).collect(Collectors.toSet());
+
+        List<HospitalDepartmentVo> departmentList = iHospitalDepartmentService.queryListByIds(departmentIds);
+        List<DepartmentSimpleInfoVo> simpleDepartmentList = BeanCopyUtils.copyList(departmentList, DepartmentSimpleInfoVo.class);
+        return R.ok(simpleDepartmentList);
+    }
+
 
 }

+ 1 - 2
ruoyi-api/src/main/java/com/ruoyi/api/controller/info/ApiManagementTeacherController.java

@@ -20,8 +20,6 @@ import com.ruoyi.info.management.domain.vo.ManagementTeacherBenchVo;
 import com.ruoyi.info.management.domain.vo.ManagementTeacherVo;
 import com.ruoyi.info.management.service.IManagementTeacherService;
 import com.ruoyi.info.management.service.ITeacherDepartmentRelService;
-import com.ruoyi.info.nursing.domain.vo.NursingWorkerBenchVo;
-import com.ruoyi.info.nursing.domain.vo.NursingWorkerVo;
 import com.ruoyi.info.order.domain.bo.OrderCountBo;
 import com.ruoyi.info.order.domain.bo.OrderRefundCountBo;
 import com.ruoyi.info.order.enums.OrderStatus;
@@ -90,4 +88,5 @@ public class ApiManagementTeacherController extends AbstractApiController {
 
 
 
+
 }

+ 2 - 2
ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/LoginApiInterceptor.java

@@ -38,7 +38,7 @@ public class LoginApiInterceptor implements HandlerInterceptor {
     private IUserService userService;
 
     @Resource
-    private StringRedisTemplate redisTemplate;
+    private StringRedisTemplate stringRedisTemplate;
 
 
     @Override
@@ -53,7 +53,7 @@ public class LoginApiInterceptor implements HandlerInterceptor {
         }
 
         // 先校验redis中的token是否存在,如果不存在,则直接提示登录过期
-        String cacheUserStr = redisTemplate.opsForValue().get(Constants.JWT_TOKEN + accessToken);
+        String cacheUserStr = stringRedisTemplate.opsForValue().get(Constants.JWT_TOKEN + accessToken);
         if (ObjectUtil.isEmpty(cacheUserStr)) {
             //这里抛给前端的为一个自定义异常枚举,可自己定义
             throw new ServiceException(ExceptionEnum.TOKEN_EXPIRED);

+ 2 - 2
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/ApiTokenService.java

@@ -51,7 +51,7 @@ public class ApiTokenService {
     private int refreshTime;
 
     @Autowired
-    private StringRedisTemplate redisTemplate;
+    private StringRedisTemplate stringRedisTemplate;
 
     @Autowired
     private IUserService userService;
@@ -167,7 +167,7 @@ public class ApiTokenService {
         }
 
         // 缓存至redis
-        redisTemplate.opsForValue().set(Constants.JWT_TOKEN + token, JSONUtil.toJsonStr(userCacheInfo), expireTime, TimeUnit.SECONDS);
+        stringRedisTemplate.opsForValue().set(Constants.JWT_TOKEN + token, JSONUtil.toJsonStr(userCacheInfo), expireTime, TimeUnit.SECONDS);
     }
 
 }

+ 36 - 0
ruoyi-info/ruoyi-info-biz/src/main/java/com/ruoyi/info/hospital/domain/vo/DepartmentSimpleInfoVo.java

@@ -0,0 +1,36 @@
+package com.ruoyi.info.hospital.domain.vo;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author fucheng.bai
+ * @date 2025/10/10
+ */
+@Data
+@ApiModel("科室简略信息")
+public class DepartmentSimpleInfoVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 科室id
+     */
+    @ApiModelProperty("科室id")
+    private Long id;
+
+    /**
+     * 医院id
+     */
+    @ApiModelProperty("医院id")
+    private Long hospitalId;
+
+    /**
+     * 科室名称
+     */
+    @ApiModelProperty("科室名称")
+    private String name;
+}

+ 7 - 0
ruoyi-info/ruoyi-info-biz/src/main/java/com/ruoyi/info/hospital/service/IHospitalDepartmentService.java

@@ -92,4 +92,11 @@ public interface IHospitalDepartmentService {
     List<HospitalDepartmentVo> queryByHospitalId(HospitalDepartmentBo bo);
 
     String queryNameById(Long id);
+
+    /**
+     * 根据id列表查询科室信息集合
+     * @param ids
+     * @return
+     */
+    List<HospitalDepartmentVo> queryListByIds(Collection<Long> ids);
 }

+ 9 - 0
ruoyi-info/ruoyi-info-biz/src/main/java/com/ruoyi/info/hospital/service/impl/HospitalDepartmentServiceImpl.java

@@ -24,6 +24,7 @@ import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
 import java.util.Collection;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
@@ -221,4 +222,12 @@ public class HospitalDepartmentServiceImpl implements IHospitalDepartmentService
         return baseMapper.queryNameById(id);
     }
 
+    @Override
+    public List<HospitalDepartmentVo> queryListByIds(Collection<Long> ids) {
+        if (CollUtil.isEmpty(ids)) {
+            return Collections.emptyList();
+        }
+        return baseMapper.selectVoBatchIds(ids, HospitalDepartmentVo.class);
+    }
+
 }