package com.starry.admin.modules.commodity.service.impl;

import com.starry.common.utils.IdUtils;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.starry.admin.modules.commodity.mapper.PlayServiceInfoMapper;
import com.starry.admin.modules.commodity.module.entity.PlayServiceInfoEntity;
import com.starry.admin.modules.commodity.service.IPlayServiceInfoService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;

/**
 * 服务项目列表Service业务层处理
 *
 * @author admin
 * @since 2024-03-28
 */
@Service
public class PlayServiceInfoServiceImpl extends ServiceImpl<PlayServiceInfoMapper, PlayServiceInfoEntity> implements IPlayServiceInfoService {
    @Resource
    private PlayServiceInfoMapper playServiceInfoMapper;


    /**
     * 查询服务项目列表
     *
     * @param id 服务项目列表主键
     * @return 服务项目列表
     */
    @Override
    public PlayServiceInfoEntity selectPlayServiceInfoById(String id) {
        return this.baseMapper.selectById(id);
    }


    @Override
    public List<PlayServiceInfoEntity> selectPlayServiceInfoAll() {
        return this.baseMapper.selectList(new LambdaQueryWrapper<>());
    }

    /**
     * 查询服务项目列表列表
     *
     * @param playServiceInfo 服务项目列表
     * @return 服务项目列表
     */
    @Override
    public IPage<PlayServiceInfoEntity> selectPlayServiceInfoByPage(PlayServiceInfoEntity playServiceInfo) {
        Page<PlayServiceInfoEntity> page = new Page<>(1, 10);
        return this.baseMapper.selectPage(page, new LambdaQueryWrapper<>());
    }

    /**
     * 新增服务项目列表
     *
     * @param playServiceInfo 服务项目列表
     * @return 结果
     */
    @Override
    public boolean create(PlayServiceInfoEntity playServiceInfo) {
        if (StrUtil.isBlankIfStr(playServiceInfo.getId())) {
            playServiceInfo.setId(IdUtils.getUuid());
        }
        return save(playServiceInfo);
    }

    /**
     * 修改服务项目列表
     *
     * @param playServiceInfo 服务项目列表
     * @return 结果
     */
    @Override
    public boolean update(PlayServiceInfoEntity playServiceInfo) {
        return updateById(playServiceInfo);
    }

    /**
     * 批量删除服务项目列表
     *
     * @param ids 需要删除的服务项目列表主键
     * @return 结果
     */
    @Override
    public int deletePlayServiceInfoByIds(String[] ids) {
        return playServiceInfoMapper.deleteBatchIds(Arrays.asList(ids));
    }

    /**
     * 删除服务项目列表信息
     *
     * @param id 服务项目列表主键
     * @return 结果
     */
    @Override
    public int deletePlayServiceInfoById(String id) {
        return playServiceInfoMapper.deleteById(id);
    }
}
