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.core.toolkit.StringPool; 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.AdminAddColumnDto; import com.xcong.farmer.cms.modules.system.dto.AdminColumnDto; import com.xcong.farmer.cms.modules.system.dto.AdminDeleteDto; import com.xcong.farmer.cms.modules.system.dto.AdminUpdateColumnDto; import com.xcong.farmer.cms.modules.system.entity.ColumnEntity; import com.xcong.farmer.cms.modules.system.entity.NavigationBarEntity; import com.xcong.farmer.cms.modules.system.entity.UserEntity; import com.xcong.farmer.cms.modules.system.mapper.ColumnMapper; import com.xcong.farmer.cms.modules.system.service.IColumnService; import com.xcong.farmer.cms.modules.system.util.LoginUserUtil; import com.xcong.farmer.cms.modules.system.vo.AdminColumnVo; import com.xcong.farmer.cms.modules.system.vo.AdminSeeColumnInfoVo; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.ObjectUtil; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; @Service @Slf4j public class ColumnServiceImpl extends ServiceImpl implements IColumnService { @Override public Result getColumnInPage(AdminColumnDto adminColumnDto) { UserEntity userlogin = LoginUserUtil.getLoginUser(); long belongId = userlogin.getBelongId() == null ? UserEntity.USER_BELONG_TOP : userlogin.getBelongId(); Page page = new Page<>(adminColumnDto.getPageNum(), adminColumnDto.getPageSize()); ColumnEntity columnEntity = new ColumnEntity(); columnEntity.setBelongId(belongId); columnEntity.setParentId(ColumnEntity.PARENTID_DEFAULT); IPage list = this.baseMapper.selectAdminColumnVoInPage(page,columnEntity); List records = list.getRecords(); if(CollUtil.isNotEmpty(records)){ for(AdminColumnVo adminColumnVo : records){ Long id = adminColumnVo.getId(); QueryWrapper objectQueryWrapper = new QueryWrapper<>(); objectQueryWrapper.eq("parent_id",id); objectQueryWrapper.eq("belong_id",belongId); List columnEntities = this.baseMapper.selectList(objectQueryWrapper); List adminColumnVoChilds = new ArrayList<>(); if(CollUtil.isNotEmpty(columnEntities)){ for(ColumnEntity columnEntityChild : columnEntities){ AdminColumnVo child = new AdminColumnVo(); child.setId(columnEntityChild.getId()); child.setColumnName(columnEntityChild.getColumnName()); child.setColumnCode(columnEntityChild.getColumnCode()); child.setRemark(columnEntityChild.getRemark()); child.setPic(columnEntityChild.getPic()); child.setOrderNum(columnEntityChild.getOrderNum()); adminColumnVoChilds.add(child); } } adminColumnVo.setChild(adminColumnVoChilds); } } return Result.ok(list); } @Override @Transactional public Result addColumn(AdminAddColumnDto adminAddColumnDto) { UserEntity userlogin = LoginUserUtil.getLoginUser(); long belongId = userlogin.getBelongId() == null ? UserEntity.USER_BELONG_TOP : userlogin.getBelongId(); ColumnEntity columnEntity = new ColumnEntity(); columnEntity.setBelongId(belongId); String columnName = adminAddColumnDto.getColumnName(); if(StrUtil.isEmpty(columnName)){ return Result.fail("请输入栏目名称"); } columnEntity.setColumnName(columnName); String columnCode = adminAddColumnDto.getColumnCode(); if(StrUtil.isEmpty(columnCode)){ return Result.fail("请输入栏目编码"); } QueryWrapper objectQueryWrapper = new QueryWrapper<>(); objectQueryWrapper.eq("column_code",columnCode); List columnEntities = this.baseMapper.selectList(objectQueryWrapper); if(CollUtil.isNotEmpty(columnEntities)){ return Result.fail("栏目编码不能重复"); } columnEntity.setColumnCode(columnCode); String remark = adminAddColumnDto.getRemark(); if(StrUtil.isNotEmpty(remark)){ columnEntity.setRemark(remark); } String pic = adminAddColumnDto.getPic(); if(StrUtil.isNotEmpty(pic)){ columnEntity.setPic(pic); } Integer orderNum = adminAddColumnDto.getOrderNum(); if(ObjectUtil.isNotEmpty(orderNum)){ columnEntity.setOrderNum(orderNum); } Long parentId = adminAddColumnDto.getParentId(); if(ObjectUtil.isEmpty(parentId)){ columnEntity.setParentId(ColumnEntity.PARENTID_DEFAULT); }else{ columnEntity.setParentId(parentId); } this.baseMapper.insert(columnEntity); return Result.ok("添加成功"); } @Override @Transactional public Result deleteColumn(Long id) { ColumnEntity columnEntity = this.baseMapper.selectById(id); if(ObjectUtil.isEmpty(columnEntity)){ return Result.fail("栏目不存在"); } QueryWrapper objectQueryWrapper = new QueryWrapper<>(); objectQueryWrapper.eq("parent_id",id); List columnEntities = this.baseMapper.selectList(objectQueryWrapper); if(CollUtil.isNotEmpty(columnEntities)){ return Result.fail("请先清空它的二级栏目"); } this.baseMapper.deleteById(id); return Result.ok("删除成功"); } @Override public Result seeColumnInfo(Long id) { ColumnEntity columnEntity = this.baseMapper.selectById(id); if(ObjectUtil.isEmpty(columnEntity)){ return Result.fail("栏目不存在"); } AdminSeeColumnInfoVo adminSeeColumnInfoVo = new AdminSeeColumnInfoVo(); adminSeeColumnInfoVo.setId(columnEntity.getId()); adminSeeColumnInfoVo.setColumnName(columnEntity.getColumnName()); adminSeeColumnInfoVo.setColumnCode(columnEntity.getColumnCode()); adminSeeColumnInfoVo.setRemark(columnEntity.getRemark()); adminSeeColumnInfoVo.setParentId(columnEntity.getParentId()); adminSeeColumnInfoVo.setOrderNum(columnEntity.getOrderNum()); adminSeeColumnInfoVo.setPic(columnEntity.getPic()); return Result.ok(adminSeeColumnInfoVo); } @Override @Transactional public Result updateColumn(AdminUpdateColumnDto adminUpdateColumnDto) { Long id = adminUpdateColumnDto.getId(); if(ObjectUtil.isEmpty(id)){ return Result.fail("栏目不存在"); } ColumnEntity columnEntity = this.baseMapper.selectById(id); if(ObjectUtil.isEmpty(columnEntity)){ return Result.fail("栏目不存在"); } String columnName = adminUpdateColumnDto.getColumnName(); if(StrUtil.isEmpty(columnName)){ return Result.fail("请输入栏目名称"); } columnEntity.setColumnName(columnName); String columnCode = adminUpdateColumnDto.getColumnCode(); if(StrUtil.isEmpty(columnCode)){ return Result.fail("请输入栏目编码"); } QueryWrapper objectQueryWrapper = new QueryWrapper<>(); objectQueryWrapper.eq("column_code",columnCode); List columnEntities = this.baseMapper.selectList(objectQueryWrapper); if(CollUtil.isNotEmpty(columnEntities) && columnEntities.size() > 1){ return Result.fail("栏目编码不能重复"); } columnEntity.setColumnCode(columnCode); String remark = adminUpdateColumnDto.getRemark(); if(StrUtil.isNotEmpty(remark)){ columnEntity.setRemark(remark); } String pic = adminUpdateColumnDto.getPic(); if(StrUtil.isNotEmpty(pic)){ columnEntity.setPic(pic); } Integer orderNum = adminUpdateColumnDto.getOrderNum(); if(ObjectUtil.isNotEmpty(orderNum)){ columnEntity.setOrderNum(orderNum); } Long parentId = adminUpdateColumnDto.getParentId(); if(ObjectUtil.isEmpty(parentId)){ columnEntity.setParentId(ColumnEntity.PARENTID_DEFAULT); }else{ columnEntity.setParentId(parentId); } this.baseMapper.updateById(columnEntity); return Result.ok("更新成功"); } @Override public Result getColumnInList() { UserEntity userlogin = LoginUserUtil.getLoginUser(); long belongId = userlogin.getBelongId() == null ? UserEntity.USER_BELONG_TOP : userlogin.getBelongId(); List records = this.baseMapper.selectColumnInListByParentId(ColumnEntity.PARENTID_DEFAULT,belongId); if(CollUtil.isNotEmpty(records)){ for(AdminColumnVo adminColumnVo : records){ Long id = adminColumnVo.getId(); QueryWrapper objectQueryWrapper = new QueryWrapper<>(); objectQueryWrapper.eq("parent_id",id); objectQueryWrapper.eq("belong_id",belongId); List columnEntities = this.baseMapper.selectList(objectQueryWrapper); List adminColumnVoChilds = new ArrayList<>(); if(CollUtil.isNotEmpty(columnEntities)){ for(ColumnEntity columnEntityChild : columnEntities){ AdminColumnVo child = new AdminColumnVo(); child.setId(columnEntityChild.getId()); child.setColumnName(columnEntityChild.getColumnName()); child.setColumnCode(columnEntityChild.getColumnCode()); child.setRemark(columnEntityChild.getRemark()); child.setPic(columnEntityChild.getPic()); child.setOrderNum(columnEntityChild.getOrderNum()); adminColumnVoChilds.add(child); } } adminColumnVo.setChild(adminColumnVoChilds); } } return Result.ok(records); } @Override public Result delObjs(AdminDeleteDto adminDeleteDto) { String ids = adminDeleteDto.getIds(); if(StrUtil.isNotEmpty(ids)){ String[] columnIds = ids.split(StringPool.COMMA); for(String columnIdStr : columnIds){ Long columnId = Long.valueOf(columnIdStr); QueryWrapper objectQueryWrapper = new QueryWrapper<>(); objectQueryWrapper.eq("parent_id",columnId); this.baseMapper.delete(objectQueryWrapper); this.baseMapper.deleteById(columnId); } } return Result.ok("删除成功"); } }