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