From 267c06a5864bb617b1ff0ea82210346bf5573f5f Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Wed, 30 Apr 2025 18:06:45 +0800 Subject: [PATCH] refactor(mall): 优化投票活动接口参数设计 --- src/main/java/cc/mrbird/febs/mall/service/impl/IAdminHappySocialCircleServiceImpl.java | 222 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 222 insertions(+), 0 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/IAdminHappySocialCircleServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/IAdminHappySocialCircleServiceImpl.java new file mode 100644 index 0000000..948b2ad --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/IAdminHappySocialCircleServiceImpl.java @@ -0,0 +1,222 @@ +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<HappySocialCircleMapper, HappySocialCircle> implements IAdminHappySocialCircleService { + + private final HappySocialCircleCategoryMapper happySocialCircleCategoryMapper; + private final MallMemberMapper mallMemberMapper; + + @Override + public IPage<HappySocialCircleCategory> getGroupList(AdminHappyActivityCategoryDto dto, QueryRequest request) { + + Page<HappySocialCircleCategory> page = new Page<>(request.getPageNum(), request.getPageSize()); + LambdaQueryWrapper<HappySocialCircleCategory> 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<HappySocialCircleCategory> 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<HappySocialCircleCategory> allGroup() { + List<HappySocialCircleCategory> happySocialCircleCategorys = + happySocialCircleCategoryMapper.selectList( + new LambdaQueryWrapper<HappySocialCircleCategory>() + .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<HappySocialCircle> getAdminSocialCircleListInPage(HappySocialCircle dto, QueryRequest request) { + + Page<HappySocialCircle> page = new Page<>(request.getPageNum(), request.getPageSize()); + LambdaQueryWrapper<HappySocialCircle> 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<HappySocialCircle> happySocialCirclePage = this.baseMapper.selectPage(page, voteActivityLambdaQueryWrapper); + + if(CollUtil.isNotEmpty(happySocialCirclePage.getRecords())){ + List<HappySocialCircle> records = happySocialCirclePage.getRecords(); + Set<Long> memberIds = records.stream().map(HappySocialCircle::getMemberId).collect(Collectors.toSet()); + Set<Long> categoryIds = records.stream().map(HappySocialCircle::getCategoryId).collect(Collectors.toSet()); + + List<MallMember> mallMembers = mallMemberMapper.selectList( + new LambdaQueryWrapper<MallMember>() + .select(MallMember::getId, MallMember::getName) + .in(MallMember::getId, memberIds) + ); + + Map<Long, MallMember> mallMemberMap = mallMembers.stream().collect(Collectors.toMap(MallMember::getId, mallMember -> mallMember)); + + List<HappySocialCircleCategory> happySocialCircleCategorys = happySocialCircleCategoryMapper.selectList( + new LambdaQueryWrapper<HappySocialCircleCategory>() + .select(HappySocialCircleCategory::getId, HappySocialCircleCategory::getName) + .in(HappySocialCircleCategory::getId, categoryIds) + ); + Map<Long, HappySocialCircleCategory> 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<MallMember> allMember() { + List<MallMember> mallMembers = mallMemberMapper.selectList( + new LambdaQueryWrapper<MallMember>() + .select(MallMember::getId, MallMember::getName) + .eq(MallMember::getCheckOrder, StateUpDownEnum.UP.getCode()) + .orderByDesc(MallMember::getCreatedTime) + ); + return mallMembers; + } +} -- Gitblit v1.9.1