彭雪彬
2025-07-15 a7501803a3ca43310e57a5dd912e5047919c2e43
oying-system/src/main/java/com/oying/modules/message/rest/MessageOrderSellerController.java
@@ -1,11 +1,17 @@
package com.oying.modules.message.rest;
import cn.hutool.core.bean.BeanUtil;
import com.oying.annotation.Log;
import com.oying.modules.message.domain.MessageOrderSeller;
import com.oying.modules.message.domain.MessageOrderSeller;
import com.oying.modules.message.domain.dto.MessageOrderSellerDTO;
import com.oying.modules.message.service.MessageOrderSellerService;
import com.oying.modules.message.domain.dto.MessageOrderSellerQueryCriteria;
import com.oying.utils.R;
import lombok.RequiredArgsConstructor;
import java.util.List;
import org.apache.poi.util.Beta;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -24,50 +30,137 @@
@RestController
@RequiredArgsConstructor
@Api(tags = "卖家端订单消息通知")
@RequestMapping("/api/messageOrderSeller")
@RequestMapping("/api/message/messageOrderSeller")
public class MessageOrderSellerController {
    private final MessageOrderSellerService messageOrderSellerService;
    @ApiOperation("导出数据")
    @GetMapping(value = "/download")
    @PreAuthorize("@el.check('messageOrderSeller:list')")
    public void exportMessageOrderSeller(HttpServletResponse response, MessageOrderSellerQueryCriteria criteria) throws IOException {
        messageOrderSellerService.download(messageOrderSellerService.queryAll(criteria), response);
    }
//    @ApiOperation("导出数据")
//    @GetMapping(value = "/download")
//    @PreAuthorize("@el.check('messageOrderSeller:list')")
//    public void exportMessageOrderSeller(HttpServletResponse response, MessageOrderSellerQueryCriteria criteria) throws IOException {
//        messageOrderSellerService.download(messageOrderSellerService.queryAll(criteria), response);
//    }
    @GetMapping
    @ApiOperation("查询卖家端订单消息通知")
    @PreAuthorize("@el.check('messageOrderSeller:list')")
    public ResponseEntity<PageResult<MessageOrderSeller>> queryMessageOrderSeller(MessageOrderSellerQueryCriteria criteria){
    public R<PageResult<MessageOrderSeller>> queryMessageOrderSeller(MessageOrderSellerQueryCriteria criteria){
        Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
        return new ResponseEntity<>(messageOrderSellerService.queryAll(criteria,page),HttpStatus.OK);
//        return new ResponseEntity<>(messageOrderSellerService.queryAll(criteria,page),HttpStatus.OK);
        return R.success(messageOrderSellerService.queryAll(criteria,page));
    }
    @PostMapping
    @Log("新增卖家端订单消息通知")
    @ApiOperation("新增卖家端订单消息通知")
    @PreAuthorize("@el.check('messageOrderSeller:add')")
    public ResponseEntity<Object> createMessageOrderSeller(@Validated @RequestBody MessageOrderSeller resources){
        messageOrderSellerService.create(resources);
        return new ResponseEntity<>(HttpStatus.CREATED);
//    @PostMapping
//    @Log("新增卖家端订单消息通知")
//    @ApiOperation("新增卖家端订单消息通知")
//    @PreAuthorize("@el.check('messageOrderSeller:add')")
//    public ResponseEntity<Object> createMessageOrderSeller(@Validated @RequestBody MessageOrderSeller resources){
//        messageOrderSellerService.create(resources);
//        return new ResponseEntity<>(HttpStatus.CREATED);
//    }
//
//    @PutMapping
//    @Log("修改卖家端订单消息通知")
//    @ApiOperation("修改卖家端订单消息通知")
//    @PreAuthorize("@el.check('messageOrderSeller:edit')")
//    public ResponseEntity<Object> updateMessageOrderSeller(@Validated @RequestBody MessageOrderSeller resources){
//        messageOrderSellerService.update(resources);
//        return new ResponseEntity<>(HttpStatus.NO_CONTENT);
//    }
//
//    @DeleteMapping
//    @Log("删除卖家端订单消息通知")
//    @ApiOperation("删除卖家端订单消息通知")
//    @PreAuthorize("@el.check('messageOrderSeller:del')")
//    public ResponseEntity<Object> deleteMessageOrderSeller(@ApiParam(value = "传ID数组[]") @RequestBody List<Integer> ids) {
//        messageOrderSellerService.deleteAll(ids);
//        return new ResponseEntity<>(HttpStatus.OK);
//    }
//    //订单状态变化通知
//    @GetMapping("/status/{order_id}")
//    @ApiOperation("查询一条订单状态变化通知")
//    public R<String> getMessageOrderSeller(@PathVariable Integer order_id) {
//        MessageOrderSeller messageOrderSeller = messageOrderSellerService.findByOrderId(order_id);
//        String message = messageOrderSeller.getMessageType();
//
////        return new ResponseEntity<>(message, HttpStatus.OK);
//        return R.success(message);
//    }
    //根据store_id 返回list订单状态变化通知
    @GetMapping("/status/store/{store_id}")
    @ApiOperation("根据store_id 返回list订单状态变化通知")
    public R<List<MessageOrderSellerDTO>> getMessageOrderSeller(@PathVariable String store_id) {
         List<MessageOrderSeller> messageOrderSeller = messageOrderSellerService.findByStoreId(store_id);
         //转换为MessageOrderSellerDTO huto tools
        List<MessageOrderSellerDTO> dtoList = BeanUtil.copyToList(messageOrderSeller, MessageOrderSellerDTO.class);
        //判断store_id存在
        if (messageOrderSeller == null) {
            return R.fail("store_id不存在");
        }else{return R.success(dtoList);}
    }
    //让前端标记已读
    //修改逻辑 主键为条件  而不是订单号,有些订单号可能重复 含多条信息 已弃用
//    @PostMapping("/readByorderid/{order_id}")
//    @ApiOperation("让前端标记已读 按条")
//    public R<String> getMessageOrderSellerRead(@PathVariable Integer order_id) {
//             if(messageOrderSellerService.updateMessageOrderSellerRead(order_id)){
//                 return R.success("已读");
//             }else{
//                 return R.fail("id不存在");
//             }
//    }
    //让前端标记已读   主键为条件
    @PostMapping("/read/{id}")
    @ApiOperation("标记单条消息为已读(按主键 id)")
    public R<String> markReadByPrimaryKey(@PathVariable Integer id) {
        boolean updated = messageOrderSellerService.updateReadStatusById(id);
        return updated ? R.success("已读") : R.fail("消息 id 不存在");
    }
    @Beta//重复值处理
    //让后端队友更新我的表
    @PostMapping("/update/seller")
    @ApiOperation("更新插入消息表")
    public R<String> updateMessageOrderSeller(@RequestBody MessageOrderSeller resources) {
        //插入一条数据
        if(messageOrderSellerService.saveMessageOrderSellerByOrderIdAndStoreId(resources))
            return R.success("更新成功");
        return R.fail("更新失败");
    }
    @PutMapping
    @Log("修改卖家端订单消息通知")
    @ApiOperation("修改卖家端订单消息通知")
    @PreAuthorize("@el.check('messageOrderSeller:edit')")
    public ResponseEntity<Object> updateMessageOrderSeller(@Validated @RequestBody MessageOrderSeller resources){
        messageOrderSellerService.update(resources);
        return new ResponseEntity<>(HttpStatus.NO_CONTENT);
    //订单送达通知
    @GetMapping("/deliver/{order_id}")
    @ApiOperation("查询一条订单送达通知")
    public R<String> getMessageOrderSellerDeliver(@PathVariable Integer order_id) {
        MessageOrderSeller messageOrderSeller = messageOrderSellerService.findByOrderId(order_id);
        String message = messageOrderSeller.getMessageType();
        //如果MessageType为订单送达,则返回message——content
        if (message.equals("买家下单")) {
            String messageContent = messageOrderSeller.getMessageContent();
//            return new ResponseEntity<>(messageContent, HttpStatus.OK);
            return R.success(messageContent);
        }else{
            //返回没送达
//            return new ResponseEntity<>("买家没下单", HttpStatus.OK);
            return R.fail("没送达");
        }
    }
    //实现点击跳转到订单详情
    @GetMapping("/link/{order_id}")
    @ApiOperation("点击跳转到订单详情")
    public R<String> getMessageOrderSellerLink(@PathVariable Integer order_id) {
        MessageOrderSeller messageOrderSeller = messageOrderSellerService.findByOrderId(order_id);
        String link = messageOrderSeller.getLink();
//        return new ResponseEntity<>(link, HttpStatus.OK);
        return R.success(link);
    }
    @DeleteMapping
    @Log("删除卖家端订单消息通知")
    @ApiOperation("删除卖家端订单消息通知")
    @PreAuthorize("@el.check('messageOrderSeller:del')")
    public ResponseEntity<Object> deleteMessageOrderSeller(@ApiParam(value = "传ID数组[]") @RequestBody List<Integer> ids) {
        messageOrderSellerService.deleteAll(ids);
        return new ResponseEntity<>(HttpStatus.OK);
    }
}