소스 검색

编号保存校验

chenw 6 년 전
부모
커밋
2210916049

+ 8 - 1
bi-server/src/main/java/com/usoftchina/bi/server/controller/dashboard/DashboardsController.java

@@ -66,13 +66,20 @@ public class DashboardsController {
     /*
     查看单个看板
      */
-    @ApiOperation(value = "单个看板", notes = "单个看板", response = RepEntity.class)
+    @ApiOperation(value = "单个看板", notes = "查看单个看板(通过看板ID)", response = RepEntity.class)
     @CheckToken
     @GetMapping("/getDashboards")
     public RepEntity getDashboards(@RequestHeader String token,@RequestParam("id") int id){
         return dashboardsService.getDashboards(token, id);
     }
 
+    @ApiOperation(value = "单个看板", notes = "查看单个看板(通过看板编号)", response = RepEntity.class)
+    @CheckToken
+    @GetMapping("/getDashboardByCode")
+    public RepEntity getDashboardByCode(@RequestHeader String token,@RequestParam("code") String code){
+        return dashboardsService.getDashboardByCode(token, code);
+    }
+
     /*
     转交看板
      */

+ 26 - 8
bi-server/src/main/java/com/usoftchina/bi/server/dao/dashboard/DashboardsMapper.java

@@ -18,9 +18,9 @@ public interface DashboardsMapper {
     插入
      */
     @Insert("insert into " +
-            "bi_dashboards(id, bd_name,bd_note,CONFIGURATION,create_by, filters, create_date, BD_THUMBNAIL,relation_columns, create_id)" +
+            "bi_dashboards(id, bd_name,bd_note,CONFIGURATION,create_by, filters, create_date, BD_THUMBNAIL,relation_columns, create_id, bd_code)" +
             "values(#{id}, #{bdName},#{bdNote},#{bdConfiguration},#{createBy}, #{filters}, " +
-            "to_date(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'YYYY-MM-DD hh24:mi:ss'), #{thumbnail},#{relationColumns}, #{createId})")
+            "to_date(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'YYYY-MM-DD hh24:mi:ss'), #{thumbnail},#{relationColumns}, #{createId}, #{bdCode)")
     @SelectKey(before=true,keyProperty="id",resultType=Integer.class,statement="SELECT BI_DASHBOARDS_SEQUENCE.nextval from dual",keyColumn = "id")
     void setDashboards(Dashboards dashboards);
 
@@ -30,9 +30,9 @@ public interface DashboardsMapper {
      * @param array
      */
     @Insert("<script>"
-            + "INSERT INTO BI_DASHBOARDS_CHART(DASHBOARD_ID, CHART_ID) VALUES"
-            + "<foreach collection=\"array\" item=\"chartId\" open=\"\" close=\"\" separator=\",\">"
-            + "(#{id, jdbcType=INTEGER}, #{chartId, jdbcType=INTEGER})"
+            + "INSERT INTO BI_DASHBOARDS_CHART(DASHBOARD_ID, CHART_ID) "
+            + "<foreach collection=\"array\" item=\"chartId\" open=\"\" close=\"\" separator=\"UNION ALL\">"
+            + "SELECT #{id}, #{chartId} FROM DUAL"
             + "</foreach>"
             + "</script>")
     void saveDashboardChartRelation(@Param("id") int id, @Param("array") String[] array);
@@ -55,11 +55,25 @@ public interface DashboardsMapper {
             "<if test=\"thumbnail != null\"> , BD_THUMBNAIL = #{thumbnail} </if>" +
             "<if test=\"relationColumns != null\">, relation_columns = #{relationColumns} </if>"+
             "<if test=\"filters != null\">, filters = #{filters} </if>"+
+            "<if test=\"bdCode != null\">, BD_CODE = #{bdCode} </if>"+
             " ,UPDATE_DATE = to_date(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'YYYY-MM-DD hh24:mi:ss') " +
             "where id = #{id}" +
             "</script>")
     void updateDashboards(Dashboards dashboards);
 
+    @Select("<script>"
+            + "SELECT COUNT(*) FROM BI_DASHBOARDS "
+            + "<where>"
+            + "<if test=\"id != 0\">"
+            + "id != #{id}"
+            + "</if>"
+            + "<if test=\"code != null\">"
+            + " and bd_code = #{code}"
+            + "</if>"
+            + "</where>"
+            + "</script>")
+    int countBdCodeById(@Param("code") String code, @Param("id") int id);
+
     /*
     删除看板
      */
@@ -76,7 +90,7 @@ public interface DashboardsMapper {
     /*
     查询看板列表
      */
-    @Select("select id, bd_note as bdNote, bd_name as bdName, CONFIGURATION as bdConfiguration, CREATE_BY as createBy, create_id as createId, CREATE_DATE as createDate, BD_THUMBNAIL as thumbnail, filters, demo  " +
+    @Select("select id, bd_note as bdNote, bd_name as bdName, CONFIGURATION as bdConfiguration, CREATE_BY as createBy, create_id as createId, CREATE_DATE as createDate, BD_THUMBNAIL as thumbnail, filters, demo, bd_code  " +
             "from BI_DASHBOARDS where id in " +
             " (select bo_da_id from bi_DASHBOARDS_object " +
             "where (bo_type = '0' and bo_ob_id in (select br_user_group from bi_user_rel_groups where br_user_id= #{userId})) " +
@@ -87,7 +101,7 @@ public interface DashboardsMapper {
     /*
     查询看板
      */
-    @Select("select id, bd_note as bdNote, bd_name as bdName, CONFIGURATION as bdConfiguration, CREATE_BY as createBy, create_id as createId, CREATE_DATE as createDate, BD_THUMBNAIL as thumbnail, relation_columns as relationColumns, filters, demo " +
+    @Select("select id, bd_note as bdNote, bd_name as bdName, CONFIGURATION as bdConfiguration, CREATE_BY as createBy, create_id as createId, CREATE_DATE as createDate, BD_THUMBNAIL as thumbnail, relation_columns as relationColumns, filters, demo, bd_code " +
             " from BI_DASHBOARDS where (id in " +
             " (select bo_da_id from bi_DASHBOARDS_object " +
             " where (bo_type = '0' and bo_ob_id in (select br_user_group from bi_user_rel_groups where br_user_id= #{userId}))" +
@@ -104,10 +118,14 @@ public interface DashboardsMapper {
             @Result(column = "relationColumns", property = "relationColumns", jdbcType = JdbcType.VARCHAR),
             @Result(column = "filters", property = "filters", jdbcType = JdbcType.VARCHAR),
             @Result(column = "demo", property = "demo", jdbcType = JdbcType.BOOLEAN),
-            @Result(column = "id", property = "chartIds", one = @One(select = "getChartIdsById"))
+            @Result(column = "id", property = "chartIds", one = @One(select = "getChartIdsById")),
+            @Result(column = "bd_code", property = "bdCode", jdbcType = JdbcType.VARCHAR)
     })
     Dashboards getDashboards(@Param("userId") int userId, @Param("id") int id);
 
+    @Select("SELECT ID FROM BI_DASHBOARDS WHERE BD_CODE = #{code}")
+    int getIdByCode(String code);
+
     /*
     看板移交
      */

+ 9 - 0
bi-server/src/main/java/com/usoftchina/bi/server/model/po/Dashboards.java

@@ -19,8 +19,17 @@ public class Dashboards {
     private Date reDate;
     private String filters;
     private String chartIds;
+    private String bdCode;
     private boolean demo;
 
+    public String getBdCode() {
+        return bdCode;
+    }
+
+    public void setBdCode(String bdCode) {
+        this.bdCode = bdCode;
+    }
+
     public String getChartIds() {
         return chartIds;
     }

+ 9 - 0
bi-server/src/main/java/com/usoftchina/bi/server/model/vo/configVo/DashboardsInfo.java

@@ -11,6 +11,15 @@ public class DashboardsInfo {
     private String relationColumns;
     private String filters;
     private String chartIds;
+    private String bdCode;
+
+    public String getBdCode() {
+        return bdCode;
+    }
+
+    public void setBdCode(String bdCode) {
+        this.bdCode = bdCode;
+    }
 
     public String getChartIds() {
         return chartIds;

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

@@ -1,5 +1,6 @@
 package com.usoftchina.bi.server.service.dashboard;
 
+import com.usoftchina.bi.core.exception.MyException;
 import com.usoftchina.bi.server.dao.dashboard.DashboardsMapper;
 import com.usoftchina.bi.server.dao.user.UserMapper;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -36,6 +37,8 @@ public class DashboardsService {
     保存看板
      */
     public RepEntity setDashboards(String token, DashboardsInfo dashboardsInfo) {
+        //校验报表编号是否已存在
+        validCode(dashboardsInfo.getBdCode(), dashboardsInfo.getId());
         Map<String, String> stringMap = GetTokenDataUtil.getTokenData(token);
         int userId = Integer.parseInt(stringMap.get("id"));
         String name = stringMap.get("name");
@@ -60,6 +63,8 @@ public class DashboardsService {
     更新看板
      */
     public RepEntity updateDashboards(String token, DashboardsInfo dashboardsInfo) {
+        //校验报表编号是否已存在
+        validCode(dashboardsInfo.getBdCode(), dashboardsInfo.getId());
         Map<String, String> stringMap = GetTokenDataUtil.getTokenData(token);
         int userId = Integer.parseInt(stringMap.get("id"));
         String name = stringMap.get("name");
@@ -97,6 +102,18 @@ public class DashboardsService {
         return new RepEntity(RepCode.success);
     }
 
+    /**
+     * 校验编号是否存在
+     * @param code
+     * @param id
+     */
+    private void validCode(String code, int id) {
+        int count = dashboardsMapper.countBdCodeById(code, id);
+        if (count > 0) {
+            throw new MyException("编号" + code + "已存在");
+        }
+    }
+
     /*
     删除看板
      */
@@ -141,6 +158,24 @@ public class DashboardsService {
         return new RepEntity(RepCode.success, dashboards);
     }
 
+    /**
+     * 通过code查看单个看板
+     * @param token
+     * @param code
+     * @return
+     */
+    public RepEntity getDashboardByCode(String token, String code) {
+        Map<String, String> stringMap = GetTokenDataUtil.getTokenData(token);
+        int userId = Integer.parseInt(stringMap.get("id"));
+        int id = dashboardsMapper.getIdByCode(code);
+        Dashboards dashboards = dashboardsMapper.getDashboards(userId, id);
+        if (dashboards == null){
+            return new RepEntity(RepCode.DashboardNonExistent);
+        }
+        return new RepEntity(RepCode.success, dashboards);
+    }
+
+
     /*
     转交看板
      */