广州市综治平台后端
xusd
2025-06-07 36306491396230522fa20585c2621a7fc899849a
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
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
package cn.huge.module.pauser.service;
 
import cn.huge.base.common.exception.ServiceException;
import cn.huge.base.common.utils.DateUtils;
import cn.huge.base.common.utils.IdUtils;
import cn.huge.base.common.utils.ObjectUtils;
import cn.huge.module.client.api.impl.UtilsClientImpl;
import cn.huge.module.cust.dto.PaUserDTO;
import cn.huge.module.mediate.dto.WechatBindCaseDTO;
import cn.huge.module.cust.constant.UserBaseConsts;
import cn.huge.module.mediate.dto.WechatBindCaseDTO;
import cn.huge.module.pauser.dao.mapper.PaAccountMapper;
import cn.huge.module.pauser.dao.mapper.PaUserMapper;
import cn.huge.module.pauser.domain.po.PaAccount;
import cn.huge.module.pauser.domain.po.PaUser;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import cn.huge.module.pauser.dto.WeChatPersonalDTO;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.transaction.annotation.Transactional;
 
import javax.annotation.PostConstruct;
import java.util.Date;
import java.util.List;
import java.util.Map;
 
/**
 * @title: 公众用户表业务逻辑处理
 * @Description 公众用户表业务逻辑处理
 * @company hugeinfo
 * @author liyj
 * @Time 2024-08-19 20:04:19
 * @version 1.0.0
 */
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
public class PaUserService extends ServiceImpl<PaUserMapper, PaUser>{
 
    @Autowired
    private PaUserMapper mapper;
 
    @Autowired
    private UtilsClientImpl utilsClient;
 
    @Autowired
    private PaAccountMapper paAccountMapper;
 
    /**
    * 更新对象
    * @param entity 对象
    */
    public void updatePaUser(PaUser entity){
        try{
            mapper.updatePaUser(entity);
        }catch (Exception e){
            log.error("[PaUserService.updatePaUser]调用失败,异常信息:"+e, e);
            throw new ServiceException("PaUserService.updatePaUser", e);
        }
    }
 
    /**
    * 条件更新对象
    * @param entity 对象
    * @param terms 条件
    */
    public void updatePaUserTerms(PaUser entity, Map<String, Object> terms){
        try{
            mapper.updatePaUserTerms(entity, terms);
        }catch (Exception e){
            log.error("[PaUserService.updatePaUserTerms]调用失败,异常信息:"+e, e);
            throw new ServiceException("PaUserService.updatePaUserTerms", e);
        }
    }
 
    /**
    * 根据编号物理删除
    * @param id 查询条件集合
    */
    public void deletePaUser(String id){
        try{
            mapper.deletePaUser(id);
        }catch (Exception e){
            log.error("[PaUserService.deletePaUser]调用失败,异常信息:"+e, e);
            throw new ServiceException("PaUserService.deletePaUser", e);
        }
    }
 
    /**
    * 按条件查询
    * @param terms 条件
    * @return List
    */
    public List<PaUser> listTerms(Map<String, Object> terms){
        return mapper.listTerms(terms);
    }
 
    /**
    * 按条件统计
    * @param terms 条件
    * @return long
    */
    public long countTerms(Map<String, Object> terms){
        return mapper.countTerms(terms);
    }
 
    /**
    * 按条件分页查询
    * @param page 分页对象
    * @param terms 条件
    * @return Page
    */
    public Page<PaUser> pageQuery(PageRequest page, Map<String, Object> terms){
        long total = mapper.countTerms(terms);
        List<PaUser> content = mapper.pageTerms(page, terms);
        return new PageImpl<PaUser>(content, page, total);
    }
 
    /**
    * 新增或更新对象
    * @param paUser 实体对象
    */
    public void savePaUser(PaUser paUser){
        try{
            Date nowDate = DateUtils.getNowDate();
            // 判断是否新增
            if (IdUtils.checkNewId(paUser.getId())){
                paUser.setId(utilsClient.getNewTimeId());
                paUser.setCreateTime(nowDate);
            }
            paUser.setUpdateTime(nowDate);
            this.saveOrUpdate(paUser);
        }catch (Exception e){
            log.error("[PaUserService.savePaUser]调用失败,异常信息:"+e, e);
            throw new ServiceException("PaUserService.savePaUser", e);
        }
    }
 
    /**
     * pc端提交案件后-获取相关当事人用户编号
     * @param wechatBindCaseDTO 用户信息
     * @return String
     */
    public String bindGetUserId(WechatBindCaseDTO wechatBindCaseDTO){
        try{
            QueryWrapper<PaUser> paUserQueryWrapper = new QueryWrapper<>();
            paUserQueryWrapper.eq("true_name", wechatBindCaseDTO.getTrueName()).
                    eq("idcard", wechatBindCaseDTO.getIdcard()).eq("cust_id", wechatBindCaseDTO.getCustId());
            PaUser paUser = this.getOne(paUserQueryWrapper);
            return paUser.getId();
        }catch (Exception e){
            log.error("service方法[PaUserService.bindGetUserId]调用异常:"+e, e);
            throw new ServiceException("PaUserService.bindGetUserId", e);
        }
    }
 
    /**
     * 当事人小程序-个人中心
     * @param userId 用户编号
     * @return WeChatPersonalDTO
     */
    public WeChatPersonalDTO wechatPersonal(String userId){
        WeChatPersonalDTO weChatPersonalDTO = new WeChatPersonalDTO();
        PaUser paUser = this.getById(userId);
        BeanUtils.copyProperties(paUser, weChatPersonalDTO);
        weChatPersonalDTO.setUserId(paUser.getId());
        // TODO: 2022/4/13 我的消息
        weChatPersonalDTO.setMsgCount(0);
        // TODO: 2022/4/13 反馈意见
        weChatPersonalDTO.setOpinionCount(0);
 
        QueryWrapper<PaAccount> paAccountWrapper = new QueryWrapper<>();
        paAccountWrapper.eq("user_id", userId);
        PaAccount paAccount = paAccountMapper.selectOne(paAccountWrapper);
        if(ObjectUtils.isNotEmpty(paAccount)){
            weChatPersonalDTO.setLoginTime(paAccount.getLoginTime());
        }
 
        return weChatPersonalDTO;
    }
 
    /**
     * 当事人小程序-完善资料
     * @param paUser 用户信息
     */
    public void perfectInfo(PaUser paUser){
        try{
            Date nowDate = new Date();
            paUser.setStatus(UserBaseConsts.USER_STATUS_1);
            paUser.setUpdateTime(nowDate);
            mapper.updatePaUser(paUser);
            // 绑定案件
//            WechatBindCaseDTO wechatBindCaseDTO = new WechatBindCaseDTO();
//            wechatBindCaseDTO.setUserId(paUser.getId());
//            wechatBindCaseDTO.setMobile(paUser.getMobile());
//            wechatBindCaseDTO.setTrueName(paUser.getTrueName());
//            wechatBindCaseDTO.setIdcard(paUser.getIdcard());
//            wechatBindCaseDTO.setCustId(paUser.getCustId());
//            mediateClient.bindCase(wechatBindCaseDTO);
        }catch (Exception e){
            log.error("service方法[PaUserService.perfectInfo]调用异常:"+e, e);
            throw new ServiceException("PaUserService.perfectInfo", e);
        }
    }
 
    /**
     * 当事人小程序-实名认证
     * @param paUser 用户信息
     */
    public void wechatRealAuth(PaUser paUser){
        try{
            Date nowDate = new Date();
            paUser.setRealStatus(UserBaseConsts.REAL_STATUS_1);
//            paUser.setFaceStatus(UserBaseConsts.FACE_STATUS_1);
            paUser.setStatus(UserBaseConsts.USER_STATUS_1);
            paUser.setUpdateTime(nowDate);
            mapper.updatePaUser(paUser);
            // 绑定案件
//            WechatBindCaseDTO wechatBindCaseDTO = new WechatBindCaseDTO();
//            wechatBindCaseDTO.setUserId(paUser.getId());
//            wechatBindCaseDTO.setMobile(paUser.getMobile());
//            wechatBindCaseDTO.setTrueName(paUser.getTrueName());
//            wechatBindCaseDTO.setIdcard(paUser.getIdcard());
//            wechatBindCaseDTO.setCustId(paUser.getCustId());
//            mediateClient.bindCase(wechatBindCaseDTO);
        }catch (Exception e){
            log.error("service方法[PaUserService.wechatRealAuth]调用异常:"+e, e);
            throw new ServiceException("PaUserService.wechatRealAuth", e);
        }
    }
 
    public PaUserDTO clientGetUserAll(String userId){
        PaUserDTO paUserDTO = new PaUserDTO();
        PaUser paUser = mapper.selectById(userId);
        if(ObjectUtils.isNotEmpty(paUser)){
            BeanUtils.copyProperties(paUser, paUserDTO);
        }
        return paUserDTO;
    }
}