| | |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.lang.Assert; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; |
| | | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| | | import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; |
| | | import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserPageReqVO; |
| | | import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | |
| | | |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | import java.util.stream.IntStream; |
| | | |
| | | /** |
| | | * 会员 User Mapper |
| | |
| | | return selectOne(MemberUserDO::getMobile, mobile); |
| | | } |
| | | |
| | | default MemberUserDO selectByEmail(String email) { |
| | | return selectOne(MemberUserDO::getEmail, email); |
| | | } |
| | | |
| | | default List<MemberUserDO> selectListByNicknameLike(String nickname) { |
| | | return selectList(new LambdaQueryWrapperX<MemberUserDO>() |
| | | .likeIfPresent(MemberUserDO::getNickname, nickname)); |
| | |
| | | default PageResult<MemberUserDO> selectPage(MemberUserPageReqVO reqVO) { |
| | | // 处理 tagIds 过滤条件 |
| | | String tagIdSql = ""; |
| | | Object[] tagIdParams = new Object[0]; |
| | | if (CollUtil.isNotEmpty(reqVO.getTagIds())) { |
| | | tagIdSql = reqVO.getTagIds().stream() |
| | | .map(tagId -> "FIND_IN_SET(" + tagId + ", tag_ids)") |
| | | tagIdSql = IntStream.range(0, reqVO.getTagIds().size()) |
| | | .mapToObj(index -> MyBatisUtils.findInSetWithParamIndex("tag_ids", index)) |
| | | .collect(Collectors.joining(" OR ")); |
| | | tagIdParams = reqVO.getTagIds().toArray(); |
| | | } |
| | | // 分页查询 |
| | | return selectPage(reqVO, new LambdaQueryWrapperX<MemberUserDO>() |
| | | .likeIfPresent(MemberUserDO::getMobile, reqVO.getMobile()) |
| | | .likeIfPresent(MemberUserDO::getEmail, reqVO.getEmail()) |
| | | .betweenIfPresent(MemberUserDO::getLoginDate, reqVO.getLoginDate()) |
| | | .likeIfPresent(MemberUserDO::getNickname, reqVO.getNickname()) |
| | | .betweenIfPresent(MemberUserDO::getCreateTime, reqVO.getCreateTime()) |
| | | .eqIfPresent(MemberUserDO::getLevelId, reqVO.getLevelId()) |
| | | .eqIfPresent(MemberUserDO::getGroupId, reqVO.getGroupId()) |
| | | .apply(StrUtil.isNotEmpty(tagIdSql), tagIdSql) |
| | | .apply(CollUtil.isNotEmpty(reqVO.getTagIds()), tagIdSql, tagIdParams) |
| | | .orderByDesc(MemberUserDO::getId)); |
| | | } |
| | | |
| | |
| | | |
| | | default Long selectCountByTagId(Long tagId) { |
| | | return selectCount(new LambdaQueryWrapperX<MemberUserDO>() |
| | | .apply("FIND_IN_SET({0}, tag_ids)", tagId)); |
| | | .apply(MyBatisUtils.findInSet("tag_ids"), tagId)); |
| | | } |
| | | |
| | | /** |