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.community.cluster.admin.AddClusterAdminDto; import com.panzhihua.common.model.dtos.community.cluster.admin.EditClusterAdminDto; import com.panzhihua.common.model.dtos.community.cluster.admin.PageClusterAdminDto; import com.panzhihua.common.model.vos.community.cluster.admin.ClusterDetailAdminVo; import com.panzhihua.common.model.vos.R; import com.panzhihua.service_community.dao.ComClusterOrganizationMapper; import com.panzhihua.service_community.dao.ComClusterOrganizationMemberMapper; import com.panzhihua.service_community.model.dos.ComClusterOrganizationDO; import com.panzhihua.service_community.model.dos.ComClusterOrganizationMemberDO; import com.panzhihua.service_community.service.ComClusterOrganizationService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; /** * @author lyq * @date 2021-09-23 16:44:06 * describe 群团组织表服务实现类 */ @Slf4j @Service public class ComClusterOrganizationServiceImpl extends ServiceImpl implements ComClusterOrganizationService { @Resource private ComClusterOrganizationMemberMapper comClusterOrganizationMemberMapper; /** * 群团组织列表-小程序查询社区群团组织列表 * @param communityId 社区id * @return 社区群团组织列表 */ @Override public R listClusterApplets(Long communityId){ return R.ok(this.baseMapper.listClusterApplets(communityId)); } /** * 分页查询群团组织列表 * @param pageClusterAdminDto 请求参数 * @return 群团组织列表 */ @Override public R pageClusterAdmin(PageClusterAdminDto pageClusterAdminDto){ return R.ok(this.baseMapper.pageClusterAdmin(new Page(pageClusterAdminDto.getPageNum(),pageClusterAdminDto.getPageSize()),pageClusterAdminDto)); } /** * 新增群团组织 * @param addClusterAdminDto 请求参数 * @return 新增结果 */ @Override public R addClusterAdmin(AddClusterAdminDto addClusterAdminDto){ ComClusterOrganizationDO organizationDO = this.baseMapper.selectOne(new QueryWrapper().lambda() .eq(ComClusterOrganizationDO::getCommunityId,addClusterAdminDto.getCommunityId()) .eq(ComClusterOrganizationDO::getName,addClusterAdminDto.getName()) .eq(ComClusterOrganizationDO::getIsDel,ComClusterOrganizationDO.isOk.no)); if(organizationDO != null){ return R.fail("该组织已存在,不可重复添加"); } organizationDO = new ComClusterOrganizationDO(); BeanUtils.copyProperties(addClusterAdminDto,organizationDO); organizationDO.setCreateAt(new Date()); if(this.baseMapper.insert(organizationDO) > 0){ return R.ok("新增成功"); } return R.fail("新增失败"); } /** * 修改群团组织 * @param editClusterAdminDto 请求参数 * @return 修改结果 */ @Override public R editClusterAdmin(EditClusterAdminDto editClusterAdminDto){ ComClusterOrganizationDO organizationDO = this.baseMapper.selectById(editClusterAdminDto.getId()); if(organizationDO == null){ return R.fail("该组织不存在"); } Integer count = this.baseMapper.selectCount(new QueryWrapper().lambda() .eq(ComClusterOrganizationDO::getCommunityId,editClusterAdminDto.getCommunityId()) .eq(ComClusterOrganizationDO::getName,editClusterAdminDto.getName()) .eq(ComClusterOrganizationDO::getIsDel,ComClusterOrganizationDO.isOk.no) .ne(ComClusterOrganizationDO::getId,editClusterAdminDto.getId())); if(count > 0){ return R.fail("该组织已存在"); } BeanUtils.copyProperties(editClusterAdminDto,organizationDO); organizationDO.setUpdateAt(new Date()); if(this.baseMapper.updateById(organizationDO) > 0){ return R.ok("编辑成功"); } return R.fail("编辑失败"); } /** * 删除群团组织 * @param id 组织id * @return 删除结果 */ @Override public R deleteClusterAdmin(Long id){ Integer count = comClusterOrganizationMemberMapper.selectCount(new QueryWrapper().lambda() .eq(ComClusterOrganizationMemberDO::getClusterId,id) .eq(ComClusterOrganizationMemberDO::getIsDel,ComClusterOrganizationMemberDO.isOk.no)); if(count > 0){ return R.fail("该组织下存在成员,不可删除"); } ComClusterOrganizationDO organizationDO = new ComClusterOrganizationDO(); organizationDO.setId(id); organizationDO.setIsDel(ComClusterOrganizationDO.isOk.yes); organizationDO.setUpdateAt(new Date()); if(this.baseMapper.updateById(organizationDO) > 0){ return R.ok("删除成功"); } return R.fail("删除失败"); } /** * 群团组织详情 * @param id 组织id * @return 群团组织详情 */ @Override public R detailClusterAdmin(Long id){ ComClusterOrganizationDO organizationDO = this.baseMapper.selectById(id); if(organizationDO == null){ return R.fail("该组织不存在"); } ClusterDetailAdminVo detailAdminVo = new ClusterDetailAdminVo(); BeanUtils.copyProperties(organizationDO,detailAdminVo); return R.ok(detailAdminVo); } }