zxl
7 天以前 6db5d5a8fca3aa7e08190c2cfde2fa6cc72cfea2
framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java
@@ -3,6 +3,7 @@
import cn.hutool.core.convert.Convert;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.crypto.SecureUtil;
import cn.lili.base.Result;
import cn.lili.cache.Cache;
import cn.lili.cache.CachePrefix;
@@ -24,6 +25,9 @@
import cn.lili.modules.connect.entity.dto.ConnectAuthUser;
import cn.lili.modules.connect.service.ConnectService;
import cn.lili.modules.lmk.domain.entity.VideoAccount;
import cn.lili.modules.lmk.domain.form.MemberNickNameForm;
import cn.lili.modules.lmk.domain.form.MemberTagForm;
import cn.lili.modules.lmk.service.MemberTagService;
import cn.lili.modules.lmk.service.VideoAccountService;
import cn.lili.modules.member.aop.annotation.PointLogPoint;
import cn.lili.modules.member.entity.dos.Member;
@@ -44,10 +48,12 @@
import cn.lili.mybatis.util.PageUtil;
import cn.lili.rocketmq.RocketmqSendCallbackBuilder;
import cn.lili.rocketmq.tags.MemberTagsEnum;
import cn.lili.utils.COSUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
@@ -62,6 +68,7 @@
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
 * 会员接口业务层实现
@@ -111,6 +118,12 @@
    @Autowired
    private VideoAccountService videoAccountService;
    @Autowired
    private MemberTagService memberTagService;
    @Autowired
    private COSUtil cosUtil;
    @Override
    public Member findByUsername(String userName) {
@@ -199,6 +212,7 @@
            throw new ServiceException(ResultCode.USER_NOT_EXIST);
        }
        //判断密码是否输入正确
        if (!new BCryptPasswordEncoder().matches(password, member.getPassword())) {
            throw new ServiceException(ResultCode.USER_PASSWORD_ERROR);
        }
@@ -244,19 +258,24 @@
    @Override
    @Transactional
    public Member autoRegister(ConnectAuthUser authUser) {
    public Member autoRegister(ConnectAuthUser authUser,Boolean encryptTwice) {
        if (CharSequenceUtil.isEmpty(authUser.getNickname())) {
            authUser.setNickname(CommonUtil.getSpecialStr("用户"));
        }
        if (CharSequenceUtil.isEmpty(authUser.getAvatar())) {
            authUser.setAvatar("https://i.loli.net/2020/11/19/LyN6JF7zZRskdIe.png");
            authUser.setAvatar("");
        }
        try {
//            String username = UuidUtils.getUUID();
            Member member = new Member(authUser.getUsername(), UuidUtils.getUUID(), authUser.getAvatar(), authUser.getNickname(),
                    authUser.getGender() != null ? Convert.toInt(authUser.getGender().getCode()) : 0, authUser.getPhone());
            member.setPassword(DEFAULT_PASSWORD);
            if(encryptTwice){
                member.setPassword( new BCryptPasswordEncoder().encode(SecureUtil.md5(DEFAULT_PASSWORD)));
            }else {
                member.setPassword( new BCryptPasswordEncoder().encode(DEFAULT_PASSWORD));
            }
            member.setUuId(authUser.getUuid());
            // 发送会员注册信息
            registerHandler(member);
@@ -312,6 +331,7 @@
     * @param member
     */
    @Transactional
    @Override
    public void registerHandler(Member member) {
        member.setId(SnowFlake.getIdStr());
        //保存会员
@@ -485,6 +505,7 @@
    }
    @Override
    @Transactional
    public Member updateMember(ManagerMemberEditDTO managerMemberEditDTO) {
        //过滤会员昵称敏感词
        if (CharSequenceUtil.isNotBlank(managerMemberEditDTO.getNickName())) {
@@ -499,20 +520,42 @@
        //传递修改会员信息
        BeanUtil.copyProperties(managerMemberEditDTO, member);
        this.updateById(member);
        if (managerMemberEditDTO.getTags() != null && !CollectionUtils.isEmpty(managerMemberEditDTO.getTags())) {
            MemberTagForm memberTagForm = new MemberTagForm();
            memberTagForm.setMemberId(member.getId());
            memberTagForm.setTagIds(managerMemberEditDTO.getTags());
            memberTagForm.setCreateType("MANAGER");
            memberTagService.addMemberTag(memberTagForm);
        }
        return member;
    }
    @Override
    public Result resetPassword(String id){
            String password = "123456";
            Member member = this.getById(id);
            member.setPassword(new BCryptPasswordEncoder().encode(password));
            this.updateById(member);
            return Result.ok("重置成功");
    public Result updateMemberNickName(MemberNickNameForm form) {
        Member member = baseMapper.selectById(form.getMemberId());
        boolean update = false;
        if ("微信用户".equals(member.getNickName()) || StringUtils.isBlank(member.getNickName())) {
            member.setNickName(form.getNickName());
            update = true;
        }
        if (update){
            baseMapper.updateById(member);
        }
        return Result.ok().data(member.getNickName());
    }
    @Override
    public Result resetPassword(String id) {
        String password = "111111";
        Member member = this.getById(id);
        member.setPassword(new BCryptPasswordEncoder().encode(SecureUtil.md5(password)));
        this.updateById(member);
        return Result.ok("重置成功");
    }
    @Override
    public Member updateMemberPartProperties(String id,String password,String mobile) {
    public Member updateMemberPartProperties(String id, String password, String mobile) {
        //查询会员信息
        Member member = this.getById(id);
        member.setMobile(mobile);
@@ -534,8 +577,36 @@
        queryWrapper.eq(CharSequenceUtil.isNotBlank(memberSearchVO.getDisabled()), "disabled",
                memberSearchVO.getDisabled().equals(SwitchEnum.OPEN.name()) ? 1 : 0);
        queryWrapper.orderByDesc("create_time");
        return this.baseMapper.pageByMemberVO(PageUtil.initPage(page), queryWrapper);
    }
    @Override
    public IPage<MemberVO> getMemberPageAndTag(MemberSearchVO memberSearchVO, PageVO page) {
        QueryWrapper<Member> queryWrapper = Wrappers.query();
        //用户名查询
        queryWrapper.like(CharSequenceUtil.isNotBlank(memberSearchVO.getUsername()), "username", memberSearchVO.getUsername());
        //用户名查询
        queryWrapper.like(CharSequenceUtil.isNotBlank(memberSearchVO.getNickName()), "nick_name", memberSearchVO.getNickName());
        //按照电话号码查询
        queryWrapper.like(CharSequenceUtil.isNotBlank(memberSearchVO.getMobile()), "mobile", memberSearchVO.getMobile());
        //按照会员状态查询
        queryWrapper.eq(CharSequenceUtil.isNotBlank(memberSearchVO.getDisabled()), "disabled",
                memberSearchVO.getDisabled().equals(SwitchEnum.OPEN.name()) ? 1 : 0);
        queryWrapper.orderByDesc("create_time");
        if (CollectionUtils.isNotEmpty(memberSearchVO.getTagIds())) {
            // 使用inSql方法进行安全的子查询
            String tagIdsStr = memberSearchVO.getTagIds().stream()
                    .map(String::valueOf)
                    .collect(Collectors.joining(","));
            queryWrapper.inSql("id",
                    "SELECT DISTINCT member_id FROM lmk_member_tag WHERE tag_id IN (" +
                            tagIdsStr + ")");
            return this.baseMapper.pageByMemberVO(PageUtil.initPage(page), queryWrapper);
        }
        return this.baseMapper.pageByMemberVO(PageUtil.initPage(page),queryWrapper);
    }
    @Override
    @PointLogPoint
@@ -783,7 +854,13 @@
    @Override
    public MemberVO getMember(String id) {
        return new MemberVO(this.getById(id));
        MemberVO member = baseMapper.getVoById(id);
        if (Objects.nonNull(member)) {
            if(StringUtils.isNotBlank(member.getFace()) && !member.getFace().contains("https")){
                member.setFace(cosUtil.getPreviewUrl(member.getFace()));
            }
        }
        return member;
    }
    @Override
@@ -861,6 +938,13 @@
        return result;
    }
    @Override
    public Member findByUUID(String uuid) {
        QueryWrapper<Member> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("uu_id", uuid);
        return this.baseMapper.selectOne(queryWrapper);
    }
    /**
     * 检测会员
     *
@@ -874,4 +958,8 @@
        }
    }
    public static void main(String[] args) {
        System.err.println(SecureUtil.md5("111111"));
    }
}