From 70d2a5d0f9c6951b2d4cac954041ed73582ff7eb Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期一, 09 六月 2025 11:54:00 +0800 Subject: [PATCH] 6.9新增登录失败冻结逻辑 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java | 229 ++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 162 insertions(+), 67 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 f760afc..bf755e5 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 @@ -2,8 +2,6 @@ import cn.hutool.core.bean.BeanUtil; 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; @@ -18,19 +16,14 @@ 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.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.entity.ComSanshuoIndustryCenter; import com.panzhihua.service_community.model.dos.ComActDO; +import com.panzhihua.service_community.model.dos.ComSanshuoExpertTwoDO; 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; @@ -87,13 +80,15 @@ 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); @@ -105,6 +100,10 @@ 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()); @@ -113,7 +112,8 @@ 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(); @@ -131,8 +131,10 @@ 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()+"调解站"); + if (nonNull(expert.getUnitId())){ + expert.setCommunityId(Long.parseLong(expert.getUnitId())); + expert.setUnit(comActDAO.selectById(expert.getUnitId()).getName()+"调解站"); + } } return R.ok(comSanshuoExpertDao.updateById(expert)); } @@ -169,36 +171,52 @@ }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; } - IPage<ComSanshuoExpertVO> comSanshuoExpertVOIPage = comSanshuoExpertDao.expertPage(new Page(page, size), keyWord, range, id, level); + 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)); + if (!record.getCount().equals(0) && !record.getSuccessCount().equals(0)){ + record.setRate(NumberUtil.div(record.getSuccessCount(), record.getCount(),2)); + } + } } - return R.ok(); + return R.ok(comSanshuoExpertVOIPage); } /** * 专家风采 * */ @Override - public R expertShow() { - List<ExpertShowVO> expertShowVOS = comSanshuoExpertDao.expertShow(); + public R expertShow(String appId) { + List<ExpertShowVO> expertShowVOS = comSanshuoExpertDao.expertShow(appId); for (ExpertShowVO expertShowVO : expertShowVOS) { 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(); @@ -209,7 +227,7 @@ expertShowVO.setChildList(expertShowVOS1); }else { expertShowVO.setName("村/社区调解站调解专家"); - List<ExpertShowVO> expertShowVOS1 = comSanshuoExpertDao.selectExpertCommunity(); + List<ExpertShowVO> expertShowVOS1 = comSanshuoExpertDao.selectExpertCommunity(appId); expertShowVO.setChildList(expertShowVOS1); } } @@ -223,7 +241,7 @@ * */ @Override public R expertRange(LoginUserInfoVO loginUserInfo) { - if (nonNull(loginUserInfo)){ +// if (loginUserInfo!=null){ if (loginUserInfo.getAccount().equals("zhengfawei") || loginUserInfo.getAccount().equals("admin")){ List<ExpertRangeVO> list=new ArrayList<>(); for (int i = 1; i < 5; i++) { @@ -241,7 +259,7 @@ }else if (i==4){ vo.setId(4L); vo.setChildList(comSanshuoIndustryCenterDao.communityList()); - vo.setName("社区调解站"); + vo.setName("社区调解室"); }else if(i==1){ vo.setId(1L); vo.setName("三说会堂"); @@ -266,34 +284,30 @@ vo.setId(comSanshuoIndustryCenterDao.selectOne(new QueryWrapper<ComSanshuoIndustryCenter>().lambda().eq(ComSanshuoIndustryCenter::getAccount, loginUserInfo.getAccount())).getId()); 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(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 (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(); +// } + return R.ok("测试陈宫:"+loginUserInfo.getUserType()); } - /** * 小程序获取专家列表 @@ -328,16 +342,29 @@ * 专家风采列表 * */ @Override - public R expertShowList(Integer level, Long id) { + public R expertShowList(Integer level, Long id,String appId) { 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 ); + if (level==0){ + wrapper.eq("app_id",appId ); + }else { + if (level!=7){ + wrapper.eq("level",level); + wrapper.eq("app_id",appId); + wrapper.eq("status",1 ); + wrapper.eq("del_flag",1 ); + 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 ); + } + }else { + wrapper.eq("id",id ); + } } + wrapper.orderByDesc("(select count(*) FROM com_sanshuo_event_info where specialist_id=com_sanshuo_expert.id and event_process_status=6 and event_result=2)/(select count(*) FROM com_sanshuo_event_info where specialist_id=com_sanshuo_expert.id and event_process_status=6 ) "); + wrapper.orderByDesc("(select count(*) FROM com_sanshuo_event_info where specialist_id=com_sanshuo_expert.id and event_process_status=6 )"); List<ComSanshuoExpert> comSanshuoExperts = comSanshuoExpertDao.selectList(wrapper); for (ComSanshuoExpert comSanshuoExpert : comSanshuoExperts) { //获取成功率 @@ -345,20 +372,38 @@ 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 { + if (nonNull(successCount) && nonNull(count)){ + if (!successCount.equals(0) && !count.equals(0)){ + //计算成功率 + comSanshuoExpert.setRate(NumberUtil.div(successCount, count,2)); + } + else { comSanshuoExpert.setRate(new BigDecimal(0)); } }else { - comSanshuoExpert.setCount(0); + comSanshuoExpert.setRate(new BigDecimal(0)); + } + + } + ComSanshuoExpertTwoDO comSanshuoExpertTwoVo=new ComSanshuoExpertTwoDO(); + List<ComSanshuoExpert> comSanshuoExpertsOne=new ArrayList<>(); + List<ComSanshuoExpert> comSanshuoExpertsTwo=new ArrayList<>(); + for (ComSanshuoExpert comSanshuoExpert : comSanshuoExperts){ + if (comSanshuoExpert.getId()%2==1){ + comSanshuoExpertsOne.add(comSanshuoExpert); + }else { + comSanshuoExpertsTwo.add(comSanshuoExpert); } } - return R.ok(comSanshuoExperts); - } + if (level==0){ + comSanshuoExpertTwoVo.setComSanshuoExperts(comSanshuoExpertsOne); + comSanshuoExpertTwoVo.setComSanshuoExpertsTwo(comSanshuoExpertsTwo); + return R.ok(comSanshuoExpertTwoVo); + } + else { + return R.ok(comSanshuoExperts); + } + } @Override public void insertExpert(ComSanshuoExpert expert) { @@ -409,5 +454,55 @@ // } } + @Override + public R backstageList(Integer level,LoginUserInfoVO loginUserInfoVO,Integer page,Integer size,String keyWord) { + if (nonNull(level)){ + if (level.equals(1)){ + //三说会堂权限,查看所有 + return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,null ,loginUserInfoVO.getAppId(),keyWord)); + }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(),keyWord)); + }else if (level.equals(3)){ + //街道 + return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,loginUserInfoVO.getStreetId(),loginUserInfoVO.getAppId(),keyWord)); + }else if(level.equals(4)){ + return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,loginUserInfoVO.getCommunityId(),loginUserInfoVO.getAppId(),keyWord)); + } + }else { + return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,loginUserInfoVO.getCommunityId(),loginUserInfoVO.getAppId(),keyWord)); + } + return null; + } + + @Override + public R rangeList() { + List<ExpertRangeVO> list=new ArrayList<>(); + for (int i = 1; i < 5; i++) { + ExpertRangeVO vo=new ExpertRangeVO(); + 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); + } + return R.ok(list); + } + } -- Gitblit v1.7.1