package cn.hobbystocks.auc.web; import cn.hobbystocks.auc.common.core.domain.AjaxResult; import cn.hobbystocks.auc.common.user.UserUtils; import cn.hobbystocks.auc.domain.LotFans; import cn.hobbystocks.auc.request.LotFansTogglePageRequest; import cn.hobbystocks.auc.request.LotFansToggleRequest; import cn.hobbystocks.auc.response.FavoriteOperationResponse; import cn.hobbystocks.auc.response.LotFansResponse; import cn.hobbystocks.auc.service.LotFansService; import cn.hobbystocks.auc.vo.FansVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; import static cn.hobbystocks.auc.common.utils.PageUtils.startPage; @RestController @RequestMapping("/api/bid/fans") @Slf4j @Api(tags = "关注拍品相关接口") public class LotFansController { @Autowired private LotFansService lotFansService; /** * 收藏/取消收藏拍品 */ @ApiOperation(value = "收藏/取消收藏拍品", notes = "根据isLike参数进行收藏或取消收藏操作", response = FavoriteOperationResponse.class) @PostMapping("/toggle") public AjaxResult toggleFavorite(@RequestBody LotFansToggleRequest request) { Boolean result = lotFansService.toggleFavorite(request); if (Boolean.TRUE.equals(result)) { return AjaxResult.success(); } else { return AjaxResult.error(); } } /** * 查询用户收藏的拍品列表(分页) */ @ApiOperation(value = "查询用户收藏的拍品列表(分页)", notes = "分页查询当前用户收藏的拍品列表", response = LotFansResponse.class, responseContainer = "List") @PostMapping("/fansPage") public AjaxResult page(@RequestBody LotFansTogglePageRequest request) { startPage(request); List list = lotFansService.page(request); return AjaxResult.successPage(list); } @ApiOperation("检查当前用户是否关注了指定的拍卖品") @PostMapping("/isFans") public AjaxResult isFans(@RequestBody FansVO fansVO) { List lotFansList = lotFansService.selectLotFansList(LotFans.builder() .lotId(fansVO.getLotId()) .userId(UserUtils.getSimpleUserInfo().getId().longValue()) .type("user_like") .build()); return AjaxResult.success(!CollectionUtils.isEmpty(lotFansList)); } }