guoshilong
2024-03-13 3ca382419700698bf69d30b6f20d0fb493bd2c2d
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/service/impl/ISmLogManageServiceImpl.java
@@ -1,5 +1,8 @@
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;
@@ -7,11 +10,15 @@
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;
/**
@@ -25,22 +32,76 @@
@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();
      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);
//      List<AppStatistics> appStatistics = baseMapper.getAppStatistics(appStatisticsVO);
//      appStatisticsVO.setList(appStatistics);
      return appStatisticsVO;
   }
   @Override
   public IPage<SmLogManageVO> selectPage(IPage<SmLogManageVO> page, SmLogManageVO smLogManage) {
      return page.setRecords(baseMapper.selectMyPage(page,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);
   }
}