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

org.shoulder.web.template.crud.BaseController Maven / Gradle / Ivy

Go to download

shoulder WEB 模块,基于Spring Boot Web提供了 Controller AOP 日志、AOP异常处理,统一返回值,健康检查,租户、用户解析,Web 安全防护,通用CrudController,动态字典,标签管理,HTTP client AOP日志、AOP异常处理等能力,助力Web飞速开发。

The newest version!
package org.shoulder.web.template.crud;

import org.shoulder.core.context.AppContext;
import org.shoulder.core.converter.ShoulderConversionService;
import org.shoulder.core.util.ContextUtils;
import org.shoulder.data.mybatis.template.entity.BaseEntity;
import org.shoulder.data.mybatis.template.entity.BizEntity;
import org.shoulder.data.mybatis.template.service.BaseService;
import org.shoulder.log.operation.support.OperableObjectTypeRepository;

import java.io.Serializable;

/**
 * 基础,几个基本方法,不提供任何接口
 *
 * @author lym
 */
public interface BaseController> {

    /**
     * 获取实体类型
     *
     * @return 实体的类型
     */
    Class getEntityClass();

    Class getEntityIdType();

    /**
     * 判断是否为 BizEntity
     *
     * @return 是否为 BizEntity
     * @see BizEntity
     */
    default boolean extendsFromBizEntity() {
        return BizEntity.class.isAssignableFrom(getEntityClass());
    }

    /**
     * 获取 Service
     *
     * @return Service
     */
    BaseService getService();

    // ============================ 常用的方法从框架工具类中抽离出来 ===========================

    /**
     * 获取当前id
     *
     * @return userId
     */
    default String getUserId() {
        return AppContext.getUserId();
    }

    /**
     * 当前请求租户
     *
     * @return 租户编码
     */
    default String getTenant() {
        return AppContext.getTenantCode();
    }

    /**
     * 登录人账号
     *
     * @return 账号
     */
    default String getUserName() {
        return AppContext.getUserName();
    }

    /**
     * 获取对象类型
     * 用于记录操作日志
     *
     * @return 对象类型
     */
    default String getEntityObjectType() {
        return ContextUtils.getBeanOptional(OperableObjectTypeRepository.class)
                .map(r -> r.getObjectType(getEntityClass()))
                .orElse("objType." + getEntityClass().getSimpleName());
    }

    ShoulderConversionService getConversionService();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy