All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.allways.base.service.BaseService Maven / Gradle / Ivy

There is a newer version: 1.0.4.RELEASE
Show newest version
package com.allways.base.service;

import com.allways.base.dao.BaseMapper;
import com.allways.base.model.BaseModel;
import com.allways.base.model.PageParam;
import com.allways.base.model.ResponseBean;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author lirui
 *
 * 公共方法实现类
 **/
public interface BaseService {

    /**
     * 获取真实dao,模板模式
     * @return 抽象类
     */
    public abstract BaseMapper getDao();

    /**
     * 保存方法
     * @param t 保存实体
     */
    @Transactional(rollbackFor = Exception.class)
    default public void save(T t) {
        getDao().save(t);
    }

    /**
     * 查询分页列表
     * @param param 请求参数
     * @return 分页结果
     */
    default public PageInfo pageList(P param) {
        PageHelper.startPage(param.getPageNumber(),param.pageSize,param.sort +" "+param.order);
        List list = getDao().pageList(param);
        PageInfo pageInfo = new PageInfo<>(list);
        return pageInfo;
    }

    /**
     * 更新
     * @param t 更新实体
     * @return 更新结果
     */
    @Transactional(rollbackFor = Exception.class)
    default public ResponseBean update(T t){
        if(t == null){
            return ResponseBean.FAIL;
        }
        //比较版本号
        Integer compareResult = getDao().compareVersion(t.getId(), t.getVersion());
        if(compareResult == null){
            return new ResponseBean(ResponseBean.FAIL_CODE,"未更新成功,有其他操作更新了版本号");
        }

        getDao().update(t);
        return ResponseBean.SUCCESS;
    }

    /**
     * 删除
     * @param id 删除ID
     */
    default public void delete(Long id){
        getDao().delete(id);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy