package com.panzhihua.service_community.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.panzhihua.common.model.dtos.community.ComActDiscussDTO;
|
import com.panzhihua.common.model.vos.LoginUserInfoVO;
|
import com.panzhihua.common.model.vos.R;
|
import com.panzhihua.common.model.vos.community.ComActDiscussOptionVO;
|
import com.panzhihua.common.model.vos.community.ComActDiscussVO;
|
import com.panzhihua.service_community.dao.*;
|
import com.panzhihua.service_community.model.dos.*;
|
import com.panzhihua.service_community.service.ComActDiscussOptionService;
|
import com.panzhihua.service_community.service.ComActDiscussService;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.util.ObjectUtils;
|
|
import javax.annotation.Resource;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* @program: springcloud_k8s_panzhihuazhihuishequ
|
* @description: 一起议
|
* @author: huang.hongfa weixin hhf9596 qq 959656820
|
* @create: 2021-01-22 14:51
|
**/
|
@Service
|
public class ComActDiscussServiceImpl implements ComActDiscussService {
|
@Resource
|
private ComActDiscussCommentDAO comActDiscussCommentDAO;
|
@Resource
|
private ComActDiscussDAO comActDiscussDAO;
|
@Resource
|
private ComActDiscussOptionUserDAO comActDiscussOptionUserDAO;
|
@Resource
|
private ComActDiscussUserDAO comActDiscussUserDAO;
|
@Resource
|
private ComActDiscussOptionDAO comActDiscussOptionDAO;
|
@Resource
|
private ComActDiscussOptionService comActDiscussOptionService;
|
|
/**
|
* 一起议-新增
|
*
|
* @param comActDiscussDTO 新增参数
|
* @return 新增结果
|
*/
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public R addDiscuss(ComActDiscussDTO comActDiscussDTO) {
|
ComActDiscussDO comActDiscussDO=new ComActDiscussDO();
|
BeanUtils.copyProperties(comActDiscussDTO,comActDiscussDO);
|
int insert = comActDiscussDAO.insert(comActDiscussDO);
|
if (insert>0) {
|
ComActDiscussDO comActDiscussDO1 = comActDiscussDAO.selectOne(new QueryWrapper<ComActDiscussDO>().lambda().eq(ComActDiscussDO::getSubject, comActDiscussDTO.getSubject()).eq(ComActDiscussDO::getUserId, comActDiscussDTO.getUserId()).last(" order by create_at desc limit 1 "));
|
Long comActDiscussDO1Id = comActDiscussDO1.getId();
|
Integer type = comActDiscussDTO.getType();
|
if (type.intValue()==2) {
|
List<String> discussOptions = comActDiscussDTO.getDiscussOptions();
|
List<ComActDiscussOptionDO> comActDiscussOptionDOS=new ArrayList<>();
|
discussOptions.forEach(s -> {
|
ComActDiscussOptionDO comActDiscussOptionDO=new ComActDiscussOptionDO();
|
comActDiscussOptionDO.setDiscussId(comActDiscussDO1Id);
|
comActDiscussOptionDO.setOptionContent(s);
|
comActDiscussOptionDOS.add(comActDiscussOptionDO);
|
});
|
comActDiscussOptionService.saveBatch(comActDiscussOptionDOS);
|
}
|
return R.ok();
|
}
|
return R.fail();
|
}
|
|
/**
|
* 一起议-详情
|
*
|
* @param id 主键
|
* @return ComActDiscussVO
|
*/
|
@Override
|
public R detailDiscuss(Long id) {
|
ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(id);
|
if (ObjectUtils.isEmpty(comActDiscussDO)) {
|
return R.fail("一起议不存在");
|
}
|
ComActDiscussVO comActDiscussVO=new ComActDiscussVO();
|
BeanUtils.copyProperties(comActDiscussDO,comActDiscussVO);
|
Integer integer = comActDiscussCommentDAO.selectCount(new QueryWrapper<ComActDiscussCommentDO>().lambda().eq(ComActDiscussCommentDO::getDiscussId, id));
|
comActDiscussVO.setCommentNum(integer);
|
Integer integer1 = comActDiscussUserDAO.selectCount(new QueryWrapper<ComActDiscussUserDO>().lambda().eq(ComActDiscussUserDO::getDiscussId, id));
|
comActDiscussVO.setSignNum(integer1);
|
Integer type = comActDiscussVO.getType();
|
if (type.intValue()==2) {
|
List<ComActDiscussOptionDO> comActDiscussOptionDOS = comActDiscussOptionDAO.selectList(new QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, id));
|
List<ComActDiscussOptionVO> comActDiscussOptionVOS=new ArrayList<>();
|
comActDiscussOptionDOS.forEach(comActDiscussOptionDO -> {
|
Long discussOptionDOId = comActDiscussOptionDO.getId();
|
Integer selectCount = comActDiscussOptionUserDAO.selectCount(new QueryWrapper<ComActDiscussOptionUserDO>().lambda().eq(ComActDiscussOptionUserDO::getDiscussOptionId, discussOptionDOId));
|
ComActDiscussOptionVO comActDiscussOptionVO=new ComActDiscussOptionVO();
|
BeanUtils.copyProperties(comActDiscussOptionDO,comActDiscussOptionVO);
|
comActDiscussOptionVO.setNum(selectCount);
|
comActDiscussOptionVOS.add(comActDiscussOptionVO);
|
});
|
comActDiscussVO.setComActDiscussOptionVOS(comActDiscussOptionVOS);
|
}
|
Long userId = comActDiscussDO.getUserId();
|
LoginUserInfoVO loginUserInfoVO=comActDiscussDAO.selectUserByUserId(userId);
|
comActDiscussVO.setUserName(loginUserInfoVO.getName());
|
return R.ok(comActDiscussVO);
|
}
|
|
/**
|
* 一起议-删除
|
*
|
* @param id 主键
|
* @return 删除结果
|
*/
|
@Override
|
public R deleteDiscuss(Long id) {
|
int delete = comActDiscussDAO.deleteById(id);
|
if (delete>0) {
|
return R.ok();
|
}
|
return R.fail();
|
}
|
}
|