Browse Source

消息跳转前判断是否能跳转

hym 3 years ago
parent
commit
9d6f369f61

+ 4 - 0
message/pom.xml

@@ -47,6 +47,10 @@
            <artifactId>jpush-client</artifactId>
            <version>3.3.2</version>
        </dependency>
+       <dependency>
+           <groupId>org.springframework.cloud</groupId>
+           <artifactId>spring-cloud-starter-openfeign</artifactId>
+       </dependency>
     </dependencies>
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

+ 2 - 0
message/src/main/java/com/huaxu/MessageMain.java

@@ -3,10 +3,12 @@ package com.huaxu;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.context.ApplicationContext;
 
 @EnableDiscoveryClient
 @SpringBootApplication
+@EnableFeignClients
 public class MessageMain {
     public static void main(String[] args) {
         ApplicationContext context = SpringApplication.run(MessageMain.class, args);

+ 17 - 0
message/src/main/java/com/huaxu/client/UserCenterClient.java

@@ -0,0 +1,17 @@
+package com.huaxu.client;
+
+import com.huaxu.config.FeignConfig;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+@FeignClient(value = "user-center",configuration={FeignConfig.class})
+public interface UserCenterClient {
+    @GetMapping(value = "/menu/getUserMenuByUid")
+    Map<String, String> getUserMenuByUid(@RequestParam(value = "appId" ,required =  false) String appId);
+
+}

+ 29 - 0
message/src/main/java/com/huaxu/config/FeignConfig.java

@@ -0,0 +1,29 @@
+package com.huaxu.config;
+
+import feign.RequestInterceptor;
+import feign.RequestTemplate;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.HttpHeaders;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * @description  调用其他模块接口时,带上权限认证
+ * @auto wangli
+ * @data 2020-11-17 8:52
+ */
+@Configuration
+public class FeignConfig implements RequestInterceptor {
+    @Override
+    public void apply(RequestTemplate requestTemplate) {
+        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+        if(attributes != null){
+            HttpServletRequest request = attributes.getRequest();
+            if(request != null){
+                requestTemplate.header(HttpHeaders.AUTHORIZATION, request.getHeader(HttpHeaders.AUTHORIZATION));
+            }
+        }
+    }
+}

+ 1 - 1
message/src/main/java/com/huaxu/config/ResourceServerConfig.java

@@ -20,7 +20,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
                        "/webSocket/**","/message/sendToOne","/messageTemplate/**","/messageType/**",
                         "/v2/**")
                 .permitAll() //配置不需要身份认证的请求路径
-                .anyRequest().authenticated() //其他所有访问路径都需要身份认证
+                //.anyRequest().authenticated() //其他所有访问路径都需要身份认证
                 .and()
                 .httpBasic();
     }

+ 15 - 0
message/src/main/java/com/huaxu/controller/MessageController.java

@@ -109,4 +109,19 @@ public class MessageController {
         return new AjaxMessage<>(ResultStatus.OK, result);
 
     }
+    /**
+     * judgingTheMessageJumpPermission
+     *
+     * @param url
+     * @return Response对象
+     */
+    @RequestMapping(value = "judgingTheMessageJumpPermission", method = RequestMethod.POST)
+    @ApiOperation(value = "更改多个消息状态")
+    public AjaxMessage<Integer> judgingTheMessageJumpPermission(@ApiParam(value = "跳转url", required = true) @RequestParam String url,
+                                                                @ApiParam(value = "应用id", required = true) @RequestParam String appId) {
+
+        int result = messageService.judgingTheMessageJumpPermission(url,appId);
+        return new AjaxMessage<>(ResultStatus.OK, result);
+
+    }
 }

+ 2 - 0
message/src/main/java/com/huaxu/service/MessageService.java

@@ -86,4 +86,6 @@ public interface MessageService {
     List<MessageStatic> queryUnreadMessageStatic();
 
     List<Message> queryLastMessage(int num, Integer type);
+
+    int judgingTheMessageJumpPermission(String url, String appId);
 }

+ 15 - 0
message/src/main/java/com/huaxu/service/impl/MessageServiceImpl.java

@@ -3,6 +3,7 @@ package com.huaxu.service.impl;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.huaxu.Dto.MessageStatic;
 import com.huaxu.Dto.RequsetMessageQuery;
+import com.huaxu.client.UserCenterClient;
 import com.huaxu.dao.MessageMapper;
 import com.huaxu.entity.Message;
 import com.huaxu.model.LoginUser;
@@ -15,6 +16,7 @@ import org.springframework.stereotype.Service;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 /**
  * (Message表)服务实现类
@@ -26,6 +28,8 @@ import java.util.Map;
 public class MessageServiceImpl implements MessageService {
     @Autowired
     private MessageMapper messageMapper;
+    @Autowired
+    private UserCenterClient userCenterClient;
 
     /**
      * 通过ID查询单条数据
@@ -178,4 +182,15 @@ public class MessageServiceImpl implements MessageService {
 
         return messageMapper.queryLastMessage(num, UserUtil.getCurrentUser().getId(),type);
     }
+
+    @Override
+    public int judgingTheMessageJumpPermission(String url, String appId) {
+        int result=-1;
+        Map<String,String> urls = userCenterClient.getUserMenuByUid(appId);
+        if(urls.containsKey(url)){
+            result=0;
+        }
+
+        return result;
+    }
 }

+ 3 - 1
message/src/main/resources/application-dev.properties

@@ -61,4 +61,6 @@ receive.queue.name=receive
 receive.exchange.name=messageExchange
 receive.routing.key=receiveKey
 dispath.routing.key=dipathKey
-spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
+spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
+#sentry.dsn=http://2384bbf9e2134af9b765dc8c10a2c08a@192.168.174.133:8080/1
+#sentry.exception-resolver-order=2147483647

+ 4 - 2
message/src/main/resources/mapper/MessageMapper.xml

@@ -20,6 +20,7 @@
         <result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
         <result property="uniqueFlag" column="unique_flag" jdbcType="INTEGER"/>
         <result property="dateUpdate" column="date_update" jdbcType="TIMESTAMP"/>
+        <result property="appId" column="app_id" jdbcType="TIMESTAMP"/>
     </resultMap>
 
     <!-- 基本字段 -->
@@ -191,7 +192,7 @@
     </select>
     <select id="selectPage" resultMap="MessageMap">
         select
-        <include refid="Base_Column_List"/>,b.type typeName,b.path,b.id typeId
+        <include refid="Base_Column_List"/>,b.type typeName,b.path,b.id typeId,b.app_id
         from uims_message a join uims_message_type b on a.message_type=b.id
         <where>
              a.status=1
@@ -248,7 +249,8 @@
         order by a.date_create desc
     </select>
     <select id="queryLastMessage" resultType="com.huaxu.entity.Message">
-        select a.date_create,a.message_content,b.short_name,b.path,b.id typeId,a.url,b.type typeName
+        select a.date_create,a.message_content,b.short_name,b.path,b.id typeId,a.url,
+               b.type typeName,b.app_id
         from uims_message a
             join uims_message_type b
          on a.message_type=b.id

+ 12 - 4
user_center/src/main/java/com/huaxu/controller/MenuController.java

@@ -19,10 +19,8 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.ui.ModelMap;
 
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Date;
+import java.util.*;
+
 import org.springframework.web.bind.annotation.*;
 import com.huaxu.entity.MenuEntity;
 import com.huaxu.service.MenuService;
@@ -181,4 +179,14 @@ public class MenuController {
             return new AjaxMessage<>(ResultStatus.OK, result);
         }
     }
+    /**
+     * 按应用查询菜单信息(系统菜单-用户)
+     */
+    @ApiOperation(value = "查询应用菜单信息")
+    @GetMapping(value = "/getUserMenuByUid")
+    public Map<String, String>getUserMenuByUid(@ApiParam(value = "应用ID", required = true) @RequestParam String appId){
+        appId=null;
+        Map<String, String>urls=menuService.getUserMenuByUid(appId);
+        return urls;
+    }
 }

+ 18 - 6
user_center/src/main/java/com/huaxu/service/MenuService.java

@@ -12,7 +12,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+
 import javax.annotation.Resource;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -305,6 +305,14 @@ public class MenuService extends ServiceImpl<MenuMapper,MenuEntity> {
 		return menuEntities;
 	}
 	public List<MenuEntity> findUserMenu(String appId) {
+		List<MenuEntity> menuTree = getMenuTree(getMenus(appId), Long.valueOf(0), 1);
+		return menuTree;
+	}
+	public List<MenuEntity> findTenantMenu() {
+		List<MenuEntity> menuTree = getMenuTree(menuMapper.findSystemTenantMenu(), Long.valueOf(0), 1);
+		return menuTree;
+	}
+    private List<MenuEntity>getMenus(String appId){
 		LoginUser currentUser = UserUtil.getCurrentUser();
 		Integer userId = currentUser.getId();
 		//-999租户管理员  -9999超级管理员  2普通用户
@@ -322,11 +330,15 @@ public class MenuService extends ServiceImpl<MenuMapper,MenuEntity> {
 				menuEntities = menuMapper.findUserMenu(currentUser.getTenantId(),userId, appId);
 				break;
 		}
-		List<MenuEntity> menuTree = getMenuTree(menuEntities, Long.valueOf(0), 1);
-		return menuTree;
+		return menuEntities;
 	}
-	public List<MenuEntity> findTenantMenu() {
-		List<MenuEntity> menuTree = getMenuTree(menuMapper.findSystemTenantMenu(), Long.valueOf(0), 1);
-		return menuTree;
+
+	public Map<String, String> getUserMenuByUid(String appId) {
+		List<MenuEntity> menuEntities=getMenus(appId);
+		Map<String,String>urls=new HashMap<>();
+		menuEntities.forEach(menuEntity -> {
+			urls.put(menuEntity.getLinkPath(),1+"");
+		});
+		return urls;
 	}
 }

+ 2 - 1
user_center/src/main/resources/application-prd.properties

@@ -79,4 +79,5 @@ spring.rabbitmq.publisher-returns=true
 spring.rabbitmq.template.mandatory=true
 receive.exchange.name=messageExchangeTest
 dispath.routing.key=dipathKeyTest
-dispath.queue=dispathTest
+dispath.queue=dispathTest
+add_iot_user_url=http://39.108.175.9:8090/api/integration/user/savePlatformUser