From 038fd94744141027e30f692ac504d016a7fcb7de Mon Sep 17 00:00:00 2001 From: ma <1062634917@qq.com> Date: Wed, 31 Mar 2021 17:56:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=92=E4=BB=B6=E7=9B=B8=E5=85=B3=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ccsens/tall/bean/dto/PluginDto.java | 90 ++- .../tall/bean/po/ProPluginPreviewFile.java | 95 +++ .../bean/po/ProPluginPreviewFileExample.java | 631 ++++++++++++++++++ .../com/ccsens/tall/bean/po/SysPlugin.java | 45 +- .../ccsens/tall/bean/po/SysPluginExample.java | 228 ++++++- .../com/ccsens/tall/bean/vo/PluginVo.java | 41 ++ .../persist/dao/ProPluginPreviewFileDao.java | 9 + .../tall/persist/dao/TaskPluginDao.java | 26 + .../mapper/ProPluginPreviewFileMapper.java | 30 + .../tall/service/ISysPluginService.java | 34 +- .../ccsens/tall/service/ProRoleService.java | 3 + .../ccsens/tall/service/SysPluginService.java | 189 +++++- .../com/ccsens/tall/web/PluginController.java | 53 +- tall/src/main/resources/application.yml | 4 +- .../resources/mapper_dao/TaskPluginDao.xml | 62 ++ .../mapper_raw/ProPluginPreviewFileMapper.xml | 243 +++++++ .../resources/mapper_raw/SysPluginMapper.xml | 80 ++- 17 files changed, 1799 insertions(+), 64 deletions(-) create mode 100644 tall/src/main/java/com/ccsens/tall/bean/po/ProPluginPreviewFile.java create mode 100644 tall/src/main/java/com/ccsens/tall/bean/po/ProPluginPreviewFileExample.java create mode 100644 tall/src/main/java/com/ccsens/tall/persist/dao/ProPluginPreviewFileDao.java create mode 100644 tall/src/main/java/com/ccsens/tall/persist/mapper/ProPluginPreviewFileMapper.java create mode 100644 tall/src/main/resources/mapper_dao/TaskPluginDao.xml create mode 100644 tall/src/main/resources/mapper_raw/ProPluginPreviewFileMapper.xml diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/PluginDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/PluginDto.java index 7d909550..670aec7a 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/PluginDto.java +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/PluginDto.java @@ -5,9 +5,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.NonNull; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; +import javax.validation.constraints.*; import java.util.List; /** @@ -18,14 +16,94 @@ public class PluginDto { @Data @ApiModel("添加插件") public static class SaveSysPlugin { - @NotEmpty + @NotEmpty(message = "请输入插件名") @ApiModelProperty("插件名(英文的code)") private String name; - @NotEmpty - @ApiModelProperty("插件描述") + @Size(max = 100,message = "详情不能超过一百字") + @NotEmpty(message = "请输入插件详情") + @ApiModelProperty("插件详情") private String description; @ApiModelProperty("插件展示位置 默认2:0不显示,1任务头上右侧图标,2任务详情显示按钮,3任务展开面板显示(特殊形式)") private byte showType = 2; + @ApiModelProperty("插件图标") + private Long pluginIcon; + @ApiModelProperty("插件作者") + private Long pluginAuthor; + @ApiModelProperty("插件类型(0-公共,1-会务,2-医疗,3-pims)") + private Byte pluginClass; + @ApiModelProperty("预览图片") + private List previewImgs; + } + @Data + @ApiModel("添加插件预览图") + public static class PreviewImg { + @ApiModelProperty("预览图id") + private Long previewId; + @Size(max = 100,message = "详情不能超过一百字") + @ApiModelProperty("预览图描述") + private String previewDescription; + } + + @Data + @ApiModel("根据任务id查询插件列表(已添加的)") + public static class FindPluginByTask { + @NotNull(message = "请选择任务") + @ApiModelProperty("任务id") + private Long taskId; + @NotNull(message = "获取角色信息失败") + @ApiModelProperty("角色id") + private Long roleId; + @ApiModelProperty("插件名称") + private String pluginName; + @ApiModelProperty("插件类型(0-公共,1-会务,2-医疗,3-pims)单选") + private Byte pluginType; + } + + @Data + @ApiModel("根据任务id查询插件列表(该任务未添加的的)") + public static class FindPluginByTaskNo { + @NotNull(message = "请选择任务") + @ApiModelProperty("任务id") + private Long taskId; + @NotNull(message = "获取角色信息失败") + @ApiModelProperty("角色id") + private Long roleId; + @ApiModelProperty("插件名称") + private String pluginName; + @ApiModelProperty("插件类型(0-公共,1-会务,2-医疗,3-pims)单选") + private Byte pluginType; + @ApiModelProperty("页数") + private Integer pageNum = 1; + @ApiModelProperty("每页多少条") + private Integer pageSize = 10; + } + + @Data + @ApiModel("给任务添加插件") + public static class AddPluginForTask { + @NotNull(message = "请选择任务") + @ApiModelProperty("任务id") + private Long taskId; + @NotNull(message = "获取角色信息失败") + @ApiModelProperty("角色id") + private Long roleId; + @NotNull(message = "请选择插件") + @ApiModelProperty("插件id") + private Long pluginId; + } + + @Data + @ApiModel("给任务删除插件") + public static class DeletePluginForTask { + @NotNull(message = "请选择任务") + @ApiModelProperty("任务id") + private Long taskId; + @NotNull(message = "获取角色信息失败") + @ApiModelProperty("角色id") + private Long roleId; + @NotNull(message = "请选择插件") + @ApiModelProperty("插件id") + private Long pluginId; } diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/ProPluginPreviewFile.java b/tall/src/main/java/com/ccsens/tall/bean/po/ProPluginPreviewFile.java new file mode 100644 index 00000000..f2cdd59c --- /dev/null +++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProPluginPreviewFile.java @@ -0,0 +1,95 @@ +package com.ccsens.tall.bean.po; + +import java.io.Serializable; +import java.util.Date; + +public class ProPluginPreviewFile implements Serializable { + private Long id; + + private Long pluginId; + + private Long fileId; + + private Date createdAt; + + private Date updatedAt; + + private Byte recStatus; + + private String previewDescription; + + private static final long serialVersionUID = 1L; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getPluginId() { + return pluginId; + } + + public void setPluginId(Long pluginId) { + this.pluginId = pluginId; + } + + public Long getFileId() { + return fileId; + } + + public void setFileId(Long fileId) { + this.fileId = fileId; + } + + public Date getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(Date createdAt) { + this.createdAt = createdAt; + } + + public Date getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(Date updatedAt) { + this.updatedAt = updatedAt; + } + + public Byte getRecStatus() { + return recStatus; + } + + public void setRecStatus(Byte recStatus) { + this.recStatus = recStatus; + } + + public String getPreviewDescription() { + return previewDescription; + } + + public void setPreviewDescription(String previewDescription) { + this.previewDescription = previewDescription == null ? null : previewDescription.trim(); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", pluginId=").append(pluginId); + sb.append(", fileId=").append(fileId); + sb.append(", createdAt=").append(createdAt); + sb.append(", updatedAt=").append(updatedAt); + sb.append(", recStatus=").append(recStatus); + sb.append(", previewDescription=").append(previewDescription); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/ProPluginPreviewFileExample.java b/tall/src/main/java/com/ccsens/tall/bean/po/ProPluginPreviewFileExample.java new file mode 100644 index 00000000..cfa71850 --- /dev/null +++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProPluginPreviewFileExample.java @@ -0,0 +1,631 @@ +package com.ccsens.tall.bean.po; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class ProPluginPreviewFileExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public ProPluginPreviewFileExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andPluginIdIsNull() { + addCriterion("plugin_id is null"); + return (Criteria) this; + } + + public Criteria andPluginIdIsNotNull() { + addCriterion("plugin_id is not null"); + return (Criteria) this; + } + + public Criteria andPluginIdEqualTo(Long value) { + addCriterion("plugin_id =", value, "pluginId"); + return (Criteria) this; + } + + public Criteria andPluginIdNotEqualTo(Long value) { + addCriterion("plugin_id <>", value, "pluginId"); + return (Criteria) this; + } + + public Criteria andPluginIdGreaterThan(Long value) { + addCriterion("plugin_id >", value, "pluginId"); + return (Criteria) this; + } + + public Criteria andPluginIdGreaterThanOrEqualTo(Long value) { + addCriterion("plugin_id >=", value, "pluginId"); + return (Criteria) this; + } + + public Criteria andPluginIdLessThan(Long value) { + addCriterion("plugin_id <", value, "pluginId"); + return (Criteria) this; + } + + public Criteria andPluginIdLessThanOrEqualTo(Long value) { + addCriterion("plugin_id <=", value, "pluginId"); + return (Criteria) this; + } + + public Criteria andPluginIdIn(List values) { + addCriterion("plugin_id in", values, "pluginId"); + return (Criteria) this; + } + + public Criteria andPluginIdNotIn(List values) { + addCriterion("plugin_id not in", values, "pluginId"); + return (Criteria) this; + } + + public Criteria andPluginIdBetween(Long value1, Long value2) { + addCriterion("plugin_id between", value1, value2, "pluginId"); + return (Criteria) this; + } + + public Criteria andPluginIdNotBetween(Long value1, Long value2) { + addCriterion("plugin_id not between", value1, value2, "pluginId"); + return (Criteria) this; + } + + public Criteria andFileIdIsNull() { + addCriterion("file_id is null"); + return (Criteria) this; + } + + public Criteria andFileIdIsNotNull() { + addCriterion("file_id is not null"); + return (Criteria) this; + } + + public Criteria andFileIdEqualTo(Long value) { + addCriterion("file_id =", value, "fileId"); + return (Criteria) this; + } + + public Criteria andFileIdNotEqualTo(Long value) { + addCriterion("file_id <>", value, "fileId"); + return (Criteria) this; + } + + public Criteria andFileIdGreaterThan(Long value) { + addCriterion("file_id >", value, "fileId"); + return (Criteria) this; + } + + public Criteria andFileIdGreaterThanOrEqualTo(Long value) { + addCriterion("file_id >=", value, "fileId"); + return (Criteria) this; + } + + public Criteria andFileIdLessThan(Long value) { + addCriterion("file_id <", value, "fileId"); + return (Criteria) this; + } + + public Criteria andFileIdLessThanOrEqualTo(Long value) { + addCriterion("file_id <=", value, "fileId"); + return (Criteria) this; + } + + public Criteria andFileIdIn(List values) { + addCriterion("file_id in", values, "fileId"); + return (Criteria) this; + } + + public Criteria andFileIdNotIn(List values) { + addCriterion("file_id not in", values, "fileId"); + return (Criteria) this; + } + + public Criteria andFileIdBetween(Long value1, Long value2) { + addCriterion("file_id between", value1, value2, "fileId"); + return (Criteria) this; + } + + public Criteria andFileIdNotBetween(Long value1, Long value2) { + addCriterion("file_id not between", value1, value2, "fileId"); + return (Criteria) this; + } + + public Criteria andCreatedAtIsNull() { + addCriterion("created_at is null"); + return (Criteria) this; + } + + public Criteria andCreatedAtIsNotNull() { + addCriterion("created_at is not null"); + return (Criteria) this; + } + + public Criteria andCreatedAtEqualTo(Date value) { + addCriterion("created_at =", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtNotEqualTo(Date value) { + addCriterion("created_at <>", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtGreaterThan(Date value) { + addCriterion("created_at >", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtGreaterThanOrEqualTo(Date value) { + addCriterion("created_at >=", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtLessThan(Date value) { + addCriterion("created_at <", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtLessThanOrEqualTo(Date value) { + addCriterion("created_at <=", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtIn(List values) { + addCriterion("created_at in", values, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtNotIn(List values) { + addCriterion("created_at not in", values, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtBetween(Date value1, Date value2) { + addCriterion("created_at between", value1, value2, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtNotBetween(Date value1, Date value2) { + addCriterion("created_at not between", value1, value2, "createdAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtIsNull() { + addCriterion("updated_at is null"); + return (Criteria) this; + } + + public Criteria andUpdatedAtIsNotNull() { + addCriterion("updated_at is not null"); + return (Criteria) this; + } + + public Criteria andUpdatedAtEqualTo(Date value) { + addCriterion("updated_at =", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtNotEqualTo(Date value) { + addCriterion("updated_at <>", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtGreaterThan(Date value) { + addCriterion("updated_at >", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtGreaterThanOrEqualTo(Date value) { + addCriterion("updated_at >=", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtLessThan(Date value) { + addCriterion("updated_at <", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtLessThanOrEqualTo(Date value) { + addCriterion("updated_at <=", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtIn(List values) { + addCriterion("updated_at in", values, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtNotIn(List values) { + addCriterion("updated_at not in", values, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtBetween(Date value1, Date value2) { + addCriterion("updated_at between", value1, value2, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtNotBetween(Date value1, Date value2) { + addCriterion("updated_at not between", value1, value2, "updatedAt"); + return (Criteria) this; + } + + public Criteria andRecStatusIsNull() { + addCriterion("rec_status is null"); + return (Criteria) this; + } + + public Criteria andRecStatusIsNotNull() { + addCriterion("rec_status is not null"); + return (Criteria) this; + } + + public Criteria andRecStatusEqualTo(Byte value) { + addCriterion("rec_status =", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusNotEqualTo(Byte value) { + addCriterion("rec_status <>", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusGreaterThan(Byte value) { + addCriterion("rec_status >", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusGreaterThanOrEqualTo(Byte value) { + addCriterion("rec_status >=", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusLessThan(Byte value) { + addCriterion("rec_status <", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusLessThanOrEqualTo(Byte value) { + addCriterion("rec_status <=", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusIn(List values) { + addCriterion("rec_status in", values, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusNotIn(List values) { + addCriterion("rec_status not in", values, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusBetween(Byte value1, Byte value2) { + addCriterion("rec_status between", value1, value2, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusNotBetween(Byte value1, Byte value2) { + addCriterion("rec_status not between", value1, value2, "recStatus"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionIsNull() { + addCriterion("preview_description is null"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionIsNotNull() { + addCriterion("preview_description is not null"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionEqualTo(String value) { + addCriterion("preview_description =", value, "previewDescription"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionNotEqualTo(String value) { + addCriterion("preview_description <>", value, "previewDescription"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionGreaterThan(String value) { + addCriterion("preview_description >", value, "previewDescription"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionGreaterThanOrEqualTo(String value) { + addCriterion("preview_description >=", value, "previewDescription"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionLessThan(String value) { + addCriterion("preview_description <", value, "previewDescription"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionLessThanOrEqualTo(String value) { + addCriterion("preview_description <=", value, "previewDescription"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionLike(String value) { + addCriterion("preview_description like", value, "previewDescription"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionNotLike(String value) { + addCriterion("preview_description not like", value, "previewDescription"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionIn(List values) { + addCriterion("preview_description in", values, "previewDescription"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionNotIn(List values) { + addCriterion("preview_description not in", values, "previewDescription"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionBetween(String value1, String value2) { + addCriterion("preview_description between", value1, value2, "previewDescription"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionNotBetween(String value1, String value2) { + addCriterion("preview_description not between", value1, value2, "previewDescription"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/SysPlugin.java b/tall/src/main/java/com/ccsens/tall/bean/po/SysPlugin.java index bc03deca..2ea36184 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/po/SysPlugin.java +++ b/tall/src/main/java/com/ccsens/tall/bean/po/SysPlugin.java @@ -12,13 +12,19 @@ public class SysPlugin implements Serializable { private Byte scene; + private Byte showType; + private Date createdAt; private Date updatedAt; private Byte recStatus; - private Byte showType; + private Long pluginIcon; + + private Long pluginAuthor; + + private Byte pluginClass; private static final long serialVersionUID = 1L; @@ -54,6 +60,14 @@ public class SysPlugin implements Serializable { this.scene = scene; } + public Byte getShowType() { + return showType; + } + + public void setShowType(Byte showType) { + this.showType = showType; + } + public Date getCreatedAt() { return createdAt; } @@ -78,12 +92,28 @@ public class SysPlugin implements Serializable { this.recStatus = recStatus; } - public Byte getShowType() { - return showType; + public Long getPluginIcon() { + return pluginIcon; } - public void setShowType(Byte showType) { - this.showType = showType; + public void setPluginIcon(Long pluginIcon) { + this.pluginIcon = pluginIcon; + } + + public Long getPluginAuthor() { + return pluginAuthor; + } + + public void setPluginAuthor(Long pluginAuthor) { + this.pluginAuthor = pluginAuthor; + } + + public Byte getPluginClass() { + return pluginClass; + } + + public void setPluginClass(Byte pluginClass) { + this.pluginClass = pluginClass; } @Override @@ -96,10 +126,13 @@ public class SysPlugin implements Serializable { sb.append(", name=").append(name); sb.append(", description=").append(description); sb.append(", scene=").append(scene); + sb.append(", showType=").append(showType); sb.append(", createdAt=").append(createdAt); sb.append(", updatedAt=").append(updatedAt); sb.append(", recStatus=").append(recStatus); - sb.append(", showType=").append(showType); + sb.append(", pluginIcon=").append(pluginIcon); + sb.append(", pluginAuthor=").append(pluginAuthor); + sb.append(", pluginClass=").append(pluginClass); sb.append("]"); return sb.toString(); } diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/SysPluginExample.java b/tall/src/main/java/com/ccsens/tall/bean/po/SysPluginExample.java index 21985a1d..15bb9464 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/po/SysPluginExample.java +++ b/tall/src/main/java/com/ccsens/tall/bean/po/SysPluginExample.java @@ -365,6 +365,66 @@ public class SysPluginExample { return (Criteria) this; } + public Criteria andShowTypeIsNull() { + addCriterion("show_type is null"); + return (Criteria) this; + } + + public Criteria andShowTypeIsNotNull() { + addCriterion("show_type is not null"); + return (Criteria) this; + } + + public Criteria andShowTypeEqualTo(Byte value) { + addCriterion("show_type =", value, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeNotEqualTo(Byte value) { + addCriterion("show_type <>", value, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeGreaterThan(Byte value) { + addCriterion("show_type >", value, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeGreaterThanOrEqualTo(Byte value) { + addCriterion("show_type >=", value, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeLessThan(Byte value) { + addCriterion("show_type <", value, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeLessThanOrEqualTo(Byte value) { + addCriterion("show_type <=", value, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeIn(List values) { + addCriterion("show_type in", values, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeNotIn(List values) { + addCriterion("show_type not in", values, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeBetween(Byte value1, Byte value2) { + addCriterion("show_type between", value1, value2, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeNotBetween(Byte value1, Byte value2) { + addCriterion("show_type not between", value1, value2, "showType"); + return (Criteria) this; + } + public Criteria andCreatedAtIsNull() { addCriterion("created_at is null"); return (Criteria) this; @@ -545,63 +605,183 @@ public class SysPluginExample { return (Criteria) this; } - public Criteria andShowTypeIsNull() { - addCriterion("show_type is null"); + public Criteria andPluginIconIsNull() { + addCriterion("plugin_icon is null"); return (Criteria) this; } - public Criteria andShowTypeIsNotNull() { - addCriterion("show_type is not null"); + public Criteria andPluginIconIsNotNull() { + addCriterion("plugin_icon is not null"); return (Criteria) this; } - public Criteria andShowTypeEqualTo(Byte value) { - addCriterion("show_type =", value, "showType"); + public Criteria andPluginIconEqualTo(Long value) { + addCriterion("plugin_icon =", value, "pluginIcon"); return (Criteria) this; } - public Criteria andShowTypeNotEqualTo(Byte value) { - addCriterion("show_type <>", value, "showType"); + public Criteria andPluginIconNotEqualTo(Long value) { + addCriterion("plugin_icon <>", value, "pluginIcon"); return (Criteria) this; } - public Criteria andShowTypeGreaterThan(Byte value) { - addCriterion("show_type >", value, "showType"); + public Criteria andPluginIconGreaterThan(Long value) { + addCriterion("plugin_icon >", value, "pluginIcon"); return (Criteria) this; } - public Criteria andShowTypeGreaterThanOrEqualTo(Byte value) { - addCriterion("show_type >=", value, "showType"); + public Criteria andPluginIconGreaterThanOrEqualTo(Long value) { + addCriterion("plugin_icon >=", value, "pluginIcon"); return (Criteria) this; } - public Criteria andShowTypeLessThan(Byte value) { - addCriterion("show_type <", value, "showType"); + public Criteria andPluginIconLessThan(Long value) { + addCriterion("plugin_icon <", value, "pluginIcon"); return (Criteria) this; } - public Criteria andShowTypeLessThanOrEqualTo(Byte value) { - addCriterion("show_type <=", value, "showType"); + public Criteria andPluginIconLessThanOrEqualTo(Long value) { + addCriterion("plugin_icon <=", value, "pluginIcon"); return (Criteria) this; } - public Criteria andShowTypeIn(List values) { - addCriterion("show_type in", values, "showType"); + public Criteria andPluginIconIn(List values) { + addCriterion("plugin_icon in", values, "pluginIcon"); return (Criteria) this; } - public Criteria andShowTypeNotIn(List values) { - addCriterion("show_type not in", values, "showType"); + public Criteria andPluginIconNotIn(List values) { + addCriterion("plugin_icon not in", values, "pluginIcon"); return (Criteria) this; } - public Criteria andShowTypeBetween(Byte value1, Byte value2) { - addCriterion("show_type between", value1, value2, "showType"); + public Criteria andPluginIconBetween(Long value1, Long value2) { + addCriterion("plugin_icon between", value1, value2, "pluginIcon"); return (Criteria) this; } - public Criteria andShowTypeNotBetween(Byte value1, Byte value2) { - addCriterion("show_type not between", value1, value2, "showType"); + public Criteria andPluginIconNotBetween(Long value1, Long value2) { + addCriterion("plugin_icon not between", value1, value2, "pluginIcon"); + return (Criteria) this; + } + + public Criteria andPluginAuthorIsNull() { + addCriterion("plugin_author is null"); + return (Criteria) this; + } + + public Criteria andPluginAuthorIsNotNull() { + addCriterion("plugin_author is not null"); + return (Criteria) this; + } + + public Criteria andPluginAuthorEqualTo(Long value) { + addCriterion("plugin_author =", value, "pluginAuthor"); + return (Criteria) this; + } + + public Criteria andPluginAuthorNotEqualTo(Long value) { + addCriterion("plugin_author <>", value, "pluginAuthor"); + return (Criteria) this; + } + + public Criteria andPluginAuthorGreaterThan(Long value) { + addCriterion("plugin_author >", value, "pluginAuthor"); + return (Criteria) this; + } + + public Criteria andPluginAuthorGreaterThanOrEqualTo(Long value) { + addCriterion("plugin_author >=", value, "pluginAuthor"); + return (Criteria) this; + } + + public Criteria andPluginAuthorLessThan(Long value) { + addCriterion("plugin_author <", value, "pluginAuthor"); + return (Criteria) this; + } + + public Criteria andPluginAuthorLessThanOrEqualTo(Long value) { + addCriterion("plugin_author <=", value, "pluginAuthor"); + return (Criteria) this; + } + + public Criteria andPluginAuthorIn(List values) { + addCriterion("plugin_author in", values, "pluginAuthor"); + return (Criteria) this; + } + + public Criteria andPluginAuthorNotIn(List values) { + addCriterion("plugin_author not in", values, "pluginAuthor"); + return (Criteria) this; + } + + public Criteria andPluginAuthorBetween(Long value1, Long value2) { + addCriterion("plugin_author between", value1, value2, "pluginAuthor"); + return (Criteria) this; + } + + public Criteria andPluginAuthorNotBetween(Long value1, Long value2) { + addCriterion("plugin_author not between", value1, value2, "pluginAuthor"); + return (Criteria) this; + } + + public Criteria andPluginClassIsNull() { + addCriterion("plugin_class is null"); + return (Criteria) this; + } + + public Criteria andPluginClassIsNotNull() { + addCriterion("plugin_class is not null"); + return (Criteria) this; + } + + public Criteria andPluginClassEqualTo(Byte value) { + addCriterion("plugin_class =", value, "pluginClass"); + return (Criteria) this; + } + + public Criteria andPluginClassNotEqualTo(Byte value) { + addCriterion("plugin_class <>", value, "pluginClass"); + return (Criteria) this; + } + + public Criteria andPluginClassGreaterThan(Byte value) { + addCriterion("plugin_class >", value, "pluginClass"); + return (Criteria) this; + } + + public Criteria andPluginClassGreaterThanOrEqualTo(Byte value) { + addCriterion("plugin_class >=", value, "pluginClass"); + return (Criteria) this; + } + + public Criteria andPluginClassLessThan(Byte value) { + addCriterion("plugin_class <", value, "pluginClass"); + return (Criteria) this; + } + + public Criteria andPluginClassLessThanOrEqualTo(Byte value) { + addCriterion("plugin_class <=", value, "pluginClass"); + return (Criteria) this; + } + + public Criteria andPluginClassIn(List values) { + addCriterion("plugin_class in", values, "pluginClass"); + return (Criteria) this; + } + + public Criteria andPluginClassNotIn(List values) { + addCriterion("plugin_class not in", values, "pluginClass"); + return (Criteria) this; + } + + public Criteria andPluginClassBetween(Byte value1, Byte value2) { + addCriterion("plugin_class between", value1, value2, "pluginClass"); + return (Criteria) this; + } + + public Criteria andPluginClassNotBetween(Byte value1, Byte value2) { + addCriterion("plugin_class not between", value1, value2, "pluginClass"); return (Criteria) this; } } diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/PluginVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/PluginVo.java index 9ab4ceca..5c579a65 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/vo/PluginVo.java +++ b/tall/src/main/java/com/ccsens/tall/bean/vo/PluginVo.java @@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.ArrayList; import java.util.List; @Data @@ -121,6 +122,46 @@ public class PluginVo { private String projectName; } + @Data + @ApiModel("根据任务id查找插件列表(已添加)") + public static class PluginByTaskAdded { + @ApiModelProperty("插件名称") + private String pluginName; + @ApiModelProperty("插件图标") + private Long pluginIcon; + @ApiModelProperty("插件图标") + private String iconUrl; + @ApiModelProperty("插件id") + private Long pluginId; + @ApiModelProperty("插件描述") + private String description; + @ApiModelProperty("插件作者") + private Long pluginAuthor; + @ApiModelProperty("插件预览图片") + private List previewImgs = new ArrayList<>(); + + public PluginByTaskAdded() { + } + } + @Data + @ApiModel("插件预览图信息(已添加)") + public static class ImgByTaskAdded { + @ApiModelProperty("预览图id") + private Long previewId; + @ApiModelProperty("预览图描述") + private String previewDescription; + } + @Data + @ApiModel("根据任务id查找插件列表(已添加)") + public static class PluginByTaskAdded1 { + @ApiModelProperty("插件名称") + private String pluginName; + @ApiModelProperty("插件id") + private Long pluginId; + @ApiModelProperty("插件描述") + private String description; + + } } diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/ProPluginPreviewFileDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/ProPluginPreviewFileDao.java new file mode 100644 index 00000000..75a126be --- /dev/null +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/ProPluginPreviewFileDao.java @@ -0,0 +1,9 @@ +package com.ccsens.tall.persist.dao; + +import com.ccsens.tall.persist.mapper.ProPluginPreviewFileMapper; + +/** + * @author mz + */ +public interface ProPluginPreviewFileDao extends ProPluginPreviewFileMapper { +} diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/TaskPluginDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/TaskPluginDao.java index cfcc2da2..827ba286 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/TaskPluginDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/TaskPluginDao.java @@ -1,8 +1,34 @@ package com.ccsens.tall.persist.dao; +import com.ccsens.tall.bean.vo.PluginVo; import com.ccsens.tall.persist.mapper.ProTaskPluginMapper; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; +import java.util.List; + +/** + * @author mz + */ @Repository public interface TaskPluginDao extends ProTaskPluginMapper{ + /** + * 根据任务id查询插件列表(该任务已添加的) + * @param taskId 任务id + * @param roleId 角色id + * @param pluginName 插件名称 + * @param pluginType 插件类型 + * @return + */ + List findPluginOfAdded(@Param("taskId") Long taskId,@Param("roleId") Long roleId,@Param("pluginName") String pluginName,@Param("pluginType") Byte pluginType); + + /** + * 根据任务id查询插件列表(该任务未添加的) + * @param taskId 任务id + * @param roleId 角色id + * @param pluginName 插件名称 + * @param pluginType 插件类型 + * @return + */ + List findPluginOfNoAdded(@Param("taskId") Long taskId,@Param("roleId") Long roleId,@Param("pluginName") String pluginName,@Param("pluginType") Byte pluginType); } diff --git a/tall/src/main/java/com/ccsens/tall/persist/mapper/ProPluginPreviewFileMapper.java b/tall/src/main/java/com/ccsens/tall/persist/mapper/ProPluginPreviewFileMapper.java new file mode 100644 index 00000000..f82ca886 --- /dev/null +++ b/tall/src/main/java/com/ccsens/tall/persist/mapper/ProPluginPreviewFileMapper.java @@ -0,0 +1,30 @@ +package com.ccsens.tall.persist.mapper; + +import com.ccsens.tall.bean.po.ProPluginPreviewFile; +import com.ccsens.tall.bean.po.ProPluginPreviewFileExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface ProPluginPreviewFileMapper { + long countByExample(ProPluginPreviewFileExample example); + + int deleteByExample(ProPluginPreviewFileExample example); + + int deleteByPrimaryKey(Long id); + + int insert(ProPluginPreviewFile record); + + int insertSelective(ProPluginPreviewFile record); + + List selectByExample(ProPluginPreviewFileExample example); + + ProPluginPreviewFile selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") ProPluginPreviewFile record, @Param("example") ProPluginPreviewFileExample example); + + int updateByExample(@Param("record") ProPluginPreviewFile record, @Param("example") ProPluginPreviewFileExample example); + + int updateByPrimaryKeySelective(ProPluginPreviewFile record); + + int updateByPrimaryKey(ProPluginPreviewFile record); +} \ No newline at end of file diff --git a/tall/src/main/java/com/ccsens/tall/service/ISysPluginService.java b/tall/src/main/java/com/ccsens/tall/service/ISysPluginService.java index f0e27b76..0f9748c8 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ISysPluginService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ISysPluginService.java @@ -2,12 +2,18 @@ package com.ccsens.tall.service; import com.ccsens.tall.bean.dto.PluginDto; import com.ccsens.tall.bean.vo.PluginVo; +import com.github.pagehelper.PageInfo; import java.util.List; public interface ISysPluginService { - void saveSysPlugin(PluginDto.SaveSysPlugin saveSysPlugin); + /** + * 添加插件(插件总表) + * @param param + * @param userId + */ + void saveSysPlugin(PluginDto.SaveSysPlugin param,Long userId); List getPluginAll(); @@ -17,4 +23,30 @@ public interface ISysPluginService { Long getTaskDetailIdByPlugin(Long taskPluginId); + /** + * 根据任务id查询插件列表(该任务已添加的) + * @param param + * @return + */ + List findPluginOfAdded(PluginDto.FindPluginByTask param); + + /** + * 根据任务id查询插件列表(该任务未添加的的) + * @param param + * @return + */ + PageInfo findPluginOfNoAdded(PluginDto.FindPluginByTaskNo param); + + /** + * 给任务添加插件 + * @param param + */ + void addPluginForTask(PluginDto.AddPluginForTask param,Long userId); + + /** + * 给任务删除插件 + * @param param + * @param userId + */ + void deletePluginForTask(PluginDto.DeletePluginForTask param, Long userId); } diff --git a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java index 67dfd654..78a07e36 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java @@ -256,6 +256,9 @@ public class ProRoleService implements IProRoleService { @Override public int selectPowerByRoleName(Long userId, Long projectId) { int power = 0; + if (null == userId || null == projectId){ + return power; + } SysProject project = projectDao.selectByPrimaryKey(projectId); if (ObjectUtil.isNotNull(project)) { if (project.getCreatorId().longValue() == userId) { diff --git a/tall/src/main/java/com/ccsens/tall/service/SysPluginService.java b/tall/src/main/java/com/ccsens/tall/service/SysPluginService.java index 20482654..6f5d5a92 100644 --- a/tall/src/main/java/com/ccsens/tall/service/SysPluginService.java +++ b/tall/src/main/java/com/ccsens/tall/service/SysPluginService.java @@ -2,11 +2,16 @@ package com.ccsens.tall.service; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Snowflake; +import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjectUtil; import com.ccsens.tall.bean.dto.PluginDto; import com.ccsens.tall.bean.po.*; import com.ccsens.tall.bean.vo.PluginVo; import com.ccsens.tall.persist.dao.*; +import com.ccsens.util.WebConstant; +import com.ccsens.util.exception.BaseException; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -34,19 +39,190 @@ public class SysPluginService implements ISysPluginService{ private SigninFieldDao signinFieldDao; @Resource private Snowflake snowflake; + @Resource + private ProPluginPreviewFileDao proPluginPreviewFileDao; + @Resource + private ProRoleService proRoleService; + @Resource + private ProRoleDao proRoleDao; + @Resource + private ProMemberDao proMemberDao; + @Resource + private ProMemberRoleDao proMemberRoleDao; + @Resource + private TaskSubTimeDao taskSubTimeDao; /** * 添加插件 - * @param saveSysPlugin + * @param param */ @Override - public void saveSysPlugin(PluginDto.SaveSysPlugin saveSysPlugin) { + public void saveSysPlugin(PluginDto.SaveSysPlugin param,Long userId) { SysPlugin sysPlugin = new SysPlugin(); sysPlugin.setId(snowflake.nextId()); - sysPlugin.setName(saveSysPlugin.getName()); - sysPlugin.setDescription(saveSysPlugin.getDescription()); - sysPlugin.setShowType(saveSysPlugin.getShowType()); + sysPlugin.setName(param.getName()); + sysPlugin.setDescription(param.getDescription()); + sysPlugin.setShowType(param.getShowType()); + sysPlugin.setPluginIcon(param.getPluginIcon()); + sysPlugin.setPluginAuthor(param.getPluginAuthor()); + sysPlugin.setPluginClass(param.getPluginClass()); sysPluginDao.insertSelective(sysPlugin); + + //预览表中添加数据 + if (CollectionUtil.isNotEmpty(param.getPreviewImgs())){ + param.getPreviewImgs().forEach(previewImg -> { + ProPluginPreviewFile previewFile = new ProPluginPreviewFile(); + previewFile.setId(snowflake.nextId()); + previewFile.setPluginId(sysPlugin.getId()); + previewFile.setFileId(previewImg.getPreviewId()); + previewFile.setPreviewDescription(previewImg.getPreviewDescription()); + proPluginPreviewFileDao.insertSelective(previewFile); + }); + } + } + + /** + * 根据任务id查询插件列表(该任务已添加的) + * @param param + * @return + */ + @Override + public List findPluginOfAdded(PluginDto.FindPluginByTask param) { + List plugins = taskPluginDao.findPluginOfAdded(param.getTaskId(),param.getRoleId(),param.getPluginName(),param.getPluginType()); + plugins.forEach(plugin -> { + ProPluginPreviewFileExample example = new ProPluginPreviewFileExample(); + example.createCriteria().andPluginIdEqualTo(plugin.getPluginId()).andRecStatusEqualTo((byte)0); + List proPluginPreviewFiles = proPluginPreviewFileDao.selectByExample(example); + proPluginPreviewFiles.forEach(previewFile -> { + PluginVo.ImgByTaskAdded img = new PluginVo.ImgByTaskAdded(); + img.setPreviewId(previewFile.getId()); + img.setPreviewDescription(previewFile.getPreviewDescription()); + plugin.getPreviewImgs().add(img); + }); + }); + return plugins; + } + + /** + * 根据任务id查询插件列表(该任务未添加的的) + * @param param + * @return + */ + @Override + public PageInfo findPluginOfNoAdded(PluginDto.FindPluginByTaskNo param) { + PageHelper.startPage(param.getPageNum(),param.getPageSize()); + List plugins = taskPluginDao.findPluginOfNoAdded(param.getTaskId(),param.getRoleId(),param.getPluginName(),param.getPluginType()); + plugins.forEach(plugin -> { + ProPluginPreviewFileExample example = new ProPluginPreviewFileExample(); + example.createCriteria().andPluginIdEqualTo(plugin.getPluginId()).andRecStatusEqualTo((byte)0); + List proPluginPreviewFiles = proPluginPreviewFileDao.selectByExample(example); + proPluginPreviewFiles.forEach(previewFile -> { + PluginVo.ImgByTaskAdded img = new PluginVo.ImgByTaskAdded(); + img.setPreviewId(previewFile.getId()); + img.setPreviewDescription(previewFile.getPreviewDescription()); + plugin.getPreviewImgs().add(img); + }); + }); + return new PageInfo<>(plugins); + } + + /** + * 给任务添加插件 + */ + @Override + public void addPluginForTask(PluginDto.AddPluginForTask param,Long currentUserId) { + //查找分解任务,通过分级任务找到任务详情 + ProTaskSubTime proTaskSubTime = taskSubTimeDao.selectByPrimaryKey(param.getTaskId()); + if (ObjectUtil.isNull(proTaskSubTime)){ + throw new BaseException("获取任务信息错误"); + } + ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(proTaskSubTime.getTaskDetailId()); + if (ObjectUtil.isNull(taskDetail)){ + throw new BaseException("获取任务信息错误"); + } + //查找权限 + int power = proRoleService.selectPowerByRoleName(currentUserId, taskDetail.getProjectId()); + //当前用户是否是此任务的负责人 + boolean flag = false; + ProRole executorRole = proRoleDao.selectByPrimaryKey(taskDetail.getExecutorRole()); + if (executorRole.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase)) { + flag = true; + } else { + ProMemberExample memberExample = new ProMemberExample(); + memberExample.createCriteria().andUserIdEqualTo(currentUserId).andProjectIdEqualTo(taskDetail.getProjectId()); + List memberList = proMemberDao.selectByExample(memberExample); + if (CollectionUtil.isNotEmpty(memberList)) { + if (ObjectUtil.isNotNull(executorRole)) { + ProMemberRoleExample memberRoleExample = new ProMemberRoleExample(); + memberRoleExample.createCriteria().andRoleIdEqualTo(executorRole.getId()).andMemberIdEqualTo(memberList.get(0).getId()); + if (proMemberRoleDao.countByExample(memberRoleExample) != 0) { + flag = true; + } + } + } + } + + //给任务添加插件 + if (1 < power || flag){ + ProTaskPlugin taskPlugin = new ProTaskPlugin(); + taskPlugin.setId(snowflake.nextId()); + taskPlugin.setPluginId(param.getPluginId()); + taskPlugin.setTaskDetailId(taskDetail.getId()); + taskPlugin.setMemberRoleId(param.getRoleId()); + taskPluginDao.insertSelective(taskPlugin); + }else { + throw new BaseException("权限不足"); + } + } + + /** + * 给任务删除插件 + * @param param + * @param currentUserId + */ + @Override + public void deletePluginForTask(PluginDto.DeletePluginForTask param, Long currentUserId) { + //查找分解任务,通过分级任务找到任务详情 + ProTaskSubTime proTaskSubTime = taskSubTimeDao.selectByPrimaryKey(param.getTaskId()); + if (ObjectUtil.isNull(proTaskSubTime)){ + throw new BaseException("获取任务信息错误"); + } + ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(proTaskSubTime.getTaskDetailId()); + if (ObjectUtil.isNull(taskDetail)){ + throw new BaseException("获取任务信息错误"); + } + //查找权限 + int power = proRoleService.selectPowerByRoleName(currentUserId, taskDetail.getProjectId()); + //当前用户是否是此任务的负责人 + boolean flag = false; + ProRole executorRole = proRoleDao.selectByPrimaryKey(taskDetail.getExecutorRole()); + if (executorRole.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase)) { + flag = true; + } else { + ProMemberExample memberExample = new ProMemberExample(); + memberExample.createCriteria().andUserIdEqualTo(currentUserId).andProjectIdEqualTo(taskDetail.getProjectId()); + List memberList = proMemberDao.selectByExample(memberExample); + if (CollectionUtil.isNotEmpty(memberList)) { + if (ObjectUtil.isNotNull(executorRole)) { + ProMemberRoleExample memberRoleExample = new ProMemberRoleExample(); + memberRoleExample.createCriteria().andRoleIdEqualTo(executorRole.getId()).andMemberIdEqualTo(memberList.get(0).getId()); + if (proMemberRoleDao.countByExample(memberRoleExample) != 0) { + flag = true; + } + } + } + } + + //给任务删除插件 + if (1 < power || flag){ + ProTaskPluginExample taskPluginExample = new ProTaskPluginExample(); + taskPluginExample.createCriteria().andPluginIdEqualTo(param.getPluginId()) + .andTaskDetailIdEqualTo(taskDetail.getId()) + .andMemberRoleIdNotEqualTo(param.getRoleId()); + taskPluginDao.deleteByExample(taskPluginExample); + }else { + throw new BaseException("权限不足"); + } } @Override @@ -55,6 +231,7 @@ public class SysPluginService implements ISysPluginService{ return pluginInfoList; } + /** * 透过插件id查询签到的信息 */ @@ -135,4 +312,6 @@ public class SysPluginService implements ISysPluginService{ } return taskDetailId; } + + } diff --git a/tall/src/main/java/com/ccsens/tall/web/PluginController.java b/tall/src/main/java/com/ccsens/tall/web/PluginController.java index 51c54e2f..1845ebfd 100644 --- a/tall/src/main/java/com/ccsens/tall/web/PluginController.java +++ b/tall/src/main/java/com/ccsens/tall/web/PluginController.java @@ -1,5 +1,6 @@ package com.ccsens.tall.web; +import com.ccsens.tall.annotation.MustLoginTall; import com.ccsens.tall.bean.dto.PluginDto; import com.ccsens.tall.bean.dto.TaskDto; import com.ccsens.tall.bean.dto.WeekMeetingDto; @@ -11,6 +12,7 @@ import com.ccsens.util.JsonResponse; import com.ccsens.util.WebConstant; import com.ccsens.util.annotation.OperateType; import com.ccsens.util.bean.dto.QueryDto; +import com.github.pagehelper.PageInfo; import io.jsonwebtoken.Claims; import io.swagger.annotations.*; import lombok.extern.slf4j.Slf4j; @@ -30,13 +32,56 @@ public class PluginController { @Autowired private ISysPluginService sysPluginService; - @ApiOperation(value = "添加插件", notes = "") + @MustLoginTall + @ApiOperation(value = "添加插件(插件总表)", notes = "") @ApiImplicitParams({ }) @RequestMapping(value = "/save", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse saveSysPlugin(HttpServletRequest request, @ApiParam @Validated @RequestBody PluginDto.SaveSysPlugin saveSysPlugin) throws Exception { - log.info("添加一个插件:{}",saveSysPlugin); - sysPluginService.saveSysPlugin(saveSysPlugin); + public JsonResponse saveSysPlugin(HttpServletRequest request, @ApiParam @Validated @RequestBody QueryDto params) throws Exception { + log.info("添加一个插件:{}",params); + sysPluginService.saveSysPlugin(params.getParam(),params.getUserId()); + return JsonResponse.newInstance().ok(); + } + + @ApiOperation(value = "根据任务id查询插件列表(该任务已添加的)", notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/findPluginOfAdded", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> findPluginOfAdded(@ApiParam @Validated @RequestBody QueryDto params) throws Exception { + log.info("根据任务id查询已添加插件列表:{}",params); + List pluginByTaskAddedList = sysPluginService.findPluginOfAdded(params.getParam()); + return JsonResponse.newInstance().ok(pluginByTaskAddedList); + } + + @ApiOperation(value = "根据任务id查询插件列表(该任务未添加的的)", notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/findPluginOfNoAdded", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> findPluginOfNoAdded(@ApiParam @Validated @RequestBody QueryDto params) throws Exception { + log.info("根据任务id查询未添加插件列表:{}",params); + PageInfo pluginByTaskNoAddedList = sysPluginService.findPluginOfNoAdded(params.getParam()); + return JsonResponse.newInstance().ok(pluginByTaskNoAddedList); + } + + @MustLoginTall + @ApiOperation(value = "给任务添加插件", notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/addPluginForTask", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse addPluginForTask(@ApiParam @Validated @RequestBody QueryDto params) throws Exception { + log.info("给任务添加插件:{}",params); + sysPluginService.addPluginForTask(params.getParam(),params.getUserId()); + return JsonResponse.newInstance().ok(); + } + + @MustLoginTall + @ApiOperation(value = "给任务删除插件", notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/deletePluginForTask", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse deletePluginForTask(@ApiParam @Validated @RequestBody QueryDto params) throws Exception { + log.info("给任务删除插件:{}",params); + sysPluginService.deletePluginForTask(params.getParam(),params.getUserId()); return JsonResponse.newInstance().ok(); } diff --git a/tall/src/main/resources/application.yml b/tall/src/main/resources/application.yml index ebc544af..b5408a3a 100644 --- a/tall/src/main/resources/application.yml +++ b/tall/src/main/resources/application.yml @@ -1,5 +1,5 @@ spring: profiles: - active: test - include: util-test,common + active: dev + include: util-dev,common diff --git a/tall/src/main/resources/mapper_dao/TaskPluginDao.xml b/tall/src/main/resources/mapper_dao/TaskPluginDao.xml new file mode 100644 index 00000000..dac81809 --- /dev/null +++ b/tall/src/main/resources/mapper_dao/TaskPluginDao.xml @@ -0,0 +1,62 @@ + + + + + + + + + \ No newline at end of file diff --git a/tall/src/main/resources/mapper_raw/ProPluginPreviewFileMapper.xml b/tall/src/main/resources/mapper_raw/ProPluginPreviewFileMapper.xml new file mode 100644 index 00000000..71400d6d --- /dev/null +++ b/tall/src/main/resources/mapper_raw/ProPluginPreviewFileMapper.xml @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, plugin_id, file_id, created_at, updated_at, rec_status, preview_description + + + + + delete from t_pro_plugin_preview_file + where id = #{id,jdbcType=BIGINT} + + + delete from t_pro_plugin_preview_file + + + + + + insert into t_pro_plugin_preview_file (id, plugin_id, file_id, + created_at, updated_at, rec_status, + preview_description) + values (#{id,jdbcType=BIGINT}, #{pluginId,jdbcType=BIGINT}, #{fileId,jdbcType=BIGINT}, + #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT}, + #{previewDescription,jdbcType=VARCHAR}) + + + insert into t_pro_plugin_preview_file + + + id, + + + plugin_id, + + + file_id, + + + created_at, + + + updated_at, + + + rec_status, + + + preview_description, + + + + + #{id,jdbcType=BIGINT}, + + + #{pluginId,jdbcType=BIGINT}, + + + #{fileId,jdbcType=BIGINT}, + + + #{createdAt,jdbcType=TIMESTAMP}, + + + #{updatedAt,jdbcType=TIMESTAMP}, + + + #{recStatus,jdbcType=TINYINT}, + + + #{previewDescription,jdbcType=VARCHAR}, + + + + + + update t_pro_plugin_preview_file + + + id = #{record.id,jdbcType=BIGINT}, + + + plugin_id = #{record.pluginId,jdbcType=BIGINT}, + + + file_id = #{record.fileId,jdbcType=BIGINT}, + + + created_at = #{record.createdAt,jdbcType=TIMESTAMP}, + + + updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, + + + rec_status = #{record.recStatus,jdbcType=TINYINT}, + + + preview_description = #{record.previewDescription,jdbcType=VARCHAR}, + + + + + + + + update t_pro_plugin_preview_file + set id = #{record.id,jdbcType=BIGINT}, + plugin_id = #{record.pluginId,jdbcType=BIGINT}, + file_id = #{record.fileId,jdbcType=BIGINT}, + created_at = #{record.createdAt,jdbcType=TIMESTAMP}, + updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, + rec_status = #{record.recStatus,jdbcType=TINYINT}, + preview_description = #{record.previewDescription,jdbcType=VARCHAR} + + + + + + update t_pro_plugin_preview_file + + + plugin_id = #{pluginId,jdbcType=BIGINT}, + + + file_id = #{fileId,jdbcType=BIGINT}, + + + created_at = #{createdAt,jdbcType=TIMESTAMP}, + + + updated_at = #{updatedAt,jdbcType=TIMESTAMP}, + + + rec_status = #{recStatus,jdbcType=TINYINT}, + + + preview_description = #{previewDescription,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update t_pro_plugin_preview_file + set plugin_id = #{pluginId,jdbcType=BIGINT}, + file_id = #{fileId,jdbcType=BIGINT}, + created_at = #{createdAt,jdbcType=TIMESTAMP}, + updated_at = #{updatedAt,jdbcType=TIMESTAMP}, + rec_status = #{recStatus,jdbcType=TINYINT}, + preview_description = #{previewDescription,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/tall/src/main/resources/mapper_raw/SysPluginMapper.xml b/tall/src/main/resources/mapper_raw/SysPluginMapper.xml index d9e9f440..0756b261 100644 --- a/tall/src/main/resources/mapper_raw/SysPluginMapper.xml +++ b/tall/src/main/resources/mapper_raw/SysPluginMapper.xml @@ -6,10 +6,13 @@ + - + + + @@ -70,7 +73,8 @@ - id, name, description, scene, created_at, updated_at, rec_status, show_type + id, name, description, scene, show_type, created_at, updated_at, rec_status, plugin_icon, + plugin_author, plugin_class