Skip to content

Commit

Permalink
feat($Pagination): abstract page response bean
Browse files Browse the repository at this point in the history
  • Loading branch information
johnnymillergh committed Jun 27, 2021
1 parent 3647951 commit 28928b8
Show file tree
Hide file tree
Showing 7 changed files with 397 additions and 8 deletions.
Original file line number Diff line number Diff line change
@@ -1,16 +1,22 @@
package com.jmsoftware.maf.authcenter.user.controller;

import com.jmsoftware.maf.authcenter.user.entity.GetUserPageListPayload;
import com.jmsoftware.maf.authcenter.user.entity.persistence.User;
import com.jmsoftware.maf.authcenter.user.service.UserService;
import com.jmsoftware.maf.common.bean.PageResponseBodyBean;
import com.jmsoftware.maf.common.bean.ResponseBodyBean;
import com.jmsoftware.maf.common.domain.authcenter.user.GetUserByLoginTokenResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.validation.Valid;

/**
* <h1>UserRemoteApiController</h1>
* <p>
Expand All @@ -19,6 +25,7 @@
* @author Johnny Miller (锺俊), email: johnnysviva@outlook.com
* @date 5/10/20 12:36 PM
**/
@Validated
@RestController
@RequiredArgsConstructor
@RequestMapping("/user-remote-api")
Expand All @@ -31,4 +38,9 @@ public class UserRemoteApiController {
public ResponseBodyBean<GetUserByLoginTokenResponse> getUserByLoginToken(@PathVariable String loginToken) {
return ResponseBodyBean.ofSuccess(userService.getUserByLoginToken(loginToken));
}

@GetMapping("/users")
public PageResponseBodyBean<User> getUserPageList(@Valid GetUserPageListPayload payload) {
return userService.getUserPageList(payload);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.jmsoftware.maf.authcenter.user.entity;

import com.jmsoftware.maf.common.bean.PaginationBase;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
* Description: GetUserPageList, change description here.
*
* @author Johnny Miller (锺俊), email: johnnysviva@outlook.com, date: 6/27/2021 4:32 PM
**/
@Data
@EqualsAndHashCode(callSuper = true)
public class GetUserPageListPayload extends PaginationBase {
private String username;
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package com.jmsoftware.maf.authcenter.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jmsoftware.maf.authcenter.user.entity.GetUserPageListPayload;
import com.jmsoftware.maf.authcenter.user.entity.GetUserStatusPayload;
import com.jmsoftware.maf.authcenter.user.entity.persistence.User;
import com.jmsoftware.maf.common.bean.PageResponseBodyBean;
import com.jmsoftware.maf.common.domain.authcenter.user.*;
import com.jmsoftware.maf.common.exception.SecurityException;
import org.springframework.validation.annotation.Validated;
Expand All @@ -17,8 +19,7 @@
* <p>
* Service of UserPersistence.(UserPersistence)
*
* @author Johnny Miller (锺俊), e-mail: johnnysviva@outlook.com
* @date 5 /10/20 12:31 PM
* @author Johnny Miller (锺俊), email: johnnysviva@outlook.com, date: 5/10/20 12:31 PM
*/
@Validated
public interface UserService extends IService<User> {
Expand Down Expand Up @@ -63,4 +64,12 @@ public interface UserService extends IService<User> {
* @return the user status
*/
String getUserStatus(@Valid @NotNull GetUserStatusPayload payload);

/**
* Gets user page list.
*
* @param payload the payload
* @return the user page list
*/
PageResponseBodyBean<User> getUserPageList(@Valid @NotNull GetUserPageListPayload payload);
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,17 @@

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jmsoftware.maf.authcenter.security.service.JwtService;
import com.jmsoftware.maf.authcenter.user.entity.GetUserPageListPayload;
import com.jmsoftware.maf.authcenter.user.entity.GetUserStatusPayload;
import com.jmsoftware.maf.authcenter.user.entity.persistence.User;
import com.jmsoftware.maf.authcenter.user.mapper.UserMapper;
import com.jmsoftware.maf.authcenter.user.service.UserService;
import com.jmsoftware.maf.common.bean.PageResponseBodyBean;
import com.jmsoftware.maf.common.domain.authcenter.user.*;
import com.jmsoftware.maf.common.exception.SecurityException;
import lombok.RequiredArgsConstructor;
Expand Down Expand Up @@ -107,4 +111,15 @@ public String getUserStatus(@Valid @NotNull GetUserStatusPayload payload) {
log.info("getHeader: {}", servletRequestAttributes.getRequest().getHeader("X-Username"));
return UserStatus.ofValue(payload.getStatus()).getDescription();
}

@Override
public PageResponseBodyBean<User> getUserPageList(@Valid @NotNull GetUserPageListPayload payload) {
val page = new Page<User>(payload.getCurrentPage(), payload.getPageSize());
val queryWrapper = Wrappers.lambdaQuery(User.class);
if (StrUtil.isNotBlank(payload.getUsername())) {
queryWrapper.like(User::getUsername, payload.getUsername());
}
final var page1 = this.page(page, queryWrapper);
return PageResponseBodyBean.ofSuccess(page1.getRecords(), page1.getTotal());
}
}
Loading

0 comments on commit 28928b8

Please sign in to comment.