package com.github.ltsopensource.admin.access.mysql; import com.github.ltsopensource.admin.access.RshHandler; import com.github.ltsopensource.admin.access.face.BackendJobClientMAccess; import com.github.ltsopensource.admin.request.MDataPaginationReq; import com.github.ltsopensource.admin.web.vo.NodeInfo; import com.github.ltsopensource.core.cluster.Config; import com.github.ltsopensource.monitor.access.domain.JobClientMDataPo; import com.github.ltsopensource.monitor.access.mysql.MysqlJobClientMAccess; import com.github.ltsopensource.store.jdbc.builder.DeleteSql; import com.github.ltsopensource.store.jdbc.builder.SelectSql; import com.github.ltsopensource.store.jdbc.builder.WhereSql; import java.util.List; /** * @author Robert HG (254963746@qq.com) on 3/12/16. */ public class MysqlBackendJobClientMAccess extends MysqlJobClientMAccess implements BackendJobClientMAccess { public MysqlBackendJobClientMAccess(Config config) { super(config); } @Override public void delete(MDataPaginationReq request) { new DeleteSql(getSqlTemplate()) .delete() .from() .table(getTableName()) .whereSql(buildWhereSql(request)) .doDelete(); } @Override public List<JobClientMDataPo> querySum(MDataPaginationReq request) { return new SelectSql(getSqlTemplate()) .select() .columns("timestamp", "SUM(submit_success_num) AS submit_success_num", "SUM(submit_failed_num) AS submit_failed_num", "SUM(fail_store_num) AS fail_store_num", "SUM(submit_fail_store_num) AS submit_fail_store_num", "SUM(handle_feedback_num) AS handle_feedback_num") .from() .table(getTableName()) .whereSql(buildWhereSql(request)) .groupBy(" timestamp ASC ") .limit(request.getStart(), request.getLimit()) .list(RshHandler.JOB_CLIENT_SUM_M_DATA_RSH); } @Override public List<NodeInfo> getJobClients() { return new SelectSql(getSqlTemplate()) .select() .columns("DISTINCT identity AS identity", "node_group") .from() .table(getTableName()) .list(RshHandler.NODE_INFO_LIST_RSH); } public WhereSql buildWhereSql(MDataPaginationReq request) { return new WhereSql() .andOnNotNull("id = ?", request.getId()) .andOnNotEmpty("identity = ?", request.getIdentity()) .andOnNotEmpty("node_group = ?", request.getNodeGroup()) .andBetween("timestamp", request.getStartTime(), request.getEndTime()); } }