package com.pnkx.service.impl;

import com.pnkx.common.utils.DateUtils;
import com.pnkx.domain.po.PxToDo;
import com.pnkx.mapper.PxToDoMapper;
import com.pnkx.service.IPxToDoService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

/**
 * 待办事项Service业务层处理
 *
 * @author phy
 * @date 2021-04-13
 */
@Service
public class PxToDoServiceImpl implements IPxToDoService {

    @Resource
    private PxToDoMapper pxToDoMapper;

    /**
     * 查询待办事项
     *
     * @param id 待办事项ID
     * @return 待办事项
     */
    @Override
    public PxToDo selectPxToDoById(Long id) {
        return pxToDoMapper.selectPxToDoById(id);
    }

    /**
     * 查询待办事项列表
     *
     * @param pxToDo 待办事项
     * @return 待办事项
     */
    @Override
    public List<PxToDo> selectPxToDoList(PxToDo pxToDo) {
        return pxToDoMapper.selectPxToDoList(pxToDo);
    }

    /**
     * 新增待办事项
     *
     * @param pxToDo 待办事项
     * @return 结果
     */
    @Override
    public int insertPxToDo(PxToDo pxToDo) {
        pxToDo.setCreateTime(DateUtils.getNowDate());
        return pxToDoMapper.insertPxToDo(pxToDo);
    }

    /**
     * 修改待办事项
     *
     * @param pxToDo 待办事项
     * @return 结果
     */
    @Override
    public int updatePxToDo(PxToDo pxToDo) {
        pxToDo.setUpdateTime(DateUtils.getNowDate());
        return pxToDoMapper.updatePxToDo(pxToDo);
    }

    /**
     * 批量删除待办事项
     *
     * @param ids 需要删除的待办事项ID
     * @return 结果
     */
    @Override
    public int deletePxToDoByIds(Long[] ids) {
        return pxToDoMapper.deletePxToDoByIds(ids);
    }

    /**
     * 删除待办事项信息
     *
     * @param id 待办事项ID
     * @return 结果
     */
    @Override
    public int deletePxToDoById(Long id) {
        return pxToDoMapper.deletePxToDoById(id);
    }

    /**
     * 获取待办事项标签列表
     * @return
     */
    @Override
    public List<String> getLabelList() {
        List<String> result = new ArrayList<>();
        List<String> labelList = pxToDoMapper.getLabelList();
        labelList.forEach(item -> {
            String[] split = item.split(",");
            for (String s : split) {
                if (!result.contains(s)) {
                    result.add(s);
                }
            }
        });
        return result;
    }
}
