From c02e4e8ebd88f2d277935111ca16f2119adbac23 Mon Sep 17 00:00:00 2001 From: 101captain <237651143@qq.com> Date: 星期日, 24 七月 2022 10:20:57 +0800 Subject: [PATCH] bug修改 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java | 403 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 376 insertions(+), 27 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java index c70462f..0277595 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java @@ -1,12 +1,18 @@ package com.panzhihua.service_community.service.impl; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; import javax.annotation.Resource; +import cn.hutool.core.collection.ListUtil; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.PageUtil; +import com.panzhihua.common.model.vos.LoginUserInfoVO; +import com.panzhihua.common.model.vos.PageVO; +import com.panzhihua.common.service.user.UserService; +import com.panzhihua.service_community.entity.ComPbCheckUnit; import com.panzhihua.service_community.service.ComActNeighborCircleTopicService; +import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -29,6 +35,7 @@ import com.panzhihua.service_community.service.ComActNeighborCircleService; import lombok.extern.slf4j.Slf4j; +import org.springframework.util.CollectionUtils; /** * @auther lyq @@ -64,7 +71,16 @@ private ComActNeighborCircleTopicMapper comActNeighborCircleTopicMapper; @Resource private ComActNeighborCircleTopicService comActNeighborCircleTopicService; - + @Resource + private UserService userService; + @Resource + private ComPbMemberDAO comPbMemberDAO; + @Resource + private ComActNeighborCircleDAO comActNeighborCircleDAO; + @Resource + private ComActActivityDAO comActActivityDAO; + @Resource + private ComPbCheckUnitDao comPbCheckUnitDao; /** * 分页查询邻里圈列表 * @@ -74,6 +90,18 @@ */ @Override public R pageNeighborByApp(ComActNeighborCircleAppDTO neighborCircleAppDTO) { +// if(neighborCircleAppDTO.getCommunityId()==0L){ +// R<LoginUserInfoVO> loginUserInfoVOR=userService.getUserInfoByUserId(neighborCircleAppDTO.getUserId().toString()); +// if(R.isOk(loginUserInfoVOR)){ +// LoginUserInfoVO loginUserInfoVO=loginUserInfoVOR.getData(); +// if(loginUserInfoVO!=null){ +// ComPbMemberDO comPbMemberDO=comPbMemberDAO.selectOne(new QueryWrapper<ComPbMemberDO>().lambda().eq(ComPbMemberDO::getIdCard,loginUserInfoVO.getIdCard())); +// if(comPbMemberDO!=null){ +// neighborCircleAppDTO.setCommunityId(comPbMemberDO.getCommunityId()); +// } +// } +// } +// } Page userPage = new Page(neighborCircleAppDTO.getPageNum(), neighborCircleAppDTO.getPageSize()); IPage<ComActNeighborCircleAppVO> doPager = this.baseMapper.pageNeighborByApp(userPage, neighborCircleAppDTO); if (!doPager.getRecords().isEmpty()) { @@ -106,6 +134,43 @@ return R.ok(doPager); } + @Override + public R selectSolve(ComActNeighborCircleAppDTO neighborCircleAppDTO) { + IPage<ComActNeighborCircleAppVO> doPager=this.baseMapper.selectSolve(new Page<ComActNeighborCircleDO>(neighborCircleAppDTO.getPageNum(),neighborCircleAppDTO.getPageSize()),neighborCircleAppDTO); + if (!doPager.getRecords().isEmpty()) { + for (ComActNeighborCircleAppVO circleAppVO : doPager.getRecords()) { + if (neighborCircleAppDTO.getSolveId() != null) { + // 查询点赞信息 + ComActNeighborCircleFabulousDO circleFabulousDO = + comActNeighborCircleFabulousDAO.selectOne(new QueryWrapper<ComActNeighborCircleFabulousDO>() + .lambda().eq(ComActNeighborCircleFabulousDO::getParentId, circleAppVO.getId()) + .eq(ComActNeighborCircleFabulousDO::getUserId, neighborCircleAppDTO.getUserId()) + .eq(ComActNeighborCircleFabulousDO::getType, ComActNeighborCircleFabulousDO.type.llq) + .eq(ComActNeighborCircleFabulousDO::getIsEffective, + ComActNeighborCircleFabulousDO.isEffective.yes)); + if (circleFabulousDO != null) { + circleAppVO.setHaveSign(1); + } else { + circleAppVO.setHaveSign(2); + } + } + ComActDO actDO = comActDAO.selectById(circleAppVO.getCommunityId()); + if (circleAppVO.getType() != null && circleAppVO.getType().equals(ComActNeighborCircleDO.type.admin)) { + if (actDO != null) { + circleAppVO.setName(actDO.getName()); + } + } + else { + if (actDO != null) { + circleAppVO.setCommunityName(actDO.getName()); + } + } + + } + } + return R.ok(doPager); + } + /** * 用户发布邻里圈审核 * @@ -126,25 +191,6 @@ } if (StringUtils.isNotEmpty(addNeighborCircleAppDTO.getPhone())) { neighborCircleDO.setReleasePhone(addNeighborCircleAppDTO.getPhone()); - } - //判断用户的话题是否是新增的 - if(StringUtils.isNotEmpty(addNeighborCircleAppDTO.getTopicName())){ - //新增邻里圈话题 - ComActNeighborCircleTopicDO circleTopicDO = comActNeighborCircleTopicMapper.selectOne(new QueryWrapper<ComActNeighborCircleTopicDO>() - .lambda().eq(ComActNeighborCircleTopicDO::getCommunityId,neighborCircleDO.getCommunityId()) - .eq(ComActNeighborCircleTopicDO::getName,addNeighborCircleAppDTO.getTopicName())); - if(circleTopicDO == null){ - circleTopicDO = new ComActNeighborCircleTopicDO(); - circleTopicDO.setCommunityId(neighborCircleDO.getCommunityId()); - circleTopicDO.setName(addNeighborCircleAppDTO.getTopicName()); - circleTopicDO.setCreateBy(neighborCircleDO.getReleaseId()); - circleTopicDO.setCreateAt(new Date()); - circleTopicDO.setCount(0); - circleTopicDO.setHotNum(0L); - circleTopicDO.setStatus(ComActNeighborCircleTopicDO.status.yes); - comActNeighborCircleTopicMapper.insert(circleTopicDO); - } - neighborCircleDO.setTopicId(circleTopicDO.getId()); } //判断当前邻里圈是否需要审核 if(addNeighborCircleAppDTO.getIsExamine().equals(AddComActNeighborCircleAppDTO.isExamine.no)){ @@ -191,6 +237,18 @@ ComActDO actDO = comActDAO.selectById(circleDetailAppVO.getCommunityId()); if (actDO != null) { circleDetailAppVO.setName(actDO.getName()); + } + } + if(circleDetailAppVO.getOrderType()!=null){ + if(circleDetailAppVO.getOrderType()==2){ + AdministratorsUserVO user1 = this.baseMapper.selectUserByUserId(circleDetailAppVO.getSolveId()); + circleDetailAppVO.setSolveName(user1.getName()); + } + if(circleDetailAppVO.getOrderType()==1){ + ComPbCheckUnit comPbCheckUnit=comPbCheckUnitDao.selectById(circleDetailAppVO.getSolveUnitId()); + if(comPbCheckUnit!=null){ + circleDetailAppVO.setSolveName(comPbCheckUnit.getName()); + } } } @@ -420,6 +478,7 @@ ComActNeighborCircleCommentDO circleCommentDO = comActNeighborCircleCommentDAO.selectById(fabulousAppDTO.getServiceId()); if (circleCommentDO != null) { + circleCommentDO.setFabulousNum(circleCommentDO.getFabulousNum() + 1); comActNeighborCircleCommentDAO.updateById(circleCommentDO); //计算需要增加的热度值 @@ -636,7 +695,7 @@ return R.fail(); } if (comActNeighborCircleDO.getStatus() == 1) { - return R.fail("待审核的邻里圈不能删除"); + return R.fail("待审核的数据不能删除"); } // 邻里圈删除 this.baseMapper.deleteById(id); @@ -658,15 +717,30 @@ @Override public R detailNeighborByAdmin(Long id) { - ComActNeighborCircleDO comActNeighborCircleDO = this.baseMapper.selectById(id); + ComActNeighborCircleDetailAppVO comActNeighborCircleDO = + this.baseMapper.neighborDetailByApp(id); if (comActNeighborCircleDO == null) { return R.fail("id有误"); } AdministratorsUserVO user = this.baseMapper.selectUserByUserId(comActNeighborCircleDO.getReleaseId()); DetailNeighborCircleAdminVO vo = new DetailNeighborCircleAdminVO(); BeanUtils.copyProperties(comActNeighborCircleDO, vo); - vo.setReleaseName(user.getName()); - vo.setImageUrl(user.getImageUrl()); + if(user!=null){ + vo.setReleaseName(user.getName()); + vo.setImageUrl(user.getImageUrl()); + } + if(comActNeighborCircleDO.getOrderType()!=null){ + if(comActNeighborCircleDO.getOrderType()==2){ + AdministratorsUserVO user1 = this.baseMapper.selectUserByUserId(comActNeighborCircleDO.getSolveId()); + vo.setSolveName(user1.getName()); + } + if(comActNeighborCircleDO.getOrderType()==1){ + ComPbCheckUnit comPbCheckUnit=comPbCheckUnitDao.selectById(comActNeighborCircleDO.getSolveUnitId()); + if(comPbCheckUnit!=null){ + vo.setSolveName(comPbCheckUnit.getName()); + } + } + } // 查询话题名称 if (comActNeighborCircleDO.getTopicId() != null) { @@ -927,4 +1001,279 @@ } return R.fail(); } + + @Override + public R orderAndSolve(EditNeighborCircleAdminVO editNeighborCircleAdminVO) { + ComActNeighborCircleDO comActNeighborCircleDO=new ComActNeighborCircleDO(); + BeanUtils.copyProperties(editNeighborCircleAdminVO,comActNeighborCircleDO); + if(comActNeighborCircleDO.getSolveStatus()!=null){ + comActNeighborCircleDO.setSolveTime(new Date()); + } + if(comActNeighborCircleDO.getOrderStatus()!=null){ + comActNeighborCircleDO.setOrderTime(new Date()); + } + if(StringUtils.isNotEmpty(comActNeighborCircleDO.getComment())){ + comActNeighborCircleDO.setCommentTime(new Date()); + } + return R.ok(this.baseMapper.updateById(comActNeighborCircleDO)); + } + + @Override + public R serviceStatic(ServiceStaticDTO serviceStaticDTO) { + ServiceStaticsVO serviceStaticsVO=new ServiceStaticsVO(); + if(serviceStaticDTO.getCheckUnitId()!=null){ + serviceStaticsVO=this.baseMapper.selectStatsCheckUnit(serviceStaticDTO.getCheckUnitId(),serviceStaticDTO.getYear()); + serviceStaticsVO=this.baseMapper.selectStatsCheckUnit(serviceStaticDTO.getCheckUnitId(),serviceStaticDTO.getYear()); + serviceStaticsVO.setServiceProjecList(this.baseMapper.selectListByCheckUnitId(serviceStaticDTO.getCheckUnitId(),serviceStaticDTO.getYear())); + serviceStaticsVO.setServiceActivityList(comActActivityDAO.selectListByRelationId(serviceStaticDTO.getCheckUnitId(),serviceStaticDTO.getYear())); + } + else { + serviceStaticsVO=this.baseMapper.selectStatsUser(serviceStaticDTO.getPhone(),serviceStaticDTO.getYear()); + serviceStaticsVO.setServiceProjecList(this.baseMapper.selectListByPhone(serviceStaticDTO.getPhone(),serviceStaticDTO.getYear())); + ComPbMemberDO comPbMemberDO=comPbMemberDAO.selectOne(new QueryWrapper<ComPbMemberDO>().lambda().eq(ComPbMemberDO::getPhone,serviceStaticDTO.getPhone()).last("limit 1")); + if(comPbMemberDO!=null){ + serviceStaticsVO.setWorkActivityList(comActActivityDAO.selectListByRelationId(comPbMemberDO.getCheckUnitId(),serviceStaticDTO.getYear())); + serviceStaticsVO.setServiceActivityList(comActActivityDAO.selectListByCommunityId(comPbMemberDO.getCommunityId(),serviceStaticDTO.getYear(),serviceStaticDTO.getPhone())); + } + + } + return R.ok(serviceStaticsVO); + } + + @Override + public R institutionalUnitServiceAnalysis(Integer year, Integer type, Integer range, Long communityId,Integer page,Integer size,String belongTo,Long unitId) { + ActivityAnalysisVO activityVO=new ActivityAnalysisVO(); + String beginTime=null; + String endTime=null; + if (null != year){ + //设置开始,截止时间 + beginTime=year.toString().concat("-01-01"); + endTime=year.toString().concat("-12-31"); + } + //统计党员,单位总数 + activityVO.setPartyMemberCount(comActDAO.selectUnitCount()); + activityVO.setUnitCount(comActDAO.selectMemberCount()); + //获取单位活动统计数据(邻里圈) + List<UnitActivityAnalysisVO> unitActivityAnalysisVOS = comActNeighborCircleDAO.institutionalUnitServiceAnalysis(beginTime, endTime, belongTo,communityId); + //获取单位活动统计数据(活动) + List<UnitActivityAnalysisVO> unitActivityAnalysisVOS1 = comActNeighborCircleDAO.institutionalUnitActivityAnalysis(beginTime, endTime, belongTo,communityId); + if (unitActivityAnalysisVOS.size()>0){ + for (UnitActivityAnalysisVO unitActivityAnalysisVO : unitActivityAnalysisVOS){ + if (ObjectUtils.isNotEmpty(unitActivityAnalysisVO)){ + if (ObjectUtils.isNotEmpty(unitActivityAnalysisVO.getUnitId())){ + //设置单位名称 + unitActivityAnalysisVO.setUnitName(comActDAO.selectUnitName(unitActivityAnalysisVO.getUnitId())); + //统计活动表中的活动信息 + } + if (ObjectUtils.isNotEmpty(unitActivityAnalysisVO.getCommunityId())){ + unitActivityAnalysisVO.setCommunityName(comActDAO.selectById(unitActivityAnalysisVO.getCommunityId()).getName()); + } + } + } + } + //活动表数据处理 + if (unitActivityAnalysisVOS1.size()>0){ + for (UnitActivityAnalysisVO vo : unitActivityAnalysisVOS1) { + if(ObjectUtils.isNotEmpty(vo)){ + if (ObjectUtils.isNotEmpty(vo.getUnitId())){ + //判断邻里圈统计中是否已有该单位数据 + Map<String, Integer> param = alreadyAnalysis(vo.getUnitId(), unitActivityAnalysisVOS); + if (param.get("flag")==1){ + //已有数据,将时长,次数相加 + Integer serviceTime = vo.getServiceTime(); + Integer serviceTimes = vo.getServiceTimes(); + unitActivityAnalysisVOS.get(param.get("index")).setServiceTime(unitActivityAnalysisVOS.get(param.get("index")).getServiceTime()+serviceTime); + unitActivityAnalysisVOS.get(param.get("index")).setServiceTimes(unitActivityAnalysisVOS.get(param.get("index")).getServiceTimes()+serviceTimes); + }else { + //新数据,获取单位,社区名 + vo.setUnitName(comActDAO.selectUnitName(vo.getUnitId())); + if (ObjectUtils.isNotEmpty(vo.getCommunityId())) { + vo.setCommunityName(comActDAO.selectById(vo.getCommunityId()).getName()); + } + unitActivityAnalysisVOS.add(vo); + } + } + } + } + } + //获取党员活动统计数据 + List<PartyMemberAnalysisVO> partyMemberAnalysisVOS = comActNeighborCircleDAO.institutionalPartyMemberServiceAnalysis(beginTime, endTime, belongTo,communityId,unitId); + List<PartyMemberAnalysisVO> partyMemberAnalysisVOS1 = comActNeighborCircleDAO.institutionalPartyMemberActAnalysis(beginTime, endTime, belongTo,communityId,unitId); + if (partyMemberAnalysisVOS1.size()>0){ + for (PartyMemberAnalysisVO vo : partyMemberAnalysisVOS1) { + if (ObjectUtils.isNotEmpty(vo)){ + if (ObjectUtils.isNotEmpty(vo.getMemberId())){ + Map<String, Integer> param = memberAlreadyAnalysis(vo.getMemberId(), partyMemberAnalysisVOS); + if (param.get("flag")==1){ + Integer serviceTime = vo.getServiceTime(); + Integer serviceTimes = vo.getServiceTimes(); + partyMemberAnalysisVOS.get(param.get("index")).setServiceTime(partyMemberAnalysisVOS.get(param.get("index")).getServiceTime()+serviceTime); + partyMemberAnalysisVOS.get(param.get("index")).setServiceTimes(partyMemberAnalysisVOS.get(param.get("index")).getServiceTimes()+serviceTimes); + }else{ + partyMemberAnalysisVOS.add(vo); + } + } + } + } + } + //统计总时长和总次数 + Integer unitServiceCount=0; + Integer unitServiceTotalTime=0; + Integer memberServiceCount=0; + Integer memberServiceTotalTome=0; + for (UnitActivityAnalysisVO vo : unitActivityAnalysisVOS) { + //避免空指针 + if (ObjectUtils.isNotEmpty(vo)){ + if (ObjectUtils.isNotEmpty(vo.getServiceTime())){ + unitServiceCount+=vo.getServiceTime(); + } + if (ObjectUtils.isNotEmpty(vo.getServiceTimes())){ + unitServiceTotalTime+=vo.getServiceTimes(); + } + } + } + for (PartyMemberAnalysisVO vo : partyMemberAnalysisVOS) { + //避免空指针 + if (ObjectUtils.isNotEmpty(vo)){ + if (ObjectUtils.isNotEmpty(vo.getServiceTime())){ + memberServiceCount+=vo.getServiceTime(); + } + if (ObjectUtils.isNotEmpty(vo.getServiceTimes())){ + memberServiceTotalTome+=vo.getServiceTimes(); + } + } + } + activityVO.setUnitServiceTotalCount(unitServiceCount); + activityVO.setUnitServiceTotalTime(unitServiceTotalTime); + activityVO.setPartyMemberServiceTotalCount(memberServiceCount); + activityVO.setPartyMemberServiceTotalTime(memberServiceTotalTome); + //处理排序 +// if (null != type){ +// if (type.equals(1)){ +// //按时长排序 +// ListUtil.sortByProperty(unitActivityAnalysisVOS, "serviceTime"); +// ListUtil.sortByProperty(partyMemberAnalysisVOS, "serviceTime"); +// }else if (type.equals(2)){ +// //按次数排序 +// ListUtil.sortByProperty(unitActivityAnalysisVOS, "serviceTimes"); +// ListUtil.sortByProperty(partyMemberAnalysisVOS, "serviceTimes"); +// } +// } + //处理分页 + PageVO<List<UnitActivityAnalysisVO>> unitPage=new PageVO<>(); + PageVO<List<PartyMemberAnalysisVO>> memberPage=new PageVO<>(); + if (ObjectUtils.isNotEmpty(page) && ObjectUtils.isNotEmpty(size)){ + //分页处理 + unitPage.setRecordsCount(unitActivityAnalysisVOS.size()); + unitPage.setPage(page); + unitPage.setPages(getPages(unitPage.getRecordsCount(),size )); + memberPage.setPage(page); + memberPage.setRecordsCount(partyMemberAnalysisVOS.size()); + memberPage.setPages(getPages(memberPage.getRecordsCount(), size)); + //处理分页的结果 + unitPage.setRecords(subUnitList((ArrayList) unitActivityAnalysisVOS, page,size)); + memberPage.setRecords(subUnitList((ArrayList)partyMemberAnalysisVOS,page ,size)); + + }else { + unitPage.setRecords(unitActivityAnalysisVOS); + memberPage.setRecords(partyMemberAnalysisVOS); + } + activityVO.setUnitList(unitPage); + activityVO.setPartyMemberList(memberPage); + return R.ok(activityVO); + + } + + + @Override + public R serviceStaticBackstage(ServiceStaticBackstageDTO serviceStaticDTO) { + return null; + } + + /** + * 判断活动统计列表中是否已有该单位的数据 + * */ + public Map<String,Integer> alreadyAnalysis(Long unitId,List<UnitActivityAnalysisVO> list){ + Map<String,Integer> map=new HashMap<>(); + if (list.size()>0){ + for (int i=0;i<list.size();i++) { + UnitActivityAnalysisVO vo = list.get(i); + if (ObjectUtils.isNotEmpty(vo)){ + if (ObjectUtils.isNotEmpty(vo.getUnitId())){ + if (unitId.equals(vo.getUnitId())){ + map.put("index",i ); + map.put("flag",1 ); + return map; + } + } + } + } + } + map.put("flag",0 ); + return map; + } + + /** + * 计算总页数 + * */ + public Integer getPages(Integer record,Integer size){ + if (null != record && null != size){ + int pages = PageUtil.totalPage(record, size); + return pages; + } + return 0; + } + + /** + * 分页截取 + * */ + public List<Object> subUnitList(List<Object> list, int page, int size){ + try { + //计算endIndex是否超出List大小 + final Boolean flag=((page-1)*size+size) > list.size(); + if (1 == page || 0 == page){ + //第一页 + return list.subList(0,size); + }else if (flag){ + return ListUtil.sub(list, (page-1)*size-1, list.size()-1); + } + else { + return list.subList((page-1)*size, (page-1)*size+size); + } + }catch (Exception e){ + //返回原集合 + return list; + } + } + + /** + * 判断党员的统计是是否已存在 + * */ + public Map<String,Integer> memberAlreadyAnalysis(Long memberId,List<PartyMemberAnalysisVO> list){ + Map<String,Integer> map=new HashMap<>(); + if (memberId != null && list.size() > 0){ + for (int i=0;i<list.size();i++) { + PartyMemberAnalysisVO vo = list.get(i); + if (ObjectUtils.isNotEmpty(vo)){ + if (ObjectUtils.isNotEmpty(vo.getMemberId())){ + if (memberId.equals(vo.getMemberId())){ + map.put("index",i ); + map.put("flag",1 ); + return map; + } + } + } + } + } + map.put("flag",0 ); + return map; + } + + + + + + + + } -- Gitblit v1.7.1