五、Mybatis-plus分页Bean以及返回值

x33g5p2x  于2022-04-26 转载在 其他  
字(7.1k)|赞(0)|评价(0)|浏览(297)

1 分页bean

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

@Data
public class PageDTO<T> implements Serializable {
    private static final long serialVersionUID = -7272187594751710513L;

    /**
     * 当前页
     */
    @ApiModelProperty(value = "当前页")
    @NotNull(message = "当前页不能为null")
    private Long current;

    /**
     * 每页显示条数,默认 10
     */
    @ApiModelProperty(value = "每页显示条数,默认 10")
    @NotNull(message = "每页显示条数不能为null")
    private Long size;

    /**
     * 查询条件
     */
    @NotNull(message = "查询条件不能为null")
    @ApiModelProperty(value = "查询条件", required = true)
    private T condition;

    /**
     * 排序字段信息
     */
    private List<OrderItemDTO> orders;
}
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class OrderItemDTO implements Serializable {
    private static final long serialVersionUID = -1958427169170964042L;

    /**
     * 需要进行排序的字段
     */
    private String column;
    /**
     * 是否正序排列,默认 true
     */
    private Boolean asc;

}
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Collections;
import java.util.List;

@Data
@NoArgsConstructor
public class PageResp<E> implements Serializable {
    private static final long serialVersionUID = 6800886854010910392L;

    public PageResp(long current, long size) {
        this.current = current;
        this.size = size;
    }

    /**
     * 当前页
     */
    @ApiModelProperty(value = "当前页")
    private long current;

    /**
     * 每页显示条数,默认 10
     */
    @ApiModelProperty(value = "每页显示条数,默认 10")
    private long size;

    /**
     * 总数
     */
    @ApiModelProperty(value = "总数")
    private long total = 0;

    /**
     * 返回记录列表
     */
    @ApiModelProperty(value = "返回记录列表")
    private List<E> records = Collections.emptyList();
}

2 Mybatis-plus配置

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@EnableTransactionManagement
@Configuration
@MapperScan("com.ocso.sema.gemini.dao.mapper")
public class MybatisPlusConfig {
    /**
     * 分页插件
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        //向Mybatis过滤器链中添加分页拦截器
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        //还可以添加i他的拦截器
        return interceptor;
    }

    @Bean
    public ConfigurationCustomizer configurationCustomizer() {
        return mybatisConfiguration -> mybatisConfiguration.setUseGeneratedShortKey(false);
    }
}

3 返回

import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;

public class R<T> implements Serializable {
    private static final long serialVersionUID = 1L;

    @Getter
    @Setter
    private int code;

    @Getter
    @Setter
    private String msg;

    @Getter
    @Setter
    private T data;

    public Boolean isOk() {
        return code == CommonConstants.SUCCESS;
    }

    public static <T> R<T> ok() {
        return restResult(null, CommonConstants.SUCCESS, CommonConstants.SUCCESS_MSG);
    }

    public static <T> R<T> ok(T data) {
        return restResult(data, CommonConstants.SUCCESS, CommonConstants.SUCCESS_MSG);
    }

    public static <T> R<T> ok(T data, String msg) {
        return restResult(data, CommonConstants.SUCCESS, msg);
    }

    public static <T> R<T> failed() {
        return restResult(null, CommonConstants.FAIL, CommonConstants.FAIL_MSG);
    }

    public static <T> R<T> failed(String msg) {
        return restResult(null, CommonConstants.FAIL, msg);
    }

    public static <T> R<T> failed(T data) {
        return restResult(data, CommonConstants.FAIL, CommonConstants.FAIL_MSG);
    }

    public static <T> R<T> failed(T data, String msg) {
        return restResult(data, CommonConstants.FAIL, msg);
    }

    public static <T> R<T> failed(T data, int code, String msg) {
        return restResult(data, code, msg);
    }

    public static <T> R<T> failed(String msg, int code) {
        return restResult(null, code, msg);
    }

    public static <T, E> R<T> copyCodeAndMsg(R<E> r) {
        return restResult(null, r.getCode(), r.getMsg());
    }

    private static <T> R<T> restResult(T data, int code, String msg) {
        R<T> apiResult = new R<T>();
        apiResult.setCode(code);
        apiResult.setData(data);
        apiResult.setMsg(msg);
        return apiResult;
    }
}
import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public enum ResultCode {
    // 操作成功标识
    SUCCESS(200, "Success"),
    // 系统异常标识
    SYS_ERROR(500, "服务器异常,请稍后再试!"),

    USER_NOT_EXIST(401, "用户不存在"),
    NO_PERMISSION(402, "没有此操作权限"),
    NO_LOGGED_IN(403, "用户未登录"),

    EXTERNAL_SYSTEM_ERROR(1000, "调用外部系统[%s]出错"),

    
    ;

    private Integer code;
    private String message;
}

4 redis代码的配置

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;

@Configuration
public class RedisConfig {

    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory){
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(factory);
        GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer();
        StringRedisSerializer redisSerializer = new StringRedisSerializer();
        redisTemplate.setValueSerializer(genericJackson2JsonRedisSerializer);
        redisTemplate.setKeySerializer(redisSerializer);
        redisTemplate.setHashKeySerializer(redisSerializer);
        return redisTemplate;
    }

}

5 xxl-job代码配置

import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Slf4j
@Configuration
@ComponentScan(basePackages = "com.ocso.sema.gemini.service.job")
public class XxlJobConfig {

    @Value("${xxl.job.flag}")
    private boolean flag;

    @Value("${xxl.job.admin.addresses}")
    private String adminAddresses;

    @Value("${xxl.job.executor.appname}")
    private String appName;

    @Value("${xxl.job.executor.port}")
    private int port;

    @Value("${xxl.job.executor.logpath}")
    private String logPath;

    @Value("${xxl.job.executor.logretentiondays}")
    private int logRetentionDays;

    @Bean
    public XxlJobSpringExecutor xxlJobExecutor() {
        //判断是否注册到调度中心
        if (flag) {
            log.info(">>>>>>>>>>> xxl-job config init.");
            XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
            xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
            xxlJobSpringExecutor.setAppname(appName);
            xxlJobSpringExecutor.setPort(port);
            xxlJobSpringExecutor.setLogPath(logPath);
            xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);

            return xxlJobSpringExecutor;
        } else {
            return null;
        }

    }
}

相关文章

微信公众号

最新文章

更多