package com.engine.salary.wrapper;


import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.entity.datacollection.dto.VariableItemListDTO;
import com.engine.salary.entity.datacollection.param.VariableItemQueryParam;
import com.engine.salary.entity.datacollection.param.VariableItemSaveParam;
import com.engine.salary.service.VariableItemService;
import com.engine.salary.service.impl.VariableItemServiceImpl;
import com.engine.salary.util.page.PageInfo;
import com.engine.salary.util.valid.ValidUtil;
import lombok.extern.slf4j.Slf4j;
import weaver.hrm.User;

import java.util.List;

/**
 * @Description: 浮动薪酬项目
 * @Author: xzy
 * @Date: 2024/8/6 17:39
 */
@Slf4j
public class VariableItemWrapper extends Service {
    private VariableItemService getVariableItemService(User user) {
        return ServiceUtil.getService(VariableItemServiceImpl.class, user);
    }

    /**
     * 获取所有的浮动薪酬项目
     *
     * @param queryParam
     */
    public PageInfo<VariableItemListDTO> listPage(VariableItemQueryParam queryParam) {
        return getVariableItemService(user).listPage(queryParam);
    }

    /**
     * 新建浮动薪酬项目
     *
     * @param saveParam
     */
    public void save(VariableItemSaveParam saveParam) {
        ValidUtil.doValidator(saveParam);
        getVariableItemService(user).save(saveParam);
    }

    /**
     * 更新浮动薪酬项目
     *
     * @param saveParam
     */
    public void update(VariableItemSaveParam saveParam) {
        ValidUtil.doValidator(saveParam);
        getVariableItemService(user).update(saveParam);
    }

    /**
     * 删除浮动薪资项目
     *
     * @param itemIds
     */
    public void deleteItems(List<Long> itemIds) {
        getVariableItemService(user).deleteItems(itemIds);
    }

    /**
     * 浮动薪酬项目详细信息
     *
     * @param id
     */
    public VariableItemListDTO getDetail(Long id) {
        return getVariableItemService(user).getDetail(id);
    }
}
