package com.oying.modules.message.rest; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.oying.annotation.Log; import com.oying.modules.message.domain.MessageOrderLeave; import com.oying.modules.message.service.MessageOrderLeaveService; import com.oying.modules.message.domain.dto.MessageOrderLeaveQueryCriteria; import com.oying.utils.R; import lombok.RequiredArgsConstructor; import java.sql.Timestamp; import java.util.List; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import io.swagger.annotations.*; import java.io.IOException; import javax.servlet.http.HttpServletResponse; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.oying.utils.PageResult; /** * @author 李萌 * @date 2025-05-20 **/ @RestController @RequiredArgsConstructor @Api(tags = "消息留言") @RequestMapping("/api/message/messageOrderLeave") public class MessageOrderLeaveController { private final MessageOrderLeaveService messageOrderLeaveService; // @ApiOperation("导出数据") // @GetMapping(value = "/download") // @PreAuthorize("@el.check('messageOrderLeave:list')") // public void exportMessageOrderLeave(HttpServletResponse response, MessageOrderLeaveQueryCriteria criteria) throws IOException { // messageOrderLeaveService.download(messageOrderLeaveService.queryAll(criteria), response); // } @GetMapping @ApiOperation("查询消息留言") @PreAuthorize("@el.check('messageOrderLeave:list')") public R> queryMessageOrderLeave(MessageOrderLeaveQueryCriteria criteria){ Page page = new Page<>(criteria.getPage(), criteria.getSize()); // return new ResponseEntity<>(messageOrderLeaveService.queryAll(criteria,page),HttpStatus.OK); return R.success(messageOrderLeaveService.queryAll(criteria,page)); } // @PostMapping // @Log("新增消息留言") // @ApiOperation("新增消息留言") // @PreAuthorize("@el.check('messageOrderLeave:add')") // public ResponseEntity createMessageOrderLeave(@Validated @RequestBody MessageOrderLeave resources){ // messageOrderLeaveService.create(resources); // return new ResponseEntity<>(HttpStatus.CREATED); // } // @PutMapping // @Log("修改消息留言") // @ApiOperation("修改消息留言") // @PreAuthorize("@el.check('messageOrderLeave:edit')") // public ResponseEntity updateMessageOrderLeave(@Validated @RequestBody MessageOrderLeave resources){ // messageOrderLeaveService.update(resources); // return new ResponseEntity<>(HttpStatus.NO_CONTENT); // } // @DeleteMapping // @Log("删除消息留言") // @ApiOperation("删除消息留言") // @PreAuthorize("@el.check('messageOrderLeave:del')") // public ResponseEntity deleteMessageOrderLeave(@ApiParam(value = "传ID数组[]") @RequestBody List ids) { // messageOrderLeaveService.deleteAll(ids); // return new ResponseEntity<>(HttpStatus.OK); // } //顾客点击订单,传回订单id,根据订单id生成一条 消息留言 // @PutMapping("/customer/{order_id}") // @ApiOperation("顾客点击订单,传回订单id,根据订单id生成一条 留言,此时顾客可以留言") // public ResponseEntity createMessageOrderLeave(@PathVariable("order_id") Integer id,@RequestParam String customerReview) { // //创建对象 // MessageOrderLeave messageOrderLeave = new MessageOrderLeave(); // messageOrderLeave.setOrderId(id); // //如果customerReview为空,默认为“用户未留言” // messageOrderLeave.setCustomerReview(customerReview); // //设置创建时间为当前时间 // messageOrderLeave.setCreateTime(new Timestamp(System.currentTimeMillis())); // //若表中order_id订单还没存在则调用update留言 // // // if(messageOrderLeaveService.findByOrderId(id)==null){ // messageOrderLeaveService.updateById(messageOrderLeave); // return new ResponseEntity<>(HttpStatus.CREATED); // } else { // // 已存在则不保存,返回 OK 表示成功但无新资源创建 // return new ResponseEntity<>(HttpStatus.OK); // } // // } @PutMapping("/customer/{order_id}") @ApiOperation("顾客点击订单,传回订单id,根据订单id更新一条留言") public R updateMessageOrderLeaveCustomer(@PathVariable("order_id") Integer id, @RequestBody MessageOrderLeave messageOrderLeave1) { // 根据 order_id 查找留言信息 MessageOrderLeave messageOrderLeave = messageOrderLeaveService.findByOrderId(id); // 如果留言信息不存在,返回 404 Not Found if (messageOrderLeave == null) { // return new ResponseEntity<>("Message order leave not found for order ID: " + id, HttpStatus.NOT_FOUND); return R.fail("Message order leave not found for order ID: " + id); } // 设置顾客评价内容 if (messageOrderLeave1.getCustomerReview() != null && !messageOrderLeave1.getCustomerReview().trim().isEmpty()) { messageOrderLeave.setCustomerReview(messageOrderLeave1.getCustomerReview()); } else { messageOrderLeave.setCustomerReview("用户未留言"); } // 更新最后一次操作的时间 messageOrderLeave.setCreateTime(new Timestamp(System.currentTimeMillis())); // 调用服务层更新数据 boolean updated = messageOrderLeaveService.updateById(messageOrderLeave); // 如果更新失败,返回 500 Internal Server Error if (!updated) { // return new ResponseEntity<>("Failed to update message order leave", HttpStatus.INTERNAL_SERVER_ERROR); return R.fail("Failed to update message order leave"); } // return new ResponseEntity<>(HttpStatus.NO_CONTENT); return R.success(messageOrderLeave); } //商家对订单id进行回复 // @PutMapping("/seller/{order_id}") // @ApiOperation("商家对订单id进行回复") // public ResponseEntity updateMessageOrderLeave(@PathVariable("order_id") Integer id, @RequestParam String sellerReply) { // // 检查 sellerReply 是否为空 // if (sellerReply == null || sellerReply.trim().isEmpty()) { // return new ResponseEntity<>("sellerReply is required", HttpStatus.BAD_REQUEST); // } // // // 根据 order_id 查找留言信息 // MessageOrderLeave messageOrderLeave = messageOrderLeaveService.findByOrderId(id); // // // 如果没有找到对应的留言信息,返回 404 Not Found // if (messageOrderLeave == null) { // return new ResponseEntity<>("Message order leave not found for order ID: " + id, HttpStatus.NOT_FOUND); // } // // // 设置商家回复内容 // messageOrderLeave.setSellerReply(sellerReply); // // 更新最后一次操作的时间 // messageOrderLeave.setCreateTime(new Timestamp(System.currentTimeMillis())); // // // 调用服务层更新数据 // boolean updated = messageOrderLeaveService.updateById(messageOrderLeave); // // // 如果更新失败,返回 500 Internal Server Error // if (!updated) { // return new ResponseEntity<>("Failed to update message order leave", HttpStatus.INTERNAL_SERVER_ERROR); // } // // return new ResponseEntity<>(HttpStatus.NO_CONTENT); // } //商家对订单id进行回复 订单id必须唯一限制 否则会报错 @PutMapping("/seller/{order_id}") @ApiOperation("商家对订单id进行回复") public R updateMessageOrderLeaveSeller(@PathVariable("order_id") Integer id, @RequestBody MessageOrderLeave messageOrderLeave1) { // 根据 order_id 查找留言信息 MessageOrderLeave messageOrderLeave = messageOrderLeaveService.findByOrderId(id); // 如果没有找到对应的留言信息,返回 404 Not Found if (messageOrderLeave == null) { // return new ResponseEntity<>("Message order leave not found for order ID: " + id, HttpStatus.NOT_FOUND); return R.fail("Message order leave not found for order ID: " + id); } // 设置商家回复内容 messageOrderLeave.setSellerReply(messageOrderLeave1.getSellerReply()); // 更新最后一次操作的时间 messageOrderLeave.setCreateTime(new Timestamp(System.currentTimeMillis())); // 调用服务层更新数据 boolean updated = messageOrderLeaveService.updateById(messageOrderLeave); // 如果更新失败,返回 500 Internal Server Error if (!updated) { // return new ResponseEntity<>("Failed to update message order leave", HttpStatus.INTERNAL_SERVER_ERROR); return R.fail("Failed to update message order leave"); } // return new ResponseEntity<>(HttpStatus.NO_CONTENT); return R.success(messageOrderLeave); } }