Commit 8f0a4424 by 黄明步

.

parent 1a6b6a95
...@@ -17,10 +17,31 @@ ...@@ -17,10 +17,31 @@
<properties> <properties>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<spring-cloud.version>Hoxton.SR11</spring-cloud.version>
</properties> </properties>
<dependencyManagement>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId> <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency> </dependency>
......
package com.mailu.ocrCloudPlatformAdmin; package com.mailu.ocrCloudPlatformAdmin;
import com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, PageHelperAutoConfiguration.class})
@EnableEurekaClient
@EnableFeignClients
public class OcrCloudPlatformAdminApplication extends SpringBootServletInitializer { public class OcrCloudPlatformAdminApplication extends SpringBootServletInitializer {
public static void main(String[] args) { public static void main(String[] args) {
......
package com.mailu.ocrCloudPlatformAdmin.config;
import feign.RequestInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.List;
@Configuration
public class FeignConfig {
/**
* 转发请求头
*/
private static final List<String> FORWARD_HEADERS = Arrays.asList(
"AUTHORIZATION",
"X-FORWARDED-FOR",
"X-FORWARDED-PROTO",
"X-FORWARDED-PORT",
"X-FORWARDED-HOST",
"FORWARDED",
"PROXY-CLIENT-IP",
"WL-PROXY-CLIENT-IP",
"HTTP_X_FORWARDED_FOR",
"HTTP_X_FORWARDED",
"HTTP_X_CLUSTER_CLIENT_IP",
"HTTP_CLIENT_IP",
"HTTP_FORWARDED_FOR",
"HTTP_FORWARDED",
"HTTP_VIA",
"REMOTE_ADDR",
"X-REAL-IP",
"HOST"
);
/**
* 解决fein远程调用丢失请求头
*
* @return
*/
@Bean
public RequestInterceptor requestInterceptor() {
return template -> {
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
if (requestAttributes == null) {
return;
}
HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest();
template.header("X-Api-Token", request.getParameter("token"));
Enumeration<String> headerNames = request.getHeaderNames();
if (headerNames != null) {
while (headerNames.hasMoreElements()) {
String name = headerNames.nextElement();
// 不要设置content-length
if ("content-length".equals(name)) {
continue;
}
if (FORWARD_HEADERS.contains(name.toUpperCase())) {
String values = request.getHeader(name);
template.header(name, values);
}
}
}
};
}
}
package com.mailu.ocrCloudPlatformAdmin.controller; package com.mailu.ocrCloudPlatformAdmin.controller;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.mailu.ocrCloudPlatformAdmin.constant.RedisConstant; import com.mailu.ocrCloudPlatformAdmin.constant.RedisConstant;
import com.mailu.ocrCloudPlatformAdmin.constant.RoleConstant; import com.mailu.ocrCloudPlatformAdmin.constant.RoleConstant;
...@@ -21,9 +22,11 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -21,9 +22,11 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/** /**
* @author: HuangHao * @author: HuangHao
...@@ -116,32 +119,69 @@ public class AppAbilityRecordAllController { ...@@ -116,32 +119,69 @@ public class AppAbilityRecordAllController {
} }
// @PostMapping("/getListByPage")
// public Result getListByPage(AppAbilityRecordAllDto dto) {
// String roleName = UserUtil.getCurrentUserRole();
// //是否是管理员
// if (RoleConstant.ADMIN.equals(roleName)) {
// if (dto.getCourtId() != null) {
// List<Integer> courtCodeList = new ArrayList<>();
// courtCodeList.add(dto.getCourtId());
// dto.setCourtCodeList(courtCodeList);
// }
// return appAbilityRecordAllService.getListByPage(dto);
// }
// //获取用户所有的法庭信息
// DoorUser currentUser = UserUtil.getCurrentUser();
// List<Court> courts = redisService.getList(RedisConstant.COURT_INFO_USER_PREFIX + currentUser.getYouxiang(), Court.class, 1L, TimeUnit.DAYS);
// if (courts != null) {
// List<Integer> courtCodeList = new ArrayList<>();
// if (dto.getCourtId() != null && CourtUtil.exist(courts, dto.getCourtId())) {
// courtCodeList.add(dto.getCourtId());
// } else {
// //查全部
// for (Court court : courts) {
// courtCodeList.add(court.getCourtCode());
// }
// }
// dto.setCourtCodeList(courtCodeList);
// //业务管理员
// if (roleName.startsWith(RoleConstant.BUSINESS)) {
// Role role = roleService.selectByName(roleName);
// dto.setDescription(role.getNameZh());
// }
// return appAbilityRecordAllService.getListByPage(dto);
// }
// return Result.error("");
// }
@PostMapping("/getListByPage") @PostMapping("/getListByPage")
public Result getListByPage(AppAbilityRecordAllDto dto) { public Result getListByPage(AppAbilityRecordAllDto dto) {
String roleName = UserUtil.getCurrentUserRole(); String roleName = UserUtil.getCurrentUserRole();
List<String> ipScopeList = new ArrayList<>();
//是否是管理员 //是否是管理员
if (RoleConstant.ADMIN.equals(roleName)) { if (RoleConstant.ADMIN.equals(roleName)) {
if (dto.getCourtId() != null) { if (StrUtil.isNotBlank(dto.getIpScope())) {
List<Integer> courtCodeList = new ArrayList<>(); ipScopeList = Arrays.stream(dto.getIpScope().split(";")).collect(Collectors.toList());
courtCodeList.add(dto.getCourtId()); dto.setIpScopeList(ipScopeList);
dto.setCourtCodeList(courtCodeList);
} }
return appAbilityRecordAllService.getListByPage(dto); return appAbilityRecordAllService.getListByPage(dto);
} }
//获取用户所有的法庭信息 //获取用户所有的法庭信息
DoorUser currentUser = UserUtil.getCurrentUser(); DoorUser currentUser = UserUtil.getCurrentUser();
List<Court> courts = redisService.getList(RedisConstant.COURT_INFO_USER_PREFIX + currentUser.getYouxiang(), Court.class, 1L, TimeUnit.DAYS); List<Court> courts = redisService.getList(RedisConstant.COURT_INFO_USER_PREFIX + currentUser.getYouxiang(), Court.class, 1L, TimeUnit.DAYS);
if (courts != null) { if (CollUtil.isNotEmpty(courts)) {
List<Integer> courtCodeList = new ArrayList<>(); if (StrUtil.isNotBlank(dto.getIpScope()) && CourtUtil.existByIpScope(courts, dto.getIpScope())) {
if (dto.getCourtId() != null && CourtUtil.exist(courts, dto.getCourtId())) { List<String> collect = Arrays.stream(dto.getIpScope().split(";")).collect(Collectors.toList());
courtCodeList.add(dto.getCourtId()); ipScopeList.addAll(collect);
} else { } else {
//查全部 //查全部
for (Court court : courts) { for (Court court : courts) {
courtCodeList.add(court.getCourtCode()); List<String> collect = Arrays.stream(court.getIpScope().split(";")).collect(Collectors.toList());
ipScopeList.addAll(collect);
} }
} }
dto.setCourtCodeList(courtCodeList); dto.setIpScopeList(ipScopeList);
//业务管理员 //业务管理员
if (roleName.startsWith(RoleConstant.BUSINESS)) { if (roleName.startsWith(RoleConstant.BUSINESS)) {
Role role = roleService.selectByName(roleName); Role role = roleService.selectByName(roleName);
......
...@@ -12,6 +12,7 @@ import com.mailu.ocrCloudPlatformAdmin.entity.Role; ...@@ -12,6 +12,7 @@ import com.mailu.ocrCloudPlatformAdmin.entity.Role;
import com.mailu.ocrCloudPlatformAdmin.filter.CasProperties; import com.mailu.ocrCloudPlatformAdmin.filter.CasProperties;
import com.mailu.ocrCloudPlatformAdmin.service.CourtService; import com.mailu.ocrCloudPlatformAdmin.service.CourtService;
import com.mailu.ocrCloudPlatformAdmin.service.MenuService; import com.mailu.ocrCloudPlatformAdmin.service.MenuService;
import com.mailu.ocrCloudPlatformAdmin.service.RoleService;
import com.mailu.ocrCloudPlatformAdmin.utils.UserUtil; import com.mailu.ocrCloudPlatformAdmin.utils.UserUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -24,6 +25,7 @@ import org.springframework.web.bind.annotation.RequestParam; ...@@ -24,6 +25,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
@Slf4j @Slf4j
@Controller @Controller
...@@ -41,6 +43,9 @@ public class ViewController { ...@@ -41,6 +43,9 @@ public class ViewController {
@Resource @Resource
private CourtService courtService; private CourtService courtService;
@Resource
private RoleService roleService;
/** /**
* 个人消息列表 * 个人消息列表
*/ */
...@@ -163,7 +168,7 @@ public class ViewController { ...@@ -163,7 +168,7 @@ public class ViewController {
} }
@GetMapping("/") @GetMapping("/")
public String console(ModelMap modelMap) { public String welcome(ModelMap modelMap) {
DoorUser currentUser = UserUtil.getCurrentUser(); DoorUser currentUser = UserUtil.getCurrentUser();
// System.out.println("---->"+currentUser); // System.out.println("---->"+currentUser);
modelMap.put("user", currentUser); modelMap.put("user", currentUser);
...@@ -172,8 +177,22 @@ public class ViewController { ...@@ -172,8 +177,22 @@ public class ViewController {
return "home/welcome"; return "home/welcome";
} }
@GetMapping("/home/console") @GetMapping("/console")
public String console() { public String console() {
try {
String currentUserRole = UserUtil.getCurrentUserRole();
// 查出当前用户的角色
Role role = roleService.selectByName(currentUserRole);
// // 查出当前用户角色拥有的菜单
List<Menu> menus = menuService.selectRoleId(role.getId());
boolean isContains = menus.stream().map(Menu::getName).collect(Collectors.toList()).contains("控制台");
if (!isContains) {
return "redirect:/";
}
} catch (Exception e) {
log.error("访问控制台失败", e);
return "redirect:/";
}
return "home/console"; return "home/console";
} }
......
package com.mailu.ocrCloudPlatformAdmin.dto; package com.mailu.ocrCloudPlatformAdmin.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mailu.ocrCloudPlatformAdmin.entity.AppAbilityRecordAll; import com.mailu.ocrCloudPlatformAdmin.entity.AppAbilityRecordAll;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -18,4 +21,13 @@ public class AppAbilityRecordAllDto extends AppAbilityRecordAll { ...@@ -18,4 +21,13 @@ public class AppAbilityRecordAllDto extends AppAbilityRecordAll {
private Integer network; private Integer network;
private String description; private String description;
private List<Integer> courtCodeList; private List<Integer> courtCodeList;
private String ipScope;
private List<String> ipScopeList;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date startTime;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date endTime;
} }
package com.mailu.ocrCloudPlatformAdmin.feign;
import com.mailu.ocrCloudPlatformAdmin.config.FeignConfig;
import com.mailu.ocrCloudPlatformAdmin.dto.AppAbilityRecordAllDto;
import com.mailu.ocrCloudPlatformAdmin.response.Result;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* @author Hmb
* @since 2024/1/16 11:42
*/
@FeignClient(name = "ocrCloudPlatformApi", path = "/appAbilityRecordAll", configuration = FeignConfig.class)
public interface ApiFeignClient {
@PostMapping(value = "/getListByPage")
Result getListByPage(@RequestBody AppAbilityRecordAllDto dto);
}
...@@ -43,6 +43,9 @@ public class Result { ...@@ -43,6 +43,9 @@ public class Result {
this.data = data; this.data = data;
} }
public Result() {
}
public Result(Integer code, String msg) { public Result(Integer code, String msg) {
this.code = code; this.code = code;
this.msg = msg; this.msg = msg;
......
package com.mailu.ocrCloudPlatformAdmin.service.impl; package com.mailu.ocrCloudPlatformAdmin.service.impl;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.mailu.ocrCloudPlatformAdmin.dto.AppAbilityRecordAllDto; import com.mailu.ocrCloudPlatformAdmin.dto.AppAbilityRecordAllDto;
import com.mailu.ocrCloudPlatformAdmin.entity.AppAbilityRecordAll; import com.mailu.ocrCloudPlatformAdmin.feign.ApiFeignClient;
import com.mailu.ocrCloudPlatformAdmin.mapper.AppAbilityRecordAllMapper; import com.mailu.ocrCloudPlatformAdmin.mapper.AppAbilityRecordAllMapper;
import com.mailu.ocrCloudPlatformAdmin.mapper.ServerInfoMapper; import com.mailu.ocrCloudPlatformAdmin.mapper.ServerInfoMapper;
import com.mailu.ocrCloudPlatformAdmin.response.Result; import com.mailu.ocrCloudPlatformAdmin.response.Result;
import com.mailu.ocrCloudPlatformAdmin.service.AppAbilityRecordAllService; import com.mailu.ocrCloudPlatformAdmin.service.AppAbilityRecordAllService;
import com.mailu.ocrCloudPlatformAdmin.vo.PageVo;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List;
/** /**
* @author: HuangHao * @author: HuangHao
...@@ -29,22 +24,30 @@ public class AppAbilityRecordAllServiceImpl implements AppAbilityRecordAllServic ...@@ -29,22 +24,30 @@ public class AppAbilityRecordAllServiceImpl implements AppAbilityRecordAllServic
@Resource @Resource
private AppAbilityRecordAllMapper appAbilityRecordAllMapper; private AppAbilityRecordAllMapper appAbilityRecordAllMapper;
@Resource
private ApiFeignClient apiFeignClient;
// @Override
// public Result getListByPage(AppAbilityRecordAllDto dto) {
// List<String> serverIpList = serverInfoMapper.selectServerIpList(dto);
// if (serverIpList != null && serverIpList.size() > 0) {
// Page<AppAbilityRecordAll> page;
// if (StrUtil.isEmpty(dto.getDescription())) {
// page = PageHelper.startPage(dto.getPage(), dto.getLimit()).doSelectPage(()
// -> appAbilityRecordAllMapper.selectByCondition(serverIpList));
// }else {
// //业务系统管理员查询
// page = PageHelper.startPage(dto.getPage(), dto.getLimit()).doSelectPage(()
// -> appAbilityRecordAllMapper.selectByBusinessCondition(serverIpList,dto.getDescription()));
// }
// PageVo pageVo = new PageVo(page);
// return Result.success("", pageVo);
// }
// return Result.success("", new PageVo());
// }
@Override @Override
public Result getListByPage(AppAbilityRecordAllDto dto) { public Result getListByPage(AppAbilityRecordAllDto dto) {
List<String> serverIpList = serverInfoMapper.selectServerIpList(dto); return apiFeignClient.getListByPage(dto);
if (serverIpList != null && serverIpList.size() > 0) {
Page<AppAbilityRecordAll> page;
if (StrUtil.isEmpty(dto.getDescription())) {
page = PageHelper.startPage(dto.getPage(), dto.getLimit()).doSelectPage(()
-> appAbilityRecordAllMapper.selectByCondition(serverIpList));
}else {
//业务系统管理员查询
page = PageHelper.startPage(dto.getPage(), dto.getLimit()).doSelectPage(()
-> appAbilityRecordAllMapper.selectByBusinessCondition(serverIpList,dto.getDescription()));
}
PageVo pageVo = new PageVo(page);
return Result.success("", pageVo);
}
return Result.success("", new PageVo());
} }
} }
...@@ -30,5 +30,14 @@ public class CourtUtil { ...@@ -30,5 +30,14 @@ public class CourtUtil {
return false; return false;
} }
public static boolean existByIpScope(List<Court> courts,String ipScope) {
for (Court court : courts) {
if (court.getIpScope().contains(ipScope)){
return true;
}
}
return false;
}
} }
package com.mailu.ocrCloudPlatformAdmin.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
/**
* @author Hmb
* @since 2024/1/16 9:46
*/
@Data
public class AppAbilityRecordVo {
private String id;
/**
* 法院名称
*/
private String courtName;
/**
* 业务厂家
*/
private String businessVendors;
private String appAbilityName;
private String ip;
/**
* 文件页数
*/
private Integer fileCount;
/**
* 调用次数
*/
private String callCount;
/**
* 调用时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date callTime;
/**
* 调用服务器ip
*/
private String serverIp;
}
...@@ -5,7 +5,7 @@ spring: ...@@ -5,7 +5,7 @@ spring:
mysql1: # 数据源 1 mysql1: # 数据源 1
username: root username: root
password: Docimax@123 password: Docimax@123
jdbc-url: jdbc:mysql://147.1.5.77:3306/yuntu_ofs?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai jdbc-url: jdbc:mysql://147.2.4.15:4417/yuntu_ofs?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
...@@ -30,14 +30,14 @@ spring: ...@@ -30,14 +30,14 @@ spring:
redis: redis:
cluster: cluster:
nodes: nodes:
- 147.1.5.79:6379 - 147.2.4.15:6379
- 147.1.5.79:6389 - 147.2.4.15:6380
- 147.1.5.80:6379 - 147.2.4.16:6379
- 147.1.5.80:6389 - 147.2.4.16:6380
- 147.1.5.81:6379 - 147.2.4.17:6379
- 147.1.5.81:6389 - 147.2.4.17:6380
database: 0 database: 0
password: Docimax password: Docimax@123
jedis: jedis:
pool: pool:
max-active: 128 max-active: 128
...@@ -46,6 +46,10 @@ spring: ...@@ -46,6 +46,10 @@ spring:
min-idle: 0 min-idle: 0
timeout: 5000 timeout: 5000
eureka:
client:
service-url:
defaultZone: http://147.1.5.77:9000/eureka
login-page: /user/login login-page: /user/login
#showSql #showSql
......
...@@ -4,9 +4,27 @@ spring: ...@@ -4,9 +4,27 @@ spring:
jackson: jackson:
time-zone: GMT+8 time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss date-format: yyyy-MM-dd HH:mm:ss
application:
name: ocrCloudPlatformAdmin
server: server:
port: 8090 port: 8090
servlet: servlet:
context-path: /ocrAdmin context-path: /ocrAdmin
session: session:
timeout: 36000 timeout: 36000
eureka:
client:
service-url:
defaultZone: http://localhost:9000/eureka
instance:
prefer-ip-address: true
instance-id: ${spring.cloud.client.ip-address}:${spring.application.name}:${server.port}
lease-expiration-duration-in-seconds: 6
lease-renewal-interval-in-seconds: 2
feign:
client:
config:
default:
connectTimeout: 60000 #单位毫秒
readTimeout: 60000 #单位毫秒
...@@ -51,6 +51,7 @@ ...@@ -51,6 +51,7 @@
</script> </script>
<script> <script>
var list, table, form, condition = {}; var list, table, form, condition = {};
let courtList = [];
layui.use(["table", "form"], function () { layui.use(["table", "form"], function () {
table = layui.table; table = layui.table;
form = layui.form; form = layui.form;
...@@ -59,7 +60,7 @@ ...@@ -59,7 +60,7 @@
el: '#court', el: '#court',
tips: "选择法院", tips: "选择法院",
filterable: true, filterable: true,
name: 'courtId', name: 'courtCode',
autoRow: true, autoRow: true,
radio: true, radio: true,
clickClose: true, clickClose: true,
...@@ -86,39 +87,22 @@ ...@@ -86,39 +87,22 @@
, defaultToolbar: ['filter', 'print', {title: "导出数据表格", layEvent: "exports", icon: "layui-icon-export"}] , defaultToolbar: ['filter', 'print', {title: "导出数据表格", layEvent: "exports", icon: "layui-icon-export"}]
, cols: [ , cols: [
[ [
{field: 'id', width: 80, title: '编号', align: "center"} {field: 'id', width: 80, title: '编号', align: "center", hide: true}
, {field: 'taskId', width: 300, title: '任务ID', align: "center"} , {field: 'courtName', width: 260, title: '法院名称', align: "center"}
, {field: 'applicationId', width: 80, title: '应用ID', align: "center"} , {field: 'businessVendors', width: 180, title: '业务厂商', align: "center"}
, {field: 'userId', width: 80, title: '用户ID', align: "center"} , {field: 'callCount', width: 90, title: '调用次数', align: "center"}
, {field: 'abilityId', width: 80, title: '能力ID', align: "center"} , {field: 'appAbilityName', width: 180, title: '识别能力', align: "center"}
, {field: 'ip', width: 150, title: 'IP地址', align: "center"} , {field: 'ip', width: 160, title: '调用方IP', align: "center"}
, {field: 'callTime', width: 180, title: '调用时间', align: "center"} , {field: 'callTime', width: 180, title: '调用时间', align: "center"}
, {field: 'ocrState', width: 80, title: '识别状态', align: "center"} , {field: 'fileCount', width: 90, title: '文件页数', align: "center"}
, {field: 'fileId', width: 300, title: '文件唯一标识', align: "center"} , {field: 'serverIp', width: 160, title: '服务器IP', align: "center"}
// , {field: 'originName', width: 120, title: '待识别文件原始文件名', align: "center"} // , {
// , {field: 'ocrFileName', width: 120, title: '待识别文件原始文件名', align: "center"} // title: '操作', align: 'center'
// , {field: 'srcUrl', width: 120, title: '待识别文件url', align: "center"} // , templet: function (data) {
// , {field: 'length', width: 80, title: '文件大小', align: "center"} // var detailsBtn = '<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="info" onclick="moreInfo(' + data.id + ')">详情</a>';
// , {field: 'crc32', width: 120, title: '文件CRC32校验码', align: "center"} // return detailsBtn;
// , {field: 'checksum', width: 120, title: '文件的CheckSum', align: "center"} // }
// , {field: 'result', width: 80, title: '识别结果', align: "center"} // }
// , {field: 'resultType', width: 80, title: '结果类型', align: "center"}
// , {field: 'dstUrl', width: 120, title: '识别结果保存路径', align: "center"}
// , {field: 'jsons', width: 120, title: '识别结果JSON文件url', align: "center"}
// , {field: 'pdf', width: 120, title: '合并后双层PDF文件url', align: "center"}
// , {field: 'isCallback', width: 120, title: '是否需要回调通知结果', align: "center"}
// , {field: 'callbackUrl', width: 80, title: '回调URL', align: "center"}
// , {field: 'callbackParams', width: 80, title: '回调参数', align: "center"}
// , {field: 'createdTime', width: 80, title: '创建时间', align: "center"}
// , {field: 'updatedTime', width: 80, title: '更新时间', align: "center"}
, {field: 'serverIp', width: 150, title: '服务器IP', align: "center"}
, {
title: '操作', align: 'center'
, templet: function (data) {
var detailsBtn = '<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="info" onclick="moreInfo(' + data.id + ')">详情</a>';
return detailsBtn;
}
}
] ]
] ]
, before: function (e) { , before: function (e) {
...@@ -154,17 +138,25 @@ ...@@ -154,17 +138,25 @@
}); });
function search() { function search() {
let formData = form.val("searchForm")
formData.ipScope = ""
courtList.filter(item => item.courtCode === parseInt(formData.courtCode)).forEach(item => {
// 如果法院ipScope为空的,则默认赋值为'255.255.255.255' 并添加到formData中
formData.ipScope = item.ipScope ? item.ipScope : "255.255.255.255"
})
list.reload({ list.reload({
where: form.val("searchForm") where: formData
, page: {curr: 1} , page: {curr: 1}
}) })
} }
function initSearchForm(callback) { function initSearchForm(callback) {
$.get("appAbilityRecordAll/getCourtByRole", function (res) { $.get("appAbilityRecordAll/getCourtByRole", function (res) {
if (res.code !== 200) { if (res.code !== 200) {
layer.msg(res.msg, {icon: 2}); layer.msg(res.msg, {icon: 2});
} else { } else {
courtList = res.data;
callback(res.data) callback(res.data)
} }
}); });
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
</head> </head>
<body> <body>
<!--<a href="admin" style="position: fixed;right:100px;color: #2cedf5;">后台管理</a>--> <a href="admin" style="position: fixed;right:100px;color: #2cedf5;">后台管理</a>
<iframe id="consolePage" <iframe id="consolePage"
src="http://192.168.1.230:9300/d/Ews-KJ84z/ge-yuan-ocrdiao-yong-qing-kuang?orgId=1&refresh=5s&kiosk" src="http://192.168.1.230:9300/d/Ews-KJ84z/ge-yuan-ocrdiao-yong-qing-kuang?orgId=1&refresh=5s&kiosk"
style="width: 100%;height: 100%;border: unset;"></iframe> style="width: 100%;height: 100%;border: unset;"></iframe>
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<head> <head>
<base th:href="${#request.getContextPath()}+'/'"> <base th:href="${#request.getContextPath()}+'/'">
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>Title</title> <title>统一管理电子卷宗图文识别云平台</title>
<link rel="stylesheet" href="layuiadmin/layui/css/layui.css" media="all"> <link rel="stylesheet" href="layuiadmin/layui/css/layui.css" media="all">
...@@ -15,15 +15,15 @@ ...@@ -15,15 +15,15 @@
overflow: hidden; overflow: hidden;
} }
.main{ .main{
width: 1920px; width: auto;
height: 1080px; height: auto;
background-image: url("img/bac.png"); background-image: url("img/bg.png");
background-size: 100% 100%; background-size: 100% 100%;
} }
.main .title{ .main .title{
font-size: 80px; font-size: 75px;
text-align: center; text-align: center;
padding-top: 250px; padding-top: 330px;
color: #ffffff; color: #ffffff;
letter-spacing: 10px; letter-spacing: 10px;
} }
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
</ul> </ul>
<ul class="layui-nav layui-layout-right" lay-filter="layadmin-layout-right"> <ul class="layui-nav layui-layout-right" lay-filter="layadmin-layout-right">
<li class="layui-nav-item layui-hide-xs" lay-unselect title="我的消息" id="myMessage" <li class="layui-nav-item layui-hide-xs" lay-unselect title="我的消息" id="myMessage"
lay-href="message/myMessage" lay-text="我的信息"> onclick="loadMyMessage();">
<a href="javascript:;"> <a href="javascript:;">
<i class="layui-icon layui-icon-notice"></i> <i class="layui-icon layui-icon-notice"></i>
<span class="layui-badge" style="margin: unset;top: 5px;display: none;" id="unreadMessageCount">0</span> <span class="layui-badge" style="margin: unset;top: 5px;display: none;" id="unreadMessageCount">0</span>
...@@ -69,11 +69,11 @@ ...@@ -69,11 +69,11 @@
<ul class="layui-nav layui-nav-tree" lay-shrink="all" id="LAY-system-side-menu" <ul class="layui-nav layui-nav-tree" lay-shrink="all" id="LAY-system-side-menu"
lay-filter="layadmin-system-side-menu"> lay-filter="layadmin-system-side-menu">
<!--/*@thymesVar id="menu" type=""*/--> <!--/*@thymesVar id="menu" type=""*/-->
<li th:each="menu : ${menuList}" data-name="home" th:class="${menu.name == '控制台'? 'layui-nav-item layui-nav-itemed layui-this': 'layui-nav-item'}"> <li th:each="menu : ${menuList}" data-name="home" th:class="${menu.name == '角色管理'? 'layui-nav-item layui-nav-itemed layui-this': 'layui-nav-item'}">
<a href="javascript:;" th:lay-href="${menu.path}" th:lay-tips="${menu.name}" lay-direction="2"> <a th:href="${menu.name == '控制台'?'console':'javascript:;'}" th:lay-href="${menu.path}" th:lay-tips="${menu.name}" lay-direction="2">
<i th:if="menu.path eq 'home/console'" class="layui-icon layui-icon-home"></i> <i th:if="menu.path eq 'role/'" class="layui-icon layui-icon-home"></i>
<i th:if="menu.path ne 'home/console'" class="layui-icon layui-icon-auz"></i> <i th:if="menu.path ne 'role/'" class="layui-icon layui-icon-auz"></i>
<cite th:text="${menu.name}"></cite> <cite th:text="${menu.name}">客户端管理</cite>
</a> </a>
</li> </li>
</ul> </ul>
...@@ -98,7 +98,7 @@ ...@@ -98,7 +98,7 @@
</div> </div>
<div class="layui-tab" lay-unauto lay-allowClose="true" lay-filter="layadmin-layout-tabs"> <div class="layui-tab" lay-unauto lay-allowClose="true" lay-filter="layadmin-layout-tabs">
<ul class="layui-tab-title" id="LAY_app_tabsheader"> <ul class="layui-tab-title" id="LAY_app_tabsheader">
<li lay-id="home/console" lay-attr="home/console" class="layui-this"> <li lay-id="role/" lay-attr="role/" class="layui-this">
<i class="layui-icon layui-icon-home"></i> <i class="layui-icon layui-icon-home"></i>
</li> </li>
</ul> </ul>
...@@ -114,11 +114,8 @@ ...@@ -114,11 +114,8 @@
<iframe th:if="${user.id !=18937}" th:src="${menuList[0].path}" frameborder="0" class="layadmin-iframe"> <iframe th:if="${user.id !=18937}" th:src="${menuList[0].path}" frameborder="0" class="layadmin-iframe">
</iframe> --> </iframe> -->
<iframe th:if="${isAdmin}" src="home/console" frameborder="0" class="layadmin-iframe"></iframe> <iframe th:if="${isAdmin}" src="role/" frameborder="0" class="layadmin-iframe"></iframe>
<iframe th:if="${!isAdmin}" th:src="${menuList[1].path}" frameborder="0" class="layadmin-iframe"></iframe>
<!-- <iframe th:if="${!isAdmin and menuList.size() == 1 and menuList[0].path != 'home/console'}" th:src="${menuList[0].path}" frameborder="0" class="layadmin-iframe"></iframe>-->
<!-- <iframe th:if="${!isAdmin and menuList.size() > 1 and menuList[0].path == 'home/console'}" th:src="${menuList[1].path}" frameborder="0" class="layadmin-iframe"></iframe>-->
</div> </div>
</div> </div>
...@@ -130,6 +127,7 @@ ...@@ -130,6 +127,7 @@
<script src="js/jquery.min.js"></script> <script src="js/jquery.min.js"></script>
<script src="layui/layui.js"></script> <script src="layui/layui.js"></script>
<script th:inline="javascript"> <script th:inline="javascript">
let messageInfoApiUrl = [[${messageInfoApiUrl}]];
let gatewayUrl = [[${gatewayUrl}]]; let gatewayUrl = [[${gatewayUrl}]];
var user = [[${user}]]; var user = [[${user}]];
var isAdmin = [[${isAdmin}]]; var isAdmin = [[${isAdmin}]];
...@@ -143,12 +141,14 @@ ...@@ -143,12 +141,14 @@
$(function () { $(function () {
if (isAdmin){ if (isAdmin){
loadUnreadMessageCount(); loadUnreadMessageCount();
loadMyMessage();
} }
}); });
function loadUnreadMessageCount() { function loadUnreadMessageCount() {
$.ajax({ $.ajax({
// url: messageInfoApiUrl + "/getUserMessages?username=" + user.youxiang + "&read=false",
url: gatewayUrl + "/getUserMessages?username=" + user.youxiang + "&read=false", url: gatewayUrl + "/getUserMessages?username=" + user.youxiang + "&read=false",
success: function (res) { success: function (res) {
let unreadMessageCount = $("#unreadMessageCount"); let unreadMessageCount = $("#unreadMessageCount");
...@@ -162,6 +162,11 @@ ...@@ -162,6 +162,11 @@
}); });
} }
function loadMyMessage() {
$("[lay-href='myMessage/']")[0].click();
}
/* function editPwd() { /* function editPwd() {
layer.open({ layer.open({
type: 2 type: 2
......
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<base th:href="${#request.getContextPath()}+'/'">
<meta charset="utf-8">
<title>OCR云平台后台管理系统</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
<!--<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">-->
<link rel="stylesheet" href="layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="layuiadmin/style/admin.css" media="all">
</head>
<body class="layui-layout-body">
<div id="LAY_app">
<div class="layui-layout layui-layout-admin">
<div class="layui-header">
<!-- 头部区域 -->
<ul class="layui-nav layui-layout-left">
<li class="layui-nav-item layadmin-flexible" lay-unselect>
<a href="javascript:;" layadmin-event="flexible" title="侧边伸缩">
<i class="layui-icon layui-icon-shrink-right" id="LAY_app_flexible"></i>
</a>
</li>
<li class="layui-nav-item" lay-unselect>
<a href="javascript:;" layadmin-event="refresh" title="刷新">
<i class="layui-icon layui-icon-refresh-3"></i>
</a>
</li>
</ul>
<ul class="layui-nav layui-layout-right" lay-filter="layadmin-layout-right">
<li class="layui-nav-item layui-hide-xs" lay-unselect title="我的消息" id="myMessage"
lay-href="message/myMessage" lay-text="我的信息">
<a href="javascript:;">
<i class="layui-icon layui-icon-notice"></i>
<span class="layui-badge" style="margin: unset;top: 5px;display: none;" id="unreadMessageCount">0</span>
</a>
</li>
<li class="layui-nav-item layui-hide-xs" lay-unselect title="全屏">
<a href="javascript:;" layadmin-event="fullscreen">
<i class="layui-icon layui-icon-screen-full"></i>
</a>
</li>
<li class="layui-nav-item" lay-unselect>
<a href="javascript:;">
<cite th:text="${user.xm}"></cite>
</a>
<dl class="layui-nav-child">
<dd><a href="user/logout">退出</a></dd>
</dl>
</li>
<li class="layui-nav-item layui-show-xs-inline-block layui-hide-sm" lay-unselect>
<a href="javascript:;" layadmin-event="more"><i
class="layui-icon layui-icon-more-vertical"></i></a>
</li>
</ul>
</div>
<!-- 侧边菜单 -->
<div class="layui-side layui-side-menu">
<div class="layui-side-scroll">
<div lay-href="home/console" class="layui-logo">
<span>OCR云平台后台管理</span>
</div>
<ul class="layui-nav layui-nav-tree" lay-shrink="all" id="LAY-system-side-menu"
lay-filter="layadmin-system-side-menu">
<!--/*@thymesVar id="menu" type=""*/-->
<li th:each="menu : ${menuList}" data-name="home" th:class="${menu.name == '控制台'? 'layui-nav-item layui-nav-itemed layui-this': 'layui-nav-item'}">
<a href="javascript:;" th:lay-href="${menu.path}" th:lay-tips="${menu.name}" lay-direction="2">
<i th:if="menu.path eq 'home/console'" class="layui-icon layui-icon-home"></i>
<i th:if="menu.path ne 'home/console'" class="layui-icon layui-icon-auz"></i>
<cite th:text="${menu.name}"></cite>
</a>
</li>
</ul>
</div>
</div>
<!-- 页面标签 -->
<div class="layadmin-pagetabs" id="LAY_app_tabs">
<div class="layui-icon layadmin-tabs-control layui-icon-prev" layadmin-event="leftPage"></div>
<div class="layui-icon layadmin-tabs-control layui-icon-next" layadmin-event="rightPage"></div>
<div class="layui-icon layadmin-tabs-control layui-icon-down">
<ul class="layui-nav layadmin-tabs-select" lay-filter="layadmin-pagetabs-nav">
<li class="layui-nav-item" lay-unselect>
<a href="javascript:;"></a>
<dl class="layui-nav-child layui-anim-fadein">
<dd layadmin-event="closeThisTabs"><a href="javascript:;">关闭当前标签页</a></dd>
<dd layadmin-event="closeOtherTabs"><a href="javascript:;">关闭其它标签页</a></dd>
<dd layadmin-event="closeAllTabs"><a href="javascript:;">关闭全部标签页</a></dd>
</dl>
</li>
</ul>
</div>
<div class="layui-tab" lay-unauto lay-allowClose="true" lay-filter="layadmin-layout-tabs">
<ul class="layui-tab-title" id="LAY_app_tabsheader">
<li lay-id="home/console" lay-attr="home/console" class="layui-this">
<i class="layui-icon layui-icon-home"></i>
</li>
</ul>
</div>
</div>
<!-- 主体内容 -->
<div class="layui-body" id="LAY_app_body">
<div class="layadmin-tabsbody-item layui-show">
<!--<iframe th:if="${user.id ==18937}" src="client/" frameborder="0" class="layadmin-iframe"></iframe>
<iframe th:if="${user.id !=18937}" th:src="${menuList[0].path}" frameborder="0" class="layadmin-iframe">
</iframe> -->
<iframe th:if="${isAdmin}" src="home/console" frameborder="0" class="layadmin-iframe"></iframe>
<!-- <iframe th:if="${!isAdmin and menuList.size() == 1 and menuList[0].path != 'home/console'}" th:src="${menuList[0].path}" frameborder="0" class="layadmin-iframe"></iframe>-->
<!-- <iframe th:if="${!isAdmin and menuList.size() > 1 and menuList[0].path == 'home/console'}" th:src="${menuList[1].path}" frameborder="0" class="layadmin-iframe"></iframe>-->
</div>
</div>
<!-- 辅助元素,一般用于移动设备下遮罩 -->
<div class="layadmin-body-shade" layadmin-event="shade"></div>
</div>
</div>
<script src="js/jquery.min.js"></script>
<script src="layui/layui.js"></script>
<script th:inline="javascript">
let gatewayUrl = [[${gatewayUrl}]];
var user = [[${user}]];
var isAdmin = [[${isAdmin}]];
</script>
<script>
layui.config({
base: 'layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use('index');
$(function () {
if (isAdmin){
loadUnreadMessageCount();
}
});
function loadUnreadMessageCount() {
$.ajax({
url: gatewayUrl + "/getUserMessages?username=" + user.youxiang + "&read=false",
success: function (res) {
let unreadMessageCount = $("#unreadMessageCount");
if (res.code === 200 && res.data.length > 0) {
unreadMessageCount.css("display", "unset");
unreadMessageCount.text(res.data.length);
}else if(res.code === 200 && res.data.length === 0) {
unreadMessageCount.css("display", "none");
}
}
});
}
/* function editPwd() {
layer.open({
type: 2
, title: ['修改密码', 'font-size:18px;text-align:center;background-color:#3b749e;']
, shade: [0.5, '#393D49']
, skin: 'layui-layer-molv'
, content: 'password'
, area: ['500px', '550px']
, resize: false
, btn: ['保存', '取消']
, yes: function (index, layero) {
var iframeWin = window[layero.find('iframe')[0]['name']];
iframeWin.$("#btn").click();
var data =iframeWin.data;
if (data!=null){
data.username = "[[${username}]]";
data.oldPassword = $.md5(data.oldPassword);
data.newPwd = $.md5(data.newPwd);
$.post('user/password', data, function (res) {
if (res.code === 200) {
layer.msg(res.msg,{icon:1});
window.setTimeout(function() {
window.location.href = "logout";
},2000)
} else {
layer.msg(res.msg, {icon:2})
}
});
}
}
, btn2: function (index, layero) {
layer.close(index)
}
});
}*/
</script>
</body>
</html>
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