From e94a80ae3d9733eb2d6a5d9bcbd50a624f058caa Mon Sep 17 00:00:00 2001 From: yanghui <2536613402@qq.com> Date: 星期三, 19 十月 2022 17:39:48 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/huacheng_test' into huacheng_test --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java | 234 ++++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 168 insertions(+), 66 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 1ef11e6..6c3e17b 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,13 +2,17 @@ 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; 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; @@ -20,13 +24,16 @@ 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; @@ -34,9 +41,11 @@ 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 @@ -59,50 +68,78 @@ * @return 处理结果 * */ @Override - public R addExpert(ComSanshuoExpertDTO comSanshuoExpertDTO) { - //是否重名 - ComSanshuoExpert checkExpert=comSanshuoExpertDao.selectExpertByNameOrPhoneOrAccount(comSanshuoExpertDTO); - if (nonNull(checkExpert)){ - 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-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){ - 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()+"调解站"); + } + expert.setStatus(1); + expert.setDelFlag(1); + int insert = comSanshuoExpertDao.insert(expert); + 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()); + return R.ok(userService.sanShuoAddUser(user)); + } + }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){ + 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("操作失败"); } + /** * 后台获取专家列表 @@ -113,7 +150,7 @@ * @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 //账号级别 @@ -135,11 +172,23 @@ } } } - if (loginUserInfo.getAccount().equals("admin") || loginUserInfo.getAccount().equals("xiqu")){ + if (loginUserInfo.getAccount().equals("admin") && isNull(level)){ id=null; - range=null; + range=1; } - return R.ok(comSanshuoExpertDao.expertPage(new Page(page,size),keyWord,range,id)); + IPage<ComSanshuoExpertVO> comSanshuoExpertVOIPage = comSanshuoExpertDao.expertPage(new Page(page, size), keyWord, range, id, level); + 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); } /** @@ -184,15 +233,19 @@ 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); @@ -212,7 +265,7 @@ ExpertRangeVO vo=new ExpertRangeVO(); vo.setLevel(2); vo.setName("行业分中心"); - vo.setId(loginUserInfo.getCommunityId()); + 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())){ @@ -234,7 +287,7 @@ ExpertRangeVO vo=new ExpertRangeVO(); vo.setLevel(4); vo.setName(comActDO.getName()+"调解站"); - vo.setId(loginUserInfo.getStreetId()); + vo.setId(loginUserInfo.getCommunityId()); list.add(vo); return R.ok(list); } @@ -248,28 +301,28 @@ * 小程序获取专家列表 * */ @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)); - } + 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 { - comSanshuoExpert.setCount(0); + list=comSanshuoExpertDao.selectList(new QueryWrapper<ComSanshuoExpert>().lambda(). + eq(ComSanshuoExpert::getStatus, 1). + eq(ComSanshuoExpert::getDelFlag,1 ). + eq(ComSanshuoExpert::getCommunityId,cid )); } - } - return R.ok(comSanshuoExperts); + return R.ok(list); } @@ -309,5 +362,54 @@ 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); +// } + } + } -- Gitblit v1.7.1