소스 검색

checkToken

wuweihao 3 년 전
부모
커밋
051d13b5c8

+ 4 - 4
gis_admin/src/main/java/com/gis/admin/controller/WxUserController.java

@@ -28,13 +28,13 @@ public class WxUserController {
 
     @WebControllerLog(description = "微信用户管理-修改用户", addDb = true)
     @ApiOperation(value = "修改用户信息", notes = "只能新增普通管理员")
-    @PostMapping("save")
+    @PostMapping("/save")
     public Result save(@Valid @RequestBody WxUserDto param) {
         return entityService.saveEntity(param);
     }
 
     @ApiOperation("详情")
-    @GetMapping("detail/{id}")
+    @GetMapping("/detail/{id}")
     public Result<SysUserEntity> detail(@PathVariable Long id) {
         return Result.success(entityService.getById(id));
     }
@@ -42,14 +42,14 @@ public class WxUserController {
 
     @WebControllerLog(description = "微信用户管理-删除",addDb = true)
     @ApiOperation("删除")
-    @GetMapping("removes/{ids}")
+    @GetMapping("/removes/{ids}")
     public Result removes(@PathVariable String ids) {
         entityService.removeByIds(Collections.singletonList(ids));
         return Result.success();
     }
 
     @ApiOperation(value = "检查token是否有效")
-    @GetMapping("checkToken")
+    @GetMapping("/checkToken")
     public Result checkToken() {
         return entityService.checkToken();
 

+ 2 - 0
gis_admin/src/main/java/com/gis/admin/service/WxUserService.java

@@ -20,4 +20,6 @@ public interface WxUserService extends IService<WxUserEntity> {
     Result saveEntity(WxUserDto param);
 
     Result checkToken();
+
+    public WxUserEntity cacheWxUserById(Long userId);
 }

+ 30 - 4
gis_admin/src/main/java/com/gis/admin/service/impl/WxUserServiceImpl.java

@@ -1,6 +1,7 @@
 package com.gis.admin.service.impl;
 
-import com.alibaba.fastjson.JSONPath;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gis.admin.entity.dto.WxUserDto;
@@ -11,6 +12,7 @@ import com.gis.common.base.exception.BaseRuntimeException;
 import com.gis.common.base.service.IBaseService;
 import com.gis.common.constant.ConfigConstant;
 import com.gis.common.constant.ErrorEnum;
+import com.gis.common.constant.TypeCode;
 import com.gis.common.util.RedisUtil;
 import com.gis.common.util.Result;
 import lombok.extern.slf4j.Slf4j;
@@ -19,8 +21,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-
-
+import java.util.concurrent.TimeUnit;
 
 
 /**
@@ -38,6 +39,8 @@ public class WxUserServiceImpl extends ServiceImpl<WxUserMapper, WxUserEntity> i
     @Autowired
     IBaseService iBaseService;
 
+
+
     @Override
     public WxUserEntity findByOpenId(String openId) {
         LambdaQueryWrapper<WxUserEntity> wrapper = new LambdaQueryWrapper<>();
@@ -50,6 +53,11 @@ public class WxUserServiceImpl extends ServiceImpl<WxUserMapper, WxUserEntity> i
         WxUserEntity entity = getById(param.getId());
         BeanUtils.copyProperties(param, entity);
         this.updateById(entity);
+
+        // 删除微信用户缓存
+        String wxUserKey = TypeCode.WX_USER_KEY + entity.getId();
+        redisUtil.delete(wxUserKey);
+
         return Result.success();
     }
 
@@ -63,6 +71,24 @@ public class WxUserServiceImpl extends ServiceImpl<WxUserMapper, WxUserEntity> i
         String redisWxTokenKey = configConstant.redisPrefix + token;
         BaseRuntimeException.isTrue(!redisUtil.hasKey(redisWxTokenKey), ErrorEnum.FAILURE_CODE_3004.code(), ErrorEnum.FAILURE_CODE_3004.message());
 
-        return Result.success();
+        Long userId = iBaseService.getUserId();
+
+        return Result.success(this.cacheWxUserById(userId));
+    }
+
+    @Override
+    public WxUserEntity cacheWxUserById(Long userId){
+        String wxUserKey = TypeCode.WX_USER_KEY + userId;
+        WxUserEntity userEntity;
+        if (redisUtil.hasKey(wxUserKey)){
+            JSONObject data = (JSONObject)redisUtil.get(wxUserKey);
+            userEntity = JSON.parseObject(data.toJSONString(), WxUserEntity.class);
+        } else {
+            userEntity = this.getById(userId);
+            // 1小时有效
+            redisUtil.setCacheObject(wxUserKey, userEntity, 1, TimeUnit.HOURS);
+        }
+        return userEntity;
+
     }
 }

+ 3 - 0
gis_common/src/main/java/com/gis/common/constant/TypeCode.java

@@ -19,6 +19,9 @@ public class TypeCode {
     /**redis wxToken 前缀*/
     public static final String REDIS_LOGIN_WXTOKEN = "wxToken:";
 
+    /**redis wx用户 前缀*/
+    public static  final String WX_USER_KEY = "wx:user_";
+