package com.ruoyi.cs.service.impl;

import java.util.ArrayList;
import java.util.List;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.cs.domain.vo.CsSetTemplateVO;
import org.springframework.stereotype.Service;
import com.ruoyi.cs.mapper.CsSetTemplateMapper;
import com.ruoyi.cs.domain.CsSetTemplate;
import com.ruoyi.cs.service.ICsSetTemplateService;
import javax.annotation.Resource;

/**
 * 模版设置Service业务层处理
 *
 * @author ruoyi
 * @date 2024-06-21
 */
@Service
public class CsSetTemplateServiceImpl implements ICsSetTemplateService
{
    @Resource
    private CsSetTemplateMapper csSetTemplateMapper;

    /**
     * 查询模版设置
     *
     * @param templateId 模版设置主键
     * @return 模版设置
     */
    @Override
    public CsSetTemplate selectCsSetTemplateByTemplateId(String templateId)
    {
        return csSetTemplateMapper.selectCsSetTemplateByTemplateId(templateId);
    }

    /**
     * 查询模版设置列表
     *
     * @param csSetTemplate 模版设置
     * @return 模版设置
     */
    @Override
    public List<CsSetTemplate> selectCsSetTemplateList(CsSetTemplate csSetTemplate)
    {
        return csSetTemplateMapper.selectCsSetTemplateList(csSetTemplate);
    }

    /**
     * 新增模版设置
     *
     * @param csSetTemplate 模版设置
     * @return 结果
     */
    @Override
    public int insertCsSetTemplate(CsSetTemplate csSetTemplate)
    {
        csSetTemplate.setTemplateId(IdUtils.fastSimpleUUID());
        csSetTemplate.setCreateAt(DateUtils.getNowDate());
        csSetTemplate.setDelFlag("0");
        return csSetTemplateMapper.insertCsSetTemplate(csSetTemplate);
    }

    /**
     * 修改模版设置
     *
     * @param csSetTemplate 模版设置
     * @return 结果
     */
    @Override
    public int updateCsSetTemplate(CsSetTemplate csSetTemplate)
    {
        csSetTemplate.setUpdateAt(DateUtils.getNowDate());
        return csSetTemplateMapper.updateCsSetTemplate(csSetTemplate);
    }

    /**
     * 批量删除模版设置
     *
     * @param templateIds 需要删除的模版设置主键
     * @return 结果
     */
    @Override
    public int deleteCsSetTemplateByTemplateIds(String[] templateIds)
    {
        return csSetTemplateMapper.deleteCsSetTemplateByTemplateIds(templateIds);
    }

    /**
     * 删除模版设置信息
     *
     * @param templateId 模版设置主键
     * @return 结果
     */
    @Override
    public int deleteCsSetTemplateByTemplateId(String templateId)
    {
        return csSetTemplateMapper.deleteCsSetTemplateByTemplateId(templateId);
    }

    /**
     * 查询模版设置
     *
     * @param formValue 模版设置主键
     * @return 模版设置
     */
    @Override
    public CsSetTemplate getInfoByFormValue(String formValue) {
        return csSetTemplateMapper.getInfoByFormValue(formValue);
    }

    /**
     * 根据模板值查询模板内容
     *
     * @param formValue
     * @return
     */
    @Override
    public List<CsSetTemplateVO> searchTemplateContentByFormValue(String formValue){
        List<CsSetTemplateVO> csSetTemplateVOList = new ArrayList<>();
        String templateContent = csSetTemplateMapper.searchTemplateContentByFormValue(formValue);
        if(templateContent != null){
            JSONObject jsonObject = JSON.parseObject(templateContent);
            CsSetTemplateVO csSetTemplateVO = null;
            JSONObject object = null;
            String str = "";
            for (String key : jsonObject.keySet()) {
                str = jsonObject.getString(key);
                if(str.contains(":")){
                    object = JSON.parseObject(str);
                    if(object.getBoolean("isShow") != null){
                        csSetTemplateVO = new CsSetTemplateVO();
                        csSetTemplateVO.setAttributeValue(key);
                        csSetTemplateVO.setShow(object.getBoolean("isShow"));
                        csSetTemplateVOList.add(csSetTemplateVO);
                    }
                }
            }
        }
        return csSetTemplateVOList;
    }

}
