| | |
| | | package com.panzhihua.service_community.service.impl; |
| | | |
| | | import cn.hutool.core.bean.BeanUtil; |
| | | import cn.hutool.core.util.NumberUtil; |
| | | import cn.hutool.crypto.digest.MD5; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.panzhihua.common.model.dtos.community.sanshuo.ComSanshuoExpertDTO; |
| | |
| | | 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.model.dos.ComActDO; |
| | | import com.panzhihua.service_community.model.dos.ComStreetDO; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | |
| | | private ComStreetDAO comStreetDAO; |
| | | @Resource |
| | | private ComActDAO comActDAO; |
| | | @Resource |
| | | private ComEventMapper comEventMapper; |
| | | |
| | | |
| | | /** |
| | |
| | | public R addExpert(ComSanshuoExpertDTO comSanshuoExpertDTO) { |
| | | ComSanshuoExpert expert=new ComSanshuoExpert(); |
| | | BeanUtil.copyProperties(comSanshuoExpertDTO,expert); |
| | | //处理id |
| | | if (nonNull(comSanshuoExpertDTO.getUnit())){ |
| | | String id = comSanshuoExpertDTO.getUnit(); |
| | | String[] split = id.split(","); |
| | | comSanshuoExpertDTO.setUnitId(split[split.length]); |
| | | } |
| | | expert.setId(Snowflake.getId()); |
| | | expert.setCreateTime(new Date()); |
| | | if (expert.getLevel()==2){ |
| | | expert.setIndustryCenterId(Long.parseLong(expert.getUnit())); |
| | | expert.setIndustryCenterId(Long.parseLong(comSanshuoExpertDTO.getUnitId())); |
| | | }else if(expert.getLevel()==3){ |
| | | expert.setStreetId(Long.parseLong(expert.getUnit())); |
| | | expert.setStreetId(Long.parseLong(comSanshuoExpertDTO.getUnitId())); |
| | | }else if(expert.getLevel()==4){ |
| | | expert.setCommunityId(Long.parseLong(expert.getUnit())); |
| | | expert.setCommunityId(Long.parseLong(comSanshuoExpertDTO.getUnitId())); |
| | | } |
| | | int insert = comSanshuoExpertDao.insert(expert); |
| | | if (insert>0){ |
| | |
| | | } |
| | | } |
| | | } |
| | | return R.ok(); |
| | | return R.ok(expertShowVOS); |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 小程序获取专家列表 |
| | | * */ |
| | | @Override |
| | | public R selectExpertList() { |
| | | List<ComSanshuoExpert> comSanshuoExperts = comSanshuoExpertDao.selectList(new QueryWrapper<ComSanshuoExpert>().lambda().eq(ComSanshuoExpert::getStatus, 1).eq(ComSanshuoExpert::getDelFlag, 1)); |
| | | //设置成功率 |
| | | 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); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 专家风采列表 |
| | | * */ |
| | | @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); |
| | | } |
| | | |
| | | |
| | | } |