南昌市物联网技防平台-后台
tangzy
2021-04-22 921918301e29c95c6642596c346f016340a84a05
1.反馈查询接口
2.设备部署信息
2 files modified
9 files added
518 ■■■■■ changed files
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/depl/controller/DeplController.java 172 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/depl/dto/DeplDTO.java 34 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/depl/entity/Depl.java 80 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/depl/mapper/DeplMapper.java 43 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/depl/mapper/DeplMapper.xml 26 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/depl/service/IDeplService.java 44 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/depl/service/impl/DeplServiceImpl.java 48 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/depl/vo/DeplVO.java 36 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/feedback/controller/FeedbackController.java 19 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/xlfeedback/controller/XlfeedbackController.java 6 ●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/sql/depl.menu.mysql 10 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/depl/controller/DeplController.java
New file
@@ -0,0 +1,172 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.jfpt.depl.controller;
import io.minio.MinioClient;
import io.minio.errors.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import lombok.AllArgsConstructor;
import javax.validation.Valid;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.jfpt.avideo.entity.Avideo;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.jfpt.depl.entity.Depl;
import org.springblade.jfpt.depl.vo.DeplVO;
import org.springblade.jfpt.depl.service.IDeplService;
import org.springblade.core.boot.ctrl.BladeController;
import org.springframework.web.multipart.MultipartFile;
import org.xmlpull.v1.XmlPullParserException;
import java.io.IOException;
import java.io.InputStream;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.UUID;
/**
 *  控制器
 *
 * @author BladeX
 * @since 2021-04-21
 */
@RestController
@AllArgsConstructor
@RequestMapping("/depl")
@Api(value = "", tags = "接口")
public class DeplController extends BladeController {
    private final IDeplService deplService;
    /**
     * 详情
     */
    @GetMapping("/detail")
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "详情", notes = "传入depl")
    public R<Depl> detail(Depl depl) {
        Depl detail = deplService.getOne(Condition.getQueryWrapper(depl));
        return R.data(detail);
    }
    /**
     * 分页
     */
    @GetMapping("/list")
    @ApiOperationSupport(order = 2)
    @ApiOperation(value = "分页", notes = "传入depl")
    public R<IPage<Depl>> list(Depl depl, Query query) {
        IPage<Depl> pages = deplService.page(Condition.getPage(query), Condition.getQueryWrapper(depl));
        return R.data(pages);
    }
    /**
     * 自定义分页
     */
    @GetMapping("/page")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "分页", notes = "传入depl")
    public R<IPage<DeplVO>> page(DeplVO depl, Query query) {
        IPage<DeplVO> pages = deplService.selectDeplPage(Condition.getPage(query), depl);
        return R.data(pages);
    }
    /**
     * 新增
     */
    @PostMapping("/save")
    @ApiOperationSupport(order = 4)
    @ApiOperation(value = "新增", notes = "传入depl")
    public R save(Depl depl) {
        return R.status(deplService.save(depl));
    }
    /**
     * 修改
     */
    @PostMapping("/update")
    @ApiOperationSupport(order = 5)
    @ApiOperation(value = "修改", notes = "传入depl")
    public R update(@Valid @RequestBody Depl depl) {
        return R.status(deplService.updateById(depl));
    }
    /**
     * 新增或修改
     */
    @PostMapping("/submit")
    @ApiOperationSupport(order = 6)
    @ApiOperation(value = "新增或修改", notes = "传入depl")
    public R submit(@Valid @RequestBody Depl depl) {
        return R.status(deplService.saveOrUpdate(depl));
    }
    /**
     * 删除
     */
    @PostMapping("/remove")
    @ApiOperationSupport(order = 8)
    @ApiOperation(value = "删除", notes = "传入ids")
    public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
        return R.status(deplService.removeByIds(Func.toLongList(ids)));
    }
    /**
     *部署安装图片保存
     * @param file
     */
    @PostMapping("put-depl")
    public R put(@RequestParam MultipartFile file) throws InvalidPortException, InvalidEndpointException, IOException, XmlPullParserException, NoSuchAlgorithmException, InvalidKeyException, InvalidArgumentException, InternalException, NoResponseException, InvalidBucketNameException, InsufficientDataException, ErrorResponseException, RegionConflictException {
        MinioClient minioClient = new MinioClient("http://web.byisf.com:9000","adminminio","adminminio");
        if (!minioClient.bucketExists("jfpt")) {
            minioClient.makeBucket("jfpt");
        }
        String fileName = file.getOriginalFilename();
        String newName ="upload/depl/"+UUID.randomUUID().toString().replaceAll("-", "")
            + fileName.substring(fileName.lastIndexOf("."));
        InputStream inputStream = file.getInputStream();    //获取file的inputStream
        minioClient.putObject("jfpt", newName, inputStream, "application/octet-stream");//上传
        inputStream.close();
        String url = minioClient.getObjectUrl("jfpt", newName);    //文件访问路径
        String substring = url.substring(25, url.length());
        String urls="https://web.byisf.com/minio"+substring;
        return R.data(urls);
    }
    /**
     * 部署详情
     */
    @PostMapping("/selectInfo")
    @ApiOperationSupport(order = 8)
    @ApiOperation(value = "删除", notes = "传入ids")
    public R selectInfo(String deviceNumber) {
        List<DeplVO> deplVOS = deplService.selectInfo(deviceNumber);
        return R.data(deplVOS);
    }
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/depl/dto/DeplDTO.java
New file
@@ -0,0 +1,34 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.jfpt.depl.dto;
import org.springblade.jfpt.depl.entity.Depl;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * 数据传输对象实体类
 *
 * @author BladeX
 * @since 2021-04-21
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class DeplDTO extends Depl {
    private static final long serialVersionUID = 1L;
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/depl/entity/Depl.java
New file
@@ -0,0 +1,80 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.jfpt.depl.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
 * 实体类
 *
 * @author BladeX
 * @since 2021-04-21
 */
@Data
@TableName("sys_depl")
@ApiModel(value = "Depl对象", description = "Depl对象")
public class Depl implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
    * 设备编码
    */
        @ApiModelProperty(value = "设备编码")
        @TableField("deviceNumber")
    private String devicenumber;
    /**
    * 安装人员
    */
        @ApiModelProperty(value = "安装人员")
        private String contacts;
    /**
    * 电话
    */
        @ApiModelProperty(value = "电话")
        private String call;
    /**
    * 图片地址
    */
        @ApiModelProperty(value = "图片地址")
        private String paddress;
    /**
    * 部署时间
    */
        @ApiModelProperty(value = "部署时间")
        @TableField("deploymentTime")
    private String deploymenttime;
    /**
    * 设备名称
    */
        @ApiModelProperty(value = "设备名称")
        @TableField("deviceName")
    private String devicename;
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/depl/mapper/DeplMapper.java
New file
@@ -0,0 +1,43 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.jfpt.depl.mapper;
import org.springblade.jfpt.depl.entity.Depl;
import org.springblade.jfpt.depl.vo.DeplVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
/**
 *  Mapper 接口
 *
 * @author BladeX
 * @since 2021-04-21
 */
public interface DeplMapper extends BaseMapper<Depl> {
    /**
     * 自定义分页
     *
     * @param page
     * @param depl
     * @return
     */
    List<DeplVO> selectDeplPage(IPage page, DeplVO depl);
    List<DeplVO> selectInfo(String deviceNumber);
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/depl/mapper/DeplMapper.xml
New file
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.jfpt.depl.mapper.DeplMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="deplResultMap" type="org.springblade.jfpt.depl.entity.Depl">
        <id column="id" property="id"/>
        <result column="deviceNumber" property="devicenumber"/>
        <result column="contacts" property="contacts"/>
        <result column="call" property="call"/>
        <result column="paddress" property="paddress"/>
        <result column="deploymentTime" property="deploymenttime"/>
        <result column="deviceName" property="devicename"/>
    </resultMap>
    <select id="selectDeplPage" resultMap="deplResultMap">
        select * from sys_depl where is_deleted = 0
    </select>
    <select id="selectInfo" resultMap="deplResultMap">
        select * from sys_depl where deviceNumber =#{deviceNumber}
    </select>
</mapper>
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/depl/service/IDeplService.java
New file
@@ -0,0 +1,44 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.jfpt.depl.service;
import org.springblade.jfpt.depl.entity.Depl;
import org.springblade.jfpt.depl.vo.DeplVO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
/**
 *  服务类
 *
 * @author BladeX
 * @since 2021-04-21
 */
public interface IDeplService extends IService<Depl> {
    /**
     * 自定义分页
     *
     * @param page
     * @param depl
     * @return
     */
    IPage<DeplVO> selectDeplPage(IPage<DeplVO> page, DeplVO depl);
    List<DeplVO> selectInfo(String deviceNumber);
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/depl/service/impl/DeplServiceImpl.java
New file
@@ -0,0 +1,48 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.jfpt.depl.service.impl;
import org.springblade.jfpt.depl.entity.Depl;
import org.springblade.jfpt.depl.vo.DeplVO;
import org.springblade.jfpt.depl.mapper.DeplMapper;
import org.springblade.jfpt.depl.service.IDeplService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
/**
 *  服务实现类
 *
 * @author BladeX
 * @since 2021-04-21
 */
@Service
public class DeplServiceImpl extends ServiceImpl<DeplMapper, Depl> implements IDeplService {
    @Override
    public IPage<DeplVO> selectDeplPage(IPage<DeplVO> page, DeplVO depl) {
        return page.setRecords(baseMapper.selectDeplPage(page, depl));
    }
    @Override
    public List<DeplVO> selectInfo(String deviceNumber) {
        return baseMapper.selectInfo(deviceNumber);
    }
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/depl/vo/DeplVO.java
New file
@@ -0,0 +1,36 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.jfpt.depl.vo;
import org.springblade.jfpt.depl.entity.Depl;
import lombok.Data;
import lombok.EqualsAndHashCode;
import io.swagger.annotations.ApiModel;
/**
 * 视图实体类
 *
 * @author BladeX
 * @since 2021-04-21
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "DeplVO对象", description = "DeplVO对象")
public class DeplVO extends Depl {
    private static final long serialVersionUID = 1L;
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/feedback/controller/FeedbackController.java
@@ -230,12 +230,29 @@
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Allow-Credentials","true");
        Map<String, Object> maps = new HashMap<String, Object>();
        //保存视频的数组
        ArrayList <String> arlistm = new ArrayList <String>();
        //保存图片的数组
        ArrayList <String> arlistj = new ArrayList <String>();
        List<Map<String, Object>> lists = new ArrayList<>();
        List<FeedbackVO> feedbackVOS = feedbackService.selectFeedEdit(jid);
        List<Map<String, Object>> map = feedbackService.selectWjEdit(jid);
        for (int i=0;i<map.size();i++){
            Object address = map.get(i).get("address");
            String addr = address.toString();
            String substring = addr.substring(addr.length() - 4, addr.length());
            if (substring.equals(".mp4")){
                arlistm.add(addr);
            }
            else if (substring.equals(".jpg")){
                arlistj.add(addr);
            }
        }
        maps.put("List",feedbackVOS);
        maps.put("wj",map);
        maps.put("tp",arlistj);
        maps.put("sp",arlistm);
        lists.add(maps);
        lists.clear();
        return R.data(lists);
    }
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/xlfeedback/controller/XlfeedbackController.java
@@ -246,17 +246,17 @@
    }
    /**
     *
     *警单反馈图片,视频
     * @param file
     */
    @PostMapping("put-objects")
    public R put(@RequestParam MultipartFile file) throws InvalidPortException, InvalidEndpointException, IOException, XmlPullParserException, NoSuchAlgorithmException, InvalidKeyException, InvalidArgumentException, InternalException, NoResponseException, InvalidBucketNameException, InsufficientDataException, ErrorResponseException, RegionConflictException {
        MinioClient minioClient = new MinioClient("http://36.134.81.48:9000","adminminio","adminminio");
        MinioClient minioClient = new MinioClient("http://web.byisf.com:9000","adminminio","adminminio");
        if (!minioClient.bucketExists("jfpt")) {    //是否存在名为“test”的bucket
            minioClient.makeBucket("jfpt");
        }
        String fileName = file.getOriginalFilename();
        String newName ="upload/"+UUID.randomUUID().toString().replaceAll("-", "")
        String newName ="upload/fk/"+UUID.randomUUID().toString().replaceAll("-", "")
            + fileName.substring(fileName.lastIndexOf("."));
        InputStream inputStream = file.getInputStream();    //获取file的inputStream
        minioClient.putObject("jfpt", newName, inputStream, "application/octet-stream");//上传
blade-service/blade-jfpts/src/main/java/sql/depl.menu.mysql
New file
@@ -0,0 +1,10 @@
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1384712731563872262', 1123598815738675201, 'depl', '安装部署', 'menu', '/depl/depl', NULL, 1, 1, 0, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1384712731563872263', '1384712731563872262', 'depl_add', '新增', 'add', '/depl/depl/add', 'plus', 1, 2, 1, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1384712731563872264', '1384712731563872262', 'depl_edit', '修改', 'edit', '/depl/depl/edit', 'form', 2, 2, 2, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1384712731563872265', '1384712731563872262', 'depl_delete', '删除', 'delete', '/api/blade-depl/depl/remove', 'delete', 3, 2, 3, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1384712731563872266', '1384712731563872262', 'depl_view', '查看', 'view', '/depl/depl/view', 'file-text', 4, 2, 2, 1, NULL, 0);