baifucheng 2 hónapja%!(EXTRA string=óta)
szülő
commit
97eb757404

+ 7 - 4
ruoyi-api/src/main/java/com/ruoyi/api/controller/user/ApiUserLoginController.java

@@ -3,10 +3,12 @@ package com.ruoyi.api.controller.user;
 import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
 import cn.hutool.core.date.DateUtil;
 import com.ruoyi.api.controller.common.AbstractApiController;
+import com.ruoyi.common.constant.Constants;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.validate.RegGroup;
 import com.ruoyi.common.enums.FilePathSplicingType;
 import com.ruoyi.common.filepathsplicing.FilePathSplicing;
+import com.ruoyi.common.utils.ServletUtils;
 import com.ruoyi.framework.web.service.ApiTokenService;
 import com.ruoyi.system.enums.SequencePrefixEnum;
 import com.ruoyi.system.service.ISysSequenceService;
@@ -30,6 +32,8 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 
+import javax.servlet.http.HttpServletRequest;
+
 /**
  * 小程序用户管理Controller
  *
@@ -52,8 +56,6 @@ public class ApiUserLoginController extends AbstractApiController {
 
     private final ISysSequenceService sysSequenceService;
 
-    private final StringRedisTemplate stringRedisTemplate;
-
     /**
      * 获取小程序openId
      */
@@ -109,9 +111,10 @@ public class ApiUserLoginController extends AbstractApiController {
 
     @ApiOperation("登出方法")
     @PostMapping("/wxLogout")
-    public R<Void> wxLogout() {
+    public R<Void> wxLogout(HttpServletRequest request) {
         userService.logout(getUserId(true), UserThirdType.WX_MINI_PROGRAM.getCode());
-//        apiTokenService.removeToken(getToken());
+        String token = request.getHeader(Constants.API_TOKEN);
+        apiTokenService.removeToken(token);
         return R.ok("退出成功");
     }
 }

+ 5 - 0
ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java

@@ -147,6 +147,11 @@ public interface Constants {
      */
     String JWT_TOKEN = "jwt_token:";
 
+    /**
+     * jwt token cache key
+     */
+    String JWT_ONLINE_USER_TOKEN = "jwt_online_user_token:";
+
     public static final String API_TOKEN = "apiToken";
 
     public static final String REFRESH_TOKEN = "refresh_token";

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

@@ -70,7 +70,10 @@ public class ApiTokenService {
     }
 
     public void removeToken(String token) {
+        UserCacheInfo user = JSONUtil.toBean(stringRedisTemplate.opsForValue().get(Constants.JWT_TOKEN + token), UserCacheInfo.class);
         stringRedisTemplate.delete(Constants.JWT_TOKEN +  token);
+        // 删除userId关联的token
+        stringRedisTemplate.opsForSet().remove(Constants.JWT_ONLINE_USER_TOKEN + user.getId(), token);
     }
 
     /**
@@ -172,6 +175,8 @@ public class ApiTokenService {
 
         // 缓存至redis
         stringRedisTemplate.opsForValue().set(Constants.JWT_TOKEN + token, JSONUtil.toJsonStr(userCacheInfo), expireTime, TimeUnit.SECONDS);
+        // 缓存用户在线用户userId,方便强制踢出
+        stringRedisTemplate.opsForSet().add(Constants.JWT_ONLINE_USER_TOKEN + userId, token);
     }
 
 }

+ 3 - 3
ruoyi-info/ruoyi-info-biz/src/main/java/com/ruoyi/info/management/domain/vo/ManagementTeacherBenchVo.java

@@ -66,13 +66,13 @@ public class ManagementTeacherBenchVo  implements Serializable {
     /**
      * 待确认数量
      */
-    @ApiModelProperty("待服务数量")
+    @ApiModelProperty("待确认数量")
     private Integer waitConfirmedCount;
 
     /**
-     * 服务中数量
+     * 退款售后
      */
-    @ApiModelProperty("服务中数量")
+    @ApiModelProperty("退款售后数量")
     private Integer waitRefundCount;
 
 }

+ 2 - 2
ruoyi-info/ruoyi-info-biz/src/main/java/com/ruoyi/info/nursing/service/impl/NursingWorkerServiceImpl.java

@@ -237,14 +237,14 @@ public class NursingWorkerServiceImpl implements INursingWorkerService {
     @Override
     public List<NursingWorkerVo> queryListForTeacher(NursingWorkerApiReqBo bo) {
         LambdaQueryWrapper<NursingWorker> lqw = Wrappers.lambdaQuery();
-        lqw.eq(StringUtils.isEmpty(bo.getSex()), NursingWorker::getSex, bo.getSex());
+        lqw.eq(StringUtils.isNotEmpty(bo.getSex()), NursingWorker::getSex, bo.getSex());
         lqw.in(NursingWorker::getHospitalId, bo.getHospitalIds());
         if (StrUtil.isEmpty(bo.getSortFiled())) {
             lqw.orderByDesc(NursingWorker::getSortOrder).orderByDesc(NursingWorker::getId);
         } else {
             lqw.orderBy(bo.getSortFiled().equals("age"), bo.getSortMethod().equals("asc"), NursingWorker::getAge);
         }
-        return Collections.emptyList();
+        return baseMapper.selectVoList(lqw);
     }
 
 }