Commit 0731eaec by 黄明步

新增授权管理、加入mybatisplus

parent 1fd2c863
......@@ -61,9 +61,9 @@
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.2</version>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
......
package com.mailu.ocrCloudPlatformAdmin;
import com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
......@@ -12,6 +13,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, PageHelperAutoConfiguration.class})
@EnableEurekaClient
@EnableFeignClients
@MapperScan(basePackages = {"com.mailu.ocrCloudPlatformAdmin.mapper"})
public class OcrCloudPlatformAdminApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
......
package com.mailu.ocrCloudPlatformAdmin.config;
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
......@@ -29,7 +29,8 @@ public class Datasource1Config {
@Bean(name = "mysql1SqlSessionFactory")
@Primary
public SqlSessionFactory testSqlSessionFactory(@Qualifier("mysql1DataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
// SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setTypeAliasesPackage("com.mailu.ocrCloudPlatformAdmin.entity");
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/mappers/*.xml"));
......
package com.mailu.ocrCloudPlatformAdmin.config;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import javax.sql.DataSource;
@Configuration
@MapperScan(basePackages = "com.mailu.ocrCloudPlatformAdmin.mapper1", sqlSessionFactoryRef = "mysql2SqlSessionFactory")
//@MapperScan(basePackages = "com.mailu.ocrCloudPlatformAdmin.mapper1", sqlSessionFactoryRef = "mysql2SqlSessionFactory", sqlSessionTemplateRef = "mysql2SqlSessionTemplate")
//@MapperScan(basePackages = "com.mailu.ocrCloudPlatformAdmin.mapper1", sqlSessionFactoryRef = "mysql2SqlSessionTemplate")
public class Datasource2Config {
@Bean(name = "mysql2DataSource")
@ConfigurationProperties(prefix = "spring.datasource.mysql2")
public DataSource testDataSource() {
return DataSourceBuilder.create().build();
}
/* @Bean(name = "mysql2SqlSessionFactory")
public SqlSessionFactory testSqlSessionFactory(@Qualifier("mysql2DataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setTypeAliasesPackage("com.mailu.ocrCloudPlatformAdmin.entity");
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/mappers1/*.xml"));
return bean.getObject();
}*/
@Bean(name = "mysql2TransactionManager")
public DataSourceTransactionManager testTransactionManager(@Qualifier("mysql2DataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
/* @Bean(name = "mysql2SqlSessionTemplate")
public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("mysql2SqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}*/
}
// package com.mailu.ocrCloudPlatformAdmin.config;
//
// import org.mybatis.spring.annotation.MapperScan;
// import org.springframework.beans.factory.annotation.Qualifier;
// import org.springframework.boot.context.properties.ConfigurationProperties;
// import org.springframework.boot.jdbc.DataSourceBuilder;
// import org.springframework.context.annotation.Bean;
// import org.springframework.context.annotation.Configuration;
// import org.springframework.jdbc.datasource.DataSourceTransactionManager;
//
// import javax.sql.DataSource;
//
// @Configuration
// @MapperScan(basePackages = "com.mailu.ocrCloudPlatformAdmin.mapper1", sqlSessionFactoryRef = "mysql2SqlSessionFactory")
// //@MapperScan(basePackages = "com.mailu.ocrCloudPlatformAdmin.mapper1", sqlSessionFactoryRef = "mysql2SqlSessionFactory", sqlSessionTemplateRef = "mysql2SqlSessionTemplate")
// //@MapperScan(basePackages = "com.mailu.ocrCloudPlatformAdmin.mapper1", sqlSessionFactoryRef = "mysql2SqlSessionTemplate")
// public class Datasource2Config {
//
// @Bean(name = "mysql2DataSource")
// @ConfigurationProperties(prefix = "spring.datasource.mysql2")
// public DataSource testDataSource() {
// return DataSourceBuilder.create().build();
// }
//
// /* @Bean(name = "mysql2SqlSessionFactory")
// public SqlSessionFactory testSqlSessionFactory(@Qualifier("mysql2DataSource") DataSource dataSource) throws Exception {
// SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
// bean.setDataSource(dataSource);
// bean.setTypeAliasesPackage("com.mailu.ocrCloudPlatformAdmin.entity");
// bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/mappers1/*.xml"));
// return bean.getObject();
// }*/
//
// @Bean(name = "mysql2TransactionManager")
// public DataSourceTransactionManager testTransactionManager(@Qualifier("mysql2DataSource") DataSource dataSource) {
// return new DataSourceTransactionManager(dataSource);
// }
//
// /* @Bean(name = "mysql2SqlSessionTemplate")
// public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("mysql2SqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
// return new SqlSessionTemplate(sqlSessionFactory);
// }*/
// }
package com.mailu.ocrCloudPlatformAdmin.controller;
import com.mailu.ocrCloudPlatformAdmin.entity.AuthorizationInfo;
import com.mailu.ocrCloudPlatformAdmin.response.Result;
import com.mailu.ocrCloudPlatformAdmin.service.AuthorizationService;
import com.mailu.ocrCloudPlatformAdmin.utils.DateUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @author Hmb
* @since 2024/4/3 16:30
*/
@RestController
@RequestMapping("/authorization")
public class AuthorizationController {
@Autowired
private AuthorizationService authorizationService;
/**
* 获取列表
*
* @return
*/
@RequestMapping("/list")
public Result list() {
return Result.success("成功", authorizationService.list());
}
/**
* 新增
*
* @param authorizationInfo
* @return {@link Result}
*/
@PostMapping(value = "/insert")
public Result insert(@RequestBody AuthorizationInfo authorizationInfo) {
if (null == authorizationInfo.getEtime()) {
authorizationInfo.setEtime(DateUtil.strToDate("2099-12-31"));
}
return Result.success("成功", authorizationService.save(authorizationInfo));
}
@PostMapping(value = "/update")
public Result update(@RequestBody AuthorizationInfo authorizationInfo) {
if (null == authorizationInfo.getEtime()) {
authorizationInfo.setEtime(DateUtil.strToDate("2099-12-31"));
}
boolean b = authorizationService.updateById(authorizationInfo);
if (b) {
return Result.success("更新成功");
}
return Result.error("更新失败");
}
@PostMapping("/delete")
public Result deleteById(@RequestParam Integer id) {
boolean b = authorizationService.removeById(id);
if (b) {
return Result.success("删除成功");
}
return Result.error("删除失败");
}
@PostMapping("/getById")
public Result getById(@RequestParam Integer id) {
AuthorizationInfo authorizationInfo = authorizationService.getById(id);
return Result.success("成功", authorizationInfo);
}
}
......@@ -247,7 +247,7 @@ public class ViewController {
}
@GetMapping("/user/")
public String userList() {
public String authorizationList() {
return "user/list";
}
......@@ -413,4 +413,10 @@ public class ViewController {
modelMap.put("gatewayUrl", gatewayUrl);
return "callSupervision/index";
}
@RequestMapping("/authorization")
public String authorizationPage(ModelMap modelMap) {
modelMap.put("gatewayUrl", gatewayUrl);
return "authorization/list";
}
}
package com.mailu.ocrCloudPlatformAdmin.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
/**
* @author Hmb
* @since 2024/4/3 16:32
*/
@Data
@TableName(value = "authorization_info")
public class AuthorizationInfo {
/**
*
*/
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 法院名称
*/
private String courtName;
/**
* 授权码
*/
private String authCode;
/**
* 法院分级码
*/
private String gradingCode;
/**
* 授权开始时间
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date stime;
/**
* 授权结束时间
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date etime;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
}
package com.mailu.ocrCloudPlatformAdmin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mailu.ocrCloudPlatformAdmin.entity.AuthorizationInfo;
import org.apache.ibatis.annotations.Mapper;
/**
* @author Hmb
* @since 2024/4/3 16:31
*/
@Mapper
public interface AuthorizationMapper extends BaseMapper<AuthorizationInfo> {
}
package com.mailu.ocrCloudPlatformAdmin.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mailu.ocrCloudPlatformAdmin.entity.AuthorizationInfo;
public interface AuthorizationService extends IService<AuthorizationInfo> {
}
package com.mailu.ocrCloudPlatformAdmin.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mailu.ocrCloudPlatformAdmin.entity.AuthorizationInfo;
import com.mailu.ocrCloudPlatformAdmin.mapper.AuthorizationMapper;
import com.mailu.ocrCloudPlatformAdmin.service.AuthorizationService;
import org.springframework.stereotype.Service;
/**
* @author Hmb
* @since 2024/4/3 16:55
*/
@Service
public class AuthorizationServiceImpl extends ServiceImpl<AuthorizationMapper, AuthorizationInfo> implements AuthorizationService {
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mailu.ocrCloudPlatformAdmin.mapper.AuthorizationMapper">
</mapper>
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<base th:href="${#request.getContextPath()}+'/'">
<meta charset="UTF-8">
<title>角色管理列表</title>
<link rel="stylesheet" href="layui/css/layui.css" media="all">
<style>
html, body {
width: 100%;
height: 100%;
}
body {
background-color: #fff;
}
</style>
</head>
<body>
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;">
<legend style="color: red;font-weight: bold;">授权信息</legend>
</fieldset>
<table id="authorizationList" lay-filter="authorizationList"></table>
<div id="formData" class="layui-form layui-form-pane" lay-filter="formData" style="display: none">
<input type="text" name="id" style="display: none" readonly disabled>
<div class="layui-form-item">
<label class="layui-form-label">法院名称</label>
<div class="layui-input-block">
<input type="text" name="courtName" autocomplete="off" placeholder="请输入法院名称" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">授权码</label>
<div class="layui-input-block">
<input type="text" name="authCode" lay-verify="required" lay-reqText="授权码不能为空" autocomplete="off" placeholder="授权码不能为空" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">开始时间</label>
<div class="layui-inline">
<input type="text" name="stime" id="stime" placeholder="yyyy-MM-dd"
lay-verify="datetime" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">结束时间</label>
<div class="layui-inline">
<input type="text" name="etime" id="etime" placeholder="2099-12-31" disabled
lay-verify="datetime" class="layui-input">
</div>
</div>
</div>
</div>
</body>
<script src="layui/layui.all.js"></script>
<script src="js/jquery.min.js"></script>
<script src="layui/xmSelect/xm-select.js"></script>
<script type="text/html" id="toolbar">
<div class="layui-btn-container">
<input type="button" lay-event="add" value="添加授权" class="layui-btn layui-btn-sm layui-btn-normal">
</div>
</script>
<script>
var list, authorizationList, table, form;
layui.use(["table", "form", 'laydate'], function () {
var laydate = layui.laydate;
laydate.render({
elem: '#stime'
});
laydate.render({
elem: '#etime'
});
table = layui.table;
form = layui.form;
authorizationList = table.render({
elem: "#authorizationList"
, url: "authorization/list"
, method: "post"
, contentType: "application/json"
, title: "统一管理平台_授权信息"
, response: {
statusCode: 200 //规定成功的状态码,默认:0
}
, page: true
, toolbar: '#toolbar' //开启头部工具栏,并为其绑定左侧模板
, defaultToolbar: ['exports', 'filter', 'print']
, cols: [
[
{field: 'id', title: '编号', width: 150, align: "center"}
, {field: 'courtName', title: '法院名称', align: "center"}
, {field: 'authCode', title: '授权码', align: "center"}
, {field: 'stime', title: '授权开始时间', align: "center"}
, {field: 'etime', title: '授权结束时间', align: "center"}
, {
fixed: 'right', title: '操作', width: 150, align: "center", templet: function (data) {
return '<a class="layui-btn layui-btn-xs" lay-event="edit" >编辑</a>' +
'<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>';
}
}
]
]
});
table.on('tool(authorizationList)', function (obj) {
let data = obj.data; //获得当前行数据
var layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
if (layEvent === "del") {
layer.confirm('确定删除么?', {title: "询问", icon: 0}, function (index) {
let loading = layer.msg("正在删除,请稍后...", {time: 0, icon: 16, shade: 0.1});
$.ajax({
url: "authorization/delete?id=" + data.id
, type: "post"
, success: function (res) {
layer.close(loading);
if (res.code === 200) {
authorizationList.reload();
layer.close(index);
layer.msg("删除成功!", {icon: 1});
} else {
layer.msg(res.msg, {icon: 2});
}
}
, error: function () {
layer.close(loading);
layer.msg("请求失败!", {icon: 2});
}
})
});
} else if (layEvent === 'edit') {
let data = obj.data;
layer.open({
type: 1
, title: ['编辑授权信息', 'font-size:18px;text-align:center;background-color:#3b749e;']
, shade: [0.5, '#393D49']
, skin: 'layui-layer-molv'
, content: $("#formData")
, btn: ['确定', '取消']
, area: ['500px', '600px']
, resize: false
, success: function (layero, index) {
$.post("authorization/getById?id=" + data.id, function (res) {
if (res.code !== 200) {
layer.msg(res.msg, {icon: 2});
} else {
form.val("formData", data);
}
});
}
, btn1: function (index) {
$.ajax({
url: "authorization/update",
type: "post",
contentType: "application/json",
data: JSON.stringify(form.val("formData")),
success: function (res) {
if (res.code !== 200) {
layer.msg(res.msg, {icon: 2});
} else {
layer.msg("修改成功!", {icon: 1});
layer.close(index);
$("#formData").css("display", "none");
authorizationList.reload();
}
}
})
}
, btn2: function (index) {
layer.close(index);
$("#formData").css("display", "none");
}
, cancel: function (index, layero) {
$("#formData").css("display", "none");
}
});
}
});
table.on('toolbar(authorizationList)', function (obj) {
if (obj.event === 'add') {
layer.open({
type: 1
, title: ['添加授权信息', 'font-size:18px;text-align:center;background-color:#3b749e;']
, shade: [0.5, '#393D49']
, skin: 'layui-layer-molv'
, content: $("#formData")
, btn: ['确定', '取消']
, area: ['500px', '600px']
, resize: false
, success: function (layero, index) {
form.val("formData", {courtName: "", authCode: "", stime: "", etime: ""});
}
, btn1: function (index) {
$.ajax({
url: "authorization/insert",
type: "post",
contentType: "application/json",
data: JSON.stringify(form.val("formData")),
success: function (res) {
if (res.code !== 200) {
layer.msg(res.msg, {icon: 2});
} else {
layer.msg("添加成功!", {icon: 1});
layer.close(index);
$("#formData").css("display", "none");
authorizationList.reload();
}
}
});
}
, btn2: function (index) {
layer.close(index);
$("#formData").css("display", "none");
}
, cancel: function (index, layero) {
$("#formData").css("display", "none");
}
});
}
});
});
</script>
</html>
......@@ -69,6 +69,14 @@
{{# } }}
</script>
<script type="text/html" id="network">
{{# if(d.network == 0){ }}
<span style="color: green">内网</span>
{{# }else{ }}
<span style="color: red">外网</span>
{{# } }}
</script>
<script th:inline="javascript">
var gatewayUrl = [[${gatewayUrl}]];
</script>
......@@ -93,7 +101,7 @@
var tableIns = table.render({
elem: '#serverInfo',
id: "server",
height: 500,
// height: 500,
url: gatewayUrl + '/server/serverListPage',
title: '服务器信息表',
page: true,
......@@ -102,14 +110,22 @@
{type: 'checkbox', fixed: 'left'},
{field: 'name', title: '服务器名称', align: 'center', width: 180, sort: true},
{field: 'ip', title: '服务器IP', align: 'center', width: 180, sort: true},
{field: 'ocrPort', title: 'OCR端口', align: 'center', width: 180, sort: true},
{field: 'username', title: '服务器登录名', align: 'center', width: 180, sort: true},
{field: 'createdTime', title: '授权时间', align: 'center', width: 180, sort: true},
{field: 'authType', title: '授权类型', align: 'center', width: 150, sort: true, templet: '<div>永久</div>'},
{field: 'ocrPort', title: 'OCR端口', align: 'center', width: 150, sort: true},
{field: 'username', title: '服务器登录名', align: 'center', width: 100, sort: true},
{field: 'password', title: '服务器登录密码', align: 'center', width: 180, sort: true},
{field: 'createdTime', title: '创建时间', align: 'center', width: 180, sort: true},
{field: 'createdBy', title: '创建者', align: 'center', width: 180, sort: true},
{field: 'updatedTime', title: '修改时间', align: 'center', width: 180, sort: true},
{field: 'updatedBy', title: '更新者', align: 'center', width: 180, sort: true},
{field: 'network', title: '局域网', align: 'center', width: 180, sort: true},
{
fixed: 'right',
field: 'network',
title: '接入网络类型',
align: 'center',
width: 180,
templet: '#network'
},
{
fixed: 'right',
field: 'accessService',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment