package com.yunzhupaas.message.service.impl;

import com.yunzhupaas.base.service.SuperServiceImpl;
import com.yunzhupaas.message.entity.SendConfigTemplateEntity;
import com.yunzhupaas.message.mapper.SendConfigTemplateMapper;
import com.yunzhupaas.message.model.sendmessageconfig.SendMessageConfigPagination;
import com.yunzhupaas.message.service.SendConfigTemplateService;
import com.yunzhupaas.permission.service.AuthorizeService;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

import com.yunzhupaas.util.*;

import java.util.List;

/**
 * 消息发送配置
 * 版本： V3.2.0
 * 版权： 深圳市乐程软件有限公司（http://www.szlecheng.cn）
 * 作者： 云筑产品开发平台组
 * 日期： 2022-08-19
 */
@Service
public class SendConfigTemplateServiceImpl extends SuperServiceImpl<SendConfigTemplateMapper, SendConfigTemplateEntity> implements SendConfigTemplateService {

    @Override
    public QueryWrapper<SendConfigTemplateEntity> getChild(SendMessageConfigPagination pagination, QueryWrapper<SendConfigTemplateEntity> sendConfigTemplateQueryWrapper) {
//        boolean pcPermission = false;
//        boolean appPermission = false;
//        boolean isPc = ServletUtil.getHeader("yunzhupaas-origin").equals("pc");
//        if (isPc) {
//        }

        return sendConfigTemplateQueryWrapper;
    }

    @Override
    public SendConfigTemplateEntity getInfo(String id) {
        QueryWrapper<SendConfigTemplateEntity> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda().eq(SendConfigTemplateEntity::getId, id);
        return this.getOne(queryWrapper);
    }

    @Override
    public List<SendConfigTemplateEntity> getDetailListByParentId(String id) {
        QueryWrapper<SendConfigTemplateEntity> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda().eq(SendConfigTemplateEntity::getSendConfigId, id);
        return this.list(queryWrapper);
    }

    @Override
    public List<SendConfigTemplateEntity> getConfigTemplateListByConfigId(String id) {
        QueryWrapper<SendConfigTemplateEntity> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda().eq(SendConfigTemplateEntity::getSendConfigId, id);
        queryWrapper.lambda().eq(SendConfigTemplateEntity::getEnabledMark, 1);
        return this.list(queryWrapper);
    }

    @Override
    public boolean isUsedAccount(String accountId) {
        QueryWrapper<SendConfigTemplateEntity> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda().eq(SendConfigTemplateEntity::getAccountConfigId, accountId);
        if (this.list(queryWrapper) != null && this.list(queryWrapper).size() > 0) {
            return true;
        } else {
            return false;
        }
    }

    @Override
    public boolean isUsedTemplate(String templateId) {
        QueryWrapper<SendConfigTemplateEntity> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda().eq(SendConfigTemplateEntity::getTemplateId, templateId);
        if (this.list(queryWrapper) != null && this.list(queryWrapper).size() > 0) {
            return true;
        } else {
            return false;
        }
    }
}

