jiangping
2024-08-13 6765787baa5e0b771d71f865c4deb776367410c4
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/InterfaceLogServiceImpl.java
@@ -2,6 +2,7 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.InterfaceLogMapper;
import com.doumee.dao.business.model.InterfaceLog;
@@ -13,13 +14,14 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.yaml.snakeyaml.scanner.Constant;
import java.util.List;
/**
 * 三方平台接口交互记录Service实现
 * @author 江蹄蹄
 * @date 2023/11/23 18:16
 * @date 2023/11/30 15:33
 */
@Service
public class InterfaceLogServiceImpl implements InterfaceLogService {
@@ -106,6 +108,13 @@
            queryWrapper.lambda().ge(InterfaceLog::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(InterfaceLog::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getStartDate() != null) {
            queryWrapper.lambda().ge(InterfaceLog::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getStartDate()));
        }
        if (pageWrap.getModel().getEndDate() != null) {
            queryWrapper.lambda().le(InterfaceLog::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getEndDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(InterfaceLog::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
@@ -116,17 +125,16 @@
            queryWrapper.lambda().eq(InterfaceLog::getType, pageWrap.getModel().getType());
        }
        if (pageWrap.getModel().getName() != null) {
            queryWrapper.lambda().eq(InterfaceLog::getName, pageWrap.getModel().getName());
            queryWrapper.lambda().like(InterfaceLog::getName, pageWrap.getModel().getName());
        }
        if (pageWrap.getModel().getUrl() != null) {
            queryWrapper.lambda().ge(InterfaceLog::getUrl, Utils.Date.getStart(pageWrap.getModel().getUrl()));
            queryWrapper.lambda().le(InterfaceLog::getUrl, Utils.Date.getEnd(pageWrap.getModel().getUrl()));
            queryWrapper.lambda().like(InterfaceLog::getUrl, pageWrap.getModel().getUrl());
        }
        if (pageWrap.getModel().getRequest() != null) {
            queryWrapper.lambda().eq(InterfaceLog::getRequest, pageWrap.getModel().getRequest());
            queryWrapper.lambda().like(InterfaceLog::getRequest, pageWrap.getModel().getRequest());
        }
        if (pageWrap.getModel().getRepose() != null) {
            queryWrapper.lambda().eq(InterfaceLog::getRepose, pageWrap.getModel().getRepose());
            queryWrapper.lambda().like(InterfaceLog::getRepose, pageWrap.getModel().getRepose());
        }
        if (pageWrap.getModel().getSuccess() != null) {
            queryWrapper.lambda().eq(InterfaceLog::getSuccess, pageWrap.getModel().getSuccess());
@@ -140,13 +148,7 @@
        if (pageWrap.getModel().getObjId() != null) {
            queryWrapper.lambda().eq(InterfaceLog::getObjId, pageWrap.getModel().getObjId());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        queryWrapper.lambda().orderByDesc(InterfaceLog::getCreateDate);
        return PageData.from(interfaceLogMapper.selectPage(page, queryWrapper));
    }
@@ -155,4 +157,21 @@
        QueryWrapper<InterfaceLog> wrapper = new QueryWrapper<>(interfaceLog);
        return interfaceLogMapper.selectCount(wrapper);
    }
    @Override
    public void clearThreeMonthLog() {
          interfaceLogMapper.delete(new UpdateWrapper<InterfaceLog>().lambda()
                  .apply("to_days(create_date)+15 < to_days(now())")
                  .like(InterfaceLog::getUrl,"/artemis/api/"));
    }
    @Override
    public    void remainLastLogs(){
          InterfaceLog log = interfaceLogMapper.selectOne(new QueryWrapper<InterfaceLog>()
                  .select("max(id) as id").last("limit 1"));
          //只保留进10w条数据
          if(log!=null) {
              interfaceLogMapper.delete(new UpdateWrapper<InterfaceLog>().lambda()
                      .lt(InterfaceLog::getId, Constants.formatIntegerNum(log.getId()) - 100000));
          }
    }
}