package com.panzhihua.service_community.service.impl; import java.util.Date; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; 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.neighbor.AddNeighborCircleTopicAdminDTO; import com.panzhihua.common.model.dtos.neighbor.AddNeighborCircleTopicAppDTO; import com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleTopicAdminDTO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.service_community.dao.ComActNeighborCircleTopicWestMapper; import com.panzhihua.service_community.model.dos.ComActNeighborCircleTopicWestDO; import com.panzhihua.service_community.service.ComActNeighborCircleTopicWestService; import lombok.extern.slf4j.Slf4j; /** * @auther lyq * @create 2021-07-06 15:04:37 * @describe 邻里圈话题表服务实现类 */ @Slf4j @Service public class ComActNeighborCircleTopicWestServiceImpl extends ServiceImpl implements ComActNeighborCircleTopicWestService { /** * 分页查询邻里圈话题列表 * * @param circleTopicAdminDTO * 请求参数 * @return 邻里圈话题列表 */ @Override public R pageNeighborTopicByAdmin(ComActNeighborCircleTopicAdminDTO circleTopicAdminDTO) { return R.ok(this.baseMapper.pageNeighborTopicByAdmin( new Page(circleTopicAdminDTO.getPageNum(), circleTopicAdminDTO.getPageSize()), circleTopicAdminDTO)); } /** * 添加邻里圈话题 * * @param addCircleTopicAdminDTO * 请求参数 * @return 添加结果 */ @Override public R addNeighborTopicByAdmin(AddNeighborCircleTopicAdminDTO addCircleTopicAdminDTO) { ComActNeighborCircleTopicWestDO circleTopicDO = this.baseMapper.selectOne(new QueryWrapper().lambda() .eq(ComActNeighborCircleTopicWestDO::getName, addCircleTopicAdminDTO.getName()) .eq(ComActNeighborCircleTopicWestDO::getBelongType, 1) .eq(ComActNeighborCircleTopicWestDO::getCommunityId, addCircleTopicAdminDTO.getCommunityId())); if (circleTopicDO != null) { return R.fail("该话题已存在"); } circleTopicDO = new ComActNeighborCircleTopicWestDO(); BeanUtils.copyProperties(addCircleTopicAdminDTO, circleTopicDO); circleTopicDO.setCreateAt(new Date()); circleTopicDO.setCreateBy(addCircleTopicAdminDTO.getUserId()); if (this.baseMapper.insert(circleTopicDO) > 0) { return R.ok(); } return R.fail("添加失败"); } /** * 编辑邻里圈话题 * * @param addCircleTopicAdminDTO * 请求参数 * @return 编辑结果 */ @Override public R editNeighborTopicByAdmin(AddNeighborCircleTopicAdminDTO addCircleTopicAdminDTO) { ComActNeighborCircleTopicWestDO circleTopicDO = this.baseMapper.selectById(addCircleTopicAdminDTO.getId()); if (circleTopicDO == null) { return R.fail("未找到邻里圈话题记录"); } if (StringUtils.isNotEmpty(addCircleTopicAdminDTO.getName())) { ComActNeighborCircleTopicWestDO oldCircleTopicDO = this.baseMapper.selectOne(new QueryWrapper().lambda() .eq(ComActNeighborCircleTopicWestDO::getName, addCircleTopicAdminDTO.getName()) .eq(ComActNeighborCircleTopicWestDO::getCommunityId, addCircleTopicAdminDTO.getCommunityId()) .eq(ComActNeighborCircleTopicWestDO::getBelongType, 1) .ne(ComActNeighborCircleTopicWestDO::getId, circleTopicDO.getId())); if (oldCircleTopicDO != null && !oldCircleTopicDO.getId().equals(addCircleTopicAdminDTO.getId())) { return R.fail("该话题已存在"); } } BeanUtils.copyProperties(addCircleTopicAdminDTO, circleTopicDO); if (this.baseMapper.updateById(circleTopicDO) > 0) { return R.ok(); } return R.fail("修改失败"); } /** * 小程序查询邻里圈话题列表 * * @param communityId * 社区id * @return 邻里圈话题列表 */ @Override public R getNeighborTopicByApp(Long communityId,Integer isZero,String name){ return R.ok(this.baseMapper.getNeighborTopicByApp(communityId,isZero,name)); } /** * 小程序-用户新增话题 * @param circleTopicAppDTO 请求参数 * @return 新增结果 */ @Override public R addNeighborTopicByApp(AddNeighborCircleTopicAppDTO circleTopicAppDTO){ ComActNeighborCircleTopicWestDO circleTopicDO = this.baseMapper.selectOne(new QueryWrapper() .lambda().eq(ComActNeighborCircleTopicWestDO::getCommunityId,circleTopicAppDTO.getCommunityId()) .eq(ComActNeighborCircleTopicWestDO::getBelongType, 1) .eq(ComActNeighborCircleTopicWestDO::getName,circleTopicAppDTO.getName())); if(circleTopicDO == null){ circleTopicDO = new ComActNeighborCircleTopicWestDO(); circleTopicDO.setCommunityId(circleTopicAppDTO.getCommunityId()); circleTopicDO.setName(circleTopicAppDTO.getName()); circleTopicDO.setCreateBy(circleTopicAppDTO.getUserId()); circleTopicDO.setCreateAt(new Date()); circleTopicDO.setCount(0); circleTopicDO.setHotNum(0L); circleTopicDO.setStatus(ComActNeighborCircleTopicWestDO.status.yes); this.baseMapper.insert(circleTopicDO); } return R.ok(circleTopicDO); } }