From 1df735996e818cc25b34fb7b3e63cb6bb97b9fa9 Mon Sep 17 00:00:00 2001
From: 张天森 <1292933220@qq.com>
Date: 星期一, 24 十月 2022 17:50:55 +0800
Subject: [PATCH] 三说会堂bug修改
---
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java | 283 ++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 204 insertions(+), 79 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 f019713..9410fbd 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
@@ -4,12 +4,15 @@
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;
@@ -21,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;
@@ -35,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
@@ -60,52 +68,80 @@
* @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();
+ }
+ //生成后台账号
+ 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("操作失败");
}
+
/**
* 后台获取专家列表
@@ -116,7 +152,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,14 +171,39 @@
}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);
+ 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);
}
/**
@@ -155,6 +216,7 @@
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();
@@ -219,37 +281,33 @@
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();
}
-
/**
* 小程序获取专家列表
@@ -301,20 +359,87 @@
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));
+ }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()));
+ }else if (level.equals(3)){
+ //街道
+ return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,loginUserInfoVO.getStreetId()));
+ }else if(level.equals(4)){
+ return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,loginUserInfoVO.getCommunityId()));
+ }
+ }
+ return null;
+ }
+
}
--
Gitblit v1.7.1