zhongrj
2023-10-19 aa6fd3986a72524dea1547f2b1cce85ea71228bd
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
package cn.gistack.sm.log.service.impl;
 
import cn.gistack.pwd.dto.CBCResultDTO;
import cn.gistack.pwd.dto.ResultDTO;
import cn.gistack.pwd.fegin.IPwdClient;
import cn.gistack.sm.log.entity.SmLogManage;
import cn.gistack.sm.log.mapper.SmLogManageMapper;
import cn.gistack.sm.log.service.ISmLogManageService;
import cn.gistack.sm.log.vo.AppStatistics;
import cn.gistack.sm.log.vo.AppStatisticsVO;
import cn.gistack.sm.log.vo.SmLogManageVO;
import cn.gistack.system.user.feign.IUserClient;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.api.R;
import org.springframework.stereotype.Service;
 
import java.util.List;
 
/**
 * @ClassName ISmLogManageServiceImpl
 * @Description TODO
 * @Author aix
 * @Date 2023/4/24 14:44
 * @Version 1.0
 */
@Service
@AllArgsConstructor
public class ISmLogManageServiceImpl extends BaseServiceImpl<SmLogManageMapper, SmLogManage> implements ISmLogManageService {
    private IUserClient userClient;
    private IPwdClient pwdClient;
 
    @Override
    public AppStatisticsVO getAppStatistics(AppStatisticsVO appStatisticsVO) {
 
        Integer appUserNum = baseMapper.getAppUserNum();
        Integer sysUserNum = userClient.getAllUserList().getData().size();
        appStatisticsVO.setSysUserNum(sysUserNum);
        appStatisticsVO.setAppUserNum(appUserNum);
 
        List<AppStatistics> appStatistics = baseMapper.getAppStatistics(appStatisticsVO);
        appStatisticsVO.setList(appStatistics);
        return appStatisticsVO;
    }
 
    @Override
    public IPage<SmLogManageVO> selectPage(IPage<SmLogManageVO> page, SmLogManageVO smLogManage) {
        List<SmLogManageVO> list = baseMapper.selectMyPage(page, smLogManage);
 
        list.forEach(smLogManageVO ->{
            SmLogManage log = new SmLogManage();
 
            log.setIp(smLogManageVO.getIp());
            log.setOperationDescription(smLogManageVO.getOperationDescription());
            log.setUrl(smLogManageVO.getUrl());
            log.setSource(smLogManage.getSource());
 
            String message = JSONObject.toJSONString(log);
             pwdClient.verify(smLogManageVO.getMaced(),
                 smLogManageVO.getSm4iv(),
                 smLogManageVO.getKeyindexs(),
                 message,smLogManageVO.getId().toString(),"sm_log_manage");
        });
 
        return page.setRecords(list);
    }
 
    @Override
    public boolean save(SmLogManage entity) {
 
        String message = JSONObject.toJSONString(entity);
        R<CBCResultDTO> cbcResultDTOR =  pwdClient.getCBCMacEncipher(message);
 
        //保存加密字段
        String maced = cbcResultDTOR.getData().getMaced();
        String keyIndex = cbcResultDTOR.getData().getKeyIndex();
        String sm4iv = cbcResultDTOR.getData().getSm4IV();
        entity.setMaced(maced);
        entity.setKeyindexs(keyIndex);
        entity.setSm4iv(sm4iv);
 
        return super.save(entity);
    }
}