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

import com.alibaba.fastjson.JSONObject;
import com.boman.domain.dto.FormDataDto;

import java.util.List;

/**
 * @author shiqian
 * @date 2021年04月15日 16:31
 **/
public interface ICommonService {

    /**
     * 功能描述: 根据表名和id查找
     *
     * @param tableName tableName
     * @param id        id
     * @return JSONObject
     */
    JSONObject getById(String tableName, Long id);


    /**
     * 功能描述: 根据condition进行查找
     *
     * @param tableName tableName
     * @param condition condition
     * @return java.util.List<com.alibaba.fastjson.JSONObject>
     */
    List<JSONObject> getByMap(String tableName, JSONObject condition);

    /**
     * 功能描述: 根据tableName和map(属性名和属性值)进行查查
     *
     * @param tableName tableName
     * @param param     属性名和属性值
     * @return jcom.alibaba.fastjson.JSONObject
     */
    JSONObject getOneByMap(String tableName, JSONObject param);

    Long getMaxId(String tableName, String pkName);

    /**
     * 功能描述: 根据条件count
     *
     * @param dto dto
     * @return java.lang.Long
     */
    int count(FormDataDto dto);

    /**
     * 功能描述: 获取最新的一条数据 create desc
     *
     * @param tableName tableName
     * @return com.alibaba.fastjson.JSONObject
     */
    JSONObject getNewest(String tableName);
}
