教育训练处考试制证系统后端
zf
2023-10-12 d4e67803e0748a4a7af58739e0ca3108482d86d7
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
package com.gkhy.exam.noncoalmine.service.impl;
 
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.TypeReference;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gkhy.exam.noncoalmine.entity.NcCert;
import com.gkhy.exam.noncoalmine.mapper.NcCertMapper;
import com.gkhy.exam.noncoalmine.model.query.NcCertQuery;
import com.gkhy.exam.noncoalmine.model.vo.ExamPlanExaminee;
import com.gkhy.exam.noncoalmine.model.vo.ExamPlanInfo;
import com.gkhy.exam.noncoalmine.model.vo.ReturnCertVO;
import com.gkhy.exam.noncoalmine.model.vo.ReturnVO;
import com.gkhy.exam.noncoalmine.service.NcCertService;
import com.ruoyi.common.enums.HttpMethod;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.signature.SignatureUtils;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
 
import java.util.List;
 
/**
 * (NcCert)表服务实现类
 *
 * @author makejava
 * @since 2023-09-15 17:14:35
 */
@Service("ncCertService")
public class NcCertServiceImpl extends ServiceImpl<NcCertMapper, NcCert> implements NcCertService {
    @Autowired
    private NcCertMapper ncCertMapper;
 
    @Override
    public List<NcCert> getList(NcCertQuery query) {
        List<NcCert> ncCerts = ncCertMapper.selectList(new LambdaQueryWrapper<NcCert>()
                .eq(NcCert::getDelFlag, (byte) 0)
                .like(StringUtils.isNotEmpty(query.getName()), NcCert::getName, query.getName())
                .eq(StringUtils.isNotEmpty(query.getIdcardNum()),NcCert::getIdcardNum,query.getIdcardNum())
        );
        return ncCerts;
    }
 
    @Override
    public void syncCert(NcCertQuery query) {
        if(StringUtils.isEmpty(query.getIdcardNum())){
            throw new ServiceException("身份证号不能为空");
        }
        query.setIdcardTypeCode("01");
        String bodyParam = JSON.toJSONString(query);
 
        String json = SignatureUtils.getObject(bodyParam, "/api/v1/cert/query", HttpMethod.POST);
        ReturnVO<List<ReturnCertVO>> returnVo = JSONObject.parseObject(json, new TypeReference<ReturnVO<List<ReturnCertVO>>>() {});
        if(returnVo.getCode() == null || returnVo.getCode() != 200){
            throw new ServiceException("拉取数据异常");
        }
        if(returnVo.getData() == null){
            throw new ServiceException("无数据可更新");
        }
        //同步数据
        List<ReturnCertVO> returnCertVOList = returnVo.getData();
        if(!CollectionUtils.isEmpty(returnCertVOList)){
            for (ReturnCertVO returnCertVo : returnCertVOList) {
                NcCert ncCert = new NcCert();
                BeanUtils.copyProperties(returnCertVo,ncCert);
                ncCert.setCertId(returnCertVo.getId());
                ncCert.setId(null);
                ncCert.setDelFlag((byte) 0);
                if(!isExsit(returnCertVo.getId())){
                    baseMapper.insert(ncCert);
                }
            }
        }
    }
 
    @Override
    public List<NcCert> getByIdCard(String idCard) {
        List<NcCert> ncCerts = baseMapper.selectList(new LambdaQueryWrapper<NcCert>().eq(NcCert::getDelFlag, (byte) 0)
                .eq(NcCert::getIdcardNum, idCard));
        return ncCerts;
    }
    private boolean isExsit(Long certId){
        NcCert ncCert = baseMapper.selectOne(new LambdaQueryWrapper<NcCert>()
                .eq(NcCert::getDelFlag, (byte) 0)
                .eq(NcCert::getCertId, certId));
        if (ncCert != null){
            return true;
        }
        return false;
    }
}