Browse Source

token令牌生成

wangfeng 4 years ago
parent
commit
0d59df6f7e

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

@@ -0,0 +1,16 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-06 18:38
+ */
+@Setter
+@Getter
+public class HospitalInfoDTO {
+    private Long id;
+    private String name;
+}

+ 211 - 0
cdssman-service/src/main/java/com/diagbot/entity/HospitalInfo.java

@@ -0,0 +1,211 @@
+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;
+
+/**
+ * <p>
+ * 医院信息表
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-06
+ */
+@TableName("tran_hospital_info")
+public class HospitalInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private LocalDateTime gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private LocalDateTime gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 医院编码
+     */
+    private String code;
+
+    /**
+     * 医院名称
+     */
+    private String name;
+
+    /**
+     * 医院地址
+     */
+    private String address;
+
+    /**
+     * 医院名称拼音
+     */
+    private String spell;
+
+    /**
+     * 状态:0.禁用1.启用
+     */
+    private Integer status;
+
+    /**
+     * 排序号
+     */
+    private Integer orderNo;
+
+    /**
+     * 是否对接(0-不对接,1-对接)
+     */
+    private Integer connect;
+
+    /**
+     * 备注
+     */
+    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 LocalDateTime getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(LocalDateTime gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public LocalDateTime getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(LocalDateTime 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 getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+    public String getSpell() {
+        return spell;
+    }
+
+    public void setSpell(String spell) {
+        this.spell = spell;
+    }
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+    public Integer getOrderNo() {
+        return orderNo;
+    }
+
+    public void setOrderNo(Integer orderNo) {
+        this.orderNo = orderNo;
+    }
+    public Integer getConnect() {
+        return connect;
+    }
+
+    public void setConnect(Integer connect) {
+        this.connect = connect;
+    }
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return "HospitalInfo{" +
+            "id=" + id +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+            ", code=" + code +
+            ", name=" + name +
+            ", address=" + address +
+            ", spell=" + spell +
+            ", status=" + status +
+            ", orderNo=" + orderNo +
+            ", connect=" + connect +
+            ", remark=" + remark +
+        "}";
+    }
+}

+ 30 - 0
cdssman-service/src/main/java/com/diagbot/facade/HospitalInfoFacade.java

@@ -0,0 +1,30 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.HospitalInfoDTO;
+import com.diagbot.entity.HospitalInfo;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.impl.HospitalInfoServiceImpl;
+import com.diagbot.util.BeanUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-06 18:37
+ */
+@Component
+public class HospitalInfoFacade extends HospitalInfoServiceImpl {
+
+    public List<HospitalInfoDTO> getHospitalInfo() {
+        QueryWrapper<HospitalInfo> hospitalInfo = new QueryWrapper<>();
+        hospitalInfo.eq("is_deleted", IsDeleteEnum.N.getKey());
+        List<HospitalInfo> list = list(hospitalInfo);
+        List<HospitalInfoDTO> data = new ArrayList<>();
+        data = BeanUtil.listCopyTo(list,HospitalInfoDTO.class);
+        return data;
+    }
+}

+ 68 - 2
cdssman-service/src/main/java/com/diagbot/facade/TokenHospitalFacade.java

@@ -1,5 +1,6 @@
 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.dto.TokenHospitaDTO;
@@ -13,7 +14,9 @@ import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.RSATokenIdUtil;
 import com.diagbot.util.UserUtils;
+import com.diagbot.vo.TokenHospitalCancelVO;
 import com.diagbot.vo.TokenHospitalInfoVO;
+import com.diagbot.vo.TokenHospitalUpdataVO;
 import com.diagbot.vo.TokenHospitalVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -47,7 +50,10 @@ public class TokenHospitalFacade extends TokenHospitalServiceImpl {
         tokenHospitalQueryWrapper
                 .eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("hospital_id", tokenHospitalInfoVO.getHospitalId());
-        remove(tokenHospitalQueryWrapper);
+        int count = tokenHospitalService.count(tokenHospitalQueryWrapper);
+        if (count > 0) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该医院Token信息已存在!");
+        }
         TokenHospital tokenHospitalData = getOne(tokenHospitalQueryWrapper, false);
         Date now = DateUtil.now();
         Date startTime = tokenHospitalInfoVO.getStartTime();
@@ -79,7 +85,67 @@ public class TokenHospitalFacade extends TokenHospitalServiceImpl {
         } catch (Exception e) {
             e.printStackTrace();
         }
-        return save(tokenHospital);
+        return tokenHospitalService.save(tokenHospital);
+    }
+
+    public boolean cancelTokenHospitals(TokenHospitalCancelVO tokenHospitalCancelVO) {
+        UpdateWrapper<TokenHospital> tokenHospitalQueryWrapper = new UpdateWrapper<>();
+        tokenHospitalQueryWrapper
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("id", tokenHospitalCancelVO.getId());
+        return tokenHospitalService.remove(tokenHospitalQueryWrapper);
+    }
+
+    public boolean updataTokenHospitals(TokenHospitalUpdataVO tokenHospitalInfoVO) {
+        //校验数据
+        checkTokenHospital(tokenHospitalInfoVO.getId());
+        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
+        //加密Token
+        String appidToken = "";
+        try {
+            appidToken = RSATokenIdUtil.encrypt(sb.toString());
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        if (appidToken.isEmpty()) {
+            throw new CommonException(CommonErrorCode.FAIL, "生成token失败!");
+        }
+        UpdateWrapper<TokenHospital> tokenHospitalQueryWrapper = new UpdateWrapper<>();
+        tokenHospitalQueryWrapper
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("id", tokenHospitalInfoVO.getId())
+                .eq("hospital_id", tokenHospitalInfoVO.getHospitalId())
+                .set("appid_token", appidToken)
+                .set("start_time", startTime)
+                .set("end_time", endTime)
+                .set("valid_days", validDays);
+        return update(new TokenHospital(), tokenHospitalQueryWrapper);
+    }
+
+    /**
+     * 检验数据是否有效
+     */
+    private TokenHospital checkTokenHospital(Long id) {
+        // 1.先判断数据是否存在有效
+        QueryWrapper<TokenHospital> tokenHospitalFand = new QueryWrapper<>();
+        tokenHospitalFand.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("id", id);
+        TokenHospital tokenHospital = getOne(tokenHospitalFand, false);
+        if (null == tokenHospital) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该数据不存在");
+        }
+        return tokenHospital;
     }
 
 }

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

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.HospitalInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 医院信息表 Mapper 接口
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-06
+ */
+public interface HospitalInfoMapper extends BaseMapper<HospitalInfo> {
+
+}

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

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.HospitalInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 医院信息表 服务类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-06
+ */
+public interface HospitalInfoService extends IService<HospitalInfo> {
+
+}

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

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.HospitalInfo;
+import com.diagbot.mapper.HospitalInfoMapper;
+import com.diagbot.service.HospitalInfoService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 医院信息表 服务实现类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-06
+ */
+@Service
+public class HospitalInfoServiceImpl extends ServiceImpl<HospitalInfoMapper, HospitalInfo> implements HospitalInfoService {
+
+}

+ 15 - 0
cdssman-service/src/main/java/com/diagbot/vo/TokenHospitalCancelVO.java

@@ -0,0 +1,15 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-06 18:08
+ */
+@Setter
+@Getter
+public class TokenHospitalCancelVO {
+    private Long id;
+}

+ 3 - 2
cdssman-service/src/main/java/com/diagbot/vo/TokenHospitalInfoVO.java

@@ -3,6 +3,8 @@ package com.diagbot.vo;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 import java.util.Date;
 
 /**
@@ -16,10 +18,9 @@ public class TokenHospitalInfoVO {
     /**
      * 医院ID
      */
+    @NotNull(message = "请输入医院id")
     private Long hospitalId;
-
     private Date startTime;
-
     private Date endTime;
 
 }

+ 26 - 0
cdssman-service/src/main/java/com/diagbot/vo/TokenHospitalUpdataVO.java

@@ -0,0 +1,26 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-06 20:24
+ */
+@Setter
+@Getter
+public class TokenHospitalUpdataVO {
+    @NotNull(message = "请输入id")
+    private Long id;
+    /**
+     * 医院ID
+     */
+    @NotNull(message = "请输入医院id")
+    private Long hospitalId;
+    private Date startTime;
+    private Date endTime;
+}

+ 41 - 0
cdssman-service/src/main/java/com/diagbot/web/HospitalInfoController.java

@@ -0,0 +1,41 @@
+package com.diagbot.web;
+
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.HospitalInfoDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.HospitalInfoFacade;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 医院信息表 前端控制器
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-06
+ */
+@RestController
+@RequestMapping("/hospitalInfo")
+@Api(value = "医院信息API", tags = { "医院信息API" })
+@SuppressWarnings("unchecked")
+public class HospitalInfoController {
+
+    @Autowired
+    private HospitalInfoFacade hospitalInfoFacade;
+
+    @ApiOperation(value = "获取医院信息列表[by:wangfeng]", notes = "")
+    @PostMapping("/getHospitalInfo")
+    @SysLogger("getHospitalInfo")
+    public RespDTO<List<HospitalInfoDTO>> getHospitalInfo() {
+        List<HospitalInfoDTO> data = hospitalInfoFacade.getHospitalInfo();
+        return RespDTO.onSuc(data);
+    }
+}

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

@@ -6,7 +6,9 @@ import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.TokenHospitaDTO;
 import com.diagbot.facade.TokenHospitalFacade;
+import com.diagbot.vo.TokenHospitalCancelVO;
 import com.diagbot.vo.TokenHospitalInfoVO;
+import com.diagbot.vo.TokenHospitalUpdataVO;
 import com.diagbot.vo.TokenHospitalVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -55,4 +57,21 @@ public class TokenHospitalController {
         boolean res = tokenHospitalFacade.addTokenHospitals(tokenHospitalInfoVO);
         return RespDTO.onSuc(res);
     }
+    @ApiOperation(value = "延续医院token有效时间[by:wangfeng]", notes = "")
+    @PostMapping("/updataTokenHospital")
+    @SysLogger("updataTokenHospital")
+    @Transactional
+    public RespDTO<Boolean> updataTokenHospital(@RequestBody @Valid TokenHospitalUpdataVO tokenHospitalUpdataVO) {
+        boolean res = tokenHospitalFacade.updataTokenHospitals(tokenHospitalUpdataVO);
+        return RespDTO.onSuc(res);
+    }
+
+    @ApiOperation(value = "删除医院token信息[by:wangfeng]", notes = "")
+    @PostMapping("/cancelTokenHospital")
+    @SysLogger("cancelTokenHospital")
+    @Transactional
+    public RespDTO<Boolean> cancelTokenHospital(@RequestBody @Valid TokenHospitalCancelVO tokenHospitalCancelVO) {
+        boolean res = tokenHospitalFacade.cancelTokenHospitals(tokenHospitalCancelVO);
+        return RespDTO.onSuc(res);
+    }
 }

+ 23 - 0
cdssman-service/src/main/resources/mapper/HospitalInfoMapper.xml

@@ -0,0 +1,23 @@
+<?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.HospitalInfoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.HospitalInfo">
+        <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="code" property="code" />
+        <result column="name" property="name" />
+        <result column="address" property="address" />
+        <result column="spell" property="spell" />
+        <result column="status" property="status" />
+        <result column="order_no" property="orderNo" />
+        <result column="connect" property="connect" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+</mapper>