|  |  |  | 
|---|
|  |  |  | import cc.mrbird.febs.common.utils.MallUtils; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.entity.*; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.mapper.*; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.vo.AdminMailGoodsDetailVo; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.vo.AdminMallNewsInfoVo; | 
|---|
|  |  |  | import cc.mrbird.febs.vip.entity.MallVipBenefits; | 
|---|
|  |  |  | import cc.mrbird.febs.vip.entity.MallVipBenefitsDetails; | 
|---|
|  |  |  | import cc.mrbird.febs.vip.entity.MallVipBenefitsRecord; | 
|---|
|  |  |  | import cc.mrbird.febs.vip.entity.MallVipConfig; | 
|---|
|  |  |  | import cc.mrbird.febs.vip.mapper.MallVipBenefitsDetailsMapper; | 
|---|
|  |  |  | import cc.mrbird.febs.vip.mapper.MallVipBenefitsMapper; | 
|---|
|  |  |  | import cc.mrbird.febs.vip.mapper.MallVipBenefitsRecordMapper; | 
|---|
|  |  |  | import cc.mrbird.febs.vip.mapper.MallVipConfigMapper; | 
|---|
|  |  |  | 
|---|
|  |  |  | import cn.hutool.core.date.DatePattern; | 
|---|
|  |  |  | import cn.hutool.core.date.DateUtil; | 
|---|
|  |  |  | import cn.hutool.core.util.IdUtil; | 
|---|
|  |  |  | import cn.hutool.core.util.ObjectUtil; | 
|---|
|  |  |  | import cn.hutool.core.util.StrUtil; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.metadata.IPage; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.metadata.OrderItem; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 
|---|
|  |  |  | import lombok.RequiredArgsConstructor; | 
|---|
|  |  |  | 
|---|
|  |  |  | mallMemberCouponMapper.insert(memberCoupon); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | record.setReceiveName(coupon.getName()); | 
|---|
|  |  |  | record.setStatus(1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | mallVipBenefitsRecordMapper.insert(record); | 
|---|
|  |  |  | 
|---|
|  |  |  | public Map<String, Object> birthdayEvent() { | 
|---|
|  |  |  | MallMember loginUser = LoginUserUtil.getLoginUser(); | 
|---|
|  |  |  | MallMember member = this.mallMemberMapper.selectById(loginUser.getId()); | 
|---|
|  |  |  | if(null == member.getBirthday()){ | 
|---|
|  |  |  | return new HashMap<>(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String today = DateUtil.format(new Date(), DatePattern.NORM_DATE_PATTERN); | 
|---|
|  |  |  | boolean isBirthday = member.getBirthday().compareTo(DateUtil.parseDate(today)) == 0; | 
|---|
|  |  |  | 
|---|
|  |  |  | return new HashMap<>(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<String> ids = new ArrayList<>(); | 
|---|
|  |  |  | benefits.forEach(item -> { | 
|---|
|  |  |  | ids.addAll(item.getDetails().stream().filter(detail -> detail.getLinkType() == 2 || detail.getLinkType() == 3).map(MallVipBenefitsDetails::getContent).collect(Collectors.toList())); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | LambdaQueryWrapper<MallVipBenefitsRecord> recordQuery = new LambdaQueryWrapper<>(); | 
|---|
|  |  |  | recordQuery.in(MallVipBenefitsRecord::getReceiveId, ids) | 
|---|
|  |  |  | .eq(MallVipBenefitsRecord::getMemberId, member.getId()) | 
|---|
|  |  |  | .ge(MallVipBenefitsRecord::getReceiveTime, DateUtil.beginOfDay(new Date())) | 
|---|
|  |  |  | .le(MallVipBenefitsRecord::getReceiveTime, DateUtil.endOfDay(new Date())); | 
|---|
|  |  |  | List<MallVipBenefitsRecord> hasRecieveList = mallVipBenefitsRecordMapper.selectList(recordQuery); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Map<String, Object> map = new HashMap<>(); | 
|---|
|  |  |  | map.put("benefit", benefits.get(0)); | 
|---|
|  |  |  | if (CollUtil.isEmpty(hasRecieveList)) { | 
|---|
|  |  |  | map.put("benefit", benefits.get(0)); | 
|---|
|  |  |  | return map; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<Long> hasIds = hasRecieveList.stream().map(MallVipBenefitsRecord::getReceiveId).collect(Collectors.toList()); | 
|---|
|  |  |  | List<MallVipBenefits> collect1 = benefits.stream().peek(item -> { | 
|---|
|  |  |  | List<MallVipBenefitsDetails> collect = item.getDetails().stream().filter(detail -> (detail.getLinkType() == 2 || detail.getLinkType() == 3) && !hasIds.contains(Long.parseLong(detail.getContent()))).collect(Collectors.toList()); | 
|---|
|  |  |  | item.setDetails(collect); | 
|---|
|  |  |  | }).filter(item -> CollUtil.isNotEmpty(item.getDetails())).collect(Collectors.toList()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (CollUtil.isEmpty(collect1)) { | 
|---|
|  |  |  | return map; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | map.put("benefit", collect1.get(0)); | 
|---|
|  |  |  | return map; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public IPage<MallVipBenefitsRecord> findVipBenefitsInPage(MallVipBenefitsRecord record, QueryRequest request) { | 
|---|
|  |  |  | Page<MallVipBenefitsRecord> page = new Page<>(request.getPageNum(), request.getPageSize()); | 
|---|
|  |  |  | return mallVipBenefitsRecordMapper.selectMemberBenefitsRecordInPage(record, page); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|