package cn.superdesk.uniorder.service.base;

import java.util.List;
import java.util.Map;

/**
 * @Description: TODO mark by linjinyu at 2022-05-146 10:22:11 -
 * 遗物 这遗物本来作用就不说了 Hibernate 时代的思想
 * 当然 tk-mapper mybatis-plus 都有类似东西，但在这不用，不是说不好，只能说这里不适合
 * @Author: linjinyu
 * @CreateDate: 2022/3/22 2:31 下午
 * @UpdateUser: linjinyu
 * @UpdateDate: 2022/3/22 2:31 下午
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
public interface Base<T> {

    /**
     * 遗物 addObj -> insertSelective 明确为 插入 (有值部分) mark by linjinyu at 20220322
     * TODO 添加 return int
     *
     * @param t
     * @return
     */
    int insertSelective(T t);

    /**
     * 遗物
     * updateObj -> updateByPrimaryKeySelective 明确为 更新 根据主键(有值部分) mark by linjinyu at 20220322
     * TODO 添加 return int
     *
     * @param t
     * @return
     */
    int updateByPrimaryKeySelective(T t);


    /**
     * 遗物
     * deleteObj -> deletePhysical 明确为 删除 根据主键(物理删除) mark by linjinyu at 20220322
     *
     * @param id
     */
    void deleteObj(Long id);

//    int deletePhysical(Long id);
//    int deleteLogically(Long id);


    /**
     * 此遗物可以沿用
     *
     * @param id
     * @return
     */
    T findById(Long id);

    /**
     * 此遗物太TMD不好搞，什么鬼都用Map，这个是有病的
     *
     * @param queryMap
     * @return
     */
    @Deprecated
    List<T> findAll(Map<String, Object> queryMap);
}