From 7377112465472ef9363e7324465071f5c38df823 Mon Sep 17 00:00:00 2001 From: MaxKey Date: Sat, 17 Jul 2021 20:49:05 +0800 Subject: [PATCH] kafka support fix --- .../main/java/org/maxkey/entity/Accounts.java | 10 +++ .../java/org/maxkey/entity/Organizations.java | 12 +++- .../main/java/org/maxkey/entity/UserInfo.java | 22 ++++++- .../kafka/KafkaPersistService.java | 4 ++ .../persistence/mapper/UserInfoMapper.java | 13 +++- .../persistence/service/AccountsService.java | 62 +++++++++++++++++++ .../persistence/service/UserInfoService.java | 45 +++++++++----- .../mapper/xml/mysql/UserInfoMapper.xml | 19 ++++++ 8 files changed, 169 insertions(+), 18 deletions(-) diff --git a/maxkey-core/src/main/java/org/maxkey/entity/Accounts.java b/maxkey-core/src/main/java/org/maxkey/entity/Accounts.java index 6cb3883c4..c3e04aca1 100644 --- a/maxkey-core/src/main/java/org/maxkey/entity/Accounts.java +++ b/maxkey-core/src/main/java/org/maxkey/entity/Accounts.java @@ -60,6 +60,8 @@ public class Accounts extends JpaBaseEntity implements Serializable { private String relatedUsername; @Column private String relatedPassword; + + UserInfo userInfo; public Accounts() { super(); @@ -146,6 +148,14 @@ public class Accounts extends JpaBaseEntity implements Serializable { this.id = id; } + public UserInfo getUserInfo() { + return userInfo; + } + + public void setUserInfo(UserInfo userInfo) { + this.userInfo = userInfo; + } + @Override public String toString() { return "AppAccounts [uid=" + uid + ", username=" + username + ", displayName=" + displayName + ", appId=" diff --git a/maxkey-core/src/main/java/org/maxkey/entity/Organizations.java b/maxkey-core/src/main/java/org/maxkey/entity/Organizations.java index f055bc2e9..dbc3a1ff4 100644 --- a/maxkey-core/src/main/java/org/maxkey/entity/Organizations.java +++ b/maxkey-core/src/main/java/org/maxkey/entity/Organizations.java @@ -89,6 +89,8 @@ public class Organizations extends JpaBaseEntity implements Serializable { private String extId; @Column private String extParentId; + + private int isPrimary = 0; public Organizations() { // @@ -322,7 +324,15 @@ public class Organizations extends JpaBaseEntity implements Serializable { this.extParentId = extParentId; } - @Override + public int getIsPrimary() { + return isPrimary; + } + + public void setIsPrimary(int isPrimary) { + this.isPrimary = isPrimary; + } + + @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("Organizations [id="); diff --git a/maxkey-core/src/main/java/org/maxkey/entity/UserInfo.java b/maxkey-core/src/main/java/org/maxkey/entity/UserInfo.java index 883836e47..c949ce917 100644 --- a/maxkey-core/src/main/java/org/maxkey/entity/UserInfo.java +++ b/maxkey-core/src/main/java/org/maxkey/entity/UserInfo.java @@ -21,6 +21,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import java.io.IOException; import java.util.Arrays; import java.util.HashMap; +import java.util.List; + import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @@ -258,7 +260,9 @@ public class UserInfo extends JpaBaseEntity { @Column String description; + List depts; + List adjoints; public static class ONLINE { // 在线 @@ -1240,7 +1244,23 @@ public class UserInfo extends JpaBaseEntity { this.userState = userState; } - @Override + public List getDepts() { + return depts; + } + + public void setDepts(List depts) { + this.depts = depts; + } + + public List getAdjoints() { + return adjoints; + } + + public void setAdjoints(List adjoints) { + this.adjoints = adjoints; + } + + @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("UserInfo [id="); diff --git a/maxkey-persistence/src/main/java/org/maxkey/persistence/kafka/KafkaPersistService.java b/maxkey-persistence/src/main/java/org/maxkey/persistence/kafka/KafkaPersistService.java index e3dd39c5a..377d02ce0 100644 --- a/maxkey-persistence/src/main/java/org/maxkey/persistence/kafka/KafkaPersistService.java +++ b/maxkey-persistence/src/main/java/org/maxkey/persistence/kafka/KafkaPersistService.java @@ -47,6 +47,10 @@ public class KafkaPersistService { this.kafkaTemplate = kafkaTemplate; } + public ApplicationConfig getApplicationConfig() { + return applicationConfig; + } + /** * send msg to kafka * @param topic kafka TOPIC diff --git a/maxkey-persistence/src/main/java/org/maxkey/persistence/mapper/UserInfoMapper.java b/maxkey-persistence/src/main/java/org/maxkey/persistence/mapper/UserInfoMapper.java index a53ee88ee..cfdbdbfe6 100644 --- a/maxkey-persistence/src/main/java/org/maxkey/persistence/mapper/UserInfoMapper.java +++ b/maxkey-persistence/src/main/java/org/maxkey/persistence/mapper/UserInfoMapper.java @@ -17,9 +17,14 @@ package org.maxkey.persistence.mapper; +import java.util.List; + import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; import org.apache.mybatis.jpa.persistence.IJpaBaseMapper; +import org.maxkey.entity.Organizations; import org.maxkey.entity.UserInfo; +import org.maxkey.entity.UserInfoAdjoint; /** @@ -59,8 +64,14 @@ public interface UserInfoMapper extends IJpaBaseMapper{ public int changeMobile(UserInfo userInfo); public int updateProfile(UserInfo userInfo); + + public List loadDeptsByUserId(String userId); + + public List loadAdjointsByUserId(String userId); @Select("select * from mxk_userinfo where email = #{value} or mobile= #{value}") public UserInfo queryUserInfoByEmailMobile(String emailMobile); - + + @Update("update mxk_userinfo set gridlist = #{gridList} where id = #{id}") + public int updateGridList(UserInfo userInfo) ; } diff --git a/maxkey-persistence/src/main/java/org/maxkey/persistence/service/AccountsService.java b/maxkey-persistence/src/main/java/org/maxkey/persistence/service/AccountsService.java index 8c4f0d4ee..ac8211fef 100644 --- a/maxkey-persistence/src/main/java/org/maxkey/persistence/service/AccountsService.java +++ b/maxkey-persistence/src/main/java/org/maxkey/persistence/service/AccountsService.java @@ -19,12 +19,23 @@ package org.maxkey.persistence.service; import org.apache.mybatis.jpa.persistence.JpaBaseService; import org.maxkey.entity.Accounts; +import org.maxkey.entity.UserInfo; +import org.maxkey.persistence.kafka.KafkaIdentityAction; +import org.maxkey.persistence.kafka.KafkaIdentityTopic; +import org.maxkey.persistence.kafka.KafkaPersistService; import org.maxkey.persistence.mapper.AccountsMapper; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; @Repository public class AccountsService extends JpaBaseService{ + @Autowired + KafkaPersistService kafkaPersistService; + + @Autowired + UserInfoService userInfoService; + public AccountsService() { super(AccountsMapper.class); } @@ -38,4 +49,55 @@ public class AccountsService extends JpaBaseService{ return (AccountsMapper)super.getMapper(); } + + public boolean insert(Accounts account) { + if (super.insert(account)) { + if(kafkaPersistService.getApplicationConfig().isKafkaSupport()) { + UserInfo loadUserInfo = userInfoService.loadUserRelated(account.getUid()); + account.setUserInfo(loadUserInfo); + kafkaPersistService.send( + KafkaIdentityTopic.ACCOUNT_TOPIC, + account, + KafkaIdentityAction.CREATE_ACTION); + } + + return true; + } + return false; + } + + public boolean update(Accounts account) { + if (super.update(account)) { + if(kafkaPersistService.getApplicationConfig().isKafkaSupport()) { + UserInfo loadUserInfo = userInfoService.loadUserRelated(account.getUid()); + account.setUserInfo(loadUserInfo); + kafkaPersistService.send( + KafkaIdentityTopic.ACCOUNT_TOPIC, + account, + KafkaIdentityAction.UPDATE_ACTION); + } + + return true; + } + return false; + } + + public boolean remove(String id) { + Accounts account = this.get(id); + if (super.remove(id)) { + UserInfo loadUserInfo = null; + if(kafkaPersistService.getApplicationConfig().isKafkaSupport()) { + loadUserInfo = userInfoService.loadUserRelated(account.getUid()); + account.setUserInfo(loadUserInfo); + kafkaPersistService.send( + KafkaIdentityTopic.ACCOUNT_TOPIC, + account, + KafkaIdentityAction.DELETE_ACTION); + } + + return true; + } + return false; + } + } diff --git a/maxkey-persistence/src/main/java/org/maxkey/persistence/service/UserInfoService.java b/maxkey-persistence/src/main/java/org/maxkey/persistence/service/UserInfoService.java index 5c9c9515e..1d864b5be 100644 --- a/maxkey-persistence/src/main/java/org/maxkey/persistence/service/UserInfoService.java +++ b/maxkey-persistence/src/main/java/org/maxkey/persistence/service/UserInfoService.java @@ -68,7 +68,6 @@ import com.google.common.collect.Lists; public class UserInfoService extends JpaBaseService { final static Logger _logger = LoggerFactory.getLogger(UserInfoService.class); - final static String UPDATE_GRIDLIST_SQL = "UPDATE MXK_USERINFO SET GRIDLIST = ? WHERE ID = ?"; @Autowired private PasswordEncoder passwordEncoder; @@ -96,10 +95,14 @@ public class UserInfoService extends JpaBaseService { public boolean insert(UserInfo userInfo) { userInfo = passwordEncoder(userInfo); if (super.insert(userInfo)) { - kafkaPersistService.send( - KafkaIdentityTopic.USERINFO_TOPIC, - userInfo, - KafkaIdentityAction.CREATE_ACTION); + if(kafkaPersistService.getApplicationConfig().isKafkaSupport()) { + UserInfo loadUserInfo = loadUserRelated(userInfo.getId()); + kafkaPersistService.send( + KafkaIdentityTopic.USERINFO_TOPIC, + loadUserInfo, + KafkaIdentityAction.CREATE_ACTION); + } + return true; } @@ -109,11 +112,13 @@ public class UserInfoService extends JpaBaseService { public boolean update(UserInfo userInfo) { userInfo = passwordEncoder(userInfo); if (super.update(userInfo)) { - kafkaPersistService.send( - KafkaIdentityTopic.USERINFO_TOPIC, - userInfo, - KafkaIdentityAction.UPDATE_ACTION); - + if(kafkaPersistService.getApplicationConfig().isKafkaSupport()) { + UserInfo loadUserInfo = loadUserRelated(userInfo.getId()); + kafkaPersistService.send( + KafkaIdentityTopic.USERINFO_TOPIC, + loadUserInfo, + KafkaIdentityAction.UPDATE_ACTION); + } changePasswordProvisioning(userInfo); return true; } @@ -121,23 +126,33 @@ public class UserInfoService extends JpaBaseService { } public boolean delete(UserInfo userInfo) { + UserInfo loadUserInfo = null; + if(kafkaPersistService.getApplicationConfig().isKafkaSupport()) { + loadUserInfo = loadUserRelated(userInfo.getId()); + } + if( super.delete(userInfo)){ kafkaPersistService.send( KafkaIdentityTopic.USERINFO_TOPIC, - userInfo, + loadUserInfo, KafkaIdentityAction.DELETE_ACTION); return true; } return false; } + public UserInfo loadUserRelated(String userId) { + UserInfo loadUserInfo =this.get(userId); + loadUserInfo.setDepts(getMapper().loadDeptsByUserId(userId)); + loadUserInfo.setAdjoints(getMapper().loadAdjointsByUserId(userId)); + return loadUserInfo; + } + public boolean updateGridList(String gridList) { try { if (gridList != null && !gridList.equals("")) { - int intGridList = Integer.parseInt(gridList); - jdbcTemplate.update(UPDATE_GRIDLIST_SQL, intGridList, - WebContext.getUserInfo().getId()); - WebContext.getUserInfo().setGridList(intGridList); + WebContext.getUserInfo().setGridList(Integer.parseInt(gridList)); + getMapper().updateGridList(WebContext.getUserInfo()); } }catch(Exception e) { e.printStackTrace(); diff --git a/maxkey-persistence/src/main/resources/org/maxkey/persistence/mapper/xml/mysql/UserInfoMapper.xml b/maxkey-persistence/src/main/resources/org/maxkey/persistence/mapper/xml/mysql/UserInfoMapper.xml index 7bcea1efc..379c67466 100644 --- a/maxkey-persistence/src/main/resources/org/maxkey/persistence/mapper/xml/mysql/UserInfoMapper.xml +++ b/maxkey-persistence/src/main/resources/org/maxkey/persistence/mapper/xml/mysql/UserInfoMapper.xml @@ -249,4 +249,23 @@ id = #{id} + + + + \ No newline at end of file