ke
2024-12-03 8876bd76201b4be1d82aa77a1ba7f0b25d4239b9
白蚁新模块。图片上传接口。更新12-3 10:00
5 files modified
188 ■■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/nettyUpload/HttpUploadFileHandler.java 166 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/picUpload/mapper/BaiyiPicMapper.java 2 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/picUpload/mapper/BaiyiPicMapper.xml 13 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/picUpload/service/BaiyiPicService.java 2 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/picUpload/service/impl/BaiyiPicServiceImpl.java 5 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/nettyUpload/HttpUploadFileHandler.java
@@ -51,7 +51,17 @@
    private static final String UPLOAD_DATA_URL = "/termite/syncDeviceState";
    /***
     * 新设备传图片接口
     */
    private static final String UPLOAD_FILE_URL = "/termite/termiteDataup";
    /**
     * 旧设备传图片接口
     * 没有Authorization验证
     */
    private static final String UPLOAD_FILE_URL_OLD = "/termite/termiteDataupOld";
    private NettyHttpConfig nettyHttpConfig;
    private BaiyiPicService baiyiPicService;
@@ -82,92 +92,38 @@
    protected void channelRead0(ChannelHandlerContext ctx, FullHttpRequest fullRequest) throws Exception {
        // Authorization验证
        boolean isRequestValid = isValidHttpRequest(ctx, fullRequest);
        if (!isRequestValid) {
            HttpResponseUtils.sendResponseJson2(ctx, HttpResponseStatus.BAD_REQUEST, "验证失败",null);
            return ;
        }
        // 请求路径验证
        String urlyz = urlyz(ctx, fullRequest);
        if (UPLOAD_FILE_URL.equals(urlyz)) { //传图片
            HttpPostMultipartRequestDecoder test = new HttpPostMultipartRequestDecoder(fullRequest);
            List<InterfaceHttpData> bodyHttpDatas = test.getBodyHttpDatas();
            XfByPic xfByPic = new XfByPic();
            for (InterfaceHttpData item : bodyHttpDatas ) {
                if ( item instanceof Attribute){
                    Attribute attribute = (Attribute)item;
                    System.out.println("getName:::"+attribute.getName());
                    System.out.println("getValue:::"+attribute.getValue());
                    String value = attribute.getValue();
                    switch(attribute.getName()){
                        case "mnNo":
                            xfByPic.setMnNo(value);
                            break;
                        case "order":
                            xfByPic.setOrder(value);
                            break;
                        case "sn":
                            xfByPic.setSn(value);
                            break;
                        case "ap":
                            xfByPic.setAp(value);
                            break;
                        case "camera":
                            xfByPic.setCamera(value);
                            break;
                        case "hardware":
                            xfByPic.setHardware(value);
                            break;
                        case "rssi":
                            xfByPic.setRssi(value);
                            break;
                        case "software":
                            xfByPic.setSoftware(value);
                            break;
                        case "temperature":
                            xfByPic.setTemperature(value);
                            break;
                        case "voltage":
                            xfByPic.setVoltage(value);
                            break;
                    }
                } else if (item instanceof FileUpload) {
                    FileUpload file = (FileUpload)item;
                    String filename = file.getFilename();
                    ByteArrayInputStream stream = new ByteArrayInputStream(ByteBufUtil.getBytes(file.getByteBuf()));
                    MockMultipartFile multipartFile
                        = new MockMultipartFile("11", filename, "application/octet-stream", stream);
                    String picurl = iOssClient.uploadFile(filename, multipartFile);
                    log.info("图片上传地址::"+picurl);
                    xfByPic.setImageurl(picurl);
                }
            // Authorization验证
            boolean isRequestValid = isValidHttpRequest(ctx, fullRequest);
            if (!isRequestValid) {
                HttpResponseUtils.sendResponseJson2(ctx, HttpResponseStatus.BAD_REQUEST, "验证失败",null);
                return ;
            }
            xfByPic.setCreatedAt(new Date());
            XfByPic xfByPic = setEntity(fullRequest);
            // 保存入库xfByPic
            baiyiPicService.inserXfPicUrl(xfByPic);
        } else if(UPLOAD_DATA_URL.equals(urlyz)) { //传数据
        }else if(UPLOAD_FILE_URL_OLD.equals(urlyz)) { // 旧类型设备上传图片数据接口
            log.info("UPLOAD_FILE_URL_OLD接口调用成功!!!!:");
            System.err.println(fullRequest);
            XfByPic xfByPic = setEntity(fullRequest);
            // 保存入库xfByPic
            baiyiPicService.inserXfOldPicUrl(xfByPic);
        }else if(UPLOAD_DATA_URL.equals(urlyz)) { //传数据
            HttpPostMultipartRequestDecoder test = new HttpPostMultipartRequestDecoder(fullRequest);
            List<InterfaceHttpData> bodyHttpDatas = test.getBodyHttpDatas();
            for (InterfaceHttpData item : bodyHttpDatas ) {
                if (  item instanceof Attribute){
//                    FileUpload file = (FileUpload)item;
//                    String filename = file.getFilename();
//                    ByteArrayInputStream stream = new ByteArrayInputStream(ByteBufUtil.getBytes(file.getByteBuf()));
//                    MockMultipartFile multipartFile
//                        = new MockMultipartFile("11", filename, "application/octet-stream", stream);
//                    String picurl = iOssClient.uploadFile(filename, multipartFile);
//                    log.info("图片上传地址::"+picurl);
                } else if (item instanceof FileUpload) {
                    System.out.println("Attribute:::"+item.getName());
@@ -184,6 +140,70 @@
        HttpResponseUtils.sendResponseJson(ctx, HttpResponseStatus.OK, "上传成功");
    }
    //请求参数注入实体
    public XfByPic setEntity(FullHttpRequest fullRequest) throws Exception {
        HttpPostMultipartRequestDecoder test = new HttpPostMultipartRequestDecoder(fullRequest);
        List<InterfaceHttpData> bodyHttpDatas = test.getBodyHttpDatas();
        XfByPic xfByPic = new XfByPic();
        for (InterfaceHttpData item : bodyHttpDatas ) {
            if (item instanceof Attribute) {
                Attribute attribute = (Attribute) item;
                String value = attribute.getValue();
                switch (attribute.getName()) {
                    case "mnNo":
                        xfByPic.setMnNo(value);
                        break;
                    case "order":
                        xfByPic.setOrder(value);
                        break;
                    case "sn":
                        xfByPic.setSn(value);
                        break;
                    case "ap":
                        xfByPic.setAp(value);
                        break;
                    case "camera":
                        xfByPic.setCamera(value);
                        break;
                    case "hardware":
                        xfByPic.setHardware(value);
                        break;
                    case "rssi":
                        xfByPic.setRssi(value);
                        break;
                    case "software":
                        xfByPic.setSoftware(value);
                        break;
                    case "temperature":
                        xfByPic.setTemperature(value);
                        break;
                    case "voltage":
                        xfByPic.setVoltage(value);
                        break;
                }
            } else if (item instanceof FileUpload) {
                FileUpload file = (FileUpload) item;
                String filename = file.getFilename();
                ByteArrayInputStream stream = new ByteArrayInputStream(ByteBufUtil.getBytes(file.getByteBuf()));
                MockMultipartFile multipartFile
                    = new MockMultipartFile("11", filename, "application/octet-stream", stream);
                String picurl = iOssClient.uploadFile(filename, multipartFile);
                log.info("图片上传地址::" + picurl);
                xfByPic.setImageurl(picurl);
            }
        }
        xfByPic.setCreatedAt(new Date());
        return xfByPic;
    }
    // 请求路径验证
    public  String  urlyz(ChannelHandlerContext ctx, FullHttpRequest request) {
        try {
skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/picUpload/mapper/BaiyiPicMapper.java
@@ -10,4 +10,6 @@
    void inserXfPicUrl(@Param("item") XfByPic entity);
    void inserXfOldPicUrl(@Param("item") XfByPic entity);
}
skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/picUpload/mapper/BaiyiPicMapper.xml
@@ -28,4 +28,17 @@
            )
    </insert>
    <insert id="inserXfPicUrl" >
        insert into
            SJZT_ODS."water_data_termites_url_xf_old"
        ("sn", "ap",
         "camera","hardware", "imageurl", "rssi", "software",  "temperature" , "voltage" ,"created_at")
            VALUE
            (
            #{item.sn},#{item.ap},#{item.camera},#{item.hardware},#{item.imageurl},
            #{item.rssi},#{item.software},#{item.temperature},#{item.voltage},#{item.createdAt}
            )
    </insert>
</mapper>
skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/picUpload/service/BaiyiPicService.java
@@ -8,4 +8,6 @@
    void inserpicData(BaiyiPicEntity entity);
    void inserXfPicUrl(XfByPic entity);
    void inserXfOldPicUrl(XfByPic entity);
}
skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/picUpload/service/impl/BaiyiPicServiceImpl.java
@@ -22,4 +22,9 @@
    public void inserXfPicUrl(XfByPic entity) {
        baiyiPicMapper.inserXfPicUrl(entity);
    }
    @Override
    public void inserXfOldPicUrl(XfByPic entity) {
        baiyiPicMapper.inserXfOldPicUrl(entity);
    }
}