xieb
2023-08-14 0bd6d9b8aec0940a414f0f317ae8cb57f7b85ebb
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
package cn.gistack.sm.jcsb.service.impl;
 
import cn.gistack.pwd.dto.CBCResultDTO;
import cn.gistack.pwd.dto.ResultDTO;
import cn.gistack.pwd.fegin.IPwdClient;
import cn.gistack.sm.jcsb.supo.DangerReportSUPO;
import cn.gistack.sm.jcsb.entity.DangerReport;
import cn.gistack.sm.jcsb.mapper.DangerReportMapper;
import cn.gistack.sm.jcsb.service.IDangerReportService;
import cn.gistack.sm.jcsb.vo.DangerReportVO;
import cn.gistack.sm.jcsb.vo.StatisticsVO;
import cn.gistack.sm.sjztmd.entity.AttResBase;
import cn.gistack.sm.sjztmd.service.IAttResBaseService;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.BeanUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
 
import java.util.List;
 
/**
 * @PROJECT_NAME: skjcmanager
 * @DESCRIPTION:
 * @USER: aix
 * @DATE: 2023/5/18 17:47
 */
@Service
public class DangerReportServiceImpl extends BaseServiceImpl<DangerReportMapper, DangerReport> implements IDangerReportService {
 
    @Autowired
    private IPwdClient pwdClient;
    @Autowired
    private IAttResBaseService attResBaseService;
 
    @Override
    public List<DangerReportVO> getAll(DangerReport dangerReport) {
        return baseMapper.getAll(dangerReport);
    }
 
    @Override
    public IPage<DangerReportVO> selectPage(IPage<DangerReportVO> page, DangerReportVO dangerReportVO) {
        return page.setRecords(baseMapper.selectRecordPage(page,dangerReportVO));
    }
 
    @Override
    public StatisticsVO getStatistics(String resGuid) {
        return baseMapper.getStatistics(resGuid);
    }
 
    @Override
    public boolean saveUp(DangerReport dangerReport) {
        // 填充加密内容
        DangerReportSUPO dangerReportSUPO = BeanUtil.copy(dangerReport, DangerReportSUPO.class);
 
        // 获取水库名称
        AttResBase attResBase = attResBaseService.getDetailByCode(dangerReport.getReservoirId());
        dangerReportSUPO.setReservoirName(attResBase.getName());
 
        String message = JSONObject.toJSONString(dangerReportSUPO);
        R<CBCResultDTO> cbcResultDTOR =  pwdClient.getCBCMacEncipher(message);
        if (cbcResultDTOR.getCode() != 200) {
            return false;
        }
        String maced = cbcResultDTOR.getData().getMaced();
        String keyIndex = cbcResultDTOR.getData().getKeyIndex();
        String sm4iv = cbcResultDTOR.getData().getSm4IV();
        dangerReport.setMaced(maced);
        dangerReport.setKeyindexs(keyIndex);
        dangerReport.setSm4iv(sm4iv);
        R<ResultDTO> resultDTOR = pwdClient.getEncrypt(sm4iv, keyIndex, message);
        if (resultDTOR.getCode() != 200) {
            return false;
        }
        dangerReport.setEncdata(resultDTOR.getData().getData());
 
        return this.save(dangerReport);
    }
 
}