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<ComClusterOrganizationMapper, ComClusterOrganizationDO> 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<ComClusterOrganizationDO>().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<ComClusterOrganizationDO>().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<ComClusterOrganizationMemberDO>().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);
|
}
|
|
}
|