package com.yonge.cooleshow.biz.dal.service.impl;

import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.beans.BeanUtils;
import lombok.extern.slf4j.Slf4j;
import com.yonge.cooleshow.biz.dal.entity.TenantAlbumRef;
import com.yonge.cooleshow.biz.dal.wrapper.TenantAlbumRefWrapper;
import com.yonge.cooleshow.biz.dal.mapper.TenantAlbumRefMapper;
import com.yonge.cooleshow.biz.dal.service.TenantAlbumRefService;

import java.util.List;

/**
 * 机构专辑关联表
 * 2023-07-21 17:32:49
 */
@Slf4j
@Service
public class TenantAlbumRefServiceImpl extends ServiceImpl<TenantAlbumRefMapper, TenantAlbumRef> implements TenantAlbumRefService {

	/**
     * 查询详情
     * @param id 详情ID
     * @return TenantAlbumRef
     */
	@Override
    public TenantAlbumRef detail(Long id) {
        
        return baseMapper.selectById(id);
    }
    
    /**
     * 分页查询
     * @param page IPage<TenantAlbumRef>
     * @param query TenantAlbumRefWrapper.TenantAlbumRefQuery
     * @return IPage<TenantAlbumRef>
     */
    @Override
    public IPage<TenantAlbumRef> selectPage(IPage<TenantAlbumRef> page, TenantAlbumRefWrapper.TenantAlbumRefQuery query) {
        
        return page.setRecords(baseMapper.selectPage(page, query));
    }
	
    /**
     * 添加
     * @param tenantAlbumRef TenantAlbumRefWrapper.TenantAlbumRef
     * @return Boolean
     */
    @Override
    public Boolean add(TenantAlbumRef tenantAlbumRef) {
        return this.save(tenantAlbumRef);
        //return this.save(JSON.parseObject(tenantAlbumRef.jsonString(), TenantAlbumRef.class));
    }

    /**
     * 更新
     * @param tenantAlbumRef TenantAlbumRefWrapper.TenantAlbumRef
     * @return Boolean
     */
    @Override
    public Boolean update(TenantAlbumRefWrapper.TenantAlbumRef tenantAlbumRef){

        return this.updateById(JSON.parseObject(tenantAlbumRef.jsonString(), TenantAlbumRef.class));       
    }

    /**
     * 根据专辑ID获取专辑关联
     *
     * @param tenantAlbumId 专辑ID
     * @return
     */
    @Override
    public List<TenantAlbumRef> getByAlbumId(Long tenantAlbumId) {
        return this.lambdaQuery()
                .eq(TenantAlbumRef::getTenantAlbumId, tenantAlbumId)
                .list();
    }

    @Override
    public TenantAlbumRef getBytenantAlbumId(Long id) {
        return baseMapper.selectByAlbumId(id);
    }
}