package cc.mrbird.febs.mall.service.impl; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; import cc.mrbird.febs.common.enumerates.StateUpDownEnum; import cc.mrbird.febs.mall.dto.memberLevel.*; import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.mapper.HappyMemberLabelMapper; import cc.mrbird.febs.mall.mapper.HappyMemberLabelRecordMapper; import cc.mrbird.febs.mall.mapper.HappyMemberLevelMapper; import cc.mrbird.febs.mall.mapper.HappySaleLevelMapper; import cc.mrbird.febs.mall.service.AdminMemberLevelService; import cc.mrbird.febs.mall.vo.memberLevel.AdminMemberLabelSetDto; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; 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.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.List; @Slf4j @Service @RequiredArgsConstructor @Transactional public class AdminMemberLevelServiceImpl extends ServiceImpl implements AdminMemberLevelService { private final HappyMemberLevelMapper happyMemberLevelMapper; private final HappySaleLevelMapper happySaleLevelMapper; private final HappyMemberLabelMapper happyMemberLabelMapper; private final HappyMemberLabelRecordMapper happyMemberLabelRecordMapper; @Override public IPage getLevelListInPage(AdminMemberLevelDto dto, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.orderByAsc(HappyMemberLevel::getId); Page happyMemberLevelPage = happyMemberLevelMapper.selectPage(page, lambdaQueryWrapper); return happyMemberLevelPage; } @Override public IPage getLabelListInPage(AdminMemberLabelDto dto, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.orderByAsc(HappyMemberLabel::getId); Page happyMemberLevelPage = happyMemberLabelMapper.selectPage(page, lambdaQueryWrapper); return happyMemberLevelPage; } @Override public FebsResponse levelAdd(AdminMemberLevelAddDto dto) { HappyMemberLevel happyMemberLevel = new HappyMemberLevel(); BeanUtil.copyProperties(dto, happyMemberLevel); happyMemberLevelMapper.insert(happyMemberLevel); return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse labelAdd(AdminMemberLabelAddDto dto) { HappyMemberLabel happyMemberLabel = new HappyMemberLabel(); BeanUtil.copyProperties(dto, happyMemberLabel); happyMemberLabelMapper.insert(happyMemberLabel); return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse levelUpdate(AdminMemberLevelUpdateDto dto) { HappyMemberLevel happyMemberLevel = happyMemberLevelMapper.selectById(dto.getId()); if (ObjectUtil.isNotNull(happyMemberLevel)) { BeanUtil.copyProperties(dto, happyMemberLevel); happyMemberLevelMapper.updateById(happyMemberLevel); } return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse labelUpdate(AdminMemberLabelUpdateDto dto) { HappyMemberLabel happyMemberLabel = happyMemberLabelMapper.selectById(dto.getId()); if (ObjectUtil.isNotNull(happyMemberLabel)) { BeanUtil.copyProperties(dto, happyMemberLabel); happyMemberLabelMapper.updateById(happyMemberLabel); } return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse labelMemberSet(AdminMemberLabelSetDto dto) { Long labelId = dto.getLabelId(); List memberIdList = dto.getMemberIdList(); HappyMemberLabel happyMemberLabel = happyMemberLabelMapper.selectById(labelId); if (ObjectUtil.isNotEmpty(happyMemberLabel)) { LambdaQueryWrapper happyMemberLabelRecordLambdaQueryWrapper = new LambdaQueryWrapper<>(); happyMemberLabelRecordLambdaQueryWrapper.eq(HappyMemberLabelRecord::getLabelId,labelId); happyMemberLabelRecordMapper.delete(happyMemberLabelRecordLambdaQueryWrapper); if(CollUtil.isNotEmpty(memberIdList)){ for (Long memberId:memberIdList){ HappyMemberLabelRecord happyMemberLabelRecord = new HappyMemberLabelRecord(); happyMemberLabelRecord.setMemberId(memberId); happyMemberLabelRecord.setLabelId(labelId); happyMemberLabelRecordMapper.insert(happyMemberLabelRecord); } } } return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse levelAll() { List happyMemberLevels = happyMemberLevelMapper.selectList( new LambdaQueryWrapper() .select(HappyMemberLevel::getCode, HappyMemberLevel::getName) .orderByAsc(HappyMemberLevel::getId) ); return new FebsResponse().success().data(happyMemberLevels); } @Override public IPage getSaleLevelListInPage(AdminSaleLevelDto dto, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.orderByAsc(HappySaleLevel::getId); Page happyMemberLevelPage = happySaleLevelMapper.selectPage(page, lambdaQueryWrapper); return happyMemberLevelPage; } @Override public FebsResponse saleAdd(AdminSaleLevelAddDto dto) { HappySaleLevel happySaleLevel = new HappySaleLevel(); BeanUtil.copyProperties(dto, happySaleLevel); happySaleLevelMapper.insert(happySaleLevel); return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse saleUpdate(AdminSaleLevelUpdateDto dto) { HappySaleLevel happySaleLevel = happySaleLevelMapper.selectById(dto.getId()); if (ObjectUtil.isNotNull(happySaleLevel)) { BeanUtil.copyProperties(dto, happySaleLevel); happySaleLevelMapper.updateById(happySaleLevel); } return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse saleLevelAll() { List happySaleLevels = happySaleLevelMapper.selectList( new LambdaQueryWrapper() .select(HappySaleLevel::getCode, HappySaleLevel::getName) .orderByAsc(HappySaleLevel::getId) ); return new FebsResponse().success().data(happySaleLevels); } }