package cn.timer.api.controller.disk;

import cn.timer.api.bean.disk.DiskFilesLog;
import cn.timer.api.bean.disk.DiskReceived;
import cn.timer.api.bean.disk.DiskShare;
import cn.timer.api.config.annotation.CurrentUser;
import cn.timer.api.config.annotation.UserBean;
import cn.timer.api.dao.disk.DiskReceivedMapper;
import cn.timer.api.dto.disk.DiskFilesDto;
import cn.timer.api.utils.Result;
import cn.timer.api.utils.ResultUtil;
import com.github.pagehelper.ISelect;
import com.github.pagehelper.PageHelper;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.transaction.Transactional;
import java.util.List;


/**
 * 云盘-文件接收表
 * 
 * @author wuqingjun
 * @email 284718418@qq.com
 * @date 2021-12-27 10:05:49
 */
@Api(tags = "云盘")
@Transactional(rollbackOn = Exception.class)
@RestController
@RequestMapping("diskreceived")
public class DiskReceivedController{

    @Autowired
    private DiskReceivedMapper diskReceivedMapper;

    /**
     * 云盘-我收到的
     *
     * @param userBean
     * @return
     */
    @GetMapping(value = "/received_file_list")
    @ApiOperation(value = "13.我收到的", httpMethod = "GET", notes = "云盘-我收到的")
    @ApiOperationSupport(order = 13)
    public Result<List<DiskFilesDto>> receivedFileList(@CurrentUser UserBean userBean,
                                                     @ApiParam("当前页") @RequestParam(required = false, defaultValue = "1") Integer pageNum,
                                                     @ApiParam("每页条数") @RequestParam(required = false, defaultValue = "10") Integer pageSize,
                                                     @ApiParam("搜索关键字") @RequestParam(required = false) String query) {
        Integer empNum = userBean.getEmpNum();
        Integer orgCode = userBean.getOrgCode();

        DiskReceived diskReceived = new DiskReceived();
        diskReceived.setTitle(query);
        diskReceived.setUserId(empNum);

        List<DiskFilesDto> diskReceiveds = diskReceivedMapper.queryDiskReceived(diskReceived,orgCode,pageNum,pageSize);

        long total = PageHelper.count(new ISelect() {
            @Override
            public void doSelect() {
                diskReceivedMapper.queryDiskReceived(diskReceived,orgCode,pageNum,pageSize);
            }
        });

        return ResultUtil.pageData(diskReceiveds,total, "查询成功");
    }

    /**
     * 云盘-移除我收到的文件-我收到的文件id
     */
    @DeleteMapping(value = "/remove_received_file/{id}")
    @ApiOperation(value = "14.云盘-移除我收到的文件-我收到的文件id", httpMethod = "DELETE", notes = "云盘-移除我收到的文件-我收到的文件id")
    @ApiOperationSupport(order = 14)
    public Result<Object> removeReceivedFile(@PathVariable Integer id){

        DiskReceived.builder().id(id).deleteFlag(1).build().updateById();
        return ResultUtil.success();
    }

}