Browse Source

积分功能开发

dev-credits
chenzhihang 10 months ago
parent
commit
15af3929ac
10 changed files with 48 additions and 31 deletions
  1. +3
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/ResourceOccupy.java
  2. +1
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ResourceOccupyDao.java
  3. +3
    -3
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ResourceOccupyService.java
  4. +1
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ServiceService.java
  5. +1
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentServiceImpl.java
  6. +1
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/RayServiceImpl.java
  7. +7
    -6
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ResourceOccupyServiceImpl.java
  8. +22
    -14
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java
  9. +1
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/utils/K8sClientUtil.java
  10. +8
    -3
      ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ResourceOccupy.xml

+ 3
- 0
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/ResourceOccupy.java View File

@@ -49,6 +49,9 @@ public class ResourceOccupy {
@ApiModelProperty("流水线id")
private Long workflowId;

@ApiModelProperty("任务名称")
private String taskName;

@ApiModelProperty("流水线节点id")
private String nodeId;
}

+ 1
- 1
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ResourceOccupyDao.java View File

@@ -14,7 +14,7 @@ public interface ResourceOccupyDao {

int edit(@Param("resourceOccupy") ResourceOccupy resourceOccupy);

List<ResourceOccupy> getResourceOccupyByTask(@Param("taskType") String taskType, @Param("taskId") Long taskId, @Param("nodeId") String nodeId);
List<ResourceOccupy> getResourceOccupyByTask(@Param("taskType") String taskType, @Param("taskInsId") Long taskInsId, @Param("nodeId") String nodeId);

int deduceCredit(@Param("credit") Double credit, @Param("userId") Long userId);



+ 3
- 3
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ResourceOccupyService.java View File

@@ -11,11 +11,11 @@ public interface ResourceOccupyService {

Boolean haveResource(Integer computingResourceId) throws Exception;

void startDeduce(Integer computingResourceId, String taskType, Long taskId, Long taskInsId, Long workflowId, String nodeId);
void startDeduce(Integer computingResourceId, String taskType, Long taskId, Long taskInsId, Long workflowId, String taskName, String nodeId);

void endDeduce(String taskType, Long taskId, String nodeId, Date nodeStartTime);
void endDeduce(String taskType, Long taskInsId, String nodeId, Date nodeStartTime);

void deducing(String taskType, Long taskId, String nodeId, Date nodeStartTime);
void deducing(String taskType, Long taskInsId, String nodeId, Date nodeStartTime);

Page<ResourceOccupy> queryByPage(PageRequest pageRequest);



+ 1
- 1
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ServiceService.java View File

@@ -38,7 +38,7 @@ public interface ServiceService {

String stopServiceVersion(Long id);

String updateServiceVersion(ServiceVersion serviceVersion);
String updateServiceVersion(ServiceVersion serviceVersion) throws Exception;

HashMap<String, String> getServiceVersionLog(Long id, String startTime, String endTime);



+ 1
- 1
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentServiceImpl.java View File

@@ -313,7 +313,7 @@ public class ExperimentServiceImpl implements ExperimentService {
// 记录开始扣积分
for (Map.Entry<String, Map<String, Object>> entry : resourceInfo.entrySet()) {
Map<String, Object> node = entry.getValue();
resourceOccupyService.startDeduce((Integer) node.get("computing_resource_id"), Constant.TaskType_Workflow, Long.valueOf(id), Long.valueOf(insert.getId()), experiment.getWorkflowId(), entry.getKey());
resourceOccupyService.startDeduce((Integer) node.get("computing_resource_id"), Constant.TaskType_Workflow, Long.valueOf(id), Long.valueOf(insert.getId()), experiment.getWorkflowId(), experiment.getName(), entry.getKey());
}

} catch (Exception e) {


+ 1
- 1
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/RayServiceImpl.java View File

@@ -206,7 +206,7 @@ public class RayServiceImpl implements RayService {
rayInsDao.insert(rayIns);
rayInsService.updateRayStatus(id);
// 记录开始扣除积分
resourceOccupyService.startDeduce(ray.getComputingResourceId(), Constant.TaskType_Ray, id, rayIns.getId(), null, null);
resourceOccupyService.startDeduce(ray.getComputingResourceId(), Constant.TaskType_Ray, id, rayIns.getId(), null, ray.getName(), null);
} catch (Exception e) {
throw new RuntimeException(e);
}


+ 7
- 6
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ResourceOccupyServiceImpl.java View File

@@ -53,7 +53,7 @@ public class ResourceOccupyServiceImpl implements ResourceOccupyService {

@Override
@Transactional
public void startDeduce(Integer computingResourceId, String taskType, Long taskId, Long taskInsId, Long workflowId, String nodeId) {
public void startDeduce(Integer computingResourceId, String taskType, Long taskId, Long taskInsId, Long workflowId, String taskName, String nodeId) {
ResourceOccupy resourceOccupy = new ResourceOccupy();
ComputingResource computingResource = computingResourceDao.queryById(computingResourceId);
resourceOccupy.setComputingResourceId(computingResourceId);
@@ -65,6 +65,7 @@ public class ResourceOccupyServiceImpl implements ResourceOccupyService {
resourceOccupy.setTaskId(taskId);
resourceOccupy.setTaskInsId(taskInsId);
resourceOccupy.setWorkflowId(workflowId);
resourceOccupy.setTaskName(taskName);
resourceOccupy.setNodeId(nodeId);
resourceOccupyDao.save(resourceOccupy);

@@ -77,10 +78,10 @@ public class ResourceOccupyServiceImpl implements ResourceOccupyService {

@Override
@Transactional
public void endDeduce(String taskType, Long taskId, String nodeId, Date nodeStartTime) {
List<ResourceOccupy> resourceOccupys = resourceOccupyDao.getResourceOccupyByTask(taskType, taskId, nodeId);
public void endDeduce(String taskType, Long taskInsId, String nodeId, Date nodeStartTime) {
List<ResourceOccupy> resourceOccupys = resourceOccupyDao.getResourceOccupyByTask(taskType, taskInsId, nodeId);
for (ResourceOccupy resourceOccupy : resourceOccupys) {
deducing(taskType, taskId, nodeId, nodeStartTime);
deducing(taskType, taskInsId, nodeId, nodeStartTime);
resourceOccupy.setState(Constant.State_invalid);
resourceOccupyDao.edit(resourceOccupy);

@@ -95,8 +96,8 @@ public class ResourceOccupyServiceImpl implements ResourceOccupyService {

@Override
@Transactional
public void deducing(String taskType, Long taskId, String nodeId, Date nodeStartTime) {
List<ResourceOccupy> resourceOccupys = resourceOccupyDao.getResourceOccupyByTask(taskType, taskId, nodeId);
public void deducing(String taskType, Long taskInsId, String nodeId, Date nodeStartTime) {
List<ResourceOccupy> resourceOccupys = resourceOccupyDao.getResourceOccupyByTask(taskType, taskInsId, nodeId);
for (ResourceOccupy resourceOccupy : resourceOccupys) {
Date now = new Date();
long timeDifferenceMillis;


+ 22
- 14
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java View File

@@ -149,13 +149,14 @@ public class ServiceServiceImpl implements ServiceService {
public String editServiceVersion(ServiceVersionVo serviceVersionVo) throws Exception {
ServiceVersion serviceVersion = getServiceVersion(serviceVersionVo);
ServiceVersion oldServiceVersion = serviceDao.getServiceVersionById(serviceVersionVo.getId());
if (!oldServiceVersion.getReplicas().equals(serviceVersionVo.getReplicas()) || !oldServiceVersion.getResource().equals(serviceVersionVo.getResource())
if (!oldServiceVersion.getReplicas().equals(serviceVersionVo.getReplicas()) || !oldServiceVersion.getComputingResourceId().equals(serviceVersionVo.getComputingResourceId())
|| serviceVersionVo.getRerun()) {
updateServiceVersion(serviceVersion);
}
LoginUser loginUser = SecurityUtils.getLoginUser();
serviceVersion.setUpdateBy(loginUser.getUsername());
serviceDao.updateServiceVersion(serviceVersion);

return "修改成功";
}

@@ -274,7 +275,7 @@ public class ServiceServiceImpl implements ServiceService {
serviceDao.updateServiceVersion(serviceVersion);

// 记录开始扣积分
resourceOccupyService.startDeduce(serviceVersion.getComputingResourceId(), Constant.TaskType_Service, serviceVersion.getServiceId(), serviceVersion.getId(), null, null);
resourceOccupyService.startDeduce(serviceVersion.getComputingResourceId(), Constant.TaskType_Service, serviceVersion.getServiceId(), serviceVersion.getId(), null, service.getServiceName(), null);
return "启动成功";
} else {
throw new RuntimeException("启动失败");
@@ -304,19 +305,26 @@ public class ServiceServiceImpl implements ServiceService {
}

@Override
public String updateServiceVersion(ServiceVersion serviceVersion) {
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("deployment_name", serviceVersion.getDeploymentName());
HashMap<String, Object> updateMap = new HashMap<>();
updateMap.put("replicas", serviceVersion.getReplicas());
updateMap.put("resource", serviceVersion.getResource());
paramMap.put("update_model", new JSONObject(updateMap));
String req = HttpUtils.sendPost(argoUrl + modelService + "/update", JSON.toJSONString(paramMap));
if (StringUtils.isNotEmpty(req)) {
return "修改成功";
} else {
throw new RuntimeException("更新失败");
public String updateServiceVersion(ServiceVersion serviceVersion) throws Exception {
// 判断是否有资源
if (resourceOccupyService.haveResource(serviceVersion.getComputingResourceId())) {
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("deployment_name", serviceVersion.getDeploymentName());
HashMap<String, Object> updateMap = new HashMap<>();
updateMap.put("replicas", serviceVersion.getReplicas());
updateMap.put("resource", serviceVersion.getResource());
paramMap.put("update_model", new JSONObject(updateMap));
String req = HttpUtils.sendPost(argoUrl + modelService + "/update", JSON.toJSONString(paramMap));
if (StringUtils.isNotEmpty(req)) {
com.ruoyi.platform.domain.Service service = serviceDao.getServiceById(serviceVersion.getServiceId());
// 记录开始扣积分
resourceOccupyService.startDeduce(serviceVersion.getComputingResourceId(), Constant.TaskType_Service, serviceVersion.getServiceId(), serviceVersion.getId(), null, service.getServiceName(), null);
return "修改成功";
} else {
throw new RuntimeException("更新失败");
}
}
throw new RuntimeException("更新失败");
}

@Override


+ 1
- 1
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/utils/K8sClientUtil.java View File

@@ -517,7 +517,7 @@ public class K8sClientUtil {
String nodeName = getNodeName(podName, namespace);

// 记录开始扣除积分
resourceOccupyService.startDeduce(devEnvironment.getComputingResourceId(), Constant.TaskType_Dev, Long.valueOf(devEnvironment.getId()), null, null, null);
resourceOccupyService.startDeduce(devEnvironment.getComputingResourceId(), Constant.TaskType_Dev, Long.valueOf(devEnvironment.getId()), null, null, devEnvironment.getName(), null);
}
} catch (ApiException e) {
throw new RuntimeException("创建pod异常:" + e.getResponseBody());


+ 8
- 3
ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ResourceOccupy.xml View File

@@ -3,11 +3,11 @@
<mapper namespace="com.ruoyi.platform.mapper.ResourceOccupyDao">
<insert id="save">
insert into resource_occupy (user_id, computing_resource_id, credit_per_hour, description, task_type, task_id,
task_ins_id, workflow_id,
task_ins_id, workflow_id, task_name,
node_id)
values (#{resourceOccupy.userId}, #{resourceOccupy.computingResourceId}, #{resourceOccupy.creditPerHour},
#{resourceOccupy.description}, #{resourceOccupy.taskType}, #{resourceOccupy.taskId},
#{resourceOccupy.taskInsId}, #{resourceOccupy.workflowId},
#{resourceOccupy.taskInsId}, #{resourceOccupy.workflowId}, #{resourceOccupy.taskName},
#{resourceOccupy.nodeId})
</insert>

@@ -55,7 +55,7 @@
select *
from resource_occupy
where task_type = #{taskType}
and task_id = #{taskId}
and task_ins_id = #{taskInsId}
<if test="nodeId != null and nodeId !=''">
and node_id = #{nodeId}
</if>
@@ -75,6 +75,11 @@
credit_per_hour,
TRUNCATE(deduce_credit, 1) as deduce_credit,
start_time,
task_type,
task_id,
task_ins_id,
workflow_id,
task_name,
state
from resource_occupy
where user_id = #{userId}


Loading…
Cancel
Save