选装售后
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

AflUserLoginInfoFindPageHandler.java 5.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. package com.qtzl.alterSales.manager.handler;
  2. import cn.com.taiji.common.manager.net.http.ServiceHandleException;
  3. import cn.hutool.core.bean.BeanUtil;
  4. import com.google.common.collect.Lists;
  5. import com.qtzl.alterSales.dao.entity.second.AflUserLoginInfo;
  6. import com.qtzl.alterSales.dao.repo.jpa.second.AflUserLoginInfoRepo;
  7. import com.qtzl.alterSales.manager.abstracts.AbstractAfterSalesManager;
  8. import com.qtzl.alterSales.manager.enums.AuthenticationStatusEnum;
  9. import com.qtzl.alterSales.manager.model.protocol.UcServiceError;
  10. import com.qtzl.alterSales.manager.model.protocol.sales.AflUserLoginInfoFindPageViewRequest;
  11. import com.qtzl.alterSales.manager.model.protocol.sales.AflUserLoginInfoFindPageViewResponse;
  12. import com.qtzl.alterSales.manager.service.AfterSalesCmd;
  13. import com.qtzl.alterSales.manager.vo.AflUserLoginInfoVo;
  14. import com.txffp.api.core.manager.comm.annotation.ApiHandler;
  15. import org.apache.commons.lang3.StringUtils;
  16. import org.springframework.data.domain.Page;
  17. import org.springframework.data.domain.PageRequest;
  18. import org.springframework.data.domain.Sort;
  19. import org.springframework.stereotype.Service;
  20. import javax.annotation.Resource;
  21. import javax.persistence.criteria.Predicate;
  22. import java.time.LocalDateTime;
  23. import java.util.List;
  24. import java.util.stream.Collectors;
  25. /**
  26. * 查询用户信息分页
  27. */
  28. @Service
  29. @ApiHandler
  30. public class AflUserLoginInfoFindPageHandler extends AbstractAfterSalesManager<AflUserLoginInfoFindPageViewRequest> {
  31. @Resource
  32. AflUserLoginInfoRepo aflUserLoginInfoRepo;
  33. public AflUserLoginInfoFindPageHandler() {
  34. super(AfterSalesCmd.FINDPAGEUSERLOGINFO, AflUserLoginInfoFindPageViewRequest.class);
  35. }
  36. @Override
  37. public String handleInternal(String filename, AflUserLoginInfoFindPageViewRequest request) throws ServiceHandleException {
  38. try {
  39. Page<AflUserLoginInfo> page = select(request);
  40. return toResponse(page,request).toJson();
  41. } catch (Exception e) {
  42. if (e instanceof ServiceHandleException) {
  43. throw e;
  44. }
  45. logger.error("选装-查询用户信息管理失败:{}", e.getMessage());
  46. throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("查询用户信息管理失败");
  47. }
  48. }
  49. private AflUserLoginInfoFindPageViewResponse toResponse(Page<AflUserLoginInfo> page, AflUserLoginInfoFindPageViewRequest request) {
  50. final AflUserLoginInfoFindPageViewResponse response = new AflUserLoginInfoFindPageViewResponse();
  51. response.setCurrentPage(request.getPageNo());
  52. response.setPageSize(request.getPageSize());
  53. response.setPageCount(page.getTotalPages());
  54. response.setTotalCount(page.getTotalElements());
  55. if (isEmpty(page.getContent())) {
  56. response.setData(Lists.newArrayList());
  57. return response;
  58. }
  59. List<AflUserLoginInfoVo> formVoList = page.getContent().stream().map(this::toVo).collect(Collectors.toList());
  60. response.setData(formVoList);
  61. return response;
  62. }
  63. private Page<AflUserLoginInfo> select(AflUserLoginInfoFindPageViewRequest request) throws ServiceHandleException {
  64. if (request.getPageSize() > 100) {
  65. throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("请求每页数量过大 " + request.getPageSize());
  66. }
  67. return aflUserLoginInfoRepo.findAll(((root, query, cb) -> {
  68. List<Predicate> list = Lists.newArrayList();
  69. if (!StringUtils.isEmpty(request.getMobile())) {
  70. list.add(cb.equal(root.<String>get("mobile"), request.getMobile()));
  71. }
  72. if (!StringUtils.isEmpty(request.getPatternOpenId())) {
  73. list.add(cb.equal(root.<String>get("openId"), request.getPatternOpenId()));
  74. }
  75. if (!StringUtils.isEmpty(request.getNickName())) {
  76. list.add(cb.like(root.<String>get("nickName"),"%"+ request.getNickName()+"%"));
  77. }
  78. if (request.getSex()!=null) {
  79. list.add(cb.equal(root.<Integer>get("sex"), request.getSex()));
  80. }
  81. if (request.getStatus()!=null) {
  82. list.add(cb.equal(root.<Integer>get("status"), request.getStatus()));
  83. }
  84. if (request.getInsertTimeEnd()!=null) {
  85. list.add(cb.lessThanOrEqualTo(root.<LocalDateTime>get("insertTime"), request.getInsertTimeEnd()));
  86. }
  87. if (request.getInsertTimeStart()!=null) {
  88. list.add(cb.greaterThanOrEqualTo(root.<LocalDateTime>get("insertTime"), request.getInsertTimeStart()));
  89. }
  90. Predicate[] p = new Predicate[list.size()];
  91. return cb.and(list.toArray(p));
  92. }), PageRequest.of(request.getPageNo() - 1, request.getPageSize(),
  93. Sort.by(Sort.Direction.DESC, "insertTime")));
  94. }
  95. private AflUserLoginInfoVo toVo(AflUserLoginInfo aflUserLoginInfo) {
  96. AflUserLoginInfoVo aflUserLoginInfoVo = new AflUserLoginInfoVo();
  97. BeanUtil.copyProperties(aflUserLoginInfo, aflUserLoginInfoVo);
  98. aflUserLoginInfoVo.setStatus(AuthenticationStatusEnum.YESREALNAME.getCode());
  99. return aflUserLoginInfoVo;
  100. }
  101. }