From c007f0ca1785db093d48f4846cda82fe8e955765 Mon Sep 17 00:00:00 2001
From: kimi <kimi42345@gmail.com>
Date: 星期三, 27 五月 2020 09:59:29 +0800
Subject: [PATCH] merage

---
 src/main/java/com/highdatas/mdm/controller/MasterAuthorDetailController.java |  123 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 121 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/highdatas/mdm/controller/MasterAuthorDetailController.java b/src/main/java/com/highdatas/mdm/controller/MasterAuthorDetailController.java
index 093cce7..cd6c3d3 100644
--- a/src/main/java/com/highdatas/mdm/controller/MasterAuthorDetailController.java
+++ b/src/main/java/com/highdatas/mdm/controller/MasterAuthorDetailController.java
@@ -1,8 +1,26 @@
 package com.highdatas.mdm.controller;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.highdatas.mdm.entity.MasterAuthor;
+import com.highdatas.mdm.entity.MasterAuthorDetail;
+import com.highdatas.mdm.entity.SysField;
+import com.highdatas.mdm.pojo.CodeMsg;
+import com.highdatas.mdm.pojo.MasterAuthorType;
+import com.highdatas.mdm.pojo.Result;
+import com.highdatas.mdm.service.*;
+import com.highdatas.mdm.util.Constant;
+import com.highdatas.mdm.util.DbUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -15,5 +33,106 @@
 @RestController
 @RequestMapping("/masterAuthor/detail")
 public class MasterAuthorDetailController {
+    @Autowired
+    IMasterAuthorService masterAuthorService;
+    @Autowired
+    IMasterAuthorDetailService masterAuthorDetailService;
+    @Autowired
+    ISysFieldService fieldService;
+    @Autowired
+    IMaintainFieldService maintainFieldService;
+    @Autowired
+    IMenuMappingService menuMappingService;
 
+
+    /**
+     *
+     * @description: 鍒犻櫎涓�鏉℃潈闄愬瓧娈礽d
+     * @param id 鏉冮檺 瀛楁id
+     * @param field 瀛楁鍚嶇О
+     * @return 鍏蜂綋鏁版嵁
+     *
+     */
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
+    public Result addRole(@PathVariable String id,@RequestParam String field){
+        MasterAuthor masterAuthor = masterAuthorService.selectById(id);
+        if (masterAuthor == null) {
+            return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED);
+        }
+        boolean delete = masterAuthorDetailService.delete(new EntityWrapper<MasterAuthorDetail>()
+                .eq(Constant.PARENT_ID, masterAuthor.getId()).eq(Constant.FIELD, field));
+        if (delete) {
+            return Result.success(CodeMsg.DELETE_SUCCESS);
+        }else {
+            return Result.error(CodeMsg.DELETE_ERROR);
+        }
+    }
+
+    /**
+     *
+     * @description: 閫氳繃瀛楁鐗堟湰鑾峰彇瀛楁list
+     * @param id 瀛楁鐗堟湰
+     * @param isGroup 鏄惁涓虹敤鎴风粍
+     * @param type 鐢ㄦ埛绫诲瀷
+     * @return 瀛楁list
+     *
+     */
+    @RequestMapping(value = "/getFieldByMaintainFieldId/{id}", method = RequestMethod.GET)
+    public Result getFieldByMaintainFieldId(@PathVariable String id, @RequestParam boolean isGroup, @RequestParam MasterAuthorType type, @RequestParam String characterId, HttpServletRequest request)  {
+        List<SysField> result;
+
+        String menuId = request.getParameter("menuId");
+        String tableName = menuMappingService.getTableNameByMenu(menuId);
+        if (Constant.Default.equalsIgnoreCase(id)) {
+            if (StringUtils.isEmpty(tableName)) {
+                return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED);
+            }
+            result = fieldService.getDefaultTableField(tableName);
+        }else if (Constant.All.equalsIgnoreCase(id)) {
+            if (StringUtils.isEmpty(tableName)) {
+                return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED);
+            }
+            result = fieldService.getTotalTableField(tableName);
+        }else {
+            result = fieldService.getFieldByMaintainField(id);
+        }
+        JSONObject resultObj = new JSONObject();
+        MasterAuthor masterAuthor = masterAuthorService.selectOne(new EntityWrapper<MasterAuthor>()
+                .eq(Constant.TYPE, type)
+                .eq("user_group", isGroup)
+                .eq("table_name", tableName)
+                .eq("character_id", characterId)
+                .eq("maintain_field_id", id));
+
+        if (masterAuthor == null && type.equals(MasterAuthorType.user)) {
+            Set<String> roleIdSet;
+            if (isGroup) {
+                roleIdSet = DbUtils.getRoleByGroup(characterId);
+            } else {
+                roleIdSet = DbUtils.getRoleByUser(characterId);
+            }
+            if (roleIdSet == null || roleIdSet.isEmpty()) {
+                masterAuthor = null;
+            } else {
+                HashMap<String, MasterAuthor> tableMasterAuthor = masterAuthorService.merageRoleAuthor(roleIdSet);
+                String key = DbUtils.getFieldRedisKey(tableName, id);
+                masterAuthor = tableMasterAuthor.get(key);
+            }
+        }
+
+        if (masterAuthor == null) {
+
+            resultObj.fluentPut("unchecked", result);
+            return  Result.success(resultObj);
+        }
+        List<MasterAuthorDetail> fields = masterAuthorDetailService.selectList(new EntityWrapper<MasterAuthorDetail>().eq(Constant.PARENT_ID, masterAuthor.getId()));
+        if (fields != null) {
+            List<String> checkedFieldStrList = fields.stream().map(masterAuthorDetail -> masterAuthorDetail.getField()).collect(Collectors.toList());
+            result = result.stream().filter(sysField -> !checkedFieldStrList.contains(sysField.getField())).collect(Collectors.toList());
+        }
+
+        resultObj.fluentPut("unchecked", result);
+        resultObj.fluentPut("checked", fields);
+        return Result.success(resultObj);
+    }
 }

--
Gitblit v1.8.0