whycxzp
2021-04-16 5361481d1056f46d9df3c02a0bdb914c97e0db15
更新 视频接口
3个文件已修改
12个文件已添加
677 ■■■■■ 已修改文件
src/main/java/com/whyc/controller/LoginController.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/PermissionController.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/RoleController.java 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/StationController.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/UserController.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/VideoController.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/StationMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/VideoMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/Station.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/Video.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/StationService.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/VideoService.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/video/WsHandler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/config/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/index2.html 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/LoginController.java
New file
@@ -0,0 +1,55 @@
package com.whyc.controller;
import com.whyc.dto.Response;
import com.whyc.service.LoginService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@RequestMapping("login")
@RestController
@Api(tags = "登录")
public class LoginController {
    @Autowired
    private LoginService service;
    @PostMapping("login")
    @ApiOperation(value ="登录")
    public Response login(@RequestParam String userName, String password,HttpServletRequest request){
        return service.login(userName,password,request);
    }
    @PostMapping("logout")
    @ApiOperation(value ="退出登录")
    public void logout(){
        service.logout();
    }
    /**拦截登录*//*
    @GetMapping("/")
    @ApiIgnore
    public ModelAndView toLoginHtml(HttpServletRequest request, HttpServletResponse response,ModelAndView view) throws ServletException, IOException {
        //request.getRequestDispatcher("login.html").forward(request,response);
        System.out.println("转发啦...");
        //response.setContentType("text/html;charset=utf-8");
        //response.sendRedirect("http://localhost:8090/login.html");
        //response.sendRedirect("/login.html");
        view.setViewName("login");
        return view;
    }*/
    /**拦截登录*/
    @GetMapping("unauthorized")
    @ApiIgnore
    public void unauthorized(HttpServletRequest request,HttpServletResponse response) throws IOException {
        response.setContentType("text/html;charset=utf-8");
        response.getWriter().write("您未获取到接口的调用授权,拒绝访问!");
    }
}
src/main/java/com/whyc/controller/PermissionController.java
New file
@@ -0,0 +1,62 @@
package com.whyc.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.whyc.pojo.Permission;
import com.whyc.service.PermissionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
@RestController
@RequestMapping("permission")
@Api(tags = "权限")
@Slf4j
public class PermissionController {
    @Resource
    private PermissionService permissionService;
    @PostMapping
    @ApiOperation(value = "添加")
    public boolean add(@RequestBody Permission permission){
        return permissionService.add(permission);
    }
    @PostMapping("/batch")
    @ApiOperation(value = "添加批量")
    public boolean addBatch(@RequestBody List<Permission> permissions){
        return permissionService.addBatch(permissions);
    }
    @GetMapping("/all")
    @ApiOperation(value = "查询所有")
    public List<Permission> getAll(){
        return permissionService.getAll();
    }
    @GetMapping("/page")
    @ApiOperation(value = "查询分页")
    public IPage<Permission> getPage(@RequestParam int pageNum, int pageSize){
        Page<Permission> page = new Page<>(pageNum, pageSize);
        return permissionService.getAllWithPage(page);
    }
    @PutMapping
    @ApiOperation(value = "编辑")
    public boolean update(@RequestBody Permission permission){
        return permissionService.update(permission);
    }
    @DeleteMapping
    @ApiOperation(value = "删除")
    public boolean delete(@RequestParam int id){
        return permissionService.delete(id);
    }
}
src/main/java/com/whyc/controller/RoleController.java
New file
@@ -0,0 +1,137 @@
package com.whyc.controller;
import com.whyc.pojo.*;
import com.whyc.service.RoleMenuService;
import com.whyc.service.RolePermissionService;
import com.whyc.service.RoleService;
import com.whyc.service.UserRoleService;
import com.whyc.util.CommonUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
@RequestMapping("role")
@RestController
@Slf4j
@Api(value ="role value",tags = "角色相关-用户,权限,菜单")
public class RoleController {
    @Autowired
    private RoleService roleService;
    @Autowired
    private UserRoleService userRoleService;
    @Autowired
    private RolePermissionService rolePermissionService;
    @Autowired
    private RoleMenuService roleMenuService;
    /**=============用户与角色================**/
    @GetMapping("userWithNoRole")
    @ApiOperation(value = "查询未分配角色的用户")
    public List<User> getUserWithNoRole(){
        return userRoleService.getUserWithNoRole();
    }
    @GetMapping("userWithRole")
    @ApiOperation(value = "查询分配角色的用户")
    public List<UserRole> getUserWithRole(){
        return userRoleService.getUserWithRole();
    }
    @GetMapping("userWithRoleMap")
    @ApiOperation(value = "查询分配角色的用户Map")
    public Map<String,List<UserRole>> getUserWithRoleMap(){
        return userRoleService.getUserWithRoleMap();
    }
    @GetMapping("roleAll")
    @ApiOperation(value = "查询所有角色")
    public List<Role> getRoleAll(){
        return roleService.getAll();
    }
    @PostMapping
    @ApiOperation(value = "新增角色")
    public boolean add(@RequestBody Role role){
        return roleService.add(role);
    }
    @PostMapping("batch")
    @ApiOperation(value = "批量新增角色")
    public boolean addBatch(@RequestBody List<Role> roles){
        return roleService.addBatch(roles);
    }
    /**
     * TODO 采用caffeine重写
     */
    @PostMapping("bindingUserWithRole")
    @ApiOperation(value = "绑定用户和角色")
    @CacheEvict(cacheNames = {"userBridge"},key="'getAuthorizationInfo'+#p0") //清除
    public boolean bindingUserWithRole(@RequestParam int userId,int roleId){
        return userRoleService.bindingUserWithRole(userId,roleId);
    }
    /**
     * TODO 采用caffeine重写
     */
    @PostMapping("bindingUserWithRoleBatch")
    @ApiOperation(value = "批量绑定用户和角色",notes = "传入userId和roleId的数组")
    @CacheEvict(cacheNames = {"userBridge"},allEntries = true) //全部清除
    public boolean bindingUserWithRoleBatch(@RequestBody List<UserRole> userRoles){
        return userRoleService.bindingUserWithRoleBatch(userRoles);
    }
    /**===============角色与权限================**/
    /**
     * TODO 采用caffeine重写
     */
    @PostMapping("bindingRoleWithPermission")
    @ApiOperation(value = "绑定角色-权限")
    @CacheEvict(cacheNames = {"userBridge"},allEntries = true) //全部清除
    public boolean bindingRoleWithPermission(@RequestParam int roleId,int permissionId){
        return rolePermissionService.bindingUserWithRole(roleId,permissionId);
    }
    /**
     * TODO 采用caffeine重写
     */
    @PostMapping("bindingRoleWithPermissionBatch")
    @ApiOperation(value = "批量绑定角色-权限",notes = "传入roleId和privilegeId的数组")
    @CacheEvict(cacheNames = {"userBridge"},allEntries = true) //全部清除
    public boolean bindingRoleWithPermissionBatch(@RequestBody List<RolePermission> rolePermissions){
        return rolePermissionService.bindingUserWithRoleBatch(rolePermissions);
    }
    @GetMapping("permissions")
    @ApiOperation(value = "获取当前用户的权限")
    public List<Permission> getPermissions(HttpServletRequest request){
        User user = CommonUtil.getUser(request);
        return rolePermissionService.getPermissions(user.getId());
    }
    /**==============用户-角色-菜单================**/
    @GetMapping("userMenu")
    @ApiOperation(value = "获取当前用户的菜单")
    public List<Menu> getUserMenu(HttpServletRequest request){
        User user = CommonUtil.getUser(request);
        return roleMenuService.getUserMenu(user.getId());
    }
}
src/main/java/com/whyc/controller/StationController.java
New file
@@ -0,0 +1,29 @@
package com.whyc.controller;
import com.whyc.dto.Response;
import com.whyc.pojo.Station;
import com.whyc.service.StationService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("video")
@Api(tags = "站点")
public class StationController {
    @Autowired
    private StationService service;
    @GetMapping("all")
    @ApiOperation(value = "查询所有机房站点")
    public Response<List<Station>> listAll(){
        return service.listAll();
    }
}
src/main/java/com/whyc/controller/UserController.java
New file
@@ -0,0 +1,62 @@
package com.whyc.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.whyc.dto.Response;
import com.whyc.pojo.User;
import com.whyc.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
@RestController
@RequestMapping("user")
@Api(tags = "用户")
@Slf4j
public class UserController {
    @Resource
    private UserService userService;
    @PostMapping
    @ApiOperation(value = "添加")
    public Response add(@RequestBody User user){
        return userService.add(user);
    }
    @GetMapping
    @ApiOperation(value = "查询byId")
    public User getById(@RequestParam int id){
        return userService.getById(id);
    }
    @GetMapping("/all")
    @ApiOperation(value = "查询所有")
    public List<User> getAll(){
        return userService.getAll();
    }
    @GetMapping("/page")
    @ApiOperation(value = "查询分页")
    public IPage<User> getPage(@RequestParam int pageNum,int pageSize){
        Page<Object> page = new Page<>(pageNum, pageSize);
        return userService.getAllWithPage(page);
    }
    @PutMapping
    @ApiOperation(value = "编辑")
    public boolean update(@RequestBody User user){
        return userService.update(user);
    }
    @DeleteMapping
    @ApiOperation(value = "删除")
    public boolean delete(@RequestParam int id){
        return userService.delete(id);
    }
}
src/main/java/com/whyc/controller/VideoController.java
New file
@@ -0,0 +1,54 @@
package com.whyc.controller;
import com.whyc.dto.Response;
import com.whyc.pojo.Video;
import com.whyc.service.VideoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@RestController
@RequestMapping("video")
@Api(tags = "视频管理")
public class VideoController {
    @Autowired
    private VideoService service;
    @PostMapping
    @ApiOperation(value = "添加")
    public Response add(@RequestBody Video video){
        return service.add(video);
    }
    @GetMapping
    @ApiOperation(value = "查询设备信息-根据设备id")
    public Response getInfo(@RequestParam Integer id){
        return service.getInfo(id);
    }
    @PostMapping("page")
    @ApiOperation(value = "查询设备列表分页")
    public Response getPage(@RequestParam Integer pageNum,
                            @RequestParam Integer pageSize,
                            @RequestBody Video video){
        return service.getPage(pageNum,pageSize,video);
    }
    @GetMapping("allShow")
    @ApiOperation(value = "查询所有可显示视频的设备")
    public Response getAllShow(){
        return service.getAllShow();
    }
    @PutMapping("status")
    @ApiOperation(value = "设置视频设备显示状态")
    public Response updateStatus(@RequestParam Integer id,
                                 @RequestParam Integer status){
        return service.updateStatus(id,status);
    }
}
src/main/java/com/whyc/mapper/StationMapper.java
New file
@@ -0,0 +1,6 @@
package com.whyc.mapper;
import com.whyc.pojo.Station;
public interface StationMapper extends CustomMapper<Station> {
}
src/main/java/com/whyc/mapper/VideoMapper.java
New file
@@ -0,0 +1,12 @@
package com.whyc.mapper;
import com.whyc.pojo.Video;
import org.apache.ibatis.annotations.Select;
import java.util.List;
public interface VideoMapper extends CustomMapper<Video> {
    @Select("select distinct v.*,b.stationName from db_battinf.tb_battinf b,db_battinf.tb_video v where b.stationId=v.station_id")
    List<Video> getList();
}
src/main/java/com/whyc/pojo/Station.java
New file
@@ -0,0 +1,34 @@
package com.whyc.pojo;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ApiModel
@TableName(schema = "db_battinf",value = "tb_battinf")
public class Station {
    @ApiModelProperty("站点机房id")
    private Integer stationId;
    @ApiModelProperty("站点机房名称")
    /** xx省-xx市-xx区-xx机房站点--xx设备 **/
    private String stationName;
    public Integer getStationId() {
        return stationId;
    }
    public void setStationId(Integer stationId) {
        this.stationId = stationId;
    }
    public String getStationName() {
        return stationName;
    }
    public void setStationName(String stationName) {
        this.stationName = stationName;
    }
}
src/main/java/com/whyc/pojo/Video.java
New file
@@ -0,0 +1,85 @@
package com.whyc.pojo;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.sql.Date;
@ApiModel
@TableName(schema = "db_battinf",value = "tb_video")
public class Video extends Station {
    @ApiModelProperty("id")
    @TableId
    private Integer    id;
    @ApiModelProperty("站点id")
    private Integer    stationId;
    @ApiModelProperty("视频设备ip")
    private String    ip;
    @ApiModelProperty("视频设备名称-位置")
    private String    name;
    @ApiModelProperty("接入日期")
    private Date accessDate;
    @ApiModelProperty("状态:-1:报废,0-不显示,1-显示")
    private Integer    status;
    public Video() {
    }
    public Video(Integer id, Integer status) {
        this.id = id;
        this.status = status;
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    @Override
    public Integer getStationId() {
        return stationId;
    }
    public void setStationId(Integer stationId) {
        this.stationId = stationId;
    }
    public String getIp() {
        return ip;
    }
    public void setIp(String ip) {
        this.ip = ip;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Date getAccessDate() {
        return accessDate;
    }
    public void setAccessDate(Date accessDate) {
        this.accessDate = accessDate;
    }
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
}
src/main/java/com/whyc/service/StationService.java
New file
@@ -0,0 +1,39 @@
package com.whyc.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.whyc.dto.Response;
import com.whyc.mapper.StationMapper;
import com.whyc.pojo.Station;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.sql.Wrapper;
import java.util.List;
@Service
public class StationService {
    @Resource
    private StationMapper mapper;
    public Response<List<Station>> listAll() {
        QueryWrapper<Station> wrapper = Wrappers.query();
        wrapper.select("stationId","stationName")
                .groupBy("stationId")
                .orderByAsc("stationId");
        List<Station> stationList = mapper.selectList(wrapper);
        //对机房站点名称进行处理
        stationList.stream().forEach(station -> {
            String[] nameSplit = station.getStationName().split("-");
            String newStationName = new StringBuilder()
                    .append(nameSplit[0]).append("-")
                    .append(nameSplit[1]).append("-")
                    .append(nameSplit[2]).append("-")
                    .append(nameSplit[3]).toString();
            station.setStationName(newStationName);
        });
        return new Response<List<Station>>().set(1,stationList);
    }
}
src/main/java/com/whyc/service/VideoService.java
New file
@@ -0,0 +1,68 @@
package com.whyc.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.whyc.dto.Response;
import com.whyc.mapper.VideoMapper;
import com.whyc.pojo.Video;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.sql.Date;
import java.util.List;
@Service
public class VideoService {
    @Resource
    private VideoMapper mapper;
    public Response add(Video video) {
        video.setAccessDate(new Date(System.currentTimeMillis()));
        //初始化,新加入的视频设备,默认是显示在页面的.
        video.setStatus(1);
        mapper.insert(video);
        return new Response().setMsg(1,"添加成功");
    }
    public Response getInfo(Integer id) {
        Video video = mapper.selectById(id);
        return new Response().set(1,video);
    }
    public Response getPage(Integer pageNum, Integer pageSize, Video video) {
        PageHelper.startPage(pageNum,pageSize);
        List<Video> videoList = mapper.getList();
        //对机房站点名称进行处理
        videoList.stream().forEach(video2 -> {
            String[] nameSplit = video2.getStationName().split("-");
            String newStationName = new StringBuilder()
                    .append(nameSplit[0]).append("-")
                    .append(nameSplit[1]).append("-")
                    .append(nameSplit[2]).append("-")
                    .append(nameSplit[3]).toString();
            video2.setStationName(newStationName);
        });
        PageInfo<Video> videoPageInfo = new PageInfo<>(videoList);
        return new Response().set(1,videoPageInfo);
    }
    public Response getAllShow() {
        QueryWrapper<Video> wrapper = Wrappers.query();
        wrapper.select("ip","name")
                .eq("status",1);
        List<Video> videoList = mapper.selectList(wrapper);
        return new Response().set(1,videoList);
    }
    public Response updateStatus(Integer id, Integer status) {
        mapper.updateById(new Video(id,status));
        return new Response().setMsg(1,"状态更新成功");
    }
}
src/main/java/com/whyc/video/WsHandler.java
@@ -92,7 +92,7 @@
                BufferedReader br= new BufferedReader(new InputStreamReader(process.getErrorStream()));
                String line = "";
                while ((line = br.readLine()) != null) {
                    System.out.println("视频推流信息[" + line + "]");
                    //System.out.println("视频推流信息[" + line + "]");
                }
                flag = process.waitFor();
            }
src/main/resources/config/application.yml
@@ -48,7 +48,7 @@
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
pagehelper:
  helper-dialect: mysql
  reasonable: true
  reasonable: false
  support-methods-arguments: true
  params: count=countSql
#swagger是否激活,swagger的UI界面地址为 localhost:8080/swagger-ui.html
src/main/webapp/index2.html
@@ -3,16 +3,32 @@
<head>
</head>
<body>
    <canvas id="video"></canvas>
    <canvas id="video2"></canvas>
    <script type="text/javascript" src="jsmpeg.min.js"></script>
    <script type="text/javascript">
<canvas id="video"></canvas>
<canvas id="video2"></canvas>
<canvas id="video3"></canvas>
<canvas id="video5"></canvas>
<canvas id="video8"></canvas>
<script type="text/javascript" src="jsmpeg.min.js"></script>
<script type="text/javascript">
        var canvas = document.getElementById('video');
        var canvas2 = document.getElementById('video2');
        var url = 'ws://127.0.0.1:8090/video?192.168.10.3';
        var url2 = 'ws://127.0.0.1:8090/video?192.168.10.5';
        var url = 'ws://127.0.0.1:8090/video?192.168.10.5';
        var player = new JSMpeg.Player(url, {canvas: canvas});
        var canvas2 = document.getElementById('video2');
        var url2 = 'ws://127.0.0.1:8090/video?192.168.10.5';
        var player2 = new JSMpeg.Player(url2, {canvas: canvas2});
        var canvas3 = document.getElementById('video3');
        var url3 = 'ws://127.0.0.1:8090/video?192.168.10.5';
        var player3 = new JSMpeg.Player(url3, {canvas: canvas3});
        var canvas5 = document.getElementById('video5');
        var url5 = 'ws://127.0.0.1:8090/video?192.168.10.9';
        var player5 = new JSMpeg.Player(url5, {canvas: canvas5});
        var canvas8 = document.getElementById('video8');
        var url8 = 'ws://127.0.0.1:8090/video?192.168.10.2';
        var player8 = new JSMpeg.Player(url8, {canvas: canvas8});
    </script>
</body>
</html>