From 5253ab07ac38544253d352aa09a6594e406ee360 Mon Sep 17 00:00:00 2001
From: 张天森 <1292933220@qq.com>
Date: 星期四, 29 九月 2022 11:15:44 +0800
Subject: [PATCH] update
---
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java | 292 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 278 insertions(+), 14 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 cbd68ea..9c6da14 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
@@ -1,56 +1,320 @@
package com.panzhihua.service_community.service.impl;
import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.NumberUtil;
+import cn.hutool.crypto.SecureUtil;
+import cn.hutool.crypto.digest.MD5;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.ExpertRangeVO;
+import com.panzhihua.common.model.vos.sanshuo.ExpertShowVO;
+import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
+import com.panzhihua.common.service.user.UserService;
import com.panzhihua.common.utlis.Snowflake;
-import com.panzhihua.service_community.dao.ComSanshuoExpertDao;
+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.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 org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.ArrayList;
import java.util.Date;
+import java.util.List;
+
+import static java.util.Objects.nonNull;
@Service
-public class ComSanShuoExpertServiceImpl extends ServiceImpl<ComSanshuoExpertDao, ComSanshuoExpert> implements ComSanShuoExpertService {
+public class ComSanShuoExpertServiceImpl extends ServiceImpl<ComSanshuoExpertDao, ComSanshuoExpert> implements ComSanShuoExpertService {
@Resource
private ComSanshuoExpertDao comSanshuoExpertDao;
+ @Resource
+ private UserService userService;
+ @Resource
+ private ComSanshuoIndustryCenterDao comSanshuoIndustryCenterDao;
+ @Resource
+ private ComStreetDAO comStreetDAO;
+ @Resource
+ private ComActDAO comActDAO;
+ @Resource
+ private ComEventMapper comEventMapper;
+
/**
* 添加专家
- *
* @param comSanshuoExpertDTO
* @return 处理结果
- */
+ * */
@Override
public R addExpert(ComSanshuoExpertDTO comSanshuoExpertDTO) {
- ComSanshuoExpert expert = new ComSanshuoExpert();
- BeanUtil.copyProperties(comSanshuoExpertDTO, expert);
+ //是否重名
+ 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(comSanshuoExpertDTO.getUnitId()));
+ expert.setUnit(comSanshuoIndustryCenterDao.selectById(expert.getUnitId()).getName()+"调解站");
+ }else if(expert.getLevel()==3){
+ expert.setStreetId(Long.parseLong(comSanshuoExpertDTO.getUnitId()));
+ expert.setUnit(comStreetDAO.selectById(expert.getUnitId()).getName()+"调解站");
+ }else if(expert.getLevel()==4){
+ expert.setCommunityId(Long.parseLong(comSanshuoExpertDTO.getUnitId()));
+ expert.setUnit(comActDAO.selectById(expert.getUnitId()).getName()+"调解站");
+ }
+ expert.setStatus(1);
+ expert.setDelFlag(1);
int insert = comSanshuoExpertDao.insert(expert);
- if (insert > 0) {
- return R.ok();
+ 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());
+ return userService.sanShuoAddUser(user);
}
return R.fail("添加失败");
}
/**
* 后台获取专家列表
- *
* @param page
* @param keyWord
* @param size
- * @param range 数据范围:1街道下属/2社区下属/3业务中心下属/null三说会堂下属
- * @param id 社区或街道或业务中心id
+ * @param loginUserInfo 登陆账号信息
* @return 处理结果
- */
+ * */
@Override
- public R expertPage(String keyWord, Integer page, Integer size, Integer range, Long id) {
- return R.ok(comSanshuoExpertDao.expertPage(new Page(page, size), keyWord, range, id));
+ public R expertPage(String keyWord, Integer page, Integer size, LoginUserInfoVO loginUserInfo) {
+ //range:1.三说会堂下属,2业务中心下属,3街道下属,4社区下属
+ //id:社区或街道或业务中心id
+ //账号级别
+ Long id=null;
+ Integer range=null;
+ if (nonNull(loginUserInfo)){
+ if (nonNull(loginUserInfo.getUserType()) || nonNull(loginUserInfo.getType())){
+ if (nonNull(loginUserInfo.getUserType())){
+ if (loginUserInfo.getUserType().equals(1)){
+ range=3;
+ id=loginUserInfo.getStreetId();
+ }else if (loginUserInfo.getUserType().equals(2)){
+ range=4;
+ id=loginUserInfo.getCommunityId();
+ }
+ }else if (loginUserInfo.getType().equals(11)){
+ range=2;
+ id=loginUserInfo.getCommunityId();
+ }
+ }
+ }
+ if (loginUserInfo.getAccount().equals("admin") || loginUserInfo.getAccount().equals("xiqu")){
+ id=null;
+ range=null;
+ }
+ return R.ok(comSanshuoExpertDao.expertPage(new Page(page,size),keyWord,range,id));
}
+
+ /**
+ * 专家风采
+ * */
+ @Override
+ public R expertShow() {
+ List<ExpertShowVO> expertShowVOS = comSanshuoExpertDao.expertShow();
+ for (ExpertShowVO expertShowVO : expertShowVOS) {
+ if (nonNull(expertShowVO.getLevel())){
+ if (1==expertShowVO.getLevel()) {
+ expertShowVO.setName("区三说会堂调解专家");
+ }else if (2==expertShowVO.getLevel()){
+ expertShowVO.setName("行业分中心调解专家");
+ List<ExpertShowVO> expertShowVOS1 = comSanshuoExpertDao.selectExpertIndustry();
+ expertShowVO.setChildList(expertShowVOS1);
+ }else if (3==expertShowVO.getLevel()){
+ expertShowVO.setName("镇/街道调解站调解专家");
+ List<ExpertShowVO> expertShowVOS1 = comSanshuoExpertDao.selectExpertStreet();
+ expertShowVO.setChildList(expertShowVOS1);
+ }else {
+ expertShowVO.setName("村/社区调解站调解专家");
+ List<ExpertShowVO> expertShowVOS1 = comSanshuoExpertDao.selectExpertCommunity();
+ expertShowVO.setChildList(expertShowVOS1);
+ }
+ }
+ }
+ return R.ok(expertShowVOS);
+ }
+
+
+ /**
+ * 专家级别与单位范围
+ * */
+ @Override
+ public R expertRange(LoginUserInfoVO loginUserInfo) {
+ if (nonNull(loginUserInfo)){
+ if (loginUserInfo.getAccount().equals("zhengfawei") || loginUserInfo.getAccount().equals("admin")){
+ 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);
+ }else if (loginUserInfo.getType().equals(11)){
+ //三说会堂后台
+ List<ExpertRangeVO> list=new ArrayList<>();
+ ExpertRangeVO vo=new ExpertRangeVO();
+ vo.setLevel(1);
+ vo.setName("区三说会堂");
+ list.add(vo);
+ return R.ok(list);
+ }else if (loginUserInfo.getType().equals(12)){
+ //行业分中心后台
+ List<ExpertRangeVO> list=new ArrayList<>();
+ ExpertRangeVO vo=new ExpertRangeVO();
+ vo.setLevel(2);
+ vo.setName("行业分中心");
+ 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);
+ }
+ }
+ }
+ return R.fail();
+ }
+
+
+ /**
+ * 小程序获取专家列表
+ * */
+ @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));
+ }
+ }else {
+ comSanshuoExpert.setCount(0);
+ }
+
+ }
+ return R.ok(comSanshuoExperts);
+ }
+
+
+ /**
+ * 专家风采列表
+ * */
+ @Override
+ public R expertShowList(Integer level, Long id) {
+ 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 );
+ }
+ 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));
+ }
+ }else {
+ comSanshuoExpert.setCount(0);
+ }
+ }
+ return R.ok(comSanshuoExperts);
+ }
+
+
}
--
Gitblit v1.7.1