package com.panzhihua.service_community.service.impl; import static java.util.Objects.isNull; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.panzhihua.common.model.dtos.community.fms.PageFmsEventAdminDTO; import com.panzhihua.common.model.vos.community.fms.FmsEventTopStatisticsVO; import com.panzhihua.common.model.vos.community.fms.FmsEventVO; import com.panzhihua.common.model.vos.grid.EventResourceVO; import com.panzhihua.common.model.vos.grid.EventVO; import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.service_community.dao.EventMapper; import com.panzhihua.service_community.model.dos.EventResourceDO; import com.panzhihua.service_community.service.EventResourceService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.common.model.dtos.community.fms.AddFmsClassroomAdminDTO; import com.panzhihua.common.model.dtos.community.fms.EditFmsClassroomAdminDTO; import com.panzhihua.common.model.dtos.community.fms.PageFmsClassroomAdminDTO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.fms.ComFmsClassroomVO; import com.panzhihua.service_community.dao.ComFmsClassroomDAO; import com.panzhihua.service_community.entity.ComFmsClassroom; import com.panzhihua.service_community.service.ComFmsClassroomService; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * 五微服务-微学堂(ComFmsClassroom)表服务实现类 * * @author makejava * @since 2022-02-11 13:35:52 */ @Service("comFmsClassroomService") public class ComFmsClassroomServiceImpl extends ServiceImpl implements ComFmsClassroomService { @Resource private EventMapper eventMapper; @Resource private EventResourceService eventResourceService; /** * 后台新增微讲堂 * @param adminDTO * @return */ @Override public R addFmsClassroom(AddFmsClassroomAdminDTO adminDTO) { ComFmsClassroom fmsClassroom = new ComFmsClassroom(); BeanUtils.copyProperties(adminDTO, fmsClassroom); int num = this.baseMapper.insert(fmsClassroom); if (num > 0) { return R.ok(); } return R.fail("操作失败,请重新尝试"); } /** * 后台编辑微讲堂 * @param adminDTO * @return */ @Override public R editFmsClassroom(EditFmsClassroomAdminDTO adminDTO) { ComFmsClassroom comFmsClassroom = this.baseMapper.selectById(adminDTO.getId()); if (isNull(comFmsClassroom)) { return R.fail("资源不存在"); } BeanUtils.copyProperties(adminDTO, comFmsClassroom); int num = this.baseMapper.updateById(comFmsClassroom); if (num > 0) { return R.ok(); } return R.fail("操作失败,请重新尝试"); } /** * 后台删除微讲堂 * @param id * @return */ @Override public R deleteFmsClassroom(Long id) { this.baseMapper.deleteById(id); return R.ok(); } /** * 后台获取微讲堂详情 * @param id * @return */ @Override public R detailFmsClassroom(Long id) { ComFmsClassroom comFmsClassroom = this.baseMapper.selectById(id); if (isNull(comFmsClassroom)) { return R.fail("资源不存在"); } ComFmsClassroomVO comFmsClassroomVO = new ComFmsClassroomVO(); BeanUtils.copyProperties(comFmsClassroom, comFmsClassroomVO); return R.ok(comFmsClassroomVO); } /** * 后台分页查询微讲堂 * @param adminDTO * @return */ @Override public R pageFmsClassroomAdmin(PageFmsClassroomAdminDTO adminDTO) { Page page = new Page<>(); page.setCurrent(adminDTO.getPageNum()); page.setSize(adminDTO.getPageSize()); return R.ok(this.baseMapper.pageFmsClassroomAdmin(page, adminDTO)); } /** * 微讲堂顶部统计 * @param communityId * @return */ @Override public R statisticsFmsClassroom(Long communityId) { return R.ok(this.baseMapper.statisticsFmsClassroom(communityId)); } /** * 后台分页查询微调节/微防控 * @param adminDTO * @return */ @Override public R pageFmsEvent(PageFmsEventAdminDTO adminDTO) { Page page = new Page<>(); page.setCurrent(adminDTO.getPageNum()); page.setSize(adminDTO.getPageSize()); return R.ok(this.baseMapper.pageFmsEvent(page, adminDTO)); } /** * 微调节/微防控顶部统计 * @param type * @param communityId * @return */ @Override public R statisticsFmsEvent(Integer type, Long communityId) { return R.ok(this.baseMapper.statisticsFmsEvent(type, communityId)); } /** * 小程序获取微讲堂详情 * @param id * @return */ @Override public R detailFmsClassroomApplets(Long id) { ComFmsClassroom comFmsClassroom = this.baseMapper.selectById(id); if (isNull(comFmsClassroom)) { return R.fail("资源不存在"); } //增加浏览量 comFmsClassroom.setViewNum(comFmsClassroom.getViewNum() + 1); this.baseMapper.updateById(comFmsClassroom); ComFmsClassroomVO comFmsClassroomVO = new ComFmsClassroomVO(); BeanUtils.copyProperties(comFmsClassroom, comFmsClassroomVO); return R.ok(comFmsClassroomVO); } /** * 小程序分页查询微调节/微防控 * @param adminDTO * @return */ @Override public R pageFmsEventApplets(PageFmsEventAdminDTO adminDTO) { Page page = new Page(); page.setCurrent(adminDTO.getPageNum()); page.setSize(adminDTO.getPageSize()); IPage ipage = this.baseMapper.pageFmsEventApplets(page, adminDTO); if (ipage != null) { List eventVOList = ipage.getRecords(); eventVOList.forEach(eventVO -> { List eventResourceDOList = eventResourceService.getBaseMapper().selectList(new LambdaQueryWrapper() .eq(EventResourceDO::getClassification, 1).eq(EventResourceDO::getRefId, eventVO.getId())); List picList = new ArrayList<>(); List audioList = new ArrayList<>(); List videoList = new ArrayList<>(); eventResourceDOList.forEach(eventResourceDO -> { switch (eventResourceDO.getType()) { case 1: EventResourceVO picEventResourceVO = new EventResourceVO(); BeanUtils.copyProperties(eventResourceDO, picEventResourceVO); picList.add(picEventResourceVO); break; case 2: EventResourceVO audioResourceVO = new EventResourceVO(); BeanUtils.copyProperties(eventResourceDO, audioResourceVO); audioList.add(audioResourceVO); break; case 3: EventResourceVO videoResourceVO = new EventResourceVO(); BeanUtils.copyProperties(eventResourceDO, videoResourceVO); videoList.add(videoResourceVO); break; } }); eventVO.setAudios(audioList); eventVO.setPics(picList); eventVO.setVideos(videoList); // 查询网格员头像 Map userMap = eventMapper.getGridMemberImageUrl(eventVO.getGridMemberId()); if (StringUtils.isNotEmpty(userMap)) { eventVO.setGridMemberName(userMap.get("nick_name")); eventVO.setGridMemberImageUrl(userMap.get("image_url")); } }); return R.ok(ipage); } return R.fail(); } }