package com.panzhihua.sangeshenbian.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.sangeshenbian.annotation.DistributedLock; import com.panzhihua.sangeshenbian.model.dto.ComplaintCompletionDTO; import com.panzhihua.sangeshenbian.model.dto.ComplaintProcessDTO; import com.panzhihua.sangeshenbian.model.entity.Complaint; import com.panzhihua.sangeshenbian.model.entity.ComplaintProgress; import com.panzhihua.sangeshenbian.model.query.ComplaintQuery; import com.panzhihua.sangeshenbian.service.IComplaintService; import com.panzhihua.sangeshenbian.model.vo.ComplaintVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; 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 javax.validation.Valid; /** *

* 诉求报告表 前端控制器 *

* * @author * @since 2025-02-22 */ @Validated @RestController @RequestMapping("/applet/complaint") @RequiredArgsConstructor @Api(tags = "诉求管理") public class ComplaintController extends BaseController { private final IComplaintService complaintService; /** * 录入诉求 */ @PostMapping("/save") @ApiOperation(value = "录入诉求") @DistributedLock(lockName = "complaint_serial_number_lock") public void save(Complaint complaint) { complaintService.saveComplaint(complaint,getUserId()); } @PostMapping("/list") @ApiOperation("工单列表") public R> complaintList(@RequestBody ComplaintQuery query) { return R.ok(complaintService.complaintList(query,getLoginUserInfo())); } @GetMapping("/detail") @ApiOperation("工单详情") public R detail(@ApiParam(name = "id", value = "工单id", required = true) Long id) { return R.ok(complaintService.detail(id)); } @PostMapping("/saveProcess") @ApiOperation("办理进度录入") public R saveProcess(@Valid @RequestBody ComplaintProcessDTO dto){ complaintService.saveProcess(dto,getUserId()); return R.ok(); } @PostMapping("/saveResult") @ApiOperation("办理结果录入") public R saveResult(@RequestBody ComplaintCompletionDTO dto){ complaintService.saveResult(dto,getLoginUserInfo()); return R.ok(); } }