Explorar o código

版本信息和token令牌生成

wangfeng %!s(int64=4) %!d(string=hai) anos
pai
achega
c573e58b3a
Modificáronse 34 ficheiros con 2058 adicións e 0 borrados
  1. 36 0
      cdssman-service/src/main/java/com/diagbot/dto/TokenHospitaDTO.java
  2. 60 0
      cdssman-service/src/main/java/com/diagbot/dto/VersionDetailDTO.java
  3. 60 0
      cdssman-service/src/main/java/com/diagbot/dto/VersionDetailSpecDTO.java
  4. 52 0
      cdssman-service/src/main/java/com/diagbot/dto/VersionWrapperDTO.java
  5. 186 0
      cdssman-service/src/main/java/com/diagbot/entity/TokenHospital.java
  6. 183 0
      cdssman-service/src/main/java/com/diagbot/entity/VersionDetail.java
  7. 155 0
      cdssman-service/src/main/java/com/diagbot/entity/VersionInfo.java
  8. 85 0
      cdssman-service/src/main/java/com/diagbot/facade/TokenHospitalFacade.java
  9. 282 0
      cdssman-service/src/main/java/com/diagbot/facade/VersionDetailFacade.java
  10. 268 0
      cdssman-service/src/main/java/com/diagbot/facade/VersionInfoFacade.java
  11. 20 0
      cdssman-service/src/main/java/com/diagbot/mapper/TokenHospitalMapper.java
  12. 16 0
      cdssman-service/src/main/java/com/diagbot/mapper/VersionDetailMapper.java
  13. 20 0
      cdssman-service/src/main/java/com/diagbot/mapper/VersionInfoMapper.java
  14. 19 0
      cdssman-service/src/main/java/com/diagbot/service/TokenHospitalService.java
  15. 16 0
      cdssman-service/src/main/java/com/diagbot/service/VersionDetailService.java
  16. 19 0
      cdssman-service/src/main/java/com/diagbot/service/VersionInfoService.java
  17. 27 0
      cdssman-service/src/main/java/com/diagbot/service/impl/TokenHospitalServiceImpl.java
  18. 20 0
      cdssman-service/src/main/java/com/diagbot/service/impl/VersionDetailServiceImpl.java
  19. 27 0
      cdssman-service/src/main/java/com/diagbot/service/impl/VersionInfoServiceImpl.java
  20. 25 0
      cdssman-service/src/main/java/com/diagbot/vo/TokenHospitalInfoVO.java
  21. 16 0
      cdssman-service/src/main/java/com/diagbot/vo/TokenHospitalVO.java
  22. 18 0
      cdssman-service/src/main/java/com/diagbot/vo/VersionDetailIdVO.java
  23. 47 0
      cdssman-service/src/main/java/com/diagbot/vo/VersionDetailVO.java
  24. 42 0
      cdssman-service/src/main/java/com/diagbot/vo/VersionInfoAllVO.java
  25. 24 0
      cdssman-service/src/main/java/com/diagbot/vo/VersionInfoAndDetailIdVO.java
  26. 18 0
      cdssman-service/src/main/java/com/diagbot/vo/VersionInfoIdVO.java
  27. 47 0
      cdssman-service/src/main/java/com/diagbot/vo/VersionInfoVO.java
  28. 21 0
      cdssman-service/src/main/java/com/diagbot/vo/VersionWrapperNameVO.java
  29. 58 0
      cdssman-service/src/main/java/com/diagbot/web/TokenHospitalController.java
  30. 20 0
      cdssman-service/src/main/java/com/diagbot/web/VersionDetailController.java
  31. 75 0
      cdssman-service/src/main/java/com/diagbot/web/VersionInfoController.java
  32. 40 0
      cdssman-service/src/main/resources/mapper/TokenHospitalMapper.xml
  33. 21 0
      cdssman-service/src/main/resources/mapper/VersionDetailMapper.xml
  34. 35 0
      cdssman-service/src/main/resources/mapper/VersionInfoMapper.xml

+ 36 - 0
cdssman-service/src/main/java/com/diagbot/dto/TokenHospitaDTO.java

@@ -0,0 +1,36 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-06 14:57
+ */
+@Setter
+@Getter
+public class TokenHospitaDTO {
+
+    private Long id;
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 医院ID
+     */
+    private String hospitalName;
+
+    private String appidToken;
+
+    private Date startTime;
+
+    private Date endTime;
+
+    private Integer validDays;
+
+}

+ 60 - 0
cdssman-service/src/main/java/com/diagbot/dto/VersionDetailDTO.java

@@ -0,0 +1,60 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-06 9:50
+ */
+@Getter
+@Setter
+public class VersionDetailDTO {
+
+    private Long id;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    //private String creator;
+
+    private String modifierid;
+    /**
+     * 版本主表id
+     */
+    private Long versionId;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 描述
+     */
+    private String description;
+
+    /**
+     * 排序号
+     */
+    private String orderNo;
+
+    /**
+     * 1:启动,0:不启用
+     */
+    private String status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}
+

+ 60 - 0
cdssman-service/src/main/java/com/diagbot/dto/VersionDetailSpecDTO.java

@@ -0,0 +1,60 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-06 9:51
+ */
+@Getter
+@Setter
+public class VersionDetailSpecDTO {
+
+    private Long id;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    // private String creator;
+
+
+    /**
+     * 版本主表id
+     */
+    private Long versionId;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 描述
+     */
+    private String description;
+
+    /**
+     * 排序号
+     */
+    private String orderNo;
+
+    /**
+     * 1:启动,0:不启用
+     */
+    //  private String status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}
+

+ 52 - 0
cdssman-service/src/main/java/com/diagbot/dto/VersionWrapperDTO.java

@@ -0,0 +1,52 @@
+package com.diagbot.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-06 9:38
+ */
+@Getter
+@Setter
+public class VersionWrapperDTO {
+
+    private Long id;
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    //private String creator;
+
+    private String modifierid;
+
+
+    /**
+     * 名称
+     */
+    private String name;
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date refreshTime;
+
+    /**
+     * 1:启动,0:不启用
+     */
+    private String status;
+
+    private List<VersionDetailDTO> detail;
+    /**
+     * 备注
+     */
+    private String remark;
+
+}
+

+ 186 - 0
cdssman-service/src/main/java/com/diagbot/entity/TokenHospital.java

@@ -0,0 +1,186 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-06
+ */
+@TableName("sys_token_hospital")
+public class TokenHospital implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * token
+     */
+    private String appidToken;
+
+    /**
+     * 开始时间
+     */
+    private Date startTime;
+
+    /**
+     * 结束时间
+     */
+    private Date endTime;
+
+    /**
+     * 有限天数
+     */
+    private Integer validDays;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+    public String getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(String isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+    public Date getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(Date gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public Date getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(Date gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+    public Long getHospitalId() {
+        return hospitalId;
+    }
+
+    public void setHospitalId(Long hospitalId) {
+        this.hospitalId = hospitalId;
+    }
+    public String getAppidToken() {
+        return appidToken;
+    }
+
+    public void setAppidToken(String appidToken) {
+        this.appidToken = appidToken;
+    }
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+    public Integer getValidDays() {
+        return validDays;
+    }
+
+    public void setValidDays(Integer validDays) {
+        this.validDays = validDays;
+    }
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return "TokenHospital{" +
+            "id=" + id +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+            ", hospitalId=" + hospitalId +
+            ", appidToken=" + appidToken +
+            ", startTime=" + startTime +
+            ", endTime=" + endTime +
+            ", validDays=" + validDays +
+            ", remark=" + remark +
+        "}";
+    }
+}

+ 183 - 0
cdssman-service/src/main/java/com/diagbot/entity/VersionDetail.java

@@ -0,0 +1,183 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 版本详情(关于)
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-06
+ */
+@TableName("sys_version_detail")
+public class VersionDetail implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 版本主表id
+     */
+    private Long versionId;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 描述
+     */
+    private String description;
+
+    /**
+     * 排序号
+     */
+    private String orderNo;
+
+    /**
+     * 1:启动,0:不启用
+     */
+    private String status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+    public String getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(String isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+    public Date getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(Date gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public Date getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(Date gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+    public Long getVersionId() {
+        return versionId;
+    }
+
+    public void setVersionId(Long versionId) {
+        this.versionId = versionId;
+    }
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+    public String getOrderNo() {
+        return orderNo;
+    }
+
+    public void setOrderNo(String orderNo) {
+        this.orderNo = orderNo;
+    }
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return "VersionDetail{" +
+            "id=" + id +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+            ", versionId=" + versionId +
+            ", title=" + title +
+            ", description=" + description +
+            ", orderNo=" + orderNo +
+            ", status=" + status +
+            ", remark=" + remark +
+        "}";
+    }
+}

+ 155 - 0
cdssman-service/src/main/java/com/diagbot/entity/VersionInfo.java

@@ -0,0 +1,155 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.time.LocalDate;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 版本信息
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-06
+ */
+@TableName("sys_version_info")
+public class VersionInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    private Date refreshTime;
+
+    /**
+     * 1:启动,0:不启用
+     */
+    private String status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+    public String getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(String isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+    public Date getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(Date gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public Date getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(Date gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+    public Date getRefreshTime() {
+        return refreshTime;
+    }
+
+    public void setRefreshTime(Date refreshTime) {
+        this.refreshTime = refreshTime;
+    }
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return "VersionInfo{" +
+            "id=" + id +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+            ", name=" + name +
+            ", refreshTime=" + refreshTime +
+            ", status=" + status +
+            ", remark=" + remark +
+        "}";
+    }
+}

+ 85 - 0
cdssman-service/src/main/java/com/diagbot/facade/TokenHospitalFacade.java

@@ -0,0 +1,85 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.TokenHospitaDTO;
+import com.diagbot.entity.TokenHospital;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.TokenHospitalService;
+import com.diagbot.service.impl.TokenHospitalServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.RSATokenIdUtil;
+import com.diagbot.util.UserUtils;
+import com.diagbot.vo.TokenHospitalInfoVO;
+import com.diagbot.vo.TokenHospitalVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-06 14:55
+ */
+@Component
+public class TokenHospitalFacade extends TokenHospitalServiceImpl {
+
+    @Autowired
+    TokenHospitalService tokenHospitalService;
+
+    /**
+     * @param tokenHospitalVO
+     * @return
+     */
+
+    public IPage<TokenHospitaDTO> getTokenHospitals(TokenHospitalVO tokenHospitalVO) {
+        IPage<TokenHospitaDTO> data = getTokenHospitalPages(tokenHospitalVO);
+        return data;
+    }
+
+    public Boolean addTokenHospitals(TokenHospitalInfoVO tokenHospitalInfoVO) {
+        //校验改医院是否存在token信息
+        UpdateWrapper<TokenHospital> tokenHospitalQueryWrapper = new UpdateWrapper<>();
+        tokenHospitalQueryWrapper
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_id", tokenHospitalInfoVO.getHospitalId());
+        remove(tokenHospitalQueryWrapper);
+        TokenHospital tokenHospitalData = getOne(tokenHospitalQueryWrapper, false);
+        Date now = DateUtil.now();
+        Date startTime = tokenHospitalInfoVO.getStartTime();
+        Date endTime = tokenHospitalInfoVO.getEndTime();
+        if (endTime.getTime() < startTime.getTime()) {
+            throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
+        }
+        int validDays = (int) ((endTime.getTime() - startTime.getTime()) / (1000 * 3600 * 24));
+        //生成Token规则, 请勿调换顺序!
+        StringBuffer sb = new StringBuffer();
+        sb.append("Token")
+                .append(DateUtil.formatDateTime(startTime))// 开始时间
+                .append(DateUtil.formatDateTime(endTime)) //结束时间
+                .append(tokenHospitalInfoVO.getHospitalId().toString()); // 医院id
+        TokenHospital tokenHospital = new TokenHospital();
+        //加密Token
+        try {
+            String appidToken = RSATokenIdUtil.encrypt(sb.toString());
+            if (appidToken.isEmpty()) {
+                throw new CommonException(CommonErrorCode.FAIL, "生成token失败!");
+            }
+            BeanUtil.copyProperties(tokenHospitalInfoVO, tokenHospital);
+            tokenHospital.setValidDays(validDays);
+            tokenHospital.setAppidToken(appidToken);
+            tokenHospital.setGmtCreate(now);
+            tokenHospital.setGmtModified(now);
+            tokenHospital.setModifier(UserUtils.getCurrentPrincipleID());
+            tokenHospital.setCreator(UserUtils.getCurrentPrincipleID());
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return save(tokenHospital);
+    }
+
+}

+ 282 - 0
cdssman-service/src/main/java/com/diagbot/facade/VersionDetailFacade.java

@@ -0,0 +1,282 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.diagbot.client.UserServiceClient;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.VersionDetailDTO;
+import com.diagbot.dto.VersionDetailSpecDTO;
+import com.diagbot.entity.VersionDetail;
+import com.diagbot.entity.VersionInfo;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.StatusEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.impl.VersionDetailServiceImpl;
+import com.diagbot.service.impl.VersionInfoServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.util.UserUtils;
+import com.diagbot.vo.VersionDetailIdVO;
+import com.diagbot.vo.VersionDetailVO;
+import com.diagbot.vo.VersionInfoAndDetailIdVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-06 9:36
+ */
+@Component
+public class VersionDetailFacade extends VersionDetailServiceImpl {
+
+    @Autowired
+    VersionDetailServiceImpl versionDetailServiceImpl;
+    @Autowired
+    UserServiceClient userServiceClient;
+    @Autowired
+    VersionInfoServiceImpl versionInfoServiceImpl;
+
+
+    /**
+     * 根据版本id查询版本详情
+     *
+     * @param id
+     * @return
+     */
+    public List<VersionDetailDTO> getById(Long id) {
+        QueryWrapper<VersionDetail> versionDetailQuery = new QueryWrapper<>();
+
+        versionDetailQuery
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("STATUS", StatusEnum.Enable.getKey())
+                .eq("version_id", id).orderByAsc("order_no");
+
+        VersionDetail versionDetail = new VersionDetail();
+        versionDetail.setVersionId(id);
+        List<VersionDetail> datas = list(versionDetailQuery);
+        // System.out.println("List<VersionDetail>==="+datas.toString());
+        List<VersionDetailDTO> dataNew = new ArrayList<VersionDetailDTO>();
+        // 过滤字段
+        for (VersionDetail versionData : datas) {
+            VersionDetailDTO versionDTO = new VersionDetailDTO();
+            versionDTO.setId(versionData.getId());
+            //versionDTO.setCreator(versionData.getCreator());
+            versionDTO.setDescription(versionData.getDescription());
+            versionDTO.setGmtCreate(versionData.getGmtCreate());
+            versionDTO.setOrderNo(versionData.getOrderNo());
+            versionDTO.setRemark(versionData.getRemark());
+            versionDTO.setStatus(versionData.getStatus());
+            versionDTO.setTitle(versionData.getTitle());
+            versionDTO.setVersionId(versionData.getVersionId());
+            dataNew.add(versionDTO);
+        }
+        return dataNew;
+
+    }
+
+    /**
+     * 根据版本id查询版本详情
+     *
+     * @param id
+     * @return
+     */
+    public List<VersionDetailSpecDTO> getById2(Long id) {
+        QueryWrapper<VersionDetail> versionDetailQuery = new QueryWrapper<>();
+        Map<String, Object> mapAll = new HashMap<>();
+        mapAll.put("is_deleted", IsDeleteEnum.N.getKey());
+        mapAll.put("version_id", id);
+        mapAll.put("STATUS", StatusEnum.Enable.getKey());
+        versionDetailQuery.allEq(mapAll).orderByAsc("order_no");
+
+        VersionDetail versionDetail = new VersionDetail();
+        versionDetail.setVersionId(id);
+        List<VersionDetail> datas = list(versionDetailQuery);
+        List<VersionDetailSpecDTO> dataNew = new ArrayList<>();
+        //过滤字段
+        dataNew = BeanUtil.listCopyTo(datas, VersionDetailSpecDTO.class);
+        return dataNew;
+
+    }
+
+    /**
+     * 根据版本ids查询版本详情
+     *
+     * @param ids
+     * @return
+     */
+    public List<VersionDetailDTO> getByIds(List<Long> ids) {
+        List<VersionDetailDTO> dataNew = new ArrayList<VersionDetailDTO>();
+        if (ListUtil.isNotEmpty(ids)) {
+            QueryWrapper<VersionDetail> versionDetailQuery = new QueryWrapper<>();
+            versionDetailQuery
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("STATUS", StatusEnum.Enable.getKey())
+                    .in("version_id", ids)
+                    .orderByDesc("gmt_create")
+                    .orderByAsc("order_no");
+
+            List<VersionDetail> datas = list(versionDetailQuery);
+            List<String> modifierid = new ArrayList<>();
+            modifierid = datas.stream().map(ac -> ac.getModifier()).collect(Collectors.toList());
+            Map<String, String> userNames = new HashMap<>();
+            if (modifierid.size() > 0) {
+                RespDTO<Map<String, String>> userNamesDTO = userServiceClient.getUserInfoByIds(modifierid);
+                if (userNamesDTO == null || !CommonErrorCode.OK.getCode().equals(userNamesDTO.code)) {
+                    throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
+                            "获取所有用户信息失败");
+                }
+                userNames = userNamesDTO.data;
+            }
+
+            // 过滤字段
+            for (VersionDetail versionData : datas) {
+                VersionDetailDTO versionDTO = new VersionDetailDTO();
+                versionDTO.setId(versionData.getId());
+                //versionDTO.setCreator(versionData.getCreator());
+                versionDTO.setModifierid(userNames.get(versionData.getModifier()));
+                versionDTO.setDescription(versionData.getDescription());
+                versionDTO.setGmtCreate(versionData.getGmtCreate());
+                versionDTO.setOrderNo(versionData.getOrderNo());
+                versionDTO.setRemark(versionData.getRemark());
+                versionDTO.setStatus(versionData.getStatus());
+                versionDTO.setTitle(versionData.getTitle());
+                versionDTO.setVersionId(versionData.getVersionId());
+                dataNew.add(versionDTO);
+            }
+        }
+        return dataNew;
+    }
+
+    /**
+     * 更新接口
+     *
+     * @param versionDetailVO
+     * @return
+     */
+    public boolean updateVersionDetail(VersionDetailVO versionDetailVO) {
+        // 1.先判断数据是否存在有效
+        VersionDetail versionDetailres = checkExist(versionDetailVO.getDetailId());
+        //验证主表是否是可修改状态
+        checkExistMain(versionDetailres.getVersionId());
+        // 3.修改版本详情信息
+        VersionDetail versionDetail = new VersionDetail();
+
+        versionDetail.setGmtModified(DateUtil.now());// 修改时间
+        versionDetail.setModifier(UserUtils.getCurrentPrincipleID());
+        versionDetail.setTitle(versionDetailVO.getTitle());
+        versionDetail.setOrderNo(versionDetailVO.getOrderNo());
+        versionDetail.setStatus(versionDetailVO.getStatus());
+        versionDetail.setId(versionDetailVO.getDetailId());
+        versionDetail.setDescription(versionDetailVO.getDescription());
+        versionDetail.setRemark(versionDetailVO.getRemark());
+        boolean res = updateById(versionDetail);
+        if (!res) {
+            throw new CommonException(CommonErrorCode.UPDATE_INFO_FAIL);
+        }
+
+        return res;
+    }
+
+    /**
+     * 删除接口
+     *
+     * @param versionDetailIdVO
+     * @return
+     */
+    public boolean cancelVersionDetail(VersionDetailIdVO versionDetailIdVO) {
+        // 1.先判断数据是否存在有效
+        VersionDetail versionDetailres = checkExist(versionDetailIdVO.getId());
+        //验证主表是否是可修改状态
+        checkExistMain(versionDetailres.getVersionId());
+        UpdateWrapper<VersionDetail> versionDetailNew = new UpdateWrapper<>();
+        versionDetailNew
+                .eq("id", versionDetailIdVO.getId())
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .set("is_deleted", IsDeleteEnum.Y.getKey())
+                .set("modifier", UserUtils.getCurrentPrincipleID())
+                .set("gmt_modified", DateUtil.now());
+        return update(new VersionDetail(), versionDetailNew);
+    }
+
+    /**
+     * 增加明细接口
+     *
+     * @param versionInfoAndDetailIdVO
+     * @return
+     */
+    public boolean addVersionDetail(VersionInfoAndDetailIdVO versionInfoAndDetailIdVO) {
+
+        //1.增加明细前先判断主版本号的id是否有效
+        checkExistMain(versionInfoAndDetailIdVO.getVersionInfoId());
+
+        List<VersionDetail> dataNew = new ArrayList<VersionDetail>();
+        List<VersionDetailVO> datas = versionInfoAndDetailIdVO.getVersionDetail();
+        for (VersionDetailVO data : datas) {
+            VersionDetail versionDetail = new VersionDetail();
+            versionDetail.setCreator(UserUtils.getCurrentPrincipleID());
+            versionDetail.setGmtCreate(DateUtil.now());
+            versionDetail.setGmtModified(DateUtil.now());
+            versionDetail.setModifier(UserUtils.getCurrentPrincipleID());
+            versionDetail.setDescription(data.getDescription());
+            versionDetail.setOrderNo(data.getOrderNo());
+            versionDetail.setTitle(data.getTitle());
+            versionDetail.setVersionId(versionInfoAndDetailIdVO.getVersionInfoId());
+            versionDetail.setRemark(data.getRemark());
+            versionDetail.setStatus(String.valueOf(StatusEnum.Enable.getKey()));
+            dataNew.add(versionDetail);
+
+        }
+
+        boolean res = versionDetailServiceImpl.saveBatch(dataNew);
+
+        return res;
+    }
+
+    /**
+     * 判断数据是否存在有效
+     *
+     * @param id
+     */
+    private VersionDetail checkExist(Long id) {
+        // 1.先判断数据是否存在有效
+        QueryWrapper<VersionDetail> VersionInfoFand = new QueryWrapper<>();
+        VersionInfoFand.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("id", id);
+        VersionDetail versionDetail = getOne(VersionInfoFand, false);
+        if (null == versionDetail) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该数据不存在");
+        }
+        return versionDetail;
+    }
+
+
+    /**
+     * 判断数据是否存在有效(主版本)
+     *
+     * @param id
+     */
+    private void checkExistMain(Long id) {
+        // 1.先判断数据是否存在有效
+        QueryWrapper<VersionInfo> VersionInfoFand = new QueryWrapper<>();
+        VersionInfoFand.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("id", id);
+        VersionInfo versionInfo = versionInfoServiceImpl.getOne(VersionInfoFand, false);
+        if (null == versionInfo) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "主版本号数据不存在");
+        }
+        if (StringUtil.isNotBlank(versionInfo.getStatus())
+                && versionInfo.getStatus().equals(String.valueOf(StatusEnum.Disable.getKey()))) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该版本已停用");
+        }
+    }
+}
+

+ 268 - 0
cdssman-service/src/main/java/com/diagbot/facade/VersionInfoFacade.java

@@ -0,0 +1,268 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.client.UserServiceClient;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.VersionDetailDTO;
+import com.diagbot.dto.VersionWrapperDTO;
+import com.diagbot.entity.VersionDetail;
+import com.diagbot.entity.VersionInfo;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.StatusEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.impl.VersionDetailServiceImpl;
+import com.diagbot.service.impl.VersionInfoServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.util.UserUtils;
+import com.diagbot.vo.VersionDetailVO;
+import com.diagbot.vo.VersionInfoAllVO;
+import com.diagbot.vo.VersionInfoIdVO;
+import com.diagbot.vo.VersionInfoVO;
+import com.diagbot.vo.VersionWrapperNameVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-06 9:35
+ */
+@Component
+public class VersionInfoFacade extends VersionInfoServiceImpl {
+
+    @Autowired
+    VersionDetailFacade versionDetailFacade;
+    @Autowired
+    VersionDetailServiceImpl versionDetailServiceImpl;
+    @Autowired
+    UserServiceClient userServiceClient;
+
+    /**
+     * 查询版本信息
+     *
+     * @return
+     */
+    public IPage<VersionWrapperDTO> getVersionInfoAll(VersionWrapperNameVO versionWrapperNameVO) {
+
+        IPage<VersionWrapperDTO> queryUserInformation = getVersionInfoAPage(versionWrapperNameVO);
+        List<VersionWrapperDTO> versionInfos = queryUserInformation.getRecords();
+        List<VersionWrapperDTO> versionLists = new ArrayList<VersionWrapperDTO>();
+        // 取出操作人id
+        List<String> modifierid = new ArrayList<>();
+        modifierid = versionInfos.stream().map(ac -> ac.getModifierid()).collect(Collectors.toList());
+        // 根据操作人的id获取操作人信息
+        Map<String, String> userNames = new HashMap<>();
+        if (ListUtil.isNotEmpty(modifierid)) {
+            RespDTO<Map<String, String>> userNamesDTO = userServiceClient.getUserInfoByIds(modifierid);
+            if (userNamesDTO == null || !CommonErrorCode.OK.getCode().equals(userNamesDTO.code)) {
+                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "获取所有用户信息失败");
+            }
+            userNames = userNamesDTO.data;
+        }
+        // 当查出的数据不为空时,取到版本id,再去版本明细表中查询详细的信息
+        for (VersionWrapperDTO versionInfo : versionInfos) {
+            VersionWrapperDTO versionList = new VersionWrapperDTO();
+            versionList.setId(versionInfo.getId());
+            versionList.setGmtCreate(versionInfo.getGmtCreate());
+            versionList.setName(versionInfo.getName());
+            versionList.setModifierid(userNames.get(versionInfo.getModifierid()));
+            versionList.setRefreshTime(versionInfo.getRefreshTime());
+            versionList.setStatus(versionInfo.getStatus());
+            versionList.setRemark(versionInfo.getRemark());
+            versionLists.add(versionList);
+        }
+        // 取版本id查明细
+        List<Long> ids = new ArrayList<>();
+        if (versionInfos != null) {
+            // 当查出的数据不为空时,取到版本id,再去版本明细表中查询详细的信息
+            for (VersionWrapperDTO versionInfo : versionInfos) {
+                ids.add(versionInfo.getId());
+            }
+            // 获取明细信息
+            List<VersionDetailDTO> details = versionDetailFacade.getByIds(ids);
+            Map<Long, List<VersionDetailDTO>> map = new HashMap<>();
+            // 获取所有用户开通的产品信息
+            map = EntityUtil.makeEntityListMap(details, "versionId");
+            if (map.size() > 0) {
+                for (VersionWrapperDTO versionList : versionLists) {
+                    List<VersionDetailDTO> userAndProdutUDTO = map.get(versionList.getId());
+                    if (ListUtil.isNotEmpty(userAndProdutUDTO)) {
+                        versionList.setDetail(userAndProdutUDTO);
+                    }
+                }
+            }
+        }
+        return queryUserInformation.setRecords(versionLists);
+
+    }
+
+    /**
+     * 保存版本信息
+     *
+     * @param versionInfoVO
+     * @return
+     */
+    public boolean saveVersionInfoAll(VersionInfoVO versionInfoVO) {
+        // 1.判断摸个产品该版本号是否存在名字相同的数据
+        QueryWrapper<VersionInfo> templateInfoFand = new QueryWrapper<>();
+        templateInfoFand
+                .eq("name", versionInfoVO.getName())
+                .eq("is_deleted", IsDeleteEnum.N.getKey());
+
+        VersionInfo dataInfo = getOne(templateInfoFand, false);
+        if (dataInfo != null) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该产品该版本号已存在");
+        }
+        //2.把相同产品类型的版本状态修改为0,
+        UpdateWrapper<VersionInfo> versionInfoUp = new UpdateWrapper<>();
+        versionInfoUp
+                .eq("status", StatusEnum.Enable.getKey())
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .set("status", StatusEnum.Disable.getKey())
+                .set("modifier", UserUtils.getCurrentPrincipleID())
+                .set("gmt_modified", DateUtil.now());
+        update(new VersionInfo(), versionInfoUp);
+
+        //3.增加版本数据
+        VersionInfo versionInfo = new VersionInfo();
+        versionInfo.setCreator(UserUtils.getCurrentPrincipleID());
+        versionInfo.setGmtCreate(DateUtil.now());
+        versionInfo.setName(versionInfoVO.getName());
+        versionInfo.setGmtModified(DateUtil.now());
+        versionInfo.setModifier(UserUtils.getCurrentPrincipleID());
+        versionInfo.setStatus(String.valueOf(StatusEnum.Enable.getKey()));
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        try {
+            versionInfo.setRefreshTime(sdf.parse(versionInfoVO.getRefreshTime()));
+        } catch (ParseException e) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "时间格式有误");
+        }
+        versionInfo.setStatus(String.valueOf(StatusEnum.Enable.getKey()));
+        versionInfo.setRemark(versionInfoVO.getRemark());
+        // 优先保存版本号,成功后再保存明细信息
+        boolean res = save(versionInfo);
+        if (res) {
+            List<VersionDetail> dataNew = new ArrayList<VersionDetail>();
+            List<VersionDetailVO> datas = versionInfoVO.getVersionDetail();
+            if (datas != null && datas.size() > 0) {
+                for (VersionDetailVO data : datas) {
+                    VersionDetail versionDetail = new VersionDetail();
+                    versionDetail.setCreator(UserUtils.getCurrentPrincipleID());
+                    versionDetail.setGmtCreate(DateUtil.now());
+                    versionDetail.setGmtModified(DateUtil.now());
+                    versionDetail.setModifier(UserUtils.getCurrentPrincipleID());
+                    versionDetail.setDescription(data.getDescription());
+                    versionDetail.setOrderNo(data.getOrderNo());
+                    versionDetail.setTitle(data.getTitle());
+                    versionDetail.setVersionId(versionInfo.getId());
+                    versionDetail.setRemark(data.getRemark());
+                    versionDetail.setStatus(String.valueOf(StatusEnum.Enable.getKey()));
+                    dataNew.add(versionDetail);
+                }
+
+                res = versionDetailServiceImpl.saveBatch(dataNew);
+            }
+        }
+        return res;
+    }
+
+    /**
+     * 更新
+     *
+     * @param versionInfoVO
+     * @return
+     */
+    public boolean updateVersionInfoAll(VersionInfoAllVO versionInfoVO) {
+        // 1.先判断数据是否存在有效
+        VersionInfo versionInfoRes = checkExist(versionInfoVO.getId());
+        //验证是否停用
+        if (versionInfoRes != null
+                && StringUtil.isNotBlank(versionInfoRes.getStatus())
+                && versionInfoRes.getStatus().equals(String.valueOf(StatusEnum.Disable.getKey()))) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该产品该版本号已停用");
+        }
+        // 2.判断该版本号是否存在名字相同的数据
+        QueryWrapper<VersionInfo> templateInfoFand = new QueryWrapper<>();
+        templateInfoFand
+                .eq("name", versionInfoVO.getName())
+                .eq("is_deleted", IsDeleteEnum.N.getKey());
+
+        VersionInfo dataInfo = getOne(templateInfoFand, false);
+        if (dataInfo != null && !dataInfo.getId().equals(versionInfoVO.getId())) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该产品该版本号已存在");
+        }
+        // 3.修改版本信息
+        VersionInfo versionInfo = new VersionInfo();
+        versionInfo.setId(versionInfoVO.getId());// 模板id
+        versionInfo.setName(versionInfoVO.getName());// 模板名称
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        if (versionInfoVO.getRefreshTime() != null) {
+            try {
+                versionInfo.setRefreshTime(sdf.parse(versionInfoVO.getRefreshTime()));
+            } catch (ParseException e) {
+                throw new CommonException(CommonErrorCode.NOT_EXISTS, "时间格式有误");
+                // e.printStackTrace();
+            }
+        }
+        versionInfo.setStatus(String.valueOf(StatusEnum.Enable.getKey()));
+        versionInfo.setRemark(versionInfoVO.getRemark());
+        versionInfo.setGmtModified(DateUtil.now());// 修改时间
+        versionInfo.setModifier(UserUtils.getCurrentPrincipleID());
+        boolean res = updateById(versionInfo);
+        if (!res) {
+            throw new CommonException(CommonErrorCode.UPDATE_INFO_FAIL);
+        }
+
+        return res;
+    }
+
+    /**
+     * 删除
+     *
+     * @param versionInfoVO
+     * @return
+     */
+    public boolean cancelVersionInfoAll(VersionInfoIdVO versionInfoVO) {
+        // 1.先判断数据是否存在有效
+        checkExist(versionInfoVO.getId());
+        UpdateWrapper<VersionInfo> versionInfoNew = new UpdateWrapper<>();
+        versionInfoNew
+                .eq("id", versionInfoVO.getId())
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .set("is_deleted", IsDeleteEnum.Y.getKey())
+                .set("modifier", UserUtils.getCurrentPrincipleID())
+                .set("gmt_modified", DateUtil.now());
+        return update(new VersionInfo(), versionInfoNew);
+    }
+
+    /**
+     * 判断数据是否存在有效
+     *
+     * @param id
+     */
+    private VersionInfo checkExist(Long id) {
+        // 1.先判断数据是否存在有效
+        QueryWrapper<VersionInfo> VersionInfoFand = new QueryWrapper<>();
+        VersionInfoFand.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("id", id);
+        VersionInfo versionInfo = getOne(VersionInfoFand, false);
+        if (null == versionInfo) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该数据不存在");
+        }
+        return versionInfo;
+    }
+
+}

+ 20 - 0
cdssman-service/src/main/java/com/diagbot/mapper/TokenHospitalMapper.java

@@ -0,0 +1,20 @@
+package com.diagbot.mapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.TokenHospitaDTO;
+import com.diagbot.entity.TokenHospital;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.vo.TokenHospitalVO;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-06
+ */
+public interface TokenHospitalMapper extends BaseMapper<TokenHospital> {
+
+    IPage<TokenHospitaDTO> getTokenHospitalPages(TokenHospitalVO tokenHospitalVO);
+}

+ 16 - 0
cdssman-service/src/main/java/com/diagbot/mapper/VersionDetailMapper.java

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.VersionDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 版本详情(关于) Mapper 接口
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-06
+ */
+public interface VersionDetailMapper extends BaseMapper<VersionDetail> {
+
+}

+ 20 - 0
cdssman-service/src/main/java/com/diagbot/mapper/VersionInfoMapper.java

@@ -0,0 +1,20 @@
+package com.diagbot.mapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.VersionWrapperDTO;
+import com.diagbot.entity.VersionInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.vo.VersionWrapperNameVO;
+
+/**
+ * <p>
+ * 版本信息 Mapper 接口
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-06
+ */
+public interface VersionInfoMapper extends BaseMapper<VersionInfo> {
+
+    IPage<VersionWrapperDTO> getVersionInfoAPage(VersionWrapperNameVO versionWrapperNameVO);
+}

+ 19 - 0
cdssman-service/src/main/java/com/diagbot/service/TokenHospitalService.java

@@ -0,0 +1,19 @@
+package com.diagbot.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.TokenHospitaDTO;
+import com.diagbot.entity.TokenHospital;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.vo.TokenHospitalVO;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-06
+ */
+public interface TokenHospitalService extends IService<TokenHospital> {
+    IPage<TokenHospitaDTO> getTokenHospitalPages(TokenHospitalVO tokenHospitalVO);
+}

+ 16 - 0
cdssman-service/src/main/java/com/diagbot/service/VersionDetailService.java

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.VersionDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 版本详情(关于) 服务类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-06
+ */
+public interface VersionDetailService extends IService<VersionDetail> {
+
+}

+ 19 - 0
cdssman-service/src/main/java/com/diagbot/service/VersionInfoService.java

@@ -0,0 +1,19 @@
+package com.diagbot.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.VersionWrapperDTO;
+import com.diagbot.entity.VersionInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.vo.VersionWrapperNameVO;
+
+/**
+ * <p>
+ * 版本信息 服务类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-06
+ */
+public interface VersionInfoService extends IService<VersionInfo> {
+    IPage<VersionWrapperDTO> getVersionInfoAPage(VersionWrapperNameVO versionWrapperNameVO);
+}

+ 27 - 0
cdssman-service/src/main/java/com/diagbot/service/impl/TokenHospitalServiceImpl.java

@@ -0,0 +1,27 @@
+package com.diagbot.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.TokenHospitaDTO;
+import com.diagbot.entity.TokenHospital;
+import com.diagbot.mapper.TokenHospitalMapper;
+import com.diagbot.service.TokenHospitalService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.TokenHospitalVO;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-06
+ */
+@Service
+public class TokenHospitalServiceImpl extends ServiceImpl<TokenHospitalMapper, TokenHospital> implements TokenHospitalService {
+
+    @Override
+    public IPage<TokenHospitaDTO> getTokenHospitalPages(TokenHospitalVO tokenHospitalVO) {
+        return baseMapper.getTokenHospitalPages(tokenHospitalVO);
+    }
+}

+ 20 - 0
cdssman-service/src/main/java/com/diagbot/service/impl/VersionDetailServiceImpl.java

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.VersionDetail;
+import com.diagbot.mapper.VersionDetailMapper;
+import com.diagbot.service.VersionDetailService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 版本详情(关于) 服务实现类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-06
+ */
+@Service
+public class VersionDetailServiceImpl extends ServiceImpl<VersionDetailMapper, VersionDetail> implements VersionDetailService {
+
+}

+ 27 - 0
cdssman-service/src/main/java/com/diagbot/service/impl/VersionInfoServiceImpl.java

@@ -0,0 +1,27 @@
+package com.diagbot.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.VersionWrapperDTO;
+import com.diagbot.entity.VersionInfo;
+import com.diagbot.mapper.VersionInfoMapper;
+import com.diagbot.service.VersionInfoService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.VersionWrapperNameVO;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 版本信息 服务实现类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-06
+ */
+@Service
+public class VersionInfoServiceImpl extends ServiceImpl<VersionInfoMapper, VersionInfo> implements VersionInfoService {
+
+    @Override
+    public IPage<VersionWrapperDTO> getVersionInfoAPage(VersionWrapperNameVO versionWrapperNameVO) {
+        return baseMapper.getVersionInfoAPage(versionWrapperNameVO);
+    }
+}

+ 25 - 0
cdssman-service/src/main/java/com/diagbot/vo/TokenHospitalInfoVO.java

@@ -0,0 +1,25 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-06 16:01
+ */
+@Setter
+@Getter
+public class TokenHospitalInfoVO {
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    private Date startTime;
+
+    private Date endTime;
+
+}

+ 16 - 0
cdssman-service/src/main/java/com/diagbot/vo/TokenHospitalVO.java

@@ -0,0 +1,16 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-06 15:28
+ */
+@Setter
+@Getter
+public class TokenHospitalVO extends Page {
+    private Long hospitalId;
+}

+ 18 - 0
cdssman-service/src/main/java/com/diagbot/vo/VersionDetailIdVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-06 9:52
+ */
+@Getter
+@Setter
+public class VersionDetailIdVO {
+    @NotNull(message = "请输入id")
+    private Long id;
+}

+ 47 - 0
cdssman-service/src/main/java/com/diagbot/vo/VersionDetailVO.java

@@ -0,0 +1,47 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-06 9:51
+ */
+@Getter
+@Setter
+public class VersionDetailVO {
+    /**
+     * 版本主表id
+     */
+    @NotNull(message = "请输入id")
+    private Long detailId;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 描述
+     */
+    private String description;
+
+    /**
+     * 排序号
+     */
+    private String orderNo;
+
+    /**
+     * 1:启动,0:不启用
+     */
+    private String status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}
+

+ 42 - 0
cdssman-service/src/main/java/com/diagbot/vo/VersionInfoAllVO.java

@@ -0,0 +1,42 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-06 9:47
+ */
+@Getter
+@Setter
+public class VersionInfoAllVO {
+    /**
+     * 版本id
+     */
+    @NotNull(message = "请输入id")
+    private Long id;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 时间
+     */
+    private String refreshTime;
+
+    /**
+     * 1:启动,0:不启用
+     */
+    // private String status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}
+

+ 24 - 0
cdssman-service/src/main/java/com/diagbot/vo/VersionInfoAndDetailIdVO.java

@@ -0,0 +1,24 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-06 9:53
+ */
+@Getter
+@Setter
+public class VersionInfoAndDetailIdVO {
+    /**
+     * 用户id
+     */
+    @NotNull(message = "请输入id")
+    private Long versionInfoId;
+
+    private List<VersionDetailVO> versionDetail;
+}

+ 18 - 0
cdssman-service/src/main/java/com/diagbot/vo/VersionInfoIdVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-06 9:48
+ */
+@Getter
+@Setter
+public class VersionInfoIdVO {
+    @NotNull(message = "请输入id")
+    private Long id;
+}

+ 47 - 0
cdssman-service/src/main/java/com/diagbot/vo/VersionInfoVO.java

@@ -0,0 +1,47 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-06 9:44
+ */
+@Getter
+@Setter
+public class VersionInfoVO {
+
+    /**
+     * 用户id
+     */
+    //private Long id;
+
+    /**
+     * 名称
+     */
+    @NotBlank(message = "标题不能为空")
+    private String name;
+
+    /**
+     * 时间
+     */
+    @NotBlank(message = "请输入时间")
+    private String refreshTime;
+
+    /**
+     * 1:启动,0:不启用
+     */
+    // private String status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    private List<VersionDetailVO> versionDetail;
+}

+ 21 - 0
cdssman-service/src/main/java/com/diagbot/vo/VersionWrapperNameVO.java

@@ -0,0 +1,21 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-06 9:39
+ */
+@Getter
+@Setter
+public class VersionWrapperNameVO extends Page {
+
+    /**
+     * 名称
+     */
+    private String name;
+}
+

+ 58 - 0
cdssman-service/src/main/java/com/diagbot/web/TokenHospitalController.java

@@ -0,0 +1,58 @@
+package com.diagbot.web;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.TokenHospitaDTO;
+import com.diagbot.facade.TokenHospitalFacade;
+import com.diagbot.vo.TokenHospitalInfoVO;
+import com.diagbot.vo.TokenHospitalVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.validation.Valid;
+
+/**
+ * <p>
+ * 前端控制器
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-06
+ */
+@RestController
+@RequestMapping("/tokenHospital")
+@Api(value = "医院token信息API", tags = { "医院token信息API" })
+@SuppressWarnings("unchecked")
+public class TokenHospitalController {
+
+    @Autowired
+    private TokenHospitalFacade tokenHospitalFacade;
+
+    @ApiOperation(value = "分页获取医院token信息[by:wangfeng]",
+            notes = "userId: 医院id<br>" +
+                    "HospitalId:医院id<br>")
+    @PostMapping("/getTokenHospital")
+    @SysLogger("getTokenHospital")
+    public RespDTO<IPage<TokenHospitaDTO>> getTokenHospital(@RequestBody @Valid TokenHospitalVO tokenHospitalVO) {
+        IPage<TokenHospitaDTO> data = tokenHospitalFacade.getTokenHospitals(tokenHospitalVO);
+        return RespDTO.onSuc(data);
+    }
+
+    @ApiOperation(value = "生成医院token信息[by:wangfeng]", notes = "")
+    @PostMapping("/addTokenHospital")
+    @SysLogger("addTokenHospital")
+    @Transactional
+    public RespDTO<Boolean> addTokenHospital(@RequestBody @Valid TokenHospitalInfoVO tokenHospitalInfoVO) {
+        boolean res = tokenHospitalFacade.addTokenHospitals(tokenHospitalInfoVO);
+        return RespDTO.onSuc(res);
+    }
+}

+ 20 - 0
cdssman-service/src/main/java/com/diagbot/web/VersionDetailController.java

@@ -0,0 +1,20 @@
+package com.diagbot.web;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * <p>
+ * 版本详情(关于) 前端控制器
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-06
+ */
+@Controller
+@RequestMapping("/versionDetail")
+public class VersionDetailController {
+
+}

+ 75 - 0
cdssman-service/src/main/java/com/diagbot/web/VersionInfoController.java

@@ -0,0 +1,75 @@
+package com.diagbot.web;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.VersionWrapperDTO;
+import com.diagbot.facade.VersionInfoFacade;
+import com.diagbot.vo.VersionInfoAllVO;
+import com.diagbot.vo.VersionInfoIdVO;
+import com.diagbot.vo.VersionInfoVO;
+import com.diagbot.vo.VersionWrapperNameVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+/**
+ * <p>
+ * 版本信息 前端控制器
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-06
+ */
+@RestController
+@RequestMapping("/versionInfo")
+@Api(value = "版本信息(关于)API[by:wangfeng]", tags = { "版本信息(关于)API" })
+@SuppressWarnings("unchecked")
+public class VersionInfoController {
+    @Autowired
+    VersionInfoFacade versionInfoFacade;
+
+    @ApiOperation(value = "获取版本信息[by:wangfeng]", notes = "获取版本信息")
+    @PostMapping("/getVersionInfoAlls")
+    @SysLogger("getVersionInfoAlls")
+    @Transactional
+    public RespDTO<IPage<VersionWrapperDTO>> getVersionInfoAlls(@RequestBody VersionWrapperNameVO versionWrapperNameVO) {
+        IPage<VersionWrapperDTO> data = versionInfoFacade.getVersionInfoAll(versionWrapperNameVO);
+        return RespDTO.onSuc(data);
+    }
+
+    @ApiOperation(value = "保存版本信息[by:wangfeng]", notes = "保存版本信息")
+    @PostMapping("/saveVersionInfoAlls")
+    @SysLogger("saveVersionInfoAlls")
+    @Transactional
+    public RespDTO<Boolean> saveVersionInfoAlls(@Valid @RequestBody VersionInfoVO versionInfoVO) {
+        boolean res = versionInfoFacade.saveVersionInfoAll(versionInfoVO);
+        return RespDTO.onSuc(res);
+    }
+
+    @ApiOperation(value = "更新版本信息[by:wangfeng]", notes = "更新版本信息")
+    @PostMapping("/updateVersionInfoAlls")
+    @SysLogger("updateVersionInfoAlls")
+    @Transactional
+    public RespDTO<Boolean> updateVersionInfoAlls(@Valid @RequestBody VersionInfoAllVO versionInfoVO) {
+        boolean res = versionInfoFacade.updateVersionInfoAll(versionInfoVO);
+        return RespDTO.onSuc(res);
+    }
+
+    @ApiOperation(value = "删除版本信息[by:wangfeng]", notes = "删除版本信息")
+    @PostMapping("/cancelVersionInfoAlls")
+    @SysLogger("cancelVersionInfoAlls")
+    @Transactional
+    public RespDTO<Boolean> cancelVersionInfoAlls(@Valid @RequestBody VersionInfoIdVO versionInfoVO) {
+        boolean res = versionInfoFacade.cancelVersionInfoAll(versionInfoVO);
+        return RespDTO.onSuc(res);
+    }
+}

+ 40 - 0
cdssman-service/src/main/resources/mapper/TokenHospitalMapper.xml

@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.TokenHospitalMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.TokenHospital">
+        <id column="id" property="id"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="gmt_create" property="gmtCreate"/>
+        <result column="gmt_modified" property="gmtModified"/>
+        <result column="creator" property="creator"/>
+        <result column="modifier" property="modifier"/>
+        <result column="hospital_id" property="hospitalId"/>
+        <result column="appid_token" property="appidToken"/>
+        <result column="start_time" property="startTime"/>
+        <result column="end_time" property="endTime"/>
+        <result column="valid_days" property="validDays"/>
+        <result column="remark" property="remark"/>
+    </resultMap>
+
+    <select id="getTokenHospitalPages" resultType="com.diagbot.dto.TokenHospitaDTO">
+        SELECT
+        a.id,
+        a.hospital_id as hospitalId,
+        b.name as hospitalName,
+        a.appid_token as appidToken,
+        a.start_time as startTime,
+        a.end_time as endTime,
+        a.valid_days as validDays
+        FROM
+        sys_token_hospital a
+        JOIN tran_hospital_info b
+        ON a.hospital_id = b.id
+        WHERE a.is_deleted = "N"
+        and b.is_deleted = "N"
+        <if test="hospitalId!=null">
+            and hospital_id = #{hospitalId}
+        </if>
+    </select>
+</mapper>

+ 21 - 0
cdssman-service/src/main/resources/mapper/VersionDetailMapper.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.VersionDetailMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.VersionDetail">
+        <id column="id" property="id" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="version_id" property="versionId" />
+        <result column="title" property="title" />
+        <result column="description" property="description" />
+        <result column="order_no" property="orderNo" />
+        <result column="status" property="status" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+</mapper>

+ 35 - 0
cdssman-service/src/main/resources/mapper/VersionInfoMapper.xml

@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.VersionInfoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.VersionInfo">
+        <id column="id" property="id"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="gmt_create" property="gmtCreate"/>
+        <result column="gmt_modified" property="gmtModified"/>
+        <result column="creator" property="creator"/>
+        <result column="modifier" property="modifier"/>
+        <result column="name" property="name"/>
+        <result column="refresh_time" property="refreshTime"/>
+        <result column="status" property="status"/>
+        <result column="remark" property="remark"/>
+    </resultMap>
+    <select id="getVersionInfoAPage" resultType="com.diagbot.dto.VersionWrapperDTO">
+        SELECT
+        id as id,
+        gmt_create as gmtCreate,
+        modifier as modifierid,
+        name as name,
+        refresh_time as
+        refreshTime,
+        status as status,
+        remark as remark
+        FROM sys_version_info u
+        WHERE u.is_deleted = 'N'
+        <if test="name != null and name =''">
+            AND UPPER(u.name) LIKE CONCAT('%', UPPER(trim(#{name})), '%')
+        </if>
+        ORDER BY gmt_create DESC
+    </select>
+</mapper>