Преглед изворни кода

远程调用用户和机构信息

zhoutg пре 6 година
родитељ
комит
77094d4ebc

+ 8 - 0
diagbotman-service/src/main/java/com/diagbot/client/UserServiceClient.java

@@ -3,11 +3,16 @@ package com.diagbot.client;
 import com.diagbot.client.hystrix.UserServiceHystrix;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.User;
+import com.diagbot.entity.UserOrgVO;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestHeader;
 
+import java.util.List;
+import java.util.Map;
+
 
 /**
  * @Description: 调用用户服务
@@ -19,6 +24,9 @@ public interface UserServiceClient {
 
     @PostMapping(value = "/user/{username}")
     RespDTO<User> getUser(@RequestHeader(value = "Authorization") String token, @PathVariable("username") String username);
+
+    @PostMapping(value = "/user/getUserAndOrg")
+    RespDTO<Map<String, UserOrgVO>> getUserAndOrg(@RequestBody List<Long> userIds);
 }
 
 

+ 12 - 0
diagbotman-service/src/main/java/com/diagbot/client/hystrix/UserServiceHystrix.java

@@ -3,8 +3,13 @@ package com.diagbot.client.hystrix;
 import com.diagbot.client.UserServiceClient;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.User;
+import com.diagbot.entity.UserOrgVO;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+import java.util.Map;
+
 
 /**
  * @Description: 调用用户服务
@@ -12,6 +17,7 @@ import org.springframework.stereotype.Component;
  * @time: 2018/8/6 9:52
  */
 @Component
+@Slf4j
 public class UserServiceHystrix implements UserServiceClient {
 
     @Override
@@ -20,4 +26,10 @@ public class UserServiceHystrix implements UserServiceClient {
         System.out.println(username);
         return null;
     }
+
+    @Override
+    public RespDTO<Map<String, UserOrgVO>> getUserAndOrg(List<Long> userIds) {
+        log.error("【hystrix】调用{}异常","getUserAndOrg");
+        return null;
+    }
 }

+ 29 - 0
diagbotman-service/src/main/java/com/diagbot/entity/UserOrgVO.java

@@ -0,0 +1,29 @@
+package com.diagbot.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 用户和机构信息
+ * @Author: ztg
+ * @Date: 2018/9/20 10:32
+ */
+
+@Getter
+@Setter
+public class UserOrgVO implements Serializable{
+	
+	 private static final long serialVersionUID = 1L;
+
+	    private Long userId;//用户ID
+	    private String username;// 用户名
+	    private String linkman;//联系人
+	    private String email;// 邮箱
+	    private Long orgId;//机构ID
+	    private String orgName;//机构名称
+		private String isReject; //是否通过认证
+		private Integer auStatus;  //认证状态(0:未认证,1:已认证,2:认证中)
+
+}

+ 1 - 0
user-service/src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -38,6 +38,7 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/userInfo/updateUserInfoAll").permitAll()
                 .antMatchers("/userInfo/updateDeleted").permitAll()
                 .antMatchers("/user/index").permitAll()
+                .antMatchers("/user/getUserAndOrg").permitAll()
                 .antMatchers("/**").authenticated();
 //        .antMatchers("/**").permitAll();
     }

+ 1 - 0
user-service/src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -50,6 +50,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/userInfo/getUserInfoPag", request)
                 || matchers("/user/getPermission", request)
                 || matchers("/user/index", request)
+                || matchers("/user/getUserAndOrg", request)
                 || matchers("/userInfo/updateUserInfoAll", request)
                 || matchers("/userInfo/updateDeleted", request)
                 

+ 29 - 0
user-service/src/main/java/com/diagbot/dto/UserOrgDTO.java

@@ -0,0 +1,29 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 用户和机构信息
+ * @Author: ztg
+ * @Date: 2018/9/20 10:32
+ */
+
+@Getter
+@Setter
+public class UserOrgDTO implements Serializable{
+	
+	 private static final long serialVersionUID = 1L;
+
+	    private Long userId;//用户ID
+	    private String username;// 用户名
+	    private String linkman;//联系人
+	    private String email;// 邮箱
+	    private Long orgId;//机构ID
+	    private String orgName;//机构名称
+		private String isReject; //是否通过认证
+		private Integer auStatus;  //认证状态(0:未认证,1:已认证,2:认证中)
+
+}

+ 16 - 0
user-service/src/main/java/com/diagbot/facade/UserFacade.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.diagbot.client.AuthServiceClient;
 import com.diagbot.dto.LoginDTO;
 import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.UserOrgDTO;
 import com.diagbot.entity.JWT;
 import com.diagbot.entity.Organization;
 import com.diagbot.entity.User;
@@ -205,6 +206,21 @@ public class UserFacade extends UserServiceImpl {
         return subMenu;
     }
 
+
+    //获取用户相关信息和机构信息
+    public Map<Long, UserOrgDTO> getUserAndOrg(List<Long> userIds) {
+        Map<Long, UserOrgDTO> data = new HashMap();
+        if(ListUtil.isEmpty(userIds)) {
+            return data;
+        }
+        List<UserOrgDTO> list = this.getUserOrgByIds(userIds);
+        for(UserOrgDTO bean : list) {
+            data.put(bean.getUserId(), bean);
+        }
+        return data;
+    }
+
+
     public RespDTO resetPassword(String username, String password, String diffPassword) {
         if (StringUtil.isBlank(username)){
             throw new CommonException(CommonErrorCode.PARAM_IS_NULL,

+ 7 - 0
user-service/src/main/java/com/diagbot/mapper/UserMapper.java

@@ -4,10 +4,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.diagbot.dto.UserInfoDTO;
+import com.diagbot.dto.UserOrgDTO;
 import com.diagbot.entity.User;
 import com.diagbot.vo.UserInfoOrganizationsVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -31,4 +33,9 @@ public interface UserMapper extends BaseMapper<User> {
     public Integer updateUserInfoAll(UserInfoOrganizationsVO userInfo);
     
     public Integer updateDeleted(@Param("map") Map<String ,String> map);
+
+    public List<User> getByIds(List<Long> ids);
+
+    public List<UserOrgDTO> getUserOrgDTOByIds(List<Long> ids);
+
 }

+ 6 - 0
user-service/src/main/java/com/diagbot/service/UserService.java

@@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.dto.UserInfoDTO;
+import com.diagbot.dto.UserOrgDTO;
 import com.diagbot.entity.User;
 import com.diagbot.vo.UserInfoOrganizationsVO;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -30,4 +32,8 @@ public interface UserService extends IService<User> {
 	Integer updateDeleted(Map<String, String> map);
 
     IPage<User> indexPage(Page<User> page, User user);
+
+    public List<User> getByIds(List<Long> ids);
+
+    public List<UserOrgDTO> getUserOrgByIds(List<Long> userIds);
 }

+ 16 - 0
user-service/src/main/java/com/diagbot/service/impl/UserServiceImpl.java

@@ -4,12 +4,15 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.dto.UserInfoDTO;
+import com.diagbot.dto.UserOrgDTO;
 import com.diagbot.entity.User;
 import com.diagbot.mapper.UserMapper;
 import com.diagbot.service.UserService;
 import com.diagbot.vo.UserInfoOrganizationsVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -23,6 +26,9 @@ import java.util.Map;
 @Service
 public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
 
+    @Autowired
+    UserMapper userMapper;
+
     public User findByName(String username){
         return baseMapper.findByName(username);
     }
@@ -53,5 +59,15 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         return baseMapper.indexPage(page, user);
     }
 
+    @Override
+    public List<User> getByIds(List<Long> ids) {
+        return userMapper.getByIds(ids);
+    }
+
+    @Override
+    public List<UserOrgDTO> getUserOrgByIds(List<Long> userIds) {
+        return userMapper.getUserOrgDTOByIds(userIds);
+    }
+
 
 }

+ 19 - 1
user-service/src/main/java/com/diagbot/web/UserController.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.LoginDTO;
 import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.UserOrgDTO;
 import com.diagbot.entity.Permission;
 import com.diagbot.entity.User;
 import com.diagbot.facade.PermissionFacade;
@@ -23,6 +24,8 @@ import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
 import javax.validation.Valid;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @Description: 用户操作API
@@ -77,6 +80,21 @@ public class UserController {
     }
 
 
+
+    /**
+     * @Description:
+     * @Author: ztg
+     * @Date: 2018/9/20 10:04
+     */
+    @PostMapping(value = "/getUserAndOrg")
+    @SysLogger("getUserAndOrg")
+    @ApiOperation(value = "获取用户和机构信息")
+    RespDTO<Map<Long,UserOrgDTO>> getUserAndOrg(@RequestBody List<Long> userIds) {
+        Map<Long, UserOrgDTO> result = userFacade.getUserAndOrg(userIds);
+        return RespDTO.onSuc(result);
+    }
+
+
     /**
      * @Description: 用来测试分页,未用
      * @Author: ztg
@@ -110,7 +128,7 @@ public class UserController {
     }
 
     @ApiOperation(value = "根据用户id获取用户信息", notes = "根据用户id获取用户信息")
-    @PostMapping("/getById")
+    @PostMapping("/getUserInfoByID")
     @SysLogger("getUserInfoByID")
     @ApiIgnore
     public RespDTO getUserInfoByID(Long id, Page page){

+ 107 - 73
user-service/src/main/resources/mapper/UserMapper.xml

@@ -17,6 +17,18 @@
         <result column="type" property="type" />
     </resultMap>
 
+	<resultMap id="UserOrgDTO" type="com.diagbot.dto.UserOrgDTO">
+		<id column="user_id" property="userId" />
+		<result column="username" property="username" />
+		<result column="linkman" property="linkman" />
+		<result column="email" property="email" />
+		<result column="org_id" property="orgId" />
+		<result column="org_name" property="orgName" />
+		<result column="is_reject" property="isReject" />
+		<result column="au_status" property="auStatus" />
+	</resultMap>
+
+
     <select id="findByName" resultMap="BaseResultMap" parameterType="java.lang.String">
         select * from sys_user
         where username = #{username} and is_deleted = 'N'
@@ -44,6 +56,28 @@
 		</if>
 	</select>
 
+	<select id="getByIds" resultMap="BaseResultMap">
+		select u.* from sys_user u where u.is_deleted = 'N'
+		and u.id in
+		<foreach collection="list" item="ids" open="(" close=")" separator=",">
+			#{ids}
+		</foreach>
+	</select>
+
+
+	<select id="getUserOrgDTOByIds" resultMap="UserOrgDTO">
+		select u.id user_id ,u.username username, u.email email, u.linkman linkman , org.id org_id, org.name  org_name, ua.is_reject is_reject, ua.status au_status
+		from sys_user u, sys_user_organization uo, sys_organization org , sys_user_authentication ua
+		where u.is_deleted = 'N' and uo.is_deleted = 'N' and org.is_deleted = 'N'
+		and u.id = uo.user_id and uo.organization_id = org.id and u.id = ua.user_id
+		and u.id in
+		<foreach collection="list" item="ids" open="(" close=")" separator=",">
+			#{ids}
+		</foreach>
+	</select>
+
+
+
 
 <!-- 	<select id="selectUserInfoListPage" resultMap="BaseResultMap">
 		select u.*
@@ -102,84 +136,84 @@
 	</select>
 	
 	<update id="updateUserInfoAll" parameterType="com.diagbot.vo.UserInfoOrganizationsVO" >
-	UPDATE sys_user u ,sys_user_organization a ,
-	sys_organization b ,sys_user_authentication c
-	SET  u.remark = "0" 
-	<if test="email != null">
-	    <if test="gmtModified !=null"> 
-	      ,u.gmt_modified=#{gmtModified}
-	   </if>
-	   <if test="modifier != modifier">
-	      ,u.modifier=#{modifier}
-	   </if>
-	  ,u.email=#{email}
-	</if>
-	<if test="principal != null || address != null || type != null">
-	     <if test="gmtModified !=null"> 
-	       ,b.gmt_modified=#{gmtModified}
-	     </if>
-	     <if test="modifier != null">
-	      ,b.modifier=#{modifier}
-	     </if>
-		<if test="principal != null">
-		  ,b.principal=#{principal}
-		</if>
-		<if test="address != null">
-		  ,b.address=#{address}
-		</if>
-		<if test="type != null">
-		  ,b.type=#{type}
-		</if>
-	</if>
-	
-	<if test="position != null || isReject != null || rejectType !=null || rejectComment !=null || status != null">
-	    <if test="gmtModified !=null">
-		  ,c.gmt_modified=#{gmtModified}
-		</if>
-		<if test="modifier != null">
-		  ,c.modifier=#{modifier}
-		</if>
-		<if test="position != null">
-		  ,c.position=#{position}
+		UPDATE sys_user u ,sys_user_organization a ,
+		sys_organization b ,sys_user_authentication c
+		SET  u.remark = "0"
+		<if test="email != null">
+			<if test="gmtModified !=null">
+			  ,u.gmt_modified=#{gmtModified}
+		   </if>
+		   <if test="modifier != modifier">
+			  ,u.modifier=#{modifier}
+		   </if>
+		  ,u.email=#{email}
 		</if>
-		<if test="isReject != null">
-		 ,c.is_reject=#{isReject}
+		<if test="principal != null || address != null || type != null">
+			 <if test="gmtModified !=null">
+			   ,b.gmt_modified=#{gmtModified}
+			 </if>
+			 <if test="modifier != null">
+			  ,b.modifier=#{modifier}
+			 </if>
+			<if test="principal != null">
+			  ,b.principal=#{principal}
+			</if>
+			<if test="address != null">
+			  ,b.address=#{address}
+			</if>
+			<if test="type != null">
+			  ,b.type=#{type}
+			</if>
 		</if>
-		<if test="rejectType !=null">
-		  ,c.reject_type=#{rejectType}
+
+		<if test="position != null || isReject != null || rejectType !=null || rejectComment !=null || status != null">
+			<if test="gmtModified !=null">
+			  ,c.gmt_modified=#{gmtModified}
+			</if>
+			<if test="modifier != null">
+			  ,c.modifier=#{modifier}
+			</if>
+			<if test="position != null">
+			  ,c.position=#{position}
+			</if>
+			<if test="isReject != null">
+			 ,c.is_reject=#{isReject}
+			</if>
+			<if test="rejectType !=null">
+			  ,c.reject_type=#{rejectType}
+			</if>
+			<if test="rejectComment !=null">
+			  ,c.reject_comment=#{rejectComment}
+			</if>
+			<if test="status != null">
+			  ,c.status = #{status}
+			</if>
 		</if>
-		<if test="rejectComment !=null">
-		  ,c.reject_comment=#{rejectComment}
+		WHERE u.id = #{userId}
+		AND c.user_id= #{userId}
+		AND a.user_id = #{userId}
+		AND a.organization_id =b.id
+	</update>
+
+	 <update id="updateDeleted" parameterType="java.util.Map">
+		UPDATE sys_user u ,sys_user_organization a ,
+		 sys_organization b,sys_user_authentication c
+		SET u.is_deleted = "Y",a.is_deleted= "Y",b.is_deleted= "Y",c.is_deleted="Y"
+		<if test="map.gmtModified !=null">
+		,u.gmt_modified=#{map.gmtModified}
+		,b.gmt_modified=#{map.gmtModified}
+		,c.gmt_modified=#{map.gmtModified}
 		</if>
-		<if test="status != null">
-		  ,c.status = #{status}
+		<if test="map.modifier != null">
+		,u.modifier=#{map.modifier}
+		,b.modifier=#{map.modifier}
+		,c.modifier=#{map.modifier}
 		</if>
-	</if>
-	WHERE u.id = #{userId} 
-	AND c.user_id= #{userId} 
-	AND a.user_id = #{userId} 
-	AND a.organization_id =b.id
-</update>
-
- <update id="updateDeleted" parameterType="java.util.Map">
-	UPDATE sys_user u ,sys_user_organization a ,
-	 sys_organization b,sys_user_authentication c
-	SET u.is_deleted = "Y",a.is_deleted= "Y",b.is_deleted= "Y",c.is_deleted="Y"
-	<if test="map.gmtModified !=null">
-	,u.gmt_modified=#{map.gmtModified}
-	,b.gmt_modified=#{map.gmtModified}
-	,c.gmt_modified=#{map.gmtModified}
-	</if>
-	<if test="map.modifier != null">
-	,u.modifier=#{map.modifier}
-	,b.modifier=#{map.modifier}
-	,c.modifier=#{map.modifier}
-	</if>
-	WHERE u.id = #{map.userId} 
-	AND c.user_id= #{map.userId} 
-	AND a.user_id = #{map.userId} 
-	AND a.organization_id =b.id
-</update>
+		WHERE u.id = #{map.userId}
+		AND c.user_id= #{map.userId}
+		AND a.user_id = #{map.userId}
+		AND a.organization_id =b.id
+	</update>
 
 
 </mapper>