guarantee-lsq 9 сар өмнө
parent
commit
c32a16e996

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

@@ -92,4 +92,10 @@ public class CustomClassNameDTO extends BaseDTO implements Serializable {
      */
     private String keyword;
 
+    private String titleColumnName; // 具体列名
+
+    private String handleName; // 处理类
+
+    private String handleCode; // 处理类编码
+
 }

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

@@ -81,4 +81,10 @@ public class CustomClassName implements Serializable {
     @Transient
     private DataScope dataScope;
 
+    private String titleColumnName; // 具体列名
+
+    private String handleName; // 处理类
+
+    private String handleCode; // 处理类编码
+
 }

+ 27 - 0
platform-dao/src/main/java/com/platform/dao/enums/ClassNameCodeEnum.java

@@ -0,0 +1,27 @@
+package com.platform.dao.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @Description 是否启用
+ * @Author liuyu
+ * @Date 2020/05/05
+ * @Version Copyright (c) 2019,合肥乾元坤合科技有限公司 All rights reserved.
+ */
+@Getter
+@AllArgsConstructor
+public enum ClassNameCodeEnum {
+
+    /**
+     * 表名
+     */
+    TABLE("table"),
+    /**
+     * 反射
+     */
+    REFLECT("reflect")
+    ;
+    private final String value;
+
+}

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

@@ -72,5 +72,10 @@ public class CustomClassNameVO extends BaseVO implements Serializable {
      */
     private String updateUserName;
 
+    private String titleColumnName; // 具体列名
+
+    private String handleName; // 处理类
+
+    private String handleCode; // 处理类编码
 
 }

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

@@ -1,23 +1,22 @@
 package com.platform.rest.controller.custom;
 
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.common.util.BeanConverterUtil;
 import com.platform.common.util.R;
+import com.platform.common.validation.group.AddGroup;
+import com.platform.common.validation.group.UpdateGroup;
 import com.platform.dao.dto.custom.CustomClassNameDTO;
 import com.platform.dao.entity.custom.CustomClassName;
-import com.platform.service.custom.CustomClassNameService;
 import com.platform.dao.util.ExcelUtil;
 import com.platform.dao.vo.export.custom.ExportCustomClassNameVO;
 import com.platform.dao.vo.query.custom.CustomClassNameVO;
-import com.platform.common.util.BeanConverterUtil;
-import com.platform.common.validation.group.AddGroup;
-import com.platform.common.validation.group.UpdateGroup;
-import org.springframework.security.access.prepost.PreAuthorize;
+import com.platform.rest.log.annotation.SysLog;
+import com.platform.service.custom.CustomClassNameService;
+import lombok.AllArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
-import lombok.AllArgsConstructor;
-import com.platform.common.bean.AbstractPageResultBean;
-import com.platform.rest.log.annotation.SysLog;
-import java.util.List;
 import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 /**
  * @Description 自定义配置类 控制器
@@ -51,9 +50,8 @@ public class CustomClassNameController {
    */
   @SysLog("新增自定义配置类")
   @PostMapping
-  @PreAuthorize("@pms.hasPermission('custom-className-add')")
   public R save(@Validated({AddGroup.class}) @RequestBody CustomClassNameDTO customClassNameDTO) {
-      return new R<>(customClassNameService.saveModelByDTO(customClassNameDTO));
+      return new R<>(customClassNameService.saveByDTO(customClassNameDTO));
   }
 
   /**
@@ -64,7 +62,6 @@ public class CustomClassNameController {
    */
   @SysLog("修改自定义配置类")
   @PutMapping("/{id}")
-  @PreAuthorize("@pms.hasPermission('custom-className-edit')")
   public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody CustomClassNameDTO customClassNameDTO) {
       customClassNameService.modModelByDTO(customClassNameDTO);
       return new R<>();
@@ -80,7 +77,6 @@ public class CustomClassNameController {
    */
   @SysLog("删除自定义配置类")
   @DeleteMapping("/{id}")
-  @PreAuthorize("@pms.hasPermission('custom-className-del')")
   public R removeById(@PathVariable String id){
     customClassNameService.deleteByPrimaryKey(id);
     return new R<>();
@@ -94,7 +90,6 @@ public class CustomClassNameController {
      */
     @SysLog("批量删除自定义配置类")
     @DeleteMapping("")
-    @PreAuthorize("@pms.hasPermission('custom-className-del')")
     public R removeIds(@RequestBody List<String> ids){
         customClassNameService.batchDelete(ids);
         return new R<>();
@@ -132,7 +127,6 @@ public class CustomClassNameController {
      */
   @GetMapping("/export")
   @SysLog("自定义配置类导出")
-  @PreAuthorize("@pms.hasPermission('custom-className-export')")
   public void export(HttpServletResponse response, CustomClassNameDTO customClassNameDTO) {
     List<CustomClassName> list = customClassNameService.getModelListByDTO(customClassNameDTO);
     ExcelUtil.exportResponseDict(response, ExportCustomClassNameVO.class, BeanConverterUtil.copyListProperties(list, ExportCustomClassNameVO.class), "自定义配置类");

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

@@ -34,4 +34,7 @@ public interface CustomClassNameService extends IBaseService<CustomClassName, Cu
      */
     AbstractPageResultBean<CustomClassNameVO> selectPageList(CustomClassNameDTO record, int pageNum, int pageSize);
 
+    CustomClassName saveByDTO(CustomClassNameDTO record);
+
+    void modByDTO(CustomClassNameDTO record);
 }

+ 62 - 1
platform-service/src/main/java/com/platform/service/custom/impl/CustomClassNameServiceImpl.java

@@ -1,8 +1,11 @@
 package com.platform.service.custom.impl;
 
 import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.common.exception.DeniedException;
+import com.platform.common.util.StringUtils;
 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.entity.custom.CustomClassName;
@@ -10,7 +13,6 @@ import com.platform.dao.mapper.custom.CustomClassNameMapper;
 import com.platform.service.custom.CustomClassNameService;
 import org.springframework.stereotype.Service;
 import com.platform.service.base.impl.BaseServiceImpl;
-import org.springframework.transaction.annotation.Transactional;
 import tk.mybatis.mapper.weekend.Weekend;
 import tk.mybatis.mapper.weekend.WeekendCriteria;
 import lombok.AllArgsConstructor;
@@ -42,6 +44,65 @@ public class CustomClassNameServiceImpl extends BaseServiceImpl<CustomClassNameM
         return new MyPage(mapper.selectList(record));
     }
 
+    @Override
+    public CustomClassName saveByDTO(CustomClassNameDTO record) {
+        checkPreview(record);
+        return saveModelByDTO(record);
+    }
+
+    @Override
+    public void modByDTO(CustomClassNameDTO record) {
+        if(StringUtils.isBlank(record.getId())){
+            throw new DeniedException("修改ID不可为空");
+        }
+        CustomClassName oldCustom = mapper.selectByPrimaryKey(record.getId());
+        // 不给修改code类型
+        if(!oldCustom.getCode().equals(record.getCode())){
+            throw new DeniedException("配置类型不可修改");
+        }
+        modModelByDTO(record);
+    }
+
+    private void checkPreview(CustomClassNameDTO record){
+        if(StringUtils.isBlank(record.getTitle())){
+            throw new DeniedException("表名不可为空");
+        }
+        if(StringUtils.isBlank(record.getTitleCode())){
+            throw new DeniedException("表名编码不可为空");
+        }
+        String code = record.getCode();
+        if(StringUtils.isBlank(code)){
+            throw new DeniedException("配置类型不可为空");
+        }
+        CustomClassName checkQuery = new CustomClassName();
+        checkQuery.setCode(record.getCode());
+        checkQuery.setTitleCode(record.getTitleCode());
+        int countNum = 0;
+        if(code.equals(ClassNameCodeEnum.REFLECT.getValue())){
+            // 反射类
+            if(StringUtils.isBlank(record.getHandleName())){
+                throw new DeniedException("处理类不可为空");
+            }
+            if(StringUtils.isBlank(record.getHandleCode())){
+                throw new DeniedException("处理类编码不可为空");
+            }
+            if(StringUtils.isBlank(record.getMethodCode())){
+                throw new DeniedException("方法名不可为空");
+            }
+            if(StringUtils.isBlank(record.getTitleColumnName())){
+                throw new DeniedException("具体列名不可为空");
+            }
+            // 判断数据库中是否唯一
+            checkQuery.setHandleCode(record.getHandleCode());
+            checkQuery.setMethodCode(record.getMethodCode());
+            checkQuery.setTitleColumnName(record.getTitleColumnName());
+        }
+        countNum = getCountByModel(checkQuery);
+        if(countNum > 0){
+            throw new DeniedException("录入数据已存在");
+        }
+    }
+
     @Override
     public AbstractPageResultBean<CustomClassName> selectPageInfo(CustomClassNameDTO record, int pageNum, int pageSize) {
         PageHelper.startPage(pageNum, pageSize);