lyh
3 天以前 3ce27b7faf8850d101a1511a685250fe562dca18
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
package com.lxzn.nc.service.impl;
 
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.additional.query.impl.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lxzn.auth.JwtUtil;
import com.lxzn.base.service.IMultilevelDictionaryService;
import com.lxzn.framework.domain.base.request.NcLogInfoRequest;
import com.lxzn.framework.domain.nc.NcLogInfo;
import com.lxzn.framework.domain.ucenter.User;
import com.lxzn.framework.exception.ExceptionCast;
import com.lxzn.framework.model.response.CommonCode;
import com.lxzn.framework.model.response.QueryPageResponseResult;
import com.lxzn.framework.utils.ExcelUtils;
import com.lxzn.framework.utils.IpUtils;
import com.lxzn.framework.utils.SpringContextUtils;
import com.lxzn.framework.utils.ValidateUtil;
import com.lxzn.nc.dao.NcLogInfoMapper;
import com.lxzn.nc.service.INcLogInfoService;
import com.lxzn.ucenter.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.servlet.ModelAndView;
 
import javax.servlet.http.HttpServletRequest;
import java.util.List;
 
/**
 * @author clown
 * * @date 2023/12/4
 */
@Service
public class NcLogInfoServiceImpl extends ServiceImpl<NcLogInfoMapper, NcLogInfo> implements INcLogInfoService {
 
    @Autowired
    private IUserService userService;
 
    @Autowired
    private IMultilevelDictionaryService iMultilevelDictionaryService;
 
    @Override
    public QueryPageResponseResult<NcLogInfo> findByPageList(int page, int size, NcLogInfoRequest requestParams) {
        if(page < 1 || size < 1) {
            ExceptionCast.cast(CommonCode.INVALID_PAGE);
        }
        IPage<NcLogInfo> pageData = new Page<>(page, size);
        LambdaQueryChainWrapper<NcLogInfo> lambdaQuery = super.lambdaQuery();
        if(requestParams != null) {
            if(ValidateUtil.validateString(requestParams.getUsername())) {
                lambdaQuery.eq(NcLogInfo::getUserName, requestParams.getUsername());
            }
            if(requestParams.getOperateType() != null) {
                lambdaQuery.eq(NcLogInfo::getOperateType, requestParams.getOperateType());
            }
            if(ValidateUtil.validateString(requestParams.getLogContent())) {
                lambdaQuery.like(NcLogInfo::getLogContent, requestParams.getLogContent());
            }
            lambdaQuery.ge(StrUtil.isNotEmpty(requestParams.getStartTime()),NcLogInfo::getCreateTime,requestParams.getStartTime());
            lambdaQuery.le(StrUtil.isNotEmpty(requestParams.getEndTime()),NcLogInfo::getCreateTime,requestParams.getEndTime());
        }
        ((Page<NcLogInfo>) pageData).setDesc("create_time");
        IPage<NcLogInfo> userIPage = lambdaQuery.page(pageData);
        if (userIPage != null && userIPage.getRecords() != null && !userIPage.getRecords().isEmpty()) {
            for (NcLogInfo nc : userIPage.getRecords()) {
                User user = userService.getById(nc.getCreateUser());
                if (user != null) {
                    nc.setNickName(user.getNickname());
                    nc.setUserName(user.getUsername());
                }
            }
        }
        return new QueryPageResponseResult<>(CommonCode.SUCCESS, userIPage);
    }
 
    @Override
    @Transactional(rollbackFor = {Exception.class})
    public boolean saveLogNcInfos(NcLogInfo logInfo) {
        HttpServletRequest request = SpringContextUtils.getHttpServletRequest();
        //设置IP地址
        logInfo.setIp(IpUtils.getIpAddr(request));
        super.save(logInfo);
        User user = userService.getById(logInfo.getCreateUser());
        if (user != null) {
            logInfo.setNickName(user.getNickname());
            logInfo.setUserName(user.getUsername());
        }
        super.saveOrUpdate(logInfo);
        return true;
    }
 
    @Override
    @Transactional(rollbackFor = {Exception.class})
    public boolean saveLogInfo(String moduleInfo, Integer operateType, String logContent) {
        HttpServletRequest request = SpringContextUtils.getHttpServletRequest();
        NcLogInfo logInfo = new NcLogInfo();
        logInfo.setModuleInfo(moduleInfo);
        logInfo.setOperateType(operateType);
        logInfo.setLogContent(logContent);
        //设置IP地址
        logInfo.setIp(IpUtils.getIpAddr(request));
        super.save(logInfo);
        User user = userService.getById(logInfo.getCreateUser());
        if (user != null) {
            logInfo.setNickName(user.getNickname());
            logInfo.setUserName(user.getUsername());
        }
        super.saveOrUpdate(logInfo);
        return true;
    }
 
    /**
     * 导出查询List
     * @param requestParams
     * @return
     */
    @Override
    @Transactional
    public ModelAndView exportLogList(NcLogInfoRequest requestParams){
        LambdaQueryChainWrapper<NcLogInfo> lambdaQuery = super.lambdaQuery();
        if(requestParams != null) {
            if(ValidateUtil.validateString(requestParams.getUsername())) {
                lambdaQuery.eq(NcLogInfo::getUserName, requestParams.getUsername());
            }
            if(requestParams.getOperateType() != null) {
                lambdaQuery.eq(NcLogInfo::getOperateType, requestParams.getOperateType());
            }
            if(ValidateUtil.validateString(requestParams.getLogContent())) {
                lambdaQuery.like(NcLogInfo::getLogContent, requestParams.getLogContent());
            }
            lambdaQuery.ge(StrUtil.isNotEmpty(requestParams.getStartTime()),NcLogInfo::getCreateTime,requestParams.getStartTime());
            lambdaQuery.le(StrUtil.isNotEmpty(requestParams.getEndTime()),NcLogInfo::getCreateTime,requestParams.getEndTime());
        }
        lambdaQuery.orderByDesc(NcLogInfo::getCreateTime);
        List<NcLogInfo> ncLogInfoList=lambdaQuery.list();
        ncLogInfoList.forEach(item->{
            //翻译用户名、操作类型
            item.setOperateTypeStr(iMultilevelDictionaryService.queryDictTextByKey("OPERATE_TYPE",item.getOperateType().toString()));
            item.setCreateUser(userService.getById(item.getCreateUser()).getNickname());
        });
        String userId = JwtUtil.getUserId();
        return ExcelUtils.export("DNC日志管理", NcLogInfo.class, ncLogInfoList,userService.getById(userId).getNickname());
    }
 
}