diff --git a/tduck-account/src/main/java/com/tduck/cloud/account/entity/UserEntity.java b/tduck-account/src/main/java/com/tduck/cloud/account/entity/UserEntity.java index 0b6dfbf..235f461 100644 --- a/tduck-account/src/main/java/com/tduck/cloud/account/entity/UserEntity.java +++ b/tduck-account/src/main/java/com/tduck/cloud/account/entity/UserEntity.java @@ -11,7 +11,7 @@ import java.time.LocalDateTime; /** * 用户(AcUser)表实体类 * - * @author makejava + * @author smalljop * @since 2020-11-10 18:10:40 */ @Data diff --git a/tduck-account/src/main/java/com/tduck/cloud/account/mapper/UserMapper.java b/tduck-account/src/main/java/com/tduck/cloud/account/mapper/UserMapper.java index 6d62abe..825538a 100644 --- a/tduck-account/src/main/java/com/tduck/cloud/account/mapper/UserMapper.java +++ b/tduck-account/src/main/java/com/tduck/cloud/account/mapper/UserMapper.java @@ -6,7 +6,7 @@ import com.tduck.cloud.account.entity.UserEntity; /** * 用户(AcUser)表数据库访问层 * - * @author makejava + * @author smalljop * @since 2020-11-10 18:10:41 */ public interface UserMapper extends BaseMapper { diff --git a/tduck-account/src/main/java/com/tduck/cloud/account/service/UserService.java b/tduck-account/src/main/java/com/tduck/cloud/account/service/UserService.java index 943edc1..5a2e924 100644 --- a/tduck-account/src/main/java/com/tduck/cloud/account/service/UserService.java +++ b/tduck-account/src/main/java/com/tduck/cloud/account/service/UserService.java @@ -12,7 +12,7 @@ import com.tduck.cloud.common.util.Result; /** * 用户(AcUser)表服务接口 * - * @author makejava + * @author smalljop * @since 2020-11-10 18:10:42 */ public interface UserService extends IService { diff --git a/tduck-account/src/main/java/com/tduck/cloud/account/service/impl/UserServiceImpl.java b/tduck-account/src/main/java/com/tduck/cloud/account/service/impl/UserServiceImpl.java index 851f602..0ea1b62 100644 --- a/tduck-account/src/main/java/com/tduck/cloud/account/service/impl/UserServiceImpl.java +++ b/tduck-account/src/main/java/com/tduck/cloud/account/service/impl/UserServiceImpl.java @@ -32,7 +32,7 @@ import java.time.LocalDateTime; /** * 用户(AcUser)表服务实现类 * - * @author makejava + * @author smalljop * @since 2020-11-10 18:10:43 */ @Service("userService") diff --git a/tduck-api/src/main/java/com/tduck/cloud/api/web/controller/UserProjectLogicController.java b/tduck-api/src/main/java/com/tduck/cloud/api/web/controller/UserProjectLogicController.java index c26bf9d..9ce9e4b 100644 --- a/tduck-api/src/main/java/com/tduck/cloud/api/web/controller/UserProjectLogicController.java +++ b/tduck-api/src/main/java/com/tduck/cloud/api/web/controller/UserProjectLogicController.java @@ -1,19 +1,48 @@ package com.tduck.cloud.api.web.controller; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.tduck.cloud.api.annotation.Login; +import com.tduck.cloud.common.util.Result; +import com.tduck.cloud.project.entity.UserProjectItemEntity; +import com.tduck.cloud.project.entity.UserProjectLogicEntity; +import com.tduck.cloud.project.service.UserProjectLogicService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import javax.validation.constraints.NotBlank; +import java.util.List; /** * @author : smalljop - * @description : 项目 + * @description : 项目逻辑 * @create : 2020-11-18 18:17 **/ -@RequiredArgsConstructor -@RestController @Slf4j +@RestController +@RequiredArgsConstructor public class UserProjectLogicController { + private final UserProjectLogicService projectLogicService; + + @Login + @PostMapping("/user/project/logic/save") + public Result saveUserProjectLogic(@RequestBody UserProjectLogicEntity userProjectLogicEntity) { + projectLogicService.saveOrUpdate(userProjectLogicEntity); + return Result.success(userProjectLogicEntity); + } + + @Login + @PostMapping("/user/project/logic/delete") + public Result deleteUserProjectLogic(@RequestBody UserProjectLogicEntity userProjectLogicEntity) { + return Result.success(projectLogicService.removeById(userProjectLogicEntity)); + } + @Login + @GetMapping("/user/project/logic/list") + public Result queryProjectItem(@RequestParam @NotBlank String projectKey) { + List entityList = projectLogicService.list(Wrappers.lambdaQuery().eq(UserProjectLogicEntity::getProjectKey, projectKey)); + return Result.success(entityList); + } } \ No newline at end of file diff --git a/tduck-project/src/main/java/com/tduck/cloud/project/entity/ProjectTemplateItemEntity.java b/tduck-project/src/main/java/com/tduck/cloud/project/entity/ProjectTemplateItemEntity.java index 61bc45c..7c94d89 100644 --- a/tduck-project/src/main/java/com/tduck/cloud/project/entity/ProjectTemplateItemEntity.java +++ b/tduck-project/src/main/java/com/tduck/cloud/project/entity/ProjectTemplateItemEntity.java @@ -32,7 +32,7 @@ public class ProjectTemplateItemEntity extends BaseEntity { /** * 表单项Id */ - private String formItemId; + private Long formItemId; /** * 表单项类型 */ diff --git a/tduck-project/src/main/java/com/tduck/cloud/project/entity/UserProjectLogicEntity.java b/tduck-project/src/main/java/com/tduck/cloud/project/entity/UserProjectLogicEntity.java new file mode 100644 index 0000000..dab6935 --- /dev/null +++ b/tduck-project/src/main/java/com/tduck/cloud/project/entity/UserProjectLogicEntity.java @@ -0,0 +1,66 @@ +package com.tduck.cloud.project.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.tduck.cloud.common.entity.BaseEntity; +import com.tduck.cloud.common.mybatis.handler.JacksonTypeHandler; +import com.tduck.cloud.project.entity.enums.ProjectLogicExpressionEnum; +import lombok.Data; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotBlank; +import java.util.Set; + +/** + * 项目逻辑(UserProjectLogic)表实体类 + * + * @author smalljop + * @since 2020-05-01 13:36:27 + */ +@Data +@Accessors(chain = true) +@TableName(value = "pr_user_project_logic", autoResultMap = true) +public class UserProjectLogicEntity extends BaseEntity { + private Long id; + /** + * 项目key + */ + @NotBlank(message = "projectKey不能为空") + private String projectKey; + /** + * 表单项Id + */ + private Long formItemId; + /** + * 条件成立的表达式 + */ + private ProjectLogicExpressionEnum expression; + + + /** + * 条件 + */ + @TableField(typeHandler = JacksonTypeHandler.class) + private Set conditionList; + + + /** + * 条件 + */ + @Data + public static class Condition { + /** + * 表单项Id + */ + private Long formItemId; + /** + * 表达式 + */ + private String expression; + /** + * 选项 + */ + private Object optionValue; + } + +} \ No newline at end of file diff --git a/tduck-project/src/main/java/com/tduck/cloud/project/entity/enums/ProjectLogicConditionExpressionEnum.java b/tduck-project/src/main/java/com/tduck/cloud/project/entity/enums/ProjectLogicConditionExpressionEnum.java new file mode 100644 index 0000000..58f36c6 --- /dev/null +++ b/tduck-project/src/main/java/com/tduck/cloud/project/entity/enums/ProjectLogicConditionExpressionEnum.java @@ -0,0 +1,45 @@ +package com.tduck.cloud.project.entity.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + + +/** + * @author : smalljop + * @description :逻辑条件 + * @create : 2020-12-04 13:35 + **/ +@Getter +@AllArgsConstructor +public enum ProjectLogicConditionExpressionEnum { + + EQ("eq", "等于"), + NE("ne", "不等于"); + + + @EnumValue + @JsonValue + private String value; + + private String desc; + + + /** + * 枚举入参注解 + * + * @param value + * @return + */ + @JsonCreator + public static ProjectLogicConditionExpressionEnum getByValue(Integer value) { + for (ProjectLogicConditionExpressionEnum typeEnum : values()) { + if (typeEnum.getValue().equals(value)) { + return typeEnum; + } + } + return null; + } +} diff --git a/tduck-project/src/main/java/com/tduck/cloud/project/entity/enums/ProjectLogicExpressionEnum.java b/tduck-project/src/main/java/com/tduck/cloud/project/entity/enums/ProjectLogicExpressionEnum.java new file mode 100644 index 0000000..fe04360 --- /dev/null +++ b/tduck-project/src/main/java/com/tduck/cloud/project/entity/enums/ProjectLogicExpressionEnum.java @@ -0,0 +1,45 @@ +package com.tduck.cloud.project.entity.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + + +/** + * @author : smalljop + * @description :逻辑条件 + * @create : 2020-12-04 13:35 + **/ +@Getter +@AllArgsConstructor +public enum ProjectLogicExpressionEnum { + + ALL(1, "全部"), + ANY(2, "任意"); + + + @EnumValue + @JsonValue + private Integer value; + + private String desc; + + + /** + * 枚举入参注解 + * + * @param value + * @return + */ + @JsonCreator + public static ProjectLogicExpressionEnum getByValue(Integer value) { + for (ProjectLogicExpressionEnum typeEnum : values()) { + if (typeEnum.getValue().equals(value)) { + return typeEnum; + } + } + return null; + } +} diff --git a/tduck-project/src/main/java/com/tduck/cloud/project/mapper/UserProjectItemMapper.java b/tduck-project/src/main/java/com/tduck/cloud/project/mapper/UserProjectItemMapper.java index 37ad647..2a3569b 100644 --- a/tduck-project/src/main/java/com/tduck/cloud/project/mapper/UserProjectItemMapper.java +++ b/tduck-project/src/main/java/com/tduck/cloud/project/mapper/UserProjectItemMapper.java @@ -6,7 +6,7 @@ import com.tduck.cloud.project.entity.UserProjectItemEntity; /** * 项目表单项(ProjectItem)表数据库访问层 * - * @author makejava + * @author smalljop * @since 2020-11-19 10:49:17 */ public interface UserProjectItemMapper extends BaseMapper { diff --git a/tduck-project/src/main/java/com/tduck/cloud/project/mapper/UserProjectLogicMapper.java b/tduck-project/src/main/java/com/tduck/cloud/project/mapper/UserProjectLogicMapper.java new file mode 100644 index 0000000..8a455c8 --- /dev/null +++ b/tduck-project/src/main/java/com/tduck/cloud/project/mapper/UserProjectLogicMapper.java @@ -0,0 +1,15 @@ +package com.tduck.cloud.project.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.tduck.cloud.project.entity.UserProjectEntity; +import com.tduck.cloud.project.entity.UserProjectLogicEntity; + +/** + * 用户项目逻辑表(UserProjectLogic)表数据库访问层 + * + * @author smalljop + * @since 2020-11-18 18:16:17 + */ +public interface UserProjectLogicMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/tduck-project/src/main/java/com/tduck/cloud/project/mapper/UserProjectMapper.java b/tduck-project/src/main/java/com/tduck/cloud/project/mapper/UserProjectMapper.java index 59fc5be..7d59ccd 100644 --- a/tduck-project/src/main/java/com/tduck/cloud/project/mapper/UserProjectMapper.java +++ b/tduck-project/src/main/java/com/tduck/cloud/project/mapper/UserProjectMapper.java @@ -6,7 +6,7 @@ import com.tduck.cloud.project.entity.UserProjectEntity; /** * 项目表(Project)表数据库访问层 * - * @author makejava + * @author smalljop * @since 2020-11-18 18:16:17 */ public interface UserProjectMapper extends BaseMapper { diff --git a/tduck-project/src/main/java/com/tduck/cloud/project/service/UserProjectItemService.java b/tduck-project/src/main/java/com/tduck/cloud/project/service/UserProjectItemService.java index f71a202..97092f2 100644 --- a/tduck-project/src/main/java/com/tduck/cloud/project/service/UserProjectItemService.java +++ b/tduck-project/src/main/java/com/tduck/cloud/project/service/UserProjectItemService.java @@ -8,7 +8,7 @@ import java.util.List; /** * 项目表单项(ProjectItem)表服务接口 * - * @author makejava + * @author smalljop * @since 2020-11-19 10:49:17 */ public interface UserProjectItemService extends IService { diff --git a/tduck-project/src/main/java/com/tduck/cloud/project/service/UserProjectLogicService.java b/tduck-project/src/main/java/com/tduck/cloud/project/service/UserProjectLogicService.java new file mode 100644 index 0000000..efe08bb --- /dev/null +++ b/tduck-project/src/main/java/com/tduck/cloud/project/service/UserProjectLogicService.java @@ -0,0 +1,7 @@ +package com.tduck.cloud.project.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.tduck.cloud.project.entity.UserProjectLogicEntity; + +public interface UserProjectLogicService extends IService { +} diff --git a/tduck-project/src/main/java/com/tduck/cloud/project/service/UserProjectService.java b/tduck-project/src/main/java/com/tduck/cloud/project/service/UserProjectService.java index 7f4e712..f5c79bd 100644 --- a/tduck-project/src/main/java/com/tduck/cloud/project/service/UserProjectService.java +++ b/tduck-project/src/main/java/com/tduck/cloud/project/service/UserProjectService.java @@ -6,7 +6,7 @@ import com.tduck.cloud.project.entity.UserProjectEntity; /** * 项目表(Project)表服务接口 * - * @author makejava + * @author smalljop * @since 2020-11-18 18:16:18 */ public interface UserProjectService extends IService { diff --git a/tduck-project/src/main/java/com/tduck/cloud/project/service/impl/UserProjectItemServiceImpl.java b/tduck-project/src/main/java/com/tduck/cloud/project/service/impl/UserProjectItemServiceImpl.java index 2638db3..7f21f4b 100644 --- a/tduck-project/src/main/java/com/tduck/cloud/project/service/impl/UserProjectItemServiceImpl.java +++ b/tduck-project/src/main/java/com/tduck/cloud/project/service/impl/UserProjectItemServiceImpl.java @@ -12,7 +12,7 @@ import java.util.List; /** * 项目表单项(ProjectItem)表服务实现类 * - * @author makejava + * @author smalljop * @since 2020-11-19 10:49:18 */ @Service("userProjectItemService") diff --git a/tduck-project/src/main/java/com/tduck/cloud/project/service/impl/UserProjectLogicServiceImpl.java b/tduck-project/src/main/java/com/tduck/cloud/project/service/impl/UserProjectLogicServiceImpl.java new file mode 100644 index 0000000..bb97742 --- /dev/null +++ b/tduck-project/src/main/java/com/tduck/cloud/project/service/impl/UserProjectLogicServiceImpl.java @@ -0,0 +1,12 @@ +package com.tduck.cloud.project.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.tduck.cloud.project.entity.UserProjectLogicEntity; +import com.tduck.cloud.project.mapper.UserProjectLogicMapper; +import com.tduck.cloud.project.service.UserProjectLogicService; +import org.springframework.stereotype.Service; + + +@Service("userProjectLogicService") +public class UserProjectLogicServiceImpl extends ServiceImpl implements UserProjectLogicService { +} diff --git a/tduck-project/src/main/java/com/tduck/cloud/project/service/impl/UserProjectResultServiceImpl.java b/tduck-project/src/main/java/com/tduck/cloud/project/service/impl/UserProjectResultServiceImpl.java index ff24ebc..6b9816f 100644 --- a/tduck-project/src/main/java/com/tduck/cloud/project/service/impl/UserProjectResultServiceImpl.java +++ b/tduck-project/src/main/java/com/tduck/cloud/project/service/impl/UserProjectResultServiceImpl.java @@ -76,7 +76,7 @@ public class UserProjectResultServiceImpl extends ServiceImpl userProjectItemEntityList = userProjectItemService.listByProjectKey(projectKey); // excel 标题列 List titleList = userProjectItemEntityList.stream() - .map(item -> new ExportProjectResultVO.ExcelHeader(item.getFormItemId(), item.getLabel())) + .map(item -> new ExportProjectResultVO.ExcelHeader(item.getFormItemId().toString(), item.getLabel())) .collect(Collectors.toList()); //结果 List resultEntityList = this.list(Wrappers.lambdaQuery() diff --git a/tduck-project/src/main/java/com/tduck/cloud/project/service/impl/UserProjectServiceImpl.java b/tduck-project/src/main/java/com/tduck/cloud/project/service/impl/UserProjectServiceImpl.java index ab7d3ef..a3119dc 100644 --- a/tduck-project/src/main/java/com/tduck/cloud/project/service/impl/UserProjectServiceImpl.java +++ b/tduck-project/src/main/java/com/tduck/cloud/project/service/impl/UserProjectServiceImpl.java @@ -11,7 +11,7 @@ import org.springframework.stereotype.Service; /** * 项目表(Project)表服务实现类 * - * @author makejava + * @author smalljop * @since 2020-11-18 18:16:18 */ @Service("userProjectService") diff --git a/tduck-project/src/main/java/com/tduck/cloud/project/util/SortUtils.java b/tduck-project/src/main/java/com/tduck/cloud/project/util/SortUtils.java index 38ef879..b4e593f 100644 --- a/tduck-project/src/main/java/com/tduck/cloud/project/util/SortUtils.java +++ b/tduck-project/src/main/java/com/tduck/cloud/project/util/SortUtils.java @@ -15,6 +15,7 @@ import org.springframework.stereotype.Component; *

* 拖动排序工具类 * 算法参考 @link https://www.zhihu.com/question/55789722 + * * @author smalljop */ @RequiredArgsConstructor