张天森
2022-09-14 51ae32e8d8c5bad5b68974c1ddbb75a33258dbe3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
package com.panzhihua.service_community.service.impl;
 
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.crypto.digest.MD5;
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.common.utlis.StringUtils;
import com.panzhihua.service_community.dao.*;
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.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 {
 
    @Resource
    private ComSanshuoExpertDao comSanshuoExpertDao;
    @Resource
    private UserService userService;
    @Resource
    private ComSanshuoIndustryCenterDao comSanshuoIndustryCenterDao;
    @Resource
    private ComStreetDAO comStreetDAO;
    @Resource
    private ComActDAO comActDAO;
 
 
    /**
     * 添加专家
     * @param comSanshuoExpertDTO
     * @return 处理结果
     * */
    @Override
    public R addExpert(ComSanshuoExpertDTO comSanshuoExpertDTO) {
        ComSanshuoExpert expert=new ComSanshuoExpert();
        BeanUtil.copyProperties(comSanshuoExpertDTO,expert);
        expert.setId(Snowflake.getId());
        expert.setCreateTime(new Date());
        int insert = comSanshuoExpertDao.insert(expert);
        if (insert>0){
            try {
                comSanshuoExpertDTO.setPassword(MyAESUtil.Encrypt(comSanshuoExpertDTO.getPassword(),"Ryo7M3n8loC5Abcd"));
            } 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 loginUserInfo 登陆账号信息
     * @return 处理结果
     * */
    @Override
    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 (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();
                }
            }
        }
        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();
    }
 
    /**
     * 专家级别与单位范围
     * */
    @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.setChildList(comSanshuoIndustryCenterDao.indstryList());
                    }else if (i==3){
                        vo.setChildList(comSanshuoIndustryCenterDao.streetList());
                    }else if (i==4){
                        vo.setChildList(comSanshuoIndustryCenterDao.communityList());
                    }
                    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();
    }
 
 
}