feat: 功能持续更新.

pull/161/head
chen.ma 3 years ago
parent 4f3d59b187
commit a096dd89d9

@ -1,14 +1,11 @@
package io.dynamic.threadpool.server.controller;
import io.dynamic.threadpool.common.constant.Constants;
import io.dynamic.threadpool.common.toolkit.ContentUtil;
import io.dynamic.threadpool.common.web.base.Result;
import io.dynamic.threadpool.common.web.base.Results;
import io.dynamic.threadpool.server.event.LocalDataChangeEvent;
import io.dynamic.threadpool.server.model.ConfigAllInfo;
import io.dynamic.threadpool.server.model.ConfigInfoBase;
import io.dynamic.threadpool.server.service.ConfigChangePublisher;
import io.dynamic.threadpool.server.service.ConfigService;
import io.dynamic.threadpool.server.service.biz.ConfigService;
import io.dynamic.threadpool.server.service.ConfigServletInner;
import io.dynamic.threadpool.server.toolkit.Md5ConfigUtil;
import lombok.SneakyThrows;
@ -47,11 +44,8 @@ public class ConfigController {
}
@PostMapping
public Result<Boolean> publishConfig(HttpServletRequest request, @RequestBody ConfigAllInfo config) {
public Result<Boolean> publishConfig(@RequestBody ConfigAllInfo config) {
configService.insertOrUpdate(config);
ConfigChangePublisher
.notifyConfigChange(new LocalDataChangeEvent(ContentUtil.getGroupKey(config)));
return Results.success(true);
}

@ -7,7 +7,7 @@ import io.dynamic.threadpool.common.web.base.Results;
import io.dynamic.threadpool.server.model.biz.item.ItemQueryReqDTO;
import io.dynamic.threadpool.server.model.biz.item.ItemRespDTO;
import io.dynamic.threadpool.server.model.biz.item.ItemSaveReqDTO;
import io.dynamic.threadpool.server.service.ItemService;
import io.dynamic.threadpool.server.service.biz.ItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@ -8,7 +8,7 @@ import io.dynamic.threadpool.server.model.biz.tenant.TenantQueryReqDTO;
import io.dynamic.threadpool.server.model.biz.tenant.TenantRespDTO;
import io.dynamic.threadpool.server.model.biz.tenant.TenantSaveReqDTO;
import io.dynamic.threadpool.server.model.biz.tenant.TenantUpdateReqDTO;
import io.dynamic.threadpool.server.service.TenantService;
import io.dynamic.threadpool.server.service.biz.TenantService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@ -0,0 +1,43 @@
package io.dynamic.threadpool.server.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.dynamic.threadpool.common.constant.Constants;
import io.dynamic.threadpool.common.web.base.Result;
import io.dynamic.threadpool.common.web.base.Results;
import io.dynamic.threadpool.server.model.biz.threadpool.ThreadPoolQueryReqDTO;
import io.dynamic.threadpool.server.model.biz.threadpool.ThreadPoolRespDTO;
import io.dynamic.threadpool.server.model.biz.threadpool.ThreadPoolSaveOrUpdateReqDTO;
import io.dynamic.threadpool.server.service.biz.ThreadPoolService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* Thread Pool Controller.
*
* @author chen.ma
* @date 2021/6/30 20:54
*/
@RestController
@RequestMapping(Constants.BASE_PATH)
public class ThreadPoolController {
@Autowired
private ThreadPoolService threadPoolService;
@PostMapping("/thread/pool/query/page")
public Result<IPage<ThreadPoolRespDTO>> queryNameSpacePage(@RequestBody ThreadPoolQueryReqDTO reqDTO) {
return Results.success(threadPoolService.queryThreadPoolPage(reqDTO));
}
@PostMapping("/thread/pool/query}")
public Result<ThreadPoolRespDTO> queryNameSpace(@RequestBody ThreadPoolQueryReqDTO reqDTO) {
return Results.success(threadPoolService.getThreadPool(reqDTO));
}
@PostMapping("/thread/pool/save_or_update")
public Result saveOrUpdateThreadPoolConfig(@RequestBody ThreadPoolSaveOrUpdateReqDTO reqDTO) {
threadPoolService.saveOrUpdateThreadPoolConfig(reqDTO);
return Results.success();
}
}

@ -0,0 +1,23 @@
package io.dynamic.threadpool.server.model.biz.threadpool;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.Data;
/**
* Thread Pool Query Req DTO.
*
* @author chen.ma
* @date 2021/6/30 21:22
*/
@Data
public class ThreadPoolQueryReqDTO extends Page {
private String tenantId;
private String itemId;
private String tpId;
private String tpName;
}

@ -0,0 +1,14 @@
package io.dynamic.threadpool.server.model.biz.threadpool;
import lombok.Data;
/**
* Thread Pool Resp DTO.
*
* @author chen.ma
* @date 2021/6/30 21:23
*/
@Data
public class ThreadPoolRespDTO {
}

@ -0,0 +1,71 @@
package io.dynamic.threadpool.server.model.biz.threadpool;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
/**
* Thread Pool Save Or Update Req DTO.
*
* @author chen.ma
* @date 2021/6/30 21:23
*/
@Data
public class ThreadPoolSaveOrUpdateReqDTO {
/**
* namespace
*/
private String namespace;
/**
* TpId
*/
private String tpId;
/**
* ItemId
*/
private String itemId;
/**
* 线
*/
private Integer coreSize;
/**
* 线
*/
private Integer maxSize;
/**
*
*/
private Integer queueType;
/**
*
*/
private Integer capacity;
/**
* 线
*/
private Integer keepAliveTime;
/**
*
*/
private Integer isAlarm;
/**
*
*/
private Integer capacityAlarm;
/**
*
*/
private Integer livenessAlarm;
}

@ -7,6 +7,7 @@ import io.dynamic.threadpool.server.event.LocalDataChangeEvent;
import io.dynamic.threadpool.server.model.CacheItem;
import io.dynamic.threadpool.server.model.ConfigAllInfo;
import io.dynamic.threadpool.server.notify.NotifyCenter;
import io.dynamic.threadpool.server.service.biz.ConfigService;
import org.springframework.util.StringUtils;
import java.util.Objects;

@ -1,4 +1,4 @@
package io.dynamic.threadpool.server.service;
package io.dynamic.threadpool.server.service.biz;
import io.dynamic.threadpool.server.model.ConfigAllInfo;

@ -1,4 +1,4 @@
package io.dynamic.threadpool.server.service;
package io.dynamic.threadpool.server.service.biz;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.dynamic.threadpool.server.model.biz.item.ItemQueryReqDTO;

@ -1,4 +1,4 @@
package io.dynamic.threadpool.server.service;
package io.dynamic.threadpool.server.service.biz;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.dynamic.threadpool.server.model.biz.tenant.TenantQueryReqDTO;

@ -0,0 +1,39 @@
package io.dynamic.threadpool.server.service.biz;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.dynamic.threadpool.server.model.biz.threadpool.ThreadPoolQueryReqDTO;
import io.dynamic.threadpool.server.model.biz.threadpool.ThreadPoolRespDTO;
import io.dynamic.threadpool.server.model.biz.threadpool.ThreadPoolSaveOrUpdateReqDTO;
/**
* Thread Pool Service.
*
* @author chen.ma
* @date 2021/6/30 21:26
*/
public interface ThreadPoolService {
/**
* 线
*
* @param reqDTO
* @return
*/
IPage<ThreadPoolRespDTO> queryThreadPoolPage(ThreadPoolQueryReqDTO reqDTO);
/**
* 线
*
* @param reqDTO
* @return
*/
ThreadPoolRespDTO getThreadPool(ThreadPoolQueryReqDTO reqDTO);
/**
* 线
*
* @param reqDTO
*/
void saveOrUpdateThreadPoolConfig(ThreadPoolSaveOrUpdateReqDTO reqDTO);
}

@ -1,12 +1,16 @@
package io.dynamic.threadpool.server.service.impl;
package io.dynamic.threadpool.server.service.biz.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import io.dynamic.threadpool.common.toolkit.ContentUtil;
import io.dynamic.threadpool.server.event.LocalDataChangeEvent;
import io.dynamic.threadpool.server.mapper.ConfigInfoMapper;
import io.dynamic.threadpool.server.model.ConfigAllInfo;
import io.dynamic.threadpool.server.service.ConfigService;
import io.dynamic.threadpool.server.service.ConfigChangePublisher;
import io.dynamic.threadpool.server.service.biz.ConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -28,9 +32,9 @@ public class ConfigServiceImpl implements ConfigService {
@Override
public ConfigAllInfo findConfigAllInfo(String tpId, String itemId, String namespace) {
LambdaQueryWrapper<ConfigAllInfo> wrapper = Wrappers.lambdaQuery(ConfigAllInfo.class)
.eq(ConfigAllInfo::getTpId, tpId)
.eq(ConfigAllInfo::getItemId, itemId)
.eq(ConfigAllInfo::getNamespace, namespace);
.eq(!StringUtils.isBlank(tpId), ConfigAllInfo::getTpId, tpId)
.eq(!StringUtils.isBlank(itemId), ConfigAllInfo::getItemId, itemId)
.eq(!StringUtils.isBlank(namespace), ConfigAllInfo::getNamespace, namespace);
ConfigAllInfo configAllInfo = configInfoMapper.selectOne(wrapper);
return configAllInfo;
}
@ -42,6 +46,9 @@ public class ConfigServiceImpl implements ConfigService {
} catch (Exception ex) {
updateConfigInfo(configAllInfo);
}
ConfigChangePublisher
.notifyConfigChange(new LocalDataChangeEvent(ContentUtil.getGroupKey(configAllInfo)));
}
private Integer addConfigInfo(ConfigAllInfo config) {

@ -1,4 +1,4 @@
package io.dynamic.threadpool.server.service.impl;
package io.dynamic.threadpool.server.service.biz.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -11,7 +11,7 @@ import io.dynamic.threadpool.server.model.biz.item.ItemQueryReqDTO;
import io.dynamic.threadpool.server.model.biz.item.ItemRespDTO;
import io.dynamic.threadpool.server.model.biz.item.ItemSaveReqDTO;
import io.dynamic.threadpool.server.model.biz.item.ItemUpdateReqDTO;
import io.dynamic.threadpool.server.service.ItemService;
import io.dynamic.threadpool.server.service.biz.ItemService;
import io.dynamic.threadpool.server.toolkit.BeanUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;

@ -1,4 +1,4 @@
package io.dynamic.threadpool.server.service.impl;
package io.dynamic.threadpool.server.service.biz.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -15,8 +15,8 @@ import io.dynamic.threadpool.server.model.biz.tenant.TenantQueryReqDTO;
import io.dynamic.threadpool.server.model.biz.tenant.TenantRespDTO;
import io.dynamic.threadpool.server.model.biz.tenant.TenantSaveReqDTO;
import io.dynamic.threadpool.server.model.biz.tenant.TenantUpdateReqDTO;
import io.dynamic.threadpool.server.service.ItemService;
import io.dynamic.threadpool.server.service.TenantService;
import io.dynamic.threadpool.server.service.biz.ItemService;
import io.dynamic.threadpool.server.service.biz.TenantService;
import io.dynamic.threadpool.server.toolkit.BeanUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;

@ -0,0 +1,54 @@
package io.dynamic.threadpool.server.service.biz.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import io.dynamic.threadpool.server.mapper.ConfigInfoMapper;
import io.dynamic.threadpool.server.model.ConfigAllInfo;
import io.dynamic.threadpool.server.model.biz.threadpool.ThreadPoolQueryReqDTO;
import io.dynamic.threadpool.server.model.biz.threadpool.ThreadPoolRespDTO;
import io.dynamic.threadpool.server.model.biz.threadpool.ThreadPoolSaveOrUpdateReqDTO;
import io.dynamic.threadpool.server.service.biz.ConfigService;
import io.dynamic.threadpool.server.service.biz.ThreadPoolService;
import io.dynamic.threadpool.server.toolkit.BeanUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* Thread Pool Service Impl.
*
* @author chen.ma
* @date 2021/6/30 21:26
*/
@Service
public class ThreadPoolServiceImpl implements ThreadPoolService {
@Autowired
private ConfigService configService;
@Resource
private ConfigInfoMapper configInfoMapper;
@Override
public IPage<ThreadPoolRespDTO> queryThreadPoolPage(ThreadPoolQueryReqDTO reqDTO) {
LambdaQueryWrapper<ConfigAllInfo> wrapper = Wrappers.lambdaQuery(ConfigAllInfo.class)
.eq(!StringUtils.isBlank(reqDTO.getTenantId()), ConfigAllInfo::getNamespace, reqDTO.getTenantId())
.eq(!StringUtils.isBlank(reqDTO.getItemId()), ConfigAllInfo::getItemId, reqDTO.getItemId())
.eq(!StringUtils.isBlank(reqDTO.getTpId()), ConfigAllInfo::getTpId, reqDTO.getTpId());
return configInfoMapper.selectPage(reqDTO, wrapper).convert(each -> BeanUtil.convert(each, ThreadPoolRespDTO.class));
}
@Override
public ThreadPoolRespDTO getThreadPool(ThreadPoolQueryReqDTO reqDTO) {
ConfigAllInfo configAllInfo = configService.findConfigAllInfo(reqDTO.getTpId(), reqDTO.getItemId(), reqDTO.getTenantId());
return BeanUtil.convert(configAllInfo, ThreadPoolRespDTO.class);
}
@Override
public void saveOrUpdateThreadPoolConfig(ThreadPoolSaveOrUpdateReqDTO reqDTO) {
configService.insertOrUpdate(BeanUtil.convert(reqDTO, ConfigAllInfo.class));
}
}
Loading…
Cancel
Save