diff --git a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/OpenController.java b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/OpenController.java new file mode 100644 index 0000000..4816618 --- /dev/null +++ b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/OpenController.java @@ -0,0 +1,76 @@ +package com.shxy.xymanager_admin.controller; + +import cn.hutool.json.JSONObject; +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.*; +import com.shxy.xymanager_common.vo.*; +import com.shxy.xymanager_service.service.OpenService; +import com.shxy.xymanager_service.service.TerminalPhotoService; +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.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + +@Api(value = "精益化平台接口", tags = "精益化平台相关") +@RestController +@Slf4j +public class OpenController extends BaseController { + + @Autowired + TerminalPhotoService terminalPhotoService; + + @Autowired + OpenService openService; + + + @ApiOperation(value = "对外图片查询", notes = "对外图片查询", httpMethod = "POST") + @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) + @RequestMapping("/getPhotoListForOpen") + @Log(title = "对外图片查询", type = "查询") + public ResponseReult getPhotoListForOpen(@RequestBody @Validated OpenTerminalAndTimeVo vo) { + ServiceBody serviceBody = terminalPhotoService.getPhotoListForOpen(vo); + if (serviceBody.getCode() == ServiceStatus.SUCCESS) { + return ResponseReult.success(serviceBody.getData()); + } else { + return ResponseReult.error(serviceBody.getCode(), serviceBody.getMsg()); + } + } + + @ApiOperation(value = "第三方登录认证接口", notes = "第三方登录认证接口", httpMethod = "POST") + @ApiResponses({@ApiResponse(code = 0, message = "请求成功"), @ApiResponse(code = 1, message = "用户名错误"), @ApiResponse(code = 2, message = "密码错误")}) + @RequestMapping("/cmaUserLogin") + @Log(title = "第三方登录认证接口", type = "查询") + public JSONObject cmaUserLogin(@RequestBody @Validated UserLoginVo vo) { + JSONObject serviceBody = openService.cmaUserLogin(vo); + return serviceBody; + } + + @ApiOperation(value = "远程拍照(短视频)控制", notes = "远程拍照(短视频)控制接口", httpMethod = "POST") + @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) + @RequestMapping("/ctrlCmaDeviceCapture") + @Log(title = "远程拍照(短视频)控制", type = "查询") + public JSONObject ctrlCmaDeviceCapture(@RequestBody @Validated OpenDeviceCaptureVo vo) { + JSONObject serviceBody = openService.ctrlCmaDeviceCapture(vo); + return serviceBody; + } + + @ApiOperation(value = "查询装置状态", notes = "查询装置状态接口", httpMethod = "POST") + @ApiResponses({@ApiResponse(code = 0, message = "请求成功"), @ApiResponse(code = 1, message = "用户名错误"), @ApiResponse(code = 2, message = "密码错误")}) + @RequestMapping("/cmaDeviceStatus") + @Log(title = "查询装置状态接口", type = "查询") + public JSONObject cmaDeviceStatus(@RequestBody @Validated OpenCmdidVo vo) { + JSONObject serviceBody = openService.cmaDeviceStatus(vo); + return serviceBody; + } +} diff --git a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/SysLoginController.java b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/SysLoginController.java index 27cf259..319bfad 100644 --- a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/SysLoginController.java +++ b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/SysLoginController.java @@ -5,7 +5,7 @@ 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.bean.SysUser; -import com.shxy.xymanager_common.entity.UserSession; +import com.shxy.xymanager_common.entity.SysUserSession; import com.shxy.xymanager_common.model.SysUserModel; import com.shxy.xymanager_common.vo.PageVo; import com.shxy.xymanager_common.vo.SysUserUpdateVo; @@ -41,8 +41,8 @@ public class SysLoginController { @ApiOperation(value = "登录", notes = "登录", httpMethod = "POST") @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) @RequestMapping("/login") - public ResponseReult login(@RequestBody SysUser sysUser) { - ServiceBody serviceBody = loginService.remoteLogin(sysUser); + public ResponseReult login(@RequestBody SysUser sysUser) { + ServiceBody serviceBody = loginService.remoteLogin(sysUser); if (serviceBody.getCode() == ServiceStatus.SUCCESS) { return ResponseReult.success(serviceBody.getData()); } else { @@ -56,7 +56,6 @@ public class SysLoginController { * @param vo * @return */ - @ApiOperation(value = "修改用户", notes = "修改用户", httpMethod = "POST") @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) @RequestMapping("/updateUser") diff --git a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalController.java b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalController.java index 38cd1bd..fd01841 100644 --- a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalController.java +++ b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalController.java @@ -195,6 +195,4 @@ public class TerminalController extends BaseController { } } - - } diff --git a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalPhotoController.java b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalPhotoController.java index 8757bb1..14ae078 100644 --- a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalPhotoController.java +++ b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalPhotoController.java @@ -112,19 +112,6 @@ public class TerminalPhotoController extends BaseController { } } - @ApiOperation(value = "对外图片查询", notes = "对外图片查询", httpMethod = "POST") - @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) - @RequestMapping("/getPhotoListForOpen") - @Log(title = "对外图片查询", type = "查询") - public ResponseReult getPhotoListForOpen(@RequestBody @Validated TerminalAndTimeForOpenVo vo) { - ServiceBody serviceBody = terminalPhotoService.getPhotoListForOpen(vo); - if (serviceBody.getCode() == ServiceStatus.SUCCESS) { - return ResponseReult.success(serviceBody.getData()); - } else { - return ResponseReult.error(serviceBody.getCode(), serviceBody.getMsg()); - } - } - @ApiOperation(value = "最新图片查询", notes = "图片查询接口", httpMethod = "POST") @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) @RequestMapping("/getReturnedPhoto") diff --git a/xymanager_admin/src/main/resources/META-INF/spring.factories b/xymanager_admin/src/main/resources/META-INF/spring.factories index 5e2059b..8e7c358 100644 --- a/xymanager_admin/src/main/resources/META-INF/spring.factories +++ b/xymanager_admin/src/main/resources/META-INF/spring.factories @@ -1 +1 @@ -org.springframework.boot.env.EnvironmentPostProcessor=com.shxy.xymanager_framework.config.MyEnvironmentPostProcessor +#org.springframework.boot.env.EnvironmentPostProcessor=com.shxy.xymanager_framework.config.MyEnvironmentPostProcessor diff --git a/xymanager_admin/src/main/resources/application-test.yml b/xymanager_admin/src/main/resources/application-test.yml index b1c8e0b..e5c5202 100644 --- a/xymanager_admin/src/main/resources/application-test.yml +++ b/xymanager_admin/src/main/resources/application-test.yml @@ -183,6 +183,7 @@ video: address: http://47.96.238.157/videos/ session: expire_time: 3600 + open_expire_time: 1800 rsa: public_key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCViq0L+1XCTKOkt9nmy9aQbMRNNJNBOtPYRlCq/bRuwlYaq/I+XqSDkIF8s4JJSy3/Vgjw0fp8d4O+5KBS4Om9Ela60I2Vv/q8LjCNFNYbRE6xI7yrlyPukodmC/s1VgODDRHn3vVyKcK9nyF7xZsXixnlvltAky888CJkLpiGjQIDAQAB private_key: MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAJWKrQv7VcJMo6S32ebL1pBsxE00k0E609hGUKr9tG7CVhqr8j5epIOQgXyzgklLLf9WCPDR+nx3g77koFLg6b0SVrrQjZW/+rwuMI0U1htETrEjvKuXI+6Sh2YL+zVWA4MNEefe9XIpwr2fIXvFmxeLGeW+W0CTLzzwImQumIaNAgMBAAECgYAzOn2LlD9Nv5lzzTPNl9jaQxiAZllnyDJYbcYmvaD5LIP4wRzMdvmexHtHb+tbFnEcfqmzbguEZiDw3Tt7COepQWvNzlM+/HbFtkXzSh6WEu2TgjZwudcCDHDyjDzUNgcWnBIw8/+Sy4COOm4p+UnprYK4sdriMZyz8K5UC8CxFQJBAODTt0lg/HiZKaOX7PMmsiRisd5oAslyDHCt66oPG29KTE1j4fwKDzGJlrOo1f4Q078IDYMO1I/Y3uP8Es3FT1MCQQCqRrD+lO3YCZOUGTHm2WGmbljIoeDpnIn2TZFyqDGKXs6EAx7SXkgarY2OC5O2aifMhXElPUGChfSgPmRUFHafAkEAxFtkWuwf1NxAJ6cKxZpoP6sLGenRdUrsXoUnrBEhruM/HOA9gLjwaB14x1SQASOFK/TGiE4ti6ynjoqbiafoDQJBAI0l6FZAsiBhX9pmQD1yeUXzNtmphr1gK+TmS+lVjyt6h4pa49PSn8atkyfqZNnTiYY6H56U9pbx3+Rtk9E23VUCQEZ9/JHUaGc77s3ibpcKFVemlb0i/Uvj2V45aoNfY34iex4biAUsRq/FJNiqBk+xQWkJ4QY8nKVE45GlaCfZ8/c= diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/bean/SysDept.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/bean/SysDept.java deleted file mode 100644 index d23aa32..0000000 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/bean/SysDept.java +++ /dev/null @@ -1,264 +0,0 @@ -package com.shxy.xymanager_common.bean; - -import io.swagger.annotations.ApiModelProperty; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - - -/** - * @ClassName:SysDept - * @Description: 部门表. - * @Author: Arno_Fu - * @CreatTime:11/26/2019 - 8:50 PM - * @Version V1.0 - */ - -public class SysDept { - - private static final long serialVersionUID = 1L; - - /** - * 部门id - */ - @ApiModelProperty(value="部门id", name="dept_id") - private Long deptId; - - /** - * 父部门id - */ - @ApiModelProperty(value="父部门id", name="parentId") - private Long parentId; - - /** - * 祖级列表 - */ - private String ancestors; - - /** - * 部门名称 - */ - @ApiModelProperty(value="部门名称", name="deptName") - private String deptName; - - /** - * 显示顺序 - */ - @ApiModelProperty(value="显示顺序", name="orderNum") - private Integer orderNum; - - /** - * 负责人 - */ - private String leader; - - /** - * 联系电话 - */ - private String phone; - - /** - * 邮箱 - */ - private String email; - - /** - * 部门状态(0正常 1停用) - */ - private String status; - - /** - * 删除标志(0代表存在 1代表删除) - */ - @ApiModelProperty(value="删除标志(0代表存在 1代表删除)", name="delFlag") - private String delFlag; - - /** - * 创建者 - */ - @ApiModelProperty(value="创建者", name="createBy") - private String createBy; - - /** - * 创建时间 - */ - @ApiModelProperty(value="创建时间", name="createTime") - private Date createTime; - - /** - * 更新者 - */ - @ApiModelProperty(value="更新者", name="updateBy") - private String updateBy; - - /** - * 更新时间 - */ - @ApiModelProperty(value="更新时间", name="updateTime") - private Date updateTime; - - - /** - * 父部门名称 - * */ - - private String parentName; - - /** - * 子部门 - * */ - - private List children = new ArrayList(); - - - - - public Long getDeptId() { - return deptId; - } - - public void setDeptId(Long deptId) { - this.deptId = deptId; - } - - public Long getParentId() { - return parentId; - } - - public void setParentId(Long parentId) { - this.parentId = parentId; - } - - public String getAncestors() { - return ancestors; - } - - public void setAncestors(String ancestors) { - this.ancestors = ancestors; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public Integer getOrderNum() { - return orderNum; - } - - public void setOrderNum(Integer orderNum) { - this.orderNum = orderNum; - } - - public String getLeader() { - return leader; - } - - public void setLeader(String leader) { - this.leader = leader; - } - - public String getPhone() { - return phone; - } - - public void setPhone(String phone) { - this.phone = phone; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getDelFlag() { - return delFlag; - } - - public void setDelFlag(String delFlag) { - this.delFlag = delFlag; - } - - public String getCreateBy() { - return createBy; - } - - public void setCreateBy(String createBy) { - this.createBy = createBy; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public String getUpdateBy() { - return updateBy; - } - - public void setUpdateBy(String updateBy) { - this.updateBy = updateBy; - } - - public Date getUpdateTime() { - return updateTime; - } - - public void setUpdateTime(Date updateTime) { - this.updateTime = updateTime; - } - - public String getParentName() { - return parentName; - } - - public void setParentName(String parentName) { - this.parentName = parentName; - } - - public List getChildren() { - return children; - } - - public void setChildren(List children) { - this.children = children; - } - - @Override - public String toString() { - return "SysDept{" + - ", deptId=" + deptId + - ", parentId=" + parentId + - ", ancestors=" + ancestors + - ", deptName=" + deptName + - ", orderNum=" + orderNum + - ", leader=" + leader + - ", phone=" + phone + - ", email=" + email + - ", status=" + status + - ", delFlag=" + delFlag + - ", createBy=" + createBy + - ", createTime=" + createTime + - ", updateBy=" + updateBy + - ", updateTime=" + updateTime + - "}"; - } -} diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/bean/SysUser.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/bean/SysUser.java index 4298c61..550e553 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/bean/SysUser.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/bean/SysUser.java @@ -1,7 +1,6 @@ package com.shxy.xymanager_common.bean; -import cn.hutool.core.date.DateTime; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -56,12 +55,7 @@ public class SysUser { private String status; - - public SysUser() { } - - - } diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/LineAndTerminalWithHeartDto.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/LineAndTerminalWithHeartDto.java index 2d98a41..481652d 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/LineAndTerminalWithHeartDto.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/LineAndTerminalWithHeartDto.java @@ -1,7 +1,5 @@ package com.shxy.xymanager_common.dto; -import com.shxy.xymanager_common.entity.Terminals; -import com.shxy.xymanager_common.entity.TerminalsWithHeart; import lombok.Data; import java.util.List; diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalsWithHeart.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/TerminalsWithHeart.java similarity index 94% rename from xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalsWithHeart.java rename to xymanager_common/src/main/java/com/shxy/xymanager_common/dto/TerminalsWithHeart.java index 5ebc7a7..672f5db 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalsWithHeart.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/TerminalsWithHeart.java @@ -1,4 +1,4 @@ -package com.shxy.xymanager_common.entity; +package com.shxy.xymanager_common.dto; import lombok.Data; diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/SysUser.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/SysUser.java index 0f42e33..4ba30b1 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/SysUser.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/SysUser.java @@ -1,50 +1,27 @@ package com.shxy.xymanager_common.entity; -import io.swagger.annotations.ApiModelProperty; import lombok.Data; -/** - * @ClassName:SysUser - * @Description: 用户信息表 - * @Author: Arno_Fu - * @CreatTime:11/26/2019 - 2:25 PM - * @Version V1.0 - */ +import java.util.Date; + @Data -public class SysUser { - - /** - * 用户ID - */ - @ApiModelProperty(value="用户ID", name="user_id") - private Integer userId; - - /** - * 用户账号 - */ - @ApiModelProperty(value="用户账号", name="userAccount") +public class SysUser { + + private Integer uid; + private String userName; - /** - * 用户昵称 - */ - @ApiModelProperty(value="用户昵称", name="nickName") - private String nickName; + private Integer status; - /** - * 密码盐 - */ - private String passwordSalt; + private String nickName; - /** - * 密码 - */ private String password; - /** - * 帐号状态(0正常 1停用) - */ - private String status; + private Integer role; + + private Date createTime; + + private Date updateTime; } diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/UserSession.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/SysUserSession.java similarity index 85% rename from xymanager_common/src/main/java/com/shxy/xymanager_common/entity/UserSession.java rename to xymanager_common/src/main/java/com/shxy/xymanager_common/entity/SysUserSession.java index 559a991..f67559f 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/UserSession.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/SysUserSession.java @@ -6,7 +6,7 @@ import java.io.Serializable; import java.math.BigInteger; @Data -public class UserSession implements Serializable { +public class SysUserSession implements Serializable { private Integer id; private String sessionId; diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/exception/CustomException.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/exception/CustomException.java index 4feb834..badc1fd 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/exception/CustomException.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/exception/CustomException.java @@ -3,7 +3,7 @@ package com.shxy.xymanager_common.exception; /** * 自定义异常 * - * @author ruoyi + * @author 晶晶 */ public class CustomException extends RuntimeException { diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/CmaUtil.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/CmaUtil.java new file mode 100644 index 0000000..e7ef59c --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/CmaUtil.java @@ -0,0 +1,22 @@ +package com.shxy.xymanager_common.util; + +import com.shxy.xymanager_common.constant.Constants; + +/** + * 跟Cma通信的工具类 + */ +public class CmaUtil { + + /** + * 手动拍照 + * @param cmdid + * @param channel + * @param type + * @return + */ + public static String takePic(String cmdid, Integer channel, Integer type) { + String cmd = Constants.CMD + "capture --cmdid=" + cmdid + " --channel=" + channel + " --preset=255 --type=" + type; + + return cmd; + } +} diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/OpenCmdidVo.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/OpenCmdidVo.java new file mode 100644 index 0000000..939aa5d --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/OpenCmdidVo.java @@ -0,0 +1,19 @@ +package com.shxy.xymanager_common.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +@ApiModel(value = "装置编号对象", description = "装置编号对象") +public class OpenCmdidVo { + + @ApiModelProperty(value = "装置编号", example = "123455") + private String deviceID; + + @ApiModelProperty(value = "sessionID", example = "123455") + private String sessionID; + +} diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/OpenDeviceCaptureVo.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/OpenDeviceCaptureVo.java new file mode 100644 index 0000000..f383841 --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/OpenDeviceCaptureVo.java @@ -0,0 +1,20 @@ +package com.shxy.xymanager_common.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "用户登录参数", description = "用户登录参数描述") +public class OpenDeviceCaptureVo { + + @ApiModelProperty(value = "装置编号", example = "123455") + private String deviceID; + + @ApiModelProperty(value = "sessionID", example = "123455") + private String sessionID; + + @ApiModelProperty(value = "操作", example = "1--拍照 2--拍视频") + private Integer operateType; + +} diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalAndTimeForOpenVo.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/OpenTerminalAndTimeVo.java similarity index 96% rename from xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalAndTimeForOpenVo.java rename to xymanager_common/src/main/java/com/shxy/xymanager_common/vo/OpenTerminalAndTimeVo.java index f1441ee..3684131 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalAndTimeForOpenVo.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/OpenTerminalAndTimeVo.java @@ -12,7 +12,7 @@ import java.util.List; @Data @ApiModel(value = "装置和查询时间提供", description = "装置和查询时间提供") -public class TerminalAndTimeForOpenVo { +public class OpenTerminalAndTimeVo { @NotNull(message = "装置编号不能缺少") @ApiModelProperty(value = "装置编号", example = "123455") diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalPhotoVo.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalPhotoVo.java index 13a28b8..bb715e1 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalPhotoVo.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalPhotoVo.java @@ -17,15 +17,15 @@ public class TerminalPhotoVo { @NotNull(message = "通道号") @ApiModelProperty(value = "通道号", example = "123455") - private Short channel; + private Integer channel; @NotNull(message = "装置列表不能缺少") @ApiModelProperty(value = "装置通道编号列表", example = "123455") - private Short preset; + private Integer preset; @NotNull(message = "图片类型") @ApiModelProperty(value = "图片类型", example = "0--图片 1--视频") - private Short captureType; + private Integer captureType; } diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/UserLoginVo.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/UserLoginVo.java new file mode 100644 index 0000000..34fea4e --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/UserLoginVo.java @@ -0,0 +1,21 @@ +package com.shxy.xymanager_common.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +@ApiModel(value = "用户登录参数", description = "用户登录参数描述") +public class UserLoginVo { + + @NotNull(message = "用户名") + @ApiModelProperty(value = "用户名", example = "123455") + private String username; + + @NotNull(message = "密码") + @ApiModelProperty(value = "密码", example = "123455") + private String password; + +} diff --git a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/SysUserDao.java b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/SysUserDao.java new file mode 100644 index 0000000..2cf4880 --- /dev/null +++ b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/SysUserDao.java @@ -0,0 +1,22 @@ +package com.shxy.xymanager_dao.dao; + +import com.shxy.xymanager_common.entity.SysUser; +import org.apache.ibatis.annotations.Param; + +public interface SysUserDao { + + SysUser selectByPrimaryKey(Integer uid); + + SysUser selectByUserName(@Param("username") String username); + + int deleteByPrimaryKey(Integer uid); + + int insert(SysUser record); + + int insertSelective(SysUser record); + + + int updateByPrimaryKeySelective(SysUser record); + + int updateByPrimaryKey(SysUser record); +} \ No newline at end of file diff --git a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/SysUserMapperDao.java b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/SysUserMapperDao.java index e3cedf1..ee796a1 100644 --- a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/SysUserMapperDao.java +++ b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/SysUserMapperDao.java @@ -1,16 +1,17 @@ package com.shxy.xymanager_dao.dao; +import cn.hutool.core.util.StrUtil; import com.shxy.xymanager_common.bean.SysUser; -import com.shxy.xymanager_common.entity.UserSession; -import com.shxy.xymanager_common.vo.PageVo; +import com.shxy.xymanager_common.entity.SysUserSession; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; /** * @ClassName:SysUserMapper - * @Description: 用户表 Mapper 接口. + * @Description: 用户表 Mapper 接口. * @Author: Arno_Fu * @CreatTime:11/26/2019 - 2:51 PM * @Version V1.0 @@ -20,10 +21,9 @@ import java.util.List; public interface SysUserMapperDao { /** - * - * @Description 通过用户账户获取用户信息 * @param userAccount * @return com.chenxuan.entity.model.SysUser + * @Description 通过用户账户获取用户信息 */ SysUser selectByUserAccount(@Param("userName") String userAccount); @@ -34,7 +34,7 @@ public interface SysUserMapperDao { * @param userName 用户名称 * @return 结果 */ - int checkUserNameUnique(@Param("userName") String userName); + int checkUserNameUnique(@Param("userName") String userName); int addUser(SysUser user); @@ -42,8 +42,6 @@ public interface SysUserMapperDao { Integer updateById(SysUser user); - - /** * 通过用户名查询用户 * @@ -65,7 +63,7 @@ public interface SysUserMapperDao { * 修改用户头像 * * @param userName 用户名 - * @param avatar 头像地址 + * @param avatar 头像地址 * @return 结果 */ int updateUserAvatar(@Param("userName") String userName, @Param("avatar") String avatar); @@ -92,11 +90,18 @@ public interface SysUserMapperDao { int deleteUserById(String userId); - UserSession selectUserBySessionId(String sessionId); + SysUserSession selectUserBySessionId(String sessionId); + + void insertUserSession(SysUserSession session); + + int updateUserSession(SysUserSession session); + + List selectUserInfoList(@Param("status") Integer status); + + + int insertOrUpdate(@Param("item") SysUserSession session, @Param("createat") Date create, @Param("updateat") Date update); - void insertUserSession(UserSession session); + SysUserSession selectBySessionId(@Param("sessionid") String sessionid); - int updateUserSession(UserSession session); - List selectUserInfoList(@Param("status") Integer status); } diff --git a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalStatusDao.java b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalStatusDao.java index 44456e2..fd498b5 100644 --- a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalStatusDao.java +++ b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalStatusDao.java @@ -1,6 +1,8 @@ package com.shxy.xymanager_dao.dao; +import com.shxy.xymanager_common.dto.TerminalsWithHeart; import com.shxy.xymanager_common.entity.TerminalStatus; +import org.apache.ibatis.annotations.Param; public interface TerminalStatusDao { int deleteByPrimaryKey(Integer termId); @@ -11,6 +13,8 @@ public interface TerminalStatusDao { TerminalStatus selectByPrimaryKey(Integer termId); + TerminalsWithHeart selectByCmdId(@Param("cmdid") String cmdid); + int updateByPrimaryKeySelective(TerminalStatus record); int updateByPrimaryKey(TerminalStatus record); diff --git a/xymanager_dao/src/main/resources/generatorConfig.xml b/xymanager_dao/src/main/resources/generatorConfig.xml index ea9413e..0ddf71a 100644 --- a/xymanager_dao/src/main/resources/generatorConfig.xml +++ b/xymanager_dao/src/main/resources/generatorConfig.xml @@ -213,9 +213,9 @@ - diff --git a/xymanager_dao/src/main/resources/mappers/DyLevelDao.xml b/xymanager_dao/src/main/resources/mappers/DyLevelDao.xml index 5e25f01..f88626e 100644 --- a/xymanager_dao/src/main/resources/mappers/DyLevelDao.xml +++ b/xymanager_dao/src/main/resources/mappers/DyLevelDao.xml @@ -19,7 +19,7 @@ - + diff --git a/xymanager_dao/src/main/resources/mappers/SysUserDao.xml b/xymanager_dao/src/main/resources/mappers/SysUserDao.xml new file mode 100644 index 0000000..467e1c1 --- /dev/null +++ b/xymanager_dao/src/main/resources/mappers/SysUserDao.xml @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + uid, user_name, status, nick_name, password, role, create_time, update_time + + + + + delete from sys_user + where uid = #{uid,jdbcType=INTEGER} + + + insert into sys_user (uid, user_name, status, + nick_name, password, role, + create_time, update_time) + values (#{uid,jdbcType=INTEGER}, #{userName,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, + #{nickName,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{role,jdbcType=INTEGER}, + #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}) + + + insert into sys_user + + + uid, + + + user_name, + + + status, + + + nick_name, + + + password, + + + role, + + + create_time, + + + update_time, + + + + + #{uid,jdbcType=INTEGER}, + + + #{userName,jdbcType=VARCHAR}, + + + #{status,jdbcType=INTEGER}, + + + #{nickName,jdbcType=VARCHAR}, + + + #{password,jdbcType=VARCHAR}, + + + #{role,jdbcType=INTEGER}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{updateTime,jdbcType=TIMESTAMP}, + + + + + update sys_user + + + user_name = #{userName,jdbcType=VARCHAR}, + + + status = #{status,jdbcType=INTEGER}, + + + nick_name = #{nickName,jdbcType=VARCHAR}, + + + password = #{password,jdbcType=VARCHAR}, + + + role = #{role,jdbcType=INTEGER}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + update_time = #{updateTime,jdbcType=TIMESTAMP}, + + + where uid = #{uid,jdbcType=INTEGER} + + + update sys_user + set user_name = #{userName,jdbcType=VARCHAR}, + status = #{status,jdbcType=INTEGER}, + nick_name = #{nickName,jdbcType=VARCHAR}, + password = #{password,jdbcType=VARCHAR}, + role = #{role,jdbcType=INTEGER}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + update_time = #{updateTime,jdbcType=TIMESTAMP} + where uid = #{uid,jdbcType=INTEGER} + + \ No newline at end of file diff --git a/xymanager_dao/src/main/resources/mappers/SysUserMapperDao.xml b/xymanager_dao/src/main/resources/mappers/SysUserMapperDao.xml index 88bb1df..9ce39b9 100644 --- a/xymanager_dao/src/main/resources/mappers/SysUserMapperDao.xml +++ b/xymanager_dao/src/main/resources/mappers/SysUserMapperDao.xml @@ -2,13 +2,22 @@ - - - - - - - + + + + + + + + + + + + + + + + SELECT @@ -19,15 +28,13 @@ sys_user u - - - - WHERE status = '0' + WHERE status = '0' AND user_name like concat('%', #{params.userName}, '%') @@ -47,6 +54,10 @@ where u.user_id = #{userId} + update sys_user set password = #{password} where user_name = #{userName} @@ -57,7 +68,7 @@ values(#{userName},#{userName},#{password},#{role},#{createTime}) - select session_id as sessionId, user_name as userName, @@ -67,7 +78,7 @@ where session_id = #{sessionId} - + update `sys_user_session` @@ -77,7 +88,6 @@ where session_id = #{sessionId} - update `sys_user` @@ -100,15 +110,13 @@ where uid = #{userId} - update `sys_user` set status = 0 where uid = #{userId} - - + insert into sys_user_session (session_id, user_name,role,expire_time) values (#{sessionId,jdbcType=VARCHAR}, #{userName,jdbcType=VARCHAR}, #{role,jdbcType=VARCHAR}, #{expireTime,jdbcType=INTEGER}) @@ -126,4 +134,15 @@ order by create_time desc + + insert into sys_user_session (session_id,user_name,role,expire_time,create_time,update_time) + values (#{item.sessionId} ,#{item.userName}, #{item.role},#{item.expireTime},#{createat},#{updateat}) + ON DUPLICATE KEY UPDATE + user_name = values(user_name), + role = values(role), + session_id = values (session_id), + expire_time = values (expire_time) + + + \ No newline at end of file diff --git a/xymanager_dao/src/main/resources/mappers/TerminalStatusDao.xml b/xymanager_dao/src/main/resources/mappers/TerminalStatusDao.xml index 5ac06f1..7bc336b 100644 --- a/xymanager_dao/src/main/resources/mappers/TerminalStatusDao.xml +++ b/xymanager_dao/src/main/resources/mappers/TerminalStatusDao.xml @@ -20,6 +20,16 @@ + + + + + + + + + + term_id, last_heartbeat, last_frame_no, battery_voltage, op_temperature, battery_capacity, floating_charge, total_working_time, working_time, gps_status,connection_state, signal_strength_4g, @@ -31,6 +41,20 @@ from terminal_status where term_id = #{termId,jdbcType=INTEGER} + + delete from terminal_status where term_id = #{termId,jdbcType=INTEGER} diff --git a/xymanager_framework/pom.xml b/xymanager_framework/pom.xml index 10efe45..35c809a 100644 --- a/xymanager_framework/pom.xml +++ b/xymanager_framework/pom.xml @@ -40,10 +40,10 @@ ch.qos.logback logback-classic - - org.springframework.boot - spring-boot-starter-tomcat - + + + + diff --git a/xymanager_framework/src/main/java/com/shxy/xymanager_framework/config/CustomSecurityConfig.java b/xymanager_framework/src/main/java/com/shxy/xymanager_framework/config/CustomSecurityConfig.java index 7de423d..57355bb 100644 --- a/xymanager_framework/src/main/java/com/shxy/xymanager_framework/config/CustomSecurityConfig.java +++ b/xymanager_framework/src/main/java/com/shxy/xymanager_framework/config/CustomSecurityConfig.java @@ -29,6 +29,7 @@ public class CustomSecurityConfig implements WebMvcConfigurer { .excludePathPatterns("/*/api-docs") .excludePathPatterns("/error") .excludePathPatterns("/test/**") + .excludePathPatterns("/cmaUserLogin") .excludePathPatterns("/loginXcxuser") .excludePathPatterns("/loginXcxuser"); } diff --git a/xymanager_framework/src/main/java/com/shxy/xymanager_framework/interaction/JwtInterceptor.java b/xymanager_framework/src/main/java/com/shxy/xymanager_framework/interaction/JwtInterceptor.java index 017cf98..b4f88dc 100644 --- a/xymanager_framework/src/main/java/com/shxy/xymanager_framework/interaction/JwtInterceptor.java +++ b/xymanager_framework/src/main/java/com/shxy/xymanager_framework/interaction/JwtInterceptor.java @@ -1,11 +1,19 @@ package com.shxy.xymanager_framework.interaction; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.util.StrUtil; +import com.shxy.xymanager_common.annotation.JwtIgnore; +import com.shxy.xymanager_common.entity.SysUserSession; +import com.shxy.xymanager_common.enums.HttpMethod; +import com.shxy.xymanager_common.exception.Asserts; +import com.shxy.xymanager_common.util.MyDateUtils; import com.shxy.xymanager_service.service.SysUserService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; @@ -23,45 +31,48 @@ import java.math.BigInteger; @Component @Slf4j public class JwtInterceptor implements HandlerInterceptor { + @Autowired SysUserService sysUserService; + @Value("${session.expire_time}") public BigInteger time; @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 忽略带JwtIgnore注解的请求, 不做后续token认证校验 -// if (handler instanceof HandlerMethod) { -// HandlerMethod handlerMethod = (HandlerMethod) handler; -// JwtIgnore jwtIgnore = handlerMethod.getMethodAnnotation(JwtIgnore.class); -// if (jwtIgnore != null) { -// return true; -// } -// } -// if (HttpMethod.GET.name().equals(request.getMethod())) { -// response.setStatus(HttpServletResponse.SC_OK); -// return true; -// } -// // 获取请求头信息authorization信息 -// final String sessionId = request.getHeader("sessionId"); -// if (StrUtil.isBlank(sessionId)) { -// log.info("sessionId为空登录过期"); -// Asserts.fail(401, "登录过期"); -// }else{ -// UserSession user = sysUserService.selectUserById(sessionId); -// if(user!=null) { -// BigInteger expireTime = user.getExpireTime(); -// -// BigInteger currentTime = MyDateUtils.TimeMillSecond2Second(new DateTime()); -// if (currentTime.subtract(expireTime).compareTo(time) > 0) { -// user.setExpireTime(currentTime.add(time)); -// sysUserService.updateUserSession(user); -// } -// }else{ -// log.info("sessionId为空登录过期"); -// Asserts.fail(401, "登录过期"); -// } -// } + if (handler instanceof HandlerMethod) { + HandlerMethod handlerMethod = (HandlerMethod) handler; + JwtIgnore jwtIgnore = handlerMethod.getMethodAnnotation(JwtIgnore.class); + if (jwtIgnore != null) { + return true; + } + } + if (HttpMethod.GET.name().equals(request.getMethod())) { + response.setStatus(HttpServletResponse.SC_OK); + return true; + } + // 获取请求头信息authorization信息 + final String sessionId = request.getHeader("sessionId"); + if (StrUtil.isBlank(sessionId)) { + log.info("sessionId为空登录过期"); + Asserts.fail(401, "登录过期"); + }else{ + SysUserSession user = sysUserService.selectUserById(sessionId); + if(user!=null) { + BigInteger expireTime = user.getExpireTime(); + + BigInteger currentTime = MyDateUtils.TimeMillSecond2Second(new DateTime()); + if (currentTime.subtract(expireTime).compareTo(time) > 0) { + user.setExpireTime(currentTime.add(time)); + sysUserService.updateUserSession(user); + } + }else{ + log.info("sessionId为空登录过期"); + Asserts.fail(401, "登录过期"); + } + } + return true; } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/DyLevelServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/DyLevelServiceImpl.java index 60e09f0..4653728 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/DyLevelServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/DyLevelServiceImpl.java @@ -8,8 +8,7 @@ import cn.hutool.core.date.DateUnit; import com.shxy.xymanager_common.bean.ServiceBody; import com.shxy.xymanager_common.dto.DyLineAndTerminalWithHeartDto; import com.shxy.xymanager_common.entity.DyLevel; -import com.shxy.xymanager_common.entity.Terminals; -import com.shxy.xymanager_common.entity.TerminalsWithHeart; +import com.shxy.xymanager_common.dto.TerminalsWithHeart; import com.shxy.xymanager_common.enums.CommonStatus; import com.shxy.xymanager_common.exception.Asserts; import com.shxy.xymanager_common.model.DyLineTreeListModel; diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/LoginServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/LoginServiceImpl.java index b217f2a..df95f2e 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/LoginServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/LoginServiceImpl.java @@ -6,7 +6,7 @@ import com.shxy.xymanager_common.bean.SysUser; import com.shxy.xymanager_common.config.CustomRsaProperties; import com.shxy.xymanager_common.constant.HttpStatusCode; import com.shxy.xymanager_common.constant.UuidUtils; -import com.shxy.xymanager_common.entity.UserSession; +import com.shxy.xymanager_common.entity.SysUserSession; import com.shxy.xymanager_common.exception.Asserts; import com.shxy.xymanager_common.exception.UserPasswordNotMatchException; import com.shxy.xymanager_common.util.MyDateUtils; @@ -18,12 +18,8 @@ import com.shxy.xymanager_service.service.SysUserService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.util.DigestUtils; import java.math.BigInteger; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; /** * 装置通道实现层 @@ -69,10 +65,10 @@ public class LoginServiceImpl implements LoginService { * @param sysUser * @return */ - public ServiceBody remoteLogin(SysUser sysUser) { + public ServiceBody remoteLogin(SysUser sysUser) { String sessionId = UuidUtils.getUUID(); try { - UserSession user = getLoginUser(sysUser); + SysUserSession user = getLoginUser(sysUser); user.setSessionId(sessionId); sysUserMapperDao.insertUserSession(user); return Asserts.success(user); @@ -90,7 +86,7 @@ public class LoginServiceImpl implements LoginService { * @param sysUser * @return */ - public UserSession getLoginUser(SysUser sysUser) throws Exception { + public SysUserSession getLoginUser(SysUser sysUser) throws Exception { // 用户验证 SysUser account = sysUserService.findByUserAccount(sysUser.getUserName()); // 判断用户是否存在 @@ -105,7 +101,7 @@ public class LoginServiceImpl implements LoginService { if (!sysUser.getPassword().equals(pwd)) { throw new UserPasswordNotMatchException("密码错误", HttpStatusCode.ERROR); } - UserSession user = new UserSession(); + SysUserSession user = new SysUserSession(); // loginUser.setPermissions(permissions); user.setUserName(sysUser.getUserName()); user.setRole(account.getRole()); diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/OpenServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/OpenServiceImpl.java new file mode 100644 index 0000000..d499cfc --- /dev/null +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/OpenServiceImpl.java @@ -0,0 +1,226 @@ +package com.shxy.xymanager_service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.util.StrUtil; +import cn.hutool.crypto.SecureUtil; +import cn.hutool.json.JSONObject; +import com.shxy.xymanager_common.constant.UuidUtils; +import com.shxy.xymanager_common.dto.TerminalsWithHeart; +import com.shxy.xymanager_common.entity.SysUser; +import com.shxy.xymanager_common.entity.SysUserSession; +import com.shxy.xymanager_common.entity.Terminals; +import com.shxy.xymanager_common.enums.CommonStatus; +import com.shxy.xymanager_common.util.CmaUtil; +import com.shxy.xymanager_common.util.MyDateUtils; +import com.shxy.xymanager_common.util.ProcessExecUtils; +import com.shxy.xymanager_common.vo.OpenCmdidVo; +import com.shxy.xymanager_common.vo.OpenDeviceCaptureVo; +import com.shxy.xymanager_common.vo.UserLoginVo; +import com.shxy.xymanager_dao.dao.SysUserDao; +import com.shxy.xymanager_dao.dao.SysUserMapperDao; +import com.shxy.xymanager_dao.dao.TerminalStatusDao; +import com.shxy.xymanager_dao.dao.TerminalsDao; +import com.shxy.xymanager_service.service.OpenService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; + +import java.math.BigInteger; +import java.util.Date; + +/** + * 第三方对外接口 + */ +@Service +@Component +@Slf4j +public class OpenServiceImpl implements OpenService { + @Autowired + private SysUserMapperDao sysUserMapperDao; + + @Autowired + private SysUserDao sysUserDao; + + @Autowired + private TerminalsDao terminalsDao; + + @Autowired + private TerminalStatusDao terminalStatusDao; + + + @Value("${session.open_expire_time}") + public BigInteger time; + + /** + * 登录鉴权 + * + * @param vo + * @return + */ + @Override + public JSONObject cmaUserLogin(UserLoginVo vo) { + JSONObject jsonObject = new JSONObject(); + String username = vo.getUsername(); + SysUser sysUser = sysUserDao.selectByUserName(username); + // 判断用户是否存在 + if (BeanUtil.isEmpty(sysUser)) { + jsonObject.putOpt("errcode", 1); + jsonObject.putOpt("errmsg", "用户不存在"); + } + // 判断密码是否存在 + String password = vo.getPassword(); + if (BeanUtil.isEmpty(password)) { + jsonObject.putOpt("errcode", 2); + jsonObject.putOpt("errmsg", "密码错误"); + } + String userPassword = SecureUtil.md5(password); + // 密码对比 + if (!sysUser.getPassword().equals(userPassword)) { + jsonObject.putOpt("errcode", 2); + jsonObject.putOpt("errmsg", "密码错误"); + } + + Date date = new Date(); + String sessionId = UuidUtils.getUUID(); + SysUserSession sysUserSession = new SysUserSession(); + sysUserSession.setUserName(username); + sysUserSession.setRole(sysUser.getRole()); + sysUserSession.setSessionId(sessionId); + BigInteger expiretime = MyDateUtils.TimeMillSecond2Second(MyDateUtils.offsetMinute(date, 30)); + sysUserSession.setExpireTime(expiretime); + sysUserMapperDao.insertOrUpdate(sysUserSession, date, date); + jsonObject.set("errcode", 0); + jsonObject.set("errmsg", "OK"); + jsonObject.set("sessionid", sessionId); + jsonObject.set("keepingtime", 30); + + return jsonObject; + } + + /** + * 控制拍照视频 + * + * @param vo + * @return + */ + @Override + public JSONObject ctrlCmaDeviceCapture(OpenDeviceCaptureVo vo) { + JSONObject jsonObject = new JSONObject(); + String sessionID = vo.getSessionID(); + String deviceID = vo.getDeviceID(); + Integer operateType = vo.getOperateType(); + if (StrUtil.isEmpty(sessionID)) { + jsonObject.set("errcode", 1); + jsonObject.set("errmsg", "invalid session"); + return jsonObject; + } + if (StrUtil.isEmpty(deviceID)) { + jsonObject.set("errcode", 2); + jsonObject.set("errmsg", "device not register"); + return jsonObject; + } + + SysUserSession sysUserSession = sysUserMapperDao.selectBySessionId(sessionID); + if (BeanUtil.isEmpty(sysUserSession)) { + jsonObject.set("errcode", 1); + jsonObject.set("errmsg", "invalid session"); + return jsonObject; + } else { + BigInteger expireTime = sysUserSession.getExpireTime(); + BigInteger currentTime = MyDateUtils.TimeMillSecond2Second(new DateTime()); + if (currentTime.subtract(expireTime).compareTo(time) > 0) { + jsonObject.set("errcode", 1); + jsonObject.set("errmsg", "invalid session"); + return jsonObject; + } + } + + Terminals terminals = terminalsDao.selectByCmdid(deviceID, CommonStatus.EFFECTIVE.value()); + if (BeanUtil.isEmpty(terminals)) { + jsonObject.set("errcode", 2); + jsonObject.set("errmsg", "device not register"); + return jsonObject; + } + + if (operateType == 1) { + operateType = 0; + } else if (operateType == 2) { + operateType = 1; + } else { + jsonObject.set("errcode", 3); + jsonObject.set("errmsg", "invalid protocol"); + return jsonObject; + } + + String cmd1 = CmaUtil.takePic(vo.getDeviceID(), 1, operateType); + ProcessExecUtils.exec(cmd1); + String cmd2 = CmaUtil.takePic(vo.getDeviceID(), 2, operateType); + ProcessExecUtils.exec(cmd2); + jsonObject.set("errcode", 0); + jsonObject.set("errmsg", "OK"); + + return jsonObject; + } + + /** + * 查询设备在线状态 + * + * @param vo + * @return + */ + @Override + public JSONObject cmaDeviceStatus(OpenCmdidVo vo) { + JSONObject jsonObject = new JSONObject(); + String sessionID = vo.getSessionID(); + String deviceID = vo.getDeviceID(); + if (StrUtil.isEmpty(sessionID)) { + jsonObject.set("errcode", 1); + jsonObject.set("errmsg", "invalid session"); + return jsonObject; + } + SysUserSession sysUserSession = sysUserMapperDao.selectBySessionId(sessionID); + if (BeanUtil.isEmpty(sysUserSession)) { + jsonObject.set("errcode", 1); + jsonObject.set("errmsg", "invalid session"); + return jsonObject; + } else { + BigInteger expireTime = sysUserSession.getExpireTime(); + BigInteger currentTime = MyDateUtils.TimeMillSecond2Second(new DateTime()); + if (currentTime.subtract(expireTime).compareTo(time) > 0) { + jsonObject.set("errcode", 1); + jsonObject.set("errmsg", "invalid session"); + return jsonObject; + } + } + if (StrUtil.isEmpty(deviceID)) { + jsonObject.set("errcode", 2); + jsonObject.set("errmsg", "device not register"); + return jsonObject; + } + TerminalsWithHeart terminalsWithHeart = terminalStatusDao.selectByCmdId(deviceID); + if (BeanUtil.isEmpty(terminalsWithHeart)) { + jsonObject.set("errcode", 2); + jsonObject.set("errmsg", "device not register"); + return jsonObject; + } + Long lastheartbeat = terminalsWithHeart.getLastheartbeat(); + BigInteger time = MyDateUtils.TimeSecond2MillSecond(lastheartbeat); + DateTime date = MyDateUtils.date(time.longValue()); + long between = MyDateUtils.between(MyDateUtils.getNowDate(), date, DateUnit.MINUTE); + if (between > 30) { + jsonObject.set("isonline", false); + jsonObject.set("errcode", 0); + jsonObject.set("errmsg", "ok"); + } else { + jsonObject.set("isonline", true); + jsonObject.set("errcode", 0); + jsonObject.set("errmsg", "ok"); + } + + return jsonObject; + } +} diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/SysUserServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/SysUserServiceImpl.java index 0801c9c..748d12a 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/SysUserServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/SysUserServiceImpl.java @@ -6,17 +6,14 @@ import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateTime; import com.github.pagehelper.PageInfo; -import com.google.common.collect.Lists; import com.shxy.xymanager_common.bean.ServiceBody; import com.shxy.xymanager_common.bean.SysUser; import com.shxy.xymanager_common.config.CustomRsaProperties; -import com.shxy.xymanager_common.entity.UserSession; +import com.shxy.xymanager_common.entity.SysUserSession; import com.shxy.xymanager_common.enums.CommonStatus; import com.shxy.xymanager_common.exception.Asserts; -import com.shxy.xymanager_common.model.LineListModel; import com.shxy.xymanager_common.model.SysUserModel; import com.shxy.xymanager_common.page.PageUtils; -import com.shxy.xymanager_common.util.MyDateUtils; import com.shxy.xymanager_common.util.RsaUtils; import com.shxy.xymanager_common.util.StringUtils; import com.shxy.xymanager_common.vo.PageVo; @@ -174,13 +171,13 @@ public class SysUserServiceImpl implements SysUserService { @Override - public UserSession selectUserById(String sessionId) { - UserSession session = sysUserMapperDao.selectUserBySessionId(sessionId); + public SysUserSession selectUserById(String sessionId) { + SysUserSession session = sysUserMapperDao.selectUserBySessionId(sessionId); return session; } @Override - public int updateUserSession(UserSession user) { + public int updateUserSession(SysUserSession user) { int result = sysUserMapperDao.updateUserSession(user); return result; } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalPhotoServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalPhotoServiceImpl.java index 931865b..ec8c6ce 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalPhotoServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalPhotoServiceImpl.java @@ -17,6 +17,7 @@ import com.shxy.xymanager_common.enums.CommonStatus; import com.shxy.xymanager_common.exception.Asserts; import com.shxy.xymanager_common.model.*; import com.shxy.xymanager_common.page.PageUtils; +import com.shxy.xymanager_common.util.CmaUtil; import com.shxy.xymanager_common.util.MyDateUtils; import com.shxy.xymanager_common.util.ProcessExecUtils; import com.shxy.xymanager_common.util.StringUtils; @@ -260,7 +261,7 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { * @return */ @Override - public ServiceBody getPhotoListForOpen(TerminalAndTimeForOpenVo vo) { + public ServiceBody getPhotoListForOpen(OpenTerminalAndTimeVo vo) { String cmdid = vo.getCmdId(); TerminalPhotoListForOpenModel model = new TerminalPhotoListForOpenModel(); @@ -335,11 +336,10 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { @Override public ServiceBody getLatestPhoto(TerminalPhotoVo vo) { - /* Cma cma = new Cma(server, port);*/ DateTime now = DateTime.now(); - String cmd = Constants.CMD + "capture --cmdid=" + vo.getCmdid() + " --channel=" + vo.getChannel() + " --preset=255 --type=" + vo.getCaptureType(); +// String cmd = Constants.CMD + "capture --cmdid=" + vo.getCmdid() + " --channel=" + vo.getChannel() + " --preset=255 --type=" + vo.getCaptureType(); + String cmd = CmaUtil.takePic(vo.getCmdid(), vo.getChannel(), vo.getCaptureType()); ProcessExecUtils.exec(cmd); - /* Boolean hasNew = cma.requestCapture(vo.getCmdid(), vo.getChannel(), vo.getPreset(), vo.getCaptureType());*/ return Asserts.success(now); } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/LoginService.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/LoginService.java index b91c699..9e449e2 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/LoginService.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/LoginService.java @@ -3,7 +3,7 @@ package com.shxy.xymanager_service.service; import com.shxy.xymanager_common.bean.ServiceBody; import com.shxy.xymanager_common.bean.SysUser; -import com.shxy.xymanager_common.entity.UserSession; +import com.shxy.xymanager_common.entity.SysUserSession; /** * @ClassName:LoginService @@ -17,9 +17,9 @@ public interface LoginService { ServiceBody login(String username, String password) throws Exception; - ServiceBody remoteLogin(SysUser sysUser); + ServiceBody remoteLogin(SysUser sysUser); - UserSession getLoginUser(SysUser sysUser) throws Exception; + SysUserSession getLoginUser(SysUser sysUser) throws Exception; diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/OpenService.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/OpenService.java new file mode 100644 index 0000000..837c604 --- /dev/null +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/OpenService.java @@ -0,0 +1,22 @@ +package com.shxy.xymanager_service.service; + + +import cn.hutool.json.JSONObject; +import com.shxy.xymanager_common.vo.OpenCmdidVo; +import com.shxy.xymanager_common.vo.OpenDeviceCaptureVo; +import com.shxy.xymanager_common.vo.UserLoginVo; + +/** + * 第三方接口 + * + * @author 晶晶 + */ +public interface OpenService { + + JSONObject cmaUserLogin(UserLoginVo vo); + + JSONObject ctrlCmaDeviceCapture(OpenDeviceCaptureVo vo); + + JSONObject cmaDeviceStatus(OpenCmdidVo vo); + +} diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/SysUserService.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/SysUserService.java index 5a62c84..c6958d5 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/SysUserService.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/SysUserService.java @@ -3,13 +3,12 @@ package com.shxy.xymanager_service.service; import com.shxy.xymanager_common.bean.ServiceBody; import com.shxy.xymanager_common.bean.SysUser; -import com.shxy.xymanager_common.entity.UserSession; +import com.shxy.xymanager_common.entity.SysUserSession; import com.shxy.xymanager_common.model.SysUserModel; import com.shxy.xymanager_common.vo.PageVo; import com.shxy.xymanager_common.vo.SysUserUpdateVo; import com.shxy.xymanager_common.vo.SysUserVo; import org.apache.ibatis.annotations.Param; -import org.springframework.web.bind.annotation.RequestParam; /** @@ -118,9 +117,9 @@ public interface SysUserService { ServiceBody deleteUserById(@Param("userId") String userId); - UserSession selectUserById(String sessionId); + SysUserSession selectUserById(String sessionId); - int updateUserSession(UserSession user); + int updateUserSession(SysUserSession user); ServiceBody selectUserList(PageVo vo); diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalPhotoService.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalPhotoService.java index 0a07bb7..3318f2b 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalPhotoService.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalPhotoService.java @@ -1,10 +1,8 @@ package com.shxy.xymanager_service.service; import com.shxy.xymanager_common.bean.ServiceBody; -import com.shxy.xymanager_common.entity.TerminalPhoto; import com.shxy.xymanager_common.model.*; import com.shxy.xymanager_common.vo.*; -import io.swagger.models.auth.In; import java.util.Date; @@ -33,7 +31,7 @@ public interface TerminalPhotoService { * * @return */ - ServiceBody getPhotoListForOpen(TerminalAndTimeForOpenVo vo); + ServiceBody getPhotoListForOpen(OpenTerminalAndTimeVo vo); /** * 根据通道和装置id获取最新图片