From 0202425d9098bdf4c67e695531390a85ee639eab Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 26 Mar 2019 12:52:06 +0800 Subject: [PATCH] =?UTF-8?q?[TOKEN][=E4=BF=AE=E6=94=B9]:token=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E8=AE=B0=E5=85=A5=E6=95=B0=E6=8D=AE=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iformall/domain/po/WxAuthorizerInfo.java | 6 ++++ .../domain/po/WxComponentVerifyTicket.java | 10 +++---- .../mapper/WxAuthorizerInfoMapper.java | 6 +++- .../mapper/WxComponentVerifyTicketMapper.java | 6 ++-- .../mapper/WxAuthorizerInfoMapper.xml | 18 +++++++++++- .../mapper/WxComponentVerifyTicketMapper.xml | 10 ++++++- .../wechat/WxOpenInRedisDBConfigStorage.java | 28 +++++++++++++++++-- 7 files changed, 70 insertions(+), 14 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxAuthorizerInfo.java b/mallinkService/src/main/java/com/iformall/domain/po/WxAuthorizerInfo.java index dad1ab0..a016961 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxAuthorizerInfo.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxAuthorizerInfo.java @@ -63,6 +63,12 @@ public class WxAuthorizerInfo implements Serializable { private String openAppid; @io.swagger.annotations.ApiModelProperty(value="绑定开发平台时间",name="bindOpenTime") private Date bindOpenTime; + @io.swagger.annotations.ApiModelProperty(value="refresh_token",name="refreshToken") + private String refreshToken; + @io.swagger.annotations.ApiModelProperty(value="access_token",name="accessToken") + private String accessToken; + @io.swagger.annotations.ApiModelProperty(value="accessToken过期时间",name="accessTokenExpire") + private Date accessTokenExpire; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxComponentVerifyTicket.java b/mallinkService/src/main/java/com/iformall/domain/po/WxComponentVerifyTicket.java index f31a85f..2f470bc 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxComponentVerifyTicket.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxComponentVerifyTicket.java @@ -20,19 +20,19 @@ public class WxComponentVerifyTicket implements Serializable { protected List ids; @Transient protected String sortColumns; - - /**微信第三方componentAppid*/ + @io.swagger.annotations.ApiModelProperty(value="微信第三方componentAppid",name="componentAppid") private String componentAppid; - /**微信第三方component_verify_ticket*/ @io.swagger.annotations.ApiModelProperty(value="微信第三方component_verify_ticket",name="componentVerifyTicket") private String componentVerifyTicket; - /**创建时间*/ @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createTime") private Date createTime; - /**失效时间*/ @io.swagger.annotations.ApiModelProperty(value="失效时间",name="deadline") private Date deadline; + @io.swagger.annotations.ApiModelProperty(value="access_token",name="accessToken") + private String accessToken; + @io.swagger.annotations.ApiModelProperty(value="access_token过期时间",name="accessTokenExpire") + private Date accessTokenExpire; diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxAuthorizerInfoMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxAuthorizerInfoMapper.java index ddd6173..a6af65e 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxAuthorizerInfoMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxAuthorizerInfoMapper.java @@ -11,7 +11,11 @@ public interface WxAuthorizerInfoMapper extends CommonMapper findVoList(WxWeappInfo wxWeappInfo); - void updateReleaseInfo(WxAuthorizerInfo wxAuthorizerInfo); + int updateReleaseInfo(WxAuthorizerInfo wxAuthorizerInfo); + + int updateRefreshToken(WxAuthorizerInfo wxAuthorizerInfo); + + int updateAccessToken(WxAuthorizerInfo wxAuthorizerInfo); diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxComponentVerifyTicketMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxComponentVerifyTicketMapper.java index 72d6514..db9f205 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxComponentVerifyTicketMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxComponentVerifyTicketMapper.java @@ -7,10 +7,8 @@ import com.iformall.domain.po.WxComponentVerifyTicket; public interface WxComponentVerifyTicketMapper extends CommonMapper { List findList(WxComponentVerifyTicket wxComponentVerifyTicket); - - - - + int updateAccessToken(WxComponentVerifyTicket wxComponentVerifyTicket); + } diff --git a/mallinkService/src/main/resources/mapper/WxAuthorizerInfoMapper.xml b/mallinkService/src/main/resources/mapper/WxAuthorizerInfoMapper.xml index 95ac137..35d5ad8 100644 --- a/mallinkService/src/main/resources/mapper/WxAuthorizerInfoMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxAuthorizerInfoMapper.xml @@ -24,13 +24,17 @@ + + + `id`,`authorizer_appid`,`head_img`,`alias`,`qrcode_url`,`create_time`,`authorization_status`,`auth_time`, `base_status`, `base_time`, `domain_status`, `domain_time`, `webdomain_status`, `webdomain_time`, `template_status`, `template_time`, `current_version`,`current_desc`,`release_time`, - `open_appid`,`bind_open_time` + `open_appid`,`bind_open_time`,`refresh_token`, + `access_token`,`access_token_expire` @@ -121,6 +125,18 @@ where `authorizer_appid` = #{authorizerAppid} + + update wx_authorizer_info + set `refresh_token` = #{refreshToken} + where `authorizer_appid` = #{authorizerAppid} + + + + update wx_authorizer_info + set `access_token` = #{accessToken}, `access_token_expire` = #{accessTokenExpire} + where `authorizer_appid` = #{authorizerAppid} + + diff --git a/mallinkService/src/main/resources/mapper/WxComponentVerifyTicketMapper.xml b/mallinkService/src/main/resources/mapper/WxComponentVerifyTicketMapper.xml index 0d01442..4a8f56d 100644 --- a/mallinkService/src/main/resources/mapper/WxComponentVerifyTicketMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxComponentVerifyTicketMapper.xml @@ -7,6 +7,8 @@ + + @@ -19,7 +21,7 @@ and `id` = #{id} - and `component_appid` like concat('%', #{componentAppid},'%') + and `component_appid` = #{componentAppid} and `component_verify_ticket` like concat('%', #{componentVerifyTicket},'%') @@ -43,6 +45,12 @@ select from wx_component_verify_ticket + + + update wx_component_verify_ticket + set `access_token` = #{accessToken}, `access_token_expire` = #{accessTokenExpire} + where component_appid = #{componentAppid} + diff --git a/mlWechatOpen/src/main/java/com/iformall/service/wechat/WxOpenInRedisDBConfigStorage.java b/mlWechatOpen/src/main/java/com/iformall/service/wechat/WxOpenInRedisDBConfigStorage.java index aeabd83..9941015 100644 --- a/mlWechatOpen/src/main/java/com/iformall/service/wechat/WxOpenInRedisDBConfigStorage.java +++ b/mlWechatOpen/src/main/java/com/iformall/service/wechat/WxOpenInRedisDBConfigStorage.java @@ -1,14 +1,20 @@ package com.iformall.service.wechat; +import com.iformall.domain.po.WxAuthorizerInfo; +import com.iformall.domain.po.WxComponentVerifyTicket; import com.iformall.mapper.WxAuthorizerInfoMapper; import com.iformall.mapper.WxComponentVerifyTicketMapper; import me.chanjar.weixin.open.api.impl.WxOpenInMemoryConfigStorage; import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.util.Pool; +import java.util.Date; + public class WxOpenInRedisDBConfigStorage extends WxOpenInMemoryConfigStorage { private final static String COMPONENT_VERIFY_TICKET_KEY = "wechat_component_verify_ticket:"; private final static String COMPONENT_ACCESS_TOKEN_KEY = "wechat_component_access_token:"; @@ -30,6 +36,8 @@ public class WxOpenInRedisDBConfigStorage extends WxOpenInMemoryConfigStorage { private String jsapiTicketKey; private String cardApiTicket; + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + @Autowired private WxComponentVerifyTicketMapper wxComponentVerifyTicketMapper; @@ -101,8 +109,14 @@ public class WxOpenInRedisDBConfigStorage extends WxOpenInMemoryConfigStorage { public void updateComponentAccessTokent(String componentAccessToken, int expiresInSeconds) { try (Jedis jedis = this.jedisPool.getResource()) { jedis.setex(this.componentAccessTokenKey, expiresInSeconds - 200, componentAccessToken); + + WxComponentVerifyTicket ticket = new WxComponentVerifyTicket(); + ticket.setComponentAppid(getComponentAppId()); + ticket.setAccessToken(componentAccessToken); + ticket.setAccessTokenExpire(new Date(Long.valueOf(System.currentTimeMillis() + (expiresInSeconds * 1000)))); + int num = wxComponentVerifyTicketMapper.updateAccessToken(ticket); + logger.info("updateComponentVerifyTicketAccessToken rows: " + num); } - // TODO update to DB } private String getKey(String prefix, String appId) { @@ -121,8 +135,12 @@ public class WxOpenInRedisDBConfigStorage extends WxOpenInMemoryConfigStorage { try (Jedis jedis = this.jedisPool.getResource()) { jedis.set(this.getKey(this.authorizerRefreshTokenKey, appId), authorizerRefreshToken); + WxAuthorizerInfo authorizerInfo = new WxAuthorizerInfo(); + authorizerInfo.setAuthorizerAppid(appId); + authorizerInfo.setRefreshToken(authorizerRefreshToken); + int num = wxAuthorizerInfoMapper.updateRefreshToken(authorizerInfo); + logger.info("setAuthorizerRefreshToken " + appId + " rows: " + num); } - // TODO update to DB } @Override @@ -150,6 +168,12 @@ public class WxOpenInRedisDBConfigStorage extends WxOpenInMemoryConfigStorage { public void updateAuthorizerAccessToken(String appId, String authorizerAccessToken, int expiresInSeconds) { try (Jedis jedis = this.jedisPool.getResource()) { jedis.setex(this.getKey(this.authorizerAccessTokenKey, appId), expiresInSeconds - 200, authorizerAccessToken); + WxAuthorizerInfo authorizerInfo = new WxAuthorizerInfo(); + authorizerInfo.setAuthorizerAppid(appId); + authorizerInfo.setAccessToken(authorizerAccessToken); + authorizerInfo.setAccessTokenExpire(new Date(Long.valueOf(System.currentTimeMillis() + (expiresInSeconds * 1000)))); + int num = wxAuthorizerInfoMapper.updateAccessToken(authorizerInfo); + logger.info("updateAuthorizerAccessToken " + appId + " rows: " + num); } }