| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- package com.oms.controller;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.oms.common.ApiResponse;
- import com.oms.dto.PageResponse;
- import com.oms.dto.TicketDTO;
- import com.oms.entity.Ticket;
- import com.oms.service.TicketService;
- import lombok.RequiredArgsConstructor;
- import org.springframework.web.bind.annotation.*;
- import java.util.List;
- import java.util.Map;
- @RestController
- @RequestMapping("/crm/tickets")
- @RequiredArgsConstructor
- public class TicketController {
- private final TicketService ticketService;
- @GetMapping
- public PageResponse<Ticket> getTickets(
- @RequestParam(defaultValue = "1") int page,
- @RequestParam(defaultValue = "20") int size,
- @RequestParam(required = false) String status,
- @RequestParam(required = false) String priority) {
- Page<Ticket> pageResult = ticketService.getPage(page, size, status, priority);
- return PageResponse.of(pageResult.getRecords(), pageResult.getTotal(), (int) pageResult.getCurrent(), (int) pageResult.getSize());
- }
- @GetMapping("/{id}")
- public ApiResponse<Ticket> getTicket(@PathVariable Long id) {
- Ticket ticket = ticketService.getTicket(id);
- if (ticket == null) {
- return ApiResponse.notFound("工单不存在");
- }
- return ApiResponse.success(ticket);
- }
- @PostMapping
- public ApiResponse<Ticket> createTicket(@RequestBody TicketDTO dto) {
- return ApiResponse.success(ticketService.createTicket(dto));
- }
- @PutMapping("/{id}")
- public ApiResponse<Ticket> updateTicket(@PathVariable Long id, @RequestBody TicketDTO dto) {
- Ticket ticket = ticketService.updateTicket(id, dto);
- if (ticket == null) {
- return ApiResponse.notFound("工单不存在");
- }
- return ApiResponse.success(ticket);
- }
- @PostMapping("/{id}/assign")
- public ApiResponse<Ticket> assignTicket(@PathVariable Long id, @RequestBody Map<String, Object> body) {
- Long assignedTo = Long.valueOf(body.get("assignedTo").toString());
- String assignedName = body.get("assignedName").toString();
- Ticket ticket = ticketService.assignTicket(id, assignedTo, assignedName);
- if (ticket == null) {
- return ApiResponse.notFound("工单不存在");
- }
- return ApiResponse.success(ticket);
- }
- @PostMapping("/{id}/resolve")
- public ApiResponse<Ticket> resolveTicket(@PathVariable Long id, @RequestBody Map<String, String> body) {
- Ticket ticket = ticketService.resolveTicket(id, body.get("resolution"));
- if (ticket == null) {
- return ApiResponse.notFound("工单不存在");
- }
- return ApiResponse.success(ticket);
- }
- @DeleteMapping("/{id}")
- public ApiResponse<Void> deleteTicket(@PathVariable Long id) {
- ticketService.deleteTicket(id);
- return ApiResponse.success();
- }
- }
|