baifucheng 2 mēneši atpakaļ
vecāks
revīzija
4895cc1daf

+ 29 - 0
ruoyi-api/src/main/java/com/ruoyi/api/controller/info/ApiManagementTeacherController.java

@@ -0,0 +1,29 @@
+package com.ruoyi.api.controller.info;
+
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ruoyi.info.management.service.IManagementTeacherService;
+
+import io.swagger.annotations.Api;
+import lombok.RequiredArgsConstructor;
+
+/**
+ * @author fucheng.bai
+ * @date 2025/10/9
+ */
+@Validated
+@Api(value = "API 管理老师控制器", tags = {"管理老师管理"})
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/api/info/managementTeacher")
+public class ApiManagementTeacherController {
+
+    private final IManagementTeacherService managementTeacherService;
+
+
+
+
+
+}

+ 40 - 0
ruoyi-api/src/main/java/com/ruoyi/api/controller/info/ApiNursingWorkerController.java

@@ -0,0 +1,40 @@
+package com.ruoyi.api.controller.info;
+
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ruoyi.api.controller.common.AbstractApiController;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.info.nursing.service.INursingWorkerService;
+import com.ruoyi.user.domain.User;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+
+/**
+ * @author fucheng.bai
+ * @date 2025/10/9
+ */
+@Validated
+@Api(value = "API 护工管理控制器", tags = {"护工管理"})
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/api/info/nursingWorker")
+public class ApiNursingWorkerController extends AbstractApiController {
+
+    private final INursingWorkerService nursingWorkerService;
+
+
+    @ApiOperation("护工工作台信息")
+    @GetMapping("/workbench")
+    public R<?> workbench() {
+        User user = getLoginUser();
+
+
+        return null;
+    }
+
+}

+ 20 - 0
ruoyi-api/src/main/java/com/ruoyi/api/controller/user/ApiUserController.java

@@ -9,6 +9,11 @@ import com.ruoyi.common.enums.FilePathSplicingType;
 import com.ruoyi.common.enums.WxMinQrCode;
 import com.ruoyi.common.filepathsplicing.FilePathSplicing;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.info.management.domain.ManagementTeacher;
+import com.ruoyi.info.management.domain.vo.ManagementTeacherVo;
+import com.ruoyi.info.management.service.IManagementTeacherService;
+import com.ruoyi.info.nursing.domain.vo.NursingWorkerVo;
+import com.ruoyi.info.nursing.service.INursingWorkerService;
 import com.ruoyi.system.domain.SysOss;
 import com.ruoyi.system.service.ISysOssService;
 import com.ruoyi.user.domain.User;
@@ -45,6 +50,10 @@ public class ApiUserController extends AbstractApiController {
     private final ISysOssService iSysOssService;
     private final UserMapper baseMapper;
 
+    private final IManagementTeacherService managementTeacherService;
+
+    private final INursingWorkerService nursingWorkerService;
+
     /**
      * 获取用户管理详细信息
      */
@@ -56,6 +65,17 @@ public class ApiUserController extends AbstractApiController {
             return R.ok();
         }
         UserVo user = iUserService.getUserById(getUserId(), true);
+
+        //  判断用户为 普通用户/管理老师/护工,以及启用/禁用情况
+        ManagementTeacherVo managementTeacherVo = managementTeacherService.getByPhoneNumber(user.getMobile(), true);
+        if (managementTeacherVo != null) {
+            user.setTeacherId(managementTeacherVo.getId());
+        }
+        NursingWorkerVo nursingWorkerVo = nursingWorkerService.getByPhoneNumber(user.getMobile(), true);
+        if (nursingWorkerVo != null) {
+            user.setWorkerId(nursingWorkerVo.getId());
+        }
+
         return R.ok(user);
     }
 

+ 3 - 0
ruoyi-api/src/main/java/com/ruoyi/api/controller/user/ApiUserLoginController.java

@@ -19,6 +19,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -51,6 +52,8 @@ public class ApiUserLoginController extends AbstractApiController {
 
     private final ISysSequenceService sysSequenceService;
 
+    private final StringRedisTemplate stringRedisTemplate;
+
     /**
      * 获取小程序openId
      */

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

@@ -7,7 +7,10 @@ import com.ruoyi.user.domain.User;
 import io.jsonwebtoken.Claims;
 import io.jsonwebtoken.Jwts;
 import io.jsonwebtoken.SignatureAlgorithm;
+
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -35,6 +38,9 @@ public class ApiTokenService {
     @Value("${api-token.refreshTime}")
     private int refreshTime;
 
+    @Autowired
+    private StringRedisTemplate redisTemplate;
+
     public String generateToken(User user) {
         Map<String, Object> claims = new HashMap<>();
         // 自定义参数,把需要存入token的参数都可以自定义到这里,比如 角色 部门类的关键参数
@@ -56,13 +62,25 @@ public class ApiTokenService {
         System.out.println("当前时间+" + DateUtil.format(createdDate, DateUtils.YYYY_MM_DD_HH_MM_SS));
         System.out.println("过期时间+" + DateUtil.format(expirationDate, DateUtils.YYYY_MM_DD_HH_MM_SS));
 
-        return Jwts.builder()
-                .setClaims(claims) // 存入自定义参数
-                .setSubject(subject)
-                .setIssuedAt(createdDate)
-                .setExpiration(expirationDate)
-                .signWith(SignatureAlgorithm.HS512, secret)
-                .compact();
+        String token = Jwts.builder()
+            .setClaims(claims) // 存入自定义参数
+            .setSubject(subject)
+            .setIssuedAt(createdDate)
+            .setExpiration(expirationDate)
+            .signWith(SignatureAlgorithm.HS512, secret)
+            .compact();
+
+        // TODO 缓存用户信息至redis
+
+
+//        return Jwts.builder()
+//                .setClaims(claims) // 存入自定义参数
+//                .setSubject(subject)
+//                .setIssuedAt(createdDate)
+//                .setExpiration(expirationDate)
+//                .signWith(SignatureAlgorithm.HS512, secret)
+//                .compact();
+        return token;
     }
 
     /**

+ 4 - 4
ruoyi-info/pom.xml

@@ -33,10 +33,10 @@
             <artifactId>ruoyi-base</artifactId>
         </dependency>
 
-        <dependency>
-            <groupId>com.ruoyi</groupId>
-            <artifactId>ruoyi-user</artifactId>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>com.ruoyi</groupId>-->
+<!--            <artifactId>ruoyi-user</artifactId>-->
+<!--        </dependency>-->
     </dependencies>
 
 </project>

+ 9 - 0
ruoyi-info/src/main/java/com/ruoyi/info/management/service/IManagementTeacherService.java

@@ -93,4 +93,13 @@ public interface IManagementTeacherService {
 
 
     ManagementTeacherVo queryDelById(Long id);
+
+    /**
+     * 获取管理老师信息
+     *
+     * @param mobile
+     * @param isEnable
+     * @return
+     */
+    ManagementTeacherVo getByPhoneNumber(String mobile, boolean isEnable);
 }

+ 13 - 0
ruoyi-info/src/main/java/com/ruoyi/info/management/service/impl/ManagementTeacherServiceImpl.java

@@ -31,6 +31,7 @@ import com.ruoyi.info.management.mapper.TeacherDepartmentRelMapper;
 import com.ruoyi.info.management.service.IManagementTeacherService;
 import com.ruoyi.info.management.service.ITeacherDepartmentRelService;
 import com.ruoyi.info.nursing.domain.bo.EnableStatusBo;
+import com.ruoyi.info.nursing.enums.EnableStatusEnum;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
@@ -251,4 +252,16 @@ public class ManagementTeacherServiceImpl implements IManagementTeacherService {
         return baseMapper.queryDelById(id);
     }
 
+    @Override
+    public ManagementTeacherVo getByPhoneNumber(String mobile, boolean isEnable) {
+        LambdaQueryWrapper<ManagementTeacher> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ManagementTeacher::getPhoneNumber, mobile);
+        if (isEnable) {
+            // 只查状态为启用的
+            wrapper.eq(ManagementTeacher::getEnableStatus, EnableStatusEnum.ENABLE);
+        }
+        wrapper.last("limit 1");
+        return baseMapper.selectVoOne(wrapper);
+    }
+
 }

+ 23 - 0
ruoyi-info/src/main/java/com/ruoyi/info/nursing/enums/EnableStatusEnum.java

@@ -0,0 +1,23 @@
+package com.ruoyi.info.nursing.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author fucheng.bai
+ * @date 2025/9/30
+ */
+@Getter
+@AllArgsConstructor
+public enum EnableStatusEnum {
+
+    ENABLE("0", "启用"),
+
+    FORBIDDEN("1", "禁用");
+
+    private final String key;
+
+    private final String desc;
+
+
+}

+ 10 - 0
ruoyi-info/src/main/java/com/ruoyi/info/nursing/service/INursingWorkerService.java

@@ -81,4 +81,14 @@ public interface INursingWorkerService {
      * @param bo
      */
     void updateStatus(EnableStatusBo bo);
+
+
+    /**
+     * 根据手机号查询护工信息
+     *
+     * @param mobile
+     * @param isEnable
+     * @return
+     */
+    NursingWorkerVo getByPhoneNumber(String mobile, boolean isEnable);
 }

+ 12 - 0
ruoyi-info/src/main/java/com/ruoyi/info/nursing/service/impl/NursingWorkerServiceImpl.java

@@ -22,6 +22,7 @@ import com.ruoyi.info.nursing.domain.bo.NursingCertificateBo;
 import com.ruoyi.info.nursing.domain.bo.NursingWorkerBo;
 import com.ruoyi.info.nursing.domain.vo.NursingCertificateVo;
 import com.ruoyi.info.nursing.domain.vo.NursingWorkerVo;
+import com.ruoyi.info.nursing.enums.EnableStatusEnum;
 import com.ruoyi.info.nursing.exception.NursingWorkerExceptionEnum;
 import com.ruoyi.info.nursing.mapper.NursingCertificateMapper;
 import com.ruoyi.info.nursing.mapper.NursingWorkerMapper;
@@ -219,4 +220,15 @@ public class NursingWorkerServiceImpl implements INursingWorkerService {
         baseMapper.updateById(nursingWorker);
     }
 
+    @Override
+    public NursingWorkerVo getByPhoneNumber(String mobile, boolean isEnable) {
+        LambdaQueryWrapper<NursingWorker> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(NursingWorker::getPhoneNumber, mobile);
+        if (isEnable) {
+            wrapper.eq(NursingWorker::getEnableStatus, EnableStatusEnum.ENABLE.getKey());
+        }
+        wrapper.last("limit 1");
+        return baseMapper.selectVoOne(wrapper);
+    }
+
 }

+ 44 - 0
ruoyi-user/src/main/java/com/ruoyi/user/domain/model/UserCacheInfo.java

@@ -0,0 +1,44 @@
+package com.ruoyi.user.domain.model;
+
+import java.io.Serializable;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author fucheng.bai
+ * @date 2025/10/9
+ */
+@Data
+public class UserCacheInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    private Long id;
+
+    /**
+     * 手机号
+     */
+    private String mobile;
+
+    /**
+     * 昵称
+     */
+    private String nickname;
+
+    /**
+     * 管理老师id
+     */
+    private Long teacherId;
+
+
+    /**
+     * 护工id
+     */
+    private Long workerId;
+}

+ 13 - 0
ruoyi-user/src/main/java/com/ruoyi/user/domain/vo/UserVo.java

@@ -130,4 +130,17 @@ public class UserVo {
     @ApiModelProperty("创建时间")
     private Date createTime;
 
+    /**
+     * 管理老师id
+     */
+    @ApiModelProperty("管理老师id")
+    private Long teacherId;
+
+
+    /**
+     * 护工id
+     */
+    @ApiModelProperty("护工id")
+    private Long workerId;
+
 }

+ 1 - 0
ruoyi-user/src/main/java/com/ruoyi/user/service/impl/UserServiceImpl.java

@@ -278,6 +278,7 @@ public class UserServiceImpl implements IUserService {
                 throw new ServiceException("用户不存在");
             }
         }
+
         return obj;
     }