From 92b586e7d47167421f6500be641734acebeacd79 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期五, 15 三月 2024 20:39:30 +0800
Subject: [PATCH] 分类管理、字段管理接口

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbFieldServiceImpl.java |  118 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 118 insertions(+), 0 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbFieldServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbFieldServiceImpl.java
index 89e2c66..521952d 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbFieldServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbFieldServiceImpl.java
@@ -1,10 +1,33 @@
 package com.ruoyi.system.service.impl;
 
+import cn.hutool.json.JSONArray;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.basic.PageDTO;
+import com.ruoyi.common.enums.FieldInputTypeEnum;
+import com.ruoyi.common.enums.FieldTypeEnum;
+import com.ruoyi.common.utils.BeanUtils;
+import com.ruoyi.common.utils.CollUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.domain.TbBasicDataConfig;
 import com.ruoyi.system.domain.TbField;
+import com.ruoyi.system.domain.TbFieldCategory;
+import com.ruoyi.system.dto.FieldDTO;
+import com.ruoyi.system.dto.ShowHideDTO;
 import com.ruoyi.system.mapper.TbFieldMapper;
+import com.ruoyi.system.query.FieldQuery;
+import com.ruoyi.system.service.TbBasicDataConfigService;
+import com.ruoyi.system.service.TbFieldCategoryService;
 import com.ruoyi.system.service.TbFieldService;
+import com.ruoyi.system.vo.FieldVO;
+import lombok.Data;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -14,7 +37,102 @@
  * @author mitao
  * @since 2024-03-13
  */
+@Slf4j
 @Service
+@RequiredArgsConstructor
 public class TbFieldServiceImpl extends ServiceImpl<TbFieldMapper, TbField> implements TbFieldService {
+    private final TbFieldCategoryService tbFieldCategoryService;
+    private final TbBasicDataConfigService tbBasicDataConfigService;
 
+    @Override
+    public void add(FieldDTO dto) {
+        //参数校验
+        Integer fieldType = dto.getFieldType();
+        //1:数字 2:文本 3:百分比
+        if (FieldTypeEnum.TEXT.getCode().equals(fieldType)) {
+            if (StringUtils.isNull(dto.getTextInputType())) {
+                throw new RuntimeException("输入类型不能为空");
+            } else if (FieldInputTypeEnum.FIXED_CONTENT.getCode().equals(dto.getTextInputType()) && StringUtils.isBlank(dto.getTextContent())) {
+                throw new RuntimeException("内容设置不能为空");
+            }
+        }
+        TbField tbField = BeanUtils.copyBean(dto, TbField.class);
+        TbFieldCategory category1 = tbFieldCategoryService.getById(dto.getLevelOneCategoryId());
+        tbField.setLevelOneCategory(category1.getFieldCategoryName());
+        if (StringUtils.isNotNull(dto.getLevelTwoCategoryId())) {
+            TbFieldCategory category2 = tbFieldCategoryService.getById(dto.getLevelTwoCategoryId());
+            tbField.setLevelTwoCategory(category2.getFieldCategoryName());
+        }
+        if (StringUtils.isNotNull(dto.getLevelThreeCategoryId())) {
+            TbFieldCategory category3 = tbFieldCategoryService.getById(dto.getLevelThreeCategoryId());
+            tbField.setLevelThreeCategory(category3.getFieldCategoryName());
+        }
+        this.save(tbField);
+    }
+
+    @Override
+    public void showHide(ShowHideDTO dto) {
+        TbField field = this.getById(dto.getId());
+        if (StringUtils.isNull(field)) {
+            throw new RuntimeException("非法参数");
+        }
+        //隐藏字段
+        this.lambdaUpdate().set(TbField::getStatus, dto.getStatus()).eq(TbField::getId, dto.getId()).update();
+        //隐藏基础数据 TODO
+        tbBasicDataConfigService.lambdaUpdate().eq(TbBasicDataConfig::getFieldId, dto.getId()).set(TbBasicDataConfig::getStatus, dto.getStatus()).update();
+    }
+
+    @Override
+    public PageDTO<FieldVO> queryPage(FieldQuery query) {
+        Page<TbField> page = this.lambdaQuery()
+                .like(StringUtils.isNotEmpty(query.getFieldName()), TbField::getFieldName, query.getFieldName())
+                .like(StringUtils.isNotEmpty(query.getLevelOneCategory()), TbField::getLevelOneCategory, query.getLevelOneCategory())
+                .like(StringUtils.isNotEmpty(query.getLevelTwoCategory()), TbField::getLevelTwoCategory, query.getLevelTwoCategory())
+                .like(StringUtils.isNotEmpty(query.getLevelThreeCategory()), TbField::getLevelThreeCategory, query.getLevelThreeCategory())
+                .eq(StringUtils.isNotNull(query.getStatus()), TbField::getStatus, query.getStatus())
+                .eq(StringUtils.isNotNull(query.getFieldType()), TbField::getFieldType, query.getFieldType())
+                .orderByDesc(TbField::getCreateTime)
+                .page(new Page<>(query.getPageNum(), query.getPageSize()));
+        if (CollUtils.isEmpty(page.getRecords())) {
+            return PageDTO.empty(page);
+        }
+        return PageDTO.of(page, FieldVO.class);
+    }
+
+    @Override
+    public List<String> influencedData(Integer id) {
+        List<TbBasicDataConfig> list = tbBasicDataConfigService.lambdaQuery().eq(TbBasicDataConfig::getFieldId, id).list();
+        if (CollUtils.isEmpty(list)) {
+            return CollUtils.emptyList();
+        }
+        return list.stream().map(TbBasicDataConfig::getTypeName).collect(Collectors.toList());
+    }
+
+    public static void main(String[] args) {
+        String string = "蓝色_10,红色_20,绿色_30";
+        String[] split = string.split(",");
+        for (String s : split) {
+            String[] split1 = s.split("_");
+            System.out.println(split1[1]);
+        }
+        //百分比1_百分比2:得分
+        String string1 = "10_20:50,20_30:50,30_40:60";
+        CalculateDTO calculateDTO = new CalculateDTO();
+        calculateDTO.setKey("10_20");
+        calculateDTO.setValue("20");
+        CalculateDTO calculateDTO1 = new CalculateDTO();
+        calculateDTO1.setKey("20_30");
+        calculateDTO1.setValue("30");
+        List<CalculateDTO> list = new ArrayList<>();
+        list.add(calculateDTO);
+        list.add(calculateDTO1);
+        JSONArray objects = new JSONArray(list);
+        String jsonString = objects.toJSONString(2);
+        System.err.println(jsonString);
+    }
 }
+@Data
+class CalculateDTO{
+    private String key;
+    private String value;
+}
\ No newline at end of file

--
Gitblit v1.7.1