UserDaoImpl.java 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package com.zswl.dataservice.dao.impl;
  2. import com.zswl.dataservice.dao.extend.UserDaoExtend;
  3. import com.zswl.dataservice.domain.user.User;
  4. import com.zswl.dataservice.helper.DBHelper;
  5. import com.zswl.dataservice.model.user.UserSearchParams;
  6. import org.apache.commons.lang3.ObjectUtils;
  7. import org.apache.commons.lang3.StringUtils;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.data.domain.Page;
  10. import org.springframework.data.domain.Pageable;
  11. import org.springframework.data.domain.Sort;
  12. import org.springframework.data.mongodb.core.MongoTemplate;
  13. import org.springframework.data.mongodb.core.query.Criteria;
  14. import org.springframework.data.mongodb.core.query.Query;
  15. import org.springframework.util.CollectionUtils;
  16. import java.util.ArrayList;
  17. import java.util.List;
  18. import java.util.regex.Pattern;
  19. /**
  20. * @Author TRX
  21. * @CreateDate: 2023/4/6
  22. * @Version: 1.0
  23. */
  24. public class UserDaoImpl implements UserDaoExtend {
  25. @Autowired
  26. private MongoTemplate mongoTemplate;
  27. @Autowired
  28. private DBHelper dbHelper;
  29. @Override
  30. public Page<User> page(Pageable pageable, UserSearchParams param) {
  31. Criteria criteria = new Criteria();
  32. if (param.getUserType() != null) {
  33. criteria.and("userType").is(param.getUserType());
  34. }
  35. // 模糊搜索
  36. List<Criteria> criterias = new ArrayList<>();
  37. if (StringUtils.isNotEmpty(param.getLoginName())) {
  38. Pattern pattern = Pattern.compile("^.*" + param.getLoginName() + ".*$");
  39. criterias.add(Criteria.where("loginName").is(pattern));
  40. }
  41. if (StringUtils.isNotEmpty(param.getUserName())) {
  42. Pattern pattern = Pattern.compile("^.*" + param.getUserName() + ".*$");
  43. criterias.add(Criteria.where("userName").is(pattern));
  44. }
  45. if (StringUtils.isNotEmpty(param.getPhone())) {
  46. Pattern pattern = Pattern.compile("^.*" + param.getPhone() + ".*$");
  47. criterias.add(Criteria.where("phone").is(pattern));
  48. }
  49. if (!CollectionUtils.isEmpty(criterias)) {
  50. criteria.andOperator(criterias.toArray(new Criteria[]{}));
  51. }
  52. criteria.and("loginName").ne("admin");
  53. criteria.and("isDelete").ne(Boolean.TRUE);
  54. Sort sort = param.getSort();
  55. if (ObjectUtils.isEmpty(sort)) {
  56. sort = Sort.by(Sort.Order.desc("createTime"));
  57. }
  58. Query query = Query.query(criteria);
  59. query.with(sort);
  60. return dbHelper.pages(query, pageable, User.class);
  61. }
  62. }