From 095eb642b440c3c3b9ed2e553a666970ac1032ab Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期三, 03 九月 2025 16:15:26 +0800 Subject: [PATCH] 用户消费金额与总订单数,按标签过滤会员,订单列表会员名称与导出 --- framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java | 110 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 99 insertions(+), 11 deletions(-) diff --git a/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java b/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java index bc00f42..ed570fb 100644 --- a/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java +++ b/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); } //鍒ゆ柇瀵嗙爜鏄惁杈撳叆姝g‘ + 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")); + } + } -- Gitblit v1.8.0