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/AssembleController.java | 190 ++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 171 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/highdatas/mdm/controller/AssembleController.java b/src/main/java/com/highdatas/mdm/controller/AssembleController.java index e4dee9f..b02e33a 100644 --- a/src/main/java/com/highdatas/mdm/controller/AssembleController.java +++ b/src/main/java/com/highdatas/mdm/controller/AssembleController.java @@ -15,6 +15,7 @@ import com.highdatas.mdm.service.*; import com.highdatas.mdm.util.Constant; import com.highdatas.mdm.util.DbUtils; +import com.highdatas.mdm.util.RuleClient; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -60,13 +61,24 @@ UnBigDataDataSourceInfo unBigDataDataSourceInfo; @Autowired JobClient client; + @Autowired + RuleClient ruleClient; + /** + * + * @description: 绔嬪嵆鎵ц姹囬泦娴佺▼ + * @param id 姹囬泦娴佺▼鐨刬d + * @return: result 鏄惁璋冭捣xxljob鎴愬姛 + * + */ @RequestMapping(value = "run/{id}", method = RequestMethod.GET) public Result trigger(@PathVariable String id, HttpServletRequest request) { + //閫氳繃id鑾峰彇姹囬泦淇℃伅 SysAssemble assemble = assembleService.selectById(id); if (assemble == null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } + //璋冭捣xxljob 鎵ц涓�娆� 鎺ュ彛 boolean trigger = client.trigger(assemble); if (trigger) { return Result.success(null); @@ -75,6 +87,12 @@ } } + /** + * + * @description: 淇敼xxljob jobGroup淇℃伅 鎵嬪姩鑾峰彇ip淇℃伅 + * @return: result 淇濆瓨鏄惁鎴愬姛 + * + */ @RequestMapping(value = "saveJobGroup", method = RequestMethod.GET) public Result saveJobGroup(HttpServletRequest request) { boolean b = client.saveJobGroup(); @@ -85,6 +103,28 @@ } } + /** + * + * @description: 淇敼xxljob jobGroup淇℃伅 鑷姩鑾峰彇ip淇℃伅 + * @return: result 淇濆瓨鏄惁鎴愬姛 + * + */ + @RequestMapping(value = "saveAutoJobGroup", method = RequestMethod.GET) + public Result saveAutoJobGroup(HttpServletRequest request) { + boolean b = client.saveAutoJobGroup(); + if (b) { + return Result.success(null); + }else { + return Result.error(CodeMsg.OPERATR_ERROR); + } + } + + /** + * + * @description: 鍒犻櫎xxljob jobGroup淇℃伅 + * @return: result 淇濆瓨鏄惁鎴愬姛 + * + */ @RequestMapping(value = "deleteJobGroup", method = RequestMethod.GET) public Result deleteJobGroup(HttpServletRequest request) { boolean b = client.saveJobGroup(); @@ -95,16 +135,24 @@ } } - + /** + * + * @description: 鏂板缓姹囬泦璁板綍 + * @return: result 鏂板缓鏄惁鎴愬姛 + * + */ @RequestMapping(value = "new", method = RequestMethod.GET) - public Result delete(HttpServletRequest request) { + public Result newAssemble(HttpServletRequest request) { SysAssemble assemble = new SysAssemble(); + //鑾峰彇鐢ㄦ埛淇℃伅 TUser user = DbUtils.getUser(request); + //淇濆瓨鍒濆姹囬泦淇℃伅 assemble.setStatus(SysAssembleStatus.edit).setCreateTime(new Date()).setUserId(user.getUserId()).setUpdateType(SysAssembleUpdateType.All); + //淇濆瓨杩涙暟鎹簱 boolean insert = assemble.setId(DbUtils.getUUID()).setEmptyData(true).insert(); if (insert) { String assembleId = assemble.getId(); - // 鍒涘缓job鐨勬椂鍊欏皢鎵�鏈� 閫氱敤鍙傛暟鎼竴浠借繃鍘� + // 鍒涘缓job鐨勬椂鍊欏皢鎵�鏈� 閫氱敤鍙傛暟鎼竴浠借繃鍘� 閫氱敤鍙傛暟 瑙� sys_assemble_commonparams List<SysAssembleCommonparams> sysAssembleCommonparams = commonparamsService.selectList(null); for (SysAssembleCommonparams commonParam : sysAssembleCommonparams) { SysAssembleParams sysAssembleParams = new SysAssembleParams(); @@ -123,17 +171,31 @@ } - + /** + * + * @description: 淇濆瓨姹囬泦鐨勫熀纭�淇℃伅 + * @param menuId : 涓婚id + * @param id 姹囬泦id + * @param bigData 淇濆瓨鏁版嵁搴撻�夋嫨 + * @param updateType 鏇存柊绫诲瀷 + * @param updateFields 鍞竴瀛楁 + * @return: result 淇濆瓨鏄惁鎴愬姛 + * + */ @RequestMapping(value = "/saveCommon/{id}", method = RequestMethod.GET) public Result saveCommon(@PathVariable String id, @RequestParam String menuId, @RequestParam SysAssembleUpdateType updateType, @RequestParam Boolean bigData, @RequestParam String updateFields, HttpServletRequest request) { + //閫氳繃id鑾峰彇姹囬泦璁板綍 SysAssemble assemble = assembleService.selectById(id); if (assemble == null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } + //淇濆瓨璇锋眰杩囨潵鐨勬暟鎹� assemble.setUpdateType(updateType).setUpdateFields(updateFields); assemble.setEmptyData(false); assemble.setBigdata(Boolean.valueOf(bigData)); + //璇锋眰澶撮噷闈㈣幏鍙栫敤鎴蜂俊鎭� TUser user = DbUtils.getUser(request); + //鏇存柊鏁版嵁搴撻噷鐨勪俊鎭� boolean insert = assemble.setUserId(user.getUserId()).setMenuId(menuId).setUpdateTime(new Date()).updateById(); if (insert) { @@ -142,14 +204,23 @@ return Result.error(CodeMsg.INSERT_ERROR); } } + /** + * + * @description: 鍒犻櫎姹囬泦浠诲姟 + * @param id 姹囬泦id + * @return: result 鍒犻櫎鏄惁鎴愬姛 + * + */ @Transactional(rollbackFor=Exception.class) @RequestMapping(value = "delete/{id}", method = RequestMethod.GET) public Result delete(@PathVariable String id) throws Exception { + //閫氳繃id鑾峰彇姹囬泦璁板綍 SysAssemble assemble = assembleService.selectById(id); if (assemble == null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } + //鑾峰彇姹囬泦鏁版嵁淇濆瓨鍦ㄥ摢涓暟鎹簱 Boolean bigdata = assemble.getBigdata(); DataSourceInfo dataSourceInfo; if (bigdata) { @@ -157,17 +228,17 @@ }else { dataSourceInfo = unBigDataDataSourceInfo; } - //delete db + //寰幆鍒犻櫎 姹囬泦鏁版嵁婧愪俊鎭� List<SysAssembleDb> dbList = dbService.selectList(new EntityWrapper<SysAssembleDb>().eq(Constant.PARENT_ID, id)); for (SysAssembleDb sysAssembleDb : dbList) { String dbId = sysAssembleDb.getId(); - //delete table + //寰幆鍒犻櫎姹囬泦鏁版嵁婧愪腑閫変腑鐨勮〃淇℃伅 Wrapper<SysAssembleDbTable> eq = new EntityWrapper<SysAssembleDbTable>().eq(Constant.PARENT_ID, dbId); List<SysAssembleDbTable> tableList = tableService.selectList(eq); for (SysAssembleDbTable dbTable : tableList) { String tableId = dbTable.getId(); - //delete field + //鍒犻櫎姹囬泦姹囬泦鏁版嵁婧愪腑閫変腑琛ㄧ殑閫変腑瀛楁淇℃伅锛屽鍔犲垹闄ゆ暟鎹簱涓凡缁忓垱寤虹殑鐗╃悊琛� String tempTableName = dbTable.getTempTableName(); dataSourceInfo.dropData(tempTableName); @@ -180,18 +251,17 @@ } sysAssembleDb.deleteById(); } - //TODO delete api + //鍒犻櫎姹囬泦浠巃pi涓幏鍙栫殑鏁版嵁淇℃伅 apiService.delete(new EntityWrapper<SysAssembleApi>().eq(Constant.PARENT_ID, id)); - //delete param + //鍒犻櫎 姹囬泦浠诲姟鐩稿叧鐨勫弬鏁颁俊鎭� paramsService.delete(new EntityWrapper<SysAssembleParams>().eq(Constant.PARENT_ID, id)); boolean b = true; String jobId = assemble.getJobId(); if (!StringUtils.isEmpty(jobId)) { + //xxljob涓垹闄� 姹囬泦浠诲姟 b = client.deleteJob(jobId); } - if (!b) { - throw new Exception("xxljob 鍒犻櫎澶辫触"); - } + //鏈�鍚庡垹闄ゆ眹闆嗕换鍔� boolean deleted = assemble.deleteById(); if (deleted) { return Result.success(assemble); @@ -199,21 +269,33 @@ return Result.error(CodeMsg.DELETE_ERROR); } } - + /** + * + * @description: 淇濆瓨姹囬泦璐ㄩ噺妫�楠岀被鍨� + * @param id 姹囬泦id + * @param type 姹囬泦璐ㄩ噺妫�楠岀殑绫诲瀷鍏蜂綋淇℃伅瑙丼ysAssembleType + * @return: result 淇濆瓨鏄惁鎴愬姛 + * + */ @RequestMapping(value = "saveCheckType/{id}", method = RequestMethod.GET) public Result saveUpdateType(@RequestParam SysAssembleCheckType type, @PathVariable String id,HttpServletRequest request) { + //閫氳繃id鑾峰彇姹囬泦浠诲姟 SysAssemble assemble = assembleService.selectById(id); if (assemble == null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } + //淇濆瓨type淇℃伅 assemble.setCheckType(type); + if (type.equals(SysAssembleCheckType.partSuccessAdd)) { + //閮ㄥ垎閫氳繃闇�瑕佷繚瀛� 椤甸潰閫変腑鐨勫瓧娈典俊鎭� String fields = request.getParameter("fields"); if (StringUtils.isEmpty(fields)) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } assemble.setCheckFields(fields); } + //鏇存柊鏁版嵁搴撲俊鎭� boolean updated = assemble.updateById(); if (updated) { return Result.success(assemble); @@ -222,13 +304,22 @@ } } - + /** + * + * @description: 鏇存柊姹囬泦浠诲姟鐘舵�� + * @param id 姹囬泦id + * @param status 浠诲姟鐘舵�� + * @return: result 淇濆瓨鏄惁鎴愬姛 + * + */ @RequestMapping(value = "updateStatus/{id}", method = RequestMethod.GET) public Result updateStatus(@RequestParam SysAssembleStatus status,@RequestParam String id) { + //閫氳繃id鑾峰彇姹囬泦浠诲姟 SysAssemble assemble = assembleService.selectById(id); if (assemble == null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } + //淇濆瓨鐘舵�� assemble.setStatus(status); boolean updated = assemble.updateById(); if (updated) { @@ -238,13 +329,23 @@ } } + /** + * + * @description: 淇濆瓨姹囬泦娓呮礂sql + * @param id 姹囬泦id + * @param object 娓呮礂sql + * @return: result 淇濆瓨鏄惁鎴愬姛 + * + */ @RequestMapping(value = "loadPurgeSql/{id}", method = RequestMethod.POST) public Result loadPurgeSql(@RequestBody JSONObject object,@PathVariable String id) { String sql = object.getString("sql"); + //閫氳繃id鑾峰彇姹囬泦淇℃伅 SysAssemble assemble = assembleService.selectById(id); if (assemble == null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } + //淇濆瓨娓呮礂sql assemble.setPurgeSql(sql); boolean updated = assemble.updateById(); if (updated) { @@ -254,16 +355,26 @@ } } + /** + * + * @description: 鑾峰彇鏁版嵁婧愰�変腑鐨勮〃淇℃伅 + * @param id 姹囬泦id + * @return: result 淇濆瓨鏄惁鎴愬姛 + * + */ + @RequestMapping(value = "getTables/{id}", method = RequestMethod.GET) public Result getTables(@PathVariable String id) { + //鑾峰彇姹囬泦浠诲姟淇℃伅 SysAssemble assemble = assembleService.selectById(id); if (assemble == null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } //TODO ONLY db 缂哄皯 api鐨� + //鑾峰彇鏁版嵁婧愪俊鎭� List<SysAssembleDb> dbList = dbService.selectList(new EntityWrapper<SysAssembleDb>().eq(Constant.PARENT_ID, id)); JSONArray sourceTables = new JSONArray(); - + //寰幆浠庢簮涓幏鍙� 婧愯〃淇℃伅 for (SysAssembleDb sysAssembleDb : dbList) { List<SysAssembleDbTable> tableList = tableService.selectList(new EntityWrapper<SysAssembleDbTable>().eq(Constant.PARENT_ID, sysAssembleDb.getId())); for (SysAssembleDbTable dbTable : tableList) { @@ -273,9 +384,11 @@ sourceTables.add(object); } } + //閫氳繃menuId 鑾峰彇 鐩爣琛ㄥ悕 MenuMapping menuMapping = menuMappingService.selectOne(new EntityWrapper<MenuMapping>().eq("menu_id", assemble.getMenuId())); String tableName = menuMapping.getTableName(); String tempTableName = Constant.Temp + tableName; + //缁勮杩斿洖淇℃伅 JSONObject object = new JSONObject(); object.fluentPut(Constant.ID, null); object.fluentPut(Constant.tableName, tempTableName); @@ -285,25 +398,39 @@ return Result.success(result); } + /** + * + * @description: 淇濆瓨姹囬泦鐨勫畾鏃朵换鍔′俊鎭� + * @param cron : 瀹氭椂浠诲姟鐨刢orn琛ㄨ揪寮� + * @param id 姹囬泦id + * @return: result 淇濆瓨鏄惁鎴愬姛 + * + */ + @Transactional(rollbackFor=Exception.class) @RequestMapping(value = "saveCorn/{id}", method = RequestMethod.GET) public Result add(@RequestParam String cron,@PathVariable String id) throws Exception { + //鑾峰彇姹囬泦浠诲姟淇℃伅 SysAssemble assemble = assembleService.selectById(id); if (assemble == null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } + //鏍¢獙琛ㄨ揪寮� boolean validExpression = CronSequenceGenerator.isValidExpression(cron); if (!validExpression) { return Result.error(new CodeMsg(6006, "corn 琛ㄨ揪寮忎笉瑙勮寖")); } assemble.setCron(cron); + //鏇存柊cron鍙傛暟 boolean b = paramsService.updateCornVal(assemble.getId(), cron); if (!b) { return Result.error(new CodeMsg(6007, "corn 琛ㄨ揪寮忔洿鏂板�奸敊璇�")); } + assemble.setStatus(SysAssembleStatus.working); String jobId = assemble.getJobId(); boolean xxljobStatus = true; + //淇濆瓨姹囬泦浠诲姟鍒皒xljob鍐� if (StringUtils.isEmpty(jobId)) { xxljobStatus = client.addJob(assemble); } @@ -313,7 +440,7 @@ if (!xxljobStatus) { throw new Exception("add or update xxxljob fail"); } - + //鏇存柊姹囬泦淇℃伅 boolean updated = assemble.updateById(); if (updated) { return Result.success(assemble); @@ -322,14 +449,24 @@ } } + /** + * + * @description: 椤甸潰姹囬泦淇℃伅 + * @param id 姹囬泦id + * @return: result 姹囬泦浠诲姟淇℃伅 + * + */ + @RequestMapping(value = "get/{id}", method = RequestMethod.GET) public Result get(@PathVariable String id) { SysAssemble assemble = assembleService.selectById(id); String menuId = assemble.getMenuId(); JSONObject o = (JSONObject) JSON.toJSON(assemble); if (!StringUtils.isEmpty(menuId)) { + //閫氳繃menu Id 灏� 姝や富棰樼殑鐖剁骇涓婚鎵惧埌杩斿洖缁欏墠绔� LinkedHashSet<String> ids = new LinkedHashSet<>(); ids.add(menuId); + //鑾峰彇鎵�鏈夌殑鐖剁骇涓婚 Set<String> byParentId = menuService.getByParentId(ids); ArrayList<String> strings = new ArrayList<>(byParentId); Collections.reverse(strings); @@ -343,9 +480,17 @@ return Result.success(o); } + /** + * + * @description: 鑾峰彇姹囬泦list + * @param pageNo 椤垫暟 + * @return: result 鍒嗛〉鍚庣殑姹囬泦list + * + */ @RequestMapping(value = "/{pageNo}", method = RequestMethod.GET) public Result page(@PathVariable Integer pageNo, HttpServletRequest request) { EntityWrapper<SysAssemble> wrapper = new EntityWrapper<>(); + //dbName 绛涢��---鏁版嵁搴撴簮淇℃伅 String dbName = request.getParameter("dbName"); if (!StringUtils.isEmpty(dbName)) { List<SysAssembleDb> dbList = dbService.selectList(new EntityWrapper<SysAssembleDb>().eq("datasource_name", dbName)); @@ -354,34 +499,39 @@ wrapper.in(Constant.ID, collect); } } - + //娣诲姞绛涢��--涓婚淇℃伅 String menuId = request.getParameter("menuId"); if (!StringUtils.isEmpty(menuId)) { wrapper.eq("menu_id", menuId); } + //绛涢��-- 淇濆瓨鍐嶅摢涓暟鎹簱 String bigdata = request.getParameter("bigdata"); if (!StringUtils.isEmpty(bigdata)) { wrapper.eq("bigdata", Boolean.valueOf(bigdata)); } + //绛涢��-- 褰撳墠鐘舵�� String status = request.getParameter("status"); if (!StringUtils.isEmpty(status)) { wrapper.eq("status", status); } Page<SysAssemble> page; + //姣忛〉鏁版嵁閲� String pageSize = request.getParameter("pageSize"); if (!StringUtils.isEmpty(pageSize)) { page = new Page(pageNo, Integer.valueOf(pageSize)); }else { page = new Page(pageNo, 15); } - + //閫氳繃鏇存柊鏃堕棿锛屽垱寤烘椂闂村�掑彊 + wrapper.orderBy("update_time desc, create_time desc"); Page<SysAssemble> resultPage = assembleService.selectPage(page,wrapper); List<SysAssemble> records = resultPage.getRecords(); List<JSONObject> array = new ArrayList<>(); for (SysAssemble record : records) { String id = record.getId(); + //鎵惧埌corn鍙傛暟 鑾峰彇涓嬫鎵ц鏃堕棿 缁勮鍚庤繑鍥炵粰鍓嶇 Wrapper<SysAssembleParams> eq = new EntityWrapper<SysAssembleParams>().eq(Constant.PARENT_ID, id).eq(Constant.Code, Constant.Cron); JSONObject o = (JSONObject) JSON.toJSON(record); @@ -391,20 +541,22 @@ o.fluentPut("nextTime", val); } - String realMenuId = record.getMenuId(); if (!StringUtils.isEmpty(realMenuId)) { + //鑾峰彇閫変腑涓婚鐨勭埗绾т富棰橀摼锛岀粍瑁呭悗杩斿洖缁欏墠绔� LinkedHashSet<String> menuSet = new LinkedHashSet<>(); menuSet.add(realMenuId); LinkedHashSet<String> byParentId = menuService.getByParentId(menuSet); List<SysMenu> sysMenus = menuService.selectBatchIds(byParentId); o.fluentPut("menuList", sysMenus); } + //鏈眹闆嗕换鍔℃墍鏈夌殑婧愪俊鎭� List<SysAssembleDb> dbList = dbService.selectList(new EntityWrapper<SysAssembleDb>().eq(Constant.PARENT_ID, record.getId())); o.fluentPut("dbList", dbList); array.add(o); } + //缁勮杩斿洖缁欏墠绔殑淇℃伅 Page<JSONObject> jsonObjectPage = new Page<>(); jsonObjectPage.setCurrent(resultPage.getCurrent()); jsonObjectPage.setSize(resultPage.getSize()); -- Gitblit v1.8.0