package com.fs.qw.service.impl;

import com.fs.common.core.domain.R;
import com.fs.common.utils.DateUtils;
import com.fs.qw.domain.QwAutoTags;
import com.fs.qw.mapper.QwAutoTagsLogsMapper;
import com.fs.qw.mapper.QwAutoTagsMapper;
import com.fs.qw.mapper.QwAutoTagsRulesMapper;
import com.fs.qw.param.QwAutoTagsParam;
import com.fs.qw.service.IQwAutoTagsService;
import com.fs.qw.vo.QwAutoTagsVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 自动打标签主Service业务层处理
 *
 * @author fs
 * @date 2024-07-20
 */
@Service
public class QwAutoTagsServiceImpl implements IQwAutoTagsService
{
    @Autowired
    private QwAutoTagsMapper qwAutoTagsMapper;

    @Autowired
    private QwAutoTagsLogsMapper qwAutoTagsLogsMapper;

    @Autowired
    private QwAutoTagsRulesMapper qwAutoTagsRulesMapper;

    /**
     * 查询自动打标签主
     *
     * @param id 自动打标签主主键
     * @return 自动打标签主
     */
    @Override
    public QwAutoTags selectQwAutoTagsById(Long id)
    {
        return qwAutoTagsMapper.selectQwAutoTagsById(id);
    }

    /**
     *  主表已经算是详情了。这里就查logs历史记录
     * @Author sgw
     * @Date 2024/7/25 23:01
     **/
    @Override
    public R selectQwAutoTagsByIdVO(Long id) {

        QwAutoTagsVO qwAutoTagsVO = qwAutoTagsMapper.selectQwAutoTagsByIdVO(id);
//        List<QwAutoTagsLogs> qwAutoTagsLogs = qwAutoTagsLogsMapper.selectQwAutoTagsLogsByIdVO(id);
        return R.ok().put("autoTags",qwAutoTagsVO);
    }

    /**
     * 查询自动打标签主列表
     *
     * @param qwAutoTags 自动打标签主
     * @return 自动打标签主
     */
    @Override
    public List<QwAutoTags> selectQwAutoTagsList(QwAutoTags qwAutoTags)
    {
        return qwAutoTagsMapper.selectQwAutoTagsList(qwAutoTags);
    }

    @Override
    public List<QwAutoTagsVO> selectQwAutoTagsListVO(QwAutoTagsParam qwAutoTags) {

        return qwAutoTagsMapper.selectQwAutoTagsListVO(qwAutoTags);
    }

    @Override
    public List<QwAutoTagsVO> selectQwAutoTagsListMyVO(QwAutoTags qwAutoTags) {
        return qwAutoTagsMapper.selectQwAutoTagsListMyVO(qwAutoTags);
    }

    /**
     * 新增自动打标签主
     *
     * @param qwAutoTags 自动打标签主
     * @return 结果
     */
    @Override
    public int insertQwAutoTags(QwAutoTags qwAutoTags)
    {
        qwAutoTags.setCreateTime(DateUtils.getNowDate());

        //单存群规则（暂时不用）
//        if (qwAutoTags.getType()==2){
//            List<QwAutoRulesTagsParams> qwAutoRulesTagsParams = JSON.parseArray(qwAutoTags.getRulesTags(), QwAutoRulesTagsParams.class);
//            qwAutoRulesTagsParams.forEach(item->{
//                QwAutoTagsRules qwAutoTagsRules=new QwAutoTagsRules();
//
//                qwAutoTagsRules.setAutoTagsId(qwAutoTags.getId());
//                qwAutoTagsRules.setTags(JSON.toJSONString(item.getTags()));
//                qwAutoTagsRules.setRules(JSON.toJSONString(item.getRules()));
//                qwAutoTagsRules.setType(2L);
//                qwAutoTagsRules.setCompanyId(qwAutoTags.getCompanyId());
//                qwAutoTagsRules.setIsApply(qwAutoTagsRules.getIsApply());
//
//                qwAutoTagsRulesMapper.insertQwAutoTagsRules(qwAutoTagsRules);
//
//            });
//
//        }
        return qwAutoTagsMapper.insertQwAutoTags(qwAutoTags);
    }

    /**
     * 修改自动打标签主
     *
     * @param qwAutoTags 自动打标签主
     * @return 结果
     */
    @Override
    public int updateQwAutoTags(QwAutoTags qwAutoTags)
    {
        return qwAutoTagsMapper.updateQwAutoTags(qwAutoTags);
    }

    /**
     * 批量删除自动打标签主
     *
     * @param ids 需要删除的自动打标签主主键
     * @return 结果
     */
    @Override
    public int deleteQwAutoTagsByIds(Long[] ids)
    {
        //暂存 暂时不用
//        qwAutoTagsRulesMapper.deleteQwAutoTagsRulesByAutoTagsId(ids);
        return qwAutoTagsMapper.deleteQwAutoTagsByIds(ids);
    }

    /**
     * 删除自动打标签主信息
     *
     * @param id 自动打标签主主键
     * @return 结果
     */
    @Override
    public int deleteQwAutoTagsById(Long id)
    {
        return qwAutoTagsMapper.deleteQwAutoTagsById(id);
    }

    @Override
    public QwAutoTags selectQwAutoTagsByChatIdJSON(String corpId, String CharId) {
        return qwAutoTagsMapper.selectQwAutoTagsByChatIdJSON(corpId,CharId);
    }
}
