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

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

1 分页bean

  1. import io.swagger.annotations.ApiModelProperty;
  2. import lombok.Data;
  3. import javax.validation.constraints.NotNull;
  4. import java.io.Serializable;
  5. import java.util.List;
  6. @Data
  7. public class PageDTO<T> implements Serializable {
  8. private static final long serialVersionUID = -7272187594751710513L;
  9. /**
  10. * 当前页
  11. */
  12. @ApiModelProperty(value = "当前页")
  13. @NotNull(message = "当前页不能为null")
  14. private Long current;
  15. /**
  16. * 每页显示条数,默认 10
  17. */
  18. @ApiModelProperty(value = "每页显示条数,默认 10")
  19. @NotNull(message = "每页显示条数不能为null")
  20. private Long size;
  21. /**
  22. * 查询条件
  23. */
  24. @NotNull(message = "查询条件不能为null")
  25. @ApiModelProperty(value = "查询条件", required = true)
  26. private T condition;
  27. /**
  28. * 排序字段信息
  29. */
  30. private List<OrderItemDTO> orders;
  31. }
  1. import lombok.AllArgsConstructor;
  2. import lombok.Data;
  3. import lombok.NoArgsConstructor;
  4. import java.io.Serializable;
  5. @Data
  6. @AllArgsConstructor
  7. @NoArgsConstructor
  8. public class OrderItemDTO implements Serializable {
  9. private static final long serialVersionUID = -1958427169170964042L;
  10. /**
  11. * 需要进行排序的字段
  12. */
  13. private String column;
  14. /**
  15. * 是否正序排列,默认 true
  16. */
  17. private Boolean asc;
  18. }
  1. import io.swagger.annotations.ApiModelProperty;
  2. import lombok.Data;
  3. import lombok.NoArgsConstructor;
  4. import java.io.Serializable;
  5. import java.util.Collections;
  6. import java.util.List;
  7. @Data
  8. @NoArgsConstructor
  9. public class PageResp<E> implements Serializable {
  10. private static final long serialVersionUID = 6800886854010910392L;
  11. public PageResp(long current, long size) {
  12. this.current = current;
  13. this.size = size;
  14. }
  15. /**
  16. * 当前页
  17. */
  18. @ApiModelProperty(value = "当前页")
  19. private long current;
  20. /**
  21. * 每页显示条数,默认 10
  22. */
  23. @ApiModelProperty(value = "每页显示条数,默认 10")
  24. private long size;
  25. /**
  26. * 总数
  27. */
  28. @ApiModelProperty(value = "总数")
  29. private long total = 0;
  30. /**
  31. * 返回记录列表
  32. */
  33. @ApiModelProperty(value = "返回记录列表")
  34. private List<E> records = Collections.emptyList();
  35. }

2 Mybatis-plus配置

  1. import com.baomidou.mybatisplus.annotation.DbType;
  2. import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
  3. import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
  4. import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
  5. import org.mybatis.spring.annotation.MapperScan;
  6. import org.springframework.context.annotation.Bean;
  7. import org.springframework.context.annotation.Configuration;
  8. import org.springframework.transaction.annotation.EnableTransactionManagement;
  9. @EnableTransactionManagement
  10. @Configuration
  11. @MapperScan("com.ocso.sema.gemini.dao.mapper")
  12. public class MybatisPlusConfig {
  13. /**
  14. * 分页插件
  15. */
  16. @Bean
  17. public MybatisPlusInterceptor mybatisPlusInterceptor() {
  18. MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
  19. //向Mybatis过滤器链中添加分页拦截器
  20. interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
  21. //还可以添加i他的拦截器
  22. return interceptor;
  23. }
  24. @Bean
  25. public ConfigurationCustomizer configurationCustomizer() {
  26. return mybatisConfiguration -> mybatisConfiguration.setUseGeneratedShortKey(false);
  27. }
  28. }

3 返回

  1. import lombok.Getter;
  2. import lombok.Setter;
  3. import java.io.Serializable;
  4. public class R<T> implements Serializable {
  5. private static final long serialVersionUID = 1L;
  6. @Getter
  7. @Setter
  8. private int code;
  9. @Getter
  10. @Setter
  11. private String msg;
  12. @Getter
  13. @Setter
  14. private T data;
  15. public Boolean isOk() {
  16. return code == CommonConstants.SUCCESS;
  17. }
  18. public static <T> R<T> ok() {
  19. return restResult(null, CommonConstants.SUCCESS, CommonConstants.SUCCESS_MSG);
  20. }
  21. public static <T> R<T> ok(T data) {
  22. return restResult(data, CommonConstants.SUCCESS, CommonConstants.SUCCESS_MSG);
  23. }
  24. public static <T> R<T> ok(T data, String msg) {
  25. return restResult(data, CommonConstants.SUCCESS, msg);
  26. }
  27. public static <T> R<T> failed() {
  28. return restResult(null, CommonConstants.FAIL, CommonConstants.FAIL_MSG);
  29. }
  30. public static <T> R<T> failed(String msg) {
  31. return restResult(null, CommonConstants.FAIL, msg);
  32. }
  33. public static <T> R<T> failed(T data) {
  34. return restResult(data, CommonConstants.FAIL, CommonConstants.FAIL_MSG);
  35. }
  36. public static <T> R<T> failed(T data, String msg) {
  37. return restResult(data, CommonConstants.FAIL, msg);
  38. }
  39. public static <T> R<T> failed(T data, int code, String msg) {
  40. return restResult(data, code, msg);
  41. }
  42. public static <T> R<T> failed(String msg, int code) {
  43. return restResult(null, code, msg);
  44. }
  45. public static <T, E> R<T> copyCodeAndMsg(R<E> r) {
  46. return restResult(null, r.getCode(), r.getMsg());
  47. }
  48. private static <T> R<T> restResult(T data, int code, String msg) {
  49. R<T> apiResult = new R<T>();
  50. apiResult.setCode(code);
  51. apiResult.setData(data);
  52. apiResult.setMsg(msg);
  53. return apiResult;
  54. }
  55. }
  1. import lombok.AllArgsConstructor;
  2. import lombok.Getter;
  3. @Getter
  4. @AllArgsConstructor
  5. public enum ResultCode {
  6. // 操作成功标识
  7. SUCCESS(200, "Success"),
  8. // 系统异常标识
  9. SYS_ERROR(500, "服务器异常,请稍后再试!"),
  10. USER_NOT_EXIST(401, "用户不存在"),
  11. NO_PERMISSION(402, "没有此操作权限"),
  12. NO_LOGGED_IN(403, "用户未登录"),
  13. EXTERNAL_SYSTEM_ERROR(1000, "调用外部系统[%s]出错"),
  14. ;
  15. private Integer code;
  16. private String message;
  17. }

4 redis代码的配置

  1. import org.springframework.context.annotation.Bean;
  2. import org.springframework.context.annotation.Configuration;
  3. import org.springframework.data.redis.connection.RedisConnectionFactory;
  4. import org.springframework.data.redis.core.RedisTemplate;
  5. import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
  6. import org.springframework.data.redis.serializer.StringRedisSerializer;
  7. @Configuration
  8. public class RedisConfig {
  9. @Bean
  10. public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory){
  11. RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
  12. redisTemplate.setConnectionFactory(factory);
  13. GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer();
  14. StringRedisSerializer redisSerializer = new StringRedisSerializer();
  15. redisTemplate.setValueSerializer(genericJackson2JsonRedisSerializer);
  16. redisTemplate.setKeySerializer(redisSerializer);
  17. redisTemplate.setHashKeySerializer(redisSerializer);
  18. return redisTemplate;
  19. }
  20. }

5 xxl-job代码配置

  1. import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
  2. import lombok.extern.slf4j.Slf4j;
  3. import org.springframework.beans.factory.annotation.Value;
  4. import org.springframework.context.annotation.Bean;
  5. import org.springframework.context.annotation.ComponentScan;
  6. import org.springframework.context.annotation.Configuration;
  7. @Slf4j
  8. @Configuration
  9. @ComponentScan(basePackages = "com.ocso.sema.gemini.service.job")
  10. public class XxlJobConfig {
  11. @Value("${xxl.job.flag}")
  12. private boolean flag;
  13. @Value("${xxl.job.admin.addresses}")
  14. private String adminAddresses;
  15. @Value("${xxl.job.executor.appname}")
  16. private String appName;
  17. @Value("${xxl.job.executor.port}")
  18. private int port;
  19. @Value("${xxl.job.executor.logpath}")
  20. private String logPath;
  21. @Value("${xxl.job.executor.logretentiondays}")
  22. private int logRetentionDays;
  23. @Bean
  24. public XxlJobSpringExecutor xxlJobExecutor() {
  25. //判断是否注册到调度中心
  26. if (flag) {
  27. log.info(">>>>>>>>>>> xxl-job config init.");
  28. XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
  29. xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
  30. xxlJobSpringExecutor.setAppname(appName);
  31. xxlJobSpringExecutor.setPort(port);
  32. xxlJobSpringExecutor.setLogPath(logPath);
  33. xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
  34. return xxlJobSpringExecutor;
  35. } else {
  36. return null;
  37. }
  38. }
  39. }

相关文章