package com.boman.web.core.service.delete;

import com.alibaba.fastjson.JSONObject;
import com.boman.web.core.domain.RowResult;

/**
 * @author shiqian
 * @date 2021年03月26日 11:16
 **/
public interface IBaseDeleteService {


    /**
     * 功能描述: 在此不对入参进行校验，所以在调用此方法之前一定要对参数进行校验，以免报错
     *
     * @param idArr     需要删除的iD
     * @param tableName 业务主表
     * @param pkName    业务表的主键名
     * @return com.boman.system.common.RowResult
     */
    RowResult objectDelete(Long[] idArr, String tableName, String pkName);


    /**
     * 功能描述: 在此不对入参进行校验，所以在调用此方法之前一定要对参数进行校验，以免报错
     *
     * @param id        需要删除的iD
     * @param tableName 业务主表
     * @param pkName    业务表的主键名
     * @return com.boman.system.common.RowResult
     */
    RowResult deleteById(String tableName, String pkName, Long id);

    /**
     * 功能描述: 在此不对入参进行校验，所以在调用此方法之前一定要对参数进行校验，以免报错
     *
     * @param idArr     需要删除的iD
     * @param tableName 业务主表
     * @param pkName    业务表的主键名
     * @param model     逻辑删除的字段和值
     * @return com.boman.system.common.RowResult
     */
    RowResult objectLogicDelete(Long[] idArr, String tableName, String pkName, JSONObject model);


}
