package com.securitycontrol.background.service.impl;

import com.securitycontrol.background.mapper.TaskCheckMapper;
import com.securitycontrol.background.service.TaskCheckService;
import com.securitycontrol.common.core.domain.Result;
import com.securitycontrol.common.core.utils.aes.StringHelper;
import com.securitycontrol.entity.background.dto.ClassCheckDto;
import com.securitycontrol.entity.background.vo.ClassCheckVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

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

/**
 * 任务分配业务 接口处理层
 * @author 黑子
 */
@Service
@Slf4j
public class TaskCheckServiceImpl  implements TaskCheckService {

    @Resource
    private TaskCheckMapper mapper;

    /**
     * 查询 用户付呢陪细腻系
     * @param dto
     * @return
     */
    @Override
    public List<ClassCheckVo> getPageList(ClassCheckDto dto) {
        return mapper.getPageList(dto);

    }

    /**
     * 查询已分配的数据 集合
     * @param dto
     * @return
     */
    @Override
    public List<ClassCheckVo> getClassList(ClassCheckDto dto) {
        return mapper.getClassList(dto);
    }

    /**
     * 对任务进行分配
     * @param dto
     * @return
     */
    @Override
    public Result<String> dutyFpClass(ClassCheckDto dto) {
       try{
            if(StringHelper.isEmpty(dto.getClassIds())){
                return Result.fail("未选择任务");
            }
            List<String>  classIds= Arrays.asList(dto.getClassIds().split("@"));
               classIds.forEach(classId->{
                   mapper.replaceCheck(dto.getUserId(),classId);
               });
           return Result.ok("分配成功");
       }catch (Exception e){
           log.error(e.toString(),e);
           return Result.fail("任务分配失败");
       }
    }

    @Override
    public Result<String> delTask(ClassCheckDto dto) {
        try{
            if(StringHelper.isEmpty(dto.getClassIds())){
                return Result.fail("未选择任务");
            }
            List<String>  classIds= Arrays.asList(dto.getClassIds().split("@"));
            classIds.forEach(classId->{
                mapper.delTask(dto.getUserId(),classId);
            });
            return Result.ok("移除成功");
        }catch (Exception e){
            log.error(e.toString(),e);
            return Result.fail("任务移除失败");
        }
    }

    @Override
    public Result<String> delAllTask(ClassCheckDto dto) {
        try{
            mapper.delAllTask(dto.getUserId());
            return Result.ok("移除成功");
        }catch (Exception e){
            log.error(e.toString(),e);
            return Result.fail("任务移除失败");
        }
    }


}
