修改top表格信息权限

This commit is contained in:
clay 2021-08-04 19:16:02 +08:00
parent 81728aa4c8
commit c8a3149a62
9 changed files with 35 additions and 17 deletions

View File

@ -17,7 +17,7 @@ export function getQuery(id) {
// 查询万能查询详细 // 查询万能查询详细
export function getTables() { export function getTables() {
return request({ return request({
url: '/top/', url: '/top/table',
method: 'get' method: 'get'
}) })
} }

View File

@ -112,7 +112,7 @@
size="small" size="small"
icon="el-icon-edit-outline" icon="el-icon-edit-outline"
@click="handleEditTable(scope.row)" @click="handleEditTable(scope.row)"
v-hasPermi="['tool:query:edit']" v-hasPermi="['top:edit']"
>编辑</el-button> >编辑</el-button>
<el-button <el-button
size="mini" size="mini"

View File

@ -48,10 +48,10 @@
<!--<el-button size="mini" @click="$parent.mdsLayoutHandler">MDS</el-button>--> <!--<el-button size="mini" @click="$parent.mdsLayoutHandler">MDS</el-button>-->
<!--<el-button size="mini" @click="$parent.dagreLayoutHandler">层次</el-button>--> <!--<el-button size="mini" @click="$parent.dagreLayoutHandler">层次</el-button>-->
<!--<el-button size="mini" @click="$parent.autoLayoutHandler">自动old</el-button>--> <!--<el-button size="mini" @click="$parent.autoLayoutHandler">自动old</el-button>-->
<el-button size="mini" @click="$parent.searchPreview">预览</el-button> <el-button size="mini" v-hasPermi="['top:preview']" @click="$parent.searchPreview">预览</el-button>
<!-- 返回到预览模式 --> <!-- 返回到预览模式 -->
<!-- <top-button size="mini" @click="$parent.changeModeHandler('preview')">返回</top-button>--> <!-- <top-button size="mini" @click="$parent.changeModeHandler('preview')">返回</top-button>-->
<top-button size="mini" @click="$parent.saveDataHandler">保存</top-button> <top-button size="mini" v-hasPermi="['top:edit']" @click="$parent.saveDataHandler">保存</top-button>
</div> </div>
</div> </div>
</template> </template>
@ -101,6 +101,7 @@ export default {
.right { .right {
display: inline-block; display: inline-block;
width: 30%; width: 30%;
padding-right: 10px;
text-align: right; text-align: right;
} }

View File

@ -4,21 +4,20 @@ import com.ebts.common.annotation.Log;
import com.ebts.common.core.controller.BaseController; import com.ebts.common.core.controller.BaseController;
import com.ebts.common.core.entity.AjaxResult; import com.ebts.common.core.entity.AjaxResult;
import com.ebts.common.enums.BusinessType; import com.ebts.common.enums.BusinessType;
import com.ebts.common.utils.SecurityUtils;
import com.ebts.common.utils.ServerResult; import com.ebts.common.utils.ServerResult;
import com.ebts.common.utils.StringUtils; import com.ebts.common.utils.StringUtils;
import com.ebts.generator.dto.TopResult; import com.ebts.generator.dto.TopResult;
import com.ebts.generator.entity.UniQuery; import com.ebts.generator.entity.UniQuery;
import com.ebts.generator.service.TopQueryService; import com.ebts.generator.service.TopQueryService;
import com.ebts.generator.service.TopSearchTableService;
import com.ebts.generator.service.UniQueryService; import com.ebts.generator.service.UniQueryService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.io.Serializable; import java.io.Serializable;
import java.util.Collections;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
/** /**
@ -61,9 +60,8 @@ public class TopQueryController extends BaseController {
* @return * @return
*/ */
@PreAuthorize("@ebts.hasPermi('top:table')") @PreAuthorize("@ebts.hasPermi('top:table')")
@GetMapping @GetMapping("/table")
public AjaxResult table() { public AjaxResult table() {
return AjaxResult.success(topQueryService.selectTopSearchTables()); return AjaxResult.success(topQueryService.selectTopSearchTables());
} }

View File

@ -30,7 +30,12 @@ public interface TopSearchTableDao {
*/ */
List<TopSearchTable> selectTopSearchTableList(TopSearchTable topSearchTable); List<TopSearchTable> selectTopSearchTableList(TopSearchTable topSearchTable);
List<TopSearchTable> selectTopSearchTables(); /**
* 获取top万能查询基础表格信息
* @param roleIds
* @return
*/
List<TopSearchTable> selectTopSearchTables(String[] roleIds);
List<TopSearchColumn> selectTableColumns(Long id); List<TopSearchColumn> selectTableColumns(Long id);

View File

@ -4,8 +4,6 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.ebts.common.utils.StringUtils; import com.ebts.common.utils.StringUtils;
import java.util.List;
/** /**
* @author: Clay * @author: Clay
* @date: 2021/7/26 17:26 * @date: 2021/7/26 17:26

View File

@ -3,6 +3,7 @@ package com.ebts.generator.service.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.ebts.common.utils.SecurityUtils;
import com.ebts.common.utils.ServerResult; import com.ebts.common.utils.ServerResult;
import com.ebts.generator.dao.QueryDao; import com.ebts.generator.dao.QueryDao;
import com.ebts.generator.dao.RelationalMapDao; import com.ebts.generator.dao.RelationalMapDao;
@ -22,6 +23,7 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
/** /**
* @author: Clay * @author: Clay
@ -45,7 +47,12 @@ public class TopQueryServiceImpl implements TopQueryService {
@Override @Override
public Map<String, Object> selectTopSearchTables() { public Map<String, Object> selectTopSearchTables() {
Map<String, Object> modeMap = new HashMap<>(); Map<String, Object> modeMap = new HashMap<>();
modeMap.put("tables", topSearchTableDao.selectTopSearchTables()); //采用原子式获取到forEach中的值,原子式能够允许其他线程进行尝试性的修改值
AtomicReference<String> roleIds = new AtomicReference<>("");
SecurityUtils.getLoginUser().getUser().getRoles().forEach(role->{
roleIds.updateAndGet(v -> v + role.getRoleId()+",");
});
modeMap.put("tables", topSearchTableDao.selectTopSearchTables(roleIds.get().substring(0,roleIds.get().length()-1).split(",")));
modeMap.put("relationalMap", relationalMapDao.selectRelationalMapList(new RelationalMap())); modeMap.put("relationalMap", relationalMapDao.selectRelationalMapList(new RelationalMap()));
return modeMap; return modeMap;
} }

View File

@ -78,15 +78,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where gtst.id = #{id} where gtst.id = #{id}
</select> </select>
<select id="selectTopSearchTables" resultMap="TopSearchTableTopSearchColumnResult"> <select id="selectTopSearchTables" resultMap="TopSearchTableTopSearchColumnResult" parameterType="String">
select gtst.id, gtst.table_name, gtst.table_comment, gtst.remark, gtst.create_by, gtst.create_time, gtst.update_by, gtst.update_time, select gtst.id, gtst.table_name, gtst.table_comment, gtst.remark, gtst.create_by, gtst.create_time, gtst.update_by, gtst.update_time,
gtsc.id as column_id, gtsc.search_table_id, gtsc.column_name, gtsc.column_comment, gtsc.column_type, gtsc.is_use, gtsc.create_by, gtsc.create_time, gtsc.update_by, gtsc.update_time, gtsc.id as column_id, gtsc.search_table_id, gtsc.column_name, gtsc.column_comment, gtsc.column_type, gtsc.is_use, gtsc.create_by, gtsc.create_time, gtsc.update_by, gtsc.update_time,
grm.main_id, grm.child_id, grm.main_key, grm.child_key, grm.type grm.main_id, grm.child_id, grm.main_key, grm.child_key, grm.type
from gen_top_search_table gtst from gen_top_search_table gtst
left join gen_top_search_column gtsc on gtsc.search_table_id = gtst.id left join gen_top_search_column gtsc on gtsc.search_table_id = gtst.id
left join gen_relational_mapping grm on grm.main_id = gtst.id left join gen_relational_mapping grm on grm.main_id = gtst.id
where gtst.id IN (SELECT search_table_id FROM gen_search_table_role WHERE role_id IN
<foreach collection="array" item="roleId" open="(" separator="," close=")">
#{roleId}
</foreach>) and gtsc.is_use = 1
</select> </select>
<!-- <foreach collection="array" item="name" open="(" separator="," close=")">-->
<!-- #{name}#{roleIds}-->
<!-- </foreach>-->
<!--AND table_name NOT LIKE 'gen_%'--> <!--AND table_name NOT LIKE 'gen_%'-->
<select id="selectDbTableList" resultType="java.util.Map"> <select id="selectDbTableList" resultType="java.util.Map">
select table_name, table_comment, create_time, update_time from information_schema.tables select table_name, table_comment, create_time, update_time from information_schema.tables
@ -174,9 +180,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete> </delete>
<insert id="batchTopSearchColumn"> <insert id="batchTopSearchColumn">
insert into gen_top_search_column(search_table_id,column_name,column_comment,column_type,create_by,create_time,update_by,update_time) values insert into gen_top_search_column(search_table_id,column_name,column_comment,column_type,is_use,create_by,create_time) values
<foreach item="item" index="index" collection="list" separator=","> <foreach item="item" index="index" collection="list" separator=",">
(#{item.searchTableId},#{item.columnName},#{item.columnComment},#{item.columnType},#{item.createBy},#{item.createTime},#{item.updateBy},#{item.updateTime}) (#{item.searchTableId},#{item.columnName},#{item.columnComment},#{item.columnType},#{item.isUse},#{item.createBy},#{item.createTime})
</foreach> </foreach>
</insert> </insert>
</mapper> </mapper>

View File

@ -1,3 +1,6 @@
my.conf中设置:log_bin_trust_function_creators=1
/* currval函数 */ /* currval函数 */
DROP FUNCTION IF EXISTS `currval` ; DROP FUNCTION IF EXISTS `currval` ;
DELIMITER $$ DELIMITER $$