package com.ruoyi.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.domain.ReviewDetails;
import com.ruoyi.domain.ReviewScene;
import com.ruoyi.domain.ReviewSceneChangeTask;
import com.ruoyi.mapper.ReviewSceneMapper;
import com.ruoyi.service.ReviewSceneService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Transactional
@Service
public class ReviewSceneServiceImpl extends ServiceImpl<ReviewSceneMapper, ReviewScene> implements ReviewSceneService {

    @Autowired
    private StrategyReviewSceneChangeContext strategyReviewSceneChangeContext;

    @Autowired
    private ReviewSceneMapper reviewSceneMapper;

    @Override
    public List<ReviewScene> findByDetailsList(List<ReviewDetails> reviewDetailsList) {
        return reviewSceneMapper.findByDetailsList(reviewDetailsList);
    }

    @Override
    public void change(ReviewSceneChangeTask reviewSceneChangeTask) {
        String operation = reviewSceneChangeTask.getOperation();
        strategyReviewSceneChangeContext.getResource(operation).doChange(reviewSceneChangeTask);
    }
}