package com.ruoyi.system.service.impl;

import java.util.Date;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.domain.dto.GetUserPublishWorkDto;
import com.ruoyi.system.domain.dto.UserPublishWorkDetailDto;
import com.ruoyi.system.domain.dto.UserPublishWorkMoreDto;
import com.ruoyi.system.domain.dto.UserWorkReviewDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.UserWorkMapper;
import com.ruoyi.system.domain.UserWork;
import com.ruoyi.system.service.IUserWorkService;

/**
 * 用户作品Service业务层处理
 * 
 * @author haotian
 * @date 2024-10-23
 */
@Service
public class UserWorkServiceImpl implements IUserWorkService 
{
    @Autowired
    private UserWorkMapper userWorkMapper;

    /**
     * 查询用户作品
     * 
     * @param workId 用户作品主键
     * @return 用户作品
     */
    @Override
    public UserWork selectUserWorkByWorkId(Long workId)
    {
        return userWorkMapper.selectUserWorkByWorkId(workId);
    }

    /**
     * 查询用户作品列表
     * 
     * @param userWork 用户作品
     * @return 用户作品
     */
    @Override
    public List<UserWork> selectUserWorkList(UserWork userWork)
    {
        return userWorkMapper.selectUserWorkList(userWork);
    }

    @Override
    public List<UserWork> selectUserPublishWorkList(Long userId){
        return userWorkMapper.selectUserPublishWorkList(userId);
    }

    /**
     * 新增用户作品
     * 
     * @param userWork 用户作品
     * @return 结果
     */
    @Override
    public int insertUserWork(UserWork userWork)
    {
        userWork.setCreateTime(DateUtils.getNowDate());
        return userWorkMapper.insertUserWork(userWork);
    }

    /**
     * 修改用户作品
     * 
     * @param userWork 用户作品
     * @return 结果
     */
    @Override
    public int updateUserWork(UserWork userWork)
    {
        userWork.setUpdateTime(DateUtils.getNowDate());
        return userWorkMapper.updateUserWork(userWork);
    }

    /**
     * 批量删除用户作品
     * 
     * @param workIds 需要删除的用户作品主键
     * @return 结果
     */
    @Override
    public int deleteUserWorkByWorkIds(Long[] workIds)
    {
        return userWorkMapper.deleteUserWorkByWorkIds(workIds);
    }

    /**
     * 删除用户作品信息
     * 
     * @param workId 用户作品主键
     * @return 结果
     */
    @Override
    public int deleteUserWorkByWorkId(Long workId)
    {
        return userWorkMapper.deleteUserWorkByWorkId(workId);
    }

    @Override
    public Long getUserWorkCount(String workStatus)
    {
    	return userWorkMapper.getUserWorkCount(workStatus);
    }

    @Override
    public List<UserWorkReviewDto> getAllUserWork(UserWork userWork ){
        return userWorkMapper.getAllUserWork(userWork);
    }


    /*
     *
     * 查看发布作品详情
     * */
    @Override
    public UserPublishWorkDetailDto getUserPublishWorkDetail(Long workId){
        return userWorkMapper.getUserPublishWorkDetail(workId);
    }

    /*
     * 更多--查看用户发布作品
     * */
    @Override
    public List<UserPublishWorkDetailDto> getUserPublishWorkList(){
        return userWorkMapper.getUserPublishWorkList();
    }

    /*
     * 更多--他人主页--他的发布
     * */
    @Override
    public List<UserPublishWorkMoreDto> getUserPublishWorkMore(Long userId){
        return userWorkMapper.getUserPublishWorkMore(userId);
    }

    /**
     *
     * 我的--查看自己发布作品列表
     * */
    @Override
    public List<GetUserPublishWorkDto> getUserPublishWork(Long userId){
        return userWorkMapper.getUserPublishWork(userId);
    }

    /**
     *
     * 根据用户id获取用户作品数量
     * */
    @Override
    public Long getUserWorkCountByUserId(Long userId){
        return userWorkMapper.getUserWorkCountByUserId(userId);
    }
}
