diff --git a/flink-cdc-job/src/main/java/cn/chongho/inf/flink/job/FlinkCdcSqlTemplateJob.java b/flink-cdc-job/src/main/java/cn/chongho/inf/flink/job/FlinkCdcSqlTemplateJob.java index f69a0395785b72b6c6ac251e21f0b4efd9b3da6d..692d1de7efef5c71191088844b7376511146107e 100644 --- a/flink-cdc-job/src/main/java/cn/chongho/inf/flink/job/FlinkCdcSqlTemplateJob.java +++ b/flink-cdc-job/src/main/java/cn/chongho/inf/flink/job/FlinkCdcSqlTemplateJob.java @@ -2,6 +2,7 @@ package cn.chongho.inf.flink.job; import org.apache.commons.lang.StringUtils; import org.apache.flink.api.java.utils.ParameterTool; +import org.apache.flink.runtime.state.hashmap.HashMapStateBackend; import org.apache.flink.streaming.api.CheckpointingMode; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.table.api.SqlDialect; @@ -31,6 +32,9 @@ public class FlinkCdcSqlTemplateJob { env.getCheckpointConfig().setMaxConcurrentCheckpoints(1); + env.setStateBackend(new HashMapStateBackend()); + env.getCheckpointConfig().setCheckpointStorage(parameterTool.get("checkpoint.path", "file:///tmp/flink/checkpoints")); + StreamTableEnvironment tableEnv = StreamTableEnvironment.create(env); tableEnv.getConfig().setSqlDialect(SqlDialect.DEFAULT); diff --git a/flink-web-console/flink-admin.sql b/flink-web-console/flink-admin.sql index 14a42b65ced493b092531fd80821b17885b9d8dd..3e55be680f946a90bbb12c1105a2945c56713d66 100644 --- a/flink-web-console/flink-admin.sql +++ b/flink-web-console/flink-admin.sql @@ -166,6 +166,7 @@ DROP TABLE IF EXISTS `job`; CREATE TABLE `job` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `job_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `job_type` tinyint(4) NULL DEFAULT 1, `jar_id` int(11) NULL DEFAULT NULL, `entry_class` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `args` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, @@ -173,6 +174,7 @@ CREATE TABLE `job` ( `target_db_id` bigint(20) NULL DEFAULT NULL COMMENT '落库数据库', `savepoint_path` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `job_id` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `job_type` tinyint(4) NULL DEFAULT 1, `status` int(11) NULL DEFAULT 0, `enable_flag` tinyint(4) NULL DEFAULT 1, `flink_colony_id` bigint(20) NULL DEFAULT NULL COMMENT '任务运行集群id', diff --git a/flink-web-console/src/main/java/cn/chongho/inf/flink/config/MybatisConfiguration.java b/flink-web-console/src/main/java/cn/chongho/inf/flink/config/MybatisConfiguration.java index 055a4054c6443d6f43b80f8ff1e77db23f79ac38..5c2580365f308bc9b6e0205b8a9653ec0937c1ec 100644 --- a/flink-web-console/src/main/java/cn/chongho/inf/flink/config/MybatisConfiguration.java +++ b/flink-web-console/src/main/java/cn/chongho/inf/flink/config/MybatisConfiguration.java @@ -80,6 +80,7 @@ public class MybatisConfiguration implements TransactionManagementConfigurer { } @Bean + @Override public PlatformTransactionManager annotationDrivenTransactionManager() { logger.info("事物配置"); return new DataSourceTransactionManager(dataSource); diff --git a/flink-web-console/src/main/java/cn/chongho/inf/flink/config/RestTemplateConfig.java b/flink-web-console/src/main/java/cn/chongho/inf/flink/config/RestTemplateConfig.java index 4a64c3326dab74257a03cb4027c359023cedd3e8..420ef3fdda8a38af3434aaad34b1c40f62976709 100644 --- a/flink-web-console/src/main/java/cn/chongho/inf/flink/config/RestTemplateConfig.java +++ b/flink-web-console/src/main/java/cn/chongho/inf/flink/config/RestTemplateConfig.java @@ -24,9 +24,6 @@ public class RestTemplateConfig { restTemplate.setErrorHandler(new DefaultResponseErrorHandler(){ @Override public void handleError(ClientHttpResponse response) throws IOException { -// if(response.getStatusCode() != HttpStatus.INTERNAL_SERVER_ERROR) { -// super.handleError(response); -// }else{ StringBuilder sb = new StringBuilder(); String line; BufferedReader br = new BufferedReader(new InputStreamReader(response.getBody())); @@ -34,7 +31,7 @@ public class RestTemplateConfig { sb.append(line); } throw new RestClientException(sb.toString()); -// } + } }); return restTemplate; @@ -46,9 +43,7 @@ public class RestTemplateConfig { restTemplate.setErrorHandler(new DefaultResponseErrorHandler(){ @Override public void handleError(ClientHttpResponse response) throws IOException { -// if(response.getStatusCode() != HttpStatus.INTERNAL_SERVER_ERROR) { -// super.handleError(response); -// }else{ + StringBuilder sb = new StringBuilder(); String line; BufferedReader br = new BufferedReader(new InputStreamReader(response.getBody())); @@ -56,7 +51,7 @@ public class RestTemplateConfig { sb.append(line); } throw new RestClientException(sb.toString()); -// } + } }); return restTemplate; diff --git a/flink-web-console/src/main/java/cn/chongho/inf/flink/constants/Constant.java b/flink-web-console/src/main/java/cn/chongho/inf/flink/constants/Constant.java index 0bcec093c9d6101b8997a5968951771520a661a0..bade439c1e25af392b2169ab0233ecdbc853459d 100644 --- a/flink-web-console/src/main/java/cn/chongho/inf/flink/constants/Constant.java +++ b/flink-web-console/src/main/java/cn/chongho/inf/flink/constants/Constant.java @@ -40,10 +40,14 @@ public class Constant { ENABLE; } + /** + * 数据库类型。 + */ public enum DbType { MYSQL, ORACLE, ELASTICSEARCH, + HOLO, ; } @@ -208,12 +212,15 @@ public class Constant { } /** - * 数据权限,数据类型 + * 数据权限,数据类型。 */ public enum DataType { JOB(1), CDCJOB(2); + /** + * 任务类型. + */ private Integer value; public Integer getValue() { diff --git a/flink-web-console/src/main/java/cn/chongho/inf/flink/controller/AdminController.java b/flink-web-console/src/main/java/cn/chongho/inf/flink/controller/AdminController.java index 6859250d2faa38b871776fc66e8a81f2612e0d75..7b4411effcfb3f9d73b0233d3c7fb58e67372e60 100644 --- a/flink-web-console/src/main/java/cn/chongho/inf/flink/controller/AdminController.java +++ b/flink-web-console/src/main/java/cn/chongho/inf/flink/controller/AdminController.java @@ -12,6 +12,7 @@ package cn.chongho.inf.flink.controller; import cn.chongho.inf.flink.model.*; import cn.chongho.inf.flink.service.*; +import cn.chongho.inf.flink.utils.StringUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -53,8 +54,7 @@ public class AdminController { List menus = menuService.selectByUser(user.getId()); map.put("treeMenu",menus); - map.put("flinkList", clusterService.getColonyInfo()); -// map.put("flinkList", flinkList); + map.put("flinkList", clusterService.getClusterInfo()); return "index"; } @@ -75,6 +75,10 @@ public class AdminController { @PostMapping(value = "/admin/login") public String login(@RequestParam(defaultValue = "") String name, @RequestParam(defaultValue = "") String pass, ModelMap map, HttpSession session){ + if(StringUtils.isEmpty(pass)){ + map.put("error","用户名或密码错误"); + return "login"; + } AdminUser user = adminUserService.login(name,pass); if(user == null){ map.put("error","用户名或密码错误"); diff --git a/flink-web-console/src/main/java/cn/chongho/inf/flink/mapper/AdminUserMapper.java b/flink-web-console/src/main/java/cn/chongho/inf/flink/mapper/AdminUserMapper.java index aaf7947e1a699cfcd6dc974c2d2a0af69613e798..6b8d07fca6ca48fb8e756557846e36966d31701c 100644 --- a/flink-web-console/src/main/java/cn/chongho/inf/flink/mapper/AdminUserMapper.java +++ b/flink-web-console/src/main/java/cn/chongho/inf/flink/mapper/AdminUserMapper.java @@ -9,6 +9,13 @@ import java.util.List; public interface AdminUserMapper extends Mapper { + /** + * 用户查询. + * @param begin + * @param pageSize + * @param query + * @return + */ @Select({ "select", "u.id, u.name, u.email, u.creator, u.flag, u.logintime,c.name createuser", @@ -27,6 +34,11 @@ public interface AdminUserMapper extends Mapper { List selectByQuery(@Param("begin") int begin, @Param("pagesize") int pageSize, @Param("query") String query); + /** + * count for page. + * @param name + * @return + */ @Select({"SELECT COUNT(id) FROM users WHERE name LIKE #{name}"}) int selectCountByName(String name); diff --git a/flink-web-console/src/main/java/cn/chongho/inf/flink/model/AdminUser.java b/flink-web-console/src/main/java/cn/chongho/inf/flink/model/AdminUser.java index 2b1f38aa0ea474b55d9544010374bb2a8d552acc..a9004de5ea578c51112c7952529e5a9a8f62dc37 100644 --- a/flink-web-console/src/main/java/cn/chongho/inf/flink/model/AdminUser.java +++ b/flink-web-console/src/main/java/cn/chongho/inf/flink/model/AdminUser.java @@ -2,9 +2,7 @@ package cn.chongho.inf.flink.model; import lombok.Data; -import javax.persistence.Id; -import javax.persistence.Table; -import javax.persistence.Transient; +import javax.persistence.*; import java.util.Date; /** @@ -19,6 +17,8 @@ public class AdminUser { private Integer tenantid; + private String account; + private String name; private String psw; @@ -41,4 +41,19 @@ public class AdminUser { private Date updatetime; + public static AdminUser createByUserInfo(String account, String userName){ + AdminUser adminUser = new AdminUser(); + adminUser.setAccount(account); + adminUser.setName(userName); + adminUser.setPsw(""); + adminUser.setEmail(""); + adminUser.setCreator(-1); + adminUser.setUpdateuser(-1); + adminUser.setFlag(1); + adminUser.setCreatetime(new Date()); + adminUser.setUpdatetime(new Date()); + adminUser.setLogintime(new Date()); + adminUser.setTenantid(0); + return adminUser; + } } diff --git a/flink-web-console/src/main/java/cn/chongho/inf/flink/restapi/JobApi.java b/flink-web-console/src/main/java/cn/chongho/inf/flink/restapi/JobApi.java index 8f386bc8b3267069447e0f6b8499e5226dcded76..a1a4777aee3038d41561c1e16422712b4519cf5e 100644 --- a/flink-web-console/src/main/java/cn/chongho/inf/flink/restapi/JobApi.java +++ b/flink-web-console/src/main/java/cn/chongho/inf/flink/restapi/JobApi.java @@ -60,7 +60,7 @@ public class JobApi { params.put("target-directory", savepointPath); log.info("rest req:{}", url); HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity entity = new HttpEntity<>(JSON.toJSONString(params), headers); JSONObject triggerObj = restTemplate.postForObject(url, entity, JSONObject.class); return triggerObj.getString("request-id"); @@ -88,7 +88,7 @@ public class JobApi { Map params = new HashMap(); params.put("targetDirectory", savepointPath); HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity entity = new HttpEntity<>(JSON.toJSONString(params), headers); JSONObject triggerObj = restTemplate.postForObject(url, entity, JSONObject.class); return triggerObj.getString("request-id"); diff --git a/flink-web-console/src/main/java/cn/chongho/inf/flink/restapi/LoginApi.java b/flink-web-console/src/main/java/cn/chongho/inf/flink/restapi/LoginApi.java new file mode 100644 index 0000000000000000000000000000000000000000..8e249b8c4ea9a9edfcb00f656750765f75b51a73 --- /dev/null +++ b/flink-web-console/src/main/java/cn/chongho/inf/flink/restapi/LoginApi.java @@ -0,0 +1,43 @@ +package cn.chongho.inf.flink.restapi; + +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; + +/** + * 第三方系统登录。 + * @author ming + */ + +@Service +@Slf4j +public class LoginApi { + + @Value("${sys.login.url}") + private String loginUrl; + + @Autowired + private RestTemplate restTemplate; + + public JSONObject getUser(String account, String password){ + JSONObject jsonObject = new JSONObject(); + jsonObject.put("account", account); + jsonObject.put("password", password); + jsonObject.put("loginType", "password"); + HttpHeaders headers = new HttpHeaders(); + //定义请求参数类型,这里用json所以是MediaType.APPLICATION_JSON + headers.setContentType(MediaType.APPLICATION_JSON); + HttpEntity formEntity = new HttpEntity<>(jsonObject.toJSONString(), headers); + JSONObject userJsonObject = restTemplate.postForObject(loginUrl + "/oauth/token", formEntity, JSONObject.class); + if(userJsonObject.getBoolean("success")){ + return userJsonObject.getJSONObject("data"); + } + return null; + } +} diff --git a/flink-web-console/src/main/java/cn/chongho/inf/flink/service/AdminUserService.java b/flink-web-console/src/main/java/cn/chongho/inf/flink/service/AdminUserService.java index a9eb2230a6a4848ffe69aa1e8f5895dbc6d03d72..085cec7d9cf81893d8cf768dc0389f759ca2bde7 100644 --- a/flink-web-console/src/main/java/cn/chongho/inf/flink/service/AdminUserService.java +++ b/flink-web-console/src/main/java/cn/chongho/inf/flink/service/AdminUserService.java @@ -33,6 +33,15 @@ public interface AdminUserService { * @return */ public AdminUser login(String name, String pwd); + + /** + * 第三方登录 + * @param account 用户账号 + * @param pwd 密码 + * @return + */ + public AdminUser loginBy3Thd(String account, String pwd); + /** * 根据id查询系统用户 * @param id diff --git a/flink-web-console/src/main/java/cn/chongho/inf/flink/service/ClusterService.java b/flink-web-console/src/main/java/cn/chongho/inf/flink/service/ClusterService.java index de31c098938ff29c82eed5712aa402ea3e1f03ef..4c3842e8de7b8cb57b25ebcf2c72776158881c12 100644 --- a/flink-web-console/src/main/java/cn/chongho/inf/flink/service/ClusterService.java +++ b/flink-web-console/src/main/java/cn/chongho/inf/flink/service/ClusterService.java @@ -52,5 +52,9 @@ public interface ClusterService { */ List getAllCluster(); - List> getColonyInfo(); + /** + * 获取集群状态信息. + * @return + */ + List> getClusterInfo(); } diff --git a/flink-web-console/src/main/java/cn/chongho/inf/flink/service/impl/AdminUserServiceImpl.java b/flink-web-console/src/main/java/cn/chongho/inf/flink/service/impl/AdminUserServiceImpl.java index 97d07efd4e15c1980614dc46fe42692de601910c..eef5bcde3dec5fb1a096d005eb0d6c31c5f74864 100644 --- a/flink-web-console/src/main/java/cn/chongho/inf/flink/service/impl/AdminUserServiceImpl.java +++ b/flink-web-console/src/main/java/cn/chongho/inf/flink/service/impl/AdminUserServiceImpl.java @@ -3,9 +3,13 @@ package cn.chongho.inf.flink.service.impl; import cn.chongho.inf.flink.mapper.AdminUserMapper; import cn.chongho.inf.flink.mapper.UserRoleMapper; import cn.chongho.inf.flink.model.*; +import cn.chongho.inf.flink.restapi.LoginApi; import cn.chongho.inf.flink.service.AdminUserService; import cn.chongho.inf.flink.utils.MD5Util; +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import tk.mybatis.mapper.entity.Example; @@ -19,6 +23,7 @@ import java.util.stream.Collectors; * @since 2022-02-14 */ @Service +@Slf4j public class AdminUserServiceImpl implements AdminUserService { @Autowired @@ -26,6 +31,12 @@ public class AdminUserServiceImpl implements AdminUserService { @Autowired private UserRoleMapper userRoleMapper; + @Autowired + private LoginApi loginApi; + + @Value("sys.login.enable") + private boolean enableThirdLogin; + @Override public List select(int page, int pageSize, String query) { return mapper.selectByQuery((page - 1) * pageSize,pageSize,"%"+query+"%"); @@ -38,10 +49,44 @@ public class AdminUserServiceImpl implements AdminUserService { @Override public AdminUser login(String name, String pwd) { - AdminUser temp = new AdminUser(); - temp.setName(name); - temp.setPsw(MD5Util.MD5(pwd)); - return mapper.selectOne(temp); + AdminUser user = new AdminUser(); + if (enableThirdLogin) { + return loginBy3Thd(name, pwd); + } else { + user.setAccount(name); + user.setPsw(MD5Util.MD5(pwd)); + return mapper.selectOne(user); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public AdminUser loginBy3Thd(String account, String pwd) { + JSONObject userInfo = null; + try { + userInfo = loginApi.getUser(account, pwd); + }catch (Exception e){ + log.error("loginByApi error", e); + } + + if(userInfo != null){ + String accountName = userInfo.getString("account"); + String userName = userInfo.getString("userName"); + AdminUser temp = new AdminUser(); + temp.setAccount(accountName); + AdminUser adminUser = mapper.selectOne(temp); + if(adminUser == null){ + AdminUser newAdminUser = AdminUser.createByUserInfo(account, userName); + mapper.insert(newAdminUser); + temp.setAccount(accountName); + adminUser = mapper.selectOne(temp); + updateRoleMenu("2,", adminUser.getId(), -1); + return adminUser; + } + return adminUser; + }else{ + return login(account, pwd); + } } @Override @@ -52,6 +97,7 @@ public class AdminUserServiceImpl implements AdminUserService { @Override public boolean insert(AdminUser user) { user.setPsw(MD5Util.MD5(user.getPsw())); + user.setAccount(user.getName()); return mapper.insertSelective(user) > 0; } @@ -128,4 +174,6 @@ public class AdminUserServiceImpl implements AdminUserService { return WebResult.error("旧密码错误"); } } + + private } diff --git a/flink-web-console/src/main/java/cn/chongho/inf/flink/service/impl/CdcSqlServiceImpl.java b/flink-web-console/src/main/java/cn/chongho/inf/flink/service/impl/CdcSqlServiceImpl.java index 7816ae37e8c271c532ba40f0df89fc9d54161508..15abc4835839b15680be1490e4a081712ba88585 100644 --- a/flink-web-console/src/main/java/cn/chongho/inf/flink/service/impl/CdcSqlServiceImpl.java +++ b/flink-web-console/src/main/java/cn/chongho/inf/flink/service/impl/CdcSqlServiceImpl.java @@ -12,6 +12,7 @@ import cn.chongho.inf.flink.utils.StringUtils; import com.alibaba.fastjson.JSON; import cn.chongho.inf.flink.model.*; import cn.chongho.inf.flink.model.connector.ElasticSearchConfig; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -26,6 +27,7 @@ import java.util.stream.Collectors; * @author ming */ @Service +@Slf4j public class CdcSqlServiceImpl { @Value("${sys.des.secretkey}") @@ -119,6 +121,8 @@ public class CdcSqlServiceImpl { break; case ELASTICSEARCH: break; + default: + log.warn("unsupported db type:{}", dbType); } return sqlBuilder.toString(); } @@ -175,6 +179,8 @@ public class CdcSqlServiceImpl { elasticSearchConfig.setIndex(table.getTableName()); sqlBuilder.append(elasticSearchConfig.doConfigToSql()); break; + case HOLO: + default: break; } @@ -240,6 +246,9 @@ public class CdcSqlServiceImpl { flinkDataType = elasticsearchDataType.getFlinkDataType(); tableSql.append(flinkDataType).append(","); break; + default: + log.warn("unsupported db type:{}", dbType); + break; } }); if(StringUtils.isEmpty(primaryColumn)){ @@ -283,9 +292,6 @@ public class CdcSqlServiceImpl { StringBuilder insertSql = new StringBuilder(); -// String targetColumn = columnAssociationList.stream().map(ColumnAssociation::getTargetColumnName).collect(Collectors.joining(",")); -// String sourceColumn = columnAssociationList.stream().map(ColumnAssociation::getSourceColumnName).collect(Collectors.joining(",")); - StringBuilder targetColumnBuilder = new StringBuilder(); StringBuilder sourceColumnBuilder = new StringBuilder(); for(ColumnAssociation columnAssociation : columnAssociationList){ diff --git a/flink-web-console/src/main/java/cn/chongho/inf/flink/service/impl/ClusterServiceImpl.java b/flink-web-console/src/main/java/cn/chongho/inf/flink/service/impl/ClusterServiceImpl.java index 5bdaf03b30b9398b2dd211c64f2f41aac2c0ed33..2a3c830307589c7b90186c3acf07f3e142493cba 100644 --- a/flink-web-console/src/main/java/cn/chongho/inf/flink/service/impl/ClusterServiceImpl.java +++ b/flink-web-console/src/main/java/cn/chongho/inf/flink/service/impl/ClusterServiceImpl.java @@ -98,7 +98,7 @@ public class ClusterServiceImpl implements ClusterService { } @Override - public List> getColonyInfo() { + public List> getClusterInfo() { long thisTime = System.currentTimeMillis(); long seconds = TimeUnit.MILLISECONDS.toSeconds(thisTime - lastTimestamp); if(flinkListCache != null && seconds < 60L){ diff --git a/flink-web-console/src/main/java/cn/chongho/inf/flink/service/impl/JobServiceImpl.java b/flink-web-console/src/main/java/cn/chongho/inf/flink/service/impl/JobServiceImpl.java index 66af065ce28601982f045aec9888a51f5dd81979..e941d330a4a7f81febebd475eb8682dc875047dc 100644 --- a/flink-web-console/src/main/java/cn/chongho/inf/flink/service/impl/JobServiceImpl.java +++ b/flink-web-console/src/main/java/cn/chongho/inf/flink/service/impl/JobServiceImpl.java @@ -126,10 +126,7 @@ public class JobServiceImpl implements JobService { public boolean update(Job job) { int ret = 0; job.setUpdateTime(new Date()); - /* Job jobByEntryClass = jobMapper.findJobByEntryClass(job.getEntryClass()); - if(!(jobByEntryClass == null || jobByEntryClass.getId().equals(job.getId()))){ - return false; - }*/ + job.setParallelism(job.getParallelism() == null ? 1 : job.getParallelism()); if (job.getId() != null) { Job dbJob = jobMapper.selectByPrimaryKey(job.getId()); diff --git a/flink-web-console/src/main/java/cn/chongho/inf/flink/service/impl/MenuServiceImpl.java b/flink-web-console/src/main/java/cn/chongho/inf/flink/service/impl/MenuServiceImpl.java index 7f885432998e72cea79eeaa9d9dbf1569ddb9221..5537eeff77ea332375e8a9b78a1c99f4adf3bb1d 100644 --- a/flink-web-console/src/main/java/cn/chongho/inf/flink/service/impl/MenuServiceImpl.java +++ b/flink-web-console/src/main/java/cn/chongho/inf/flink/service/impl/MenuServiceImpl.java @@ -22,6 +22,7 @@ public class MenuServiceImpl implements MenuService { @Autowired private MenuMapper mapper; + @Override public List selectAll() { HashMap> map = new HashMap>(); List menus = mapper.selectByExample(null); @@ -86,6 +87,7 @@ public class MenuServiceImpl implements MenuService { return mapper.selectAuthorities(userId); } + @Override public boolean addMenu(Menu menu) { return mapper.insertSelective(menu) > 0; } @@ -96,7 +98,7 @@ public class MenuServiceImpl implements MenuService { } @Override - @Transactional + @Transactional(rollbackFor = RuntimeException.class) public boolean delete(int id) { mapper.deleteByPrimaryKey(id); return true; diff --git a/flink-web-console/src/main/java/cn/chongho/inf/flink/service/impl/RoleServiceImpl.java b/flink-web-console/src/main/java/cn/chongho/inf/flink/service/impl/RoleServiceImpl.java index a238d3ece0c7932f6f6fdac1710e39f97d4db2a8..873b0575e920a046c4abb3b4fbca2326cee1e000 100644 --- a/flink-web-console/src/main/java/cn/chongho/inf/flink/service/impl/RoleServiceImpl.java +++ b/flink-web-console/src/main/java/cn/chongho/inf/flink/service/impl/RoleServiceImpl.java @@ -51,7 +51,7 @@ public class RoleServiceImpl implements RoleService { return mapper.updateByPrimaryKeySelective(role) > 0; } - @Transactional + @Transactional(rollbackFor = RuntimeException.class) @Override public boolean delete(String id) { String[] ids = id.split(","); diff --git a/flink-web-console/src/main/java/cn/chongho/inf/flink/utils/MD5Util.java b/flink-web-console/src/main/java/cn/chongho/inf/flink/utils/MD5Util.java index a12c73c0cfccd8604a6143810fa001b0d3b0fadc..9caa7c59d21523178882c6920693215b4170511d 100644 --- a/flink-web-console/src/main/java/cn/chongho/inf/flink/utils/MD5Util.java +++ b/flink-web-console/src/main/java/cn/chongho/inf/flink/utils/MD5Util.java @@ -14,7 +14,7 @@ public class MD5Util { } public final static String MD5(byte[] btInput) { - char hexDigits[] = { '0', '1', '2', '3', '4', + char [] hexDigits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; try { @@ -22,7 +22,7 @@ public class MD5Util { mdInst.update(btInput); byte[] md = mdInst.digest(); int j = md.length; - char str[] = new char[j * 2]; + char [] str = new char[j * 2]; int k = 0; for (int i = 0; i < j; i++) { byte byte0 = md[i]; diff --git a/flink-web-console/src/main/resources/application-local.yml b/flink-web-console/src/main/resources/application-local.yml index 70327b0dec44336fb45c96c558798beb7c982b2d..3ffec899ad222e85ba2e08f32c25748db4063432 100644 --- a/flink-web-console/src/main/resources/application-local.yml +++ b/flink-web-console/src/main/resources/application-local.yml @@ -42,6 +42,9 @@ sys: offset: 88888888 upload: jar-path: E:\\tmp\\ + login: + enable: false # 是否开启第三方登录 + url: #监控推送用于告警 alert: diff --git a/flink-web-console/src/main/resources/mapper/JobMapper.xml b/flink-web-console/src/main/resources/mapper/JobMapper.xml index 8de628ef3c7c574515b8d8b3586ae2dbcf673bea..1c80235a67031d74bf6563ffadfb295ab4fdd4c1 100644 --- a/flink-web-console/src/main/resources/mapper/JobMapper.xml +++ b/flink-web-console/src/main/resources/mapper/JobMapper.xml @@ -64,6 +64,9 @@ AND status = #{job.status} + + AND job_type = #{job.jobType} + diff --git a/flink-web-console/src/main/resources/templates/cdcjob/edit.ftl b/flink-web-console/src/main/resources/templates/cdcjob/edit.ftl index 80d416f8a2d431ce3c172e1b21729ecb6f47fbbd..0ebb58783598d5b72b5dac8aef972336688960e3 100644 --- a/flink-web-console/src/main/resources/templates/cdcjob/edit.ftl +++ b/flink-web-console/src/main/resources/templates/cdcjob/edit.ftl @@ -71,7 +71,7 @@ - + @@ -120,7 +120,7 @@ checked="checked" style="margin-left: 13px"> 删除
- +
@@ -249,6 +249,14 @@ changeJobType($("input[name=jobType]:checked").val()); }); + $("#insertTips").mouseover(function (){ + $("#insertSql").text(" INSERT INTO dbName_dbId_tableName ( id,field1,field2,fieldN) SELECT id,field1,field2,fieldN FROM dbName_dbId_tableName"); + }); + + $("#insertTips").mouseout(function (){ + $("#insertSql").text(""); + }); + function changeJobType(jobType) { if(jobType == 1) { $("#jobType1Insert").show(); @@ -449,7 +457,7 @@ } }, error: function (response) { - alert("链接服务器失败"); + alert("操作失败"); } }); } @@ -481,7 +489,7 @@ } }, error: function (response) { - alert("链接服务器失败"); + alert("操作失败"); } }); } @@ -510,7 +518,7 @@ } }, error: function (response) { - alert("链接服务器失败"); + alert("操作失败"); } }); } diff --git a/flink-web-console/src/main/resources/templates/cdcjob/index.ftl b/flink-web-console/src/main/resources/templates/cdcjob/index.ftl index 663d4322d836eb2c92079898b9039f458ad1f686..c13c054be14e1413c1abcaddf5251482d9904b57 100644 --- a/flink-web-console/src/main/resources/templates/cdcjob/index.ftl +++ b/flink-web-console/src/main/resources/templates/cdcjob/index.ftl @@ -391,7 +391,7 @@ }, error: function (response) { $("#loadingModal").modal('hide'); - alert("链接服务器失败"); + alert(response.msg); } }); } diff --git a/flink-web-console/src/main/resources/templates/job/index.ftl b/flink-web-console/src/main/resources/templates/job/index.ftl index ee8e732bab77e551996bc90beebad5e5822a13b0..40c6ffd70e80ed316a55f28c466ff1a07999226a 100644 --- a/flink-web-console/src/main/resources/templates/job/index.ftl +++ b/flink-web-console/src/main/resources/templates/job/index.ftl @@ -456,7 +456,7 @@ }, error: function (response) { $("#loadingModal").modal('hide'); - alert("连接服务器失败",function(){ + alert(response.msg,function(){ location.reload(); }); } diff --git a/flink-web-console/src/main/resources/templates/sqljob/index.ftl b/flink-web-console/src/main/resources/templates/sqljob/index.ftl index c94472fcf37c1e3f2d1a6909a1fdf4da7e768627..ae009f867b23a56d2cb7969ffa81151334489080 100644 --- a/flink-web-console/src/main/resources/templates/sqljob/index.ftl +++ b/flink-web-console/src/main/resources/templates/sqljob/index.ftl @@ -422,7 +422,7 @@ }, error: function (response) { $("#loadingModal").modal('hide'); - alert("连接服务器失败",function(){ + alert(response.msg,function(){ location.reload(); }); }