|  |  |  | 
|---|
|  |  |  | 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 javax.annotation.Resource; | 
|---|
|  |  |  | import java.math.BigDecimal; | 
|---|
|  |  |  | 
|---|
|  |  |  | import java.util.Date; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import static java.util.Objects.isNull; | 
|---|
|  |  |  | import static java.util.Objects.nonNull; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Service | 
|---|
|  |  |  | @Slf4j | 
|---|
|  |  |  | public class ComSanShuoExpertServiceImpl  extends ServiceImpl<ComSanshuoExpertDao, ComSanshuoExpert> implements ComSanShuoExpertService { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | 
|---|
|  |  |  | * @return 处理结果 | 
|---|
|  |  |  | * */ | 
|---|
|  |  |  | @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); | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | int insert = comSanshuoExpertDao.insert(expert); | 
|---|
|  |  |  | if (insert>0){ | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | comSanshuoExpertDTO.setPassword(comSanshuoExpertDTO.getPassword()); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | @Transactional(rollbackFor = Exception.class) | 
|---|
|  |  |  | public R addOrUpdateExpert(ComSanshuoExpertDTO comSanshuoExpertDTO) { | 
|---|
|  |  |  | if (isNull(comSanshuoExpertDTO.getId())){ | 
|---|
|  |  |  | //是否重名 | 
|---|
|  |  |  | List<ComSanshuoExpert> checkExpert=comSanshuoExpertDao.selectExpertByNameOrPhoneOrAccount(comSanshuoExpertDTO); | 
|---|
|  |  |  | if (checkExpert.size() != 0){ | 
|---|
|  |  |  | return R.fail("账号信息有重复"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //生成后台账号 | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | ComSanshuoExpert expert=new ComSanshuoExpert(); | 
|---|
|  |  |  | BeanUtil.copyProperties(comSanshuoExpertDTO,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()+"调解室"); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | expert.setUnit("区三说会堂"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | expert.setStatus(1); | 
|---|
|  |  |  | expert.setDelFlag(1); | 
|---|
|  |  |  | int insert = comSanshuoExpertDao.insert(expert); | 
|---|
|  |  |  | if (insert>0){ | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | comSanshuoExpertDTO.setPassword(comSanshuoExpertDTO.getPassword()); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | 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.setPassword(comSanshuoExpertDTO.getPassword()); | 
|---|
|  |  |  | user.setName(comSanshuoExpertDTO.getName()); | 
|---|
|  |  |  | user.setType(11); | 
|---|
|  |  |  | user.setImageUrl(comSanshuoExpertDTO.getAvatar()); | 
|---|
|  |  |  | user.setPhone(comSanshuoExpertDTO.getPhone()); | 
|---|
|  |  |  | userService.sanShuoAddUser(user); | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | ComSanshuoExpert expert=new ComSanshuoExpert(); | 
|---|
|  |  |  | BeanUtil.copyProperties(comSanshuoExpertDTO,expert); | 
|---|
|  |  |  | if (nonNull(comSanshuoExpertDTO.getUnit())){ | 
|---|
|  |  |  | String id = comSanshuoExpertDTO.getUnit(); | 
|---|
|  |  |  | String[] split = id.split(","); | 
|---|
|  |  |  | expert.setUnitId(split[split.length-1]); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | expert.setUpdateTime(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){ | 
|---|
|  |  |  | if (nonNull(expert.getUnitId())){ | 
|---|
|  |  |  | expert.setCommunityId(Long.parseLong(expert.getUnitId())); | 
|---|
|  |  |  | expert.setUnit(comActDAO.selectById(expert.getUnitId()).getName()+"调解站"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok(comSanshuoExpertDao.updateById(expert)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.fail("添加失败"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return R.fail("操作失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 后台获取专家列表 | 
|---|
|  |  |  | 
|---|
|  |  |  | * @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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 专家风采 | 
|---|
|  |  |  | * */ | 
|---|
|  |  |  | @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(); | 
|---|
|  |  |  | 
|---|
|  |  |  | expertShowVO.setChildList(expertShowVOS1); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | expertShowVO.setName("村/社区调解站调解专家"); | 
|---|
|  |  |  | List<ExpertShowVO> expertShowVOS1 = comSanshuoExpertDao.selectExpertCommunity(); | 
|---|
|  |  |  | List<ExpertShowVO> expertShowVOS1 = comSanshuoExpertDao.selectExpertCommunity(appId); | 
|---|
|  |  |  | expertShowVO.setChildList(expertShowVOS1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok(expertShowVOS); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 专家级别与单位范围 | 
|---|
|  |  |  | 
|---|
|  |  |  | }else if (i==4){ | 
|---|
|  |  |  | vo.setId(4L); | 
|---|
|  |  |  | vo.setChildList(comSanshuoIndustryCenterDao.communityList()); | 
|---|
|  |  |  | vo.setName("社区调解站"); | 
|---|
|  |  |  | vo.setName("社区调解室"); | 
|---|
|  |  |  | }else if(i==1){ | 
|---|
|  |  |  | vo.setId(1L); | 
|---|
|  |  |  | vo.setName("三说会堂"); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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.getStreetId()); | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 小程序获取专家列表 | 
|---|
|  |  |  | 
|---|
|  |  |  | * 专家风采列表 | 
|---|
|  |  |  | * */ | 
|---|
|  |  |  | @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 ); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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)); | 
|---|
|  |  |  | 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,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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|