lidongdong
2024-03-20 0ff56cf152a4b2bb36febf47fd46d79f671b74c0
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComStreetServiceImpl.java
@@ -1,13 +1,37 @@
package com.panzhihua.service_community.service.impl;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.TreeSet;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.panzhihua.common.model.dtos.community.building.BuildingDto;
import com.panzhihua.common.model.vos.StreetVO;
import com.panzhihua.common.model.vos.area.StreetAndBuildVO;
import com.panzhihua.common.model.vos.community.bigscreen.ScreenStatics;
import com.panzhihua.common.model.vos.community.screen.event.EventPopulationSpecialStatisticsVO;
import com.panzhihua.common.model.vos.neighbor.ActivityAnalysisVO;
import com.panzhihua.common.model.vos.neighbor.UnitActivityAnalysisVO;
import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
import com.panzhihua.common.service.community.CommunityService;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.common.utlis.Snowflake;
import com.panzhihua.service_community.dao.*;
import com.panzhihua.service_community.entity.ComEvent;
import com.panzhihua.service_community.service.ComAreaTownCommunityService;
import com.panzhihua.service_community.util.MyAESUtil;
import com.panzhihua.service_community.util.WxDataUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
@@ -22,8 +46,6 @@
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComActVO;
import com.panzhihua.common.model.vos.community.ComStreetVO;
import com.panzhihua.service_community.dao.ComActDAO;
import com.panzhihua.service_community.dao.ComStreetDAO;
import com.panzhihua.service_community.model.dos.ComActDO;
import com.panzhihua.service_community.model.dos.ComStreetDO;
import com.panzhihua.service_community.service.ComStreetService;
@@ -42,6 +64,12 @@
    @Resource
    private UserService userService;
    @Resource
    private ComEventMapper comEventMapper;
    @Autowired
    private CommunityService communityService;
    /**
     * 新增社区
@@ -71,6 +99,7 @@
        administratorsUserVO.setRoleId(777777777L);
        administratorsUserVO.setStreetId(0L);
        administratorsUserVO.setName(comStreetVO.getName());
        administratorsUserVO.setUserId(Snowflake.getId());
        R r=userService.addUserBackstageProperty(administratorsUserVO);
        if(R.isOk(r)){
            BeanUtils.copyProperties(comStreetVO, comStreetDO);
@@ -193,4 +222,148 @@
        return R.fail();
    }
    /**
     * 修改街道信息
     * @param comStreetVO 街道信息
     * */
    @Override
    public R update(ComStreetVO comStreetVO) {
        ComStreetDO comStreetDO=new ComStreetDO();
        BeanUtils.copyProperties(comStreetVO,comStreetDO );
        return R.ok(comStreetDAO.updateById(comStreetDO));
    }
    /**
     * 删除街道
     * */
    @Override
    public R remove(Long id) {
        //是否有未结事件
        List<Long> longs = comActDAO.selectCommunityByStreetId(id);
        List<ComEvent> comEvents = comEventMapper.selectList(new QueryWrapper<ComEvent>().lambda().in(ComEvent::getEventProcessStatus, (4), (6), (7), (8)).in(ComEvent::getRequestUserCommunity, longs));
        if (comEvents.size()!=0){
            return R.fail("有未结事件不可删除");
        }
        comStreetDAO.deleteById(id);
        return R.ok();
    }
    @Override
    public R removeCommunity(Long id) {
        //是否有未结案件
        List<ComEvent> comEvents = comEventMapper.selectList(new QueryWrapper<ComEvent>().lambda().in(ComEvent::getEventProcessStatus, (4), (6), (7), (8)).eq(ComEvent::getRequestUserCommunity, id));
        if (comEvents.size()!=0){
            return R.fail("有未结事件不可删除");
        }
        comActDAO.deleteById(id);
        return R.ok();
    }
    @Override
    public R repassCommunity(ComActVO comActVO) {
        ComActDO comActDO=new ComActDO();
        try {
            comActDO.setPassword(MyAESUtil.Encrypt(comActVO.getPassword(),"Ryo7M3n8loC5Abcd" ));
        } catch (Exception e) {
            e.printStackTrace();
        }
        comActDO.setCommunityId(comActVO.getCommunityId());
        return R.ok(comActDAO.updateById(comActDO));
    }
    @Override
    public R repssStreet(ComStreetVO comActVO) {
        ComStreetDO comStreetDO=new ComStreetDO();
        try {
            comStreetDO.setPassword(MyAESUtil.Encrypt(comActVO.getPassword(),"Ryo7M3n8loC5Abcd" ));
        } catch (Exception e) {
            e.printStackTrace();
        }
        comStreetDO.setStreetId(comActVO.getStreetId());
        return R.ok(comStreetDAO.updateById(comStreetDO));
    }
    @Override
    public R panzhihuaMap(String areaCode) {
        List<ComActVO> comActVOS = comActDAO.panzhihuaMap(areaCode);
        return R.ok(comActVOS);
    }
    @Override
    public R searchStreet(BuildingDto buildingDto) {
        QueryWrapper<ComStreetDO> wrapper = new QueryWrapper<>();
        wrapper.eq(buildingDto.getAreaCode()!= null,"area_code",buildingDto.getAreaCode());
        wrapper.eq("app_id","wx118de8a734d269f0");
        List<ComStreetDO> comStreetDOS = comStreetDAO.selectList(wrapper);
//        ArrayList<ComStreetDO> collect = comStreetDOS.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
//                Comparator.comparing(ComStreetDO::getAreaCode))), ArrayList::new));
        List<StreetVO> list = comStreetDOS.stream().map(v -> {
            StreetVO vo = new StreetVO();
            vo.setStreetId(String.valueOf(v.getStreetId()));
            vo.setName(v.getName());
            return vo;
        }).collect(Collectors.toList());
        return R.ok(list);
    }
    @Override
    public R oneTagThreeReal(Long street) {
        List<StreetAndBuildVO> streetAndBuildVOS = comActDAO.oneTagThreeReal(street);
        return R.ok(streetAndBuildVOS);
    }
    @Override
    public R getScreenStatics() {
        ScreenStatics screenStatics = comActDAO.getScreenStatics();
        WxDataUtil wxDataUtil=new WxDataUtil();
        screenStatics.setDayUser(wxDataUtil.getDayUser());
        screenStatics.setCountUser(wxDataUtil.getMonthUser());
        return R.ok(screenStatics);
    }
    @Override
    public R populationStatics(Long streetId) {
        StreetAndBuildVO vo = new StreetAndBuildVO();
        List<StreetAndBuildVO> list = comActDAO.oneTagThreeReal(streetId);
        if(list != null){
            for (StreetAndBuildVO basics : list) {
                vo.setPeopleNum(vo.getPeopleNum() + basics.getPeopleNum());
                vo.setVillageNum(vo.getVillageNum() + basics.getVillageNum());
                vo.setBuildNum(vo.getBuildNum() + basics.getBuildNum());
            }
        }
        EventPopulationSpecialStatisticsVO populationSpecial = comActDAO.getPopulationSpecial(streetId);
        if(populationSpecial != null){
            populationSpecial.setOtherTotal(populationSpecial.getZjTotal() + populationSpecial.getSfTotal()
                    + populationSpecial.getXsTotal() + populationSpecial.getXjTotal()
                    + populationSpecial.getJzTotal() + populationSpecial.getXdTotal());
            populationSpecial.setLnTotal(comActDAO.getPopulationAge(streetId,60));
            populationSpecial.setGlTotal(comActDAO.getPopulationAge(streetId,80));
            vo.setSpecialStatisticsVo(populationSpecial);
        }
        vo.setSpecialStatisticsVo(populationSpecial);
        return R.ok(vo);
    }
    @Override
    public R probably(Integer year,String belongTo) {
        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.setUnitCount(comActDAO.arriveUnit(belongTo));
        R r = communityService.institutionalUnitServiceAnalysis(year, null, null, null, null, null, belongTo, null, null);
        Object data = r.getData();
        String jsonString = JSON.toJSONString(data);
        ActivityAnalysisVO activityAnalysisVO = JSON.parseObject(jsonString, ActivityAnalysisVO.class);
        activityVO.setUnitServiceTotalTime(activityAnalysisVO.getUnitServiceTotalTime());
        return R.ok(activityVO);
    }
}