package com.panzhihua.service_community.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.common.model.dtos.common.*; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.common.ComMngVolunteerOrgTeamVo; import com.panzhihua.common.utlis.Snowflake; import com.panzhihua.service_community.dao.ComMngVolunteerMngDAO; import com.panzhihua.service_community.dao.ComMngVolunteerOrgTeamMapper; import com.panzhihua.service_community.model.dos.ComMngVolunteerMngDO; import com.panzhihua.service_community.model.dos.ComMngVolunteerOrgTeam; import com.panzhihua.service_community.service.ComMngVolunteerOrgTeamService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; /** * 志愿者组织队伍表(ComMngVolunteerOrgTeam)表服务实现类 * * @author lyq * @since 2021-10-30 16:32:54 */ @Service public class ComMngVolunteerOrgTeamServiceImpl extends ServiceImpl implements ComMngVolunteerOrgTeamService { @Resource private ComMngVolunteerMngDAO comMngVolunteerMngDAO; /** * 通过ID查询单条数据 * * @param id 主键 * @return 实例对象 */ @Override public R queryById(Long id) { return R.ok(this.baseMapper.queryById(id)); } /** * 分页查询 * * @param comMngVolunteerOrgTeam 筛选条件 * @return 查询结果 */ @Override public R queryByPage(PageComMngVolunteerOrgTeamDto comMngVolunteerOrgTeam) { return R.ok(this.baseMapper.queryAllByLimit(comMngVolunteerOrgTeam,new Page(comMngVolunteerOrgTeam.getPageNum(), comMngVolunteerOrgTeam.getPageSize()))); } /** * 新增数据 * * @param comMngVolunteerOrgTeam 实例对象 * @return 实例对象 */ @Override public R insert(AddComMngVolunteerOrgTeamDto comMngVolunteerOrgTeam) { ComMngVolunteerOrgTeam entity = new ComMngVolunteerOrgTeam(); BeanUtils.copyProperties(comMngVolunteerOrgTeam, entity); if (this.baseMapper.insert(entity) > 0) { return R.ok(); } return R.fail("添加失败"); } /** * 修改数据 * * @param editDto 实例对象 * @return 实例对象 */ @Override public R update(EditComMngVolunteerOrgTeamDto editDto) { ComMngVolunteerOrgTeam entity = this.baseMapper.selectById(editDto.getId()); if(entity == null){ return R.fail("未查询到该记录"); } BeanUtils.copyProperties(editDto, entity); if (this.baseMapper.updateById(entity) > 0) { return R.ok(); } return R.fail("修改失败"); } /** * 通过主键删除数据 * * @param id 主键 * @return 是否成功 */ @Override public R deleteById(Long id) { ComMngVolunteerOrgTeam volunteerOrgTeam = this.baseMapper.selectById(id); if(volunteerOrgTeam != null){ //组织 if(volunteerOrgTeam.getParentId().equals(0L)){ Integer count = this.baseMapper.selectCount(new QueryWrapper().lambda() .eq(ComMngVolunteerOrgTeam::getParentId,id)); if(count > 0){ return R.fail("内容已引用,无法删除!"); } Integer volunteerCount = comMngVolunteerMngDAO.selectCount(new QueryWrapper().lambda() .eq(ComMngVolunteerMngDO::getOrgId,id).ne(ComMngVolunteerMngDO::getState,3)); if(volunteerCount > 0){ return R.fail("内容已引用,无法删除!"); } }else{//队伍 Integer volunteerCount = comMngVolunteerMngDAO.selectCount(new QueryWrapper().lambda() .eq(ComMngVolunteerMngDO::getTeamId,id).ne(ComMngVolunteerMngDO::getState,3)); if(volunteerCount > 0){ return R.fail("内容已引用,无法删除!"); } } } if(this.baseMapper.deleteById(id) > 0){ return R.ok(); } return R.fail(); } /** * 社区后台-查询志愿者组织列表 * @param comMngVolunteerOrgTeam 请求参数 * @return 志愿者组织列表 */ @Override public R queryByList(PageComMngVolunteerOrgTeamDto comMngVolunteerOrgTeam){ //查询所有组织列表 List orgList = this.baseMapper.queryAll(comMngVolunteerOrgTeam); for (ComMngVolunteerOrgTeamVo org : orgList) { comMngVolunteerOrgTeam = new PageComMngVolunteerOrgTeamDto(); comMngVolunteerOrgTeam.setParentId(org.getId()); comMngVolunteerOrgTeam.setCommunityId(org.getCommunityId()); List teamList = this.baseMapper.queryAll(comMngVolunteerOrgTeam); if(!teamList.isEmpty()){ org.setChildList(teamList); } } return R.ok(orgList); } /** * 社区后台-志愿者组织统计 * @param communityId 社区id * @return 志愿者组织统计 */ @Override public R statisticsVolunteerOrgAdmin(Long communityId){ return R.ok(this.baseMapper.statisticsVolunteerOrgAdmin(communityId)); } }