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.AdminHappyActivityCategoryDto; import cc.mrbird.febs.mall.dto.activity.AdminCategoryAddDto; import cc.mrbird.febs.mall.dto.activity.AdminCategoryUpdateDto; import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.mapper.HappySocialCircleCategoryMapper; import cc.mrbird.febs.mall.mapper.HappySocialCircleMapper; import cc.mrbird.febs.mall.mapper.MallMemberMapper; import cc.mrbird.febs.mall.service.IAdminHappySocialCircleService; 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 java.util.Collections; import java.util.List; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; @Slf4j @Service @RequiredArgsConstructor public class IAdminHappySocialCircleServiceImpl extends ServiceImpl implements IAdminHappySocialCircleService { private final HappySocialCircleCategoryMapper happySocialCircleCategoryMapper; private final MallMemberMapper mallMemberMapper; @Override public IPage getGroupList(AdminHappyActivityCategoryDto dto, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); LambdaQueryWrapper voteOptionLambdaQueryWrapper = new LambdaQueryWrapper<>(); if(StrUtil.isNotEmpty(dto.getName())){ voteOptionLambdaQueryWrapper.like(HappySocialCircleCategory::getName,dto.getName()); } if(ObjectUtil.isNotEmpty(dto.getStatus())){ voteOptionLambdaQueryWrapper.eq(HappySocialCircleCategory::getState,dto.getStatus()); } if(ObjectUtil.isNotEmpty(dto.getHotState())){ voteOptionLambdaQueryWrapper.eq(HappySocialCircleCategory::getHotState,dto.getHotState()); } voteOptionLambdaQueryWrapper.eq(HappySocialCircleCategory::getDeleteFlag, StateUpDownEnum.DOWN.getCode()); voteOptionLambdaQueryWrapper.orderByAsc(HappySocialCircleCategory::getOrderCnt); Page happySocialCirclePage = happySocialCircleCategoryMapper.selectPage(page, voteOptionLambdaQueryWrapper); return happySocialCirclePage; } @Override public FebsResponse addGroup(AdminCategoryAddDto dto) { HappySocialCircleCategory happySocialCircleCategory = new HappySocialCircleCategory(); happySocialCircleCategory.setName(dto.getName()); happySocialCircleCategory.setOrderCnt(dto.getOrderCnt()); happySocialCircleCategoryMapper.insert(happySocialCircleCategory); return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse groupDelete(Long id) { HappySocialCircleCategory happySocialCircleCategory = happySocialCircleCategoryMapper.selectById(id); happySocialCircleCategory.setDeleteFlag(StateUpDownEnum.UP.getCode()); happySocialCircleCategoryMapper.updateById(happySocialCircleCategory); return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse groupUpdate(AdminCategoryUpdateDto dto) { HappySocialCircleCategory happySocialCircleCategory = happySocialCircleCategoryMapper.selectById(dto.getId()); happySocialCircleCategory.setName(dto.getName()); happySocialCircleCategory.setOrderCnt(dto.getOrderCnt()); happySocialCircleCategoryMapper.updateById(happySocialCircleCategory); return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse groupState(Long id, Integer type) { HappySocialCircleCategory happySocialCircleCategory = happySocialCircleCategoryMapper.selectById(id); if(StateUpDownEnum.UP.getCode() == happySocialCircleCategory.getDeleteFlag()){ throw new RuntimeException("该分组已删除,无法操作"); } if(type == 1){ happySocialCircleCategory.setHotState(happySocialCircleCategory.getHotState() == StateUpDownEnum.UP.getCode() ? StateUpDownEnum.DOWN.getCode() : StateUpDownEnum.UP.getCode()); } if(type == 2){ happySocialCircleCategory.setState(happySocialCircleCategory.getState() == StateUpDownEnum.UP.getCode() ? StateUpDownEnum.DOWN.getCode() : StateUpDownEnum.UP.getCode()); } happySocialCircleCategoryMapper.updateById(happySocialCircleCategory); return new FebsResponse().success().message("操作成功"); } @Override public List allGroup() { List happySocialCircleCategorys = happySocialCircleCategoryMapper.selectList( new LambdaQueryWrapper() .eq(HappySocialCircleCategory::getState, StateUpDownEnum.UP.getCode()) .eq(HappySocialCircleCategory::getDeleteFlag, StateUpDownEnum.DOWN.getCode()) .orderByDesc(HappySocialCircleCategory::getOrderCnt) ); if(CollUtil.isNotEmpty(happySocialCircleCategorys)){ return happySocialCircleCategorys; } return Collections.emptyList(); } @Override public IPage getAdminSocialCircleListInPage(HappySocialCircle dto, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); LambdaQueryWrapper voteActivityLambdaQueryWrapper = new LambdaQueryWrapper<>(); if(StrUtil.isNotEmpty(dto.getName())){ voteActivityLambdaQueryWrapper.like(HappySocialCircle::getName,dto.getName()); } if(ObjectUtil.isNotEmpty(dto.getState())){ voteActivityLambdaQueryWrapper.eq(HappySocialCircle::getState,dto.getState()); } if(ObjectUtil.isNotEmpty(dto.getCategoryId())){ voteActivityLambdaQueryWrapper.eq(HappySocialCircle::getCategoryId,dto.getCategoryId()); } voteActivityLambdaQueryWrapper.eq(HappySocialCircle::getDeleteFlag, StateUpDownEnum.DOWN.getCode()); voteActivityLambdaQueryWrapper.orderByDesc(HappySocialCircle::getCreatedTime); Page happySocialCirclePage = this.baseMapper.selectPage(page, voteActivityLambdaQueryWrapper); if(CollUtil.isNotEmpty(happySocialCirclePage.getRecords())){ List records = happySocialCirclePage.getRecords(); Set memberIds = records.stream().map(HappySocialCircle::getMemberId).collect(Collectors.toSet()); Set categoryIds = records.stream().map(HappySocialCircle::getCategoryId).collect(Collectors.toSet()); List mallMembers = mallMemberMapper.selectList( new LambdaQueryWrapper() .select(MallMember::getId, MallMember::getName) .in(MallMember::getId, memberIds) ); Map mallMemberMap = mallMembers.stream().collect(Collectors.toMap(MallMember::getId, mallMember -> mallMember)); List happySocialCircleCategorys = happySocialCircleCategoryMapper.selectList( new LambdaQueryWrapper() .select(HappySocialCircleCategory::getId, HappySocialCircleCategory::getName) .in(HappySocialCircleCategory::getId, categoryIds) ); Map categoryMap = happySocialCircleCategorys.stream() .collect(Collectors.toMap(HappySocialCircleCategory::getId, happySocialCircleCategory -> happySocialCircleCategory)); for (HappySocialCircle happySocialCircle : records){ happySocialCircle.setMemberName(mallMemberMap.get(happySocialCircle.getMemberId()).getName()); happySocialCircle.setCategoryName(categoryMap.get(happySocialCircle.getCategoryId()).getName()); } } return happySocialCirclePage; } @Override public FebsResponse addActivity(HappySocialCircle dto) { HappySocialCircle happySocialCircle = new HappySocialCircle(); BeanUtil.copyProperties(dto, happySocialCircle); this.baseMapper.insert(happySocialCircle); return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse delActivity(Long id) { HappySocialCircle happySocialCircle = this.baseMapper.selectById(id); happySocialCircle.setDeleteFlag(StateUpDownEnum.UP.getCode()); this.baseMapper.updateById(happySocialCircle); return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse changeState(Long id, Integer state) { HappySocialCircle happySocialCircle = this.baseMapper.selectById(id); if(ObjectUtil.isNull(happySocialCircle)){ throw new RuntimeException("该活动已删除,无法操作"); } happySocialCircle.setState(state); this.baseMapper.updateById(happySocialCircle); return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse activityUpdate(HappySocialCircle dto) { HappySocialCircle happySocialCircle = this.baseMapper.selectById(dto.getId()); if(ObjectUtil.isNull(happySocialCircle)){ throw new RuntimeException("该活动已删除,无法操作"); } happySocialCircle.setCategoryId(dto.getCategoryId()); happySocialCircle.setMemberId(dto.getMemberId()); happySocialCircle.setName(dto.getName()); happySocialCircle.setContent(dto.getContent()); happySocialCircle.setIndexFile(dto.getIndexFile()); happySocialCircle.setOrderCnt(dto.getOrderCnt()); this.baseMapper.updateById(happySocialCircle); return new FebsResponse().success().message("操作成功"); } @Override public List allMember() { List mallMembers = mallMemberMapper.selectList( new LambdaQueryWrapper() .select(MallMember::getId, MallMember::getName) .eq(MallMember::getCheckOrder, StateUpDownEnum.UP.getCode()) .orderByDesc(MallMember::getCreatedTime) ); return mallMembers; } }