package cn.lili.controller.im; import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.ResultUtil; import cn.lili.common.exception.ServiceException; import cn.lili.common.vo.ResultMessage; import cn.lili.modules.im.entity.dos.ImMessage; import cn.lili.modules.im.entity.dto.MessageQueryParams; import cn.lili.modules.im.service.ImMessageService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import java.util.List; /** * @author Chopper */ @RestController @Api(tags = "Im消息接口") @RequestMapping("/im/message") @Transactional(rollbackFor = Exception.class) @RequiredArgsConstructor(onConstructor = @__(@Autowired)) public class ImMessageController { private final ImMessageService imMessageService; @GetMapping(value = "/{id}") @ApiOperation(value = "查看Im消息详情") public ResultMessage get(@PathVariable String id) { ImMessage imMessage = imMessageService.getById(id); return ResultUtil.data(imMessage); } @GetMapping @ApiOperation(value = "分页获取Im消息") public ResultMessage> historyMessage(MessageQueryParams messageQueryParams) { List data = imMessageService.getList(messageQueryParams); return ResultUtil.data(data); } @PostMapping @ApiOperation(value = "新增Im消息") public ResultMessage save(ImMessage imMessage) { if (imMessageService.save(imMessage)) { return ResultUtil.data(imMessage); } throw new ServiceException(ResultCode.IM_MESSAGE_ADD_ERROR); } @PutMapping("/{id}") @ApiOperation(value = "更新Im消息") public ResultMessage update(@PathVariable String id, ImMessage imMessage) { if (imMessageService.updateById(imMessage)) { return ResultUtil.data(imMessage); } throw new ServiceException(ResultCode.IM_MESSAGE_EDIT_ERROR); } @DeleteMapping(value = "/{ids}") @ApiOperation(value = "删除Im消息") public ResultMessage delAllByIds(@PathVariable List ids) { imMessageService.removeByIds(ids); return ResultUtil.success(); } @GetMapping(value = "/newMessage") @ApiOperation(value = "查看是否有新消息") public ResultMessage hasNewMessage(String accessToken) { return ResultUtil.data(imMessageService.hasNewMessage(accessToken)); } @GetMapping(value = "/unreadMessage") @ApiOperation(value = "获取所有未读消息") public ResultMessage getUnreadMessageCount() { return ResultUtil.data(imMessageService.unreadMessageCount()); } @PutMapping(value = "/clean/unred") @ApiOperation(value = "清除所有未读消息") public ResultMessage cleanUnreadMessage() { imMessageService.cleanUnreadMessage(); return ResultUtil.success(); } }