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/SysViewController.java | 246 +++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 197 insertions(+), 49 deletions(-) diff --git a/src/main/java/com/highdatas/mdm/controller/SysViewController.java b/src/main/java/com/highdatas/mdm/controller/SysViewController.java index 9797310..c606a77 100644 --- a/src/main/java/com/highdatas/mdm/controller/SysViewController.java +++ b/src/main/java/com/highdatas/mdm/controller/SysViewController.java @@ -1,18 +1,15 @@ package com.highdatas.mdm.controller; -import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.highdatas.mdm.entity.*; import com.highdatas.mdm.mapper.TableInfoMapper; -import com.highdatas.mdm.mapper.UserMapper; import com.highdatas.mdm.pojo.CodeMsg; import com.highdatas.mdm.pojo.Result; import com.highdatas.mdm.pojo.ViewMapFieldItem; import com.highdatas.mdm.service.*; -import com.highdatas.mdm.util.AESUtil; import com.highdatas.mdm.util.Constant; import com.highdatas.mdm.util.DbUtils; import lombok.SneakyThrows; @@ -29,7 +26,7 @@ * <p> * 鍓嶇鎺у埗鍣� * </p> - * + * @desctiption 瑙嗗浘鎺ュ彛 * @author kimi * @since 2020-04-15 */ @@ -45,8 +42,6 @@ @Autowired ISysMenuService menuService; @Autowired - UserMapper mapper; - @Autowired IMasterAuthorService masterAuthorService; @Autowired MasterDataService masterDataService; @@ -59,51 +54,37 @@ @Autowired ISysViewLogicmapService logicmapService; - @SneakyThrows - @RequestMapping(value = "/test", method = RequestMethod.GET) - public Result test(HttpServletRequest request) throws Exception { - List<Map<String, Object>> test = mapper.test(); - String keys = "ismytestkeys"; - byte[] secretKey = AESUtil.getSecretKey(keys); - String content = JSONArray.toJSONString(test); - long start = System.currentTimeMillis(); - byte[] bytes = content.getBytes("utf-8"); - int length = bytes.length; - System.out.println(length + "K"); - String s = AESUtil.aesPKCS7PaddingEncrypt(content, secretKey.toString()); - long end = System.currentTimeMillis(); - float time = (end - start) ; - System.out.println(time + "s"); - return Result.success(s); - } - - @RequestMapping(value = "/test1", method = RequestMethod.GET) - public Result test1(HttpServletRequest request) throws InterruptedException { - Thread.sleep(3000); - return Result.success(null); - } - + /** + * + * @description: By鐢ㄦ埛鑾峰彇瑙嗗浘list + * @param userId 鐢ㄦ埛id + * @return: 瑙嗗浘list + * + */ @RequestMapping(value = "/all/{userId}", method = RequestMethod.GET) public Result getAll(@PathVariable String userId, HttpServletRequest request) { - //TODO + //ByuserId 鑾峰彇瑙嗗浘鍒楄〃 Wrapper<SysView> eq = new EntityWrapper<SysView>().eq(Constant.USERID, userId); List<SysView> records = viewService.selectList(eq); for (SysView record : records) { String id = record.getId(); - String baseMaintainStr = record.getBaseMaintain(); - Maintain baseMaintain = viewService.getBaseMaintain(record); + //鏍¢獙鍩哄噯鐗堟湰鏄惁瀛樺湪 if (baseMaintain == null) { continue; } + //鑾峰彇 鐗堟湰鍙凤紝琛ㄥ悕杩斿洖鍓嶇 record.setBaseTableName(baseMaintain.getTableName()); record.setBaseVersion(baseMaintain.getVersion()); String menuId = record.getMenuId(); SysMenu sysMenu = menuService.selectById(menuId); + //鏍¢獙涓婚鏄惁瀛樺湪 if (sysMenu == null) { continue; } + //鑾峰彇涓婚鍚嶇О杩斿洖鍓嶇 record.setMenuName(sysMenu.getName()); + //鑾峰彇鍏宠仈涓婚 List<SysViewJoin> sysViewJoins = sysViewJoinService.selectList(new EntityWrapper<SysViewJoin>().eq(Constant.PARENT_ID, id)); List<String> menuIds = sysViewJoins.stream() .map(sysViewJoin -> sysViewJoin.getMenuId()) @@ -112,6 +93,7 @@ List<SysMenu> sysMenus = menuService.selectBatchIds(menuIds); Collections.reverse(sysMenus); String subMenuName = sysMenus.stream().map(subMenu -> subMenu.getName()).collect(Collectors.joining(Constant.SEMICOLON)); + //鑾峰彇鍏宠仈涓婚鐨勫悕绉扮粍鍚堝悗杩斿洖缁欏墠绔� record.setSubMenuName(subMenuName); } @@ -119,32 +101,61 @@ return Result.success(records); } + /** + * + * @description: 鏇存柊瑙嗗浘鏁版嵁 + * @param id 瑙嗗浘id + * @return: 鏄惁鏇存柊鎴愬姛 + * + */ @RequestMapping(value = "/refreshData/{id}", method = RequestMethod.GET) public Result createView(@RequestParam String id, @RequestParam Boolean active) { + //鑾峰彇瑙嗗浘淇℃伅 SysView sysView = viewService.selectById(id); if (sysView == null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } + //浠庢柊鍒涘缓瑙嗗浘 viewService.createView(sysView.getId()); return Result.success(sysView); } + /** + * + * @description: 淇濆瓨鍏宠仈瀛楁淇℃伅 + * @param id 瑙嗗浘id + * @param mapField 鍏宠仈瀛楁 + * @return: 鏄惁淇濆瓨鎴愬姛 + * + */ @RequestMapping(value = "/saveMapField/{id}", method = RequestMethod.GET) public Result saveMapField(@RequestParam String id, @RequestParam String mapField) { + //鑾峰彇瑙嗗浘淇℃伅 SysView sysView = viewService.selectById(id); if (sysView == null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } + //淇濆瓨鍏宠仈瀛楁 sysView.setMappingField(mapField).updateById(); return Result.success(sysView); } + /** + * + * @description: 鍒涘缓瑙嗗浘 + * @param id 瑙嗗浘id + * @return: 鏄惁鍒涘缓鎴愬姛 + * + */ + @RequestMapping(value = "/createView/{id}", method = RequestMethod.GET) public Result createView(@PathVariable String id) { + //鑾峰彇瑙嗗浘淇℃伅 SysView sysView = viewService.selectById(id); if (sysView == null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } + //鍒涘缓瑙嗗浘 boolean view = viewService.createView(sysView.getId()); if (view) { return Result.success(null); @@ -154,20 +165,39 @@ } - + /** + * + * @description: 鏇存柊瑙嗗浘婵�娲荤姸鎬� + * @param id 瑙嗗浘id + * @return: 鏄惁鏇存柊鎴愬姛 + * + */ @RequestMapping(value = "/active/{id}", method = RequestMethod.GET) public Result active(@PathVariable String id, @RequestParam Boolean active) { + //鑾峰彇瑙嗗浘淇℃伅 SysView sysView = viewService.selectById(id); if (sysView == null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } + //鏇存柊婵�娲荤姸鎬� sysView.setActive(active).updateById(); return Result.success(sysView); } + /** + * + * @description: 鑾峰彇瑙嗗浘鏁版嵁 + * @param id 瑙嗗浘id + * @param pageNo 椤垫暟 + * @return: 瑙嗗浘鏈悗鎹� + * + */ + @RequestMapping(value = "/getViewData/{id}/page/{pageNo}", method = RequestMethod.GET) public Result getViewData(@PathVariable String id, @PathVariable Integer pageNo, HttpServletRequest request) { + //pageSize 锛屾瘡椤垫暟鎹噺 String pageSizeStr = request.getParameter("pageSize"); + //鑾峰彇瑙嗗浘鏁版嵁 SysView sysView = viewService.selectById(id); if (sysView == null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); @@ -176,13 +206,22 @@ if (!StringUtils.isEmpty(pageSizeStr)) { pageSize = Integer.valueOf(pageSizeStr); } - + //鍒嗛〉鑾峰彇瑙嗗浘鏁版嵁 return viewService.getViewData(sysView, pageNo, pageSize); } + /** + * + * @description: 鑾峰彇瑙嗗浘涓�瀵逛竴杞崲鐨刴ap鏁版嵁 + * @param id 瑙嗗浘id + * @param pageNo 椤垫暟 + * @return: map鏁版嵁 + * + */ @RequestMapping(value = "/getMapData/{id}/page/{pageNo}", method = RequestMethod.GET) public Result getMapData(@PathVariable String id, @PathVariable Integer pageNo, @RequestParam String changedField, HttpServletRequest request) { + //pageSize 姣忛〉鏁版嵁 String pageSizeStr = request.getParameter("pageSize"); SysView sysView = viewService.selectById(id); if (sysView == null) { @@ -192,25 +231,47 @@ if (!StringUtils.isEmpty(pageSizeStr)) { pageSize = Integer.valueOf(pageSizeStr); } + //鑾峰彇maping鐨勬暟鎹� return viewService.getMapData(sysView, changedField, pageNo, pageSize); } + /** + * + * @description: 閫氳繃鐢ㄦ埛鑾峰彇鏈夋潈闄愮殑瀛楁 + * @param userId 鐢ㄦ埛id + * @param needUpdate 鏄惁闇�瑕佷粠鏂拌幏鍙栦竴閬嶆暟鎹� + * @param maintainId 鐗堟湰id + * @return: 瀛楁鍒楄〃 + * + */ + @RequestMapping(value = "/field/{userId}", method = RequestMethod.GET) public Result<List<SysField>> fieldList(@PathVariable String userId, @RequestParam boolean needUpdate, @RequestParam String maintainId, HttpServletRequest request) { + //璇锋眰澶撮噷鑾峰彇鐢ㄦ埛淇℃伅 TUser user = DbUtils.getUserById(userId); if (user == null) { return Result.error(CodeMsg.USER_NOT_MATHED); } + if (needUpdate) { + //浠庢柊鑾峰彇涓�閬嶆渶鏂扮殑鐗堟湰瀛楁 Maintain nowVersion = maintainService.getNowVersion(maintainId); List<SysField> field = masterAuthorService.getField(user, nowVersion.getId()); return Result.success(field) ; } + //鏍规嵁鏉冮檺鑾峰彇瀛楁 List<SysField> field = masterAuthorService.getField(user, maintainId); return Result.success(field) ; } + /** + * + * @description: 鑾峰彇瑙嗗浘涓�瀵逛竴杞崲鐨刴ap鏁版嵁 + * @param id 瑙嗗浘id + * @return: map鏁版嵁 + * + */ @RequestMapping(value = "/mapFieldList/{id}", method = RequestMethod.GET) public Result active(@PathVariable String id) { SysView sysView = viewService.selectById(id); @@ -222,6 +283,13 @@ return Result.success(mapField); } + /** + * + * @description: 鑾峰彇瑙嗗浘鏁版嵁 + * @param id 瑙嗗浘id + * @return: 瑙嗗浘鏁版嵁 + * + */ @RequestMapping(value = "/get/{id}", method = RequestMethod.GET) public Result get(@PathVariable String id) { SysView sysView = viewService.selectById(id); @@ -229,6 +297,7 @@ return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } String menuId = sysView.getMenuId(); + //鑾峰彇涓婚鐨勭埗绾т富棰橀摼 LinkedHashSet<String> parentIdSet = new LinkedHashSet<>(); parentIdSet.add(menuId); LinkedHashSet<String> byParentId = menuService.getByParentId(parentIdSet); @@ -236,8 +305,10 @@ Collections.reverse(strings); String collect = strings.stream().collect(Collectors.joining(Constant.SEMICOLON)); sysView.setMenuName(collect); + //鑾峰彇鍏宠仈涓婚 List<SysViewJoin> sysViewJoins = sysViewJoinService.selectList(new EntityWrapper<SysViewJoin>().eq(Constant.PARENT_ID, id)); for (SysViewJoin sysViewJoin : sysViewJoins) { + //鑾峰彇鍏宠仈涓婚鐨勭埗绾т富棰橀摼 parentIdSet.clear(); parentIdSet.add(sysViewJoin.getMenuId()); LinkedHashSet<String> subParent = menuService.getByParentId(parentIdSet); @@ -252,17 +323,27 @@ sysView.setLogicmapList(sysViewLogicmaps); return Result.success(sysView); } - + /** + * + * @description: 鑾峰彇鍙敤瑙嗗浘 + * @param userId 鐢ㄦ埛id + * @return: 瑙嗗浘鏁� + * + */ @RequestMapping(value = "/getCnt/{userId}", method = RequestMethod.GET) public Result cnt(@PathVariable String userId, HttpServletRequest request) { + //鑾峰彇鐢ㄦ埛淇℃伅 TUser user = DbUtils.getUserById(userId); if (user == null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } Wrapper<SysView> userWrapper = new EntityWrapper<SysView>().eq("user_id", userId); + //鑾峰彇瑙嗗浘鎬绘暟 int totalCnt = viewService.selectCount(userWrapper); + //鍙敤瑙嗗浘鏁� userWrapper.eq("active", true); int activeCnt = viewService.selectCount(userWrapper); + //宸叉敞鍐岃鍥炬暟 userWrapper.eq("subscribe", true); int subscribeCnt = viewService.selectCount(userWrapper); JSONObject object = new JSONObject(); @@ -272,37 +353,62 @@ return Result.success(object); } - + /** + * + * @description: 鍒涘缓瑙嗗浘 + * @param userId 鐢ㄦ埛id + * @return: 瑙嗗浘鏁版嵁 + * + */ @RequestMapping(value = "/create/{userId}", method = RequestMethod.GET) public Result add(@PathVariable String userId, HttpServletRequest request) { SysView sysView = new SysView(); + //璁剧疆瑙嗗浘鍒濆鏁版嵁 sysView.setId(DbUtils.getUUID()) .setUserId(userId) .setCreateTime(new Date()) .setStatus(ViewStatus.edit) .setEmptyData(true) .insert(); + //鐢熸垚骞朵繚瀛榤apping琛� 琛ㄥ悕 viewService.getMappingTableName(sysView); return Result.success(sysView); } + /** + * + * @description: 鍒犻櫎涓�瀵逛竴mapping + * @param id 瑙嗗浘id + * @return: map鏁版嵁 + * + */ @SneakyThrows @RequestMapping(value = "/deleteMap/{id}", method = RequestMethod.GET) public Result deleteMap(@PathVariable String id, @RequestParam String changedField) { + //鑾峰彇瑙嗗浘鏁版嵁 SysView sysView = viewService.selectById(id); if (sysView == null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } - + //鍒犻櫎mapping瀛楁 viewService.deleteMapField(sysView, changedField); logicmapService.delete(new EntityWrapper<SysViewLogicmap>().eq(Constant.PARENT_ID, id).eq(Constant.FIELD, changedField)); List<SysViewLogicmap> sysViewLogicmaps = logicmapService.selectList(new EntityWrapper<SysViewLogicmap>().eq(Constant.PARENT_ID, sysView.getId())); sysView.setLogicmapList(sysViewLogicmaps); return Result.success(sysView); } + /** + * + * @description: 鍒犻櫎鍏宠仈涓婚鏁版嵁 + * @param id 瑙嗗浘鍏宠仈涓婚id + * @return: 鏄惁鍒犻櫎鎴愬姛 + * + */ + @SneakyThrows @RequestMapping(value = "/delete/detail/{id}", method = RequestMethod.GET) public Result deleteDetail(@PathVariable String id) { + //鑾峰彇鍏宠仈涓婚鏁版嵁 SysViewJoin sysViewJoin = sysViewJoinService.selectById(id); if (sysViewJoin == null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); @@ -310,18 +416,21 @@ String parentId = sysViewJoin.getParentId(); SysView sysView = viewService.selectById(parentId); String userId = sysView.getUserId(); + //鑾峰彇鐢ㄦ埛淇℃伅 TUser user = DbUtils.getUserById(userId); + //鑾峰彇鍏宠仈涓婚淇℃伅 Maintain joinMaintain = viewService.getJoinMaintain(sysViewJoin); List<String> subFieldList = viewService.getSubFieldList(sysViewJoin, user); boolean delete = false; for (String subField: subFieldList) { String changeFieldName = viewService.changeFieldName(joinMaintain.getTableName(), subField); - logicService.delete(new EntityWrapper<SysViewLogic>() + logicmapService.delete(new EntityWrapper<SysViewLogicmap>() .eq(Constant.PARENT_ID, sysView.getId()) .eq(Constant.FIELD, changeFieldName) ); + //鍒犻櫎1瀵�1mapping 琛ㄥ唴鏁版嵁 delete = viewService.deleteMapField(sysView, changeFieldName); } if (delete) { @@ -330,7 +439,13 @@ return Result.error(CodeMsg.DELETE_ERROR); } } - + /** + * + * @description: 鍒犻櫎瑙嗗浘 + * @param id 瑙嗗浘id + * @return: 鏄惁鍒犻櫎 + * + */ @SneakyThrows @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) @@ -338,16 +453,27 @@ return viewService.deleteView(id); } + /** + * + * @description: 閫氳繃鐢ㄦ埛鑾峰彇鏌愪富棰樹笅鐨勭増鏈唱椋� + * @param userId 鐢ㄦ埛id + * @param menuId 涓婚 + * @return: map鏁版嵁 + * + */ @RequestMapping(value = "/maintainList/{userId}", method = RequestMethod.GET) public Result add(@PathVariable String userId, @RequestParam String menuId, HttpServletRequest request) { + //鑾峰彇鐢ㄦ埛淇℃伅 TUser user = DbUtils.getUserById(userId); if (user == null) { return Result.error(CodeMsg.USER_NOT_MATHED); } + //鑾峰彇琛ㄥ悕 String tableNameByMenu = menuMappingService.getTableNameByMenu(menuId); if (StringUtils.isEmpty(tableNameByMenu)) { return Result.error(CodeMsg.SELECT_ERROR_NOTFOUND); } + //鑾峰彇鐗堟湰list LinkedHashSet<Maintain> maintainSet = masterAuthorService.getMaintainSet(tableNameByMenu, user); ArrayList<Maintain> maintains = new ArrayList<>(maintainSet); for (Maintain maintain : maintains) { @@ -360,24 +486,35 @@ maintains.add(0, max); return Result.success(maintains); } - + /** + * + * @description: 鏇存柊瑙嗗浘 + * @return: 瑙嗗浘鏁版嵁 + * + */ @RequestMapping(value = "/update", method = RequestMethod.POST) public Result add(@RequestBody SysView view) { + //鏍¢獙蹇呬紶瀛楁 if (StringUtils.isEmpty(view.getId())) { return Result.error(CodeMsg.SELECT_ERROR_NOTFOUND); } if (StringUtils.isEmpty(view.getMenuId()) || StringUtils.isEmpty(view.getBaseMaintain()) ) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } - List<SysViewLogicmap> logicmapList = view.getLogicmapList(); - - logicmapService.delete(new EntityWrapper<SysViewLogicmap>().eq(Constant.PARENT_ID, view.getId())); - - for (SysViewLogicmap logicmap : logicmapList) { - logicmap.setId(DbUtils.getUUID()).setParentId(view.getId()).insert(); + if (StringUtils.isEmpty(view.getViewTableName())) { + viewService.getViewTableName(view); } + List<SysViewLogicmap> logicmapList = view.getLogicmapList(); + //delete 涔嬪墠鍏宠仈鐨勯�昏緫杞崲 鏁版嵁 + logicmapService.delete(new EntityWrapper<SysViewLogicmap>().eq(Constant.PARENT_ID, view.getId())); + if (logicmapList != null) { + for (SysViewLogicmap logicmap : logicmapList) { + logicmap.setId(DbUtils.getUUID()).setParentId(view.getId()).insert(); + } + } + view.setEmptyData(false).setStatus(ViewStatus.edit); - //delete + //delete 涔嬪墠鍏宠仈涓婚鏁版嵁 sysViewJoinService.delete(new EntityWrapper<SysViewJoin>().eq(Constant.PARENT_ID, view.getId())); List<SysViewJoin> viewJoinList = view.getViewJoinList(); @@ -392,19 +529,30 @@ view.updateById(); return Result.success(view); } + /** + * + * @description: 涓嬭浇瑙嗗浘涓�瀵逛竴杞崲鐨刴ap鏁版嵁 + * @param id 瑙嗗浘id + * @param menuId 涓婚id + * @param field 瀛楁 + * @return: map鏁版嵁 + * + */ @SneakyThrows @RequestMapping(value = "/download/{id}", method = RequestMethod.GET) public void download(@PathVariable String id, @RequestParam String menuId, @RequestParam String field, HttpServletResponse response) { - + //鑾峰彇瑙嗗浘淇℃伅 SysView sysView = viewService.selectById(id); if (sysView == null) { return; } String userId = sysView.getUserId(); + //鑾峰彇鐢ㄦ埛淇℃伅 TUser user = DbUtils.getUserById(userId); if (user == null) { return; } + //涓嬭浇鏌愪釜涓婚涓嬬殑瀛楁鍏宠仈鐨�1瀵�1 mapping鏁版嵁 viewService.downlodMap(sysView,user, response, field, menuId); } } -- Gitblit v1.8.0