张天森
2022-09-23 7f26476bb092080e68dd0a17d4d299e70806f58a
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java
@@ -15,6 +15,7 @@
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;
@@ -255,4 +256,41 @@
    }
    /**
     * 专家风采列表
     * */
    @Override
    public R expertShowList(Integer level, Long id) {
        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 );
        }
        List<ComSanshuoExpert> comSanshuoExperts = comSanshuoExpertDao.selectList(wrapper);
        for (ComSanshuoExpert comSanshuoExpert : comSanshuoExperts) {
            //获取成功率
            //查询成功率
            Integer count = comEventMapper.selectCount(new QueryWrapper<ComEvent>().lambda().eq(ComEvent::getSpecialistId, comSanshuoExpert.getId()).eq(ComEvent::getEventProcessStatus, 6));
            Integer successCount = comEventMapper.selectCount(new QueryWrapper<ComEvent>().lambda().eq(ComEvent::getSpecialistId, comSanshuoExpert.getId()).eq(ComEvent::getEventProcessStatus, 6).eq(ComEvent::getEventResult, 2));
            comSanshuoExpert.setCount(count);
            if (nonNull(count) && !count.equals(0)){
                comSanshuoExpert.setCount(count);
                if (nonNull(successCount) && !count.equals(successCount)){
                    //计算成功率
                    comSanshuoExpert.setRate(NumberUtil.div(successCount, count,2));
                }else {
                    comSanshuoExpert.setRate(new BigDecimal(0));
                }
            }else {
                comSanshuoExpert.setCount(0);
            }
        }
        return R.ok(comSanshuoExperts);
    }
}