From 0f9d03ee930d1c2dc62b34dd2c3522cda91f93cf Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期二, 06 六月 2023 14:29:33 +0800 Subject: [PATCH] 基础配置 --- ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java | 209 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 201 insertions(+), 8 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..3220e6c 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 @@ -4,28 +4,26 @@ import cn.binarywang.wx.miniapp.api.WxMaService; import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments; import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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.util.CodeFactoryUtil; +import com.ruoyi.member.service.member.*; 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; @@ -48,8 +46,8 @@ import org.apache.commons.lang3.ArrayUtils; import org.apache.http.HttpResponse; import org.apache.http.util.EntityUtils; -import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; +import com.ruoyi.common.security.utils.CodeFactoryUtil; import javax.annotation.Resource; import java.math.BigDecimal; @@ -102,6 +100,13 @@ @Resource private MemberTotalService memberTotalService; + + @Resource + private IntegralRecordService integralRecordService; + + @Resource + private MemberArchiveService memberArchiveService; + /** * @description: TODO @@ -655,8 +660,196 @@ */ @Override public List<MgtMemberPageVo> pageMgtMember(Page page,MgtMemberPageDto merMemberPageDto){ + List<Activeness> activenessList = remoteConfigService.listActiveness().getData(); + Date nowDay = new Date(); + //处理活跃度筛选 + activenessList.stream() + .filter(activeness -> activeness.getActivenessId().equals(merMemberPageDto.getActivenessId())) + .findFirst() + .ifPresent(activeness -> { + 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.setUserId(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.setUserId(memberIntegralChangeDto.getUserId()); + 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