| | |
| | | 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; |
| | | 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.ComSanshuoExpertVO; |
| | | 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.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.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; |
| | | |
| | |
| | | import static java.util.Objects.nonNull; |
| | | |
| | | @Service |
| | | @Slf4j |
| | | public class ComSanShuoExpertServiceImpl extends ServiceImpl<ComSanshuoExpertDao, ComSanshuoExpert> implements ComSanShuoExpertService { |
| | | |
| | | @Resource |
| | |
| | | expert.setCreateTime(new Date()); |
| | | if (expert.getLevel()==2){ |
| | | expert.setIndustryCenterId(Long.parseLong(expert.getUnitId())); |
| | | expert.setUnit(comSanshuoIndustryCenterDao.selectById(expert.getUnitId()).getName()+"调解站"); |
| | | expert.setUnit(comSanshuoIndustryCenterDao.selectById(expert.getUnitId()).getName()); |
| | | }else if(expert.getLevel()==3){ |
| | | 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()+"调解站"); |
| | | expert.setUnit(comActDAO.selectById(expert.getUnitId()).getName()+"调解室"); |
| | | }else{ |
| | | expert.setUnit("区三说会堂"); |
| | | } |
| | | expert.setStatus(1); |
| | | expert.setDelFlag(1); |
| | |
| | | e.printStackTrace(); |
| | | } |
| | | //生成后台账号 |
| | | //如果是普达社区专家则不生成后台账号 |
| | | if (nonNull(expert.getCommunityId()) && !expert.getCommunityId().equals(10172)){ |
| | | return R.ok(); |
| | | } |
| | | AdministratorsUserVO user=new AdministratorsUserVO(); |
| | | user.setUserId(Snowflake.getId()); |
| | | user.setAccount(comSanshuoExpertDTO.getAccount()); |
| | |
| | | user.setType(11); |
| | | user.setImageUrl(comSanshuoExpertDTO.getAvatar()); |
| | | user.setPhone(comSanshuoExpertDTO.getPhone()); |
| | | return R.ok(userService.sanShuoAddUser(user)); |
| | | userService.sanShuoAddUser(user); |
| | | return R.ok(); |
| | | } |
| | | }else { |
| | | ComSanshuoExpert expert=new ComSanshuoExpert(); |
| | |
| | | * @return 处理结果 |
| | | * */ |
| | | @Override |
| | | public R expertPage(String keyWord, Integer page, Integer size, LoginUserInfoVO loginUserInfo) { |
| | | public R expertPage(String keyWord, Integer page, Integer size, LoginUserInfoVO loginUserInfo,Integer level) { |
| | | //range:1.三说会堂下属,2业务中心下属,3街道下属,4社区下属 |
| | | //id:社区或街道或业务中心id |
| | | //账号级别 |
| | |
| | | }else if (loginUserInfo.getType().equals(11)){ |
| | | range=2; |
| | | id=loginUserInfo.getCommunityId(); |
| | | }else if (loginUserInfo.getType().equals(7)){ |
| | | //街道后台 |
| | | range=3; |
| | | id=loginUserInfo.getStreetId(); |
| | | }else if (loginUserInfo.getType().equals(12)){ |
| | | range=2; |
| | | id=comSanshuoIndustryCenterDao.selectOne(new QueryWrapper<ComSanshuoIndustryCenter>().lambda().eq(ComSanshuoIndustryCenter::getAccount,loginUserInfo.getAccount() )).getId(); |
| | | }else if (loginUserInfo.getType().equals(3)){ |
| | | //社区后台账号 |
| | | range=4; |
| | | id=loginUserInfo.getCommunityId(); |
| | | } |
| | | } |
| | | } |
| | | if (loginUserInfo.getAccount().equals("admin") || loginUserInfo.getAccount().equals("xiqu")){ |
| | | if (loginUserInfo.getAccount().equals("admin")){ |
| | | //三说会堂查看所有专家 |
| | | id=null; |
| | | range=null; |
| | | range=1; |
| | | } |
| | | return R.ok(comSanshuoExpertDao.expertPage(new Page(page,size),keyWord,range,id)); |
| | | log.info(""); |
| | | IPage<ComSanshuoExpertVO> comSanshuoExpertVOIPage = comSanshuoExpertDao.expertPage(new Page(page, size), keyWord, range, id, level,loginUserInfo.getAppId()); |
| | | for (ComSanshuoExpertVO record : comSanshuoExpertVOIPage.getRecords()) { |
| | | //获取调解次数和成功率 |
| | | record.setCount(comEventMapper.selectCount(new QueryWrapper<ComEvent>().lambda().eq(ComEvent::getSpecialistId, record.getId()))); |
| | | record.setSuccessCount(comEventMapper.selectCount(new QueryWrapper<ComEvent>().lambda().eq(ComEvent::getSpecialistId, record.getId()).eq(ComEvent::getEventResult,2 ))); |
| | | if (nonNull(record.getCount()) && nonNull(record.getSuccessCount())){ |
| | | if (!record.getCount().equals(0) && !record.getSuccessCount().equals(0)){ |
| | | record.setRate(NumberUtil.div(record.getSuccessCount(), record.getCount(),2)); |
| | | } |
| | | |
| | | } |
| | | } |
| | | return R.ok(comSanshuoExpertVOIPage); |
| | | } |
| | | |
| | | /** |
| | |
| | | if (nonNull(expertShowVO.getLevel())){ |
| | | if (1==expertShowVO.getLevel()) { |
| | | expertShowVO.setName("区三说会堂调解专家"); |
| | | expertShowVO.setCount(comSanshuoExpertDao.selectExpertVoList()); |
| | | }else if (2==expertShowVO.getLevel()){ |
| | | expertShowVO.setName("行业分中心调解专家"); |
| | | List<ExpertShowVO> expertShowVOS1 = comSanshuoExpertDao.selectExpertIndustry(); |
| | |
| | | ExpertRangeVO vo=new ExpertRangeVO(); |
| | | vo.setLevel(2); |
| | | vo.setName("行业分中心"); |
| | | vo.setId(comSanshuoIndustryCenterDao.selectOne(new QueryWrapper<ComSanshuoIndustryCenter>().lambda().eq(ComSanshuoIndustryCenter::getAccount, loginUserInfo.getAccount())).getId()); |
| | | list.add(vo); |
| | | return R.ok(list); |
| | | }else if (loginUserInfo.getType().equals(3)) { |
| | | //社区账号 |
| | | ComActDO comStreetDO = comActDAO.selectById(loginUserInfo.getCommunityId()); |
| | | List<ExpertRangeVO> list = new ArrayList<>(); |
| | | ExpertRangeVO vo = new ExpertRangeVO(); |
| | | vo.setLevel(4); |
| | | vo.setName(comStreetDO.getName() + "调解站"); |
| | | 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.getCommunityId()); |
| | | list.add(vo); |
| | | return R.ok(list); |
| | | } |
| | | } else if (loginUserInfo.getType().equals(7)){ |
| | | //街道账号 |
| | | ComStreetDO comActDO = comStreetDAO.selectById(loginUserInfo.getStreetId()); |
| | | 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(); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 小程序获取专家列表 |
| | |
| | | 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)); |
| | | if (nonNull(successCount) && nonNull(count)){ |
| | | if (!successCount.equals(0) && !count.equals(0)){ |
| | | //计算成功率 |
| | | comSanshuoExpert.setRate(NumberUtil.div(successCount, count,2)); |
| | | } |
| | | }else { |
| | | comSanshuoExpert.setCount(0); |
| | | comSanshuoExpert.setRate(new BigDecimal(0)); |
| | | } |
| | | |
| | | } |
| | | return R.ok(comSanshuoExperts); |
| | | } |
| | | |
| | | @Override |
| | | public void insertExpert(ComSanshuoExpert expert) { |
| | | // if (nonNull(comSanshuoExpertDTO.getUnit())){ |
| | | // String id = comSanshuoExpertDTO.getUnit(); |
| | | // String[] split = id.split(","); |
| | | // expert.setUnitId(split[split.length-1]); |
| | | // } |
| | | expert.setId(Snowflake.getId()); |
| | | expert.setCreateTime(new Date()); |
| | | if (expert.getLevel()==2){ |
| | | expert.setIndustryCenterId(Long.parseLong(expert.getUnitId())); |
| | | expert.setUnit(comSanshuoIndustryCenterDao.selectById(expert.getUnitId()).getName()+"调解站"); |
| | | }else if(expert.getLevel()==3){ |
| | | 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()+"调解站"); |
| | | } |
| | | expert.setStatus(1); |
| | | expert.setDelFlag(1); |
| | | expert.setCreateBy("admin"); |
| | | expert.setCreateTime(new Date()); |
| | | expert.setAdded(0); |
| | | expert.setPassword("Huacheng@123"); |
| | | expert.setAccount(PinyinUtil.getPinyin(expert.getName(),"")); |
| | | int insert = comSanshuoExpertDao.insert(expert); |
| | | if (insert>0){ |
| | | log.info(expert.getName()+"添加完成"); |
| | | } |
| | | // if (insert>0){ |
| | | // try { |
| | | // comSanshuoExpertDTO.setPassword(comSanshuoExpertDTO.getPassword()); |
| | | // } 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()); |
| | | // user.setPhone(comSanshuoExpertDTO.getPhone()); |
| | | // userService.sanShuoAddUser(user); |
| | | // } |
| | | } |
| | | |
| | | @Override |
| | | public R backstageList(Integer level,LoginUserInfoVO loginUserInfoVO,Integer page,Integer size) { |
| | | if (nonNull(level)){ |
| | | if (level.equals(1)){ |
| | | //三说会堂权限,查看所有 |
| | | return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,null ,loginUserInfoVO.getAppId())); |
| | | }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(),loginUserInfoVO.getAppId())); |
| | | }else if (level.equals(3)){ |
| | | //街道 |
| | | return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,loginUserInfoVO.getStreetId(),loginUserInfoVO.getAppId())); |
| | | }else if(level.equals(4)){ |
| | | return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,loginUserInfoVO.getCommunityId(),loginUserInfoVO.getAppId())); |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | } |