if (role.equals(UserType.ADMIN_USER.getCode())) { //根据用户名密码从admin表中查询管理员 AdminEntity adminRes = loginService.adminLogin(username, password); Optional.ofNullable(adminRes).orElseThrow(() -> { return new BusinessCodeException(BusinessCode.USER_LOGIN_FAILURE.getMsg(), BusinessCode.USER_LOGIN_FAILURE.getCode()); }); UserVo userVo = new UserVo(); //封装页面用户实体 UserVo user = userVo.setUserId(adminRes.getAdminId()).setName(adminRes.getAdminName()).setRole(UserType.ADMIN_USER.getCode()); //生成jwt //过期时间 int expiredTime = Integer.parseInt(BusinessConstant.JWT_EXPIRED_TIME.getKey()); //分钟过期 String jwtTokenWithExpireTimeMinutes = JwtUtils.createJwtTokenWithExpireTimeMinutes(user, rsaProperties.getPrivateKey(), expiredTime, BusinessConstant.SYSTEM_JWT_PAYLOAD_KEY.getKey(), BusinessConstant.SYSTEM_JWT_ISS.getKey()); //设置redis过期时间 --测试(分钟) redisUtils.setKeyAndSetExpireTime(BusinessConstant.JWT_REDIS_KEY.getKey() + jwtTokenWithExpireTimeMinutes, user.getName() + ":" + user.getUserId(), expiredTime, TimeUnit.MINUTES); //返回token response.setHeader(BusinessConstant.JWT_REQUEST_HEAD.getKey(),jwtTokenWithExpireTimeMinutes); //封装返回类型 return ApiResultHandler.successResult(user); }
时间: 2024-02-14 20:04:45 浏览: 24
这段代码是用来处理管理员用户登录的,首先会根据传入的用户名和密码从admin表中查询是否有对应的管理员信息。如果查询到了,则将其封装成一个UserVo对象,然后生成一个JWT Token并设置过期时间和Redis缓存的过期时间,最后将Token设置在响应头中返回给客户端。如果查询不到管理员信息,则会抛出一个BusinessCodeException异常,返回一个错误信息的ApiResult对象。
相关问题
public void onReceive(Context context, Intent intent) { String action = intent.getAction(); assert action != null; if (action.equals(Datawedeentity.EXTRA_RESULT_GET_ACTIVE_PROFILE)) { if (intent.hasExtra(Datawedeentity.EXTRA_RESULT_GET_ACTIVE_PROFILE)) { String activeProfile = intent.getStringExtra(Datawedeentity.EXTRA_RESULT_GET_ACTIVE_PROFILE); } } if (action.equals(Datawedeentity.ACTIVITY_INTENT_FILTER_ACTION)) { // Received a barcode scan displayScanResult(intent, "via Broadcast"); } }
这段代码是一个 BroadcastReceiver 的实现,用于接收不同的 Intent。在 if 分支语句中,当接收到 action 为 Datawedeentity.EXTRA_RESULT_GET_ACTIVE_PROFILE 的 Intent 时,会从 Intent 中获取 activeProfile 的字符串值。在另一个 if 分支语句中,当接收到 action 为 Datawedeentity.ACTIVITY_INTENT_FILTER_ACTION 的 Intent 时,会调用 displayScanResult 方法来显示扫描结果。
// 监听广播action:搜寻到蓝牙 IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(BluetoothDevice.ACTION_FOUND); // 找到设备 intentFilter.addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED); // 设备绑定状态变化 intentFilter.addAction(BluetoothDevice.ACTION_PAIRING_REQUEST); // 设备绑定状态变化 intentFilter.addAction(BluetoothAdapter.ACTION_DISCOVERY_STARTED); // 开始搜索 intentFilter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED); // 搜索结束 Log.d(TAG, "onStart: 监听搜寻到蓝牙的广播"); discoveryReceiver = new BleReceiver(); registerReceiver(discoveryReceiver, intentFilter); 改错
代码中没有明确指定 `BleReceiver` 是什么类,需要先定义 `BleReceiver` 类。另外,需要在不使用时注销广播接收器,否则可能导致内存泄漏。
下面是修改后的代码:
```java
// 定义 BleReceiver 类
private class BleReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
// 找到设备
} else if (BluetoothDevice.ACTION_BOND_STATE_CHANGED.equals(action)) {
// 设备绑定状态变化
} else if (BluetoothDevice.ACTION_PAIRING_REQUEST.equals(action)) {
// 设备绑定状态变化
} else if (BluetoothAdapter.ACTION_DISCOVERY_STARTED.equals(action)) {
// 开始搜索
} else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {
// 搜索结束
}
}
}
// 监听广播action:搜寻到蓝牙
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(BluetoothDevice.ACTION_FOUND); // 找到设备
intentFilter.addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED); // 设备绑定状态变化
intentFilter.addAction(BluetoothDevice.ACTION_PAIRING_REQUEST); // 设备绑定状态变化
intentFilter.addAction(BluetoothAdapter.ACTION_DISCOVERY_STARTED); // 开始搜索
intentFilter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED); // 搜索结束
Log.d(TAG, "onStart: 监听搜寻到蓝牙的广播");
discoveryReceiver = new BleReceiver();
registerReceiver(discoveryReceiver, intentFilter);
// 在不使用时注销广播接收器
unregisterReceiver(discoveryReceiver);
```