package com.dy.pipIrrWechat.issue; import com.alibaba.fastjson2.JSONArray; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.pojoSe.SeIssueReport; import com.dy.pipIrrGlobal.voSe.VoIssueReport; import com.dy.pipIrrWechat.issue.dto.DtoIssueReport; import com.dy.pipIrrWechat.issue.qo.QoIssueReport; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.util.Date; import java.util.List; import java.util.Objects; import java.util.Optional; /** * @author ZhuBaoMin * @date 2024-10-30 10:34 * @LastEditTime 2024-10-30 10:34 * @Description 农户问题上报控制类 */ @Slf4j @RestController @RequestMapping(path="issue") @RequiredArgsConstructor public class IssueCtrl { private final IssueSv issueSv; /** * 添加农户问题上报 * @param po * @param bindingResult * @return */ @PostMapping(path = "addIssueReport") @Transactional(rollbackFor = Exception.class) public BaseResponse addIssueReport(@RequestBody @Valid DtoIssueReport po, BindingResult bindingResult) { if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } Long clientId = po.getClientId(); String phone = Optional.ofNullable(po.getPhone()).orElse(""); BigDecimal lng = Optional.ofNullable(po.getLng()).orElse(BigDecimal.valueOf(0)); BigDecimal lat = Optional.ofNullable(po.getLat()).orElse(BigDecimal.valueOf(0)); String content = Optional.ofNullable(po.getContent()).orElse(""); JSONArray images = Optional.ofNullable(po.getImages()).orElse(new JSONArray()); JSONArray audios = Optional.ofNullable(po.getAudios()).orElse(new JSONArray()); JSONArray videos = Optional.ofNullable(po.getVideos()).orElse(new JSONArray()); SeIssueReport seIssueReport = new SeIssueReport(); seIssueReport.setClientId(clientId); seIssueReport.setPhone(phone); seIssueReport.setLng(lng); seIssueReport.setLat(lat); seIssueReport.setContent(content); seIssueReport.setImages(images); seIssueReport.setAudios(audios); seIssueReport.setVideos(videos); seIssueReport.setReportTime(new Date()); seIssueReport.setState((byte)1); Long issueReportId = issueSv.insertIssueReport(seIssueReport); if(issueReportId == null) { return BaseResponseUtils.buildErrorMsg("农户问题上报失败"); } return BaseResponseUtils.buildSuccess(true) ; } /** * 根据指定条件获取农户问题上报 * @param vo * @return */ @GetMapping(path = "/getIssueReports") public BaseResponse>> getIssueReports(QoIssueReport vo) { try { QueryResultVo> res = issueSv.getIssueReports(vo); return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("获取农户问题上报记录异常", e); return BaseResponseUtils.buildException(e.getMessage()); } } /** * 逻辑删除农户问题上报 * @param issueReportId * @return */ @PostMapping(path = "deleteIssueReport") public BaseResponse deleteIssueReport(@RequestParam("issueReportId") Long issueReportId) { if (issueReportId == null) { return BaseResponseUtils.buildErrorMsg("未选择要删除的农户问题上报"); } try { //取水口ID Integer recordCount = Optional.ofNullable(issueSv.deleteIssueReport(issueReportId)).orElse(0); if (recordCount == 0) { return BaseResponseUtils.buildErrorMsg("农户问题上报删除失败"); } else { return BaseResponseUtils.buildSuccess(true); } } catch (Exception e) { log.error("农户问题上报删除失败", e); return BaseResponseUtils.buildException(e.getMessage()); } } }