mitao
2025-02-21 31573d6180d15ef65ed0df9c2732495f40b12663
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
package com.panzhihua.service_community.service.impl;
 
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
 
import javax.annotation.Resource;
 
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.exceptions.ServiceException;
import com.panzhihua.common.model.dtos.community.EldersAuthElderlyDTO;
import com.panzhihua.common.model.dtos.community.PageComEldersAuthElderlyDTO;
import com.panzhihua.common.model.dtos.community.PageEldersAuthElderlyDTO;
import com.panzhihua.common.model.helper.AESUtil;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComEldersAuthElderlyVO;
import com.panzhihua.common.model.vos.community.EldersAuthElderlyExcelVO;
import com.panzhihua.service_community.dao.ComEldersAuthElderlyMapper;
import com.panzhihua.service_community.model.dos.ComEldersAuthElderlyDO;
import com.panzhihua.service_community.service.ComEldersAuthElderlyService;
import com.panzhihua.service_community.service.EldersAuthService;
 
import lombok.extern.slf4j.Slf4j;
 
/**
 * 高龄老人库 serviceImpl
 *
 * @author cedoo email:cedoo(a)qq.com
 * @version 1.0
 * @since 1.0
 * @date 2021-06-09
 */
@Slf4j
@Service
public class ComEldersAuthElderlyServiceImpl extends ServiceImpl<ComEldersAuthElderlyMapper, ComEldersAuthElderlyDO>
    implements ComEldersAuthElderlyService {
 
    @Resource
    private ComEldersAuthElderlyMapper comEldersAuthElderlyMapper;
 
    @Value("${domain.aesKey:}")
    private String aesKey;
 
    @Resource
    private EldersAuthService eldersAuthService;
 
    @Override
    public R pageQueryEldersAuthElderly(PageEldersAuthElderlyDTO pageEldersAuthElderlyDTO) {
        PageComEldersAuthElderlyDTO pageComEldersAuthElderlyDTO = new PageComEldersAuthElderlyDTO();
        BeanUtils.copyProperties(pageEldersAuthElderlyDTO, pageComEldersAuthElderlyDTO);
        IPage<ComEldersAuthElderlyVO> page = comEldersAuthElderlyMapper.findByPage(
            new Page(pageEldersAuthElderlyDTO.getPageNum(), pageEldersAuthElderlyDTO.getPageSize()),
            pageComEldersAuthElderlyDTO);
        return R.ok(page);
    }
 
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R batchSave(List<EldersAuthElderlyExcelVO> list, Long communityId, Long createBy) {
        List<ComEldersAuthElderlyDO> listNewDO = new ArrayList<>();
        List<ComEldersAuthElderlyDO> listUpdateDO = new ArrayList<>();
        list.forEach(e -> {
            String idCardProto = e.getIdCard();
            if (idCardProto != null && idCardProto.contains("x")) {
                idCardProto = idCardProto.replaceAll("x", "X");
            }
            String idCardEncrypted = idCardProto;
            try {
                idCardEncrypted = AESUtil.encrypt128(idCardEncrypted, aesKey);
            } catch (Exception exp) {
                exp.printStackTrace();
            }
            List<ComEldersAuthElderlyDO> comEldersAuthElderlyDOList = comEldersAuthElderlyMapper.selectList(
                new LambdaQueryWrapper<ComEldersAuthElderlyDO>().eq(ComEldersAuthElderlyDO::getIdCard, idCardEncrypted)
                    .orderByDesc(ComEldersAuthElderlyDO::getCreateAt));
 
            if (comEldersAuthElderlyDOList != null && comEldersAuthElderlyDOList.size() > 0) {
                ComEldersAuthElderlyDO lastestOne = comEldersAuthElderlyDOList.get(0);
                lastestOne.setName(e.getName());
                lastestOne.setCommunityId(communityId);
                lastestOne.setUpdateBy(createBy);
                lastestOne.setIdCard(null);
                lastestOne.setDomicile(eldersAuthService.queryDomicile(e.getIdCard()));
                lastestOne.setIsExist(Objects.equals("是", e.getIsExist()) ? 1 : 2);
                lastestOne.setIsBigAge(Objects.equals("是", e.getIsBigAge()) ? 1 : 2);
                lastestOne.setUpdateAt(new Date());
                listUpdateDO.add(lastestOne);
            } else {
                ComEldersAuthElderlyDO comEldersAuthElderlyDO = new ComEldersAuthElderlyDO();
                comEldersAuthElderlyDO.setName(e.getName());
                comEldersAuthElderlyDO.setIdCard(e.getIdCard());
                comEldersAuthElderlyDO.setCommunityId(communityId);
                comEldersAuthElderlyDO.setCreateBy(createBy);
                comEldersAuthElderlyDO.setDomicile(eldersAuthService.queryDomicile(e.getIdCard()));
                comEldersAuthElderlyDO.setIsExist(Objects.equals("是", e.getIsExist()) ? 1 : 2);
                comEldersAuthElderlyDO.setIsBigAge(Objects.equals("是", e.getIsBigAge()) ? 1 : 2);
                comEldersAuthElderlyDO.setBirthday(e.getBirthday());
                comEldersAuthElderlyDO.setLevel(e.getLevel());
                listNewDO.add(comEldersAuthElderlyDO);
            }
 
        });
        boolean noImport =
            (listNewDO == null || listNewDO.size() == 0) && (listUpdateDO == null || listUpdateDO.size() == 0);
        if (noImport) {
            throw new ServiceException("未发现高龄老人数据");
        }
        if (listNewDO != null && listNewDO.size() > 0) {
            boolean batchAdd = this.saveBatch(listNewDO);
            if (!batchAdd) {
                throw new ServiceException("批量插入失败");
            }
        }
        if (listUpdateDO != null && listUpdateDO.size() > 0) {
            boolean batchUpdate = this.updateBatchById(listUpdateDO);
            if (!batchUpdate) {
                throw new ServiceException("批量更新失败");
            }
        }
 
        return R.ok("共计导入高龄老人数量:" + list.size());
    }
 
    @Override
    public R getEldersAuthElderlyById(Long id) {
        ComEldersAuthElderlyDO comEldersAuthElderlyDO = this.baseMapper.selectById(id);
        if (comEldersAuthElderlyDO == null) {
            return R.fail("记录不存在");
        }
        ComEldersAuthElderlyVO comEldersAuthElderlyVO = new ComEldersAuthElderlyVO();
        BeanUtils.copyProperties(comEldersAuthElderlyDO, comEldersAuthElderlyVO);
        return R.ok(comEldersAuthElderlyVO);
    }
 
    @Override
    public R updateEldersAuthElderly(EldersAuthElderlyDTO eldersAuthElderlyDTO) {
        ComEldersAuthElderlyDO comEldersAuthElderlyDO = this.baseMapper.selectById(eldersAuthElderlyDTO.getId());
        if(comEldersAuthElderlyDO == null){
            return R.fail("未查询到该老人信息");
        }
        if (!ObjectUtils.isEmpty(eldersAuthElderlyDTO.getName())) {
            comEldersAuthElderlyDO.setName(eldersAuthElderlyDTO.getName());
        }
        comEldersAuthElderlyDO.setIsExist(eldersAuthElderlyDTO.getIsExist());
        comEldersAuthElderlyDO.setIsBigAge(eldersAuthElderlyDTO.getIsBigAge());
        comEldersAuthElderlyDO.setIdCard(eldersAuthElderlyDTO.getIdCard());
//        if (!ObjectUtils.isEmpty(eldersAuthElderlyDTO.getIdCard())) {
//            try {
//                String idCard = AESUtil.encrypt128(eldersAuthElderlyDTO.getIdCard(), aesKey);
//                comEldersAuthElderlyDO.setIdCard(idCard);
//            } catch (Exception exp) {
//                log.error("身份证转义失败");
//            }
//        }
        baseMapper.updateEldersAuthElderly(comEldersAuthElderlyDO);
        return R.ok();
    }
 
    @Override
    public R deleteEldersAuthElderly(Long id) {
        if (this.baseMapper.deleteById(id) > 0) {
            // 删除用户关联的老人信息
            this.baseMapper.deleteEldersAuthUserById(id);
            return R.ok();
        }
        return R.fail();
    }
}