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.pipIrrGlobal.pojoSe.SeIssueReport;
|
import com.dy.pipIrrWechat.issue.dto.DtoIssueReport;
|
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.PostMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import java.math.BigDecimal;
|
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<Boolean> 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);
|
Long issueReportId = issueSv.insertIssueReport(seIssueReport);
|
if(issueReportId == null) {
|
return BaseResponseUtils.buildErrorMsg("农户问题上报失败");
|
}
|
|
return BaseResponseUtils.buildSuccess(true) ;
|
}
|
}
|