package com.panzhihua.service_community.service.impl; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.annotation.Resource; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.common.model.dtos.community.ComCvtBusinessDTO; import com.panzhihua.common.model.dtos.community.PageComCvtBusinessAppletsDTO; import com.panzhihua.common.model.dtos.community.PageComCvtBusinessDTO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComActVO; import com.panzhihua.common.model.vos.community.ComCvtBusinessDetailVO; import com.panzhihua.common.model.vos.community.ComCvtBusinessVO; import com.panzhihua.service_community.dao.ComActDAO; import com.panzhihua.service_community.dao.ComCvtBusinessAreaDAO; import com.panzhihua.service_community.dao.ComCvtBusinessDAO; import com.panzhihua.service_community.dao.ComCvtBusinessIntroduceDAO; import com.panzhihua.service_community.model.dos.ComActDO; import com.panzhihua.service_community.model.dos.ComCvtBusinessAreaDO; import com.panzhihua.service_community.model.dos.ComCvtBusinessDO; import com.panzhihua.service_community.model.dos.ComCvtBusinessIntroduceDO; import com.panzhihua.service_community.service.ComCvtBusinessAreaService; import com.panzhihua.service_community.service.ComCvtBusinessIntroduceService; import com.panzhihua.service_community.service.ComCvtBusinessService; import com.panzhihua.service_community.service.ComCvtServeService; /** * @description: 便民服务商家接口 * @author: Null * @date: 2021/3/11 11:11 */ @Service public class ComCvtBusinessServiceImpl extends ServiceImpl implements ComCvtBusinessService { @Resource private ComCvtBusinessDAO comCvtBusinessDAO; @Resource private ComCvtBusinessAreaDAO comCvtBusinessAreaDAO; @Resource private ComCvtBusinessIntroduceDAO comCvtBusinessIntroduceDAO; @Resource private ComCvtBusinessAreaService comCvtBusinessAreaService; @Resource private ComCvtBusinessIntroduceService comCvtBusinessIntroduceService; @Resource private ComCvtServeService comCvtServeService; @Resource private ComActDAO comActDAO; @Override public R pageComCvtBusiness(PageComCvtBusinessDTO pageComCvtBusinessDTO) { Page page = new Page<>(); Long pageNum = pageComCvtBusinessDTO.getPageNum(); Long pageSize = pageComCvtBusinessDTO.getPageSize(); if (null == pageNum || 0 == pageNum) { pageNum = 1l; } if (null == pageSize || 0 == pageSize) { pageSize = 10l; } page.setSize(pageSize); page.setCurrent(pageNum); IPage iPage = comCvtBusinessDAO.pageComCvtBusiness(page, pageComCvtBusinessDTO); return R.ok(iPage); } @Override @Transactional(rollbackFor = Exception.class) public R addComCvtBusiness(ComCvtBusinessDTO comCvtBusinessDTO) { ComCvtBusinessDO comCvtBusinessDO = new ComCvtBusinessDO(); BeanUtils.copyProperties(comCvtBusinessDTO, comCvtBusinessDO); comCvtBusinessDO.setCreateAt(new Date()); int count = comCvtBusinessDAO.insert(comCvtBusinessDO); if (count < 1) { return R.fail(); } if (comCvtBusinessDTO.getAreaFlag() == 2 && !ObjectUtils.isEmpty(comCvtBusinessDTO.getCommunityIds())) { List comCvtBusinessAreaDOS = new ArrayList<>(); comCvtBusinessDTO.getCommunityIds().stream().forEach(areaId -> { ComCvtBusinessAreaDO comCvtBusinessAreaDO = new ComCvtBusinessAreaDO(); comCvtBusinessAreaDO.setBusinessId(comCvtBusinessDO.getId()); comCvtBusinessAreaDO.setCommunityId(areaId); comCvtBusinessAreaDOS.add(comCvtBusinessAreaDO); }); comCvtBusinessAreaService.batchSave(comCvtBusinessAreaDOS); } if (!ObjectUtils.isEmpty(comCvtBusinessDTO.getMediaPaths())) { List comCvtBusinessIntroduceDOS = new ArrayList<>(); comCvtBusinessDTO.getMediaPaths().stream().forEach(mediaPath -> { ComCvtBusinessIntroduceDO comCvtBusinessIntroduceDO = new ComCvtBusinessIntroduceDO(); comCvtBusinessIntroduceDO.setBusinessId(comCvtBusinessDO.getId()); comCvtBusinessIntroduceDO.setMediaPath(mediaPath); comCvtBusinessIntroduceDOS.add(comCvtBusinessIntroduceDO); }); comCvtBusinessIntroduceService.batchSave(comCvtBusinessIntroduceDOS); } return R.ok(); } @Override public R putComCvtBusiness(ComCvtBusinessDTO comCvtBusinessDTO) { ComCvtBusinessDO comCvtBusinessDO = comCvtBusinessDAO.selectById(comCvtBusinessDTO.getId()); if (null == comCvtBusinessDO) { return R.fail("商家不存在"); } BeanUtils.copyProperties(comCvtBusinessDTO, comCvtBusinessDO); comCvtBusinessDAO.updateById(comCvtBusinessDO); // 删除服务范围 comCvtBusinessAreaDAO.delete(new QueryWrapper().lambda() .eq(ComCvtBusinessAreaDO::getBusinessId, comCvtBusinessDO.getId())); // 删除商家介绍媒体文件 comCvtBusinessIntroduceDAO.delete(new QueryWrapper().lambda() .eq(ComCvtBusinessIntroduceDO::getBusinessId, comCvtBusinessDO.getId())); if (comCvtBusinessDTO.getAreaFlag() == 2 && !ObjectUtils.isEmpty(comCvtBusinessDTO.getCommunityIds())) { List comCvtBusinessAreaDOS = new ArrayList<>(); comCvtBusinessDTO.getCommunityIds().stream().forEach(areaId -> { ComCvtBusinessAreaDO comCvtBusinessAreaDO = new ComCvtBusinessAreaDO(); comCvtBusinessAreaDO.setBusinessId(comCvtBusinessDO.getId()); comCvtBusinessAreaDO.setCommunityId(areaId); comCvtBusinessAreaDOS.add(comCvtBusinessAreaDO); }); comCvtBusinessAreaService.batchSave(comCvtBusinessAreaDOS); } if (!ObjectUtils.isEmpty(comCvtBusinessDTO.getMediaPaths())) { List comCvtBusinessIntroduceDOS = new ArrayList<>(); comCvtBusinessDTO.getMediaPaths().stream().forEach(mediaPath -> { ComCvtBusinessIntroduceDO comCvtBusinessIntroduceDO = new ComCvtBusinessIntroduceDO(); comCvtBusinessIntroduceDO.setBusinessId(comCvtBusinessDO.getId()); comCvtBusinessIntroduceDO.setMediaPath(mediaPath); comCvtBusinessIntroduceDOS.add(comCvtBusinessIntroduceDO); }); comCvtBusinessIntroduceService.batchSave(comCvtBusinessIntroduceDOS); } return R.ok(); } @Override public R getComCvtBusiness(Long id) { ComCvtBusinessDO comCvtBusinessDO = comCvtBusinessDAO.selectById(id); if (null == comCvtBusinessDO) { return R.fail("商家不存在"); } ComCvtBusinessVO comCvtBusinessVO = new ComCvtBusinessVO(); BeanUtils.copyProperties(comCvtBusinessDO, comCvtBusinessVO); List comActDOS = new ArrayList<>(); if (comCvtBusinessDO.getAreaFlag() == 1) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper().eq(ComActDO::getState, 0); comActDOS = comActDAO.selectList(lambdaQueryWrapper); } else { List areaIds = comCvtBusinessAreaService.getBusinessServiceAreaIds(comCvtBusinessDO.getId()); if (!ObjectUtils.isEmpty(areaIds)) { comActDOS = comActDAO.selectBatchIds(areaIds); } } if (!ObjectUtils.isEmpty(comActDOS)) { List comActVOS = new ArrayList<>(); comActDOS.forEach(comActDO -> { ComActVO comActVO = new ComActVO(); BeanUtils.copyProperties(comActDO, comActVO); comActVOS.add(comActVO); }); comCvtBusinessVO.setComActVOS(comActVOS); } List mediaPaths = comCvtBusinessIntroduceService.getBusinessMediaPaths(id); comCvtBusinessVO.setMediaPaths(mediaPaths); return R.ok(comCvtBusinessVO); } @Override @Transactional(rollbackFor = Exception.class) public R deleteComCvtBusiness(Long id) { int delete = comCvtBusinessDAO.deleteById(id); if (delete == 0) { return R.fail(); } // 删除服务范围 comCvtBusinessAreaDAO .delete(new QueryWrapper().lambda().eq(ComCvtBusinessAreaDO::getBusinessId, id)); // 删除商家介绍媒体文件 comCvtBusinessIntroduceDAO.delete( new QueryWrapper().lambda().eq(ComCvtBusinessIntroduceDO::getBusinessId, id)); return R.ok(); } @Override public R pageComCvtBusinessByServiceArea(PageComCvtBusinessAppletsDTO comCvtBusinessAppletsDTO) { Page page = new Page<>(); Long pageNum = comCvtBusinessAppletsDTO.getPageNum(); Long pageSize = comCvtBusinessAppletsDTO.getPageSize(); if (null == pageNum || 0 == pageNum) { pageNum = 1l; } if (null == pageSize || 0 == pageSize) { pageSize = 10l; } page.setSize(pageSize); page.setCurrent(pageNum); IPage iPage = comCvtBusinessDAO.pageComCvtBusinessByServiceArea(page, comCvtBusinessAppletsDTO); return R.ok(iPage); } @Override public R getComCvtBusinessServeDetail(Long id) { ComCvtBusinessDO comCvtBusinessDO = comCvtBusinessDAO.selectById(id); if (null == comCvtBusinessDO) { return R.fail("商家不存在"); } ComCvtBusinessDetailVO comCvtBusinessDetailVO = new ComCvtBusinessDetailVO(); BeanUtils.copyProperties(comCvtBusinessDO, comCvtBusinessDetailVO); if (comCvtBusinessDO.getAreaFlag() != 1) { List areaIds = comCvtBusinessAreaService.getBusinessServiceAreaIds(comCvtBusinessDO.getId()); List comActDOS = comActDAO.selectBatchIds(areaIds); if (!ObjectUtils.isEmpty(comActDOS)) { List comActVOS = new ArrayList<>(); comActDOS.forEach(comActDO -> { comActVOS.add(comActDO.getName()); }); comCvtBusinessDetailVO.setComActVOS(comActVOS); } } List mediaPaths = comCvtBusinessIntroduceService.getBusinessMediaPaths(id); comCvtBusinessDetailVO.setMediaPaths(mediaPaths); comCvtBusinessDetailVO.setCategoryServeVOS(comCvtServeService.getBusinessCategoryServeVOS(id)); return R.ok(comCvtBusinessDetailVO); } }