فهرست منبع

fix:修复获取用户名不全的问题

wangbo 3 سال پیش
والد
کامیت
9838595c13

+ 1 - 1
smsb-customer-manager-adapter/src/main/java/com/inspur/customer/web/controller/keyclaok/KeycloakController.java

@@ -51,7 +51,7 @@ public class KeycloakController {
 
     @Scheduled(cron = "0/10 * * * * ?")
     public void askUserOppenId(){
-        for(String userId : keycloakService.getUserMap().keySet()){
+        for(String userId : keycloakService.getUsersMap().keySet()){
             String oppenId = iWeChatService.askUser(userId);
             if(!StringUtils.isEmpty(oppenId)){
                 SubscribeDto dto = new SubscribeDto();

+ 13 - 1
smsb-customer-manager-app/src/main/java/com/inspur/customer/service/keycloak/KeycloakServiceImpl.java

@@ -33,7 +33,7 @@ public class KeycloakServiceImpl implements KeycloakService {
     private String realm;
 
     @Override
-    @Cacheable(value = "smsb:userList")
+    @Cacheable(value = "smsb:users")
     public Map<String, String> getUserMap() {
         Map<String, String> userMap = new HashMap<>();
         keycloak.realm(realm).users().list().forEach(user ->{
@@ -242,4 +242,16 @@ public class KeycloakServiceImpl implements KeycloakService {
         }
         return keycloakUserCo;
     }
+    @Override
+    @Cacheable(value = "smsb:userList")
+    public Map<String, String> getUsersMap() {
+        Map<String, String> userMap = new HashMap<>();
+        keycloak.realm(realm).users().list().forEach(user ->{
+            if (user.getFirstName() != null && user.getLastName() != null && !"".equals(user.getLastName())) {
+                user.setUsername(user.getLastName() + user.getFirstName());
+            }
+            userMap.put(user.getId(),user.getUsername());
+        });
+        return userMap;
+    }
 }

+ 6 - 0
smsb-customer-manager-client/src/main/java/com/inspur/customer/client/keycloak/KeycloakService.java

@@ -77,4 +77,10 @@ public interface KeycloakService {
     List<String> getUserRealmRoles(String userId);
 
     Map<String, List<String>> getUserClientRoles(String userId);
+    /**
+     * 获取当前releam下用户Map<id,name>
+     *
+     * @return
+     */
+    Map<String, String> getUsersMap();
 }