//package com.liquidnet.service.adam.controller;
//
//import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
//import com.github.xiaoymin.knife4j.annotations.ApiSupport;
//import com.liquidnet.commons.lang.util.CurrentUtil;
//import com.liquidnet.service.adam.dto.vo.AdamDisposedBaseVo;
//import com.liquidnet.service.adam.dto.vo.AdamDisposedUserVo;
//import com.liquidnet.service.adam.dto.vo.AdamDisposedVo;
//import com.liquidnet.service.adam.service.IAdamDisposedService;
//import com.liquidnet.service.base.PagedResult;
//import com.liquidnet.service.base.ResponseDto;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiImplicitParam;
//import io.swagger.annotations.ApiImplicitParams;
//import io.swagger.annotations.ApiOperation;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.*;
//
//import javax.validation.constraints.NotBlank;
//import javax.validation.constraints.Pattern;
//import javax.validation.constraints.Size;
//
///**
// * <p>
// * 收藏 前端控制器
// * </p>
// *
// * @author liquidnet
// * @since 2021-05-10
// */
//@ApiSupport(order = 10070)
//@Api(tags = "想去")
//@Slf4j
//@RestController
//@RequestMapping("disposed")
//public class AdamDisposedController {
//    @Autowired
//    IAdamDisposedService adamDisposedService;
//
//    @ApiOperationSupport(order = 1)
//    @ApiOperation(value = "添加想去")
//    @ApiImplicitParams({
//            @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "想去类型[TICKET,VIDEO]", allowableValues = "TICKET,VIDEO"),
//            @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "contentId", value = "内容ID[1,64]"),
//    })
//    @PostMapping("add")
//    public ResponseDto<Object> add(@Pattern(regexp = "\\b(TICKET|VIDEO)\\b", message = "想去类型无效")
//                                   @RequestParam String type,
//                                   @Size(min = 1, max = 64, message = "内容ID长度限制1-64位")
//                                   @RequestParam String contentId) {
//        String currentUid = CurrentUtil.getCurrentUid();
//
//        if (adamDisposedService.exists(currentUid, type, contentId)) {
//            return ResponseDto.success();
//        }
//
//        AdamDisposedBaseVo disposedBaseVo = AdamDisposedBaseVo.getNew();
//        disposedBaseVo.setType(type);
//        disposedBaseVo.setContentId(contentId);
//        disposedBaseVo.setUid(currentUid);
//
//        adamDisposedService.add(disposedBaseVo);
//
//        return ResponseDto.success();
//    }
//
//    @ApiOperationSupport(order = 2)
//    @ApiOperation(value = "删除想去")
//    @ApiImplicitParams({
//            @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "收藏类型", allowableValues = "TICKET,VIDEO"),
//            @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "contentIds", value = "内容ID[多个ID用','分隔]"),
//    })
//    @PostMapping("del")
//    public ResponseDto<Object> del(@Pattern(regexp = "\\b(TICKET|VIDEO)\\b", message = "想去类型无效")
//                                   @RequestParam String type,
//                                   @NotBlank(message = "内容ID不能为空") @RequestParam String contentIds) {
//        adamDisposedService.del(CurrentUtil.getCurrentUid(), type, contentIds.split(","));
//
//        return ResponseDto.success();
//    }
//
//    @ApiOperationSupport(order = 3)
//    @ApiOperation(value = "想去列表")
//    @ApiImplicitParams({
//            @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "收藏类型", allowableValues = "TICKET,VIDEO"),
//            @ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "pageNo", value = "页码", example = "1"),
//            @ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "pageSize", value = "页展示条数", example = "5"),
//    })
//    @PostMapping("list")
//    public ResponseDto<PagedResult<AdamDisposedVo>> list(@Pattern(regexp = "\\b(TICKET|VIDEO)\\b", message = "想去类型无效")
//                                                         @RequestParam String type,
//                                                         @RequestParam(defaultValue = "1", required = false) int pageNo,
//                                                         @RequestParam(defaultValue = "5", required = false) int pageSize) {
//        pageNo = pageNo > 0 ? pageNo : 1;
//        pageSize = pageSize <= 0 || pageSize > 10 ? 10 : pageSize;
//
//        return ResponseDto.success(adamDisposedService.queryPage(CurrentUtil.getCurrentUid(), type, pageNo, pageSize));
//    }
//
//    @ApiOperationSupport(order = 4)
//    @ApiOperation(value = "想去用户列表")
//    @ApiImplicitParams({
//            @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "收藏类型", allowableValues = "TICKET,VIDEO"),
//            @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "contentId", value = "内容ID[1,64]"),
//            @ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "pageNo", value = "页码", example = "1"),
//            @ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "pageSize", value = "页展示条数", example = "10"),
//    })
//    @PostMapping("list/user")
//    public ResponseDto<PagedResult<AdamDisposedUserVo>> listUser(@Pattern(regexp = "\\b(TICKET|VIDEO)\\b", message = "想去类型无效")
//                                                                 @RequestParam String type,
//                                                                 @Size(min = 1, max = 64, message = "内容ID长度限制1-64位")
//                                                                 @RequestParam String contentId,
//                                                                 @RequestParam(defaultValue = "1", required = false) int pageNo,
//                                                                 @RequestParam(defaultValue = "10", required = false) int pageSize) {
//        pageNo = pageNo > 0 ? pageNo : 1;
//        pageSize = pageSize <= 0 || pageSize > 20 ? 20 : pageSize;
//
//        return ResponseDto.success(adamDisposedService.queryDisposedUsers(type, contentId, pageNo, pageSize));
//    }
//
//    @ApiOperationSupport(order = 5)
//    @ApiOperation(value = "获取想去状态")
//    @ApiImplicitParams({
//            @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "收藏类型", allowableValues = "TICKET"),
//            @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "contentId", value = "内容ID[64]"),
//    })
//    @GetMapping("state")
//    public ResponseDto<Boolean> state(@Pattern(regexp = "\\b(TICKET|VIDEO)\\b", message = "想去类型无效")
//                                      @RequestParam String type,
//                                      @Size(min = 1, max = 64, message = "内容ID长度限制1-64位")
//                                      @RequestParam String contentId) {
//        return ResponseDto.success(adamDisposedService.queryState(CurrentUtil.getCurrentUid(), type, contentId));
//    }
//}
