package com.ruoyi.system.service.impl; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.system.domain.conference.ZxConference; import com.ruoyi.system.domain.conference.ZxConferenceUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.common.utils.StringUtils; import org.springframework.transaction.annotation.Transactional; import com.ruoyi.system.mapper.ZxConferenceMapper; import com.ruoyi.system.service.IZxConferenceService; import java.util.ArrayList; import java.util.List; /** * 政协会议活动Service业务层处理 * * @author boman * @date 2024-03-06 */ @Service public class ZxConferenceServiceImpl implements IZxConferenceService { @Autowired private ZxConferenceMapper zxConferenceMapper; /** * 查询政协会议活动 * * @param conferenceId 政协会议活动主键 * @return 政协会议活动 */ @Override public ZxConference selectZxConferenceByConferenceId(Long conferenceId) { return zxConferenceMapper.selectZxConferenceByConferenceId(conferenceId); } /** * 查询政协会议活动人员详情 * * @param conferenceId 政协会议活动主键 * @return */ @Override public List selectZxConferenceUserByConferenceId(Long conferenceId) { return zxConferenceMapper.selectZxConferenceUserByConferenceId(conferenceId); } /** * 查询政协会议活动列表 * * @param zxConference 政协会议活动 * @return 政协会议活动 */ @Override public List selectZxConferenceList(ZxConference zxConference) { //查询是否答复,不答复算未读 List zxConferences = zxConferenceMapper.selectZxConferenceList(zxConference); if (zxConferences != null && zxConferences.size() > 0) { for (ZxConference conference : zxConferences) { List zxConferenceUserList = conference.getZxConferenceUserList(); //找出答复字段不是null的 long count = zxConferenceUserList.stream().filter(e -> e.getIsJoin() != null).count(); conference.setRead(count + ""); conference.setNoRead(String.valueOf(zxConferenceUserList.size() - count)); } } return zxConferences; } /** * 新增政协会议活动 * * @param zxConference 政协会议活动 * @return 结果 */ @Transactional(rollbackFor = Exception.class) @Override public int insertZxConference(ZxConference zxConference) { //todo 给参会人员发送短信 zxConference.setCreateTime(DateUtils.getNowDate()); int rows = zxConferenceMapper.insertZxConference(zxConference); insertZxConferenceUser(zxConference); return rows; } /** * 修改政协会议活动 * * @param zxConference 政协会议活动 * @return 结果 */ @Transactional(rollbackFor = Exception.class) @Override public int updateZxConference(ZxConference zxConference) { //todo 给参会人员发送短信 zxConference.setUpdateTime(DateUtils.getNowDate()); zxConferenceMapper.deleteZxConferenceUserByConferenceId(zxConference.getConferenceId()); insertZxConferenceUser(zxConference); return zxConferenceMapper.updateZxConference(zxConference); } /** * 修改会议答复信息 */ @Override public int updateReply(ZxConferenceUser zxConferenceUser) { return zxConferenceMapper.updateReply(zxConferenceUser); } /** * 批量删除政协会议活动 * * @param conferenceIds 需要删除的政协会议活动主键 * @return 结果 */ @Transactional @Override public int deleteZxConferenceByConferenceIds(Long[] conferenceIds) { zxConferenceMapper.deleteZxConferenceUserByConferenceIds(conferenceIds); return zxConferenceMapper.deleteZxConferenceByConferenceIds(conferenceIds); } /** * 删除政协会议活动信息 * * @param conferenceId 政协会议活动主键 * @return 结果 */ @Transactional @Override public int deleteZxConferenceByConferenceId(Long conferenceId) { zxConferenceMapper.deleteZxConferenceUserByConferenceId(conferenceId); return zxConferenceMapper.deleteZxConferenceByConferenceId(conferenceId); } /** * 新增政协会议活动-用户关联信息 * * @param zxConference 政协会议活动对象 */ public void insertZxConferenceUser(ZxConference zxConference) { List zxConferenceUserList = zxConference.getZxConferenceUserList(); Long conferenceId = zxConference.getConferenceId(); if (StringUtils.isNotNull(zxConferenceUserList)) { List list = new ArrayList(); for (ZxConferenceUser zxConferenceUser : zxConferenceUserList) { zxConferenceUser.setConferenceId(conferenceId); list.add(zxConferenceUser); } if (list.size() > 0) { zxConferenceMapper.batchZxConferenceUser(list); } } } }