mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-10 19:36:50 +08:00
转移定时任务
This commit is contained in:
@@ -0,0 +1,40 @@
|
|||||||
|
package com.xboe.constants;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author : civism
|
||||||
|
* @version 1.0
|
||||||
|
* @date 2023/6/17 16:13
|
||||||
|
*/
|
||||||
|
public enum CasesPushStatusEnum {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 推送状态1未推送2推送中3已推送4推送失败5已撤回
|
||||||
|
*/
|
||||||
|
WAIT_PUSH(1,"未推送"),
|
||||||
|
PUSH_ING(2,"推送中"),
|
||||||
|
PUSH_SUCCESS(3,"已推送"),
|
||||||
|
PUSH_FAIL(4,"推送失败"),
|
||||||
|
PUSH_REVOKE(5,"已撤回"),
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
CasesPushStatusEnum(Integer status, String desc) {
|
||||||
|
this.status = status;
|
||||||
|
this.desc = desc;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
|
||||||
|
private String desc;
|
||||||
|
|
||||||
|
|
||||||
|
public Integer getStatus() {
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDesc() {
|
||||||
|
return desc;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package com.xboe.module.cases.dao;
|
||||||
|
|
||||||
|
import com.xboe.casetask.entity.CasesRecommend;
|
||||||
|
import com.xboe.core.orm.BaseDao;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public class CasesRecommendDao extends BaseDao<CasesRecommend> {
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package com.xboe.module.cases.dao;
|
||||||
|
|
||||||
|
import com.xboe.core.orm.BaseDao;
|
||||||
|
import com.xboe.module.cases.entity.CasesRecommendPushRecord;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public class CasesRecommendPushRecordDao extends BaseDao<CasesRecommendPushRecord> {
|
||||||
|
}
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
package com.xboe.module.cases.entity;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.xboe.core.SysConstant;
|
||||||
|
import com.xboe.core.orm.BaseEntity;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 案例推荐表
|
||||||
|
* */
|
||||||
|
@Data
|
||||||
|
@Entity
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Table(name = SysConstant.TABLE_PRE+"cases_recommend")
|
||||||
|
public class CasesRecommend extends BaseEntity {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**推荐人ID*/
|
||||||
|
@Column(name = "recommend_id",nullable = false,length = 100)
|
||||||
|
private String recommendId;
|
||||||
|
|
||||||
|
/**推荐人*/
|
||||||
|
@Column(name = "recommend_by", length = 255)
|
||||||
|
private String recommendBy;
|
||||||
|
|
||||||
|
/**推荐时间*/
|
||||||
|
@Column(name = "recommend_time")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime recommendTime;
|
||||||
|
/**案例数*/
|
||||||
|
@Column(name = "case_count",length = 11)
|
||||||
|
private Integer caseCount;
|
||||||
|
/**用户数*/
|
||||||
|
@Column(name = "user_count",length = 11)
|
||||||
|
private Integer userCount;
|
||||||
|
/**推送进度*/
|
||||||
|
@Column(name = "push_progress", length = 255)
|
||||||
|
private String pushProgress;
|
||||||
|
/**查看率*/
|
||||||
|
@Column(name = "view_rate", length = 255)
|
||||||
|
private String viewRate;
|
||||||
|
/**推荐组织ID*/
|
||||||
|
@Column(name = "recommend_org_id", length = 20)
|
||||||
|
private String recommendOrgId;
|
||||||
|
|
||||||
|
/**推荐组织名称*/
|
||||||
|
@Column(name = "recommend_org_name", length = 255)
|
||||||
|
private String recommendOrgName;
|
||||||
|
}
|
||||||
@@ -0,0 +1,95 @@
|
|||||||
|
package com.xboe.module.cases.entity;
|
||||||
|
|
||||||
|
import com.xboe.core.SysConstant;
|
||||||
|
import com.xboe.core.orm.BaseEntity;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 案例推荐发起导入
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Entity
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Table(name = SysConstant.TABLE_PRE + "cases_recommend_push_record")
|
||||||
|
public class CasesRecommendPushRecord extends BaseEntity {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 推送id
|
||||||
|
*/
|
||||||
|
@Column(name = "recommend_id")
|
||||||
|
private String recommendId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 案例id
|
||||||
|
*/
|
||||||
|
@Column(name = "case_id")
|
||||||
|
private String caseId;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 案例标题
|
||||||
|
*/
|
||||||
|
@Column(name = "case_title")
|
||||||
|
private String caseTitle;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 推送用户id
|
||||||
|
*/
|
||||||
|
@Column(name = "push_user_id")
|
||||||
|
private String pushUserId;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 推送用户名称
|
||||||
|
*/
|
||||||
|
@Column(name = "push_user_name")
|
||||||
|
private String pushUserName;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 推送状态1未推送2推送中3已推送4推送失败5已撤回
|
||||||
|
*/
|
||||||
|
@Column(name = "push_status")
|
||||||
|
private Integer pushStatus;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 推送时间
|
||||||
|
*/
|
||||||
|
@Column(name = "push_time")
|
||||||
|
private Date pushTime;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查看标识
|
||||||
|
*/
|
||||||
|
@Column(name = "read_flag")
|
||||||
|
private Integer readFlag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 首次查看时间
|
||||||
|
*/
|
||||||
|
@Column(name = "read_start_time")
|
||||||
|
private Date readStartTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 最后查看时间
|
||||||
|
*/
|
||||||
|
@Column(name = "read_end_time")
|
||||||
|
private Date readEndTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
@Column(name = "remark")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package com.xboe.module.cases.service;
|
||||||
|
|
||||||
|
import com.xboe.module.cases.entity.CasesRecommendPushRecord;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface ICasesRecommendPushRecordService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询推送纪录通过推送状态
|
||||||
|
*
|
||||||
|
* @param pushStatusList
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<CasesRecommendPushRecord> queryPushRecordByPushStatus(List<Integer> pushStatusList);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改
|
||||||
|
* @param casesRecommendPushRecord
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
boolean update(CasesRecommendPushRecord casesRecommendPushRecord);
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package com.xboe.module.cases.service;
|
||||||
|
|
||||||
|
import com.xboe.module.cases.entity.CasesRecommend;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface ICasesRecommendService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过推送状态查询
|
||||||
|
*
|
||||||
|
* @param pushProgress
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<CasesRecommend> queryByPushProgress(String pushProgress);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改
|
||||||
|
*
|
||||||
|
* @param casesRecommend
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
boolean update(CasesRecommend casesRecommend);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package com.xboe.module.cases.service.impl;
|
||||||
|
|
||||||
|
import com.xboe.core.orm.FieldFilters;
|
||||||
|
import com.xboe.module.cases.dao.CasesRecommendPushRecordDao;
|
||||||
|
import com.xboe.module.cases.entity.CasesRecommendPushRecord;
|
||||||
|
import com.xboe.module.cases.service.ICasesRecommendPushRecordService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushRecordService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CasesRecommendPushRecordDao casesRecommendPushRecordDao;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<CasesRecommendPushRecord> queryPushRecordByPushStatus(List<Integer> pushStatusList) {
|
||||||
|
return casesRecommendPushRecordDao.getGenericDao().findList(CasesRecommendPushRecord.class, FieldFilters.in("push_status", pushStatusList));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean update(CasesRecommendPushRecord casesRecommendPushRecord) {
|
||||||
|
return casesRecommendPushRecordDao.getGenericDao().update(casesRecommendPushRecord) != null;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package com.xboe.module.cases.service.impl;
|
||||||
|
|
||||||
|
import com.xboe.casetask.dao.CasesRecommendDao;
|
||||||
|
import com.xboe.casetask.entity.CasesRecommend;
|
||||||
|
import com.xboe.casetask.service.ICasesRecommendService;
|
||||||
|
import com.xboe.core.orm.FieldFilters;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class CasesRecommendServiceImpl implements ICasesRecommendService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CasesRecommendDao casesRecommendDao;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<CasesRecommend> queryByPushProgress(String pushProgress) {
|
||||||
|
return casesRecommendDao.getGenericDao().findList(CasesRecommend.class, FieldFilters.eq("push_progress", pushProgress));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean update(CasesRecommend casesRecommend) {
|
||||||
|
return casesRecommendDao.getGenericDao().update(casesRecommend) != null;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,87 @@
|
|||||||
|
package com.xboe.task;
|
||||||
|
|
||||||
|
import com.xboe.constants.CasesPushStatusEnum;
|
||||||
|
import com.xboe.module.cases.entity.CasesRecommend;
|
||||||
|
import com.xboe.module.cases.entity.CasesRecommendPushRecord;
|
||||||
|
import com.xboe.module.cases.service.ICasesRecommendPushRecordService;
|
||||||
|
import com.xboe.module.cases.service.ICasesRecommendService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||||
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author : civism
|
||||||
|
* @version 1.0
|
||||||
|
* @date 2023/6/18 10:50
|
||||||
|
*/
|
||||||
|
@EnableScheduling
|
||||||
|
@Component("com.xboe.casetask.CasesRecommendPushSchedule")
|
||||||
|
@Slf4j
|
||||||
|
public class CasesRecommendPushSchedule {
|
||||||
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ICasesRecommendService casesRecommendService;
|
||||||
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ICasesRecommendPushRecordService casesRecommendPushRecordService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 每分钟执行一次
|
||||||
|
*/
|
||||||
|
@Scheduled(cron = "0 * * * * ? ")
|
||||||
|
public void execute() {
|
||||||
|
List<CasesRecommend> casesRecommends = casesRecommendService.queryByPushProgress(CasesPushStatusEnum.WAIT_PUSH.name());
|
||||||
|
if (CollectionUtils.isEmpty(casesRecommends)) {
|
||||||
|
log.warn("没有推送纪录,无需推送");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (CasesRecommend casesRecommend : casesRecommends) {
|
||||||
|
List<Integer> pushStatusList = new ArrayList<>();
|
||||||
|
pushStatusList.add(CasesPushStatusEnum.WAIT_PUSH.getStatus());
|
||||||
|
pushStatusList.add(CasesPushStatusEnum.WAIT_PUSH.getStatus());
|
||||||
|
List<CasesRecommendPushRecord> casesRecommendPushRecords = casesRecommendPushRecordService.queryPushRecordByPushStatus(pushStatusList);
|
||||||
|
if (CollectionUtils.isEmpty(casesRecommendPushRecords)) {
|
||||||
|
//修改为推送完成 --- 无数据 无需推送
|
||||||
|
CasesRecommend tempUpdate = new CasesRecommend();
|
||||||
|
tempUpdate.setId(casesRecommend.getId());
|
||||||
|
tempUpdate.setPushProgress(CasesPushStatusEnum.PUSH_SUCCESS.name());
|
||||||
|
casesRecommendService.update(tempUpdate);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
//修改为推送中
|
||||||
|
CasesRecommend tempUpdate = new CasesRecommend();
|
||||||
|
tempUpdate.setId(casesRecommend.getId());
|
||||||
|
tempUpdate.setPushProgress(CasesPushStatusEnum.PUSH_ING.name());
|
||||||
|
casesRecommendService.update(tempUpdate);
|
||||||
|
|
||||||
|
for (CasesRecommendPushRecord casesRecommendPushRecord : casesRecommendPushRecords) {
|
||||||
|
|
||||||
|
CasesRecommendPushRecord pushRecordTemp = new CasesRecommendPushRecord();
|
||||||
|
pushRecordTemp.setId(casesRecommendPushRecord.getId());
|
||||||
|
pushRecordTemp.setPushTime(new Date());
|
||||||
|
try {
|
||||||
|
//TODO 推送
|
||||||
|
pushRecordTemp.setPushStatus(CasesPushStatusEnum.PUSH_SUCCESS.getStatus());
|
||||||
|
} catch (Exception e) {
|
||||||
|
pushRecordTemp.setPushStatus(CasesPushStatusEnum.PUSH_FAIL.getStatus());
|
||||||
|
}
|
||||||
|
casesRecommendPushRecordService.update(pushRecordTemp);
|
||||||
|
}
|
||||||
|
|
||||||
|
//修改为推送完成 --- 无数据 无需推送
|
||||||
|
CasesRecommend finishTemp = new CasesRecommend();
|
||||||
|
finishTemp.setId(casesRecommend.getId());
|
||||||
|
finishTemp.setPushProgress(CasesPushStatusEnum.PUSH_SUCCESS.name());
|
||||||
|
casesRecommendService.update(finishTemp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user