Browse Source

自定义配置类

guarantee-lsq 9 months ago
parent
commit
38aaf6b8cc

+ 2 - 0
platform-dao/src/main/java/com/platform/dao/dto/custom/CustomClassNameDTO.java

@@ -94,6 +94,8 @@ public class CustomClassNameDTO extends BaseDTO implements Serializable {
 
 
     private String titleColumnName; // 具体列名
     private String titleColumnName; // 具体列名
 
 
+    private String titleColumnCode; // 具体列编码
+
     private String handleName; // 处理类
     private String handleName; // 处理类
 
 
     private String handleCode; // 处理类编码
     private String handleCode; // 处理类编码

+ 2 - 0
platform-dao/src/main/java/com/platform/dao/dto/workflow/WorkflowDTO.java

@@ -80,4 +80,6 @@ public class WorkflowDTO extends BaseDTO implements Serializable {
      */
      */
     private String keyword;
     private String keyword;
 
 
+    private String json;
+
 }
 }

+ 2 - 0
platform-dao/src/main/java/com/platform/dao/entity/custom/CustomClassName.java

@@ -83,6 +83,8 @@ public class CustomClassName implements Serializable {
 
 
     private String titleColumnName; // 具体列名
     private String titleColumnName; // 具体列名
 
 
+    private String titleColumnCode; // 具体列编码
+
     private String handleName; // 处理类
     private String handleName; // 处理类
 
 
     private String handleCode; // 处理类编码
     private String handleCode; // 处理类编码

+ 2 - 0
platform-dao/src/main/java/com/platform/dao/entity/workflow/Workflow.java

@@ -69,4 +69,6 @@ public class Workflow implements Serializable {
     @Transient
     @Transient
     private DataScope dataScope;
     private DataScope dataScope;
 
 
+    private String json;
+
 }
 }

+ 1 - 0
platform-dao/src/main/java/com/platform/dao/mapper/custom/CustomClassNameMapper.java

@@ -23,4 +23,5 @@ public interface CustomClassNameMapper extends MyMapper<CustomClassName> {
      */
      */
     List<CustomClassNameVO> selectList(CustomClassNameDTO dto);
     List<CustomClassNameVO> selectList(CustomClassNameDTO dto);
 
 
+    List<CustomClassNameVO> getDistinctList(CustomClassNameDTO dto);
 }
 }

+ 2 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/custom/CustomClassNameVO.java

@@ -74,6 +74,8 @@ public class CustomClassNameVO extends BaseVO implements Serializable {
 
 
     private String titleColumnName; // 具体列名
     private String titleColumnName; // 具体列名
 
 
+    private String titleColumnCode; // 具体列编码
+
     private String handleName; // 处理类
     private String handleName; // 处理类
 
 
     private String handleCode; // 处理类编码
     private String handleCode; // 处理类编码

+ 1 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/workflow/WorkflowVO.java

@@ -60,5 +60,6 @@ public class WorkflowVO extends BaseVO implements Serializable {
      */
      */
     private Integer levelNode;
     private Integer levelNode;
 
 
+    private String json;
 
 
 }
 }

+ 9 - 0
platform-dao/src/main/resources/mapper/custom/CustomClassNameMapper.xml

@@ -64,4 +64,13 @@
             <include refid="List_Condition"/>
             <include refid="List_Condition"/>
         </where>
         </where>
     </select>
     </select>
+
+    <select id="getDistinctList" parameterType="com.platform.dao.dto.custom.CustomClassNameDTO" resultType="com.platform.dao.vo.query.custom.CustomClassNameVO">
+        select ccn.title_code,ccn.title_name from (select distinct title_code as titleId from t_custom_class_name
+        <where>
+            <if test="code != null and code != ''">
+                code = #{code}
+            </if>
+        </where>) t join t_custom_class_name ccn on t.titleId = ccn.title_code
+    </select>
 </mapper>
 </mapper>

+ 9 - 4
platform-rest/src/main/java/com/platform/rest/controller/custom/CustomClassNameController.java

@@ -63,7 +63,7 @@ public class CustomClassNameController {
   @SysLog("修改自定义配置类")
   @SysLog("修改自定义配置类")
   @PutMapping("/{id}")
   @PutMapping("/{id}")
   public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody CustomClassNameDTO customClassNameDTO) {
   public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody CustomClassNameDTO customClassNameDTO) {
-      customClassNameService.modModelByDTO(customClassNameDTO);
+      customClassNameService.modByDTO(customClassNameDTO);
       return new R<>();
       return new R<>();
   }
   }
 
 
@@ -111,12 +111,12 @@ public class CustomClassNameController {
   /**
   /**
    * 获取列表
    * 获取列表
    *
    *
-   * @param customClassNameDTO 自定义配置类DTO
+   * @param customClassName 自定义配置类DTO
    * @return R
    * @return R
    */
    */
   @GetMapping("")
   @GetMapping("")
-  public R query(CustomClassNameDTO customClassNameDTO) {
-      return new R<>(customClassNameService.getModelListByDTO(customClassNameDTO));
+  public R query(CustomClassName customClassName) {
+      return new R<>(customClassNameService.getModelListByModel(customClassName));
   }
   }
 
 
   /**
   /**
@@ -132,4 +132,9 @@ public class CustomClassNameController {
     ExcelUtil.exportResponseDict(response, ExportCustomClassNameVO.class, BeanConverterUtil.copyListProperties(list, ExportCustomClassNameVO.class), "自定义配置类");
     ExcelUtil.exportResponseDict(response, ExportCustomClassNameVO.class, BeanConverterUtil.copyListProperties(list, ExportCustomClassNameVO.class), "自定义配置类");
   }
   }
 
 
+  @GetMapping("/switch/handler")
+  public R queryHandler(CustomClassNameDTO customClassNameDTO) {
+    return new R<>(customClassNameService.getCustomClassNameList(customClassNameDTO));
+  }
+
 }
 }

+ 2 - 0
platform-service/src/main/java/com/platform/service/custom/CustomClassNameService.java

@@ -37,4 +37,6 @@ public interface CustomClassNameService extends IBaseService<CustomClassName, Cu
     CustomClassName saveByDTO(CustomClassNameDTO record);
     CustomClassName saveByDTO(CustomClassNameDTO record);
 
 
     void modByDTO(CustomClassNameDTO record);
     void modByDTO(CustomClassNameDTO record);
+
+    List<CustomClassNameVO> getCustomClassNameList(CustomClassNameDTO record);
 }
 }

+ 41 - 6
platform-service/src/main/java/com/platform/service/custom/impl/CustomClassNameServiceImpl.java

@@ -1,21 +1,21 @@
 package com.platform.service.custom.impl;
 package com.platform.service.custom.impl;
 
 
+import com.github.pagehelper.PageHelper;
 import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.common.exception.DeniedException;
 import com.platform.common.exception.DeniedException;
 import com.platform.common.util.StringUtils;
 import com.platform.common.util.StringUtils;
 import com.platform.dao.bean.MyPage;
 import com.platform.dao.bean.MyPage;
-import com.github.pagehelper.PageHelper;
-import com.platform.dao.enums.ClassNameCodeEnum;
-import com.platform.dao.vo.query.custom.CustomClassNameVO;
 import com.platform.dao.dto.custom.CustomClassNameDTO;
 import com.platform.dao.dto.custom.CustomClassNameDTO;
 import com.platform.dao.entity.custom.CustomClassName;
 import com.platform.dao.entity.custom.CustomClassName;
+import com.platform.dao.enums.ClassNameCodeEnum;
 import com.platform.dao.mapper.custom.CustomClassNameMapper;
 import com.platform.dao.mapper.custom.CustomClassNameMapper;
+import com.platform.dao.vo.query.custom.CustomClassNameVO;
+import com.platform.service.base.impl.BaseServiceImpl;
 import com.platform.service.custom.CustomClassNameService;
 import com.platform.service.custom.CustomClassNameService;
+import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
-import com.platform.service.base.impl.BaseServiceImpl;
 import tk.mybatis.mapper.weekend.Weekend;
 import tk.mybatis.mapper.weekend.Weekend;
 import tk.mybatis.mapper.weekend.WeekendCriteria;
 import tk.mybatis.mapper.weekend.WeekendCriteria;
-import lombok.AllArgsConstructor;
 
 
 import java.util.List;
 import java.util.List;
 
 
@@ -60,9 +60,41 @@ public class CustomClassNameServiceImpl extends BaseServiceImpl<CustomClassNameM
         if(!oldCustom.getCode().equals(record.getCode())){
         if(!oldCustom.getCode().equals(record.getCode())){
             throw new DeniedException("配置类型不可修改");
             throw new DeniedException("配置类型不可修改");
         }
         }
+        String oldCode = oldCustom.getHandleCode();
+        String oldMethodCode = oldCustom.getMethodCode();
+        String oldTitleColumnCode = oldCustom.getTitleColumnCode();
+        String oldTitleCode = oldCustom.getTitleCode();
+        CustomClassName checkQuery = new CustomClassName();
+        checkQuery.setCode(record.getCode());
+        // 修改反射类的限制条件
+        if(ClassNameCodeEnum.REFLECT.getValue().equals(record.getCode())){
+            if(!oldCode.equals(record.getCode()) || !oldMethodCode.equals(record.getMethodCode())
+                    || !oldTitleColumnCode.equals(record.getTitleColumnCode()) || !oldTitleCode.equals(record.getTitleCode())){
+                // 校验修改的唯一性
+                checkQuery.setHandleCode(record.getHandleCode());
+                checkQuery.setMethodCode(record.getMethodCode());
+                checkQuery.setTitleColumnCode(record.getTitleColumnCode());
+                checkQuery.setTitleCode(record.getTitleCode());
+                if(getCountByModel(checkQuery) > 0){
+                    throw new DeniedException("修改的数据已存在");
+                }
+            }
+        }else{
+            if(!oldTitleCode.equals(record.getTitleCode())){
+                checkQuery.setTitleCode(record.getTitleCode());
+                if(getCountByModel(checkQuery) > 0){
+                    throw new DeniedException("修改的数据已存在");
+                }
+            }
+        }
         modModelByDTO(record);
         modModelByDTO(record);
     }
     }
 
 
+    @Override
+    public List<CustomClassNameVO> getCustomClassNameList(CustomClassNameDTO record) {
+        return mapper.getDistinctList(record);
+    }
+
     private void checkPreview(CustomClassNameDTO record){
     private void checkPreview(CustomClassNameDTO record){
         if(StringUtils.isBlank(record.getTitle())){
         if(StringUtils.isBlank(record.getTitle())){
             throw new DeniedException("表名不可为空");
             throw new DeniedException("表名不可为空");
@@ -92,10 +124,13 @@ public class CustomClassNameServiceImpl extends BaseServiceImpl<CustomClassNameM
             if(StringUtils.isBlank(record.getTitleColumnName())){
             if(StringUtils.isBlank(record.getTitleColumnName())){
                 throw new DeniedException("具体列名不可为空");
                 throw new DeniedException("具体列名不可为空");
             }
             }
+            if(StringUtils.isBlank(record.getTitleColumnCode())){
+                throw new DeniedException("具体列编码不可为空");
+            }
             // 判断数据库中是否唯一
             // 判断数据库中是否唯一
             checkQuery.setHandleCode(record.getHandleCode());
             checkQuery.setHandleCode(record.getHandleCode());
             checkQuery.setMethodCode(record.getMethodCode());
             checkQuery.setMethodCode(record.getMethodCode());
-            checkQuery.setTitleColumnName(record.getTitleColumnName());
+            checkQuery.setTitleColumnCode(record.getTitleColumnCode());
         }
         }
         countNum = getCountByModel(checkQuery);
         countNum = getCountByModel(checkQuery);
         if(countNum > 0){
         if(countNum > 0){