From 105ea64c133ca6848ef94debe96254b213698dc5 Mon Sep 17 00:00:00 2001 From: lensferno Date: Mon, 22 Aug 2022 16:52:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=86=E5=8F=B2=E8=AE=B0=E5=BD=95=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E4=B8=8E=E5=88=A0=E9=99=A4=E5=8A=9F=E8=83=BD=EF=BC=9B?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=94=A8=E6=88=B7=E4=BF=AE=E6=94=B9=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E5=90=8E=E7=BC=93=E5=AD=98=E5=B9=B6=E6=9C=AA=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dscape/dao/entity/ComputeHistory.java | 2 +- .../dscape/dao/entity/PatientData.java | 2 +- .../dao/mapper/ComputeHistoryMapper.java | 16 ++++ .../dscape/dao/mapper/PatientDataMapper.java | 15 ++++ .../dao/service/ComputeHistoryService.java | 25 ++++++ .../dao/service/PatientDataService.java | 21 +++++ .../dscape/dao/service/UserBasicService.java | 3 + .../impl/ComputeHistoryServiceImpl.java | 70 +++++++++++++++ .../service/impl/PatientDataServiceImpl.java | 34 ++++++++ .../data/admin/CreateUserResponse.java | 36 -------- .../UserRegisterApplicationResponseData.java | 62 ------------- .../compute/ComputeHistoryReponseData.java | 87 ------------------- .../compute/ComputeHistoryResponseData.java | 26 ++++++ .../compute/ComputeStatusQueryResponse.java | 36 -------- .../data/compute/ComputeTaskResponseData.java | 26 ------ .../response/data/user/LoginResponseData.java | 66 -------------- .../{ => data}/user/RegisterResponseBody.java | 6 +- .../data/user/RegisterResponseData.java | 26 ------ .../history/HistoryController.java | 64 ++++++++++++-- .../web/controllers/user/UserController.java | 4 +- .../user/admin/AdminController.java | 3 +- .../web/service/data/HistoryService.java | 51 +++++++++++ .../dscape/web/service/user/AdminService.java | 6 +- .../dscape/web/service/user/UserService.java | 9 +- 24 files changed, 331 insertions(+), 365 deletions(-) create mode 100644 src/main/java/net/lensfrex/dscape/dao/mapper/ComputeHistoryMapper.java create mode 100644 src/main/java/net/lensfrex/dscape/dao/mapper/PatientDataMapper.java create mode 100644 src/main/java/net/lensfrex/dscape/dao/service/ComputeHistoryService.java create mode 100644 src/main/java/net/lensfrex/dscape/dao/service/PatientDataService.java create mode 100644 src/main/java/net/lensfrex/dscape/dao/service/impl/ComputeHistoryServiceImpl.java create mode 100644 src/main/java/net/lensfrex/dscape/dao/service/impl/PatientDataServiceImpl.java delete mode 100644 src/main/java/net/lensfrex/dscape/dto/response/data/admin/CreateUserResponse.java delete mode 100644 src/main/java/net/lensfrex/dscape/dto/response/data/admin/UserRegisterApplicationResponseData.java delete mode 100644 src/main/java/net/lensfrex/dscape/dto/response/data/compute/ComputeHistoryReponseData.java create mode 100644 src/main/java/net/lensfrex/dscape/dto/response/data/compute/ComputeHistoryResponseData.java delete mode 100644 src/main/java/net/lensfrex/dscape/dto/response/data/compute/ComputeStatusQueryResponse.java delete mode 100644 src/main/java/net/lensfrex/dscape/dto/response/data/compute/ComputeTaskResponseData.java delete mode 100644 src/main/java/net/lensfrex/dscape/dto/response/data/user/LoginResponseData.java rename src/main/java/net/lensfrex/dscape/dto/response/{ => data}/user/RegisterResponseBody.java (60%) delete mode 100644 src/main/java/net/lensfrex/dscape/dto/response/data/user/RegisterResponseData.java create mode 100644 src/main/java/net/lensfrex/dscape/web/service/data/HistoryService.java diff --git a/src/main/java/net/lensfrex/dscape/dao/entity/ComputeHistory.java b/src/main/java/net/lensfrex/dscape/dao/entity/ComputeHistory.java index c01f423..f685db3 100644 --- a/src/main/java/net/lensfrex/dscape/dao/entity/ComputeHistory.java +++ b/src/main/java/net/lensfrex/dscape/dao/entity/ComputeHistory.java @@ -29,7 +29,7 @@ public class ComputeHistory implements Serializable { /** * 计算数据记录对应的患者数据id */ - private Integer rid; + private Long rid; public ComputeHistory() {} } \ No newline at end of file diff --git a/src/main/java/net/lensfrex/dscape/dao/entity/PatientData.java b/src/main/java/net/lensfrex/dscape/dao/entity/PatientData.java index 7c94b95..da6f870 100644 --- a/src/main/java/net/lensfrex/dscape/dao/entity/PatientData.java +++ b/src/main/java/net/lensfrex/dscape/dao/entity/PatientData.java @@ -22,7 +22,7 @@ public class PatientData implements Serializable { * 数据id */ @TableId(type = IdType.AUTO) - private Integer id; + private Long id; /** * 病人id diff --git a/src/main/java/net/lensfrex/dscape/dao/mapper/ComputeHistoryMapper.java b/src/main/java/net/lensfrex/dscape/dao/mapper/ComputeHistoryMapper.java new file mode 100644 index 0000000..3fa585e --- /dev/null +++ b/src/main/java/net/lensfrex/dscape/dao/mapper/ComputeHistoryMapper.java @@ -0,0 +1,16 @@ +package net.lensfrex.dscape.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import net.lensfrex.dscape.dao.entity.ComputeHistory; + + +/** + * @author lensfrex + * @description compute_historyMapper + * @date 2022-08-22 + */ +@Mapper +public interface ComputeHistoryMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/src/main/java/net/lensfrex/dscape/dao/mapper/PatientDataMapper.java b/src/main/java/net/lensfrex/dscape/dao/mapper/PatientDataMapper.java new file mode 100644 index 0000000..3af0928 --- /dev/null +++ b/src/main/java/net/lensfrex/dscape/dao/mapper/PatientDataMapper.java @@ -0,0 +1,15 @@ +package net.lensfrex.dscape.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import net.lensfrex.dscape.dao.entity.PatientData; + +/** + * @author lensfrex + * @description patient_dataMapper + * @date 2022-08-22 + */ +@Mapper +public interface PatientDataMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/src/main/java/net/lensfrex/dscape/dao/service/ComputeHistoryService.java b/src/main/java/net/lensfrex/dscape/dao/service/ComputeHistoryService.java new file mode 100644 index 0000000..faa4665 --- /dev/null +++ b/src/main/java/net/lensfrex/dscape/dao/service/ComputeHistoryService.java @@ -0,0 +1,25 @@ +package net.lensfrex.dscape.dao.service; +import com.baomidou.mybatisplus.core.toolkit.support.SFunction; +import net.lensfrex.dscape.dao.entity.ComputeHistory; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + * @description compute_history服务层 + * @author lensfrex + * @date 2022-08-22 + */ +@Service +public interface ComputeHistoryService extends IService { + long count(SFunction indexColum, Object index); + + List getHistory(String uid, int page, int limit); + + List getHistoryIds(String uid, int page, int limit); + + boolean remove(Long id); + + String getHistoryUser(Long rid); +} \ No newline at end of file diff --git a/src/main/java/net/lensfrex/dscape/dao/service/PatientDataService.java b/src/main/java/net/lensfrex/dscape/dao/service/PatientDataService.java new file mode 100644 index 0000000..40f656b --- /dev/null +++ b/src/main/java/net/lensfrex/dscape/dao/service/PatientDataService.java @@ -0,0 +1,21 @@ +package net.lensfrex.dscape.dao.service; + +import net.lensfrex.dscape.dao.entity.PatientData; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + * @author lensfrex + * @description patient_data服务层 + * @date 2022-08-22 + */ +@Service +public interface PatientDataService extends IService { + List getData(List ids); + + PatientData getData(Long id); + + +} \ No newline at end of file diff --git a/src/main/java/net/lensfrex/dscape/dao/service/UserBasicService.java b/src/main/java/net/lensfrex/dscape/dao/service/UserBasicService.java index c2d4a64..f36e17f 100644 --- a/src/main/java/net/lensfrex/dscape/dao/service/UserBasicService.java +++ b/src/main/java/net/lensfrex/dscape/dao/service/UserBasicService.java @@ -5,6 +5,9 @@ import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import net.lensfrex.dscape.dao.entity.UserBasic; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.function.Function; + /** * @description user_basic服务层 * @author lensfrex diff --git a/src/main/java/net/lensfrex/dscape/dao/service/impl/ComputeHistoryServiceImpl.java b/src/main/java/net/lensfrex/dscape/dao/service/impl/ComputeHistoryServiceImpl.java new file mode 100644 index 0000000..e707cac --- /dev/null +++ b/src/main/java/net/lensfrex/dscape/dao/service/impl/ComputeHistoryServiceImpl.java @@ -0,0 +1,70 @@ +/* + * Class created by lensfrex. + */ + +package net.lensfrex.dscape.dao.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.support.SFunction; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import net.lensfrex.dscape.dao.entity.ComputeHistory; +import net.lensfrex.dscape.dao.mapper.ComputeHistoryMapper; +import net.lensfrex.dscape.dao.service.ComputeHistoryService; + +import java.util.ArrayList; +import java.util.List; + +public class ComputeHistoryServiceImpl extends ServiceImpl implements ComputeHistoryService { + @Override + public long count(SFunction indexColum, Object index) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.lambda() + .eq(indexColum, index); + + return this.count(wrapper); + } + + @Override + public List getHistory(String uid, int page, int limit) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.lambda() + .eq(ComputeHistory::getUid, uid); + + return this.page(new Page<>(page, limit), wrapper).getRecords(); + } + + @Override + public List getHistoryIds(String uid, int page, int limit) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.lambda() + .select(ComputeHistory::getRid) + .eq(ComputeHistory::getUid, uid); + + List results = this.page(new Page<>(page, limit), wrapper).getRecords(); + + List ids = new ArrayList<>(results.size()); + results.forEach(result -> ids.add(result.getRid())); + + return ids; + } + + @Override + public boolean remove(Long id) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.lambda() + .eq(ComputeHistory::getRid, id); + + return this.remove(wrapper); + } + + @Override + public String getHistoryUser(Long rid) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.lambda() + .select(ComputeHistory::getUid) + .eq(ComputeHistory::getRid, rid); + + return this.getOne(wrapper).getUid(); + } +} diff --git a/src/main/java/net/lensfrex/dscape/dao/service/impl/PatientDataServiceImpl.java b/src/main/java/net/lensfrex/dscape/dao/service/impl/PatientDataServiceImpl.java new file mode 100644 index 0000000..ce727c5 --- /dev/null +++ b/src/main/java/net/lensfrex/dscape/dao/service/impl/PatientDataServiceImpl.java @@ -0,0 +1,34 @@ +/* + * Class created by lensfrex. + */ + +package net.lensfrex.dscape.dao.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import net.lensfrex.dscape.dao.entity.PatientData; +import net.lensfrex.dscape.dao.mapper.PatientDataMapper; +import net.lensfrex.dscape.dao.service.PatientDataService; + +import java.util.List; + +public class PatientDataServiceImpl extends ServiceImpl implements PatientDataService { + @Override + public List getData(List ids) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.lambda() + .in(PatientData::getId, ids) + .orderByDesc(PatientData::getId); + + return this.list(wrapper); + } + + @Override + public PatientData getData(Long id) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.lambda() + .eq(PatientData::getId, id); + + return this.getOne(wrapper); + } +} \ No newline at end of file diff --git a/src/main/java/net/lensfrex/dscape/dto/response/data/admin/CreateUserResponse.java b/src/main/java/net/lensfrex/dscape/dto/response/data/admin/CreateUserResponse.java deleted file mode 100644 index b599ca5..0000000 --- a/src/main/java/net/lensfrex/dscape/dto/response/data/admin/CreateUserResponse.java +++ /dev/null @@ -1,36 +0,0 @@ - -/* - * Class created by lensfrex. - */ - -package net.lensfrex.dscape.dto.response.data.admin; - -import javax.annotation.Generated; -import com.google.gson.annotations.Expose; - -@Generated("net.hexar.json2pojo") -@SuppressWarnings("unused") -public class CreateUserResponse { - - @Expose - private long role; - @Expose - private String uid; - - public long getRole() { - return role; - } - - public void setRole(long role) { - this.role = role; - } - - public String getUid() { - return uid; - } - - public void setUid(String uid) { - this.uid = uid; - } - -} diff --git a/src/main/java/net/lensfrex/dscape/dto/response/data/admin/UserRegisterApplicationResponseData.java b/src/main/java/net/lensfrex/dscape/dto/response/data/admin/UserRegisterApplicationResponseData.java deleted file mode 100644 index 8590217..0000000 --- a/src/main/java/net/lensfrex/dscape/dto/response/data/admin/UserRegisterApplicationResponseData.java +++ /dev/null @@ -1,62 +0,0 @@ - -package net.lensfrex.dscape.dto.response.data.admin; - -import javax.annotation.Generated; -import com.google.gson.annotations.Expose; - -@Generated("net.hexar.json2pojo") -@SuppressWarnings("unused") -public class UserRegisterApplicationResponseData { - - @Expose - private long id; - @Expose - private String ip; - @Expose - private String name; - @Expose - private String time; - @Expose - private String uid; - - public long getId() { - return id; - } - - public void setId(long id) { - this.id = id; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getTime() { - return time; - } - - public void setTime(String time) { - this.time = time; - } - - public String getUid() { - return uid; - } - - public void setUid(String uid) { - this.uid = uid; - } - -} diff --git a/src/main/java/net/lensfrex/dscape/dto/response/data/compute/ComputeHistoryReponseData.java b/src/main/java/net/lensfrex/dscape/dto/response/data/compute/ComputeHistoryReponseData.java deleted file mode 100644 index b5f81fc..0000000 --- a/src/main/java/net/lensfrex/dscape/dto/response/data/compute/ComputeHistoryReponseData.java +++ /dev/null @@ -1,87 +0,0 @@ - -/* - * Class created by lensfrex. - */ - -package net.lensfrex.dscape.dto.response.data.compute; - -import javax.annotation.Generated; -import com.google.gson.annotations.Expose; -import com.google.gson.annotations.SerializedName; - -@Generated("net.hexar.json2pojo") -@SuppressWarnings("unused") -public class ComputeHistoryReponseData { - - @Expose - private long cpg; - @Expose - private long ctdna; - @Expose - private Boolean hcc; - @SerializedName("hcc_infer") - private Boolean hccInfer; - @Expose - private long id; - @Expose - private long pid; - @Expose - private String time; - - public long getCpg() { - return cpg; - } - - public void setCpg(long cpg) { - this.cpg = cpg; - } - - public long getCtdna() { - return ctdna; - } - - public void setCtdna(long ctdna) { - this.ctdna = ctdna; - } - - public Boolean getHcc() { - return hcc; - } - - public void setHcc(Boolean hcc) { - this.hcc = hcc; - } - - public Boolean getHccInfer() { - return hccInfer; - } - - public void setHccInfer(Boolean hccInfer) { - this.hccInfer = hccInfer; - } - - public long getId() { - return id; - } - - public void setId(long id) { - this.id = id; - } - - public long getPid() { - return pid; - } - - public void setPid(long pid) { - this.pid = pid; - } - - public String getTime() { - return time; - } - - public void setTime(String time) { - this.time = time; - } - -} diff --git a/src/main/java/net/lensfrex/dscape/dto/response/data/compute/ComputeHistoryResponseData.java b/src/main/java/net/lensfrex/dscape/dto/response/data/compute/ComputeHistoryResponseData.java new file mode 100644 index 0000000..f04db03 --- /dev/null +++ b/src/main/java/net/lensfrex/dscape/dto/response/data/compute/ComputeHistoryResponseData.java @@ -0,0 +1,26 @@ +/* + * Class created by lensfrex. + */ + +package net.lensfrex.dscape.dto.response.data.compute; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +@Data +public class ComputeHistoryResponseData { + private long cpg; + + private long ctdna; + + private Boolean hcc; + + @JsonProperty("hcc_infer") + private Boolean hccInfer; + + private long id; + + private long pid; + + private String time; +} diff --git a/src/main/java/net/lensfrex/dscape/dto/response/data/compute/ComputeStatusQueryResponse.java b/src/main/java/net/lensfrex/dscape/dto/response/data/compute/ComputeStatusQueryResponse.java deleted file mode 100644 index d8feb24..0000000 --- a/src/main/java/net/lensfrex/dscape/dto/response/data/compute/ComputeStatusQueryResponse.java +++ /dev/null @@ -1,36 +0,0 @@ - -/* - * Class created by lensfrex. - */ - -package net.lensfrex.dscape.dto.response.data.compute; - -import javax.annotation.Generated; -import com.google.gson.annotations.Expose; - -@Generated("net.hexar.json2pojo") -@SuppressWarnings("unused") -public class ComputeStatusQueryResponse { - - @Expose - private String id; - @Expose - private int status; - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public int getStatus() { - return status; - } - - public void setStatus(int status) { - this.status = status; - } - -} diff --git a/src/main/java/net/lensfrex/dscape/dto/response/data/compute/ComputeTaskResponseData.java b/src/main/java/net/lensfrex/dscape/dto/response/data/compute/ComputeTaskResponseData.java deleted file mode 100644 index de11d7d..0000000 --- a/src/main/java/net/lensfrex/dscape/dto/response/data/compute/ComputeTaskResponseData.java +++ /dev/null @@ -1,26 +0,0 @@ - -/* - * Class created by lensfrex. - */ - -package net.lensfrex.dscape.dto.response.data.compute; - -import javax.annotation.Generated; -import com.google.gson.annotations.Expose; - -@Generated("net.hexar.json2pojo") -@SuppressWarnings("unused") -public class ComputeTaskResponseData { - - @Expose - private String id; - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - -} diff --git a/src/main/java/net/lensfrex/dscape/dto/response/data/user/LoginResponseData.java b/src/main/java/net/lensfrex/dscape/dto/response/data/user/LoginResponseData.java deleted file mode 100644 index a872d62..0000000 --- a/src/main/java/net/lensfrex/dscape/dto/response/data/user/LoginResponseData.java +++ /dev/null @@ -1,66 +0,0 @@ - -/* - * Class created by lensfrex. - */ - -package net.lensfrex.dscape.dto.response.data.user; - -import javax.annotation.Generated; -import com.google.gson.annotations.SerializedName; - -@Generated("net.hexar.json2pojo") -@SuppressWarnings("unused") -public class LoginResponseData { - - @SerializedName("access_token") - private String mAccessToken; - @SerializedName("expired") - private long mExpired; - @SerializedName("refresh_token") - private String mRefreshToken; - @SerializedName("role") - private long mRole; - @SerializedName("uid") - private String mUid; - - public String getAccessToken() { - return mAccessToken; - } - - public void setAccessToken(String accessToken) { - mAccessToken = accessToken; - } - - public long getExpired() { - return mExpired; - } - - public void setExpired(long expired) { - mExpired = expired; - } - - public String getRefreshToken() { - return mRefreshToken; - } - - public void setRefreshToken(String refreshToken) { - mRefreshToken = refreshToken; - } - - public long getRole() { - return mRole; - } - - public void setRole(long role) { - mRole = role; - } - - public String getUid() { - return mUid; - } - - public void setUid(String uid) { - mUid = uid; - } - -} diff --git a/src/main/java/net/lensfrex/dscape/dto/response/user/RegisterResponseBody.java b/src/main/java/net/lensfrex/dscape/dto/response/data/user/RegisterResponseBody.java similarity index 60% rename from src/main/java/net/lensfrex/dscape/dto/response/user/RegisterResponseBody.java rename to src/main/java/net/lensfrex/dscape/dto/response/data/user/RegisterResponseBody.java index a926011..0400ac6 100644 --- a/src/main/java/net/lensfrex/dscape/dto/response/user/RegisterResponseBody.java +++ b/src/main/java/net/lensfrex/dscape/dto/response/data/user/RegisterResponseBody.java @@ -1,4 +1,8 @@ -package net.lensfrex.dscape.dto.response.user; +/* + * Class created by lensfrex. + */ + +package net.lensfrex.dscape.dto.response.data.user; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; diff --git a/src/main/java/net/lensfrex/dscape/dto/response/data/user/RegisterResponseData.java b/src/main/java/net/lensfrex/dscape/dto/response/data/user/RegisterResponseData.java deleted file mode 100644 index 0b85ada..0000000 --- a/src/main/java/net/lensfrex/dscape/dto/response/data/user/RegisterResponseData.java +++ /dev/null @@ -1,26 +0,0 @@ - -/* - * Class created by lensfrex. - */ - -package net.lensfrex.dscape.dto.response.data.user; - -import javax.annotation.Generated; -import com.google.gson.annotations.Expose; - -@Generated("net.hexar.json2pojo") -@SuppressWarnings("unused") -public class RegisterResponseData { - - @Expose - private String uid; - - public String getUid() { - return uid; - } - - public void setUid(String uid) { - this.uid = uid; - } - -} diff --git a/src/main/java/net/lensfrex/dscape/web/controllers/history/HistoryController.java b/src/main/java/net/lensfrex/dscape/web/controllers/history/HistoryController.java index ecf1824..319726e 100644 --- a/src/main/java/net/lensfrex/dscape/web/controllers/history/HistoryController.java +++ b/src/main/java/net/lensfrex/dscape/web/controllers/history/HistoryController.java @@ -4,24 +4,72 @@ package net.lensfrex.dscape.web.controllers.history; +import cn.dev33.satoken.annotation.SaCheckLogin; +import cn.dev33.satoken.stp.StpUtil; +import net.lensfrex.dscape.dao.entity.PatientData; +import net.lensfrex.dscape.dto.response.data.compute.ComputeHistoryResponseData; import net.lensfrex.dscape.dto.response.general.Response; import net.lensfrex.dscape.dto.response.general.ResponseCode; +import net.lensfrex.dscape.exception.GlobalException; +import net.lensfrex.dscape.web.service.data.HistoryService; import org.springframework.web.bind.annotation.*; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; + +@SaCheckLogin @RestController @RequestMapping("/history") public class HistoryController { + private final HistoryService historyService; + + public HistoryController(HistoryService historyService) { + this.historyService = historyService; + } + + @GetMapping(value = "/list", produces = "application/json") + public Response> list(@RequestParam(required = false, defaultValue = "1") int page, + @RequestParam(required = false, defaultValue = "10") int limit) { + + String uid = StpUtil.getLoginIdAsString(); + + List results = historyService.getUserHistoryData(uid, page, limit); + + List responseDataList = new ArrayList<>(results.size()); + results.forEach(result -> { + ComputeHistoryResponseData response = new ComputeHistoryResponseData(); + response.setId(result.getId()); + response.setPid(result.getPid()); + response.setCpg(result.getCpg()); + response.setHcc(result.getIsHcc() == 1); + response.setHccInfer(result.getIsInferHcc() == 1); + response.setCtdna(result.getCtdnaLength()); + response.setTime(result.getCreateTime().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME)); - @GetMapping(value = "/list/{uid}", produces = "application/json") - public Response list(@PathVariable String uid, - @RequestParam int offset, @RequestParam int limit, @RequestParam int page, - @RequestHeader String token) { - return Response.error(ResponseCode.API_NOT_IMPLEMENT); + responseDataList.add(response); + }); + + return Response.success(responseDataList); } @RequestMapping(value = "/delete/{rid}", method = {RequestMethod.DELETE, RequestMethod.GET}, produces = "application/json") - public Response delete(@PathVariable int rid, - @RequestHeader String token) { - return Response.error(ResponseCode.API_NOT_IMPLEMENT); + public Response delete(@PathVariable long rid) { + String historyUser = historyService.getHistoryUser(rid); + + if (!StpUtil.getLoginIdAsString().equals(historyUser)) { + throw new GlobalException(ResponseCode.PERMISSION_DENIED); + } + + historyService.deleteHistoryData(rid); + + return Response.success(); + } + + @RequestMapping(value = "/count", method = {RequestMethod.DELETE, RequestMethod.GET}, produces = "application/json") + public Response count() { + long result = historyService.getTotalCount(StpUtil.getLoginIdAsString()); + + return Response.success(result); } } diff --git a/src/main/java/net/lensfrex/dscape/web/controllers/user/UserController.java b/src/main/java/net/lensfrex/dscape/web/controllers/user/UserController.java index 07a13f4..fbc40a6 100644 --- a/src/main/java/net/lensfrex/dscape/web/controllers/user/UserController.java +++ b/src/main/java/net/lensfrex/dscape/web/controllers/user/UserController.java @@ -13,16 +13,14 @@ import net.lensfrex.dscape.dto.request.user.PasswordModifyRequestBody; import net.lensfrex.dscape.dto.request.user.RegisterRequestBody; import net.lensfrex.dscape.dto.response.general.Response; import net.lensfrex.dscape.dto.response.general.ResponseCode; -import net.lensfrex.dscape.dto.response.user.RegisterResponseBody; +import net.lensfrex.dscape.dto.response.data.user.RegisterResponseBody; import net.lensfrex.dscape.exception.GlobalException; import net.lensfrex.dscape.utils.NetworkUtil; import net.lensfrex.dscape.utils.validate.TextCheckUtil; import net.lensfrex.dscape.web.service.user.UserService; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; -import java.net.http.HttpClient; @JsonSerialize(using = ToStringSerializer.class) @RestController diff --git a/src/main/java/net/lensfrex/dscape/web/controllers/user/admin/AdminController.java b/src/main/java/net/lensfrex/dscape/web/controllers/user/admin/AdminController.java index e27b991..e83ddc8 100644 --- a/src/main/java/net/lensfrex/dscape/web/controllers/user/admin/AdminController.java +++ b/src/main/java/net/lensfrex/dscape/web/controllers/user/admin/AdminController.java @@ -4,13 +4,12 @@ package net.lensfrex.dscape.web.controllers.user.admin; -import cn.dev33.satoken.annotation.SaCheckRole; import cn.dev33.satoken.stp.StpUtil; import lombok.extern.slf4j.Slf4j; import net.lensfrex.dscape.dto.request.user.UserAddRequest; import net.lensfrex.dscape.dto.response.general.Response; import net.lensfrex.dscape.dto.response.general.ResponseCode; -import net.lensfrex.dscape.dto.response.user.RegisterResponseBody; +import net.lensfrex.dscape.dto.response.data.user.RegisterResponseBody; import net.lensfrex.dscape.enums.user.UserRoleEnum; import net.lensfrex.dscape.exception.GlobalException; import net.lensfrex.dscape.utils.NetworkUtil; diff --git a/src/main/java/net/lensfrex/dscape/web/service/data/HistoryService.java b/src/main/java/net/lensfrex/dscape/web/service/data/HistoryService.java new file mode 100644 index 0000000..69d2f64 --- /dev/null +++ b/src/main/java/net/lensfrex/dscape/web/service/data/HistoryService.java @@ -0,0 +1,51 @@ +/* + * Class created by lensfrex. + */ + +package net.lensfrex.dscape.web.service.data; + +import lombok.extern.slf4j.Slf4j; +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 org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Slf4j +@Service +public class HistoryService { + + private final ComputeHistoryService computeHistoryService; + + private final PatientDataService patientDataService; + + public HistoryService(ComputeHistoryService computeHistoryService, + PatientDataService patientDataService) { + this.computeHistoryService = computeHistoryService; + + this.patientDataService = patientDataService; + } + + public long getTotalCount(String uid) { + return computeHistoryService.count(ComputeHistory::getUid, uid); + } + + public List getUserHistoryId(String uid, int page, int limit) { + return computeHistoryService.getHistoryIds(uid, page, limit); + } + + public List getUserHistoryData(String uid, int page, int limit) { + return patientDataService.getData(getUserHistoryId(uid, page, limit)); + } + + public String getHistoryUser(Long rid) { + return computeHistoryService.getHistoryUser(rid); + } + + public void deleteHistoryData(Long rid) { + computeHistoryService.remove(rid); + } +} diff --git a/src/main/java/net/lensfrex/dscape/web/service/user/AdminService.java b/src/main/java/net/lensfrex/dscape/web/service/user/AdminService.java index 970e75a..83fe300 100644 --- a/src/main/java/net/lensfrex/dscape/web/service/user/AdminService.java +++ b/src/main/java/net/lensfrex/dscape/web/service/user/AdminService.java @@ -9,7 +9,6 @@ package net.lensfrex.dscape.web.service.user; import cn.dev33.satoken.stp.StpUtil; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import net.lensfrex.dscape.cache.InviteCodeService; import net.lensfrex.dscape.cache.UserBasicCache; @@ -19,11 +18,10 @@ import net.lensfrex.dscape.dao.service.BlackListService; import net.lensfrex.dscape.dao.service.UserBasicService; import net.lensfrex.dscape.dto.request.user.UserAddRequest; import net.lensfrex.dscape.dto.response.general.ResponseCode; -import net.lensfrex.dscape.dto.response.user.RegisterResponseBody; +import net.lensfrex.dscape.dto.response.data.user.RegisterResponseBody; import net.lensfrex.dscape.enums.user.BlackListTypeEnum; import net.lensfrex.dscape.enums.user.UserRoleEnum; import net.lensfrex.dscape.exception.GlobalException; -import net.lensfrex.dscape.web.service.user.UserService; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; @@ -99,7 +97,7 @@ public class AdminService { String uid = userService.addUserToDatabase(requestBody.getUserName(), requestBody.getPassword(), StpUtil.getLoginIdAsString(), UserRoleEnum.getTypeEnumByCode(requestBody.getRole()), registerIp); - RegisterResponseBody registerResponseBody = new RegisterResponseBody(); + RegisterResponseBody registerResponseBody = new RegisterResponseBody (); registerResponseBody.setUid(uid); return registerResponseBody; diff --git a/src/main/java/net/lensfrex/dscape/web/service/user/UserService.java b/src/main/java/net/lensfrex/dscape/web/service/user/UserService.java index 51847ec..4edca2f 100644 --- a/src/main/java/net/lensfrex/dscape/web/service/user/UserService.java +++ b/src/main/java/net/lensfrex/dscape/web/service/user/UserService.java @@ -6,13 +6,9 @@ package net.lensfrex.dscape.web.service.user; import cn.dev33.satoken.stp.SaTokenInfo; import cn.dev33.satoken.stp.StpUtil; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; -import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import lombok.extern.slf4j.Slf4j; import net.lensfrex.dscape.cache.InviteCodeService; import net.lensfrex.dscape.cache.UserBasicCache; -import net.lensfrex.dscape.configure.GlobalConstant; import net.lensfrex.dscape.dao.entity.UserBasic; import net.lensfrex.dscape.dao.entity.UserRole; import net.lensfrex.dscape.dao.service.UserBasicService; @@ -20,13 +16,12 @@ import net.lensfrex.dscape.dao.service.UserRoleService; import net.lensfrex.dscape.dto.request.UserLoginRequestBody; import net.lensfrex.dscape.dto.request.user.RegisterRequestBody; import net.lensfrex.dscape.dto.response.general.ResponseCode; -import net.lensfrex.dscape.dto.response.user.RegisterResponseBody; +import net.lensfrex.dscape.dto.response.data.user.RegisterResponseBody; import net.lensfrex.dscape.enums.user.UserRoleEnum; import net.lensfrex.dscape.enums.user.UserStatusEnum; import net.lensfrex.dscape.exception.GlobalException; import org.mindrot.jbcrypt.BCrypt; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -197,5 +192,7 @@ public class UserService { userBasicService.modify(UserBasic::getUid, uid, UserBasic::getPassword, newHashedPassword); + + userBasicCache.clear(uid); } } \ No newline at end of file