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