| | |
| | | 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; |
| | |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Slf4j |
| | | @Service |
| | |
| | | return; |
| | | } |
| | | |
| | | if (CollUtil.isEmpty(mallVipBenefits.getDetails())) { |
| | | throw new FebsException("权益明细不能为空"); |
| | | } |
| | | // if (CollUtil.isEmpty(mallVipBenefits.getDetails())) { |
| | | // throw new FebsException("权益明细不能为空"); |
| | | // } |
| | | |
| | | this.baseMapper.insert(mallVipBenefits); |
| | | |
| | | mallVipBenefits.getDetails().forEach(item -> { |
| | | item.setBenefitsId(mallVipBenefits.getId()); |
| | | }); |
| | | if (CollUtil.isNotEmpty(mallVipBenefits.getDetails())) { |
| | | mallVipBenefits.getDetails().forEach(item -> { |
| | | item.setBenefitsId(mallVipBenefits.getId()); |
| | | }); |
| | | } |
| | | this.mallVipBenefitsDetailsService.saveBatch(mallVipBenefits.getDetails()); |
| | | } |
| | | |
| | |
| | | throw new FebsException("权益不存在"); |
| | | } |
| | | |
| | | if (benefits.getIsClick() == 2) { |
| | | throw new FebsException("请联系客服,检查权益设置"); |
| | | } |
| | | |
| | | MallVipBenefits vipBenefits = this.baseMapper.selectById(benefits.getBenefitsId()); |
| | | if (vipBenefits == null) { |
| | | throw new FebsException("权益不存在"); |
| | |
| | | recordQuery.ge(MallVipBenefitsRecord::getReceiveTime, DateUtil.beginOfDay(new Date())) |
| | | .le(MallVipBenefitsRecord::getReceiveTime, DateUtil.endOfDay(new Date())) |
| | | .eq(MallVipBenefitsRecord::getMemberId, member.getId()) |
| | | .eq(MallVipBenefitsRecord::getBenefitsType, vipBenefits.getType()) |
| | | .eq(MallVipBenefitsRecord::getBenefitsType, vipBenefits.getGainType()) |
| | | .eq(MallVipBenefitsRecord::getReceiveId, Long.parseLong(benefits.getContent())); |
| | | List<MallVipBenefitsRecord> mallVipBenefitsRecords = mallVipBenefitsRecordMapper.selectList(recordQuery); |
| | | if (CollUtil.isNotEmpty(mallVipBenefitsRecords)) { |
| | |
| | | memberCoupon.setInviteId(member.getInviteId()); |
| | | memberCoupon.setCouponUuid(IdUtil.simpleUUID()); |
| | | memberCoupon.setState(1); |
| | | memberCoupon.setFromType(2); |
| | | memberCoupon.setExpireTime(DateUtil.offsetDay(DateUtil.date(), coupon.getExpireDay())); |
| | | memberCoupon.setMemberId(member.getId()); |
| | | mallMemberCouponMapper.insert(memberCoupon); |
| | | |
| | | record.setReceiveName(coupon.getName()); |
| | | record.setStatus(1); |
| | | } |
| | | |
| | | mallVipBenefitsRecordMapper.insert(record); |
| | | } |
| | | |
| | | @Override |
| | | public void switchBenefitsShow(Long id) { |
| | | MallVipBenefits vipBenefits = this.baseMapper.selectById(id); |
| | | |
| | | MallVipBenefits update = new MallVipBenefits(); |
| | | if (vipBenefits.getIsShow() == 1) { |
| | | update.setIsShow(2); |
| | | } else { |
| | | update.setIsShow(1); |
| | | } |
| | | |
| | | update.setId(vipBenefits.getId()); |
| | | this.baseMapper.updateById(update); |
| | | } |
| | | |
| | | @Override |
| | | 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; |
| | | if (!isBirthday) { |
| | | return new HashMap<>(); |
| | | } |
| | | |
| | | MallVipConfig configList = mallVipConfigMapper.selectVipConfigByCode(member.getLevel()); |
| | | |
| | | List<MallVipBenefits> benefits = configList.getBenefits().stream().filter(item -> item.getGainType() == 2 && item.getType() != 1).collect(Collectors.toList()); |
| | | if (CollUtil.isEmpty(benefits)) { |
| | | 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<>(); |
| | | 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); |
| | | } |
| | | } |