提交 37fcec24 编写于 作者: minghao.wu's avatar minghao.wu

test: 删除redis key

上级 6f964293
流水线 #37935 已取消 于阶段
......@@ -2,13 +2,13 @@ package com.pica.cloud.account.account.server.controller;
import com.pica.cloud.account.account.server.service.TokenService;
import com.pica.cloud.foundation.entity.PicaResponse;
import com.pica.cloud.foundation.utils.entity.PicaAdmin;
import com.pica.cloud.foundation.utils.entity.PicaUser;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import java.util.Map;
......@@ -42,6 +42,10 @@ public class TokenController extends AccountBaseController {
return PicaResponse.toResponse();
}
@ApiIgnore
@GetMapping(value = "/token/remove")
public PicaResponse removeToken(@RequestParam("timestamp") Long timestamp) {
tokenService.removeToken(timestamp);
return PicaResponse.toResponse();
}
}
......@@ -8,6 +8,7 @@ import com.pica.cloud.account.account.server.model.WechatInfoDto;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
......@@ -122,4 +123,7 @@ public interface DoctorMapper {
DoctorUnionResp getDoctorByAcctId(Long acctId);
List<Integer> selectIdByParams(@Param("fromId") Integer fromId,
@Param("toId") Integer toId,
@Param("loginTime") Date loginTime);
}
\ No newline at end of file
......@@ -13,4 +13,6 @@ public interface TokenService {
void tokenContinueTime(String token, Integer sourceType, Integer seconds);
/** 删除token */
void removeToken(Long timestamp);
}
package com.pica.cloud.account.account.server.service.impl;
import com.pica.cloud.account.account.server.constants.Constants;
import com.pica.cloud.account.account.server.mapper.DoctorMapper;
import com.pica.cloud.account.account.server.service.TokenService;
import com.pica.cloud.account.account.server.util.TokenUtils;
import com.pica.cloud.foundation.redis.ICacheClient;
import com.pica.cloud.foundation.utils.entity.PicaUser;
import com.pica.cloud.foundation.utils.utils.CommonUtil;
import com.pica.cloud.foundation.utils.utils.date.D;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -16,6 +18,7 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;
......@@ -40,6 +43,9 @@ public class TokenServiceImpl implements TokenService {
@Qualifier("accountThreadPool")
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
@Autowired
private DoctorMapper doctorMapper;
@Override
public String getToken(Map<String, Object> headersMap) {
String mobile = new StringBuilder("9").append(CommonUtil.getRandom(10)).toString();
......@@ -90,4 +96,35 @@ public class TokenServiceImpl implements TokenService {
return;
}
@Override
public void removeToken(Long timestamp) {
try {
Date lastLoginTime = new Date(timestamp);
for (Integer fromDoctorId = 0; fromDoctorId < 1000412091; fromDoctorId += 10000) {
List<Integer> doctorIdList = doctorMapper.selectIdByParams(fromDoctorId, fromDoctorId + 10000, lastLoginTime);
if (CollectionUtils.isEmpty(doctorIdList)) {
Thread.sleep(2000);
continue;
}
removeTokenByDoctorIdList(doctorIdList);
logger.info("remove token: {}", fromDoctorId);
}
} catch (Exception ex) {
// ingnore
}
}
private void removeTokenByDoctorIdList(List<Integer> doctorIdList) throws Exception {
for (Integer doctorId : doctorIdList) {
String key1 = String.format("token-doctor-%d-app", doctorId);
String key2 = String.format("token-doctor-%d", doctorId);
String key3 = redisClient.get(key1);
redisClient.del(key1);
redisClient.del(key2);
redisClient.del(key3);
Thread.sleep(10);
}
}
}
......@@ -1093,4 +1093,10 @@
where d.acct_id = #{acctId} and d.delete_flag = 1
</select>
<select id="selectIdByParams" parameterType="java.util.Map" resultType="java.lang.Integer">
select id from p_doctor
where id &gt;= #{fromId}
and id &lt;= #{toId}
and last_login_time &lt;= #{loginTime}
</select>
</mapper>
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册