package cc.mrbird.febs.vip.service.impl;
|
|
import cc.mrbird.febs.common.entity.QueryRequest;
|
import cc.mrbird.febs.common.exception.FebsException;
|
import cc.mrbird.febs.mall.entity.MallNewsInfo;
|
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.mapper.MallVipBenefitsDetailsMapper;
|
import cc.mrbird.febs.vip.mapper.MallVipBenefitsMapper;
|
import cc.mrbird.febs.vip.service.IMallVipBenefitsDetailsService;
|
import cc.mrbird.febs.vip.service.IMallVipBenefitsService;
|
import cn.hutool.core.collection.CollUtil;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import lombok.RequiredArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
@Slf4j
|
@Service
|
@RequiredArgsConstructor
|
public class MallVipBenefitsServiceImpl extends ServiceImpl<MallVipBenefitsMapper, MallVipBenefits> implements IMallVipBenefitsService {
|
|
private final IMallVipBenefitsDetailsService mallVipBenefitsDetailsService;
|
|
@Override
|
public IPage<MallVipBenefits> vipBenefitsListInPage(QueryRequest request) {
|
Page<MallVipBenefits> page = new Page<>(request.getPageNum(), request.getPageSize());
|
return this.baseMapper.selectVipBenefitsListInPage(page);
|
}
|
|
@Override
|
public MallVipBenefits findVipBenefitsById(Long id) {
|
return this.baseMapper.selectVipBenefitsById(id);
|
}
|
|
@Override
|
@Transactional
|
public void addVipBenefits(MallVipBenefits mallVipBenefits) {
|
if (mallVipBenefits == null) {
|
return;
|
}
|
|
if (CollUtil.isEmpty(mallVipBenefits.getDetails())) {
|
throw new FebsException("权益明细不能为空");
|
}
|
|
this.baseMapper.insert(mallVipBenefits);
|
|
mallVipBenefits.getDetails().forEach(item -> {
|
item.setBenefitsId(mallVipBenefits.getId());
|
});
|
this.mallVipBenefitsDetailsService.saveBatch(mallVipBenefits.getDetails());
|
}
|
|
@Override
|
@Transactional
|
public void delVipBenefits(Long id) {
|
this.baseMapper.deleteById(id);
|
|
LambdaQueryWrapper<MallVipBenefitsDetails> delQuery = new LambdaQueryWrapper<>();
|
delQuery.eq(MallVipBenefitsDetails::getBenefitsId, id);
|
this.mallVipBenefitsDetailsService.remove(delQuery);
|
}
|
|
@Override
|
@Transactional
|
public void editVipBenefits(MallVipBenefits mallVipBenefits) {
|
if (mallVipBenefits.getId() == null) {
|
throw new FebsException("缺少重要参数");
|
}
|
|
this.baseMapper.updateById(mallVipBenefits);
|
|
LambdaQueryWrapper<MallVipBenefitsDetails> delQuery = new LambdaQueryWrapper<>();
|
delQuery.eq(MallVipBenefitsDetails::getBenefitsId, mallVipBenefits.getId());
|
this.mallVipBenefitsDetailsService.remove(delQuery);
|
|
mallVipBenefits.getDetails().forEach(item -> {
|
item.setBenefitsId(mallVipBenefits.getId());
|
});
|
this.mallVipBenefitsDetailsService.saveBatch(mallVipBenefits.getDetails());
|
|
}
|
|
|
}
|