| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package com.zswl.dataservice.dao.impl;
- import com.zswl.dataservice.dao.extend.UserDaoExtend;
- import com.zswl.dataservice.domain.user.User;
- import com.zswl.dataservice.helper.DBHelper;
- import com.zswl.dataservice.model.user.UserSearchParams;
- import org.apache.commons.lang3.ObjectUtils;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.data.domain.Page;
- import org.springframework.data.domain.Pageable;
- import org.springframework.data.domain.Sort;
- import org.springframework.data.mongodb.core.MongoTemplate;
- import org.springframework.data.mongodb.core.query.Criteria;
- import org.springframework.data.mongodb.core.query.Query;
- import org.springframework.util.CollectionUtils;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.regex.Pattern;
- /**
- * @Author TRX
- * @CreateDate: 2023/4/6
- * @Version: 1.0
- */
- public class UserDaoImpl implements UserDaoExtend {
- @Autowired
- private MongoTemplate mongoTemplate;
- @Autowired
- private DBHelper dbHelper;
- @Override
- public Page<User> page(Pageable pageable, UserSearchParams param) {
- Criteria criteria = new Criteria();
- if (param.getUserType() != null) {
- criteria.and("userType").is(param.getUserType());
- }
- // 模糊搜索
- List<Criteria> criterias = new ArrayList<>();
- if (StringUtils.isNotEmpty(param.getLoginName())) {
- Pattern pattern = Pattern.compile("^.*" + param.getLoginName() + ".*$");
- criterias.add(Criteria.where("loginName").is(pattern));
- }
- if (StringUtils.isNotEmpty(param.getUserName())) {
- Pattern pattern = Pattern.compile("^.*" + param.getUserName() + ".*$");
- criterias.add(Criteria.where("userName").is(pattern));
- }
- if (StringUtils.isNotEmpty(param.getPhone())) {
- Pattern pattern = Pattern.compile("^.*" + param.getPhone() + ".*$");
- criterias.add(Criteria.where("phone").is(pattern));
- }
- if (!CollectionUtils.isEmpty(criterias)) {
- criteria.andOperator(criterias.toArray(new Criteria[]{}));
- }
- criteria.and("loginName").ne("admin");
- criteria.and("isDelete").ne(Boolean.TRUE);
- Sort sort = param.getSort();
- if (ObjectUtils.isEmpty(sort)) {
- sort = Sort.by(Sort.Order.desc("createTime"));
- }
- Query query = Query.query(criteria);
- query.with(sort);
- return dbHelper.pages(query, pageable, User.class);
- }
- }
|