From b4a814c5233885cc5df6ac76d6b8f9b5958c603c Mon Sep 17 00:00:00 2001 From: 张天森 <1292933220@qq.com> Date: 星期三, 28 九月 2022 11:20:06 +0800 Subject: [PATCH] bug修改 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java | 262 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 256 insertions(+), 6 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java index 2fad91a..434c8dd 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java @@ -1,27 +1,57 @@ 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.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; +import com.panzhihua.common.model.vos.sanshuo.ExpertRangeVO; +import com.panzhihua.common.model.vos.sanshuo.ExpertShowVO; +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.dao.ComSanshuoEventDao; -import com.panzhihua.service_community.dao.ComSanshuoExpertDao; +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 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 org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; +import java.util.List; + +import static java.util.Objects.nonNull; @Service public class ComSanShuoExpertServiceImpl extends ServiceImpl<ComSanshuoExpertDao, ComSanshuoExpert> implements ComSanShuoExpertService { @Resource private ComSanshuoExpertDao comSanshuoExpertDao; + @Resource + private UserService userService; + @Resource + private ComSanshuoIndustryCenterDao comSanshuoIndustryCenterDao; + @Resource + private ComStreetDAO comStreetDAO; + @Resource + private ComActDAO comActDAO; + @Resource + private ComEventMapper comEventMapper; + /** * 添加专家 @@ -32,11 +62,39 @@ 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-1]); + } expert.setId(Snowflake.getId()); expert.setCreateTime(new Date()); + if (expert.getLevel()==2){ + expert.setIndustryCenterId(Long.parseLong(comSanshuoExpertDTO.getUnitId())); + }else if(expert.getLevel()==3){ + expert.setStreetId(Long.parseLong(comSanshuoExpertDTO.getUnitId())); + }else if(expert.getLevel()==4){ + expert.setCommunityId(Long.parseLong(comSanshuoExpertDTO.getUnitId())); + } + expert.setStatus(1); + expert.setDelFlag(1); int insert = comSanshuoExpertDao.insert(expert); if (insert>0){ - return R.ok(); + try { + comSanshuoExpertDTO.setPassword(MyAESUtil.Encrypt(comSanshuoExpertDTO.getPassword(),"Ryo7M3n8loC5Abcd")); + } catch (Exception e) { + e.printStackTrace(); + } + //生成后台账号 + AdministratorsUserVO user=new AdministratorsUserVO(); + user.setUserId(Snowflake.getId()); + user.setAccount(comSanshuoExpertDTO.getAccount()); + user.setPassword(comSanshuoExpertDTO.getPassword()); + user.setName(comSanshuoExpertDTO.getName()); + user.setType(11); + user.setImageUrl(comSanshuoExpertDTO.getAvatar()); + return userService.sanShuoAddUser(user); } return R.fail("添加失败"); } @@ -46,12 +104,204 @@ * @param page * @param keyWord * @param size - * @param range 数据范围:1街道下属/2社区下属/3业务中心下属/null三说会堂下属 - * @param id 社区或街道或业务中心id + * @param loginUserInfo 登陆账号信息 * @return 处理结果 * */ @Override - public R expertPage(String keyWord, Integer page, Integer size,Integer range,Long id) { + public R expertPage(String keyWord, Integer page, Integer size, LoginUserInfoVO loginUserInfo) { + //range:1.三说会堂下属,2业务中心下属,3街道下属,4社区下属 + //id:社区或街道或业务中心id + //账号级别 + Long id=null; + Integer range=null; + if (nonNull(loginUserInfo)){ + if (nonNull(loginUserInfo.getUserType()) || nonNull(loginUserInfo.getType())){ + if (nonNull(loginUserInfo.getUserType())){ + if (loginUserInfo.getUserType().equals(1)){ + range=3; + id=loginUserInfo.getStreetId(); + }else if (loginUserInfo.getUserType().equals(2)){ + range=4; + id=loginUserInfo.getCommunityId(); + } + }else if (loginUserInfo.getType().equals(11)){ + range=2; + id=loginUserInfo.getCommunityId(); + } + } + } + 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)); } + + /** + * 专家风采 + * */ + @Override + public R expertShow() { + List<ExpertShowVO> expertShowVOS = comSanshuoExpertDao.expertShow(); + for (ExpertShowVO expertShowVO : expertShowVOS) { + if (nonNull(expertShowVO.getLevel())){ + if (1==expertShowVO.getLevel()) { + expertShowVO.setName("区三说会堂调解专家"); + }else if (2==expertShowVO.getLevel()){ + expertShowVO.setName("行业分中心调解专家"); + List<ExpertShowVO> expertShowVOS1 = comSanshuoExpertDao.selectExpertIndustry(); + expertShowVO.setChildList(expertShowVOS1); + }else if (3==expertShowVO.getLevel()){ + expertShowVO.setName("镇/街道调解站调解专家"); + List<ExpertShowVO> expertShowVOS1 = comSanshuoExpertDao.selectExpertStreet(); + expertShowVO.setChildList(expertShowVOS1); + }else { + expertShowVO.setName("村/社区调解站调解专家"); + List<ExpertShowVO> expertShowVOS1 = comSanshuoExpertDao.selectExpertCommunity(); + expertShowVO.setChildList(expertShowVOS1); + } + } + } + return R.ok(expertShowVOS); + } + + /** + * 专家级别与单位范围 + * */ + @Override + public R expertRange(LoginUserInfoVO loginUserInfo) { + if (nonNull(loginUserInfo)){ + if (loginUserInfo.getAccount().equals("zhengfawei") || loginUserInfo.getAccount().equals("admin")){ + List<ExpertRangeVO> list=new ArrayList<>(); + for (int i = 1; i < 5; i++) { + ExpertRangeVO vo=new ExpertRangeVO(); + vo.setLevel(i); + if (i==2){ + //设置行业分中心为childList + vo.setChildList(comSanshuoIndustryCenterDao.indstryList()); + vo.setName("行业分中心"); + }else if (i==3){ + vo.setChildList(comSanshuoIndustryCenterDao.streetList()); + vo.setName("街道调解站"); + }else if (i==4){ + vo.setChildList(comSanshuoIndustryCenterDao.communityList()); + vo.setName("社区调解站"); + }else if(i==1){ + vo.setName("三说话会堂"); + } + list.add(vo); + } + return R.ok(list); + }else if (loginUserInfo.getType().equals(11)){ + //三说会堂后台 + List<ExpertRangeVO> list=new ArrayList<>(); + ExpertRangeVO vo=new ExpertRangeVO(); + vo.setLevel(1); + vo.setName("区三说会堂"); + list.add(vo); + return R.ok(list); + }else if (loginUserInfo.getType().equals(12)){ + //行业分中心后台 + List<ExpertRangeVO> list=new ArrayList<>(); + ExpertRangeVO vo=new ExpertRangeVO(); + vo.setLevel(2); + vo.setName("行业分中心"); + vo.setId(loginUserInfo.getCommunityId()); + list.add(vo); + return R.ok(list); + }else if (nonNull(loginUserInfo.getUserType())){ + if (loginUserInfo.getUserType().equals(1)){ + //街道账号 + ComStreetDO comStreetDO = comStreetDAO.selectById(loginUserInfo.getStreetId()); + List<ExpertRangeVO> list=new ArrayList<>(); + ExpertRangeVO vo=new ExpertRangeVO(); + vo.setLevel(3); + vo.setName(comStreetDO.getName()+"调解站"); + vo.setId(loginUserInfo.getStreetId()); + list.add(vo); + return R.ok(list); + } + if (loginUserInfo.getUserType().equals(2)){ + //街道账号 + ComActDO comActDO = comActDAO.selectById(loginUserInfo.getCommunityId()); + List<ExpertRangeVO> list=new ArrayList<>(); + ExpertRangeVO vo=new ExpertRangeVO(); + vo.setLevel(4); + vo.setName(comActDO.getName()+"调解站"); + vo.setId(loginUserInfo.getStreetId()); + list.add(vo); + return R.ok(list); + } + } + } + return R.fail(); + } + + + /** + * 小程序获取专家列表 + * */ + @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); + } + + } -- Gitblit v1.7.1