pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueSv.java
@@ -1,20 +1,28 @@
package com.dy.pipIrrWechat.issue;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.dy.common.util.NumUtil;
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrGlobal.daoSe.SeIssueReportMapper;
import com.dy.pipIrrGlobal.daoSe.SeReportReplyMapper;
import com.dy.pipIrrGlobal.dyFile.FileOperate;
import com.dy.pipIrrGlobal.dyFile.FileRestVo;
import com.dy.pipIrrGlobal.pojoSe.SeIssueReport;
import com.dy.pipIrrGlobal.pojoSe.SeReportReply;
import com.dy.pipIrrGlobal.voSe.VoIssueReport;
import com.dy.pipIrrGlobal.voSe.VoIssueReportReply;
import com.dy.pipIrrGlobal.voSe.VoIssueReport_temp;
import com.dy.pipIrrWechat.issue.qo.QoIssueReport;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.utils.PojoUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
 * @author ZhuBaoMin
@@ -32,14 +40,57 @@
    @Autowired
    private SeReportReplyMapper seReportReplyMapper;
    @Value("${dy.webFile.fmUrl}")
    private String fmUrl ;
    @Autowired
    private FileOperate fileOp ;
    private void dealWebFilePath(JSONArray jsonArray, boolean hasZipFile, boolean isVideo){
        for (Object obj : jsonArray){
            if(obj instanceof JSONObject){
                JSONObject jsonObject = (JSONObject) obj;
                Object hashObj = jsonObject.get("hash") ;
                if(hashObj != null && NumUtil.isIntNumber(hashObj.toString())){
                    FileRestVo fvo = fileOp.parseHashcode(fmUrl, Integer.valueOf(hashObj.toString()));
                    if(fvo != null && fvo.fileWebUrl != null){
                        jsonObject.put("webPath", fvo.fileWebUrl + jsonObject.get("filePath"));
                        if(hasZipFile){
                            if(!isVideo){
                                jsonObject.put("webPathZip", fileOp.getFileZipPath(fvo.fileWebUrl + jsonObject.get("filePath")));
                            }else{
                                jsonObject.put("webPathZip", fileOp.getFileZipPath(fvo.fileWebUrl + jsonObject.get("filePath"), "jpg"));
                            }
                        }
                    }
                }
            }
        }
    }
    /**
     * 添加问题上报信息
     * 添加用户问题上报
     * @param po
     * @return
     */
    public Long insertIssueReport(SeIssueReport po) {
    public String addIssueReport(SeIssueReport po) {
        po.setReportTime(new Date());
        po.setState((byte)1);
        seIssueReportMapper.insert(po);
        return po.getId();
        Long issueReportId = po.getId();
        if(issueReportId == null) {
            return "农户问题上报失败";
        }
        return "success";
    }
    /**
     * 修改农户问题上报状态,回复及删除时使用
     * @param po
     * @return
     */
    public Integer updateIssueReport(SeIssueReport po) {
        return seIssueReportMapper.updateByPrimaryKeySelective(po);
    }
    /**
@@ -69,11 +120,41 @@
        rsVo.pageCurr = queryVo.pageCurr;
        rsVo.calculateAndSet(itemTotal, params);
        rsVo.obj = seIssueReportMapper.getIssueReports(params);
        List<VoIssueReport_temp> list_temp = seIssueReportMapper.getIssueReports(params);
        List<VoIssueReport> list = new ArrayList<>();
        for (int i = 0; i < list_temp.size(); i++) {
            VoIssueReport_temp report_temp = list_temp.get(i);
            VoIssueReport report = new VoIssueReport();
            BeanUtils.copyProperties(report_temp, report);
            JSONArray images_array = Optional.ofNullable(JSON.parseArray(report_temp.getImages())).orElse(new JSONArray());
            JSONArray audios_array = Optional.ofNullable(JSON.parseArray(report_temp.getAudios())).orElse(new JSONArray());
            JSONArray videos_array = Optional.ofNullable(JSON.parseArray(report_temp.getVideos())).orElse(new JSONArray());
            this.dealWebFilePath(images_array, true, false) ;
            this.dealWebFilePath(audios_array, false, false) ;
            this.dealWebFilePath(videos_array, true, true) ;
            report.setImages(images_array);
            report.setAudios(audios_array);
            report.setVideos(videos_array);
            list.add(report);
        }
        rsVo.obj = list;
        return rsVo;
    }
    /**
     * 根据上报ID及农户ID获取未删除的上报,删除上报判断使用
     * @param issueReportId
     * @param clientId
     * @return
     */
    public SeIssueReport getReport(Long issueReportId, Long clientId) {
        return seIssueReportMapper.getReport(issueReportId, clientId);
    }
    /**
     * 删除农户问题上报
     * @param issueReportId
     * @return