kimi
2020-03-31 74472c9d22dddcb41383794caf0011043b20f817
src/main/java/com/highdatas/mdm/service/impl/MenuMappingServiceImpl.java
@@ -14,12 +14,8 @@
import com.highdatas.mdm.mapper.MenuMappingMapper;
import com.highdatas.mdm.mapper.TableInfoMapper;
import com.highdatas.mdm.pojo.CodeMsg;
import com.highdatas.mdm.pojo.MaintainDataType;
import com.highdatas.mdm.pojo.Result;
import com.highdatas.mdm.service.ActivitiService;
import com.highdatas.mdm.service.IMaintainService;
import com.highdatas.mdm.service.IMenuMappingService;
import com.highdatas.mdm.service.ISysMenuService;
import com.highdatas.mdm.service.*;
import com.highdatas.mdm.util.Constant;
import com.highdatas.mdm.util.DbUtils;
import com.highdatas.mdm.util.WorkflowUtils;
@@ -55,6 +51,10 @@
    @Autowired
    ISysMenuService menuService;
    @Autowired
    IMaintainFieldService maintainFieldService;
    @Autowired
    IMasterAuthorService masterAuthorService;
    public static final String key = "process";
@@ -82,6 +82,14 @@
            menuMapping = objectMapper.readValue(json, MenuMapping.class);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
            return null;
        }
        String menuId = menuMapping.getMenuId();
        if (StringUtils.isEmpty(menuId)) {
            return null;
        }
        int cnt = selectCount(new EntityWrapper<MenuMapping>().eq("menu_id", menuId));
        if (cnt != 0)  {
            return null;
        }
        //menuMapping.setMaintainFieldId(maintainId);
@@ -128,7 +136,6 @@
        } else {
            return null;
        }
    }
    @Override
@@ -142,49 +149,80 @@
            e.printStackTrace();
            return false;
        }
        //only update no join
        //update menu name
        String menuId = menuMapping.getMenuId();
        SysMenu sysMenu = menuService.selectById(menuId);
        if (sysMenu == null) {
            return false;
        }
        sysMenu.setName(menuMapping.getName());
        sysMenu.updateById();
        return this.updateById(menuMapping);
    }
    @Override
    public Result getMapping(HttpSession session, String id) {
        SysMenu sysMenu = menuService.selectById(id);
        MaintainDataType dataType = sysMenu.getDataType();
        if (sysMenu == null) {
            return Result.error(CodeMsg.SELECT_ERROR);
        }
        String menuType = sysMenu.getMenuType();
        if (!StringUtils.isEmpty(menuType) && menuType.equalsIgnoreCase("DataMenu")) {
            Map mapping = menuMappingMapper.getMapping(id);
            return Result.success(mapping);
        }else if (!StringUtils.isEmpty(menuType) && menuType.equalsIgnoreCase("StructureMenu")) {
        if (StringUtils.isEmpty(menuType)) {
            return Result.error(CodeMsg.SELECT_ERROR);
        }
        if (menuType.equalsIgnoreCase("StructureMenu")) {
            return Result.success(null);
        }
        Wrapper<MenuMapping> menuWrapper = new EntityWrapper<MenuMapping>().eq("menu_id", sysMenu.getParentId());
        Map mapping = menuMappingMapper.getMapping(id);
        Wrapper<MenuMapping> menuWrapper = new EntityWrapper<MenuMapping>().eq("menu_id", sysMenu.getId());
        MenuMapping menuMapping = selectOne(menuWrapper);
        if (menuMapping == null) {
            return Result.error(new CodeMsg(10008,"当前主题无版本数据"));
        }
        String tableName = menuMapping.getTableName();
        Maintain resultMaintain = null;
        switch (dataType) {
            case beforeData:
                resultMaintain = maintainService.getRecentHistoryVersion(tableName);
                break;
            case afterData:
               break;
            case currentData:
                resultMaintain = maintainService.getNowVersion(tableName);
                break;
            default:
                Result.error(new CodeMsg(10008,"当前主题无版本数据"));
                break;
        }
        Map<String, Object> mapping = menuMappingMapper.getMapping(sysMenu.getParentId());
        String tableName = menuMapping.getTableName();
        TUser user = (TUser) session.getAttribute(Constant.USER);
        Maintain resultMaintain = masterAuthorService.getMaxVersionMaintain(user.getUserId(), tableName);
        if (resultMaintain != null) {
            Maintain nowVersion = maintainService.getNowVersion(tableName);
            if (nowVersion.getOrderNo().equals(resultMaintain.getOrderNo())) {
                mapping.put("maintainType", 0);
            }else {
                mapping.put("maintainType", 1);
            }
            mapping.put("version", resultMaintain.getVersion());
            mapping.put("maintainId", resultMaintain.getId());
        }
        mapping.put("dataType", sysMenu.getDataType());
        return Result.success(mapping);
    }
    @Override
    public SysMenu getMenuByTableName(String tableName) {
        MenuMapping menuMapping = selectOne(new EntityWrapper<MenuMapping>().eq("table_name", tableName).orderBy("create_time desc"));
        if (menuMapping == null) {
            return null;
        }
        String menuId = menuMapping.getMenuId();
        SysMenu sysMenu = menuService.selectById(menuId);
        return sysMenu;
    }
    @Override
    public String getTableNameByMenu(String menuId) {
        MenuMapping menuMapping = selectOne(new EntityWrapper<MenuMapping>().eq("menu_id", menuId).orderBy("create_time desc"));
        if (menuMapping == null) {
            return null;
        }
        return menuMapping.getTableName();
    }
}