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.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;
|
}
|
}
|