package cc.mrbird.febs.vip.service.impl;
|
|
import cc.mrbird.febs.common.entity.QueryRequest;
|
import cc.mrbird.febs.vip.entity.MallVipConfig;
|
import cc.mrbird.febs.vip.entity.MallVipConfigBenefits;
|
import cc.mrbird.febs.vip.mapper.MallVipConfigBenefitsMapper;
|
import cc.mrbird.febs.vip.mapper.MallVipConfigMapper;
|
import cc.mrbird.febs.vip.service.IMallVipConfigBenefitsService;
|
import cc.mrbird.febs.vip.service.IMallVipConfigService;
|
import cn.hutool.core.collection.CollUtil;
|
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.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;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
@Slf4j
|
@Service
|
@RequiredArgsConstructor
|
public class MallVipConfigServiceImpl extends ServiceImpl<MallVipConfigMapper, MallVipConfig> implements IMallVipConfigService {
|
|
private final IMallVipConfigBenefitsService mallVipConfigBenefitsService;
|
|
@Override
|
public IPage<MallVipConfig> vipConfigList(QueryRequest request) {
|
Page<MallVipConfig> page = new Page<>(request.getPageNum(), request.getPageSize());
|
return this.baseMapper.findVipConfigListInPage(page);
|
}
|
|
@Override
|
public List<MallVipConfig> findConfigList() {
|
return this.baseMapper.selectVipConfigList();
|
}
|
|
@Override
|
@Transactional
|
public void addVipConfig(MallVipConfig config) {
|
this.baseMapper.insert(config);
|
|
List<MallVipConfigBenefits> configBenefitsList = new ArrayList<>();
|
List<String> benefitsIds = StrUtil.split(config.getBenefitsIds(), ',');
|
benefitsIds.forEach(item -> {
|
MallVipConfigBenefits configBenefits = new MallVipConfigBenefits();
|
configBenefits.setConfigId(config.getId());
|
configBenefits.setBenefitsId(Long.parseLong(item));
|
configBenefitsList.add(configBenefits);
|
});
|
|
mallVipConfigBenefitsService.saveBatch(configBenefitsList);
|
}
|
|
@Override
|
@Transactional
|
public void delVipConfig(Long id) {
|
this.baseMapper.deleteById(id);
|
|
LambdaQueryWrapper<MallVipConfigBenefits> delQuery = new LambdaQueryWrapper<>();
|
delQuery.eq(MallVipConfigBenefits::getConfigId, id);
|
this.mallVipConfigBenefitsService.remove(delQuery);
|
}
|
}
|