package com.xcong.farmer.cms.modules.system.service.Impl; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xcong.farmer.cms.common.response.Result; import com.xcong.farmer.cms.modules.system.dto.AdminAddBarDto; import com.xcong.farmer.cms.modules.system.dto.AdminNavigationBarDto; import com.xcong.farmer.cms.modules.system.dto.AdminUpdateBarDto; import com.xcong.farmer.cms.modules.system.entity.NavigationBarEntity; import com.xcong.farmer.cms.modules.system.mapper.NavigationBarMapper; import com.xcong.farmer.cms.modules.system.service.INavigationBarService; import com.xcong.farmer.cms.modules.system.vo.AdminNavigationBarVo; import com.xcong.farmer.cms.modules.system.vo.AdminSeeBarInfoVo; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.ObjectUtil; import org.springframework.transaction.annotation.Transactional; @Service @Slf4j public class NavigationBarServiceImpl extends ServiceImpl implements INavigationBarService { @Override public Result getBarInPage(AdminNavigationBarDto adminNavigationBarDto) { Page page = new Page<>(adminNavigationBarDto.getPageNum(), adminNavigationBarDto.getPageSize()); NavigationBarEntity navigationBarEntity = new NavigationBarEntity(); navigationBarEntity.setParentId(NavigationBarEntity.PARENTID_DEFAULT); IPage list = this.baseMapper.selectAdminNavigationBarVoInPage(page,navigationBarEntity); List records = list.getRecords(); if(CollUtil.isNotEmpty(records)){ for(AdminNavigationBarVo adminNavigationBarVo : records){ Long id = adminNavigationBarVo.getId(); QueryWrapper objectQueryWrapper = new QueryWrapper<>(); objectQueryWrapper.eq("parent_id",id); List navigationBarEntities = this.baseMapper.selectList(objectQueryWrapper); List adminNavigationBarVoChilds = new ArrayList<>(); if(CollUtil.isNotEmpty(navigationBarEntities)){ for(NavigationBarEntity navigationBarEntityChild : navigationBarEntities){ AdminNavigationBarVo child = new AdminNavigationBarVo(); child.setId(navigationBarEntityChild.getId()); child.setBarName(navigationBarEntityChild.getBarName()); child.setLinkUrl(navigationBarEntityChild.getLinkUrl()); child.setDescribe(navigationBarEntityChild.getDescribe()); child.setPic(navigationBarEntityChild.getPic()); child.setOrderNum(navigationBarEntityChild.getOrderNum()); adminNavigationBarVoChilds.add(child); } } adminNavigationBarVo.setChild(adminNavigationBarVoChilds); } } return Result.ok(list); } @Override @Transactional public Result addBar(AdminAddBarDto adminAddBarDto) { NavigationBarEntity navigationBarEntity = new NavigationBarEntity(); String barName = adminAddBarDto.getBarName(); if(StrUtil.isEmpty(barName)){ return Result.fail("请输入导航栏标题"); } navigationBarEntity.setBarName(barName); Long parentId = adminAddBarDto.getParentId(); if(ObjectUtil.isEmpty(parentId)){ navigationBarEntity.setParentId(NavigationBarEntity.PARENTID_DEFAULT); }else{ navigationBarEntity.setParentId(parentId); } String linkUrl = adminAddBarDto.getLinkUrl(); if(StrUtil.isNotEmpty(linkUrl)){ navigationBarEntity.setLinkUrl(linkUrl); } Integer orderNum = adminAddBarDto.getOrderNum(); if(ObjectUtil.isNotEmpty(orderNum)){ navigationBarEntity.setOrderNum(orderNum); } String pic = adminAddBarDto.getPic(); if(StrUtil.isNotEmpty(pic)){ navigationBarEntity.setPic(pic); } String describe = adminAddBarDto.getDescribe(); if(StrUtil.isNotEmpty(describe)){ navigationBarEntity.setDescribe(describe); } this.baseMapper.insert(navigationBarEntity); return Result.ok("添加成功"); } @Override @Transactional public Result deleteBar(Long id) { NavigationBarEntity navigationBarEntity = this.baseMapper.selectById(id); if(ObjectUtil.isEmpty(navigationBarEntity)){ return Result.fail("导航栏不存在"); } QueryWrapper objectQueryWrapper = new QueryWrapper<>(); objectQueryWrapper.eq("parent_id",id); List navigationBarEntities = this.baseMapper.selectList(objectQueryWrapper); if(CollUtil.isNotEmpty(navigationBarEntities)){ return Result.fail("请先清空它的二级导航栏"); } this.baseMapper.deleteById(id); return Result.ok("删除成功"); } @Override public Result seeBarInfo(Long id) { NavigationBarEntity navigationBarEntity = this.baseMapper.selectById(id); if(ObjectUtil.isEmpty(navigationBarEntity)){ return Result.fail("导航栏不存在"); } AdminSeeBarInfoVo adminSeeBarInfoVo = new AdminSeeBarInfoVo(); adminSeeBarInfoVo.setId(navigationBarEntity.getId()); adminSeeBarInfoVo.setBarName(navigationBarEntity.getBarName()); adminSeeBarInfoVo.setLinkUrl(navigationBarEntity.getLinkUrl()); adminSeeBarInfoVo.setDescribe(navigationBarEntity.getDescribe()); adminSeeBarInfoVo.setOrderNum(navigationBarEntity.getOrderNum()); adminSeeBarInfoVo.setPic(navigationBarEntity.getPic()); adminSeeBarInfoVo.setParentId(navigationBarEntity.getParentId()); return Result.ok(adminSeeBarInfoVo); } @Override @Transactional public Result updateBar(AdminUpdateBarDto adminUpdateMenuDto) { Long id = adminUpdateMenuDto.getId(); if(ObjectUtil.isEmpty(id)){ return Result.fail("导航栏不存在"); } NavigationBarEntity navigationBarEntity = this.baseMapper.selectById(id); if(ObjectUtil.isEmpty(navigationBarEntity)){ return Result.fail("导航栏不存在"); } String barName = adminUpdateMenuDto.getBarName(); if(StrUtil.isEmpty(barName)){ return Result.fail("请输入导航栏标题"); } navigationBarEntity.setBarName(barName); Long parentId = adminUpdateMenuDto.getParentId(); if(ObjectUtil.isEmpty(parentId)){ navigationBarEntity.setParentId(NavigationBarEntity.PARENTID_DEFAULT); }else{ navigationBarEntity.setParentId(parentId); } String linkUrl = adminUpdateMenuDto.getLinkUrl(); if(StrUtil.isNotEmpty(linkUrl)){ navigationBarEntity.setLinkUrl(linkUrl); } Integer orderNum = adminUpdateMenuDto.getOrderNum(); if(ObjectUtil.isNotEmpty(orderNum)){ navigationBarEntity.setOrderNum(orderNum); } String pic = adminUpdateMenuDto.getPic(); if(StrUtil.isNotEmpty(pic)){ navigationBarEntity.setPic(pic); } String describe = adminUpdateMenuDto.getDescribe(); if(StrUtil.isNotEmpty(describe)){ navigationBarEntity.setDescribe(describe); } this.baseMapper.updateById(navigationBarEntity); return Result.ok("更新成功"); } @Override public Result getBarInList() { List records = this.baseMapper.selectAdminNavigationBarVoByParentId(NavigationBarEntity.PARENTID_DEFAULT); if(CollUtil.isNotEmpty(records)){ for(AdminNavigationBarVo adminNavigationBarVo : records){ Long id = adminNavigationBarVo.getId(); QueryWrapper objectQueryWrapper = new QueryWrapper<>(); objectQueryWrapper.eq("parent_id",id); List navigationBarEntities = this.baseMapper.selectList(objectQueryWrapper); List adminNavigationBarVoChilds = new ArrayList<>(); if(CollUtil.isNotEmpty(navigationBarEntities)){ for(NavigationBarEntity navigationBarEntityChild : navigationBarEntities){ AdminNavigationBarVo child = new AdminNavigationBarVo(); child.setId(navigationBarEntityChild.getId()); child.setBarName(navigationBarEntityChild.getBarName()); child.setLinkUrl(navigationBarEntityChild.getLinkUrl()); child.setDescribe(navigationBarEntityChild.getDescribe()); child.setPic(navigationBarEntityChild.getPic()); child.setOrderNum(navigationBarEntityChild.getOrderNum()); adminNavigationBarVoChilds.add(child); } } adminNavigationBarVo.setChild(adminNavigationBarVoChilds); } } return Result.ok(records); } }