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.springblade.core.tool.utils.StringUtil;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
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) {
|
|
String adCode = "";
|
if (StringUtil.isNotBlank(appStatisticsVO.getAdCode())){
|
String paramAd = appStatisticsVO.getAdCode();
|
|
if (paramAd.substring(0,4).indexOf("00") > -1) {
|
//前四位包含00说明是湖北省 4200/00000000
|
adCode =StringUtil.format("%{}%",paramAd.substring(0,2));
|
} else if (paramAd.substring(0,6).indexOf("00") > -1) {
|
//前六位包含00说明是市级 420100/000000
|
// adCode = paramAd.substring(0,4);
|
adCode =StringUtil.format("%{}%",paramAd.substring(0,4));
|
}else if (paramAd.substring(0,8).indexOf("00") > -1){
|
//前8位包含00 说明是区级 42011700/0000
|
// adCode = paramAd.substring(0,6);
|
adCode =StringUtil.format("%{}%",paramAd.substring(0,6));
|
}
|
}
|
|
int appUserNum = baseMapper.getAppUserNum(adCode);
|
int sysUserNum =userClient.getSysUserNum(appStatisticsVO.getAdCode());
|
|
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);
|
}
|
}
|