From 8706e6e4b3a626143864e662dc84f5c8af1a1494 Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Thu, 3 Sep 2020 14:36:12 +0800 Subject: [PATCH] fix wxcuser cache --- .../java/com/iformall/controller/BaseController.java | 2 +- .../com/iformall/domain/po/base/BaseCUserEntity.java | 11 +++++++++-- .../service/cuser/wx/WxCUserServiceAdapter.java | 6 +++++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java b/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java index 6943af92f..5bffa9d3e 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java @@ -129,7 +129,7 @@ public class BaseController { if (baseuser.getRealUser() == null) { throw new MallinkException(ErrorCode.USER_IS_EMPTY); } - WxCUser user = (WxCUser) baseuser.getRealUser(); + WxCUser user = baseuser.getObjectFromMap(WxCUser.class); TenantEntity tenantEntity = getTenantInfo(); if (user.getTenantId() == null) { user.setTenantId(tenantEntity.getTenantId()); diff --git a/mallinkService/src/main/java/com/iformall/domain/po/base/BaseCUserEntity.java b/mallinkService/src/main/java/com/iformall/domain/po/base/BaseCUserEntity.java index cfa86aa45..936472004 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/base/BaseCUserEntity.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/base/BaseCUserEntity.java @@ -1,5 +1,6 @@ package com.iformall.domain.po.base; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.annotation.TableField; import com.iformall.utils.Constant; import com.iformall.utils.UserUtil; @@ -8,6 +9,8 @@ import lombok.EqualsAndHashCode; import org.apache.commons.lang3.StringUtils; import java.util.Date; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.UUID; /** @@ -29,9 +32,13 @@ public class BaseCUserEntity extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="用户过期时间",name="expireTime") private Date expireTime; - @io.swagger.annotations.ApiModelProperty(value="真实对象如wxCUser",name="realUser") + @io.swagger.annotations.ApiModelProperty(value="真实对象如wxCUser,因为放到缓存之后,实体会变为map,索性就存map",name="realUser") @TableField(exist = false) - private Object realUser; + private Map realUser; + + public T getObjectFromMap(Class clazz) { + return JSONObject.parseObject(JSONObject.toJSONString(realUser), clazz); + } /** * 是否是会员 diff --git a/mallinkService/src/main/java/com/iformall/service/cuser/wx/WxCUserServiceAdapter.java b/mallinkService/src/main/java/com/iformall/service/cuser/wx/WxCUserServiceAdapter.java index 205ac0be7..bd56b22b0 100644 --- a/mallinkService/src/main/java/com/iformall/service/cuser/wx/WxCUserServiceAdapter.java +++ b/mallinkService/src/main/java/com/iformall/service/cuser/wx/WxCUserServiceAdapter.java @@ -1,8 +1,12 @@ package com.iformall.service.cuser.wx; +import java.util.Map; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.serializer.SerializerFeature; import com.iformall.domain.po.WxCUser; import com.iformall.domain.po.base.BaseCUserEntity; import com.iformall.mapper.WxCUserMapper; @@ -22,7 +26,7 @@ public class WxCUserServiceAdapter implements CUserServiceApapter{ entity.setExpireTime(wxCUser.getExpireTime()); entity.setUserId(wxCUser.getUserId()); entity.setToken(wxCUser.getToken()); - entity.setRealUser(wxCUser); + entity.setRealUser(JSON.parseObject(JSON.toJSONString(wxCUser, SerializerFeature.WriteNullStringAsEmpty, SerializerFeature.WriteNullNumberAsZero, SerializerFeature.WriteMapNullValue), Map.class)); return entity; }