kimi
2020-05-27 c007f0ca1785db093d48f4846cda82fe8e955765
src/main/java/com/highdatas/mdm/controller/MasterAuthorDetailController.java
@@ -6,7 +6,6 @@
import com.highdatas.mdm.entity.MasterAuthor;
import com.highdatas.mdm.entity.MasterAuthorDetail;
import com.highdatas.mdm.entity.SysField;
import com.highdatas.mdm.entity.TUserRole;
import com.highdatas.mdm.pojo.CodeMsg;
import com.highdatas.mdm.pojo.MasterAuthorType;
import com.highdatas.mdm.pojo.Result;
@@ -20,6 +19,7 @@
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
@@ -43,9 +43,16 @@
    IMaintainFieldService maintainFieldService;
    @Autowired
    IMenuMappingService menuMappingService;
    @Autowired
    ITUserRoleService userRoleService;
    /**
     *
     * @description: 删除一条权限字段id
     * @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);
@@ -61,9 +68,17 @@
        }
    }
    /**
     *
     * @description: 通过字段版本获取字段list
     * @param id 字段版本
     * @param isGroup 是否为用户组
     * @param type 用户类型
     * @return 字段list
     *
     */
    @RequestMapping(value = "/getFieldByMaintainFieldId/{id}", method = RequestMethod.GET)
    public Result getFieldByMaintainFieldId(@PathVariable String id, @RequestParam MasterAuthorType type, @RequestParam String characterId, HttpServletRequest request)  {
    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");
@@ -84,16 +99,25 @@
        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)) {
            List<TUserRole> tUserRoles = userRoleService.selectList(new EntityWrapper<TUserRole>().eq(Constant.USERID, characterId));
            List<String> roleIdList = tUserRoles.stream().map(tUserRole -> tUserRole.getRoleId()).collect(Collectors.toList());
            HashMap<String, MasterAuthor> tableMasterAuthor = masterAuthorService.merageRoleAuthor(roleIdList);
            String key = DbUtils.getFieldRedisKey(tableName, id);
            masterAuthor = tableMasterAuthor.get(key);
            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) {
@@ -106,6 +130,7 @@
            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);