package com.zehong.system.service.impl;

import com.zehong.common.core.domain.entity.SysUser;
import com.zehong.common.utils.DateUtils;
import com.zehong.common.utils.SecurityUtils;
import com.zehong.system.domain.TTradeProject;
import com.zehong.system.mapper.TTradeProjectMapper;
import com.zehong.system.service.ITTradeProjectService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 交易项目Service业务层处理
 * 
 * @author zehong
 * @date 2023-06-08
 */
@Service
public class TTradeProjectServiceImpl implements ITTradeProjectService 
{
    @Autowired
    private TTradeProjectMapper tTradeProjectMapper;

    /**
     * 查询交易项目
     * 
     * @param tradeId 交易项目ID
     * @return 交易项目
     */
    @Override
    public TTradeProject selectTTradeProjectById(Long tradeId)
    {
        return tTradeProjectMapper.selectTTradeProjectById(tradeId);
    }

    /**
     * 查询交易项目列表
     * 
     * @param tTradeProject 交易项目
     * @return 交易项目
     */
    @Override
    public List<TTradeProject> selectTTradeProjectList(TTradeProject tTradeProject)
    {
        return tTradeProjectMapper.selectTTradeProjectList(tTradeProject);
    }

    /**
     * 新增交易项目
     * 
     * @param tTradeProject 交易项目
     * @return 结果
     */
    @Override
    public int insertTTradeProject(TTradeProject tTradeProject)
    {
        tTradeProject.setReceiptNum("ZEHONG" + DateUtils.dateTimeNow());
        SysUser user = SecurityUtils.getLoginUser().getUser();
        tTradeProject.setApplyId(user.getUserId());
        tTradeProject.setApplyDeptId(user.getDeptId());
        tTradeProject.setCreateTime(DateUtils.getNowDate());
        return tTradeProjectMapper.insertTTradeProject(tTradeProject);
    }


    /**
     * 修改交易项目
     * 
     * @param tTradeProject 交易项目
     * @return 结果
     */
    @Override
    public int updateTTradeProject(TTradeProject tTradeProject)
    {
        tTradeProject.setUpdateTime(DateUtils.getNowDate());
        return tTradeProjectMapper.updateTTradeProject(tTradeProject);
    }

    /**
     * 批量删除交易项目
     * 
     * @param tradeIds 需要删除的交易项目ID
     * @return 结果
     */
    @Override
    public int deleteTTradeProjectByIds(Long[] tradeIds)
    {
        return tTradeProjectMapper.deleteTTradeProjectByIds(tradeIds);
    }

    /**
     * 删除交易项目信息
     * 
     * @param tradeId 交易项目ID
     * @return 结果
     */
    @Override
    public int deleteTTradeProjectById(Long tradeId)
    {
        return tTradeProjectMapper.deleteTTradeProjectById(tradeId);
    }
}
