package com.itstyle.quartz.service.impl;
|
|
import com.itstyle.quartz.dynamicquery.DynamicQuery;
|
import com.itstyle.quartz.entity.PageBean;
|
import com.itstyle.quartz.entity.QuartzEntity;
|
import com.itstyle.quartz.entity.Result;
|
import com.itstyle.quartz.entity.SysConfigEntity;
|
import com.itstyle.quartz.service.DistrbutionService;
|
import org.quartz.*;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.data.domain.PageRequest;
|
import org.springframework.data.domain.Pageable;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.util.StringUtils;
|
|
import java.util.List;
|
|
/**
|
* 异构系统分发实现类
|
*/
|
@Service("distrbutionService")
|
public class DistrbutionServiceImpl implements DistrbutionService {
|
@Autowired
|
private DynamicQuery dynamicQuery;
|
|
/**
|
* 获取异构系统分发列表
|
* @param sysConfig
|
* @param pageNo
|
* @param pageSize
|
* @return
|
* @throws SchedulerException
|
*/
|
@Override
|
public Result list(SysConfigEntity sysConfig, Integer pageNo, Integer pageSize) throws SchedulerException {
|
String countSql = "SELECT COUNT(*) FROM sys_config AS sys ";
|
if(!StringUtils.isEmpty(sysConfig.getSysName())){
|
countSql+=" WHERE sys.SYS_NAME = "+sysConfig.getSysName();
|
}
|
Long totalCount = dynamicQuery.nativeQueryCount(countSql);
|
PageBean<QuartzEntity> data = new PageBean<>();
|
if(totalCount>0){
|
StringBuffer nativeSql = new StringBuffer();
|
nativeSql.append("SELECT sys.ID as id,sys.SYSNAME as sysName,sys.ADDRESS as address,sys.DESCRIPTION as description,sys.association as association,sys.ISENABLE as isEnable,");
|
nativeSql.append("sys.CRONEXPRESSION as cronExpression ");
|
nativeSql.append("FROM sys_config AS sys ");
|
Object[] params = new Object[]{};
|
if(!StringUtils.isEmpty(sysConfig.getSysName())){
|
nativeSql.append(" AND sys.SYS_NAME = ?");
|
params = new Object[]{sysConfig.getSysName()};
|
}
|
Pageable pageable = PageRequest.of(pageNo-1,pageSize);
|
List<SysConfigEntity> list = dynamicQuery.nativeQueryPagingList(SysConfigEntity.class,pageable, nativeSql.toString(), params);
|
data = new PageBean(list, totalCount);
|
}
|
return Result.ok(data);
|
}
|
|
/**
|
* 新增异构系统分发配置
|
* @param sysConfig
|
* @throws Exception
|
*/
|
@Override
|
@Transactional
|
public void save(SysConfigEntity sysConfig){
|
if(!StringUtils.isEmpty(sysConfig.getId())){
|
dynamicQuery.update(sysConfig);
|
}else {
|
String countSql = "SELECT COUNT(*) FROM sys_config AS sys ";
|
Long totalCount = dynamicQuery.nativeQueryCount(countSql);
|
sysConfig.setId(Integer.valueOf(Math.toIntExact(totalCount)) + 1);
|
dynamicQuery.save(sysConfig);
|
}
|
}
|
|
/**
|
* 启用异构系统分发配置
|
* @param sysConfig
|
*/
|
@Override
|
@Transactional
|
public void enable(SysConfigEntity sysConfig) {
|
sysConfig.setIsEnable("启用");
|
dynamicQuery.update(sysConfig);
|
}
|
|
/**
|
* 废弃异构系统分发配置
|
* @param sysConfig
|
*/
|
@Override
|
@Transactional
|
public void remove(SysConfigEntity sysConfig) {
|
sysConfig.setIsEnable("不启用");
|
dynamicQuery.update(sysConfig);
|
}
|
}
|