欣影管理平台接口完善

jni
liuguijing 2 years ago
parent 0a47351737
commit 42540df186

@ -7,6 +7,7 @@
<module>xymanager_admin</module>
<module>xymanager_service</module>
<module>xymanager_common</module>
<module>xymanager_dao</module>
<module>xymanager_framework</module>
</modules>
<groupId>com.shxy</groupId>
@ -28,6 +29,7 @@
<druid.version>1.2.8</druid.version>
<mybatis-spring-boot.version>2.2.0</mybatis-spring-boot.version>
<pagehelper.boot.version>1.4.0</pagehelper.boot.version>
<commons.fileupload.version>1.4</commons.fileupload.version>
</properties>
<dependencyManagement>
@ -98,6 +100,23 @@
</dependency>
<!-- 文件上传工具类 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>${commons.fileupload.version}</version>
</dependency>
<!--一个开源工具类 一个Java基础工具类对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装组成各种Util工具类-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.20</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>

@ -7,12 +7,16 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.core.env.Environment;
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@MapperScan("com.shxy.**.dao")
@EnableAspectJAutoProxy(exposeProxy = true)
@Slf4j
@EnableConfigurationProperties
@ComponentScan(basePackages = {"com.shxy"})
public class XymanagerAdminApplication {
public static void main(String[] args) {

@ -0,0 +1,39 @@
package com.shxy.xymanager_admin.controller;
import com.shxy.xymanager_common.annotation.Log;
import com.shxy.xymanager_common.base.BaseController;
import com.shxy.xymanager_common.base.ResponseReult;
import com.shxy.xymanager_common.bean.ServiceBody;
import com.shxy.xymanager_common.bean.ServiceStatus;
import com.shxy.xymanager_common.model.TerminalListModel;
import com.shxy.xymanager_service.service.TerminalService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@Api(value = "设备接口", tags = "设备接口相关")
@RestController
@Slf4j
public class TerminalController extends BaseController {
@Autowired
TerminalService terminalService;
@ApiOperation(value = "获取设备列表", notes = "获取设备列表接口", httpMethod = "POST")
@ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")})
@RequestMapping("/getTerminalList")
@Log(title = "获取设备列表", type = "查询")
public ResponseReult<TerminalListModel> getTerminalList() {
ServiceBody<TerminalListModel> serviceBody = terminalService.getTerminalList();
if (serviceBody.getCode() == ServiceStatus.SUCCESS) {
return ResponseReult.success(serviceBody.getData());
} else {
return ResponseReult.error(serviceBody.getCode(), serviceBody.getMsg());
}
}
}

@ -6,22 +6,32 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(value = "测试接口", tags = "测试接口tags")
@RestController
@Controller
@Slf4j
public class TestController {
@ApiOperation(value = "测试", notes = "测试notes", httpMethod = "POST")
@ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")})
@RequestMapping("/getBannerList")
@Log(title = "测试", type = "查询")
public String gettest() {
log.info("有一个沙雕点了链接");
return "index";
}
// @ApiOperation(value = "测试", notes = "测试notes", httpMethod = "POST")
// @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")})
// @RequestMapping("/getBannerList")
// @Log(title = "测试", type = "查询")
// public String gettest() {
// log.info("有一个沙雕点了链接");
// return "index222";
// }
//
//
// @GetMapping("")
// @Log(title = "测试", type = "查询")
// public String hhtest() {
// log.info("有一个沙雕点了链接");
// return "index2";
// }
}

@ -1,13 +1,9 @@
package com.shxy.xymanager_admin;
import com.shxy.xymanager_common.entity.TerminalChannels;
import com.shxy.xymanager_common.entity.Terminals;
import com.shxy.xymanager_dao.dao.TerminalsDao;
import jdk.nashorn.internal.ir.Terminal;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.Date;
@ -17,6 +13,7 @@ class XymanagerAdminApplicationTests {
@Autowired
TerminalsDao terminalsDao;
@Test
void contextLoads() {

@ -75,6 +75,24 @@
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<!-- 文件上传工具类 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
</dependency>
<!--一个开源工具类-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
</dependency>
<!-- pagehelper 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
</dependency>
</dependencies>
<build>

@ -0,0 +1,121 @@
package com.shxy.xymanager_common.base;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.shxy.xymanager_common.page.PageDomain;
import com.shxy.xymanager_common.page.TableDataInfo;
import com.shxy.xymanager_common.page.TableSupport;
import com.shxy.xymanager_common.util.StringUtils;
import com.shxy.xymanager_common.util.http.HttpStatus;
import com.shxy.xymanager_common.util.sql.SqlUtils;
import java.util.List;
/**
* web
*
* @author xzg
*/
public class BaseController {
/**
* Date
*/
// @InitBinder
// public void initBinder(WebDataBinder binder) {
// // Date 类型转换
// binder.registerCustomEditor(Date.class, new PropertyEditorSupport() {
// @Override
// public void setAsText(String text) {
// setValue(DateUtils.parseDate(text));
// }
//
// @Override
// public String getAsText() {
// Date value = (Date) getValue();
// if(null == value){
// value = new Date();
// }
// SimpleDateFormat df =new SimpleDateFormat("yyyy-MM-dd");
// return df.format(value);
//
// }
// });
//// binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"), true));
// }
/**
*
*/
protected void startPage() {
PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum();
Integer pageSize = pageDomain.getPageSize();
if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) {
String orderBy = SqlUtils.escapeOrderBySql(pageDomain.getOrderBy());
Boolean reasonable = pageDomain.getReasonable();
PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable);
}
}
/**
*
*/
protected void startOrderBy() {
PageDomain pageDomain = TableSupport.buildPageRequest();
if (StringUtils.isNotEmpty(pageDomain.getOrderBy())) {
String orderBy = SqlUtils.escapeOrderBySql(pageDomain.getOrderBy());
PageHelper.orderBy(orderBy);
}
}
/**
*
*/
@SuppressWarnings({"rawtypes", "unchecked"})
protected TableDataInfo getDataTable(List<?> list) {
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(HttpStatus.HTTP_OK);
rspData.setMsg("查询成功");
rspData.setRows(list);
rspData.setTotal(new PageInfo(list).getTotal());
return rspData;
}
/**
*
*/
public String redirect(String url) {
return StringUtils.format("redirect:{}", url);
}
// /**
// * 获取用户缓存信息
// */
// public LoginUser getLoginUser() {
// return SecurityUtils.getLoginUser();
// }
//
// /**
// * 获取登录用户id
// */
// public Long getUserId() {
// return getLoginUser().getUserId();
// }
//
// /**
// * 获取登录部门id
// */
// public Long getDeptId() {
// return getLoginUser().getDeptId();
// }
//
// /**
// * 获取登录用户名
// */
// public String getUsername() {
// return getLoginUser().getUsername();
// }
}

@ -0,0 +1,5 @@
package com.shxy.xymanager_common.base;
public class BaseEntity {
}

@ -0,0 +1,121 @@
package com.shxy.xymanager_common.base;
import com.shxy.xymanager_common.exception.IErrorCode;
import com.shxy.xymanager_common.util.http.HttpStatus;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
// @ApiModel: 用对象来接收参数
@ApiModel(value = "接口返回", description = "接口响应返回")
public class ResponseReult<T> implements Serializable {
/**
*
*/
@ApiModelProperty(value = "返回对象", name = "返回对象")
private T data;
/**
*
*/
@ApiModelProperty(value = "返回状态码", name = "返回状态码", required = true)
private int code;
/**
*
*/
@ApiModelProperty(value = "返回描述", name = "返回描述")
private String msg;
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public void setCode(int code, String msg) {
this.code = code;
this.msg = msg;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
/**
*
*
* @return
*/
public static <T> ResponseReult<T> success(T obj) {
ResponseReult<T> success = ResponseReult.success();
if (obj != null) {
success.setData(obj);
}
return success;
}
/**
*
*
* @return
*/
public static <T> ResponseReult<T> success() {
ResponseReult<T> response = new ResponseReult<>();
response.setCode(HttpStatus.HTTP_OK, "操作成功");
return response;
}
/**
*
*
* @return
*/
public static <T> ResponseReult<T> error() {
ResponseReult<T> response = ResponseReult.error(HttpStatus.HTTP_INTERNAL_ERROR, "操作失败");
return response;
}
/**
*
*
* @return
*/
public static <T> ResponseReult<T> error(int code, String msg) {
ResponseReult<T> response = new ResponseReult<>();
response.setCode(code, msg);
return response;
}
/**
*
*
* @param errorCode
*/
public static <T> ResponseReult<T> error(IErrorCode errorCode) {
return ResponseReult.error(errorCode.getCode(), errorCode.getMessage());
}
/**
*
*
* @param message
*/
public static <T> ResponseReult<T> error(String message) {
return ResponseReult.error(HttpStatus.HTTP_INTERNAL_ERROR, message);
}
}

@ -0,0 +1,25 @@
package com.shxy.xymanager_common.bean;
import lombok.Data;
/**
* service
*
* @author
*/
@Data
public class ServiceBody<T> {
/**
*
*/
private T data;
/**
*
*/
private int code;
/**
*
*/
private String msg;
}

@ -0,0 +1,17 @@
package com.shxy.xymanager_common.bean;
/**
*
*
* @author xzg
*/
public class ServiceStatus {
/**
*
*/
public static final int SUCCESS = 200;
/**
*
*/
public static final int ERROR = 400;
}

@ -1,11 +1,18 @@
package com.shxy.xymanager_common.entity;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
public class Terminals implements Serializable {
private Integer id;
private Integer lineid;
private Integer towerid;
private String cmdid;
private Short orgId;
@ -36,123 +43,4 @@ public class Terminals implements Serializable {
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getCmdid() {
return cmdid;
}
public void setCmdid(String cmdid) {
this.cmdid = cmdid == null ? null : cmdid.trim();
}
public Short getOrgId() {
return orgId;
}
public void setOrgId(Short orgId) {
this.orgId = orgId;
}
public String getEquipName() {
return equipName;
}
public void setEquipName(String equipName) {
this.equipName = equipName == null ? null : equipName.trim();
}
public String getDisplayName() {
return displayName;
}
public void setDisplayName(String displayName) {
this.displayName = displayName == null ? null : displayName.trim();
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model == null ? null : model.trim();
}
public String getEssentialInfoVersion() {
return essentialInfoVersion;
}
public void setEssentialInfoVersion(String essentialInfoVersion) {
this.essentialInfoVersion = essentialInfoVersion == null ? null : essentialInfoVersion.trim();
}
public Byte getHasPan() {
return hasPan;
}
public void setHasPan(Byte hasPan) {
this.hasPan = hasPan;
}
public String getBsManufacturer() {
return bsManufacturer;
}
public void setBsManufacturer(String bsManufacturer) {
this.bsManufacturer = bsManufacturer == null ? null : bsManufacturer.trim();
}
public Date getBsProductionDate() {
return bsProductionDate;
}
public void setBsProductionDate(Date bsProductionDate) {
this.bsProductionDate = bsProductionDate;
}
public String getBsIdentifier() {
return bsIdentifier;
}
public void setBsIdentifier(String bsIdentifier) {
this.bsIdentifier = bsIdentifier == null ? null : bsIdentifier.trim();
}
public Double getLatitude() {
return latitude;
}
public void setLatitude(Double latitude) {
this.latitude = latitude;
}
public Double getLongitude() {
return longitude;
}
public void setLongitude(Double longitude) {
this.longitude = longitude;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}

@ -0,0 +1,37 @@
package com.shxy.xymanager_common.exception;
import lombok.Data;
/**
* API
* Created by on 2022/3/24.
*/
@Data
public class ApiException extends RuntimeException {
private IErrorCode errorCode;
private int error;
public ApiException(IErrorCode errorCode) {
super(errorCode.getMessage());
this.errorCode = errorCode;
}
public ApiException(String message) {
super(message);
}
public ApiException(int errorcode, String message) {
super(message);
this.error = errorcode;
}
public ApiException(Throwable cause) {
super(cause);
}
public ApiException(String message, Throwable cause) {
super(message, cause);
}
}

@ -0,0 +1,39 @@
package com.shxy.xymanager_common.exception;
import com.shxy.xymanager_common.bean.ServiceBody;
import com.shxy.xymanager_common.bean.ServiceStatus;
/**
* API
* Created by macro on 2020/2/27.
*/
public class Asserts {
public static void fail(String message) {
throw new ApiException(message);
}
public static void fail(IErrorCode errorCode) {
throw new ApiException(errorCode);
}
public static void fail(int errorCode, String message) {
throw new ApiException(errorCode, message);
}
public static <T> ServiceBody<T> success(T data) {
ServiceBody<T> serviceBody = new ServiceBody<T>();
serviceBody.setCode(ServiceStatus.SUCCESS);
serviceBody.setData(data);
return serviceBody;
}
public static <T> ServiceBody<T> error(String data) {
ServiceBody<T> serviceBody = new ServiceBody<T>();
serviceBody.setCode(ServiceStatus.ERROR);
serviceBody.setData(null);
serviceBody.setMsg(data);
return serviceBody;
}
}

@ -0,0 +1,68 @@
package com.shxy.xymanager_common.exception;
import com.shxy.xymanager_common.base.ResponseReult;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import java.sql.SQLException;
/**
*
* Created by macro on 2020/2/27.
*/
@ControllerAdvice
public class GlobalExceptionHandler {
@ResponseBody
@ExceptionHandler(value = ApiException.class)
public ResponseReult handle(ApiException e) {
if (e.getErrorCode() != null) {
return ResponseReult.error(e.getErrorCode());
}
if (e.getError() != 0) {
return ResponseReult.error(e.getError(), e.getMessage());
}
return ResponseReult.error(e.getMessage());
}
@ResponseBody
@ExceptionHandler(value = SQLException.class)
public ResponseReult handleValidException(SQLException e) {
int errorCode = e.getErrorCode();
String message = e.getMessage();
return ResponseReult.error(errorCode, message);
}
@ResponseBody
@ExceptionHandler(value = MethodArgumentNotValidException.class)
public ResponseReult handleValidException(MethodArgumentNotValidException e) {
BindingResult bindingResult = e.getBindingResult();
String message = null;
if (bindingResult.hasErrors()) {
FieldError fieldError = bindingResult.getFieldError();
if (fieldError != null) {
message = fieldError.getField()+fieldError.getDefaultMessage();
}
}
return ResponseReult.error(message);
}
//
// @ResponseBody
// @ExceptionHandler(value = BindException.class)
// public CommonResult handleValidException(BindException e) {
// BindingResult bindingResult = e.getBindingResult();
// String message = null;
// if (bindingResult.hasErrors()) {
// FieldError fieldError = bindingResult.getFieldError();
// if (fieldError != null) {
// message = fieldError.getField()+fieldError.getDefaultMessage();
// }
// }
// return CommonResult.validateFailed(message);
// }
}

@ -0,0 +1,17 @@
package com.shxy.xymanager_common.exception;
/**
* API
*
*/
public interface IErrorCode {
/**
*
*/
int getCode();
/**
*
*/
String getMessage();
}

@ -0,0 +1,97 @@
package com.shxy.xymanager_common.exception.base;
import cn.hutool.core.util.StrUtil;
import com.shxy.xymanager_common.util.MessageUtils;
/**
*
*
* @author xzg
*/
public class BaseException extends RuntimeException
{
private static final long serialVersionUID = 1L;
/**
*
*/
private String module;
/**
*
*/
private String code;
/**
*
*/
private Object[] args;
/**
*
*/
private String defaultMessage;
public BaseException(String module, String code, Object[] args, String defaultMessage)
{
this.module = module;
this.code = code;
this.args = args;
this.defaultMessage = defaultMessage;
}
public BaseException(String module, String code, Object[] args)
{
this(module, code, args, null);
}
public BaseException(String module, String defaultMessage)
{
this(module, null, null, defaultMessage);
}
public BaseException(String code, Object[] args)
{
this(null, code, args, null);
}
public BaseException(String defaultMessage)
{
this(null, null, null, defaultMessage);
}
@Override
public String getMessage()
{
String message = null;
if (!StrUtil.isEmpty(code))
{
message = MessageUtils.message(code, args);
}
if (message == null)
{
message = defaultMessage;
}
return message;
}
public String getModule()
{
return module;
}
public String getCode()
{
return code;
}
public Object[] getArgs()
{
return args;
}
public String getDefaultMessage()
{
return defaultMessage;
}
}

@ -0,0 +1,20 @@
package com.shxy.xymanager_common.exception.file;
import com.shxy.xymanager_common.exception.base.BaseException;
/**
*
*
* @author xzg
*/
public class FileException extends BaseException
{
private static final long serialVersionUID = 1L;
public FileException(String code, Object[] args)
{
super("file", code, args, null);
}
}

@ -0,0 +1,16 @@
package com.shxy.xymanager_common.exception.file;
/**
*
*
* @author xzg
*/
public class FileNameLengthLimitExceededException extends FileException
{
private static final long serialVersionUID = 1L;
public FileNameLengthLimitExceededException(int defaultFileNameLength)
{
super("upload.filename.exceed.length", new Object[] { defaultFileNameLength });
}
}

@ -0,0 +1,16 @@
package com.shxy.xymanager_common.exception.file;
/**
*
*
* @author xzg
*/
public class FileSizeLimitExceededException extends FileException
{
private static final long serialVersionUID = 1L;
public FileSizeLimitExceededException(long defaultMaxSize)
{
super("upload.exceed.maxSize", new Object[] { defaultMaxSize });
}
}

@ -0,0 +1,84 @@
package com.shxy.xymanager_common.exception.file;
import org.apache.commons.fileupload.FileUploadException;
import java.util.Arrays;
/**
*
*
* @author xzg
*/
public class InvalidExtensionException extends FileUploadException
{
private static final long serialVersionUID = 1L;
private String[] allowedExtension;
private String extension;
private String filename;
public InvalidExtensionException(String[] allowedExtension, String extension, String filename)
{
super("filename : [" + filename + "], extension : [" + extension + "], allowed extension : [" + Arrays.toString(allowedExtension) + "]");
this.allowedExtension = allowedExtension;
this.extension = extension;
this.filename = filename;
}
public String[] getAllowedExtension()
{
return allowedExtension;
}
public String getExtension()
{
return extension;
}
public String getFilename()
{
return filename;
}
public static class InvalidImageExtensionException extends InvalidExtensionException
{
private static final long serialVersionUID = 1L;
public InvalidImageExtensionException(String[] allowedExtension, String extension, String filename)
{
super(allowedExtension, extension, filename);
}
}
public static class InvalidFlashExtensionException extends InvalidExtensionException
{
private static final long serialVersionUID = 1L;
public InvalidFlashExtensionException(String[] allowedExtension, String extension, String filename)
{
super(allowedExtension, extension, filename);
}
}
public static class InvalidMediaExtensionException extends InvalidExtensionException
{
private static final long serialVersionUID = 1L;
public InvalidMediaExtensionException(String[] allowedExtension, String extension, String filename)
{
super(allowedExtension, extension, filename);
}
}
public static class InvalidVideoExtensionException extends InvalidExtensionException
{
private static final long serialVersionUID = 1L;
public InvalidVideoExtensionException(String[] allowedExtension, String extension, String filename)
{
super(allowedExtension, extension, filename);
}
}
}

@ -0,0 +1,75 @@
package com.shxy.xymanager_common.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import jdk.nashorn.internal.ir.Terminal;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
*
*/
@Data
@ApiModel(value = "获取设备列表", description = "获取设备列表信息")
public class TerminalListModel implements Serializable {
@ApiModelProperty(value = "设备列表", example = "[]")
private List<TerminalBean> terminalBeanList;
@Data
public static class TerminalBean {
@ApiModelProperty(value = "线路编号", example = "123456")
private Integer lineid;
@ApiModelProperty(value = "杆塔编号", example = "123456")
private Integer towerid;
@ApiModelProperty(value = "图像监测装置 ID17 位编码)", example = "12345678")
private String cmdid;
@ApiModelProperty(value = "原始 ID各厂家内部识别号", example = "12345678")
private Short orgId;
@ApiModelProperty(value = "装置名称", example = "名称名称")
private String equipName;
@ApiModelProperty(value = "显示名", example = "名称名称")
private String displayName;
@ApiModelProperty(value = "装置型号", example = "型号型号")
private String model;
@ApiModelProperty(value = "装置基本信息版本号", example = "型号型号")
private String essentialInfoVersion;
@ApiModelProperty(value = "是否带云台", example = " 0 不带云台 1带云台")
private Byte hasPan;
@ApiModelProperty(value = "生产厂家", example = "生产厂家")
private String bsManufacturer;
@ApiModelProperty(value = "生产日期", example = "2022-06-12")
private Date bsProductionDate;
@ApiModelProperty(value = "出厂编号", example = "123456")
private String bsIdentifier;
@ApiModelProperty(value = "纬度", example = "21321")
private Double latitude;
@ApiModelProperty(value = "经度", example = "213")
private Double longitude;
@ApiModelProperty(value = "创建时间", example = "2022-06-08")
private Date createTime;
@ApiModelProperty(value = "修改时间", example = "2022-06-08")
private Date updateTime;
}
}

@ -0,0 +1,95 @@
package com.shxy.xymanager_common.page;
import cn.hutool.core.util.StrUtil;
import com.shxy.xymanager_common.util.StringUtils;
/**
*
*
* @author
*/
public class PageDomain {
/**
*
*/
private Integer pageNum;
/**
*
*/
private Integer pageSize;
/**
*
*/
private String orderByColumn;
/**
* descasc
*/
private String isAsc = "asc";
/**
*
*/
private Boolean reasonable = true;
public String getOrderBy() {
if (StrUtil.isEmpty(orderByColumn)) {
return "";
}
return StringUtils.toUnderScoreCase(orderByColumn) + " " + isAsc;
}
public Integer getPageNum() {
return pageNum;
}
public void setPageNum(Integer pageNum) {
this.pageNum = pageNum;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public String getOrderByColumn() {
return orderByColumn;
}
public void setOrderByColumn(String orderByColumn) {
this.orderByColumn = orderByColumn;
}
public String getIsAsc() {
return isAsc;
}
public void setIsAsc(String isAsc) {
if (StringUtils.isNotEmpty(isAsc)) {
// 兼容前端排序类型
if ("ascending".equals(isAsc)) {
isAsc = "asc";
} else if ("descending".equals(isAsc)) {
isAsc = "desc";
}
this.isAsc = isAsc;
}
}
public Boolean getReasonable() {
if (StringUtils.isNull(reasonable)) {
return Boolean.TRUE;
}
return reasonable;
}
public void setReasonable(Boolean reasonable) {
this.reasonable = reasonable;
}
}

@ -0,0 +1,65 @@
package com.shxy.xymanager_common.page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.shxy.xymanager_common.util.StringUtils;
import com.shxy.xymanager_common.util.http.HttpStatus;
import com.shxy.xymanager_common.util.sql.SqlUtils;
import java.util.List;
public class PageUtils {
/**
*
*/
public static void startPage() {
PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum();
Integer pageSize = pageDomain.getPageSize();
if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) {
String orderBy = SqlUtils.escapeOrderBySql(pageDomain.getOrderBy());
Boolean reasonable = pageDomain.getReasonable();
PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable);
}
}
/**
*
*/
public static void SetPage(int pagenum, int pagesize) {
PageHelper.startPage(pagenum, pagesize);
}
/**
*
*/
public static PageInfo getPageData(List list) {
PageInfo pageInfo = new PageInfo(list);
return pageInfo;
}
/**
*
*/
public static void startOrderBy() {
PageDomain pageDomain = TableSupport.buildPageRequest();
if (StringUtils.isNotEmpty(pageDomain.getOrderBy())) {
String orderBy = SqlUtils.escapeOrderBySql(pageDomain.getOrderBy());
PageHelper.orderBy(orderBy);
}
}
/**
*
*/
@SuppressWarnings({"rawtypes", "unchecked"})
public static TableDataInfo getDataTable(List<?> list) {
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(HttpStatus.HTTP_OK);
rspData.setMsg("查询成功");
rspData.setRows(list);
rspData.setTotal(new PageInfo(list).getTotal());
return rspData;
}
}

@ -0,0 +1,87 @@
package com.shxy.xymanager_common.page;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
*
*
* @author
*/
@Data
@ApiModel(value = "批量查询接口返回", description = "接口响应返回")
public class TableDataInfo implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
private long total;
/**
*
*/
private List<?> rows;
/**
*
*/
private int code;
/**
*
*/
private String msg;
/**
*
*/
public TableDataInfo() {
}
/**
*
*
* @param list
* @param total
*/
public TableDataInfo(List<?> list, int total) {
this.rows = list;
this.total = total;
}
public long getTotal() {
return total;
}
public void setTotal(long total) {
this.total = total;
}
public List<?> getRows() {
return rows;
}
public void setRows(List<?> rows) {
this.rows = rows;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}

@ -0,0 +1,53 @@
package com.shxy.xymanager_common.page;
import com.shxy.xymanager_common.util.ServletUtils;
/**
*
*
* @author xzg
*/
public class TableSupport {
/**
*
*/
public static final String PAGE_NUM = "pageNum";
/**
*
*/
public static final String PAGE_SIZE = "pageSize";
/**
*
*/
public static final String ORDER_BY_COLUMN = "orderByColumn";
/**
* "desc" "asc".
*/
public static final String IS_ASC = "isAsc";
/**
*
*/
public static final String REASONABLE = "reasonable";
/**
*
*/
public static PageDomain getPageDomain() {
PageDomain pageDomain = new PageDomain();
pageDomain.setPageNum(ServletUtils.getParameterToInt(PAGE_NUM));
pageDomain.setPageSize(ServletUtils.getParameterToInt(PAGE_SIZE));
pageDomain.setOrderByColumn(ServletUtils.getParameter(ORDER_BY_COLUMN));
pageDomain.setIsAsc(ServletUtils.getParameter(IS_ASC));
pageDomain.setReasonable(ServletUtils.getParameterToBool(REASONABLE));
return pageDomain;
}
public static PageDomain buildPageRequest() {
return getPageDomain();
}
}

@ -1,4 +1,4 @@
package com.shxy.xymanager_common;
package com.shxy.xymanager_common.util;
import com.shxy.xymanager_common.util.StringUtils;

@ -1,5 +1,6 @@
package com.shxy.xymanager_common;
package com.shxy.xymanager_common.util;
import com.shxy.xymanager_common.util.CharsetKit;
import com.shxy.xymanager_common.util.StringUtils;
import org.apache.commons.lang3.ArrayUtils;

@ -0,0 +1,26 @@
package com.shxy.xymanager_common.util;
import com.shxy.xymanager_common.util.spring.SpringUtils;
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
/**
* i18n
*
* @author xzg
*/
public class MessageUtils
{
/**
* spring messageSource
*
* @param code
* @param args
* @return
*/
public static String message(String code, Object... args)
{
MessageSource messageSource = SpringUtils.getBean(MessageSource.class);
return messageSource.getMessage(code, args, LocaleContextHolder.getLocale());
}
}

@ -1,6 +1,5 @@
package com.shxy.xymanager_common;
package com.shxy.xymanager_common.util;
import com.shxy.xymanager_common.util.StringUtils;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

@ -1,6 +1,4 @@
package com.shxy.xymanager_common;
import com.shxy.xymanager_common.util.StringUtils;
package com.shxy.xymanager_common.util;
/**
*

@ -1,6 +1,5 @@
package com.shxy.xymanager_common.util;
import com.shxy.xymanager_common.StrFormatter;
import com.shxy.xymanager_common.constant.Constants;
import org.springframework.util.AntPathMatcher;

@ -0,0 +1,48 @@
package com.shxy.xymanager_common.util.http;
public class HttpStatus {
public static final int HTTP_OK = 200;
public static final int HTTP_CREATED = 201;
public static final int HTTP_ACCEPTED = 202;
public static final int HTTP_NOT_AUTHORITATIVE = 203;
public static final int HTTP_NO_CONTENT = 204;
public static final int HTTP_RESET = 205;
public static final int HTTP_PARTIAL = 206;
public static final int HTTP_MULT_CHOICE = 300;
public static final int HTTP_MOVED_PERM = 301;
public static final int HTTP_MOVED_TEMP = 302;
public static final int HTTP_SEE_OTHER = 303;
public static final int HTTP_NOT_MODIFIED = 304;
public static final int HTTP_USE_PROXY = 305;
public static final int HTTP_TEMP_REDIRECT = 307;
public static final int HTTP_PERMANENT_REDIRECT = 308;
public static final int HTTP_BAD_REQUEST = 400;
public static final int HTTP_UNAUTHORIZED = 401;
public static final int HTTP_PAYMENT_REQUIRED = 402;
public static final int HTTP_FORBIDDEN = 403;
public static final int HTTP_NOT_FOUND = 404;
public static final int HTTP_BAD_METHOD = 405;
public static final int HTTP_NOT_ACCEPTABLE = 406;
public static final int HTTP_PROXY_AUTH = 407;
public static final int HTTP_CLIENT_TIMEOUT = 408;
public static final int HTTP_CONFLICT = 409;
public static final int HTTP_GONE = 410;
public static final int HTTP_LENGTH_REQUIRED = 411;
public static final int HTTP_PRECON_FAILED = 412;
public static final int HTTP_ENTITY_TOO_LARGE = 413;
public static final int HTTP_REQ_TOO_LONG = 414;
public static final int HTTP_UNSUPPORTED_TYPE = 415;
public static final int HTTP_INTERNAL_ERROR = 500;
public static final int HTTP_NOT_IMPLEMENTED = 501;
public static final int HTTP_BAD_GATEWAY = 502;
public static final int HTTP_UNAVAILABLE = 503;
public static final int HTTP_GATEWAY_TIMEOUT = 504;
public static final int HTTP_VERSION = 505;
public HttpStatus() {
}
public static boolean isRedirected(int responseCode) {
return responseCode == 301 || responseCode == 302 || responseCode == 303 || responseCode == 307 || responseCode == 308;
}
}

@ -0,0 +1,146 @@
package com.shxy.xymanager_common.util.spring;
import com.shxy.xymanager_common.util.StringUtils;
import org.springframework.aop.framework.AopContext;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
/**
* spring 便springbean
*
* @author xzg
*/
@Component
public final class SpringUtils implements BeanFactoryPostProcessor, ApplicationContextAware
{
/** Spring应用上下文环境 */
private static ConfigurableListableBeanFactory beanFactory;
private static ApplicationContext applicationContext;
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException
{
beanFactory = beanFactory;
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException
{
applicationContext = applicationContext;
}
/**
*
*
* @param name
* @return Object bean
* @throws BeansException
*
*/
@SuppressWarnings("unchecked")
public static <T> T getBean(String name) throws BeansException
{
return (T) beanFactory.getBean(name);
}
/**
* requiredType
*
* @param clz
* @return
* @throws BeansException
*
*/
public static <T> T getBean(Class<T> clz) throws BeansException
{
T result = (T) beanFactory.getBean(clz);
return result;
}
/**
* BeanFactorybeantrue
*
* @param name
* @return boolean
*/
public static boolean containsBean(String name)
{
return beanFactory.containsBean(name);
}
/**
* beansingletonprototype beanNoSuchBeanDefinitionException
*
* @param name
* @return boolean
* @throws NoSuchBeanDefinitionException
*
*/
public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException
{
return beanFactory.isSingleton(name);
}
/**
* @param name
* @return Class
* @throws NoSuchBeanDefinitionException
*
*/
public static Class<?> getType(String name) throws NoSuchBeanDefinitionException
{
return beanFactory.getType(name);
}
/**
* beanbean
*
* @param name
* @return
* @throws NoSuchBeanDefinitionException
*
*/
public static String[] getAliases(String name) throws NoSuchBeanDefinitionException
{
return beanFactory.getAliases(name);
}
/**
* aop
*
* @param invoker
* @return
*/
@SuppressWarnings("unchecked")
public static <T> T getAopProxy(T invoker)
{
return (T) AopContext.currentProxy();
}
/**
* null
*
* @return
*/
public static String[] getActiveProfiles()
{
return applicationContext.getEnvironment().getActiveProfiles();
}
/**
*
*
* @return
*/
public static String getActiveProfile()
{
final String[] activeProfiles = getActiveProfiles();
return StringUtils.isNotEmpty(activeProfiles) ? activeProfiles[0] : null;
}
}

@ -0,0 +1,62 @@
package com.shxy.xymanager_common.util.sql;
import cn.hutool.core.exceptions.UtilException;
import com.shxy.xymanager_common.util.StringUtils;
/**
* sql
*
* @author ruoyi
*/
public class SqlUtils extends cn.hutool.db.sql.SqlUtil
{
/**
* sql
*/
public static String SQL_REGEX = "select |insert |delete |update |drop |count |exec |chr |mid |master |truncate |char |and |declare ";
/**
* 线
*/
public static String SQL_PATTERN = "[a-zA-Z0-9_\\ \\,\\.]+";
/**
*
*/
public static String escapeOrderBySql(String value)
{
if (StringUtils.isNotEmpty(value) && !isValidOrderBySql(value))
{
throw new UtilException("参数不符合规范,不能进行查询");
}
return value;
}
/**
* order by
*/
public static boolean isValidOrderBySql(String value)
{
return value.matches(SQL_PATTERN);
}
/**
* SQL
*/
public static void filterKeyword(String value)
{
if (StringUtils.isEmpty(value))
{
return;
}
String[] sqlKeywords = StringUtils.split(SQL_REGEX, "\\|");
for (String sqlKeyword : sqlKeywords)
{
if (StringUtils.indexOfIgnoreCase(value, sqlKeyword) > -1)
{
throw new UtilException("参数存在SQL注入风险");
}
}
}
}

@ -6,14 +6,15 @@
<groupId>com.shxy</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.shxy</groupId>
<artifactId>xymanager_dao</artifactId>
<name>xymanager_dao</name>
<description>xymanager_dao</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>com.shxy</groupId>

@ -2,10 +2,14 @@ package com.shxy.xymanager_dao.dao;
import com.shxy.xymanager_common.entity.Terminals;
import java.util.List;
public interface TerminalsDao {
int insertSelective(Terminals record);
List<Terminals> selectAll();
Terminals selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(Terminals record);

@ -3,6 +3,8 @@
<mapper namespace="com.shxy.xymanager_dao.dao.TerminalsDao">
<resultMap id="BaseResultMap" type="com.shxy.xymanager_common.entity.Terminals">
<id column="id" jdbcType="INTEGER" property="id"/>
<result column="line_id" jdbcType="INTEGER" property="lineid"/>
<result column="tower_id" jdbcType="INTEGER" property="towerid"/>
<result column="cmdid" jdbcType="VARCHAR" property="cmdid"/>
<result column="org_id" jdbcType="SMALLINT" property="orgId"/>
<result column="equip_name" jdbcType="VARCHAR" property="equipName"/>
@ -19,10 +21,17 @@
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
</resultMap>
<sql id="Base_Column_List">
id, cmdid, org_id, equip_name, display_name, model, essential_info_version, has_pan,
id, line_id,tower_id,cmdid, org_id, equip_name, display_name, model, essential_info_version, has_pan,
bs_manufacturer, bs_production_date, bs_identifier, latitude, longitude, create_time,
update_time
</sql>
<select id="selectAll" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from terminals
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>

@ -1,7 +1,7 @@
package com.shxy.xymanager_framework.aspect;
import com.alibaba.fastjson.JSON;
import com.shxy.xymanager_common.ServletUtils;
import com.shxy.xymanager_common.util.ServletUtils;
import com.shxy.xymanager_common.annotation.Log;
import com.shxy.xymanager_common.bean.SysOperLog;
import com.shxy.xymanager_common.enums.HttpMethod;

@ -0,0 +1,52 @@
package com.shxy.xymanager_service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.collection.CollectionUtil;
import com.shxy.xymanager_common.bean.ServiceBody;
import com.shxy.xymanager_common.entity.Terminals;
import com.shxy.xymanager_common.exception.Asserts;
import com.shxy.xymanager_common.model.TerminalListModel;
import com.shxy.xymanager_dao.dao.TerminalsDao;
import com.shxy.xymanager_service.service.TerminalService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
*
*
* @author
*/
@Slf4j
@Service
public class TerminalServiceImpl implements TerminalService {
@Autowired
private TerminalsDao terminalsDao;
/**
*
*
* @return
*/
@Override
public ServiceBody<TerminalListModel> getTerminalList() {
TerminalListModel terminalListModel = new TerminalListModel();
List<Terminals> terminals = terminalsDao.selectAll();
boolean empty = CollectionUtil.isEmpty(terminals);
if (empty) {
terminalListModel.setTerminalBeanList(new ArrayList<>());
} else {
List<TerminalListModel.TerminalBean> list = BeanUtil.copyToList(terminals, TerminalListModel.TerminalBean.class, CopyOptions.create().ignoreCase());
terminalListModel.setTerminalBeanList(list);
}
return Asserts.success(terminalListModel);
}
}

@ -0,0 +1,19 @@
package com.shxy.xymanager_service.service;
import com.shxy.xymanager_common.bean.ServiceBody;
import com.shxy.xymanager_common.model.TerminalListModel;
/**
*
*
* @author
*/
public interface TerminalService {
/**
*
*
* @return
*/
ServiceBody<TerminalListModel> getTerminalList();
}
Loading…
Cancel
Save