From cdba2e4a76398bf317f9bf0aa2cbf7b4ff0ccb5b Mon Sep 17 00:00:00 2001 From: lensferno Date: Wed, 24 Aug 2022 16:31:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=AB=AF=E7=9A=84=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E8=AE=A1=E7=AE=97=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lensfrex/dscape/cache/UserBasicCache.java | 13 ++-- dscape-compute/pom.xml | 18 ++++++ .../java/net/lensfrex/dscape/ComputeMain.java | 13 ++++ .../dao/service/ComputeHistoryService.java | 2 +- .../dao/service/PatientDataService.java | 3 +- .../impl/ComputeHistoryServiceImpl.java | 6 +- .../service/impl/PatientDataServiceImpl.java | 7 +- dscape-entities/pom.xml | 9 +++ .../dscape/dao/entity/ComputeHistory.java | 7 +- .../dscape/dao/entity/PatientData.java | 6 ++ .../request/compute/ComputeRequestBody.java | 10 +++ .../compute/ComputeHistoryResponseData.java | 8 ++- .../data/compute/ComputeResponseData.java | 10 +++ .../enums/compute/ComputeStatusEnum.java | 24 +++++++ dscape-web/message-queue/pom.xml | 24 ------- dscape-web/pom.xml | 29 ++++----- .../java/net/lensfrex/dscape/ServerMain.java | 10 +++ ...tMqConfigure.java => RabbitConfigure.java} | 22 +++++-- .../dscape/mq/MessageQueueProducer.java | 5 +- .../compute/ComputeController.java | 21 ++++-- .../web/service/compute/ComputeService.java | 64 +++++++++++++++++++ .../web/service/data/HistoryService.java | 2 +- 22 files changed, 246 insertions(+), 67 deletions(-) create mode 100644 dscape-compute/src/main/java/net/lensfrex/dscape/ComputeMain.java create mode 100644 dscape-entities/src/main/java/net/lensfrex/dscape/dto/request/compute/ComputeRequestBody.java create mode 100644 dscape-entities/src/main/java/net/lensfrex/dscape/dto/response/data/compute/ComputeResponseData.java create mode 100644 dscape-entities/src/main/java/net/lensfrex/dscape/enums/compute/ComputeStatusEnum.java delete mode 100644 dscape-web/message-queue/pom.xml rename dscape-web/src/main/java/net/lensfrex/dscape/configure/{RabbitMqConfigure.java => RabbitConfigure.java} (54%) rename dscape-web/{message-queue => }/src/main/java/net/lensfrex/dscape/mq/MessageQueueProducer.java (65%) create mode 100644 dscape-web/src/main/java/net/lensfrex/dscape/web/service/compute/ComputeService.java diff --git a/dscape-cache/src/main/java/net/lensfrex/dscape/cache/UserBasicCache.java b/dscape-cache/src/main/java/net/lensfrex/dscape/cache/UserBasicCache.java index d30f578..dfedc40 100644 --- a/dscape-cache/src/main/java/net/lensfrex/dscape/cache/UserBasicCache.java +++ b/dscape-cache/src/main/java/net/lensfrex/dscape/cache/UserBasicCache.java @@ -10,6 +10,10 @@ * Class created by lensfrex. */ +/* + * Class created by lensfrex. + */ + package net.lensfrex.dscape.cache; import net.lensfrex.dscape.configure.GlobalConstant; @@ -27,12 +31,9 @@ public class UserBasicCache { private static final String USERNAME_UID_CACHE_KEY = GlobalConstant.USERNAME_UID_CACHE_KEY; - private final ObjectJsonSerializer objectJsonSerializer; - private final RedisTemplate redis; - public UserBasicCache(ObjectJsonSerializer objectJsonSerializer, RedisTemplate redis) { - this.objectJsonSerializer = objectJsonSerializer; + public UserBasicCache(RedisTemplate redis) { this.redis = redis; } @@ -40,7 +41,7 @@ public class UserBasicCache { try { String cacheData = (String) redis.opsForHash().get(USER_INFO_CACHE_KEY, uid); if (cacheData != null) { - return objectJsonSerializer.deserialize(cacheData, UserBasic.class); + return ObjectJsonSerializer.deserialize(cacheData, UserBasic.class); } else { log.debug("缓存中没有用户信息"); return null; @@ -69,7 +70,7 @@ public class UserBasicCache { } public void save(UserBasic userBasic) { - redis.opsForHash().put(USER_INFO_CACHE_KEY, userBasic.getUid(), objectJsonSerializer.serialize(userBasic)); + redis.opsForHash().put(USER_INFO_CACHE_KEY, userBasic.getUid(), ObjectJsonSerializer.serialize(userBasic)); redis.opsForHash().put(USERNAME_UID_CACHE_KEY, userBasic.getUserName(), userBasic.getUid()); } diff --git a/dscape-compute/pom.xml b/dscape-compute/pom.xml index 88c8f5a..0100dc1 100644 --- a/dscape-compute/pom.xml +++ b/dscape-compute/pom.xml @@ -24,5 +24,23 @@ dscape-dao 0.0.1-dev + + commons-io + commons-io + 2.11.0 + + + + + com.github.yannrichet + Rsession + 3.1.6 + + + commons-io + commons-io + + + \ No newline at end of file diff --git a/dscape-compute/src/main/java/net/lensfrex/dscape/ComputeMain.java b/dscape-compute/src/main/java/net/lensfrex/dscape/ComputeMain.java new file mode 100644 index 0000000..e047447 --- /dev/null +++ b/dscape-compute/src/main/java/net/lensfrex/dscape/ComputeMain.java @@ -0,0 +1,13 @@ +/* + * Class created by lensfrex. + */ + +package net.lensfrex.dscape; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +@MapperScan("net.lensfrex.dscape.dao.mapper") +public class ComputeMain { +} diff --git a/dscape-dao/src/main/java/net/lensfrex/dscape/dao/service/ComputeHistoryService.java b/dscape-dao/src/main/java/net/lensfrex/dscape/dao/service/ComputeHistoryService.java index ebe4cd8..1ea72f1 100644 --- a/dscape-dao/src/main/java/net/lensfrex/dscape/dao/service/ComputeHistoryService.java +++ b/dscape-dao/src/main/java/net/lensfrex/dscape/dao/service/ComputeHistoryService.java @@ -26,7 +26,7 @@ public interface ComputeHistoryService extends IService { List getHistory(String uid, int page, int limit); - List getHistoryIds(String uid, int page, int limit); + List getHistoryDataIds(String uid, int page, int limit); boolean remove(Long id); diff --git a/dscape-dao/src/main/java/net/lensfrex/dscape/dao/service/PatientDataService.java b/dscape-dao/src/main/java/net/lensfrex/dscape/dao/service/PatientDataService.java index b944c2c..13d5e2c 100644 --- a/dscape-dao/src/main/java/net/lensfrex/dscape/dao/service/PatientDataService.java +++ b/dscape-dao/src/main/java/net/lensfrex/dscape/dao/service/PatientDataService.java @@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import net.lensfrex.dscape.dao.entity.PatientData; import org.springframework.stereotype.Service; +import java.util.Collection; import java.util.List; /** @@ -21,7 +22,7 @@ import java.util.List; */ @Service public interface PatientDataService extends IService { - List getData(List ids); + List getData(Collection ids); PatientData getData(Long id); diff --git a/dscape-dao/src/main/java/net/lensfrex/dscape/dao/service/impl/ComputeHistoryServiceImpl.java b/dscape-dao/src/main/java/net/lensfrex/dscape/dao/service/impl/ComputeHistoryServiceImpl.java index 35eef8a..a5b41cf 100644 --- a/dscape-dao/src/main/java/net/lensfrex/dscape/dao/service/impl/ComputeHistoryServiceImpl.java +++ b/dscape-dao/src/main/java/net/lensfrex/dscape/dao/service/impl/ComputeHistoryServiceImpl.java @@ -45,7 +45,7 @@ public class ComputeHistoryServiceImpl extends ServiceImpl getHistoryIds(String uid, int page, int limit) { + public List getHistoryDataIds(String uid, int page, int limit) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda() .select(ComputeHistory::getRid) @@ -60,10 +60,10 @@ public class ComputeHistoryServiceImpl extends ServiceImpl wrapper = new QueryWrapper<>(); wrapper.lambda() - .eq(ComputeHistory::getRid, id); + .eq(ComputeHistory::getRid, rid); return this.remove(wrapper); } diff --git a/dscape-dao/src/main/java/net/lensfrex/dscape/dao/service/impl/PatientDataServiceImpl.java b/dscape-dao/src/main/java/net/lensfrex/dscape/dao/service/impl/PatientDataServiceImpl.java index f41b2a5..617ba8e 100644 --- a/dscape-dao/src/main/java/net/lensfrex/dscape/dao/service/impl/PatientDataServiceImpl.java +++ b/dscape-dao/src/main/java/net/lensfrex/dscape/dao/service/impl/PatientDataServiceImpl.java @@ -20,12 +20,13 @@ import net.lensfrex.dscape.dao.mapper.PatientDataMapper; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Collection; import java.util.List; @Service public class PatientDataServiceImpl extends ServiceImpl implements PatientDataService { @Override - public List getData(List ids) { + public List getData(Collection ids) { if (ids == null || ids.isEmpty()) { return new ArrayList<>(); } @@ -39,10 +40,10 @@ public class PatientDataServiceImpl extends ServiceImpl wrapper = new QueryWrapper<>(); wrapper.lambda() - .eq(PatientData::getId, id); + .eq(PatientData::getId, rid); return this.getOne(wrapper); } diff --git a/dscape-entities/pom.xml b/dscape-entities/pom.xml index 3514349..645e41a 100644 --- a/dscape-entities/pom.xml +++ b/dscape-entities/pom.xml @@ -28,6 +28,15 @@ 3.5.2 compile + + + com.fasterxml.jackson.core + jackson-databind + + + com.fasterxml.jackson.core + jackson-annotations + diff --git a/dscape-entities/src/main/java/net/lensfrex/dscape/dao/entity/ComputeHistory.java b/dscape-entities/src/main/java/net/lensfrex/dscape/dao/entity/ComputeHistory.java index bf7f5a5..e20b51c 100644 --- a/dscape-entities/src/main/java/net/lensfrex/dscape/dao/entity/ComputeHistory.java +++ b/dscape-entities/src/main/java/net/lensfrex/dscape/dao/entity/ComputeHistory.java @@ -1,7 +1,12 @@ +/* + * Class created by lensfrex. + */ + package net.lensfrex.dscape.dao.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; +import lombok.AllArgsConstructor; import lombok.Data; import java.io.Serializable; @@ -21,7 +26,7 @@ public class ComputeHistory implements Serializable { /** * id */ - private Integer id; + private Long id; /** * 计算数据记录对应的用户uid diff --git a/dscape-entities/src/main/java/net/lensfrex/dscape/dao/entity/PatientData.java b/dscape-entities/src/main/java/net/lensfrex/dscape/dao/entity/PatientData.java index 8db7d1d..bdb502a 100644 --- a/dscape-entities/src/main/java/net/lensfrex/dscape/dao/entity/PatientData.java +++ b/dscape-entities/src/main/java/net/lensfrex/dscape/dao/entity/PatientData.java @@ -6,11 +6,16 @@ * Class created by lensfrex. */ +/* + * Class created by lensfrex. + */ + package net.lensfrex.dscape.dao.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.io.Serializable; @@ -40,6 +45,7 @@ public class PatientData implements Serializable { /** * ctdna长度 */ + private Integer ctdnaLength; /** diff --git a/dscape-entities/src/main/java/net/lensfrex/dscape/dto/request/compute/ComputeRequestBody.java b/dscape-entities/src/main/java/net/lensfrex/dscape/dto/request/compute/ComputeRequestBody.java new file mode 100644 index 0000000..d555c28 --- /dev/null +++ b/dscape-entities/src/main/java/net/lensfrex/dscape/dto/request/compute/ComputeRequestBody.java @@ -0,0 +1,10 @@ +package net.lensfrex.dscape.dto.request.compute; + +import lombok.Data; + +@Data +public class ComputeRequestBody{ + private int pid; + private int cpg; + private int ctdna; +} \ No newline at end of file diff --git a/dscape-entities/src/main/java/net/lensfrex/dscape/dto/response/data/compute/ComputeHistoryResponseData.java b/dscape-entities/src/main/java/net/lensfrex/dscape/dto/response/data/compute/ComputeHistoryResponseData.java index c4e378d..e126865 100644 --- a/dscape-entities/src/main/java/net/lensfrex/dscape/dto/response/data/compute/ComputeHistoryResponseData.java +++ b/dscape-entities/src/main/java/net/lensfrex/dscape/dto/response/data/compute/ComputeHistoryResponseData.java @@ -10,6 +10,10 @@ * Class created by lensfrex. */ +/* + * Class created by lensfrex. + */ + package net.lensfrex.dscape.dto.response.data.compute; import com.fasterxml.jackson.annotation.JsonProperty; @@ -17,6 +21,8 @@ import lombok.Data; @Data public class ComputeHistoryResponseData { + private long id; + private long cpg; private long ctdna; @@ -26,8 +32,6 @@ public class ComputeHistoryResponseData { @JsonProperty("hcc_infer") private Boolean hccInfer; - private long id; - private long pid; private String time; diff --git a/dscape-entities/src/main/java/net/lensfrex/dscape/dto/response/data/compute/ComputeResponseData.java b/dscape-entities/src/main/java/net/lensfrex/dscape/dto/response/data/compute/ComputeResponseData.java new file mode 100644 index 0000000..9ef44f5 --- /dev/null +++ b/dscape-entities/src/main/java/net/lensfrex/dscape/dto/response/data/compute/ComputeResponseData.java @@ -0,0 +1,10 @@ +package net.lensfrex.dscape.dto.response.data.compute; + +import lombok.AllArgsConstructor; +import lombok.Data; + +@Data +@AllArgsConstructor +public class ComputeResponseData{ + private Long id; +} \ No newline at end of file diff --git a/dscape-entities/src/main/java/net/lensfrex/dscape/enums/compute/ComputeStatusEnum.java b/dscape-entities/src/main/java/net/lensfrex/dscape/enums/compute/ComputeStatusEnum.java new file mode 100644 index 0000000..e768cf6 --- /dev/null +++ b/dscape-entities/src/main/java/net/lensfrex/dscape/enums/compute/ComputeStatusEnum.java @@ -0,0 +1,24 @@ +/* + * Class created by lensfrex. + */ + +package net.lensfrex.dscape.enums.compute; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import lombok.Data; +import lombok.Getter; + +@Getter +public enum ComputeStatusEnum { + FINISHED(0, "完成"), + PROCESSING(1, "处理中"); + + @EnumValue + private final int code; + private final String name; + + ComputeStatusEnum(int code, String name) { + this.code = code; + this.name = name; + } +} diff --git a/dscape-web/message-queue/pom.xml b/dscape-web/message-queue/pom.xml deleted file mode 100644 index 7b8ec7d..0000000 --- a/dscape-web/message-queue/pom.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - dscape-web - net.lensfrex - 0.0.1-dev - - 4.0.0 - - message-queue - - - 11 - 11 - UTF-8 - - - \ No newline at end of file diff --git a/dscape-web/pom.xml b/dscape-web/pom.xml index a8dea92..3709142 100644 --- a/dscape-web/pom.xml +++ b/dscape-web/pom.xml @@ -9,10 +9,6 @@ 0.0.1-dev 4.0.0 - pom - - message-queue - dscape-web dscape后端主服务 @@ -43,11 +39,6 @@ dscape-utils 0.0.1-dev - - net.lensfrex - message-queue - 0.0.1-dev - org.springframework.boot @@ -74,12 +65,6 @@ test - - org.springframework.boot - spring-boot-starter-amqp - 2.7.3 - - com.fasterxml.jackson.core jackson-core @@ -116,6 +101,20 @@ org.apache.commons commons-lang3 + + + + com.github.yitter + yitter-idgenerator + 1.0.6 + + + + org.springframework.boot + spring-boot-starter-amqp + 2.7.3 + + diff --git a/dscape-web/src/main/java/net/lensfrex/dscape/ServerMain.java b/dscape-web/src/main/java/net/lensfrex/dscape/ServerMain.java index 1a9bea1..affb56c 100644 --- a/dscape-web/src/main/java/net/lensfrex/dscape/ServerMain.java +++ b/dscape-web/src/main/java/net/lensfrex/dscape/ServerMain.java @@ -4,16 +4,26 @@ package net.lensfrex.dscape; +import com.github.yitter.contract.IdGeneratorOptions; +import com.github.yitter.idgen.YitIdHelper; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; +import java.util.TimeZone; + @SpringBootApplication @MapperScan("net.lensfrex.dscape.dao.mapper") public class ServerMain extends SpringBootServletInitializer { public static void main(String[] args) { + TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai")); + + IdGeneratorOptions options = new IdGeneratorOptions((short) 12); + options.WorkerIdBitLength = 4; + YitIdHelper.setIdGenerator(options); + SpringApplication.run(ServerMain.class, args); } } diff --git a/dscape-web/src/main/java/net/lensfrex/dscape/configure/RabbitMqConfigure.java b/dscape-web/src/main/java/net/lensfrex/dscape/configure/RabbitConfigure.java similarity index 54% rename from dscape-web/src/main/java/net/lensfrex/dscape/configure/RabbitMqConfigure.java rename to dscape-web/src/main/java/net/lensfrex/dscape/configure/RabbitConfigure.java index cfbe0b7..376c459 100644 --- a/dscape-web/src/main/java/net/lensfrex/dscape/configure/RabbitMqConfigure.java +++ b/dscape-web/src/main/java/net/lensfrex/dscape/configure/RabbitConfigure.java @@ -2,6 +2,14 @@ * Class created by lensfrex. */ +/* + * Class created by lensfrex. + */ + +/* + * Class created by lensfrex. + */ + package net.lensfrex.dscape.configure; import org.springframework.amqp.core.Binding; @@ -12,16 +20,22 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration -public class RabbitMqConfigure { +public class RabbitConfigure { + + public static final String QUEUE_NAME = "net.lensfrex.dscape.mq.queue"; + + public static final String EXCHANGE_NAME = "net.lensfrex.dscape.mq.exchange"; + + public static final String ROUTING_KEY = "net.lensfrex.dscape.mq.routing"; @Bean public Queue queue() { - return new Queue("dscape-compute-queue", true, false, false); + return new Queue(QUEUE_NAME, true, false, false); } @Bean public DirectExchange directExchange() { - return new DirectExchange("dscape-compute-exchange", true, false); + return new DirectExchange(EXCHANGE_NAME, true, false); } @Bean @@ -29,6 +43,6 @@ public class RabbitMqConfigure { return BindingBuilder .bind(this.queue()) .to(this.directExchange()) - .with("dscape-compute"); + .with(ROUTING_KEY); } } diff --git a/dscape-web/message-queue/src/main/java/net/lensfrex/dscape/mq/MessageQueueProducer.java b/dscape-web/src/main/java/net/lensfrex/dscape/mq/MessageQueueProducer.java similarity index 65% rename from dscape-web/message-queue/src/main/java/net/lensfrex/dscape/mq/MessageQueueProducer.java rename to dscape-web/src/main/java/net/lensfrex/dscape/mq/MessageQueueProducer.java index 93eebd0..6e4d8b7 100644 --- a/dscape-web/message-queue/src/main/java/net/lensfrex/dscape/mq/MessageQueueProducer.java +++ b/dscape-web/src/main/java/net/lensfrex/dscape/mq/MessageQueueProducer.java @@ -4,9 +4,12 @@ package net.lensfrex.dscape.mq; +import lombok.extern.slf4j.Slf4j; +import net.lensfrex.dscape.configure.RabbitConfigure; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.stereotype.Component; +@Slf4j @Component public class MessageQueueProducer { private final RabbitTemplate rabbit; @@ -16,6 +19,6 @@ public class MessageQueueProducer { } public void sendObject(Object data) { - rabbit.convertAndSend(data); + rabbit.convertAndSend(RabbitConfigure.EXCHANGE_NAME, RabbitConfigure.ROUTING_KEY, data); } } diff --git a/dscape-web/src/main/java/net/lensfrex/dscape/web/controllers/compute/ComputeController.java b/dscape-web/src/main/java/net/lensfrex/dscape/web/controllers/compute/ComputeController.java index 950ce63..353a50b 100644 --- a/dscape-web/src/main/java/net/lensfrex/dscape/web/controllers/compute/ComputeController.java +++ b/dscape-web/src/main/java/net/lensfrex/dscape/web/controllers/compute/ComputeController.java @@ -16,24 +16,35 @@ package net.lensfrex.dscape.web.controllers.compute; -import cn.dev33.satoken.stp.StpUtil; +import cn.dev33.satoken.annotation.SaCheckLogin; +import net.lensfrex.dscape.dto.request.compute.ComputeRequestBody; +import net.lensfrex.dscape.dto.response.data.compute.ComputeResponseData; import net.lensfrex.dscape.dto.response.general.Response; import net.lensfrex.dscape.dto.response.general.ResponseCode; +import net.lensfrex.dscape.web.service.compute.ComputeService; import org.springframework.web.bind.annotation.*; +@SaCheckLogin @RestController @RequestMapping("/compute") public class ComputeController { + + private final ComputeService computeService; + + public ComputeController(ComputeService computeService) { + this.computeService = computeService; + } + @GetMapping(value = "/status/{tid}", produces = "application/json") public Response status(@PathVariable String tid, @RequestHeader String token) { - StpUtil.hasPermission("jsejdjjd"); return Response.error(ResponseCode.API_NOT_IMPLEMENT); } @PostMapping(value = "/add", produces = "application/json") - public Response addComputeTask(@RequestBody String body, - @RequestHeader String token) { - return Response.error(ResponseCode.API_NOT_IMPLEMENT); + public Response addComputeTask(@RequestBody ComputeRequestBody request) { + long rid = computeService.addTask(request); + + return Response.success(new ComputeResponseData(rid)); } } diff --git a/dscape-web/src/main/java/net/lensfrex/dscape/web/service/compute/ComputeService.java b/dscape-web/src/main/java/net/lensfrex/dscape/web/service/compute/ComputeService.java new file mode 100644 index 0000000..625ca51 --- /dev/null +++ b/dscape-web/src/main/java/net/lensfrex/dscape/web/service/compute/ComputeService.java @@ -0,0 +1,64 @@ +/* + * Class created by lensfrex. + */ + +package net.lensfrex.dscape.web.service.compute; + +import cn.dev33.satoken.stp.StpUtil; +import com.github.yitter.idgen.YitIdHelper; +import net.lensfrex.dscape.configure.RabbitConfigure; +import net.lensfrex.dscape.dao.entity.ComputeHistory; +import net.lensfrex.dscape.dao.entity.PatientData; +import net.lensfrex.dscape.dao.service.ComputeHistoryService; +import net.lensfrex.dscape.dao.service.PatientDataService; +import net.lensfrex.dscape.dto.request.compute.ComputeRequestBody; +import net.lensfrex.dscape.enums.compute.ComputeStatusEnum; +import net.lensfrex.dscape.mq.MessageQueueProducer; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +public class ComputeService { + private final PatientDataService patientDataService; + + private final ComputeHistoryService computeHistoryService; + + private final MessageQueueProducer messageQueueProducer; + + public ComputeService(PatientDataService patientDataService, + ComputeHistoryService computeHistoryService, + MessageQueueProducer messageQueueProducer) { + + this.patientDataService = patientDataService; + this.computeHistoryService = computeHistoryService; + this.messageQueueProducer = messageQueueProducer; + } + + @Transactional + public long addTask(ComputeRequestBody request) { + long rid = YitIdHelper.nextId(); + String uid = StpUtil.getLoginIdAsString(); + + ComputeHistory computeHistory = new ComputeHistory(); + computeHistory.setUid(uid); + computeHistory.setRid(rid); + computeHistory.setStatus(ComputeStatusEnum.PROCESSING.getCode()); + + PatientData patientData = new PatientData(); + patientData.setId(rid); + patientData.setCpg(request.getCpg()); + patientData.setPid(request.getPid()); + patientData.setCtdnaLength(request.getCtdna()); + + computeHistoryService.save(computeHistory); + patientDataService.save(patientData); + + this.addMessageQueue(patientData); + + return rid; + } + + private void addMessageQueue(PatientData patientData) { + messageQueueProducer.sendObject(patientData); + } +} diff --git a/dscape-web/src/main/java/net/lensfrex/dscape/web/service/data/HistoryService.java b/dscape-web/src/main/java/net/lensfrex/dscape/web/service/data/HistoryService.java index 24fde0c..ab4d174 100644 --- a/dscape-web/src/main/java/net/lensfrex/dscape/web/service/data/HistoryService.java +++ b/dscape-web/src/main/java/net/lensfrex/dscape/web/service/data/HistoryService.java @@ -45,7 +45,7 @@ public class HistoryService { } public List getUserHistoryId(String uid, int page, int limit) { - return computeHistoryService.getHistoryIds(uid, page, limit); + return computeHistoryService.getHistoryDataIds(uid, page, limit); } public List getUserHistoryData(String uid, int page, int limit) {