Commit adf5dfe2 authored by wangjinjing's avatar wangjinjing

init

parent ad881afb
Pipeline #54 failed with stages
package im.dx;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import tk.mybatis.spring.annotation.MapperScan;
@SpringBootApplication
//@MapperScan("im.dx.system.mapper")
//@PropertySource("file:${spring.profiles.path}")
public class ShiroActionApplication {
public static void main(String[] args) {
SpringApplication.run(ShiroActionApplication.class, args);
}
}
\ No newline at end of file
package im.dx.common.config;
import im.dx.system.model.JobLJTParam;
import im.dx.system.service.AlgorithmPreprocessService;
import im.dx.system.service.CutpictureService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Configuration
@EnableScheduling
public class ScheduleTaskConfig {
private static final Logger log = LoggerFactory.getLogger(ScheduleTaskConfig.class);
@Autowired
private AlgorithmPreprocessService algorithmpreProcessService;
@Resource
private CutpictureService cutpictureService;
/***
* 从三点开始每小时执行一遍,查看表里是否有需要启动或者停止的任务
* 该功能只针对调用垃圾桶溢出等算法任务
*/
@Scheduled(cron = "0 0 * * * ?")
private void startOrStopAlgorithmTask() {
//查询表中需要开启的数据
List<JobLJTParam> jobLJTResultList= algorithmpreProcessService.querytask(5,1);
//停止任务
for(JobLJTParam jobParam:jobLJTResultList)
{
//调用开启任务的服务
Map result=cutpictureService.StartTask(jobParam.getDeviceNum(), jobParam.getParams().get("taskId").toString());
if (null != result.get("errorCode") &&result.get("errorCode").toString().equals("0")) {
jobParam.setStatus(3);
algorithmpreProcessService.update(jobParam);
} else {
log.error("StartTask error {}", result.get("errorCode"), result.get("errorMsg"));
}
}
//查询表中需要停止的数据
List<JobLJTParam> jobLJTStopResultList= algorithmpreProcessService.querytask(new Date().getHours(),0);
for(JobLJTParam jobParam:jobLJTStopResultList) {
//停止任务
Map result = cutpictureService.StopTask(jobParam.getDeviceNum(), jobParam.getParams().get("taskId").toString());
if (null != result.get("errorCode") && result.get("errorCode").toString().equals("0")) {
jobParam.setStatus(2);
algorithmpreProcessService.update(jobParam);
} else {
log.error("StopTask error {}", result.get("errorCode"), result.get("errorMsg"));
}
}
}
}
...@@ -8,7 +8,7 @@ import org.springframework.web.context.request.WebRequest; ...@@ -8,7 +8,7 @@ import org.springframework.web.context.request.WebRequest;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@Component //@Component
public class MyErrorAttributes extends DefaultErrorAttributes { public class MyErrorAttributes extends DefaultErrorAttributes {
@Override @Override
...@@ -17,7 +17,7 @@ public class MyErrorAttributes extends DefaultErrorAttributes { ...@@ -17,7 +17,7 @@ public class MyErrorAttributes extends DefaultErrorAttributes {
Object code = webRequest.getAttribute("code", RequestAttributes.SCOPE_REQUEST); Object code = webRequest.getAttribute("code", RequestAttributes.SCOPE_REQUEST);
Object message = webRequest.getAttribute("msg", RequestAttributes.SCOPE_REQUEST); Object message = webRequest.getAttribute("msg", RequestAttributes.SCOPE_REQUEST);
map.put("code", code); map.put("code", code);
map.put("msg", message); map.put("msg", "超时!");
return map; return map;
} }
} }
...@@ -52,79 +52,79 @@ public class WebExceptionHandler { ...@@ -52,79 +52,79 @@ public class WebExceptionHandler {
@ExceptionHandler @ExceptionHandler
public String unauthorized(NoHandlerFoundException e) { public String unauthorized(NoHandlerFoundException e) {
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("请求的地址不存在", e); log.debug("请求的地址不存在", e);
} }
return generateErrorInfo(ResultBean.FAIL, "请求的地址不存在", HttpStatus.NOT_FOUND.value()); return generateErrorInfo(ResultBean.FAIL, "请求的地址不存在", HttpStatus.NOT_FOUND.value());
} }
@ExceptionHandler(value = {UnauthorizedException.class}) @ExceptionHandler(value = {UnauthorizedException.class})
public String unauthorized(Exception e) { public String unauthorized(Exception e) {
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("无权限"); log.debug("无权限");
} }
return generateErrorInfo(ResultBean.FAIL, "无权限"); return generateErrorInfo(ResultBean.FAIL, "无权限");
} }
@ExceptionHandler @ExceptionHandler
public String unknownAccount(UnknownAccountException e) { public String unknownAccount(UnknownAccountException e) {
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("账号不存在"); log.debug("账号不存在");
} }
return generateErrorInfo(ResultBean.FAIL, "账号不存在"); return generateErrorInfo(ResultBean.FAIL, "账号不存在");
} }
@ExceptionHandler @ExceptionHandler
public String incorrectCredentials(IncorrectCredentialsException e) { public String incorrectCredentials(IncorrectCredentialsException e) {
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("密码错误"); log.debug("密码错误");
} }
return generateErrorInfo(ResultBean.FAIL, "密码错误"); return generateErrorInfo(ResultBean.FAIL, "密码错误");
} }
@ExceptionHandler @ExceptionHandler
public String excessiveAttemptsException(ExcessiveAttemptsException e) { public String excessiveAttemptsException(ExcessiveAttemptsException e) {
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("登录失败次数过多"); log.debug("登录失败次数过多");
} }
return generateErrorInfo(ResultBean.FAIL, "登录失败次数过多, 请稍后再试"); return generateErrorInfo(ResultBean.FAIL, "登录失败次数过多, 请稍后再试");
} }
@ExceptionHandler @ExceptionHandler
public String lockedAccount(LockedAccountException e) { public String lockedAccount(LockedAccountException e) {
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("账号已锁定"); log.debug("账号已锁定");
} }
return generateErrorInfo(ResultBean.FAIL, "账号已锁定"); return generateErrorInfo(ResultBean.FAIL, "账号已锁定");
} }
@ExceptionHandler @ExceptionHandler
public String lockedAccount(CaptchaIncorrectException e) { public String lockedAccount(CaptchaIncorrectException e) {
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("验证码错误"); log.debug("验证码错误");
} }
return generateErrorInfo(ResultBean.FAIL, "验证码错误"); return generateErrorInfo(ResultBean.FAIL, "验证码错误");
} }
@ExceptionHandler @ExceptionHandler
public String lockedAccount(DuplicateNameException e) { public String lockedAccount(DuplicateNameException e) {
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("用户名已存在"); log.debug("用户名已存在");
} }
return generateErrorInfo(ResultBean.FAIL, "用户名已存在"); return generateErrorInfo(ResultBean.FAIL, "用户名已存在");
} }
@ExceptionHandler @ExceptionHandler
public String missingRequestParameter(MissingServletRequestParameterException e) { public String missingRequestParameter(MissingServletRequestParameterException e) {
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("请求参数无效"); log.debug("请求参数无效");
} }
return generateErrorInfo(ResultBean.FAIL, "请求参数缺失"); return generateErrorInfo(ResultBean.FAIL, "请求参数缺失");
} }
@ExceptionHandler @ExceptionHandler
public String methodArgumentNotValid(BindException e) { public String methodArgumentNotValid(BindException e) {
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("参数校验失败", e); log.debug("参数校验失败", e);
} }
List<ObjectError> allErrors = e.getBindingResult().getAllErrors(); List<ObjectError> allErrors = e.getBindingResult().getAllErrors();
StringBuilder errorMessage = new StringBuilder(); StringBuilder errorMessage = new StringBuilder();
...@@ -140,19 +140,19 @@ public class WebExceptionHandler { ...@@ -140,19 +140,19 @@ public class WebExceptionHandler {
@ExceptionHandler @ExceptionHandler
public String all(Exception e) { public String all(Exception e) {
String msg = e.getMessage() == null ? "系统出现异常" : e.getMessage(); String msg = e.getMessage() == null ? "系统出现异常" : e.getMessage();
log.error(msg, e); log.error(msg, e);
generateErrorInfo(ResultBean.FAIL, msg, HttpStatus.INTERNAL_SERVER_ERROR.value()); generateErrorInfo(ResultBean.FAIL, msg, HttpStatus.INTERNAL_SERVER_ERROR.value());
return "forward:/error"; return "forward:/error";
} }
/** /**
* 生成错误信息, 放到 request 域中. * 生成错误信息, 放到 request 域中.
* *
* @param code 错误码 * @param code 错误码
* @param msg 错误信息 * @param msg 错误信息
* @param httpStatus HTTP 状态码 * @param httpStatus HTTP 状态码
* @return SpringBoot 默认提供的 /error Controller 处理器 * @return SpringBoot 默认提供的 /error Controller 处理器
*/ */
private String generateErrorInfo(int code, String msg, int httpStatus) { private String generateErrorInfo(int code, String msg, int httpStatus) {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
...@@ -164,14 +164,14 @@ public class WebExceptionHandler { ...@@ -164,14 +164,14 @@ public class WebExceptionHandler {
/** /**
* 捕获 ClientAbortException 异常, 不做任何处理, 防止出现大量堆栈日志输出, 此异常不影响功能. * 捕获 ClientAbortException 异常, 不做任何处理, 防止出现大量堆栈日志输出, 此异常不影响功能.
*/ */
@ExceptionHandler({HttpMediaTypeNotAcceptableException.class, ClientAbortException.class}) @ExceptionHandler({HttpMediaTypeNotAcceptableException.class, ClientAbortException.class})
@ResponseBody @ResponseBody
@ResponseStatus @ResponseStatus
public void clientAbortException(Exception ex) { public void clientAbortException(Exception ex) {
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("出现了断开异常:", ex); log.debug("出现了断开异常:", ex);
} }
} }
......
package im.dx.common.information;
import java.math.BigDecimal;
/**
* 精确的浮点数运算
*/
public class Arith {
/**
* 默认除法运算精度
*/
private static final int DEF_DIV_SCALE = 10;
/**
* 这个类不能实例化
*/
private Arith() {
}
/**
* 提供精确的加法运算。
*
* @param v1 被加数
* @param v2 加数
* @return 两个参数的和
*/
public static double add(double v1, double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.add(b2).doubleValue();
}
/**
* 提供精确的减法运算。
*
* @param v1 被减数
* @param v2 减数
* @return 两个参数的差
*/
public static double sub(double v1, double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.subtract(b2).doubleValue();
}
/**
* 提供精确的乘法运算。
*
* @param v1 被乘数
* @param v2 乘数
* @return 两个参数的积
*/
public static double mul(double v1, double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.multiply(b2).doubleValue();
}
/**
* 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到
* 小数点以后10位,以后的数字四舍五入。
*
* @param v1 被除数
* @param v2 除数
* @return 两个参数的商
*/
public static double div(double v1, double v2) {
return div(v1, v2, DEF_DIV_SCALE);
}
/**
* 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指
* 定精度,以后的数字四舍五入。
*
* @param v1 被除数
* @param v2 除数
* @param scale 表示表示需要精确到小数点以后几位。
* @return 两个参数的商
*/
public static double div(double v1, double v2, int scale) {
if (scale < 0) {
throw new IllegalArgumentException(
"The scale must be a positive integer or zero");
}
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
if (b1.compareTo(BigDecimal.ZERO) == 0) {
return BigDecimal.ZERO.doubleValue();
}
return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
}
/**
* 提供精确的小数位四舍五入处理。
*
* @param v 需要四舍五入的数字
* @param scale 小数点后保留几位
* @return 四舍五入后的结果
*/
public static double round(double v, int scale) {
if (scale < 0) {
throw new IllegalArgumentException(
"The scale must be a positive integer or zero");
}
BigDecimal b = new BigDecimal(Double.toString(v));
BigDecimal one = new BigDecimal("1");
return b.divide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
}
}
\ No newline at end of file
package im.dx.common.shiro;
import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken;
import org.apache.shiro.authc.pam.AuthenticationStrategy;
import org.apache.shiro.authc.pam.ModularRealmAuthenticator;
import org.apache.shiro.realm.Realm;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Collection;
/**
* 在 Shiro 使用多 Realm 时, 对于 Realm 中抛出的异常, 他都会进行捕获, 然后输出日志.
* 但我们系统有统一异常处理, 所以不需要他捕获我们的自定义异常, 这里将异常抛出.
*/
public class EnhanceModularRealmAuthenticator extends ModularRealmAuthenticator {
private static final Logger log = LoggerFactory.getLogger(EnhanceModularRealmAuthenticator.class);
/**
* 抛出 realm 中第一个遇到的异常
*/
@Override
protected AuthenticationInfo doMultiRealmAuthentication(Collection<Realm> realms, AuthenticationToken token) {
AuthenticationStrategy strategy = getAuthenticationStrategy();
AuthenticationInfo aggregate = strategy.beforeAllAttempts(realms, token);
if (log.isTraceEnabled()) {
log.trace("Iterating through {} realms for PAM authentication", realms.size());
}
for (Realm realm : realms) {
aggregate = strategy.beforeAttempt(realm, token, aggregate);
if (realm.supports(token)) {
log.trace("Attempting to authenticate token [{}] using realm [{}]", token, realm);
AuthenticationInfo info;
// 有异常从此处抛出
info = realm.getAuthenticationInfo(token);
aggregate = strategy.afterAttempt(realm, token, info, aggregate, null);
} else {
log.debug("Realm [{}] does not support token {}. Skipping realm.", realm, token);
}
}
aggregate = strategy.afterAllAttempts(token, aggregate);
return aggregate;
}
}
\ No newline at end of file
package im.dx.common.util;
import java.awt.*;
import java.awt.color.ColorSpace;
import java.awt.image.BufferedImage;
import java.util.Random;
/**
* 验证码工具类
*/
public class CaptchaUtil {
/**
* 生成验证码
* @param width 验证码宽度
* @param height 验证码高度
* @param codeCount 验证码个数
* @param lineCount 干扰线个数
* @param lineLenght 干扰线长度
* @return 验证码对象
*/
public static Captcha createCaptcha(int width, int height, int codeCount, int lineCount, int lineLenght) {
BufferedImage image = new BufferedImage(width, height, ColorSpace.TYPE_Lab);
Graphics g = image.getGraphics();
Random random = new Random();
// 取颜色区间中较淡的部分
g.setColor(getRandColor(200, 250));
g.fillRect(0, 0, width, height);
g.setFont(new Font("Times New Roman", Font.PLAIN, 20));
g.setColor(getRandColor(160,200));
// 干扰线
for (int i = 0; i < lineCount; ++i) {
int x = random.nextInt(width);
int y = random.nextInt(height);
int xLength = random.nextInt(lineLenght);
int yLength = random.nextInt(lineLenght);
g.drawLine(x, y, x + xLength, y + yLength);
}
StringBuilder code = new StringBuilder();
// 生成验证码
for (int i = 0; i < codeCount; ++i) {
String rand = String.valueOf(random.nextInt(10));
code.append(rand);
g.setColor(new Color(20 + random.nextInt(110), 20 + random.nextInt(110), 20 + random.nextInt(110)));
g.drawString(rand, (width / codeCount) * i + (width / codeCount / 2), height / 2 + 9);
}
g.dispose();
return new Captcha(code.toString(), image);
}
/**
* 给定范围内获取颜色值
*/
private static Color getRandColor(int fc, int bc) {
Random random = new Random();
if (fc > 255) {
fc = 255;
}
if (bc > 255) {
bc = 255;
}
int r = fc + random.nextInt(bc - fc);
int g = fc + random.nextInt(bc - fc);
int b = fc + random.nextInt(bc - fc);
return new Color(r, g, b);
}
/**
* 验证码对象
*/
public static class Captcha {
private final String code;
private final BufferedImage image;
public String getCode() {
return code;
}
public BufferedImage getImage() {
return image;
}
private Captcha(String code, BufferedImage image) {
this.code = code;
this.image = image;
}
}
}
package im.dx.common.util;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.text.SimpleDateFormat;
/**
* JSON工具类
*/
public class JsonUtil {
private static final Logger log = LoggerFactory.getLogger(JsonUtil.class);
private final static ObjectMapper objectMapper = new ObjectMapper();
private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
static {
// 对象的所有字段全部列入
objectMapper.setSerializationInclusion(JsonInclude.Include.ALWAYS);
// 取消默认转换timestamps形式
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
// 忽略空bean转json的错误
objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
// 统一日期格式
objectMapper.setDateFormat(new SimpleDateFormat(DATE_FORMAT));
// 忽略在json字符串中存在, 但在java对象中不存在对应属性的情况, 防止错误
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
}
public static <T> String objToStr(T obj) {
if (null == obj) {
return null;
}
try {
return obj instanceof String ? (String) obj : objectMapper.writeValueAsString(obj);
} catch (Exception e) {
log.warn("objToStr error: ", e);
return null;
}
}
public static <T> T strToObj(String str, Class<T> clazz) {
if (StringUtils.isBlank(str) || null == clazz) {
return null;
}
try {
return clazz.equals(String.class) ? (T) str : objectMapper.readValue(str, clazz);
} catch (Exception e) {
log.warn("strToObj error: ", e);
return null;
}
}
public static <T> T strToObj(String str, TypeReference<T> typeReference) {
if (StringUtils.isBlank(str) || null == typeReference) {
return null;
}
try {
return (T) (typeReference.getType().equals(String.class) ? str : objectMapper.readValue(str,
typeReference));
} catch (Exception e) {
log.error("strToObj error", e);
return null;
}
}
}
package im.dx.system.controller;
import com.github.pagehelper.PageInfo;
import im.dx.common.annotation.OperationLog;
import im.dx.common.util.PageResultBean;
import im.dx.common.util.ResultBean;
import im.dx.system.model.Code;
import im.dx.system.model.VideoeRecordType;
import im.dx.system.service.CodeService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
@RestController
@RequestMapping("/code")
public class CodeController {
@Resource
private CodeService codeService;
@OperationLog("获取code列表")
@GetMapping("/list")
@ResponseBody
public PageResultBean<Code> getList(@RequestParam(value = "page", defaultValue = "1") int page,
@RequestParam(value = "limit", defaultValue = "10") int limit) {
List<Code> codes = codeService.selectAllWithKey(page, limit);
PageInfo<Code> userPageInfo = new PageInfo<>(codes);
return new PageResultBean<>(userPageInfo.getTotal(), userPageInfo.getList());
}
@OperationLog("获取指定type的code列表")
@GetMapping("/list/{typeid}")
@ResponseBody
public ResultBean getList(@PathVariable("typeid") String typeid) {
List<Code> codes = codeService.selectAllWithType(typeid);
return ResultBean.success(codes);
};
@OperationLog("更新code")
@PostMapping("/update")
public ResultBean update(@RequestBody List<Code> codelist) {
int result = codeService.updatecode(codelist);
return ResultBean.success();
}
@OperationLog("新增")
@PostMapping("/add")
public ResultBean add(@RequestBody List<Code> codelist) {
int result = codeService.addcode(codelist);
return ResultBean.success();
}
@OperationLog("新增videoalarm")
@PostMapping("/addvideoeRecordType")
public ResultBean VideoeRecordType(@RequestBody VideoeRecordType videoeRecordType) {
//判断存不存在
int resultexixsts= codeService.selectvideoeRecordType(videoeRecordType);
if(resultexixsts>0){
return ResultBean.success("1");
}
int result = codeService.addvideoeRecordType(videoeRecordType);
return ResultBean.success();
}
@OperationLog("更新用户列表")
@GetMapping("/codetest")
public void test() {
List<Code> codes = codeService.selectAllWithKey(1, 10);
}
@OperationLog("更新code time")
@PostMapping("/updatetime")
public ResultBean updatetime(@RequestBody List<Code> codelist) {
int result = codeService.updatetime(codelist);
return ResultBean.success();
}
@OperationLog("禁用账号")
@PostMapping("/{codeId}/disable")
@ResponseBody
public ResultBean disable(@PathVariable("codeId") String codeId) {
return ResultBean.success(codeService.disableCodeByCodeID(codeId));
}
@OperationLog("激活账号")
@PostMapping("/{codeId}/enable")
@ResponseBody
public ResultBean enable(@PathVariable("codeId") String codeId) {
return ResultBean.success(codeService.enableCodeByCodeID(codeId));
}
@GetMapping("/update/{name}/{alarmlevel}")
public ResultBean update(@PathVariable("name") String name, @PathVariable("alarmlevel") String alarmlevel) {
//更新手动状态
return ResultBean.success(codeService.updatemanualcode(name,alarmlevel));
}
}
\ No newline at end of file
package im.dx.system.controller;
import im.dx.common.util.ResultBean;
import im.dx.system.model.vo.UrlVO;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.mvc.condition.PatternsRequestCondition;
import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
import javax.annotation.Resource;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
@Controller
public class CommonPageController {
@Resource
private WebApplicationContext applicationContext;
@GetMapping("/403")
public String forbidden() {
return "error/403";
}
@GetMapping("/404")
public String unauthorizedPage() {
return "error/404";
}
@GetMapping("/500")
public String error() {
return "error/500";
}
/**
* 获取 @RequestMapping 中配置的所有 URL.
* @param keyword 关键字: 过滤条件
* @return URL 列表.
*/
@GetMapping("/system/urls")
@ResponseBody
public ResultBean getUrl(@RequestParam(defaultValue = "") String keyword) {
RequestMappingHandlerMapping mapping = applicationContext.getBean(RequestMappingHandlerMapping.class);
// 获取url与类和方法的对应信息
Map<RequestMappingInfo, HandlerMethod> map = mapping.getHandlerMethods();
Set<UrlVO> urlSet = new HashSet<>();
for (Map.Entry<RequestMappingInfo, HandlerMethod> m : map.entrySet()) {
// URL 类型, JSON 还是 VIEW
String type = "view";
if (isResponseBodyUrl(m.getValue())){
type = "json";
}
// URL 地址和 URL 请求 METHOD
RequestMappingInfo info = m.getKey();
PatternsRequestCondition p = info.getPatternsCondition();
// 一个 @RequestMapping, 可能有多个 URL.
for (String url : p.getPatterns()) {
// 根据 keyword 过滤 URL
if (url.contains(keyword)) {
// 获取这个 URL 支持的所有 http method, 多个以逗号分隔, 未配置返回 ALL.
Set<RequestMethod> methods = info.getMethodsCondition().getMethods();
String method = "ALL";
if (methods.size() != 0) {
method = StringUtils.collectionToDelimitedString(methods, ",");
}
urlSet.add(new UrlVO(url, method, type));
}
}
}
return ResultBean.success(urlSet);
}
/**
* 判断是否返回 JSON, 判断方式有两种:
* 1. 类上标有 ResponseBody 或 RestController 注解
* 2. 方法上标有 ResponseBody 注解
*/
private boolean isResponseBodyUrl(HandlerMethod handlerMethod) {
return handlerMethod.getBeanType().getDeclaredAnnotation(RestController.class) != null ||
handlerMethod.getBeanType().getDeclaredAnnotation(ResponseBody.class) != null ||
handlerMethod.getMethodAnnotation(ResponseBody.class) != null;
}
}
\ No newline at end of file
package im.dx.system.controller;
import im.dx.common.annotation.OperationLog;
import im.dx.common.shiro.ShiroActionProperties;
import im.dx.common.util.ResultBean;
import im.dx.common.util.TreeUtil;
import im.dx.system.model.Dept;
import im.dx.system.model.DeptVideo;
import im.dx.system.service.DeptService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Controller
@RequestMapping("/dept")
public class DeptController {
@Resource
private DeptService deptService;
@Resource
private ShiroActionProperties shiroActionProperties;
@Value("${managername}")
private String managername;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@GetMapping("/index")
public String index() {
return "dept/dept-list";
}
@OperationLog("获取部门列表")
@GetMapping("/list")
@ResponseBody
public ResultBean getList(@RequestParam(value="parentId",required = false) Integer parentId) {
List<Dept> deptList = deptService.selectByParentId(parentId);
return ResultBean.success(deptList);
}
@GetMapping("/tree/root")
@ResponseBody
public ResultBean treeAndRoot() {
return ResultBean.success(deptService.selectAllTreeAndRoot());
}
@GetMapping("/tree")
@ResponseBody
public ResultBean tree() {
return ResultBean.success(deptService.selectAllTree());
}
@GetMapping
public String add() {
return "dept/dept-add";
}
@OperationLog("新增部门")
@ResponseBody
@RequestMapping(value = "/add", method = RequestMethod.POST)
public ResultBean add(Dept dept) {
if(null==dept.getDeptId() ||dept.getDeptId().equals(""))
{
dept.setDeptId(deptService.selectMaxOrderNum()+1);
}
dept.setCreateTime(sdf.format(new Date()));
dept.setModifyTime(dept.getCreateTime());
return ResultBean.success(deptService.insert(dept));
}
@OperationLog("删除部门")
@DeleteMapping("/{deptId}")
@ResponseBody
public ResultBean delete(@PathVariable("deptId") Integer deptId) {
deptService.deleteCascadeByID(deptId);
return ResultBean.success();
}
@OperationLog("修改部门")
@ResponseBody
@RequestMapping(value = "/update", method = RequestMethod.POST)
public ResultBean update(Dept dept) {
dept.setModifyTime(sdf.format(new Date()));
deptService.updateByPrimaryKey(dept);
return ResultBean.success();
}
@GetMapping("/{deptId}")
public ResultBean update(@PathVariable("deptId") String deptId) {
List<Map> dept = deptService.selectByPrimaryKey(deptId);
return ResultBean.success(dept);
}
@GetMapping("/getDeptParent/{deptId}")
@ResponseBody
public ResultBean getDeptParent(@PathVariable("deptId") String deptId) {
List<Map> dept = deptService.selectByPrimaryKey(deptId);
return ResultBean.success(dept);
}
@OperationLog("调整部门排序")
@PostMapping("/swap")
@ResponseBody
public ResultBean swapSort(Integer currentId, Integer swapId) {
deptService.swapSort(currentId, swapId);
return ResultBean.success();
}
@OperationLog("查询部门及監控")
@GetMapping("/listvideo")
@ResponseBody
public ResultBean listvideo( @RequestParam("deptId") String deptId,@RequestParam("username") String username,@RequestParam("tdmc")String tdmc) {
if (null!=username && (shiroActionProperties.getSuperAdminUsername().equals(username)
||username.equalsIgnoreCase(managername))) {
deptId = "0";
username=null;
}
List<DeptVideo> deptlist=deptService.listvideo(deptId, username,tdmc);
return ResultBean.success(deptlist);
}
@OperationLog("查询部门及監控")
@GetMapping("/listvideotree")
@ResponseBody
public ResultBean listvideotree( @RequestParam("deptId") String deptId,@RequestParam("username") String username,@RequestParam("tdmc")String tdmc) {
if (null!=username && (shiroActionProperties.getSuperAdminUsername().equals(username)
||username.equalsIgnoreCase(managername))) {
deptId = "0";
username=null;
}
List<DeptVideo> deptlist=deptService.listvideo(deptId, username,tdmc);
List<DeptVideo> list= TreeUtil.toTree(deptlist,"deptId","parentId","nodes",DeptVideo.class,deptId);
return ResultBean.success(list);
}
@OperationLog("查询部门及其子節點")
@GetMapping("/listChildDept")
@ResponseBody
public ResultBean listChildDept( @RequestParam("deptId") Integer deptId,@RequestParam("username") String username) {
if (null!=username && (shiroActionProperties.getSuperAdminUsername().equals(username)
||username.equalsIgnoreCase(managername))) {
deptId =0;
username=null;
}
List<Dept> deptlist=deptService.selectDeptChildren(deptId, username);
return ResultBean.success(deptlist);
}
@OperationLog("更新部門默認監控")
@PostMapping("/updateDefaultVideo")
@ResponseBody
public ResultBean updateDefaultVideo( @RequestParam("deptId") String deptId,@RequestParam("videoId") String videoId) {
int result=deptService.updateDefaultVideoByDeptId(deptId, videoId);
if(result>0) {
return ResultBean.success();
}else {
return ResultBean.error("更新失敗");
}
}
@OperationLog("查詢部門默認監控")
@GetMapping("/queryDefaultVideoId")
@ResponseBody
public ResultBean queryDefaultVideo( @RequestParam("deptId") String deptId) {
return ResultBean.success(deptService.selectDefaultVideoByDeptId(deptId));
}
@OperationLog("查詢所有部門默認監控")
@GetMapping("/queryAllDefaultVideo")
@ResponseBody
public ResultBean queryAllDefaultVideo( @RequestParam("deptId") String deptId) {
return ResultBean.success(deptService.selectAllDefaultVideo(deptId));
}
@OperationLog("新增部門默認監控")
@PostMapping("/insertDefaultVideo")
@ResponseBody
public ResultBean insertDefaultVideo( @RequestParam("deptId") String deptId,
@RequestParam("videoId[]") List<String> videoId) {
for(String videoid:videoId)
{
//判断是否存在
int result= deptService.selectExistsDefaultVideo(deptId,videoid);
if(result==0){
deptService.insertDefaultVideo(deptId,videoid);
}
}
return ResultBean.success();
}
@OperationLog("查询所有监控")
@GetMapping("/listAllvideoIdsByDeptid")
@ResponseBody
public ResultBean listAllvideoIdsByDeptid(@RequestParam("deptid") String deptid) {
List<Map> deptList = deptService.listAllvideoIdsByDeptid(deptid);
return ResultBean.success(deptList);
}
}
package im.dx.system.controller;
import com.github.pagehelper.PageInfo;
import im.dx.common.annotation.OperationLog;
import im.dx.common.shiro.ShiroActionProperties;
import im.dx.common.util.PageResultBean;
import im.dx.common.util.ResultBean;
import im.dx.common.util.TreeUtil;
import im.dx.system.model.*;
import im.dx.system.service.DeptTreeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
@Controller
@RequestMapping("/depttree")
public class DeptTreeController {
@Resource
private DeptTreeService deptTreeService;
@Resource
private ShiroActionProperties shiroActionProperties;
@Value("${file.taskurl}")
private String taskurl;
@Autowired
private RestTemplate restTemplate;
@GetMapping("/index")
public String index() {
return "dept/dept-list";
}
@OperationLog("获取部门列表")
@GetMapping("/list")
@ResponseBody
public ResultBean getList(@RequestParam(required = false) String parentId) {
List<DeptTree> deptList = deptTreeService.selectByParentId(parentId);
return ResultBean.success(deptList);
}
@GetMapping("/tree/root")
@ResponseBody
public ResultBean treeAndRoot() {
return ResultBean.success(deptTreeService.selectAllDeptTreeAndRoot());
}
@GetMapping("/tree")
@ResponseBody
public ResultBean tree() {
return ResultBean.success( TreeUtil.toTree(deptTreeService.selectAllDeptTree("0"),"deptId","parentId","children",DeptTree.class,"0"));
}
@GetMapping("/alltree")
@ResponseBody
public ResultBean alltree() {
return ResultBean.success( deptTreeService.selectAllDeptTree("0"));
}
@GetMapping("/videotree/{deptId}")
@ResponseBody
public ResultBean videotree(@PathVariable("deptId") String deptId) {
List<DeptTree> dept= deptTreeService.selectAllVideoTree("0");
return ResultBean.success(TreeUtil.toTree(dept,"deptId","parentId","children",DeptTree.class,"0"));
}
@GetMapping
public String add() {
return "dept/dept-add";
}
// @OperationLog("新增部门")
// @PostMapping
// @ResponseBody
// public ResultBean add(DeptTree dept) {
// if(null==dept.getDeptId() ||dept.getDeptId().equals(""))
// {
// dept.setDeptId(deptTreeService.selectMaxOrderNum()+1);
// }
// dept.setCreateTime(sdf.format(new Date()));
// dept.setModifyTime(dept.getCreateTime());
// return ResultBean.success(deptTreeService.insert(dept));
// }
@OperationLog("删除部门")
@DeleteMapping("/{deptId}")
@ResponseBody
public ResultBean delete(@PathVariable("deptId") String deptId) {
deptTreeService.deleteCascadeByID(deptId);
return ResultBean.success();
}
@OperationLog("修改部门")
@PutMapping
@ResponseBody
public ResultBean update(DeptTree dept) {
dept.setModifyTime(dept.getCreateTime());
deptTreeService.updateByPrimaryKey(dept);
return ResultBean.success();
}
@GetMapping("/{deptId}")
public String update(@PathVariable("deptId") String taskno, Model model) {
DeptTree dept = deptTreeService.selectByPrimaryKey(taskno);
model.addAttribute("dept", dept);
return "dept/dept-add";
}
@OperationLog("调整部门排序")
@PostMapping("/swap")
@ResponseBody
public ResultBean swapSort(Integer currentId, Integer swapId) {
deptTreeService.swapSort(currentId, swapId);
return ResultBean.success();
}
@OperationLog("获取部门列表")
@GetMapping("/listByUsername")
@ResponseBody
public ResultBean listByUsername(@RequestParam(required = false) String parentId,String username) {
if (null!=username && shiroActionProperties.getSuperAdminUsername().equals(username)) {
parentId = "0";
}
List<DeptTree> deptList = deptTreeService.selectAllDeptTree(parentId);
return ResultBean.success(deptList);
}
@OperationLog("获取角色所管辖事件监控")
@GetMapping("/listeventByvideoid/{userID}")
@ResponseBody
public ResultBean listeventByvideoid(@PathVariable("userID") String userID) {
String[] eventids = deptTreeService.listeventByvideoid(userID);
return ResultBean.success(eventids);
}
@OperationLog("获取监控控制的事件")
@GetMapping("/recordtype/list")
@ResponseBody
public PageResultBean<Map> getrecordtypeList(@RequestParam(required = false) String parentId,
@RequestParam(required = false) int page,
@RequestParam(required = false) int limit
) {
List<Map> menuList =
deptTreeService.selectVideoeRecordType(parentId, page, limit);
PageInfo<Map> rolePageInfo = new PageInfo<>(menuList);
return new PageResultBean<>(rolePageInfo.getTotal(), rolePageInfo.getList());
}
@OperationLog("删除监控控制的事件")
@GetMapping("/delvideorecord/{taskno}/{status}")
@ResponseBody
public TaskResultObj delvideorecord(@PathVariable("taskno") String taskno,@PathVariable("status") String status) {
//调用任务删除的第三方接口
JobParam jobParam=new JobParam();
if(taskno.split("_").length>1)
jobParam.setDetectType(taskno.split("_")[2]);
jobParam.setType(status);
jobParam.setDeviceId(taskno.split("_")[1]);
//调用第三方接口直接删除
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
HttpEntity<JobParam> requestEntity = new HttpEntity<>(jobParam, headers);
return restTemplate.postForObject(taskurl, requestEntity, TaskResultObj.class);
}
}
package im.dx.system.controller;
import im.dx.common.util.DateUtils;
import im.dx.system.model.Menu;
import im.dx.system.service.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@Controller
@Slf4j
public class IndexController {
@Resource
private MenuService menuService;
@Resource
private LoginLogService loginLogService;
@Resource
private UserService userService;
@Resource
private RoleService roleService;
@Resource
private SysLogService sysLogService;
@Resource
private UserOnlineService userOnlineService;
@Autowired
private RestTemplate restTemplate;
@GetMapping(value = {"/main"})
public String index(Model model) {
List<Menu> menuTreeVOS = menuService.selectCurrentUserMenuTree();
model.addAttribute("menus", menuTreeVOS);
return "main";
}
@GetMapping(value = {"/qxindex"})
public String qxindex(Model model) {
List<Menu> menuTreeVOS = menuService.selectCurrentUserMenuTree();
model.addAttribute("menus", menuTreeVOS);
return "index";
}
@GetMapping(value = {"/pub_index"})
public String pagepub_index(Model model) {
List<Menu> menuTreeVOS = menuService.selectCurrentUserMenuTree();
model.addAttribute("menus", menuTreeVOS);
return "page/pub_index";
}
@GetMapping(value = {"/sjcx"})
public String pagesjcx(Model model) {
List<Menu> menuTreeVOS = menuService.selectCurrentUserMenuTree();
model.addAttribute("menus", menuTreeVOS);
return "page/sjcx";
}
@GetMapping(value = {"/jkgl"})
public String pagejkgl(Model model) {
List<Menu> menuTreeVOS = menuService.selectCurrentUserMenuTree();
model.addAttribute("menus", menuTreeVOS);
return "page/jkgl";
}
@GetMapping(value = {"/sjfx"})
public String pagesjfx(Model model) {
List<Menu> menuTreeVOS = menuService.selectCurrentUserMenuTree();
model.addAttribute("menus", menuTreeVOS);
return "page/sjfx";
}
@GetMapping(value = {"/jgsbgl"})
public String pagejgsbgl(Model model) {
List<Menu> menuTreeVOS = menuService.selectCurrentUserMenuTree();
model.addAttribute("menus", menuTreeVOS);
return "page/jgsbgl";
}
@GetMapping(value = {"/tsgl"})
public String pagetsgl(Model model) {
List<Menu> menuTreeVOS = menuService.selectCurrentUserMenuTree();
model.addAttribute("menus", menuTreeVOS);
return "page/tsgl";
}
@GetMapping(value = {"/xtgl"})
public String pagextgl(Model model) {
List<Menu> menuTreeVOS = menuService.selectCurrentUserMenuTree();
model.addAttribute("menus", menuTreeVOS);
return "page/xtgl";
}
@GetMapping(value = {"/index"})
public String pageindex(Model model) {
List<Menu> menuTreeVOS = menuService.selectCurrentUserMenuTree();
model.addAttribute("menus", menuTreeVOS);
return "page/index";
}
@GetMapping(value = {"/gcjl"})
public String pagegcjl(Model model) {
List<Menu> menuTreeVOS = menuService.selectCurrentUserMenuTree();
model.addAttribute("menus", menuTreeVOS);
return "page/gcjl";
}
@GetMapping(value = {"/test"})
public String test(Model model) {
// List<Menu> menuTreeVOS = menuService.selectCurrentUserMenuTree();
// model.addAttribute("menus", menuTreeVOS);
return "page/test";
}
@GetMapping(value = {"/manualscreen"})
public String manualscreen(Model model) {
List<Menu> menuTreeVOS = menuService.selectCurrentUserMenuTree();
model.addAttribute("menus", menuTreeVOS);
return "page/manualscreen";
}
@GetMapping(value = {"/symrjk"})
public String pagesymrjk(Model model) {
List<Menu> menuTreeVOS = menuService.selectCurrentUserMenuTree();
model.addAttribute("menus", menuTreeVOS);
return "page/symrjk";
}
@GetMapping(value = {"/sjdj"})
public String pagesjdj(Model model) {
List<Menu> menuTreeVOS = menuService.selectCurrentUserMenuTree();
model.addAttribute("menus", menuTreeVOS);
return "page/sjdj";
}
@GetMapping(value = {"/sjts"})
public String pagesjts(Model model) {
List<Menu> menuTreeVOS = menuService.selectCurrentUserMenuTree();
model.addAttribute("menus", menuTreeVOS);
return "page/sjts";
}
@GetMapping(value = {"/sbts"})
public String pagesbts(Model model) {
List<Menu> menuTreeVOS = menuService.selectCurrentUserMenuTree();
model.addAttribute("menus", menuTreeVOS);
return "page/sbts";
}
@GetMapping(value = {"/sjzdbz"})
public String pagesjzdbz(Model model) {
List<Menu> menuTreeVOS = menuService.selectCurrentUserMenuTree();
model.addAttribute("menus", menuTreeVOS);
return "page/sjzdbz";
}
@GetMapping(value = {"/jksj"})
public String jksj(Model model) {
List<Menu> menuTreeVOS = menuService.selectCurrentUserMenuTree();
model.addAttribute("menus", menuTreeVOS);
return "page/jksj";
}
@GetMapping(value = {"/ksh"})
public String pageksh(Model model) {
List<Menu> menuTreeVOS = menuService.selectCurrentUserMenuTree();
model.addAttribute("menus", menuTreeVOS);
return "page/ksh";
}
@GetMapping(value = {"/rgjy"})
public String rgjy(Model model) {
List<Menu> menuTreeVOS = menuService.selectCurrentUserMenuTree();
model.addAttribute("menus", menuTreeVOS);
return "page/rgjy";
}
@GetMapping(value = {"/rwpfhistory"})
public String rwpfhistory(Model model) {
List<Menu> menuTreeVOS = menuService.selectCurrentUserMenuTree();
model.addAttribute("menus", menuTreeVOS);
return "page/rwpfhistory";
}
public static String getMatcher(String regex, String source) {
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(source);
List<String> list = new ArrayList<>();
while (matcher.find()) {
list.add(matcher.group(1));
}
if (list.size() > 1) {
return list.get(list.size() - 2);
}
return null;
}
}
\ No newline at end of file
package im.dx.system.controller;
import cn.hutool.core.util.IdUtil;
import im.dx.common.annotation.OperationLog;
import im.dx.common.shiro.ShiroActionProperties;
import im.dx.common.util.CaptchaUtil;
import im.dx.common.util.DateUtils;
import im.dx.common.util.ResultBean;
import im.dx.system.model.ResultObj;
import im.dx.system.model.User;
import im.dx.system.service.UserService;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.session.Session;
import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.thymeleaf.TemplateEngine;
import javax.annotation.Resource;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
@Controller
public class LoginController {
@Resource
private UserService userService;
@Resource
private TemplateEngine templateEngine;
@Resource
private ShiroActionProperties shiroActionProperties;
@Autowired
private RestTemplate restTemplate;
@GetMapping(value = { "/","/login"})
public String login(Model model) {
model.addAttribute("loginVerify", shiroActionProperties.getLoginVerify());
return "login";
}
@GetMapping("/register")
public String register() {
return "register";
}
@PostMapping("/login")
@ResponseBody
public ResultBean login(User user, @RequestParam(value = "captcha", required = false) String captcha,HttpServletResponse response) {
Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken(user.getUsername(), user.getPassword());
subject.login(token);
userService.updateLastLoginTimeByUsername(user.getUsername(), DateUtils.dateTimeNow("YYYY/MM/dd HH:mm:ss"));
//查询用户操作权限一级菜单
User cuser= userService.selectOneByUserName(user.getUsername());
return ResultBean.success(cuser);
}
@OperationLog("注销")
@GetMapping("/logout")
public String logout() {
SecurityUtils.getSubject().logout();
return "redirect:login";
}
@OperationLog("用户账号查询权限")
@PostMapping("/firstmenu")
@ResponseBody
public ResultBean firstmenu(String username) {
if (null!=username && shiroActionProperties.getSuperAdminUsername().equals(username)) {
username = null;
return ResultBean.success(userService.selectUserFirstMenu(username));
}
else if(null!=username) {
return ResultBean.success(userService.selectUserFirstMenu(username));
}
return ResultBean.success();
}
@OperationLog("用户账号查询权限")
@PostMapping("/secondmenu")
@ResponseBody
public ResultBean firstmenu(Integer menuid,String username) {
if (null!=username && shiroActionProperties.getSuperAdminUsername().equals(username)) {
username = null;
return ResultBean.success(userService.selectUserSecondMenu(menuid,username));
}
else if(null!=username) {
return ResultBean.success(userService.selectUserSecondMenu(menuid,username));
}
return ResultBean.success();
}
/**
* 事件推送测试模拟接口
*
* @return 推送结果
*/
@RequestMapping("/test")
public ResultObj test() {
String message = "{\n" +
" \"type\": \"TRAFFIC_INCIDENT_ALARM\",\n" +
" \"id\": \"d9a2b0f0-f0cf-49b9-9b64-3da86a122afa\",\n" +
" \"video_id\": \"20200305112027144_0\",\n" +
" \"ts\": \"1609310601820\",\n" +
" \"incident_type\": \"no_motor_ban\",\n" +
" \"img_urls\": [\n" +
" \"http://33.57.1.22:8001/api/alg/files/1605126187-20200619143331241059_0-627?location=\",\n" +
" \"http://33.57.1.22:8001/api/alg/files/1605126187-20200619143331241059_0-627?location=\",\n" +
" \"http://33.57.1.22:8001/api/alg/files/1605126187-20200619143331241059_0-627?location=\",\n" +
" \"http://33.57.1.22:8001/api/alg/files/1605126187-20200619143331241059_0-627?location=\",\n" +
" \"http://33.57.1.22:8001/api/alg/files/1605126187-20200619143331241059_0-627?location=\"\n" +
" ],\n" +
" \"video_record_url\": \"http://33.57.1.22:8001/api/alg/files/1605126187-20200619143331241059_0-627?location=\",\n" +
" \"obj_location\": {\n" +
" \"x\": 0.1,\n" +
" \"y\": 0.2,\n" +
" \"width\": 0.4,\n" +
" \"height\": 0.7\n" +
" },\n" +
" \"img_base64\": [\"d0xEMHcFAESwdwaUjWDqB6/1Qw4LapAiSICVTOFWsGT0sgt\"]\n" +
"}";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
HttpEntity<String> requestEntity = new HttpEntity<>(message, headers);
return restTemplate.postForObject("http://localhost:" + 8089 + "/alarmevent", requestEntity, ResultObj.class);
}
}
package im.dx.system.controller;
import com.github.pagehelper.PageInfo;
import im.dx.common.annotation.OperationLog;
import im.dx.common.util.PageResultBean;
import im.dx.system.model.LoginLog;
import im.dx.system.service.LoginLogService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import java.util.List;
@Controller
@RequestMapping("/log/login")
public class LoginLogController {
@Resource
private LoginLogService loginLogService;
@GetMapping("/index")
public String index() {
return "log/login-logs";
}
@OperationLog("查看登录日志")
@GetMapping("/list")
@ResponseBody
public PageResultBean<LoginLog> getList(@RequestParam(value = "page", defaultValue = "1") int page,
@RequestParam(value = "limit", defaultValue = "10")int limit) {
List<LoginLog> loginLogs = loginLogService.selectAll(page, limit);
PageInfo<LoginLog> rolePageInfo = new PageInfo<>(loginLogs);
return new PageResultBean<>(rolePageInfo.getTotal(), rolePageInfo.getList());
}
}
package im.dx.system.controller;
import im.dx.common.annotation.OperationLog;
import im.dx.common.annotation.RefreshFilterChain;
import im.dx.common.util.ResultBean;
import im.dx.system.model.Menu;
import im.dx.system.service.MenuService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Controller
@RequestMapping("/menu")
public class MenuController {
@Resource
private MenuService menuService;
@GetMapping("/index")
public String index() {
return "menu/menu-list";
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@OperationLog("获取菜单列表")
@GetMapping("/list")
@ResponseBody
public ResultBean getList(@RequestParam(required = false) Integer parentId) {
List<Menu> menuList = menuService.selectByParentId(parentId);
return ResultBean.success(menuList);
}
@GetMapping
public String add(Model model) {
return "menu/menu-add";
}
@GetMapping("/tree")
@ResponseBody
public ResultBean tree() {
return ResultBean.success(menuService.getALLTree());
}
@GetMapping("/tree/root")
@ResponseBody
public ResultBean treeAndRoot() {
return ResultBean.success(menuService.getALLMenuTreeAndRoot());
}
@GetMapping("/tree/root/operator")
@ResponseBody
public ResultBean menuAndCountOperatorTreeAndRoot() {
return ResultBean.success(menuService.getALLMenuAndCountOperatorTreeAndRoot());
}
@OperationLog("新增菜单")
@RefreshFilterChain
@PostMapping
@ResponseBody
public ResultBean add(Menu menu) {
menu.setCreateTime(sdf.format(new Date()));
menu.setModifyTime(menu.getCreateTime());
menuService.insert(menu);
return ResultBean.success();
}
@OperationLog("删除菜单")
@RefreshFilterChain
@DeleteMapping("/{menuId}")
@ResponseBody
public ResultBean delete(@PathVariable("menuId") Integer menuId) {
menuService.deleteByIDAndChildren(menuId);
return ResultBean.success();
}
@GetMapping("/{menuId}")
public String updateMenu(@PathVariable("menuId") Integer menuId, Model model) {
Menu menu = menuService.selectByPrimaryKey(menuId);
model.addAttribute("menu", menu);
return "menu/menu-add";
}
@OperationLog("修改菜单")
@RefreshFilterChain
@PutMapping
@ResponseBody
public ResultBean update(Menu menu) {
menu.setModifyTime(sdf.format(new Date()));
menuService.updateByPrimaryKey(menu);
return ResultBean.success();
}
@OperationLog("调整部门排序")
@PostMapping("/swap")
@ResponseBody
public ResultBean swapSort(Integer currentId, Integer swapId) {
menuService.swapSort(currentId, swapId);
return ResultBean.success();
}
}
\ No newline at end of file
package im.dx.system.controller;
import im.dx.common.annotation.OperationLog;
import im.dx.common.constants.AuthcTypeEnum;
import im.dx.common.shiro.OAuth2Helper;
import im.dx.common.util.ResultBean;
import im.dx.common.util.ShiroUtil;
import im.dx.system.model.UserAuths;
import im.dx.system.model.vo.OAuth2VO;
import im.dx.system.service.UserAuthsService;
import me.zhyd.oauth.request.AuthRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
@Controller
@RequestMapping("oauth2")
public class OAuth2Controller {
@Resource
private OAuth2Helper oAuth2Helper;
@Resource
private UserAuthsService userAuthsService;
/**
* 生成 Github 授权地址
*/
@OperationLog("Github OAuth2 登录")
@GetMapping("/render/github")
@ResponseBody
public ResultBean renderGithubAuth(HttpServletResponse response) {
AuthRequest authRequest = oAuth2Helper.getAuthRequest(AuthcTypeEnum.GITHUB);
return ResultBean.successData(authRequest.authorize());
}
/**
* 生成 Gitee 授权地址
*/
@OperationLog("Gitee OAuth2 登录")
@GetMapping("/render/gitee")
@ResponseBody
public ResultBean renderGiteeAuth(HttpServletResponse response) {
AuthRequest authRequest = oAuth2Helper.getAuthRequest(AuthcTypeEnum.GITEE);
return ResultBean.successData(authRequest.authorize());
}
@GetMapping("/index")
public String index() {
return "oauth2/oauth2-list";
}
@OperationLog("获取账号绑定信息")
@GetMapping("/list")
@ResponseBody
public ResultBean list() {
List<OAuth2VO> authsList = new ArrayList<>();
for (AuthcTypeEnum type : AuthcTypeEnum.values()) {
UserAuths auth = userAuthsService.selectOneByIdentityTypeAndUserId(type, ShiroUtil.getCurrentUser().getUserId());
OAuth2VO oAuth2VO = new OAuth2VO();
oAuth2VO.setType(type.name());
oAuth2VO.setDescription(type.getDescription());
oAuth2VO.setStatus(auth == null ? "unbind" : "bind");
oAuth2VO.setUsername(auth == null ? "" : auth.getIdentifier());
authsList.add(oAuth2VO);
}
return ResultBean.success(authsList);
}
/**
* 取消授权
*/
@OperationLog("取消账号绑定")
@GetMapping("/revoke/{provider}")
@ResponseBody
public Object revokeAuth(@PathVariable("provider") AuthcTypeEnum provider) {
UserAuths userAuths = userAuthsService.selectOneByIdentityTypeAndUserId(provider, ShiroUtil.getCurrentUser().getUserId());
if (userAuths == null) {
return ResultBean.error("已经是未绑定状态!");
}
userAuthsService.deleteByPrimaryKey(userAuths.getId());
return ResultBean.success();
}
@GetMapping("/success")
public String success() {
return "oauth2/authorize-success";
}
@GetMapping("/error")
public String error() {
return "oauth2/authorize-error";
}
}
package im.dx.system.controller;
import im.dx.common.annotation.OperationLog;
import im.dx.common.annotation.RefreshFilterChain;
import im.dx.common.util.ResultBean;
import im.dx.system.model.Operator;
import im.dx.system.service.OperatorService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
@Controller
@RequestMapping("/operator")
public class OperatorController {
@Resource
private OperatorService operatorService;
@OperationLog("查看操作日志")
@GetMapping("/index")
public String index() {
return "operator/operator-list";
}
@GetMapping
public String add() {
return "operator/operator-add";
}
@RefreshFilterChain
@PostMapping
@ResponseBody
public ResultBean add(Operator operator) {
operatorService.add(operator);
return ResultBean.success();
}
@GetMapping("/{operatorId}")
public String update(Model model, @PathVariable("operatorId") Integer operatorId) {
Operator operator = operatorService.selectByPrimaryKey(operatorId);
model.addAttribute("operator", operator);
return "operator/operator-add";
}
@RefreshFilterChain
@PutMapping
@ResponseBody
public ResultBean update(Operator operator) {
operatorService.updateByPrimaryKey(operator);
return ResultBean.success();
}
@GetMapping("/list")
@ResponseBody
public ResultBean getList(@RequestParam(required = false) Integer menuId) {
List<Operator> operatorList = operatorService.selectByMenuId(menuId);
return ResultBean.success(operatorList);
}
@RefreshFilterChain
@DeleteMapping("/{operatorId}")
@ResponseBody
public ResultBean delete(@PathVariable("operatorId") Integer operatorId) {
operatorService.deleteByPrimaryKey(operatorId);
return ResultBean.success();
}
@GetMapping("/tree")
@ResponseBody
public ResultBean tree() {
return ResultBean.success(operatorService.getALLMenuAndOperatorTree());
}
}
package im.dx.system.controller;
import com.github.pagehelper.PageInfo;
import im.dx.common.annotation.OperationLog;
import im.dx.common.util.PageResultBean;
import im.dx.common.util.ResultBean;
import im.dx.common.util.TreeUtil;
import im.dx.system.model.Role;
import im.dx.system.model.TaskParams;
import im.dx.system.model.UserRoleTree;
import im.dx.system.service.RoleService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
@Controller
@RequestMapping("/role")
public class RoleController {
@Resource
private RoleService roleService;
@GetMapping("/index")
public String index() {
return "role/role-list";
}
@OperationLog("查询角色列表")
@GetMapping("/list")
@ResponseBody
public PageResultBean<Role> getList(@RequestParam(value = "page", defaultValue = "1") int page,
@RequestParam(value = "limit", defaultValue = "10")int limit,
Role roleQuery) {
List<Role> roles = roleService.selectAll(page, limit, roleQuery);
PageInfo<Role> rolePageInfo = new PageInfo<>(roles);
return new PageResultBean<>(rolePageInfo.getTotal(), rolePageInfo.getList());
}
@GetMapping
public String add() {
return "role/role-add";
}
@OperationLog("新增角色")
@PostMapping
@ResponseBody
public ResultBean add(Role role) {
roleService.add(role);
return ResultBean.success();
}
@GetMapping("/{roleId}")
public String update(@PathVariable("roleId") Integer roleId, Model model) {
Role role = roleService.selectOne(roleId);
model.addAttribute("role", role);
return "role/role-add";
}
@OperationLog("修改角色")
@PutMapping
@ResponseBody
public ResultBean update(Role role) {
roleService.update(role);
return ResultBean.success();
}
@OperationLog("删除角色")
@DeleteMapping("/{roleId}")
@ResponseBody
public ResultBean delete(@PathVariable("roleId") Integer roleId) {
roleService.delete(roleId);
return ResultBean.success();
}
@OperationLog("为角色授予菜单")
@PostMapping("/{roleId}/grant/menu")
@ResponseBody
public ResultBean grantMenu(@PathVariable("roleId") Integer roleId, @RequestParam(value = "menuIds[]", required = false) Integer[] menuIds) {
roleService.grantMenu(roleId, menuIds);
return ResultBean.success();
}
@OperationLog("为角色授予操作权限")
@PostMapping("/{roleId}/grant/operator")
@ResponseBody
public ResultBean grantOperator(@PathVariable("roleId") Integer roleId, @RequestParam(value = "operatorIds[]", required = false) Integer[] operatorIds) {
roleService.grantOperator(roleId, operatorIds);
return ResultBean.success();
}
/**
* 获取角色拥有的菜单
*/
@GetMapping("/{roleId}/own/menu")
@ResponseBody
public ResultBean getRoleOwnMenu(@PathVariable("roleId") Integer roleId) {
return ResultBean.success(roleService.getMenusByRoleId(roleId));
}
/**
* 获取角色拥有的操作权限
*/
@GetMapping("/{roleId}/own/operator")
@ResponseBody
public ResultBean getRoleOwnOperator(@PathVariable("roleId") Integer roleId) {
Integer[] operatorIds = roleService.getOperatorsByRoleId(roleId);
for (int i = 0; i < operatorIds.length; i++) {
operatorIds[i] = operatorIds[i] + 10000;
}
return ResultBean.success(operatorIds);
}
@OperationLog("为角色授予菜单")
@PostMapping("/{roleId}/grant/videorecord")
@ResponseBody
public ResultBean grantVideorecord(@PathVariable("roleId") Integer roleId, @RequestParam(value = "videorecordIds[]", required = false) String[] videorecordIds) {
roleService.grantVideorecord(roleId, videorecordIds);
return ResultBean.success();
}
@OperationLog("查询角色用户树形数据")
@GetMapping("/listAllUsers")
@ResponseBody
public ResultBean listAllUsers() {
return ResultBean.success(roleService.queryRoleUserTree());
}
@OperationLog("给用户添加任务")
@PostMapping("/addtaskinfo")
@ResponseBody
public ResultBean addtaskinfo(@RequestBody TaskParams taskParams) {
return ResultBean.success(roleService.addtaskinfo(taskParams));
}
}
package im.dx.system.controller;
import im.dx.common.util.ResultBean;
import org.apache.shiro.SecurityUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* 安全相关 Controller
*/
@Controller
@RequestMapping("/security")
public class SecurityController {
/**
* 判断当前登录用户是否有某权限
*/
@GetMapping("/hasPermission/{perms}")
@ResponseBody
public ResultBean hasPermission(@PathVariable("perms") String perms) {
return ResultBean.success(SecurityUtils.getSubject().isPermitted(perms));
}
}
package im.dx.system.controller;
import com.github.pagehelper.PageInfo;
import im.dx.common.annotation.OperationLog;
import im.dx.common.util.PageResultBean;
import im.dx.system.model.SysLog;
import im.dx.system.service.SysLogService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import java.util.List;
@Controller
@RequestMapping("/log/sys")
public class SysLogController {
@Resource
private SysLogService sysLogService;
@GetMapping("/index")
public String index() {
return "log/sys-logs";
}
@OperationLog("查看操作日志")
@GetMapping("/list")
@ResponseBody
public PageResultBean<SysLog> getList(@RequestParam(value = "page", defaultValue = "1") int page,
@RequestParam(value = "limit", defaultValue = "10")int limit) {
List<SysLog> loginLogs = sysLogService.selectAll(page, limit);
PageInfo<SysLog> rolePageInfo = new PageInfo<>(loginLogs);
return new PageResultBean<>(rolePageInfo.getTotal(), rolePageInfo.getList());
}
}
package im.dx.system.controller;
import com.github.pagehelper.PageInfo;
import im.dx.common.util.PageResultBean;
import im.dx.common.util.ResultBean;
import im.dx.system.model.*;
import im.dx.system.service.TraffdevicewriteresultService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
@RestController
@RequestMapping("/traffresult")
public class TraffdevicewriteresultController {
@Autowired
private TraffdevicewriteresultService traffdevicewriteresultService;
@Autowired
private RestTemplate restTemplate;
/**
* ��ѯ���ͳɹ���ҳ
*/
@PostMapping("/queryTraffdevicewriteresultByPage")
public PageResultBean<Traffdevicewriteresult> queryTraffdevicewriteresultByPage(TraffdevicewriteresultParams traffdevicewriteresult) {
List<Traffdevicewriteresult> list= traffdevicewriteresultService.queryTraffdevicewriteresultByPage(traffdevicewriteresult);
PageInfo<Traffdevicewriteresult> rolePageInfo = new PageInfo<>(list);
return new PageResultBean<>(rolePageInfo.getTotal(), rolePageInfo.getList());
}
/**
* ��ѯ���м������״̬��ҳ
*/
@PostMapping("/querySbtdspsrResultByPage")
public PageResultBean<SbtdspsrResult> querySbtdspsrResultByPage(SbtdspsrParams sbtdspsr) {
List<SbtdspsrResult> list=traffdevicewriteresultService.querySbtdspsrResultByPage(sbtdspsr);
PageInfo<SbtdspsrResult> rolePageInfo = new PageInfo<>(list);
return new PageResultBean<>(rolePageInfo.getTotal(), rolePageInfo.getList());
}
/**
* ���
*/
@PostMapping("/saveTraffdevicewriteresult")
public ResultObj saveTraffdevicewriteresult(Traffdevicewriteresult traffdevicewriteresult) {
return traffdevicewriteresultService.saveTraffdevicewriteresult(traffdevicewriteresult);
}
/**
* �������
*/
@PostMapping("/saveTraffdevicewriteresultList")
public ResultBean saveTraffdevicewriteresultList(List<Traffdevicewriteresult> traffdevicewriteresultList) {
traffdevicewriteresultService.saveTraffdevicewriteresultList(traffdevicewriteresultList);
return ResultBean.success();
}
/**
* ����
*/
@PostMapping("/updateTraffdevicewriteresult")
public ResultBean updateTraffdevicewriteresult(Traffdevicewriteresult traffdevicewriteresult) {
traffdevicewriteresultService.updateTraffdevicewriteresult(traffdevicewriteresult);
return ResultBean.success();
}
/**
* ɾ��
*/
@PostMapping("/deleteTraffdevicewriteresult")
public ResultBean deleteTraffdevicewriteresult(Traffdevicewriteresult traffdevicewriteresult) {
traffdevicewriteresultService.deleteTraffdevicewriteresult(traffdevicewriteresult);
return ResultBean.success();
}
/**
* ����ɾ��
*/
@PostMapping("/deleteTraffdevicewriteresultList")
public ResultBean deleteTraffdevicewriteresultList(List<Traffdevicewriteresult> traffdevicewriteresultList) {
traffdevicewriteresultService.deleteTraffdevicewriteresultList(traffdevicewriteresultList);
return ResultBean.success();
}
}
\ No newline at end of file
package im.dx.system.controller;
import com.github.pagehelper.PageInfo;
import im.dx.common.annotation.OperationLog;
import im.dx.common.util.PageResultBean;
import im.dx.common.util.ResultBean;
import im.dx.common.validate.groups.Create;
import im.dx.system.model.User;
import im.dx.system.service.RoleService;
import im.dx.system.service.UserService;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.subject.Subject;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Controller
@RequestMapping("/user")
public class UserController {
@Resource
private UserService userService;
@Resource
private RoleService roleService;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@GetMapping("/index")
public String index() {
return "user/user-list";
}
@GetMapping("/send")
public String send() {
return "user/user-send";
}
@OperationLog("获取用户列表")
@GetMapping("/list")
@ResponseBody
public PageResultBean<User> getList(@RequestParam(value = "page", defaultValue = "1") int page,
@RequestParam(value = "pageSize", defaultValue = "10") int pageSize,
User userQuery) {
List<User> users = userService.selectAllWithDept(page, pageSize, userQuery);
PageInfo<User> userPageInfo = new PageInfo<>(users);
return new PageResultBean<>(userPageInfo.getTotal(), userPageInfo.getList());
}
@OperationLog("根據部門获取用户列表")
@GetMapping("/list/userByDeptId")
@ResponseBody
public PageResultBean<User> getList(@RequestParam(value = "page", defaultValue = "1") int page,
@RequestParam(value = "pageSize", defaultValue = "10") int pageSize,
@RequestParam(value = "deptId") String deptId,
@RequestParam(value = "userName") String userName) {
List<User> users = userService.selectAllWithDeptId(page, pageSize,Integer.parseInt(deptId),userName);
PageInfo<User> userPageInfo = new PageInfo<>(users);
return new PageResultBean<>(userPageInfo.getTotal(), userPageInfo.getList());
}
@GetMapping
public String add(Model model) {
model.addAttribute("roles", roleService.selectAll());
return "user/user-add";
}
@GetMapping("/{userId}")
public String update(@PathVariable("userId") Integer userId, Model model) {
model.addAttribute("roleIds", userService.selectRoleIdsById(userId));
model.addAttribute("user", userService.selectOne(userId));
model.addAttribute("roles", roleService.selectAll());
return "user/user-add";
}
@OperationLog("编辑角色")
@PutMapping
@ResponseBody
public ResultBean putupdate(@Valid User user, @RequestParam(value = "role[]", required = false) Integer[] roleIds) {
userService.update(user, roleIds);
return ResultBean.success();
}
@OperationLog("编辑角色")
@PostMapping("/edit")
@ResponseBody
public ResultBean update(@Valid User user, @RequestParam(value = "role[]", required = false) Integer[] roleIds) {
user.setModifyTime(sdf.format(new Date()));
userService.update(user, roleIds);
return ResultBean.success();
}
@OperationLog("新增用户")
@PostMapping
@ResponseBody
public ResultBean adduser(@Validated(Create.class) User user, @RequestParam(value = "role[]", required = false) Integer[] roleIds) {
user.setCreateTime(sdf.format(new Date()));
user.setModifyTime(user.getCreateTime());
return ResultBean.success(userService.add(user, roleIds));
}
@OperationLog("新增用户")
@PostMapping("/add")
@ResponseBody
public ResultBean add(@Validated(Create.class) User user, @RequestParam(value = "role[]", required = false) Integer[] roleIds) {
user.setCreateTime(sdf.format(new Date()));
user.setModifyTime(user.getCreateTime());
return ResultBean.success(userService.add(user, roleIds));
}
@OperationLog("禁用账号")
@PostMapping("/{userId:\\d+}/disable")
@ResponseBody
public ResultBean disable(@PathVariable("userId") Integer userId) {
return ResultBean.success(userService.disableUserByID(userId));
}
@OperationLog("激活账号")
@PostMapping("/{userId}/enable")
@ResponseBody
public ResultBean enable(@PathVariable("userId") Integer userId) {
return ResultBean.success(userService.enableUserByID(userId));
}
@OperationLog("删除账号")
@DeleteMapping("/{userId}")
@ResponseBody
public ResultBean delete(@PathVariable("userId") Integer userId) {
userService.delete(userId);
return ResultBean.success();
}
@GetMapping("/{userId}/reset")
public String resetPassword(@PathVariable("userId") Integer userId, Model model) {
model.addAttribute("userId", userId);
return "user/user-reset-pwd";
}
@OperationLog("重置密码")
@PostMapping("/{userId}/reset")
@ResponseBody
public ResultBean resetPassword(@PathVariable("userId") Integer userId, String password) {
int result=userService.updatePasswordByUserId(userId, password);
if(result>0) {
return ResultBean.success();
}
return ResultBean.error("");
}
@OperationLog("重置密码")
@PostMapping("/myreset/{newpwd}")
@ResponseBody
public ResultBean resetPassword(User user, @PathVariable("newpwd") String newpwd) {
//验证当前用户是否输入密码正确
try {
Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken(user.getUsername(), user.getPassword());
subject.login(token);
int result= userService.updatePasswordByUserId(user.getUserId(), newpwd);
if(result>0) {
return ResultBean.success();
}
return ResultBean.error("更新失败");
}catch( AuthenticationException ex) {
return ResultBean.error("密码错误");
}
}
@GetMapping("/update/{name}/{alarmlevel}")
public String editmodel(@PathVariable("name") String name, @PathVariable("alarmlevel") String alarmlevel,Model model) {
model.addAttribute("manualname", name);
model.addAttribute("manualalarmlevel", alarmlevel);
return "user/user-addsend";
}
}
\ No newline at end of file
package im.dx.system.controller;
import im.dx.common.util.PageResultBean;
import im.dx.common.util.ResultBean;
import im.dx.common.util.ThreadPoolUtil;
import im.dx.system.model.UserOnline;
import im.dx.system.service.UserOnlineService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import java.util.List;
import java.util.concurrent.*;
@Controller
@RequestMapping("/online")
@Slf4j
public class UserOnlineController {
@Value("${ipurl}")
String ipurl;
@Autowired
private RestTemplate restTemplate;
@Resource
private UserOnlineService userOnlineService;
private static CompletionService<String> completionService = new ExecutorCompletionService<String>(ThreadPoolUtil.getPool());
@GetMapping("/index")
public String index() {
return "online/user-online-list";
}
@GetMapping("/list")
@ResponseBody
public PageResultBean<UserOnline> online() {
List<UserOnline> list = userOnlineService.list();
return new PageResultBean<>(list.size(), list);
}
@PostMapping("/kickout")
@ResponseBody
public ResultBean forceLogout(String sessionId) {
userOnlineService.forceLogout(sessionId);
return ResultBean.success();
}
}
This diff is collapsed.
package im.dx.system.mapper;
import im.dx.system.model.JobLJTParam;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface AlgorithmPreprocessMapper {
int insert(JobLJTParam alarm);
int update(JobLJTParam alarm);
int delete(JobLJTParam alarm);
List<JobLJTParam> querytask(int hour, int start);
}
\ No newline at end of file
package im.dx.system.mapper;
import im.dx.system.model.Autosnaptaskinfo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface AutoSnapMapper {
List<Autosnaptaskinfo> selectByMutiParam(String deptId, String videoName);
int insert(Autosnaptaskinfo autosnaptaskinfo);
int deleteAutosnaptaskinfo(String id);
int updateAutosnaptaskinfo(String taskid,String type);
int taskAutoSnapExists(String taskno);
}
\ No newline at end of file
...@@ -6,6 +6,7 @@ import org.apache.ibatis.annotations.Mapper; ...@@ -6,6 +6,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import java.util.Map;
@Mapper @Mapper
public interface DeptTreeMapper { public interface DeptTreeMapper {
...@@ -31,7 +32,7 @@ public interface DeptTreeMapper { ...@@ -31,7 +32,7 @@ public interface DeptTreeMapper {
String[] listeventByvideoid(@Param("userId") String userId); String[] listeventByvideoid(@Param("userId") String userId);
List<VideoeRecordType> selectVideoeRecordType(@Param("videoId")String videoId); List<Map> selectVideoeRecordType(@Param("videoId")String videoId);
int delvideorecord(@Param("id")String id); int delvideorecord(@Param("id")String id);
......
package im.dx.system.mapper;
import im.dx.system.model.RoleMenu;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface RoleMenuMapper {
int insert(RoleMenu roleMenu);
/**
* 插入多条 角色-菜单 关联关系
*/
int insertRoleMenus(@Param("roleId") Integer roleId, @Param("menuIds") Integer[] menuIds);
/**
* 清空角色所拥有的所有菜单
*/
int deleteByRoleId(@Param("roleId") Integer roleId);
/**
* 取消某个菜单的所有授权用户
*/
int deleteByMenuId(@Param("menuId") Integer menuId);
Integer[] getMenusByRoleId(@Param("roleId") Integer roleId);
}
\ No newline at end of file
package im.dx.system.mapper; package im.dx.system.mapper;
import com.sun.tracing.dtrace.ModuleAttributes;
import im.dx.system.model.DeviceChannelid; import im.dx.system.model.DeviceChannelid;
import im.dx.system.model.Traffalarmrecord; import im.dx.system.model.Traffalarmrecord;
import im.dx.system.model.TraffalarmrecordResult; import im.dx.system.model.TraffalarmrecordResult;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.additional.dialect.oracle.InsertListMapper; import tk.mybatis.mapper.additional.dialect.oracle.InsertListMapper;
import tk.mybatis.mapper.common.BaseMapper; import tk.mybatis.mapper.common.BaseMapper;
...@@ -10,6 +12,7 @@ import tk.mybatis.mapper.common.ConditionMapper; ...@@ -10,6 +12,7 @@ import tk.mybatis.mapper.common.ConditionMapper;
import java.util.List; import java.util.List;
@Mapper
public interface TraffalarmrecordMapper extends BaseMapper<Traffalarmrecord>, ConditionMapper<Traffalarmrecord>, InsertListMapper<Traffalarmrecord> { public interface TraffalarmrecordMapper extends BaseMapper<Traffalarmrecord>, ConditionMapper<Traffalarmrecord>, InsertListMapper<Traffalarmrecord> {
List<TraffalarmrecordResult> queryTraffalarmrecordByPage(@Param("recordtype") String recordtype, @Param("areaid") Long areaid, @Param("checkstatus") Integer checkstatus, List<TraffalarmrecordResult> queryTraffalarmrecordByPage(@Param("recordtype") String recordtype, @Param("areaid") Long areaid, @Param("checkstatus") Integer checkstatus,
......
...@@ -4,6 +4,7 @@ package im.dx.system.mapper; ...@@ -4,6 +4,7 @@ package im.dx.system.mapper;
import im.dx.system.model.SbtdspsrParams; import im.dx.system.model.SbtdspsrParams;
import im.dx.system.model.SbtdspsrResult; import im.dx.system.model.SbtdspsrResult;
import im.dx.system.model.Traffdevicewriteresult; import im.dx.system.model.Traffdevicewriteresult;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.additional.dialect.oracle.InsertListMapper; import tk.mybatis.mapper.additional.dialect.oracle.InsertListMapper;
import tk.mybatis.mapper.common.BaseMapper; import tk.mybatis.mapper.common.BaseMapper;
...@@ -11,6 +12,7 @@ import tk.mybatis.mapper.common.ConditionMapper; ...@@ -11,6 +12,7 @@ import tk.mybatis.mapper.common.ConditionMapper;
import java.util.List; import java.util.List;
@Mapper
public interface TraffdevicewriteresultMapper extends BaseMapper<Traffdevicewriteresult>, ConditionMapper<Traffdevicewriteresult>, InsertListMapper<Traffdevicewriteresult> public interface TraffdevicewriteresultMapper extends BaseMapper<Traffdevicewriteresult>, ConditionMapper<Traffdevicewriteresult>, InsertListMapper<Traffdevicewriteresult>
{ {
......
...@@ -23,11 +23,9 @@ public interface TrafficStatisticsMapper { ...@@ -23,11 +23,9 @@ public interface TrafficStatisticsMapper {
List<TraffpictureParam> queryTraffalarmrecordByPage(Map map); List<TraffpictureParam> queryTraffalarmrecordByPage(Map map);
List<TraffpictureParam> queryTaskInfoByPage(Map map);
int updateTraffalarmrecordById(@Param(value = "list") List<TraffpictureParam> recordlist); int updateTraffalarmrecordById(@Param(value = "list") List<TraffpictureParam> recordlist);
List<RecordResult> todaytraffRecords(Map map); List<RecordResult> todaytraffRecords(Map map);
public List<Map> todaythbtraffRecords(Map map); public List<Map> todaythbtraffRecords(Map map);
...@@ -44,6 +42,7 @@ public interface TrafficStatisticsMapper { ...@@ -44,6 +42,7 @@ public interface TrafficStatisticsMapper {
int deleteTraffalarmrecordById(String recordid); int deleteTraffalarmrecordById(String recordid);
int updateTraffalarmrecordPushStatusById(String recordid); int updateTraffalarmrecordPushStatusById(String recordid);
int deleteTraffalarmrecordByIds(String recordid);
List<Pedestrian> queryTraffPedeDetail(String id); List<Pedestrian> queryTraffPedeDetail(String id);
......
...@@ -14,5 +14,7 @@ public interface VideoMapper { ...@@ -14,5 +14,7 @@ public interface VideoMapper {
int insert(Sbtdspsr video); int insert(Sbtdspsr video);
void delete(String id); void delete(String id);
void updateByPrimaryKey(Sbtdspsr video); void updateByPrimaryKey(Sbtdspsr video);
int taskExists(String tsakno); int updateImgSrc(String imgsrc,String sbbh);
int taskExists(String taskno);
int taskAutoSnapExists(String taskno);
} }
\ No newline at end of file
package im.dx.system.model;
public class AIDXResult {
String errorCode;
String errorMsg;
}
package im.dx.system.model;
public class AIDXdata {
private String algCode;
}
package im.dx.system.model;
public class Autosnaptaskinfo {
private String taskid;
private String taskname;
private String devicenum;
private String starthour;
private String endhour;
private String recordtype;
private String regionx;
private String regiony;
private String regionw;
private String regionh;
private String spId;
private String status;
private String cjrq;
private String xgrq;
private String objectType;
private String sendurl;
private String threshold;
private String algorithmfrom;
private String sendtype;
public String getSendtype() {
return sendtype;
}
public void setSendtype(String sendtype) {
this.sendtype = sendtype;
}
public Autosnaptaskinfo() {
}
public Autosnaptaskinfo(String taskid, String taskname, String devicenum, String starthour, String endhour, String recordtype, String regionx, String regiony, String regionw, String regionh, String spId, String status, String objectType, String sendurl, String threshold, String algorithmfrom, String sendtype) {
this.taskid = taskid;
this.taskname = taskname;
this.devicenum = devicenum;
this.starthour = starthour;
this.endhour = endhour;
this.recordtype = recordtype;
this.regionx = regionx;
this.regiony = regiony;
this.regionw = regionw;
this.regionh = regionh;
this.spId = spId;
this.status = status;
this.objectType = objectType;
this.sendurl = sendurl;
this.threshold = threshold;
this.algorithmfrom = algorithmfrom;
this.sendtype = sendtype;
}
public Autosnaptaskinfo(String taskid, String taskname, String devicenum, String starthour, String endhour, String recordtype, String regionx, String regiony, String regionw, String regionh, String spId, String status, String cjrq, String xgrq, String objectType, String sendurl, String threshold, String algorithmfrom, String sendtype) {
this.taskid = taskid;
this.taskname = taskname;
this.devicenum = devicenum;
this.starthour = starthour;
this.endhour = endhour;
this.recordtype = recordtype;
this.regionx = regionx;
this.regiony = regiony;
this.regionw = regionw;
this.regionh = regionh;
this.spId = spId;
this.status = status;
this.cjrq = cjrq;
this.xgrq = xgrq;
this.objectType = objectType;
this.sendurl = sendurl;
this.threshold = threshold;
this.algorithmfrom = algorithmfrom;
this.sendtype = sendtype;
}
public String getTaskid() {
return taskid;
}
public void setTaskid(String taskid) {
this.taskid = taskid;
}
public String getTaskname() {
return taskname;
}
public void setTaskname(String taskname) {
this.taskname = taskname;
}
public String getDevicenum() {
return devicenum;
}
public void setDevicenum(String devicenum) {
this.devicenum = devicenum;
}
public String getStarthour() {
return starthour;
}
public void setStarthour(String starthour) {
this.starthour = starthour;
}
public String getEndhour() {
return endhour;
}
public void setEndhour(String endhour) {
this.endhour = endhour;
}
public String getRecordtype() {
return recordtype;
}
public void setRecordtype(String recordtype) {
this.recordtype = recordtype;
}
public String getSpId() {
return spId;
}
public void setSpId(String spId) {
this.spId = spId;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getCjrq() {
return cjrq;
}
public void setCjrq(String cjrq) {
this.cjrq = cjrq;
}
public String getXgrq() {
return xgrq;
}
public void setXgrq(String xgrq) {
this.xgrq = xgrq;
}
public String getObjectType() {
return objectType;
}
public void setObjectType(String objectType) {
this.objectType = objectType;
}
public String getSendurl() {
return sendurl;
}
public void setSendurl(String sendurl) {
this.sendurl = sendurl;
}
public String getThreshold() {
return threshold;
}
public void setThreshold(String threshold) {
this.threshold = threshold;
}
public String getAlgorithmfrom() {
return algorithmfrom;
}
public void setAlgorithmfrom(String algorithmfrom) {
this.algorithmfrom = algorithmfrom;
}
public Autosnaptaskinfo(String devicenum) {
this.devicenum = devicenum;
}
public String getRegionx() {
return regionx;
}
public void setRegionx(String regionx) {
this.regionx = regionx;
}
public String getRegiony() {
return regiony;
}
public void setRegiony(String regiony) {
this.regiony = regiony;
}
public String getRegionw() {
return regionw;
}
public void setRegionw(String regionw) {
this.regionw = regionw;
}
public String getRegionh() {
return regionh;
}
public void setRegionh(String regionh) {
this.regionh = regionh;
}
}
package im.dx.system.model;
import java.util.Map;
public class JobLJTParam {
String deviceNum;
String spId;
String interfaceCode;
Integer interval;
Integer status;
Map params;
public String getDeviceNum() {
return deviceNum;
}
public void setDeviceNum(String deviceNum) {
this.deviceNum = deviceNum;
}
public String getSpId() {
return spId;
}
public void setSpId(String spId) {
this.spId = spId;
}
public String getInterfaceCode() {
return interfaceCode;
}
public void setInterfaceCode(String interfaceCode) {
this.interfaceCode = interfaceCode;
}
public Integer getInterval() {
return interval;
}
public void setInterval(Integer interval) {
this.interval = interval;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Map getParams() {
return params;
}
public void setParams(Map params) {
this.params = params;
}
}
package im.dx.system.model;
import java.util.List;
import java.util.Map;
public class JobParam {
private String detectType;
private String deviceId;
private String type;
private String name;
private Map params;
private String callBackUrl;
private List<Point> area;
public String getDetectType() {
return detectType;
}
public void setDetectType(String detectType) {
this.detectType = detectType;
}
public String getDeviceId() {
return deviceId;
}
public void setDeviceId(String deviceId) {
this.deviceId = deviceId;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Map getParams() {
return params;
}
public void setParams(Map params) {
this.params = params;
}
public String getCallBackUrl() {
return callBackUrl;
}
public void setCallBackUrl(String callBackUrl) {
this.callBackUrl = callBackUrl;
}
public List<Point> getArea() {
return area;
}
public void setArea(List<Point> area) {
this.area = area;
}
}
package im.dx.system.model;
import java.util.List;
public class PageResult<T> {
private long totle;
private List<T> rows;
}
package im.dx.system.model;
import com.alibaba.fastjson.annotation.JSONField;
/***
* 行人
*/
public class Pedestrian {
private Long id;
private String Type;
private ObjectBoundingBox ObjectBoundingBox;
private String Gender;
private String Age;
private String Angle;
private String HasBackpack;
private String HasGlasses;
private String HasCarrybag;
private String HasUmbrella;
private String CoatLength;
private String CoatColorNums;
private String CoatColor;
private String TrousersLength;
private String TrousersColorNums;
private String TrousersColor;
private HeadBoundingBox HeadBoundingBox;
private UpperBoundingBox UpperBoundingBox;
private LowerBoundingBox LowerBoundingBox;
private FaceBoundingBox FaceBoundingBox;
private String HasHat;
private String HasMask;
private String HairStyle;
private String CoatTexture;
private String TrousersTexture;
private String HasTrolley;
private String HasLuggage;
private String LuggageColorNums;
private String LuggageColor;
private int HasKnife;
public void setType(String Type) {
this.Type = Type;
}
@JSONField(name = "Type")
public String getType() {
return Type;
}
public void setObjectBoundingBox(ObjectBoundingBox ObjectBoundingBox) {
this.ObjectBoundingBox = ObjectBoundingBox;
}
@JSONField(name = "ObjectBoundingBox")
public ObjectBoundingBox getObjectBoundingBox() {
return ObjectBoundingBox;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public void setGender(String Gender) {
this.Gender = Gender;
}
@JSONField(name = "Gender")
public String getGender() {
return Gender;
}
public void setAge(String Age) {
this.Age = Age;
}
@JSONField(name = "Age")
public String getAge() {
return Age;
}
public void setAngle(String Angle) {
this.Angle = Angle;
}
@JSONField(name = "Angle")
public String getAngle() {
return Angle;
}
public void setHasBackpack(String HasBackpack) {
this.HasBackpack = HasBackpack;
}
@JSONField(name = "HasBackpack")
public String getHasBackpack() {
return HasBackpack;
}
public void setHasGlasses(String HasGlasses) {
this.HasGlasses = HasGlasses;
}
@JSONField(name = "HasGlasses")
public String getHasGlasses() {
return HasGlasses;
}
public void setHasCarrybag(String HasCarrybag) {
this.HasCarrybag = HasCarrybag;
}
@JSONField(name = "HasCarrybag")
public String getHasCarrybag() {
return HasCarrybag;
}
public void setHasUmbrella(String HasUmbrella) {
this.HasUmbrella = HasUmbrella;
}
@JSONField(name = "HasUmbrella")
public String getHasUmbrella() {
return HasUmbrella;
}
public void setCoatLength(String CoatLength) {
this.CoatLength = CoatLength;
}
@JSONField(name = "CoatLength")
public String getCoatLength() {
return CoatLength;
}
public void setCoatColorNums(String CoatColorNums) {
this.CoatColorNums = CoatColorNums;
}
@JSONField(name = "CoatColorNums")
public String getCoatColorNums() {
return CoatColorNums;
}
public void setTrousersLength(String TrousersLength) {
this.TrousersLength = TrousersLength;
}
@JSONField(name = "TrousersLength")
public String getTrousersLength() {
return TrousersLength;
}
public void setTrousersColorNums(String TrousersColorNums) {
this.TrousersColorNums = TrousersColorNums;
}
@JSONField(name = "TrousersColorNums")
public String getTrousersColorNums() {
return TrousersColorNums;
}
public void setHeadBoundingBox(HeadBoundingBox HeadBoundingBox) {
this.HeadBoundingBox = HeadBoundingBox;
}
@JSONField(name = "HeadBoundingBox")
public HeadBoundingBox getHeadBoundingBox() {
return HeadBoundingBox;
}
public void setUpperBoundingBox(UpperBoundingBox UpperBoundingBox) {
this.UpperBoundingBox = UpperBoundingBox;
}
@JSONField(name = "UpperBoundingBox")
public UpperBoundingBox getUpperBoundingBox() {
return UpperBoundingBox;
}
public void setLowerBoundingBox(LowerBoundingBox LowerBoundingBox) {
this.LowerBoundingBox = LowerBoundingBox;
}
@JSONField(name = "LowerBoundingBox")
public LowerBoundingBox getLowerBoundingBox() {
return LowerBoundingBox;
}
public void setFaceBoundingBox(FaceBoundingBox FaceBoundingBox) {
this.FaceBoundingBox = FaceBoundingBox;
}
@JSONField(name = "FaceBoundingBox")
public FaceBoundingBox getFaceBoundingBox() {
return FaceBoundingBox;
}
public void setHasHat(String HasHat) {
this.HasHat = HasHat;
}
@JSONField(name = "HasHat")
public String getHasHat() {
return HasHat;
}
public void setHasMask(String HasMask) {
this.HasMask = HasMask;
}
@JSONField(name = "HasMask")
public String getHasMask() {
return HasMask;
}
public void setHairStyle(String HairStyle) {
this.HairStyle = HairStyle;
}
@JSONField(name = "HairStyle")
public String getHairStyle() {
return HairStyle;
}
public void setCoatTexture(String CoatTexture) {
this.CoatTexture = CoatTexture;
}
@JSONField(name = "CoatTexture")
public String getCoatTexture() {
return CoatTexture;
}
public void setTrousersTexture(String TrousersTexture) {
this.TrousersTexture = TrousersTexture;
}
@JSONField(name = "TrousersTexture")
public String getTrousersTexture() {
return TrousersTexture;
}
public void setHasTrolley(String HasTrolley) {
this.HasTrolley = HasTrolley;
}
@JSONField(name = "HasTrolley")
public String getHasTrolley() {
return HasTrolley;
}
public void setHasLuggage(String HasLuggage) {
this.HasLuggage = HasLuggage;
}
@JSONField(name = "HasLuggage")
public String getHasLuggage() {
return HasLuggage;
}
public void setLuggageColorNums(String LuggageColorNums) {
this.LuggageColorNums = LuggageColorNums;
}
@JSONField(name = "LuggageColorNums")
public String getLuggageColorNums() {
return LuggageColorNums;
}
public void setHasKnife(int HasKnife) {
this.HasKnife = HasKnife;
}
@JSONField(name = "HasKnife")
public int getHasKnife() {
return HasKnife;
}
@JSONField(name = "CoatColor")
public String getCoatColor() {
return CoatColor;
}
public void setCoatColor(String coatColor) {
CoatColor = coatColor;
}
@JSONField(name = "TrousersColor")
public String getTrousersColor() {
return TrousersColor;
}
public void setTrousersColor(String trousersColor) {
TrousersColor = trousersColor;
}
@JSONField(name = "LuggageColor")
public String getLuggageColor() {
return LuggageColor;
}
public void setLuggageColor(String luggageColor) {
LuggageColor = luggageColor;
}
}
package im.dx.system.model;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
/**
* 自定义响应结构
* @author cp
*/
@Getter
@Setter
public class ResultObj {
// 定义jackson对象
private static final ObjectMapper MAPPER = new ObjectMapper();
/**
* 响应业务状态
* 200 成功
* 201 错误
* 400 参数错误
*/
private Integer status;
/**
* 响应消息
*/
private String msg;
/**
* 响应中的数据
*/
private Object data;
public static ResultObj error(Integer status, String msg, Object data) {
return new ResultObj(status, msg, data);
}
public static ResultObj ok(Object data) {
return new ResultObj(data);
}
public static ResultObj ok() {
return ok(null);
}
private ResultObj() {
}
public static ResultObj error(Integer status, String msg) {
return new ResultObj(status, msg, null);
}
private ResultObj(Integer status, String msg, Object data) {
this.status = status;
this.msg = msg;
this.data = data;
}
private ResultObj(Object data) {
this.status = 200;
this.msg = "OK";
this.data = data;
}
/**
* 将json结果集转化为SysResult对象
*
* @param jsonData json数据
* @param clazz SysResult中的object类型
* @return SysResult对象
*/
public static ResultObj formatToPojo(String jsonData, Class<?> clazz) {
try {
if (clazz == null) {
return MAPPER.readValue(jsonData, ResultObj.class);
}
JsonNode jsonNode = MAPPER.readTree(jsonData);
JsonNode data = jsonNode.get("data");
Object obj = null;
if (data.isObject()) {
obj = MAPPER.readValue(data.traverse(), clazz);
} else if (data.isTextual()) {
obj = MAPPER.readValue(data.asText(), clazz);
}
return error(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 没有object对象的转化
*
* @param json 字符串
* @return SysResult对象
*/
public static ResultObj format(String json) {
try {
return MAPPER.readValue(json, ResultObj.class);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* Object是集合转化
*
* @param jsonData json数据
* @param clazz 集合中的类型
* @return SysResult对象
*/
public static ResultObj formatToList(String jsonData, Class<?> clazz) {
try {
JsonNode jsonNode = MAPPER.readTree(jsonData);
JsonNode data = jsonNode.get("data");
Object obj = null;
if (data.isArray() && data.size() > 0) {
obj = MAPPER.readValue(data.traverse(),
MAPPER.getTypeFactory().constructCollectionType(List.class, clazz));
}
return error(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public String toString() {
return "ResultObj{" +
"status=" + status +
", msg='" + msg + '\'' +
", data=" + data +
'}';
}
}
\ No newline at end of file
package im.dx.system.model;
public class SysLog {
private Integer id;
/**
* 用户名
*/
private String username;
/**
* 操作
*/
private String operation;
/**
* 响应时间/耗时
*/
private Integer time;
/**
* 请求方法
*/
private String method;
/**
* 请求参数
*/
private String params;
/**
* IP
*/
private String ip;
/**
* 创建时间
*/
private String createTime;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getOperation() {
return operation;
}
public void setOperation(String operation) {
this.operation = operation;
}
public Integer getTime() {
return time;
}
public void setTime(Integer time) {
this.time = time;
}
public String getMethod() {
return method;
}
public void setMethod(String method) {
this.method = method;
}
public String getParams() {
return params;
}
public void setParams(String params) {
this.params = params;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
}
\ No newline at end of file
...@@ -8,6 +8,7 @@ public class TraffalarmrecordResult extends Traffpicture { ...@@ -8,6 +8,7 @@ public class TraffalarmrecordResult extends Traffpicture {
private String recordname; private String recordname;
private String alarmlevel; private String alarmlevel;
public String getAlarmlevel() { public String getAlarmlevel() {
return alarmlevel; return alarmlevel;
} }
......
...@@ -54,9 +54,28 @@ public class Traffpicture { ...@@ -54,9 +54,28 @@ public class Traffpicture {
private String faceimagedata; private String faceimagedata;
private String index; private String index;
private Integer targetnum; private String targetnum;
private String createtime; private String createtime;
private String processstatus;
private Integer pushstatus;
public Integer getPushstatus() {
return pushstatus;
}
public void setPushstatus(Integer pushstatus) {
this.pushstatus = pushstatus;
}
public String getProcessstatus() {
return processstatus;
}
public void setProcessstatus(String processstatus) {
this.processstatus = processstatus;
}
public String getCreatetime() { public String getCreatetime() {
return createtime; return createtime;
...@@ -66,11 +85,11 @@ public class Traffpicture { ...@@ -66,11 +85,11 @@ public class Traffpicture {
this.createtime = createtime; this.createtime = createtime;
} }
public Integer getTargetnum() { public String getTargetnum() {
return targetnum; return targetnum;
} }
public void setTargetnum(Integer targetnum) { public void setTargetnum(String targetnum) {
this.targetnum = targetnum; this.targetnum = targetnum;
} }
......
...@@ -30,8 +30,6 @@ public class TraffpictureParam extends Traffpicture { ...@@ -30,8 +30,6 @@ public class TraffpictureParam extends Traffpicture {
@JsonIgnore @JsonIgnore
private String remark; private String remark;
@JsonIgnore @JsonIgnore
private Integer pushstatus;
@JsonIgnore
private String pushdesc; private String pushdesc;
@JsonIgnore @JsonIgnore
private Integer pushcount; private Integer pushcount;
...@@ -42,6 +40,34 @@ public class TraffpictureParam extends Traffpicture { ...@@ -42,6 +40,34 @@ public class TraffpictureParam extends Traffpicture {
private Integer manualstatus; private Integer manualstatus;
private String imagedata; private String imagedata;
private Integer alarmnum; private Integer alarmnum;
private String taskhandler;
private String taskstate;
private String handlertime;
public String getTaskhandler() {
return taskhandler;
}
public void setTaskhandler(String taskhandler) {
this.taskhandler = taskhandler;
}
public String getTaskstate() {
return taskstate;
}
public void setTaskstate(String taskstate) {
this.taskstate = taskstate;
}
public String getHandlertime() {
return handlertime;
}
public void setHandlertime(String handlertime) {
this.handlertime = handlertime;
}
public Integer getAlarmnum() { public Integer getAlarmnum() {
return alarmnum; return alarmnum;
...@@ -205,14 +231,6 @@ public class TraffpictureParam extends Traffpicture { ...@@ -205,14 +231,6 @@ public class TraffpictureParam extends Traffpicture {
this.remark = remark; this.remark = remark;
} }
public Integer getPushstatus() {
return pushstatus;
}
public void setPushstatus(Integer pushstatus) {
this.pushstatus = pushstatus;
}
public String getPushdesc() { public String getPushdesc() {
return pushdesc; return pushdesc;
} }
......
package im.dx.system.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.io.Serializable;
public class VideoeRecordType implements Serializable {
private static final long serialVersionUID = -194076170058276436L;
/**
* 部门ID
*/
@JsonProperty("id")
private String id;
/**
* 监控名称
*/
private String videoName;
/**
* 监控 ID
*/
private String videoid;
/**
* 事件类型
*/
private String recordtype;
/**
* 事件类型名称
*/
private String recordtypeName;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getVideoName() {
return videoName;
}
public void setVideoName(String videoName) {
this.videoName = videoName;
}
public String getVideoid() {
return videoid;
}
public void setVideoid(String videoid) {
this.videoid = videoid;
}
public String getRecordtype() {
return recordtype;
}
public void setRecordtype(String recordtype) {
this.recordtype = recordtype;
}
public String getRecordtypeName() {
return recordtypeName;
}
public void setRecordtypeName(String recordtypeName) {
this.recordtypeName = recordtypeName;
}
}
\ No newline at end of file
package im.dx.system.service;
import im.dx.system.mapper.AlgorithmPreprocessMapper;
import im.dx.system.model.JobLJTParam;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class AlgorithmPreprocessService {
@Resource
private AlgorithmPreprocessMapper algorithmPMapper;
public int add(JobLJTParam alarm) {
return algorithmPMapper.insert(alarm);
}
public int update(JobLJTParam alarm) { return algorithmPMapper.update(alarm);}
public int delete(JobLJTParam alarm) { return algorithmPMapper.delete(alarm);}
public List<JobLJTParam> querytask(int hour, int start){
return algorithmPMapper.querytask(hour,start);
}
}
package im.dx.system.service;
import com.github.pagehelper.PageHelper;
import im.dx.system.mapper.AutoSnapMapper;
import im.dx.system.mapper.VideoMapper;
import im.dx.system.model.Autosnaptaskinfo;
import im.dx.system.model.JobParam;
import im.dx.system.model.Sbtdspsr;
import im.dx.system.model.Video;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
@Service
public class AutoSnapService {
@Resource
private AutoSnapMapper autoSnapMapper;
public List<Autosnaptaskinfo> selectByMutiParam(int page, int rows, String deptId, String videoName) {
PageHelper.startPage(page, rows);
return autoSnapMapper.selectByMutiParam(deptId,videoName);
}
@Transactional
public Integer add(Autosnaptaskinfo autosnaptaskinfo) {
return autoSnapMapper.insert(autosnaptaskinfo);
}
@Transactional
public void delete(String id) {
autoSnapMapper.deleteAutosnaptaskinfo(id);
}
public void update(String taskid,String type) {
autoSnapMapper.updateAutosnaptaskinfo(taskid,type);
}
public int taskAutoSnapExists(String taskno){
return autoSnapMapper.taskAutoSnapExists(taskno);
}
}
\ No newline at end of file
This diff is collapsed.
package im.dx.system.service;
import im.dx.system.mapper.DeptMapper;
import im.dx.system.model.Dept;
import im.dx.system.model.DeptVideo;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
@Service
public class DeptService {
@Resource
private DeptMapper deptMapper;
public Dept insert(Dept dept) {
int maxOrderNum = deptMapper.selectMaxOrderNum();
dept.setOrderNum(maxOrderNum + 1);
deptMapper.insert(dept);
return dept;
}
public int deleteByPrimaryKey(Integer deptId) {
return deptMapper.deleteByPrimaryKey(deptId);
}
public Dept updateByPrimaryKey(Dept dept) {
deptMapper.updateByPrimaryKey(dept);
return dept;
}
public List<Map> selectByPrimaryKey(String deptId) {
return deptMapper.selectByPrimaryKey(deptId);
}
/**
* 删除当前部门及子部门.
*/
public void deleteCascadeByID(Integer deptId) {
List<Integer> childIDList = deptMapper.selectChildrenIDByPrimaryKey(deptId);
for (Integer childId : childIDList) {
deleteCascadeByID(childId);
}
deleteByPrimaryKey(deptId);
}
/**
* 根据父 ID 查询部门
*/
public List<Dept> selectByParentId(Integer parentId) {
return deptMapper.selectByParentId(parentId);
}
/**
* 查找所有的部门的树形结构
*/
public List<Dept> selectAllTree() {
return deptMapper.selectAllTree();
}
/**
* 获取所有菜单并添加一个根节点 (树形结构)
*/
public List<Dept> selectAllTreeAndRoot() {
return selectAllTree();
}
public void swapSort(Integer currentId, Integer swapId) {
deptMapper.swapSort(currentId, swapId);
}
public int selectMaxOrderNum() {
return deptMapper.selectMaxOrderNum();
}
/**
* 查找所有的部门及监控树形结构
*/
public List<DeptVideo> listvideo(String deptId, String username,String tdmc) {
return deptMapper.listvideo(deptId,username,tdmc);
}
/**
* 查找部门及其子節點
*/
public List<Dept> selectDeptChildren(Integer deptId, String username) {
return deptMapper.selectDeptChildren(deptId,username);
}
/**
* 更新默認監控
*/
public Integer updateDefaultVideoByDeptId(String deptId, String videoId) {
return deptMapper.updateDefaultVideoByDeptId(deptId,videoId);
}
/**
* 查詢默認監控
*/
public List<Map> selectDefaultVideoByDeptId(String deptId) {
return deptMapper.selectDefaultVideoByDeptId(deptId);
}
/**
* 查詢默認監控
*/
public List<Map> selectAllDefaultVideo(String deptId) {
return deptMapper.selectAllDefaultVideo(deptId);
}
/**
* 查詢默認監控是否存在
*/
public int selectExistsDefaultVideo(String deptId,String videoid) {
return deptMapper.selectExistsDefaultVideo(deptId,videoid);
}
/**
* 新增默認監控是否存在
*/
public int insertDefaultVideo(String deptId,String videoid) {
return deptMapper.insertDefaultVideo(deptId,videoid);
}
public List<Map> listAllvideoIdsByDeptid(String deptid){
return deptMapper.listAllvideoIdsByDeptid(deptid);
}
}
...@@ -7,6 +7,7 @@ import org.springframework.stereotype.Service; ...@@ -7,6 +7,7 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List; import java.util.List;
import java.util.Map;
@Service @Service
public class DeptTreeService { public class DeptTreeService {
...@@ -95,7 +96,7 @@ public class DeptTreeService { ...@@ -95,7 +96,7 @@ public class DeptTreeService {
/** /**
* 查找videoid下所有的监管 * 查找videoid下所有的监管
*/ */
public List<VideoeRecordType> selectVideoeRecordType(String parentId,int page,int limit) { public List<Map> selectVideoeRecordType(String parentId, int page, int limit) {
PageHelper.startPage(page,limit); PageHelper.startPage(page,limit);
return deptTreeMapper.selectVideoeRecordType(parentId); return deptTreeMapper.selectVideoeRecordType(parentId);
} }
......
package im.dx.system.service;
import cn.hutool.json.JSONUtil;
import im.dx.system.mapper.AlarmMapper;
import im.dx.system.model.Alarm;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
import javax.annotation.Resource;
import java.net.URI;
public class MyWebSocketClient extends WebSocketClient {
public MyWebSocketClient(URI serverUri) {
super(serverUri);
}
@Resource
private AlarmMapper alarmMapper;
@Override
public void onOpen(ServerHandshake arg0) {
// TODO Auto-generated method stub
System.out.println("open");
}
@Override
public void onClose(int arg0, String arg1, boolean arg2) {
// TODO Auto-generated method stu
}
@Override
public void onError(Exception arg0) {
// TODO Auto-generated method stub
}
@Override
public void onMessage(String arg0) {
// TODO Auto-generated method stub
//获得消息,调用service 放入表中‘
try {
Alarm alarm = JSONUtil.toBean(arg0, Alarm.class);
alarmMapper.insert(alarm);
if(alarm.getType().equalsIgnoreCase("TRAFFIC_INCIDENT_ALARM")) {
alarmMapper.insert(alarm);
}
} catch (Exception ex) {
}
System.out.println(arg0);
}
}
\ No newline at end of file
package im.dx.system.service;
import im.dx.system.mapper.RoleOperatorMapper;
import im.dx.system.model.RoleOperator;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class RoleOperatorService {
@Resource
private RoleOperatorMapper roleOperatorMapper;
public int insert(RoleOperator roleOperator) {
return roleOperatorMapper.insert(roleOperator);
}
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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