Browse Source

增加首页默认报表接口

chenw 6 years ago
parent
commit
f1debe7933

+ 1 - 0
bi-auth/src/main/java/com/usoftchina/bi/auth/config/ConfigAdapter.java

@@ -25,6 +25,7 @@ public class ConfigAdapter implements WebMvcConfigurer {
         .addPathPatterns("/getUserList")
         .addPathPatterns("/*User*")
         .addPathPatterns("/*User*/*")
+        .addPathPatterns("/home/defaultDashboard/*")
         .addPathPatterns("/Connector/*").excludePathPatterns("/Connector/getListDataConnector")
         .excludePathPatterns("/Connector/getConnectorGroup")
         .excludePathPatterns("/getDashboardByCode")

+ 48 - 0
bi-server/src/main/java/com/usoftchina/bi/server/controller/dashboard/DefaultDashboardController.java

@@ -0,0 +1,48 @@
+package com.usoftchina.bi.server.controller.dashboard;
+
+import com.usoftchina.bi.core.base.RepCode;
+import com.usoftchina.bi.core.base.RepEntity;
+import com.usoftchina.bi.server.model.pojo.annotation.CheckToken;
+import com.usoftchina.bi.server.service.dashboard.DefaultDashboardService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 设置首页默认报表
+ * @Author chenwei
+ * @Date 2019-05-31
+ */
+@RestController
+@Api(description = "设置首页默认报表相关接口")
+@RequestMapping("/home/defaultDashboard")
+public class DefaultDashboardController {
+
+    @Autowired
+    private DefaultDashboardService defaultDashboardService;
+
+    @GetMapping("/read/{userId}")
+    @CheckToken
+    @ApiOperation(value = "查看用户设置的首页默认报表", notes = "查看用户设置的首页默认报表", response = RepEntity.class)
+    public RepEntity read(@RequestHeader String token, @PathVariable("userId") int userId){
+        return new RepEntity(RepCode.success, defaultDashboardService.read(userId));
+    }
+
+    @PostMapping("/save/{userId}/{dashboardId}")
+    @CheckToken
+    @ApiOperation(value = "设置首页默认报表", notes = "设置首页默认报表", response = RepEntity.class)
+    public RepEntity save(@RequestHeader String token, @PathVariable("userId") int userId, @PathVariable("dashboardId") int dashboardId){
+        defaultDashboardService.save(userId, dashboardId);
+        return new RepEntity(RepCode.success, null);
+    }
+
+    @PostMapping("/delete/{userId}/{dashboardId}")
+    @CheckToken
+    @ApiOperation(value = "取消首页默认报表", notes = "取消首页默认报表", response = RepEntity.class)
+    public RepEntity delete(@RequestHeader String token, @PathVariable("userId") int userId, @PathVariable("dashboardId") int dashboardId){
+        defaultDashboardService.delete(userId, dashboardId);
+        return new RepEntity(RepCode.success, null);
+    }
+
+}

+ 1 - 1
bi-server/src/main/java/com/usoftchina/bi/server/dao/dashboard/DashboardFavoriteMapper.java

@@ -13,7 +13,7 @@ import java.util.Map;
 @Repository
 public interface DashboardFavoriteMapper {
 
-    @Select("SELECT ID AS id, BD_NAME AS name FROM BI_DASHBOARDS WHERE ID IN (SELECT DASHBOARD_ID FROM BI_DASHBOARDS_FAVORITE WHERE USER_ID = #{userId})")
+    @Select("SELECT ID AS \"id\", BD_NAME AS \"name\" FROM BI_DASHBOARDS WHERE ID IN (SELECT DASHBOARD_ID FROM BI_DASHBOARDS_FAVORITE WHERE USER_ID = #{userId})")
     List<Map<String, String>> list(@Param("userId") int userId);
 
     @Insert("INSERT INTO BI_DASHBOARDS_FAVORITE(USER_ID, DASHBOARD_ID) VALUES(#{userId,jdbcType=INTEGER},#{dashboardId,jdbcType=INTEGER})")

+ 27 - 0
bi-server/src/main/java/com/usoftchina/bi/server/dao/dashboard/DefaultDashboardMapper.java

@@ -0,0 +1,27 @@
+package com.usoftchina.bi.server.dao.dashboard;
+
+import org.apache.ibatis.annotations.*;
+import org.springframework.stereotype.Repository;
+
+import java.util.Map;
+
+/**
+ * @Author chenwei
+ * @Date 2019-05-31
+ */
+@Mapper
+@Repository
+public interface DefaultDashboardMapper {
+
+    @Select("SELECT DASHBOARD_ID AS \"id\", BD_NAME AS \"name\" FROM BI_DASHBOARDS_USER LEFT JOIN BI_DASHBOARDS ON ID = DASHBOARD_ID WHERE USER_ID = #{userId}")
+    Map<String, String> selectDashboardIdByUserId(@Param("userId") int userId);
+
+    @Insert("INSERT INTO BI_DASHBOARDS_USER(USER_ID,DASHBOARD_ID) VALUES(#{userId,jdbcType=INTEGER},#{dashboardId,jdbcType=INTEGER})")
+    void save(@Param("userId") int userId, @Param("dashboardId") int dashboardId);
+
+    @Delete("DELETE FROM BI_DASHBOARDS_USER WHERE USER_ID = #{userId,jdbcType=INTEGER} AND DASHBOARD_ID = #{dashboardId,jdbcType=INTEGER}")
+    void delete(@Param("userId") int userId, @Param("dashboardId") int dashboardId);
+
+    @Delete("DELETE FROM BI_DASHBOARDS_USER WHERE USER_ID = #{userId,jdbcType=INTEGER}")
+    void deleteByUserId(@Param("userId") int userId);
+}

+ 4 - 0
bi-server/src/main/java/com/usoftchina/bi/server/service/dashboard/DashboardsService.java

@@ -51,6 +51,8 @@ public class DashboardsService {
     private ChartsConfigMapper chartsConfigMapper;
     @Autowired
     private MessageLogService messageLogService;
+    @Autowired
+    private DefaultDashboardService defaultDashboardService;
 
     private static final Logger LOGGER = LoggerFactory.getLogger(DashboardsService.class);
 
@@ -174,6 +176,8 @@ public class DashboardsService {
         dashboardsMapper.delDashboards(id);
         //删除报表-图表关联关系
         dashboardsMapper.deleteDashboardChartRelation(id);
+        //删除报表-首页默认报表
+        defaultDashboardService.delete(userId, id);
         messageLogService.delete("报表", name, BaseContextHolder.getUserName(), null);
         return new RepEntity(RepCode.success);
     }

+ 34 - 0
bi-server/src/main/java/com/usoftchina/bi/server/service/dashboard/DefaultDashboardService.java

@@ -0,0 +1,34 @@
+package com.usoftchina.bi.server.service.dashboard;
+
+import com.usoftchina.bi.server.dao.dashboard.DefaultDashboardMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ * @Author chenwei
+ * @Date 2019-05-31
+ */
+@Service
+public class DefaultDashboardService {
+
+    @Autowired
+    private DefaultDashboardMapper defaultDashboardMapper;
+
+    public Map<String, String> read(int userId) {
+        return defaultDashboardMapper.selectDashboardIdByUserId(userId);
+    }
+
+    public void save(int userId, int dashboardId) {
+        //先删除用户已设置的默认报表
+        defaultDashboardMapper.deleteByUserId(userId);
+
+        defaultDashboardMapper.save(userId, dashboardId);
+    }
+
+    public void delete(int userId, int dashboardId) {
+        defaultDashboardMapper.delete(userId, dashboardId);
+    }
+
+}