张天森
2022-10-08 d890012cee164443d15c080aaa9b8a86badec01a
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java
@@ -2,6 +2,7 @@
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.digest.MD5;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -15,6 +16,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;
@@ -59,27 +61,36 @@
     * */
    @Override
    public R addExpert(ComSanshuoExpertDTO comSanshuoExpertDTO) {
        //是否重名
        List<ComSanshuoExpert> checkExpert=comSanshuoExpertDao.selectExpertByNameOrPhoneOrAccount(comSanshuoExpertDTO);
        if (checkExpert.size() != 0){
            return R.fail("账号信息有重复");
        }
        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.setUnitId(split[split.length-1]);
        }
        expert.setId(Snowflake.getId());
        expert.setCreateTime(new Date());
        if (expert.getLevel()==2){
            expert.setIndustryCenterId(Long.parseLong(comSanshuoExpertDTO.getUnitId()));
            expert.setIndustryCenterId(Long.parseLong(expert.getUnitId()));
            expert.setUnit(comSanshuoIndustryCenterDao.selectById(expert.getUnitId()).getName()+"调解站");
        }else if(expert.getLevel()==3){
            expert.setStreetId(Long.parseLong(comSanshuoExpertDTO.getUnitId()));
            expert.setStreetId(Long.parseLong(expert.getUnitId()));
            expert.setUnit(comStreetDAO.selectById(expert.getUnitId()).getName()+"调解站");
        }else if(expert.getLevel()==4){
            expert.setCommunityId(Long.parseLong(comSanshuoExpertDTO.getUnitId()));
            expert.setCommunityId(Long.parseLong(expert.getUnitId()));
            expert.setUnit(comActDAO.selectById(expert.getUnitId()).getName()+"调解站");
        }
        expert.setStatus(1);
        expert.setDelFlag(1);
        int insert = comSanshuoExpertDao.insert(expert);
        if (insert>0){
            try {
                comSanshuoExpertDTO.setPassword(MyAESUtil.Encrypt(comSanshuoExpertDTO.getPassword(),"Ryo7M3n8loC5Abcd"));
                comSanshuoExpertDTO.setPassword(comSanshuoExpertDTO.getPassword());
            } catch (Exception e) {
                e.printStackTrace();
            }
@@ -127,6 +138,10 @@
                }
            }
        }
        if (loginUserInfo.getAccount().equals("admin") || loginUserInfo.getAccount().equals("xiqu")){
            id=null;
            range=null;
        }
        return R.ok(comSanshuoExpertDao.expertPage(new Page(page,size),keyWord,range,id));
    }
@@ -171,11 +186,20 @@
                    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);
                }
@@ -230,10 +254,48 @@
     * 小程序获取专家列表
     * */
    @Override
    public R selectExpertList() {
        List<ComSanshuoExpert> comSanshuoExperts = comSanshuoExpertDao.selectList(new QueryWrapper<ComSanshuoExpert>().lambda().eq(ComSanshuoExpert::getStatus, 1).eq(ComSanshuoExpert::getDelFlag, 1));
        //设置成功率
    public R selectExpertList(Integer type,Long id,Long cid) {
        List<ComSanshuoExpert> list=new ArrayList<>();
        if (type.equals(1)){
            //行业分中心下属专家
            list=comSanshuoExpertDao.selectList(new QueryWrapper<ComSanshuoExpert>().lambda().
                    eq(ComSanshuoExpert::getStatus, 1).
                    eq(ComSanshuoExpert::getDelFlag,1 ).
                    eq(ComSanshuoExpert::getIndustryCenterId, id));
        }else {
            if (nonNull(id)){
                list=comSanshuoExpertDao.selectList(new QueryWrapper<ComSanshuoExpert>().lambda().
                        eq(ComSanshuoExpert::getStatus, 1).
                        eq(ComSanshuoExpert::getDelFlag,1 ).
                        eq(ComSanshuoExpert::getCommunityId, id));
            }else {
                list=comSanshuoExpertDao.selectList(new QueryWrapper<ComSanshuoExpert>().lambda().
                        eq(ComSanshuoExpert::getStatus, 1).
                        eq(ComSanshuoExpert::getDelFlag,1 ).
                        eq(ComSanshuoExpert::getCommunityId,cid ));
            }
        }
        return R.ok(list);
    }
    /**
     * 专家风采列表
     * */
    @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));
@@ -249,7 +311,6 @@
            }else {
                comSanshuoExpert.setCount(0);
            }
        }
        return R.ok(comSanshuoExperts);
    }