早点上呀uu们~,感谢收看我第一天的笔记哦,现在紧接上文~话不多说~
在我们上文完成了一些简单的customer里面的操作后,现在接着进行开发哈~
首先,在service-client里面对接口进行定义,
然后到了service,在web文件里边进行实现
@Slf4j
@Service
@SuppressWarnings({"unchecked", "rawtypes"})
public class CustomerServiceImpl implements CustomerService {
//注入远程调用接口
@Autowired
private CustomerInfoFeignClient client;
@Autowired
private RedisTemplate redisTemplate;
@Autowired
private CustomerInfoFeignClient customerInfoFeignClient;
@Override
public String login(String code) {
//1 拿着code进行远程调用,返回用户id
Result<Long> loginResult = client.login(code);
//2 判断如果返回失败了,返回错误提示
Integer codeResult = loginResult.getCode();
if(codeResult != 200) {
throw new GuiguException(ResultCodeEnum.DATA_ERROR);
}
//3 获取远程调用返回用户id
Long customerId = loginResult.getData();
//4 判断返回用户id是否为空,如果为空,返回错误提示
if(customerId == null) {
throw new GuiguException(ResultCodeEnum.DATA_ERROR);
}
//5 生成token字符串
String token = UUID.randomUUID().toString().replaceAll("-","");
//6 把用户id放到Redis,设置过期时间
// key:token value:customerId
//redisTemplate.opsForValue().set(token,customerId.toString(),30, TimeUnit.MINUTES);
redisTemplate.opsForValue().set(RedisConstant.USER_LOGIN_KEY_PREFIX+token,
customerId.toString(),
RedisConstant.USER_LOGIN_KEY_TIMEOUT,
TimeUnit.SECONDS);
//7 返回token
return token;
}
现在乘客端的登录就开发好啦,下一步进行接口测试~