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<ComCvtBusinessDAO, ComCvtBusinessDO>
|
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<ComCvtBusinessVO> 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<ComCvtBusinessAreaDO> 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<ComCvtBusinessIntroduceDO> 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<ComCvtBusinessAreaDO>().lambda()
|
.eq(ComCvtBusinessAreaDO::getBusinessId, comCvtBusinessDO.getId()));
|
// 删除商家介绍媒体文件
|
comCvtBusinessIntroduceDAO.delete(new QueryWrapper<ComCvtBusinessIntroduceDO>().lambda()
|
.eq(ComCvtBusinessIntroduceDO::getBusinessId, comCvtBusinessDO.getId()));
|
if (comCvtBusinessDTO.getAreaFlag() == 2 && !ObjectUtils.isEmpty(comCvtBusinessDTO.getCommunityIds())) {
|
List<ComCvtBusinessAreaDO> 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<ComCvtBusinessIntroduceDO> 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<ComActDO> comActDOS = new ArrayList<>();
|
|
if (comCvtBusinessDO.getAreaFlag() == 1) {
|
LambdaQueryWrapper<ComActDO> lambdaQueryWrapper =
|
new LambdaQueryWrapper<ComActDO>().eq(ComActDO::getState, 0);
|
comActDOS = comActDAO.selectList(lambdaQueryWrapper);
|
} else {
|
List<Long> areaIds = comCvtBusinessAreaService.getBusinessServiceAreaIds(comCvtBusinessDO.getId());
|
if (!ObjectUtils.isEmpty(areaIds)) {
|
comActDOS = comActDAO.selectBatchIds(areaIds);
|
}
|
}
|
|
if (!ObjectUtils.isEmpty(comActDOS)) {
|
List<ComActVO> comActVOS = new ArrayList<>();
|
comActDOS.forEach(comActDO -> {
|
ComActVO comActVO = new ComActVO();
|
BeanUtils.copyProperties(comActDO, comActVO);
|
comActVOS.add(comActVO);
|
});
|
comCvtBusinessVO.setComActVOS(comActVOS);
|
}
|
List<String> 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<ComCvtBusinessAreaDO>().lambda().eq(ComCvtBusinessAreaDO::getBusinessId, id));
|
// 删除商家介绍媒体文件
|
comCvtBusinessIntroduceDAO.delete(
|
new QueryWrapper<ComCvtBusinessIntroduceDO>().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<ComCvtBusinessVO> 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<Long> areaIds = comCvtBusinessAreaService.getBusinessServiceAreaIds(comCvtBusinessDO.getId());
|
List<ComActDO> comActDOS = comActDAO.selectBatchIds(areaIds);
|
if (!ObjectUtils.isEmpty(comActDOS)) {
|
List<String> comActVOS = new ArrayList<>();
|
comActDOS.forEach(comActDO -> {
|
comActVOS.add(comActDO.getName());
|
});
|
comCvtBusinessDetailVO.setComActVOS(comActVOS);
|
}
|
}
|
List<String> mediaPaths = comCvtBusinessIntroduceService.getBusinessMediaPaths(id);
|
comCvtBusinessDetailVO.setMediaPaths(mediaPaths);
|
comCvtBusinessDetailVO.setCategoryServeVOS(comCvtServeService.getBusinessCategoryServeVOS(id));
|
return R.ok(comCvtBusinessDetailVO);
|
}
|
}
|