liurunyu
2025-08-14 1dd888195c562851f869d6c75b424365ed1c781e
有wechat模块增加查询所有摄像头及accessToken功能
2个文件已修改
3个文件已添加
189 ■■■■■ 已修改文件
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoVi/ViCameraMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/ViCameraMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/video/VideoCtrl.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/video/VideoSv.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/video/VoVideo.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoVi/ViCameraMapper.java
@@ -57,6 +57,12 @@
     */
    List<VoCamera> selectSome4Monitor(Map<?, ?> params) ;
    /**
     * 分页查询一些
     * @return 实体集合
     */
    List<VoCamera> selectAll4Monitor() ;
// Update the record in the ViCamera table based on the primary key, but only update the fields that are not null
    int updateByPrimaryKeySelective(ViCamera record);
pipIrr-platform/pipIrr-global/src/main/resources/mapper/ViCameraMapper.xml
@@ -94,6 +94,17 @@
      </if>
    </trim>
  </select>
  <select id="selectAll4Monitor" parameterType="java.util.Map" resultType="com.dy.pipIrrGlobal.voVi.VoCamera">
    <!--@mbg.generated-->
    select
    <include refid="part_Column_List" >
      <property name="alias" value="tb"/>
    </include>
    from vi_camera tb
    where tb.deleted != 1 and tb.on_screen = 1
    order by tb.on_sort ASC, tb.id DESC
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
    <!--@mbg.generated-->
    delete from vi_camera
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/video/VideoCtrl.java
New file
@@ -0,0 +1,77 @@
package com.dy.pipIrrWechat.video;
import com.dy.common.webUtil.BaseResponse;
import com.dy.common.webUtil.BaseResponseUtils;
import com.dy.common.webUtil.ResultCodeMsg;
import com.dy.pipIrrGlobal.pojoVi.ViYsApp;
import com.dy.pipIrrGlobal.voVi.VoCamera;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
/**
 * @Author: liurunyu
 * @Date: 2025/8/14 13:58
 * @Description
 */
@Slf4j
@Tag(name = "视频监控摄像头", description = "视频监控摄像头")
@RestController
@RequestMapping(path = "video")
@RequiredArgsConstructor
public class VideoCtrl{
    private VideoSv sv ;
    @Autowired
    public void setSv(VideoSv sv) {
        this.sv = sv;
    }
    /**
     * 客户端请求得到所有摄像头信息
     * @return 所有摄像头信息
     */
    @Operation(summary = "获得所有摄像头信息", description = "返回所有摄像头信息")
    @ApiResponses(value = {
            @ApiResponse(
                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
                    description = "返回所有摄像头信息数据(BaseResponse.content:TypesVo[{}])",
                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
                            schema = @Schema(implementation = VoVideo.class))}
            )
    })
    @GetMapping(path = "all")
    public BaseResponse<List<VoVideo>> all() {
        List<VoVideo> reList = new ArrayList<>() ;
        try {
            List<VoCamera> list = this.sv.allCamera() ;
            ViYsApp app = this.sv.ysApp() ;
            if(list != null && list.size() > 0){
                for (VoCamera voCamera : list) {
                    VoVideo vvo = new VoVideo() ;
                    vvo.from(voCamera, app == null ? null : app.accessToken);
                    reList.add(vvo) ;
                }
            }
            return BaseResponseUtils.buildSuccess(reList);
        } catch (Exception e) {
            log.error("查询全部摄像头信息异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/video/VideoSv.java
New file
@@ -0,0 +1,43 @@
package com.dy.pipIrrWechat.video;
import com.dy.pipIrrGlobal.daoVi.ViCameraMapper;
import com.dy.pipIrrGlobal.daoVi.ViYsAppMapper;
import com.dy.pipIrrGlobal.pojoVi.ViYsApp;
import com.dy.pipIrrGlobal.voVi.VoCamera;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * @Author: liurunyu
 * @Date: 2025/8/14 13:58
 * @Description
 */
@Slf4j
@Service
public class VideoSv {
    @Autowired
    private ViCameraMapper dao;
    @Autowired
    protected ViYsAppMapper viYsAppDao ;
    /**
     * 查询所有
     * @return 实体记录列表
     */
    public List<VoCamera> allCamera() {
        return dao.selectAll4Monitor() ;
    }
    public ViYsApp ysApp(){
        List<ViYsApp> all = this.viYsAppDao.selectAll() ;
        if(all == null || all.size() == 0){
            return null ;
        }else{
            return all.get(0) ;
        }
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/video/VoVideo.java
New file
@@ -0,0 +1,52 @@
package com.dy.pipIrrWechat.video;
import com.alibaba.fastjson2.annotation.JSONField;
import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
import com.dy.pipIrrGlobal.voVi.VoCamera;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import lombok.Data;
/**
 * @Author: liurunyu
 * @Date: 2025/8/14 13:59
 * @Description
 */
@Data
@JsonPropertyOrder({
        "id", "devNo", "name",
        "lng","lat", "accessToken"
})
public class VoVideo {
    @JSONField(serializeUsing= ObjectWriterImplToString.class)
    public Long id ;
    /**
     * 摄像机序列号
     */
    public String devNo;
    /**
     * 视频站名称
     */
    public String name;
    /**
     * 经度
     */
    public Double lng;
    /**
     * 纬度
     */
    public Double lat;
    public String accessToken ;
    public void from(VoCamera vo , String accessToken){
        this.id = vo.id ;
        this.devNo = vo.devNo ;
        this.name = vo.name ;
        this.lng = vo.lng ;
        this.lat = vo.lat ;
        this.accessToken = accessToken ;
    }
}