leomon
2025-06-05 a3fffa17c643bb96159a23880e1749c486279906
oying-system/src/main/java/com/oying/modules/message/rest/MessageOrderLeaveController.java
@@ -1,10 +1,15 @@
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;
@@ -24,50 +29,174 @@
@RestController
@RequiredArgsConstructor
@Api(tags = "消息留言")
@RequestMapping("/api/messageOrderLeave")
@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);
    }
//    @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 ResponseEntity<PageResult<MessageOrderLeave>> queryMessageOrderLeave(MessageOrderLeaveQueryCriteria criteria){
    public R<PageResult<MessageOrderLeave>> queryMessageOrderLeave(MessageOrderLeaveQueryCriteria criteria){
        Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
        return new ResponseEntity<>(messageOrderLeaveService.queryAll(criteria,page),HttpStatus.OK);
//        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<Object> createMessageOrderLeave(@Validated @RequestBody MessageOrderLeave resources){
        messageOrderLeaveService.create(resources);
        return new ResponseEntity<>(HttpStatus.CREATED);
//    @PostMapping
//    @Log("新增消息留言")
//    @ApiOperation("新增消息留言")
//    @PreAuthorize("@el.check('messageOrderLeave:add')")
//    public ResponseEntity<Object> createMessageOrderLeave(@Validated @RequestBody MessageOrderLeave resources){
//        messageOrderLeaveService.create(resources);
//        return new ResponseEntity<>(HttpStatus.CREATED);
//    }
//    @PutMapping
//    @Log("修改消息留言")
//    @ApiOperation("修改消息留言")
//    @PreAuthorize("@el.check('messageOrderLeave:edit')")
//    public ResponseEntity<Object> updateMessageOrderLeave(@Validated @RequestBody MessageOrderLeave resources){
//        messageOrderLeaveService.update(resources);
//        return new ResponseEntity<>(HttpStatus.NO_CONTENT);
//    }
//    @DeleteMapping
//    @Log("删除消息留言")
//    @ApiOperation("删除消息留言")
//    @PreAuthorize("@el.check('messageOrderLeave:del')")
//    public ResponseEntity<Object> deleteMessageOrderLeave(@ApiParam(value = "传ID数组[]") @RequestBody List<Integer> ids) {
//        messageOrderLeaveService.deleteAll(ids);
//        return new ResponseEntity<>(HttpStatus.OK);
//    }
    //顾客点击订单,传回订单id,根据订单id生成一条 消息留言
//    @PutMapping("/customer/{order_id}")
//    @ApiOperation("顾客点击订单,传回订单id,根据订单id生成一条 留言,此时顾客可以留言")
//    public ResponseEntity<Object> 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<Object> 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<Object> 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<Object> 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);
    }
    @PutMapping
    @Log("修改消息留言")
    @ApiOperation("修改消息留言")
    @PreAuthorize("@el.check('messageOrderLeave:edit')")
    public ResponseEntity<Object> updateMessageOrderLeave(@Validated @RequestBody MessageOrderLeave resources){
        messageOrderLeaveService.update(resources);
        return new ResponseEntity<>(HttpStatus.NO_CONTENT);
    }
    @DeleteMapping
    @Log("删除消息留言")
    @ApiOperation("删除消息留言")
    @PreAuthorize("@el.check('messageOrderLeave:del')")
    public ResponseEntity<Object> deleteMessageOrderLeave(@ApiParam(value = "传ID数组[]") @RequestBody List<Integer> ids) {
        messageOrderLeaveService.deleteAll(ids);
        return new ResponseEntity<>(HttpStatus.OK);
    }
}