liujie
2025-06-09 70d2a5d0f9c6951b2d4cac954041ed73582ff7eb
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java
@@ -2,8 +2,6 @@
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.digest.MD5;
import cn.hutool.extra.pinyin.PinyinUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -18,19 +16,14 @@
import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.common.utlis.Snowflake;
import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.service_community.api.ComSanShuoExpertApi;
import com.panzhihua.service_community.dao.*;
import com.panzhihua.service_community.entity.ComEvent;
import com.panzhihua.service_community.entity.ComSanshuoEvent;
import com.panzhihua.service_community.entity.ComSanshuoExpert;
import com.panzhihua.service_community.entity.ComSanshuoIndustryCenter;
import com.panzhihua.service_community.model.dos.ComActDO;
import com.panzhihua.service_community.model.dos.ComSanshuoExpertTwoDO;
import com.panzhihua.service_community.model.dos.ComStreetDO;
import com.panzhihua.service_community.service.ComActService;
import com.panzhihua.service_community.service.ComSanShuoExpertService;
import com.panzhihua.service_community.service.ComStreetService;
import com.panzhihua.service_community.util.MyAESUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -138,8 +131,10 @@
                expert.setStreetId(Long.parseLong(expert.getUnitId()));
                expert.setUnit(comStreetDAO.selectById(expert.getUnitId()).getName()+"调解站");
            }else if(expert.getLevel()==4){
                expert.setCommunityId(Long.parseLong(expert.getUnitId()));
                expert.setUnit(comActDAO.selectById(expert.getUnitId()).getName()+"调解站");
                if (nonNull(expert.getUnitId())){
                    expert.setCommunityId(Long.parseLong(expert.getUnitId()));
                    expert.setUnit(comActDAO.selectById(expert.getUnitId()).getName()+"调解站");
                }
            }
            return R.ok(comSanshuoExpertDao.updateById(expert));
        }
@@ -215,8 +210,8 @@
     * 专家风采
     * */
    @Override
    public R expertShow() {
        List<ExpertShowVO> expertShowVOS = comSanshuoExpertDao.expertShow();
    public R expertShow(String appId) {
        List<ExpertShowVO> expertShowVOS = comSanshuoExpertDao.expertShow(appId);
        for (ExpertShowVO expertShowVO : expertShowVOS) {
            if (nonNull(expertShowVO.getLevel())){
                if (1==expertShowVO.getLevel()) {
@@ -232,7 +227,7 @@
                    expertShowVO.setChildList(expertShowVOS1);
                }else {
                    expertShowVO.setName("村/社区调解站调解专家");
                    List<ExpertShowVO> expertShowVOS1 = comSanshuoExpertDao.selectExpertCommunity();
                    List<ExpertShowVO> expertShowVOS1 = comSanshuoExpertDao.selectExpertCommunity(appId);
                    expertShowVO.setChildList(expertShowVOS1);
                }
            }
@@ -246,7 +241,7 @@
     * */
    @Override
    public R expertRange(LoginUserInfoVO loginUserInfo) {
        if (nonNull(loginUserInfo)){
//        if (loginUserInfo!=null){
            if (loginUserInfo.getAccount().equals("zhengfawei") || loginUserInfo.getAccount().equals("admin")){
                List<ExpertRangeVO> list=new ArrayList<>();
                for (int i = 1; i < 5; i++) {
@@ -264,7 +259,7 @@
                    }else if (i==4){
                        vo.setId(4L);
                        vo.setChildList(comSanshuoIndustryCenterDao.communityList());
                        vo.setName("社区调解站");
                        vo.setName("社区调解室");
                    }else if(i==1){
                        vo.setId(1L);
                        vo.setName("三说会堂");
@@ -295,7 +290,7 @@
                List<ExpertRangeVO> list = new ArrayList<>();
                ExpertRangeVO vo = new ExpertRangeVO();
                vo.setLevel(4);
                vo.setName(comStreetDO.getName() + "调解站");
                vo.setName(comStreetDO.getName() + "调解室");
                vo.setId(loginUserInfo.getCommunityId());
                list.add(vo);
                return R.ok(list);
@@ -310,8 +305,8 @@
                list.add(vo);
                return R.ok(list);
            }
        }
        return R.fail();
//        }
        return R.ok("测试陈宫:"+loginUserInfo.getUserType());
    }
    /**
@@ -347,16 +342,29 @@
     * 专家风采列表
     * */
    @Override
    public R expertShowList(Integer level, Long id) {
    public R expertShowList(Integer level, Long id,String appId) {
        QueryWrapper<ComSanshuoExpert> wrapper=new QueryWrapper<>();
        wrapper.eq("level",level );
        if (level.equals(2)){
            wrapper.eq("industry_center_id", id);
        }else if (level.equals(3)){
            wrapper.eq("street_id",id );
        }else if (level.equals(4)){
            wrapper.eq("community_id",id );
        if (level==0){
            wrapper.eq("app_id",appId );
        }else {
            if (level!=7){
                wrapper.eq("level",level);
                wrapper.eq("app_id",appId);
                wrapper.eq("status",1 );
                wrapper.eq("del_flag",1 );
                if (level.equals(2)){
                    wrapper.eq("industry_center_id", id);
                }else if (level.equals(3)){
                    wrapper.eq("street_id",id );
                }else if (level.equals(4)){
                    wrapper.eq("community_id",id );
                }
            }else {
                wrapper.eq("id",id );
            }
        }
        wrapper.orderByDesc("(select count(*) FROM com_sanshuo_event_info where specialist_id=com_sanshuo_expert.id and event_process_status=6 and event_result=2)/(select count(*) FROM com_sanshuo_event_info where specialist_id=com_sanshuo_expert.id and event_process_status=6 ) ");
        wrapper.orderByDesc("(select count(*) FROM com_sanshuo_event_info where specialist_id=com_sanshuo_expert.id and event_process_status=6 )");
        List<ComSanshuoExpert> comSanshuoExperts = comSanshuoExpertDao.selectList(wrapper);
        for (ComSanshuoExpert comSanshuoExpert : comSanshuoExperts) {
            //获取成功率
@@ -369,13 +377,33 @@
                        //计算成功率
                        comSanshuoExpert.setRate(NumberUtil.div(successCount, count,2));
                }
                else {
                    comSanshuoExpert.setRate(new BigDecimal(0));
                }
            }else {
                comSanshuoExpert.setRate(new BigDecimal(0));
            }
        }
        return R.ok(comSanshuoExperts);
    }
        ComSanshuoExpertTwoDO comSanshuoExpertTwoVo=new ComSanshuoExpertTwoDO();
        List<ComSanshuoExpert> comSanshuoExpertsOne=new ArrayList<>();
        List<ComSanshuoExpert> comSanshuoExpertsTwo=new ArrayList<>();
        for (ComSanshuoExpert comSanshuoExpert : comSanshuoExperts){
            if (comSanshuoExpert.getId()%2==1){
                comSanshuoExpertsOne.add(comSanshuoExpert);
            }else {
                comSanshuoExpertsTwo.add(comSanshuoExpert);
            }
        }
        if (level==0){
            comSanshuoExpertTwoVo.setComSanshuoExperts(comSanshuoExpertsOne);
            comSanshuoExpertTwoVo.setComSanshuoExpertsTwo(comSanshuoExpertsTwo);
            return R.ok(comSanshuoExpertTwoVo);
        }
        else {
            return R.ok(comSanshuoExperts);
        }
     }
    @Override
    public void insertExpert(ComSanshuoExpert expert) {
@@ -427,24 +455,54 @@
    }
    @Override
    public R backstageList(Integer level,LoginUserInfoVO loginUserInfoVO,Integer page,Integer size) {
    public R backstageList(Integer level,LoginUserInfoVO loginUserInfoVO,Integer page,Integer size,String keyWord) {
        if (nonNull(level)){
            if (level.equals(1)){
                //三说会堂权限,查看所有
                return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,null));
                return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,null ,loginUserInfoVO.getAppId(),keyWord));
            }else if (level.equals(2)){
                //行业分中心
                ComSanshuoIndustryCenter center = comSanshuoIndustryCenterDao.selectOne(new QueryWrapper<ComSanshuoIndustryCenter>().lambda().eq(ComSanshuoIndustryCenter::getAccount, loginUserInfoVO.getAccount()));
                return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,center.getId()));
                return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,center.getId(),loginUserInfoVO.getAppId(),keyWord));
            }else if (level.equals(3)){
                //街道
                return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,loginUserInfoVO.getStreetId()));
                return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,loginUserInfoVO.getStreetId(),loginUserInfoVO.getAppId(),keyWord));
            }else if(level.equals(4)){
                return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,loginUserInfoVO.getCommunityId()));
                return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,loginUserInfoVO.getCommunityId(),loginUserInfoVO.getAppId(),keyWord));
            }
        }else {
            return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,loginUserInfoVO.getCommunityId(),loginUserInfoVO.getAppId(),keyWord));
        }
        return null;
    }
    @Override
    public R rangeList() {
        List<ExpertRangeVO> list=new ArrayList<>();
        for (int i = 1; i < 5; i++) {
            ExpertRangeVO vo=new ExpertRangeVO();
            vo.setLevel(i);
            if (i==2){
                //设置行业分中心为childList
                vo.setId(2L);
                vo.setChildList(comSanshuoIndustryCenterDao.indstryList());
                vo.setName("行业分中心");
            }else if (i==3){
                vo.setId(3L);
                vo.setChildList(comSanshuoIndustryCenterDao.streetList());
                vo.setName("街道调解站");
            }else if (i==4){
                vo.setId(4L);
                vo.setChildList(comSanshuoIndustryCenterDao.communityList());
                vo.setName("社区调解站");
            }else if(i==1){
                vo.setId(1L);
                vo.setName("三说会堂");
            }
            list.add(vo);
        }
        return R.ok(list);
    }
}