Просмотр исходного кода

UserInfoService 操作增加instId控制

shimingxy 2 недель назад
Родитель
Сommit
af50fd84e8

+ 2 - 0
maxkey-entity/src/main/java/org/dromara/maxkey/entity/idm/UserInfo.java

@@ -25,6 +25,7 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 
+import org.dromara.mybatis.jpa.annotations.PartitionKey;
 import org.dromara.mybatis.jpa.entity.JpaEntity;
 
 import jakarta.persistence.Column;
@@ -284,6 +285,7 @@ public class UserInfo extends JpaEntity  implements Serializable {
     String description;
 
     @Column
+    @PartitionKey
     private String instId;
 
     private String instName;

+ 7 - 3
maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/mapper/UserInfoMapper.java

@@ -19,6 +19,7 @@ package org.dromara.maxkey.persistence.mapper;
 
 import java.util.List;
 
+import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
 import org.dromara.maxkey.constants.ConstsStatus;
@@ -37,8 +38,11 @@ public interface UserInfoMapper  extends IJpaMapper<UserInfo,String>{
     //login query
     public UserInfo findByAppIdAndUsername(UserInfo userInfo);
     
-    @Select("select * from  mxk_userinfo where username = #{value} and status = " + ConstsStatus.ACTIVE)
-    public UserInfo findByUsername(String username);
+    @Select("select * from  mxk_userinfo where username = #{username} and status = " + ConstsStatus.ACTIVE)
+    public UserInfo findByUsername(@Param("username")String username);
+    
+    @Select("select * from  mxk_userinfo where username = #{username} and instid = #{instId} and status = " + ConstsStatus.ACTIVE)
+    public UserInfo findByUsernameAndInstId(@Param("username")String username,@Param("instId")String instId);
     
     @Select("select * from  mxk_userinfo where ( email = #{value} or mobile= #{value} ) and status = " + ConstsStatus.ACTIVE)
     public UserInfo findByEmailMobile(String emailMobile);
@@ -74,6 +78,6 @@ public interface UserInfoMapper  extends IJpaMapper<UserInfo,String>{
     @Update("update mxk_userinfo set gridlist =  #{gridList} where id = #{id}")
     public int     updateGridList(UserInfo userInfo) ;
     
-    @Update("update mxk_userinfo set status =  #{status} where id = #{id}")
+    @Update("update mxk_userinfo set status =  #{status} where id = #{id} and instid = #{instId} ")
        public int     updateStatus(UserInfo userInfo) ;
 }

+ 2 - 0
maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/service/UserInfoService.java

@@ -46,6 +46,8 @@ public interface UserInfoService extends IJpaService<UserInfo,String> {
 
     public UserInfo findByUsername(String username) ;
     
+    public UserInfo findByUsernameAndInstId(String username,String instId);
+    
     public UserInfo findByEmailMobile(String emailMobile) ;
     
     public UserInfo findByAppIdAndUsername(String appId,String username);

+ 5 - 0
maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/service/impl/UserInfoServiceImpl.java

@@ -376,4 +376,9 @@ public class UserInfoServiceImpl extends JpaServiceImpl<UserInfoMapper,UserInfo,
         return getMapper().updateStatus(userInfo) > 0;
     }
 
+	@Override
+	public UserInfo findByUsernameAndInstId(String username, String instId) {
+		return getMapper().findByUsernameAndInstId(username,instId) ;
+	}
+
 }

+ 2 - 0
maxkey-persistence/src/main/resources/org/dromara/maxkey/persistence/mapper/xml/mysql/UserInfoMapper.xml

@@ -110,6 +110,7 @@
 			passwordlastsettime		=	current_timestamp
 		where 
 			id	=	#{userId}
+			and instid = #{instId} 
     </update>
     
     <update id="updateSharedSecret" parameterType="UserInfo" >
@@ -162,6 +163,7 @@
 			modifieddate		=	current_timestamp
 		where 
 			id	=	#{id}
+			and instid = #{instId} 
     </update>
     
     <update id="updateEmail" parameterType="UserInfo" >

+ 9 - 6
maxkey-webs/maxkey-web-mgt/src/main/java/org/dromara/maxkey/web/idm/controller/UserInfoController.java

@@ -90,6 +90,7 @@ public class UserInfoController {
     @GetMapping(value={"/query"}, produces = {MediaType.APPLICATION_JSON_VALUE})
     public Message<?> query(@ModelAttribute UserInfo userInfo,@CurrentUser UserInfo currentUser) {
         logger.debug("-query  :" + userInfo);
+        userInfo.setInstId(currentUser.getInstId());
         if (userInfoService.query(userInfo)!=null) {
              return new Message<UserInfo>(Message.SUCCESS);
         } else {
@@ -98,15 +99,15 @@ public class UserInfoController {
     }
     
     @GetMapping(value = { "/get/{id}" }, produces = {MediaType.APPLICATION_JSON_VALUE})
-    public Message<?> get(@PathVariable String id) {
-        UserInfo userInfo=userInfoService.get(id);
+    public Message<?> get(@PathVariable String id,@CurrentUser UserInfo currentUser) {
+        UserInfo userInfo=userInfoService.get(id,currentUser.getInstId());
         userInfo.trans();
         return new Message<UserInfo>(userInfo);
     }
     
     @GetMapping(value = { "/getByUsername/{username}" }, produces = {MediaType.APPLICATION_JSON_VALUE})
-    public Message<?> getByUsername(@PathVariable String username) {
-        UserInfo userInfo=userInfoService.findByUsername(username);
+    public Message<?> getByUsername(@PathVariable String username,@CurrentUser UserInfo currentUser) {
+        UserInfo userInfo=userInfoService.findByUsernameAndInstId(username,currentUser.getInstId());
         userInfo.trans();
         return new Message<UserInfo>(userInfo);
     }
@@ -167,7 +168,7 @@ public class UserInfoController {
     public Message<?> delete(@RequestParam List<String> ids,@CurrentUser UserInfo currentUser) {
         logger.debug("-delete  ids : {} " , ids);
         
-        if (userInfoService.deleteBatch(ids)) {
+        if (userInfoService.deleteBatch(ids,currentUser.getInstId())) {
             systemLog.insert(
                     ConstsEntryType.USERINFO, 
                     ids, 
@@ -211,6 +212,7 @@ public class UserInfoController {
             @RequestBody ChangePassword changePassword,
             @CurrentUser UserInfo currentUser) {
         logger.debug("UserId {}",changePassword.getUserId());
+        changePassword.setInstId(currentUser.getInstId());
         changePassword.setPasswordSetType(ConstsPasswordSetType.PASSWORD_NORMAL);
         if(userInfoService.changePassword(changePassword,true)) {
             systemLog.insert(
@@ -254,8 +256,9 @@ public class UserInfoController {
      * @return
      */
     @PutMapping("/updateAuthnType")
-    public Message<UserInfo> updateAuthnType(@RequestBody UserInfo userInfo) {
+    public Message<UserInfo> updateAuthnType(@RequestBody UserInfo userInfo,@CurrentUser UserInfo currentUser) {
         logger.debug("updateAuthnType {}",userInfo);
+        userInfo.setInstId(currentUser.getInstId());
         if (userInfoService.updateAuthnType(userInfo)) {
             return new Message<>(Message.SUCCESS);
         }