package com.ruoyi.cs.service.impl;

import java.util.List;

import cn.hutool.core.util.IdUtil;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.cs.domain.CsResourceOrderApply;
import com.ruoyi.cs.domain.dto.CsEvaluateAddDTO;
import com.ruoyi.cs.mapper.CsResourceOrderApplyMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.cs.mapper.CsEvaluateMapper;
import com.ruoyi.cs.domain.CsEvaluate;
import com.ruoyi.cs.service.ICsEvaluateService;

import javax.annotation.Resource;

/**
 * 服务评价Service业务层处理
 *
 * @author ruoyi
 * @date 2024-05-28
 */
@Service
public class CsEvaluateServiceImpl implements ICsEvaluateService
{
    @Resource
    private CsEvaluateMapper csEvaluateMapper;
    @Resource
    private CsResourceOrderApplyMapper csResourceOrderApplyMapper;

    /**
     * 查询服务评价
     *
     * @param evaluateId 服务评价主键
     * @return 服务评价
     */
    @Override
    public CsEvaluate selectCsEvaluateByEvaluateId(String evaluateId)
    {
        return csEvaluateMapper.selectCsEvaluateByEvaluateId(evaluateId);
    }

    /**
     * 查询服务评价列表
     *
     * @param csEvaluate 服务评价
     * @return 服务评价
     */
    @Override
    public List<CsEvaluate> selectCsEvaluateList(CsEvaluate csEvaluate)
    {
        return csEvaluateMapper.selectCsEvaluateList(csEvaluate);
    }

    /**
     * 新增服务评价
     *
     * @param csEvaluate 服务评价
     * @return 结果
     */
    @Override
    public int insertCsEvaluate(CsEvaluate csEvaluate)
    {
        csEvaluate.setEvaluateId(IdUtil.getSnowflakeNextIdStr());
        csEvaluate.setCreateAt(DateUtils.getTime());
        csEvaluate.setDelFlag("0");
        return csEvaluateMapper.insertCsEvaluate(csEvaluate);
    }

    /**
     * 修改服务评价
     *
     * @param csEvaluate 服务评价
     * @return 结果
     */
    @Override
    public int updateCsEvaluate(CsEvaluate csEvaluate)
    {
        csEvaluate.setUpdateAt(DateUtils.getTime());
        return csEvaluateMapper.updateCsEvaluate(csEvaluate);
    }

    /**
     * 批量删除服务评价
     *
     * @param evaluateIds 需要删除的服务评价主键
     * @return 结果
     */
    @Override
    public int deleteCsEvaluateByEvaluateIds(String[] evaluateIds)
    {
        return csEvaluateMapper.deleteCsEvaluateByEvaluateIds(evaluateIds);
    }

    /**
     * 删除服务评价信息
     *
     * @param evaluateId 服务评价主键
     * @return 结果
     */
    @Override
    public int deleteCsEvaluateByEvaluateId(String evaluateId)
    {
        return csEvaluateMapper.deleteCsEvaluateByEvaluateId(evaluateId);
    }

    /**
     * 查询服务评价
     *
     * @param resId 资源或工单ID
     * @return 服务评价
     */
    @Override
    public CsEvaluate selectCsEvaluateByResId(String resId) {
        return csEvaluateMapper.selectCsEvaluateByResId(resId);
    }

    /**
     * 新增服务评价
     *
     * @param csEvaluateAddDTO 服务评价
     * @return 结果
     */
    @Override
    public int insertCsEvaluateAddDTO(CsEvaluateAddDTO csEvaluateAddDTO) {
        CsEvaluate csEvaluate = new CsEvaluate();
        csEvaluate.setEvaluateId(IdUtil.getSnowflakeNextIdStr());
        csEvaluate.setCreateAt(DateUtils.getTime());
        csEvaluate.setDelFlag("0");
        csEvaluate.setResId(csEvaluateAddDTO.getResId());
        csEvaluate.setEvaluateStar(csEvaluateAddDTO.getEvaluateStar());
        csEvaluate.setContent(csEvaluateAddDTO.getContent());

        CsResourceOrderApply csResourceOrderApply = new CsResourceOrderApply();
        csResourceOrderApply.setApplyId(csEvaluateAddDTO.getResId());
        csResourceOrderApply.setEvaluateStar(csEvaluateAddDTO.getEvaluateStar());
        csResourceOrderApplyMapper.updateCsResourceOrderApply(csResourceOrderApply);
        return csEvaluateMapper.insertCsEvaluate(csEvaluate);
    }
}
