From fc39a04331e80226d50242ac1ec27f93494fb359 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期二, 30 五月 2023 18:23:09 +0800 Subject: [PATCH] 用户管理 --- ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java | 205 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 201 insertions(+), 4 deletions(-) diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java index 4b092e9..fe39f94 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java @@ -1,4 +1,5 @@ package com.ruoyi.member.service.impl.member; +import com.google.common.collect.Lists; import java.util.Date; import cn.binarywang.wx.miniapp.api.WxMaService; @@ -11,21 +12,22 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.utils.bean.BeanUtils; import com.ruoyi.common.core.utils.uuid.IdUtils; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.member.domain.dto.*; +import com.ruoyi.member.domain.pojo.member.IntegralRecord; import com.ruoyi.member.domain.pojo.member.MemberNurse; import com.ruoyi.member.domain.pojo.member.MemberTotal; import com.ruoyi.member.domain.vo.*; import com.ruoyi.member.mapper.member.MemberMapper; -import com.ruoyi.member.service.member.MemberNurseService; -import com.ruoyi.member.service.member.MemberService; -import com.ruoyi.member.service.member.MemberTotalService; +import com.ruoyi.member.service.member.*; import com.ruoyi.member.util.CodeFactoryUtil; import com.ruoyi.member.util.HttpUtils; import com.ruoyi.system.api.domain.dto.AppMiniRegisterDto; +import com.ruoyi.system.api.domain.poji.config.Activeness; import com.ruoyi.system.api.domain.vo.AppMiniRegisterVo; import com.ruoyi.system.api.service.RemoteConfigService; import com.ruoyi.system.api.service.RemoteOrderService; @@ -43,6 +45,7 @@ import com.ruoyi.system.api.domain.vo.AppOrderTotalVo; import com.ruoyi.system.api.model.AppMiniLoginDto; import com.ruoyi.system.api.model.AppMiniLoginVo; +import io.swagger.models.auth.In; import lombok.extern.log4j.Log4j2; import com.ruoyi.common.core.utils.StringUtils; import org.apache.commons.lang3.ArrayUtils; @@ -102,6 +105,13 @@ @Resource private MemberTotalService memberTotalService; + + @Resource + private IntegralRecordService integralRecordService; + + @Resource + private MemberArchiveService memberArchiveService; + /** * @description: TODO @@ -655,8 +665,195 @@ */ @Override public List<MgtMemberPageVo> pageMgtMember(Page page,MgtMemberPageDto merMemberPageDto){ + List<Activeness> activenessList = remoteConfigService.listActiveness().getData(); + Date nowDay = DateUtils.getNowDate(); + //处理活跃度筛选 + if(activenessList!=null&&!activenessList.isEmpty()){ + for(Activeness activeness : activenessList){ + if(activeness.getActivenessId().equals(merMemberPageDto.getActivenessId())){ + merMemberPageDto.setActStartDate(DateUtils.addDays(nowDay,activeness.getEndDay())); + merMemberPageDto.setActEndDate(DateUtils.addDays(nowDay,activeness.getStartDay())); + } + } + } + //查询获取结果列表 List<MgtMemberPageVo> memberPageVoList = memberMapper.pageMgtMember(page, merMemberPageDto); - + //处理活跃度返回 + if(memberPageVoList!=null&&!memberPageVoList.isEmpty()){ + if(activenessList!=null&&!activenessList.isEmpty()){ + //生成活跃度时间段列表 + List<MgtActivenessJudgeVo> mgtActivenessJudgeVoList = new ArrayList<>(); + MgtActivenessJudgeVo mgtActivenessJudgeVo; + for(Activeness activeness : activenessList){ + mgtActivenessJudgeVo = new MgtActivenessJudgeVo(); + mgtActivenessJudgeVo.setStartDay(DateUtils.addDays(new Date(),activeness.getEndDay())); + mgtActivenessJudgeVo.setEndDay(DateUtils.addDays(new Date(),activeness.getStartDay()-1)); + mgtActivenessJudgeVo.setActivenessName(activeness.getActivenessName()); + } + //活跃度赋值 + Date lastPayTime; + for(MgtMemberPageVo mgtMemberPageVo : memberPageVoList){ + lastPayTime = mgtMemberPageVo.getLastPayTime(); + StringJoiner sj = new StringJoiner(","); + if(lastPayTime!=null){ + for(MgtActivenessJudgeVo entity: mgtActivenessJudgeVoList){ + if(lastPayTime.compareTo(entity.getStartDay())>=0&&lastPayTime.compareTo(entity.getEndDay())<=0){ + sj.add(entity.getActivenessName()); + } + } + if(sj.length()>0){ + mgtMemberPageVo.setActiveness(sj.toString()); + } + } + } + } + } return memberPageVoList; } + + + /** + * 修改会员关联商户 + * @param mgtMemberRelEditDto + */ + @Override + public void editMemberRelationShop(MgtMemberRelEditDto mgtMemberRelEditDto){ + Member member = this.getByUserId(mgtMemberRelEditDto.getMemberUserId()); + Shop shop = shopService.getShop(mgtMemberRelEditDto.getShopId()).getData(); + member.setRelationShopId(shop.getShopId()); + member.setRelationShopName(shop.getShopName()); + member.setBindingFlag(1); + member.setUpdateTime(new Date()); + member.setUpdateUserId(mgtMemberRelEditDto.getUserId()); + this.saveOrUpdate(member); + } + + + /** + * 删除会员关联商户 + * @param mgtMemberRelDelDto + */ + @Override + public void deleteMemberRelationShop(MgtMemberRelDelDto mgtMemberRelDelDto){ + Member member = this.getById(mgtMemberRelDelDto.getMemberUserId()); + member.setBindingFlag(0); + member.setUpdateTime(new Date()); + member.setUpdateUserId(mgtMemberRelDelDto.getUserId()); + this.saveOrUpdate(member); + } + + /** + * 修改会员积分 + * @param mgtMemberIntEditDto + */ + @Override + public void editMemberIntegral(MgtMemberIntEditDto mgtMemberIntEditDto){ + MemberIntegralChangeDto memberIntegralChangeDto = new MemberIntegralChangeDto(); + Member member = this.getByUserId(mgtMemberIntEditDto.getMemberUserId()); + memberIntegralChangeDto.setMemberId(member.getMemberId()); + memberIntegralChangeDto.setChangeType(1); + memberIntegralChangeDto.setRecordType(3); + memberIntegralChangeDto.setIntegral(mgtMemberIntEditDto.getIntegral()); + //调用积分变动 + memberIntegralChange(memberIntegralChangeDto); + } + + + + /** + * 会员积分变动 + * @param memberIntegralChangeDto + */ + @Override + public void memberIntegralChange(MemberIntegralChangeDto memberIntegralChangeDto){ + MemberTotal memberTotal = memberTotalService.getById(memberIntegralChangeDto.getMemberId()); + Integer recordType = memberIntegralChangeDto.getRecordType(); + Integer changeType = memberIntegralChangeDto.getChangeType(); + Integer integer = memberIntegralChangeDto.getIntegral(); + Integer totalIntegral = memberTotal.getTotalIntegral(); + Integer usedIntegral = memberTotal.getUsedIntegral(); + Integer useableIntegral = memberTotal.getUseableIntegral(); + //变动统计 + if(changeType==1){ + totalIntegral = totalIntegral + integer; + useableIntegral = useableIntegral + integer; + memberTotal.setTotalIntegral(totalIntegral); + memberTotal.setUseableIntegral(useableIntegral); + }else if(changeType==2){ + usedIntegral = usedIntegral + integer; + useableIntegral = useableIntegral - integer; + if(useableIntegral<0){ + throw new ServiceException(AppErrorConstant.INTEGRAL_USE_FAILED); + } + memberTotal.setTotalIntegral(totalIntegral); + memberTotal.setUseableIntegral(useableIntegral); + memberTotal.setUsedIntegral(usedIntegral); + } + memberTotalService.saveOrUpdate(memberTotal); + //记录变动 + IntegralRecord integralRecord = new IntegralRecord(); + integralRecord.setDelFlag(0); + integralRecord.setChangeType(recordType); + if(changeType==1){ + integralRecord.setChangeIntegral(integer); + }else if(changeType==2){ + integralRecord.setChangeIntegral( 0-integer); + } + integralRecord.setSurpIntegral(useableIntegral); + integralRecord.setCreateTime(new Date()); + integralRecord.setOrderId(memberIntegralChangeDto.getOrderId()); + integralRecord.setOrderNo(memberIntegralChangeDto.getOrderNo()); + switch (recordType){ + case 1: + integralRecord.setChangeReason("购物赠送"); + break; + case 2: + integralRecord.setChangeReason("活动赠送"); + break; + case 3: + integralRecord.setChangeReason("平台赠送"); + break; + default: + break; + } + integralRecordService.saveOrUpdate(integralRecord); + } + + /** + * 平台获取会员信息 + * @param userId + * @return + */ + @Override + public MgtMemberGetVo getMgtMemberInfo(Long userId){ + MgtMemberGetVo mgtMemberGetVo = new MgtMemberGetVo(); + Member member = this.getByUserId(userId); + MemberTotal memberTotal = memberTotalService.getById(member.getMemberId()); + List<MemberArchiveVo> memberArchiveVoList = memberArchiveService.listVoByUserId(member.getUserId()); + if(memberArchiveVoList!=null&&!memberArchiveVoList.isEmpty()){ + //去掉未完善信息 + memberArchiveVoList.removeIf(o -> Objects.isNull(o.getFieldValue())); + } + mgtMemberGetVo.setMemberId(member.getMemberId()); + mgtMemberGetVo.setUserId(member.getUserId()); + mgtMemberGetVo.setMemberNo(member.getMemberNo()); + mgtMemberGetVo.setRealName(member.getRealName()); + mgtMemberGetVo.setNickName(member.getNickName()); + mgtMemberGetVo.setMobile(member.getMobile()); + mgtMemberGetVo.setGender(member.getGender()==0 ? "男" : member.getGender()==1 ? "女" : null); + mgtMemberGetVo.setBirthday(member.getBirthday()); + mgtMemberGetVo.setBelongDistrict(member.getBelongDistrict()); + mgtMemberGetVo.setCreateTime(member.getCreateTime()); + mgtMemberGetVo.setLastPayTime(memberTotal.getLastPayTime()); + mgtMemberGetVo.setGoodsType(member.getGoodsType()); + mgtMemberGetVo.setRelationShopName(member.getRelationShopName()); + mgtMemberGetVo.setIntegral(memberTotal.getTotalIntegral()); + mgtMemberGetVo.setMemberFrom(member.getCustomerSource()); + mgtMemberGetVo.setTotalActivityCount(memberTotal.getTotalActivityCount()); + mgtMemberGetVo.setTotalPayMoney(memberTotal.getTotalPayMoney()); + mgtMemberGetVo.setMemberRemark(null); + mgtMemberGetVo.setMemberArchiveVoList(memberArchiveVoList); + mgtMemberGetVo.setMemberTags(member.getUserTags()); + return mgtMemberGetVo; + } } -- Gitblit v1.7.1