package io.renren.modules.sys.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import io.renren.common.utils.PageUtils;
import io.renren.modules.sys.dao.algs.AlgorithmMapper;
import io.renren.modules.sys.dao.algs.AlgorithmVoMapper;
import io.renren.modules.sys.dao.algs.FileTestMapper;
import io.renren.modules.sys.entity.algs.Algorithm;
import io.renren.modules.sys.entity.algs.Algorithm_Vo;
import io.renren.modules.sys.entity.algs.FileTest;
import io.renren.modules.sys.service.AlgsService;
import io.renren.modules.sys.service.CategoryService;
import io.renren.modules.sys.service.FileTestService;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.Arrays;
import java.util.List;
import java.util.Map;

/**
 * @Author: Ivan Q
 * @Date: 2021/7/12 9:54
 */

@Service("filetestservice")
public class FileTestServiceImpl extends ServiceImpl<FileTestMapper, FileTest> implements FileTestService {

    @Autowired
//    AlgorithmVoMapper algorithmVoMapper;
    FileTestMapper fileTestMapper;



    //获取模板列表,使用的是@select连表查询
    //但是怎么把搜索功能加进去呢？？？？
    @Override
    public PageUtils queryPageOnUse(Map<String, Object> params) {
        //获取当前登录的用户,如果是管理员的话，uid就为null
        //Long uid = (Long) params.get("currentUserId");
        List<FileTest> fileInfo;
        List<FileTest> fileAllInfo;
        int pageSize = Integer.valueOf((String) params.get("limit"));
        int pageIndex = Integer.valueOf((String) params.get("page"));

//        此方法如果修改,则也需要修改下面的获取总页数的方法
        fileInfo = fileTestMapper.getFileInfo(new QueryWrapper<FileTest>()
                        //根据登录的用户展示他自己的模板
                        //.eq(uid != null, "uid", uid)
//                使用limit用于分页,下面的函数没有limit进行分页
                        .last("limit " + (pageIndex - 1) * pageSize + "," + pageSize + ";")
        );

        //用于查全部，获取总页数。
        fileAllInfo = fileTestMapper.getFileInfo(new QueryWrapper<FileTest>()
                //根据登录的用户展示他自己的模板
                //.eq(uid != null, "uid", uid)
        );

        //弃用的方法
        //这个方法：根据当前登录的用户id返回只有当前用户的数据，但是没有结合搜索框搜索
        //templateInfo = algorithmTemplateVoMapper.getTemplateInfoById(uid);
        return new PageUtils(fileInfo, fileAllInfo.size(), pageSize, pageIndex);

    }

    @Override
    public void deleteBatch(Long[] alglIds) {
        this.removeByIds(Arrays.asList(alglIds));
    }

    @Override
    public Long querycategoryId(Long algId) {
        return null;
    }


    @Override
    @Transactional
    public void update(FileTest alg) {
        this.updateById(alg);
    }

    @Override
    public FileTest selectByPrimaryKey(Long fileid) {
        return fileTestMapper.selectByPrimaryKey(fileid);
    }


}
