课程审核的调整

This commit is contained in:
daihh
2023-01-05 19:41:14 +08:00
parent e8c7a83b6f
commit 0d11ee4e93
8 changed files with 397 additions and 152 deletions

View File

@@ -31,7 +31,6 @@ import com.xboe.module.course.service.ICourseHRBPAuditService;
import com.xboe.module.course.service.ICourseService; import com.xboe.module.course.service.ICourseService;
import com.xboe.standard.enums.BoedxContentType; import com.xboe.standard.enums.BoedxContentType;
import com.xboe.standard.enums.BoedxCourseType; import com.xboe.standard.enums.BoedxCourseType;
import com.xboe.system.logs.entity.SysLogAudit;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -79,7 +78,7 @@ public class CourseAuditApi extends ApiBaseController{
} }
/** /**
* 指定审核人 * 指定审核人,指定教师审核
* @param auditId * @param auditId
* @param courseId * @param courseId
* @param teacherId * @param teacherId
@@ -253,8 +252,109 @@ public class CourseAuditApi extends ApiBaseController{
return error; return error;
} }
@PostMapping("/submit") /**
@AutoLog(module = "课程",action = "默认管理员直接提交发布",info = "") * 老师审核提交需要转回到hrbp再审核
* @param auditId
* @param courseId
* @param title
* @param pass
* @param remark
* @param from
* @return
*/
@PostMapping("/teacher-submit-audit")
public JsonResponse<Boolean> teacherAudit(String auditId,Boolean pass,String remark){
if(StringUtils.isBlank(auditId)){
return badRequest("参数错误");
}
if(pass==null){
return badRequest("无审核结果信息");
}
//检查是否允许
try {
//CurrentUser cu=getCurrent();
service.teacherSubmitAudit(auditId,pass,remark);
return success(true);
} catch (Exception e) {
log.error("教师审核提交处理错误",e);
return error("审核处理失败",e.getMessage(),false);
}
}
/**
* hrbp 提交审核
* @param auditId
* @param courseId
* @param title
* @param pass
* @param remark
* @return
*/
@PostMapping("/hrbp-submit-audit")
public JsonResponse<Boolean> hrbpAudit(String auditId,String courseId,String title,Boolean pass,String remark){
if(StringUtils.isBlank(auditId)){
return badRequest("参数错误");
}
if(StringUtils.isBlank(courseId)){
return badRequest("参数错误");
}
if(StringUtils.isBlank(title)){
return badRequest("未指定内容标题");
}
if(pass==null){
return badRequest("无审核结果信息");
}
Course c=courseService.get(courseId);
if(c==null) {
return badRequest("课程不存在");
}
boolean open=false;
if(c.getOpenCourse()!=null && c.getOpenCourse()==1) {
open=true;
}
//检查是否允许
if(pass) {
String error=checkForSubmit(c);
if(error!=null) {
return badRequest(error);
}
}
try {
CurrentUser cu=getCurrent();
service.hrbpSubmitAudit(auditId, courseId,open, pass,cu.getAccountId(),cu.getName(), remark);
return success(true);
} catch (Exception e) {
log.error("HRBP审核提交处理错误",e);
return error("审核处理失败",e.getMessage(),false);
}
}
@PostMapping("/last-audit-list")
public JsonResponse<PageList<CourseHRBPAudit>> lastAuditList(Pagination page, CourseHRBPAuditDto info){
// CurrentUser cu=getCurrent();
// if(StringUtils.isBlank(teacherId)){
// teacherId=cu.getAccountId();//老师的id
// }
try {
//最后一个用户id不传权限由菜单控制
PageList<CourseHRBPAudit> list=service.pageLastAudit(page.getPageIndex(),page.getPageSize(), info.getCourseName(), info.getStatus(),null);
return success(list);
} catch (Exception e) {
log.error("查询课程审核信息错误",e);
return error("查询审核信息失败",e.getMessage());
}
}
/**
* 提交并直接发布,用于默认管理直接操作
* @param dto
* @return
*/
@PostMapping("/submit-publish")
@AutoLog(module = "课程",action = "默认管理员提交发布",info = "")
public JsonResponse<Boolean> submitAndPublish(@RequestBody CourseFullDto dto){ public JsonResponse<Boolean> submitAndPublish(@RequestBody CourseFullDto dto){
if(dto.getCourse()==null){ if(dto.getCourse()==null){
return badRequest("无课程信息"); return badRequest("无课程信息");
@@ -292,9 +392,38 @@ public class CourseAuditApi extends ApiBaseController{
return error("发布课程失败",e.getMessage()); return error("发布课程失败",e.getMessage());
} }
}
/***
* 审核
* @param dto
* @return
*/
@PostMapping("/last-audit-submit")
@AutoLog(module = "课程",action = "最后(公开课)审核提交",info = "")
public JsonResponse<Boolean> lastAuditSubmit(String auditId,String courseId,Boolean pass,String remark){
if(StringUtils.isBlank(auditId)) {
return badRequest("参数错误");
}
if(StringUtils.isBlank(courseId)) {
return badRequest("未指定课程");
}
if(pass==null) {
return badRequest("无审核结果");
}
try {
//String auditId, String courseId,boolean pass, String aid, String name, String remark
CurrentUser cuser=getCurrent();
service.submitLastAudit(auditId,courseId,pass,cuser.getAccountId(),cuser.getName(),remark);
return success(true);
} catch (Exception e) {
log.error("最后审核提交处理错误",e);
e.printStackTrace();
return error("审核处理失败",e.getMessage());
}
} }
//以下两个方法是公开课的审核
} }

View File

@@ -143,7 +143,7 @@ public class CourseManageApi extends ApiBaseController{
} }
/** /**
* 管理员审核列表,教师的审核不在这里 * 管理员审核列表,教师的审核不在这里此审核也应该移动CourseAuditApi中去
* @param pager * @param pager
* @param dto * @param dto
* @return * @return
@@ -362,6 +362,7 @@ public class CourseManageApi extends ApiBaseController{
return error; return error;
} }
@PostMapping("/submit") @PostMapping("/submit")
@AutoLog(module = "课程",action = "提交课程",info = "") @AutoLog(module = "课程",action = "提交课程",info = "")
public JsonResponse<CourseFullDto> submitCourseFull(@RequestBody CourseFullDto dto){ public JsonResponse<CourseFullDto> submitCourseFull(@RequestBody CourseFullDto dto){
@@ -662,7 +663,7 @@ public class CourseManageApi extends ApiBaseController{
} }
/** /**
* 审核并发布,未完成的处理 * 审核并发布,未完成的处理
* @param id * @param id
* @param title * @param title
* @param pass * @param pass
@@ -670,6 +671,7 @@ public class CourseManageApi extends ApiBaseController{
* @param from 来源 * @param from 来源
* @return * @return
*/ */
@Deprecated
@PostMapping("/audit-publish") @PostMapping("/audit-publish")
public JsonResponse<Boolean> auditAndPublish(String auditId,String courseId,String title, Boolean pass,String remark,Integer from){ public JsonResponse<Boolean> auditAndPublish(String auditId,String courseId,String title, Boolean pass,String remark,Integer from){
if(StringUtils.isBlank(auditId)){ if(StringUtils.isBlank(auditId)){
@@ -705,13 +707,14 @@ public class CourseManageApi extends ApiBaseController{
/** /**
* 发布课程信息 * 发布课程信息,已经没有单独的发布了
* @param id * @param id
* @param title * @param title
* @param pass * @param pass
* @param remark * @param remark
* @return * @return
*/ */
@Deprecated
@PostMapping("/publish") @PostMapping("/publish")
public JsonResponse<Boolean> publish(String ids,String title, Boolean pass){ public JsonResponse<Boolean> publish(String ids,String title, Boolean pass){
if(StringUtils.isBlank(ids)){ if(StringUtils.isBlank(ids)){

View File

@@ -1,11 +0,0 @@
package com.xboe.module.course.dao;
import org.springframework.stereotype.Repository;
import com.xboe.core.orm.BaseDao;
import com.xboe.module.course.entity.CourseAuditRecord;
@Repository
public class CourseAuditRecordDao extends BaseDao<CourseAuditRecord>{
}

View File

@@ -1,68 +0,0 @@
package com.xboe.module.course.entity;
import java.time.LocalDateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xboe.core.SysConstant;
import com.xboe.core.orm.IdBaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 审核日志,当前只用于公开课的审核记录因为hrbp和教师审核在hrbp审核中
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Entity
@Table(name = SysConstant.TABLE_PRE+"course_audit_record")
public class CourseAuditRecord extends IdBaseEntity{
private static final long serialVersionUID = 1L;
/**未审核*/
public static int AUDITSTATE_NULL=1;
/**审核通过*/
public static int AUDITSTATE_PASS=3;
/**审核不通过*/
public static int AUDITSTATE_NOPASS=2;
/**课程id*/
@Column(name = "course_id",nullable=false, length=20)
private String courseId;
@Column(name = "course_name",nullable=false, length=100)
private String courseName;
/**审核人id*/
@Column(name = "aid",nullable=false, length=20)
private String aid;
/**审核人姓名*/
@Column(name = "aname",nullable=false, length=30)
private String aname;
/**审核时间*/
@Column(name = "audit_time",nullable=true)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime auditTime;
/**审核类型1表普通审核2表转审3表公开课审核*/
@Column(name = "audit_type",nullable=false, length=1)
private Integer auditType;
/**审核说明*/
@Column(name = "audit_remark",nullable=true, length=200)
private String auditRemark;
/**审核状态*/
@Column(name = "audit_state",nullable=false, length=1)
private Integer auditState;
}

View File

@@ -19,15 +19,20 @@ import java.time.LocalDateTime;
@Table(name = SysConstant.TABLE_PRE+"course_HRBP_audit") @Table(name = SysConstant.TABLE_PRE+"course_HRBP_audit")
public class CourseHRBPAudit extends IdEntity { public class CourseHRBPAudit extends IdEntity {
/**
*
*/
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**未转发*/
public static final int FORWARD_NONE=1; public static final int FORWARD_NONE=1;
/**转发到教师审核*/
public static final int FORWARD_TEACHER=2; public static final int FORWARD_TEACHER=2;
/**老师审核完成*/
public static final int FORWARD_TO_FINISH=3;
/**公开课的审核*/
public static final int FORWARD_LAST=6;
/**转发*/ /**转发*/
public static final int STATUS_NONE=1; public static final int STATUS_NONE=1;
@@ -70,15 +75,21 @@ public class CourseHRBPAudit extends IdEntity {
private String auditUser; private String auditUser;
/** /**
* 是否转发 1表未转发 2表已转发(),3教师审核完成 * 是否转发 1表未转发 2表已转发(转发审核中),3教师审核完成6表公开课审核
* */ * */
@Column(name = "forward") @Column(name = "forward")
private Integer forward; private Integer forward;
/**
* 添加时间
* */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Column(name = "add_time")
private LocalDateTime addTime;
/** /**
* 转发给用户id * 转发给用户id
* */ */
@Column(name = "to_aid",length = 20) @Column(name = "to_aid",length = 20)
private String toAid; private String toAid;
@@ -92,14 +103,37 @@ public class CourseHRBPAudit extends IdEntity {
@Column(name = "to_remark") @Column(name = "to_remark")
private String toRemark; private String toRemark;
/** //以下是新增加的字段
* 添加时间 /**审核时间*/
* */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Column(name = "add_time") @Column(name = "to_audit_Time",length = 50)
private LocalDateTime addTime; private LocalDateTime toAuditTime;
/**转审的处理状态同status*/
@Column(name = "to_state")
private Integer toState;
/**公开课审核人id,*/
@Column(name = "last_aid",length = 20)
private String lastAid;
/**公开课审核人*/
@Column(name = "last_aname",length = 50)
private String lastAname;
/**公开课审核时间*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Column(name = "last_time",length = 50)
private LocalDateTime lastTime;
/**公开课审核结果同status*/
@Column(name = "last_state")
private Integer lastState;
/**公开课审核说明*/
@Column(name = "last_remark")
private String lastRemark;
@Transient @Transient
private String courseName; private String courseName;
@@ -107,6 +141,9 @@ public class CourseHRBPAudit extends IdEntity {
@Transient @Transient
private String courseUser; private String courseUser;
@Transient
private Integer courseType;
@Transient @Transient
private Boolean coursePublished; private Boolean coursePublished;

View File

@@ -2,15 +2,14 @@ package com.xboe.module.course.service;
import java.util.List; import java.util.List;
import com.xboe.common.OrderCondition;
import com.xboe.common.PageList; import com.xboe.common.PageList;
import com.xboe.module.course.dto.CourseQueryDto;
import com.xboe.module.course.entity.CourseAudit; import com.xboe.module.course.entity.CourseAudit;
import com.xboe.module.course.entity.CourseAuditRecord; import com.xboe.module.course.entity.CourseHRBPAudit;
/** /**
* 课程审核的相关处理注释的审核功能在CourseSerivce中还没有移过来 * 课程审核的相关处理注释的审核功能在CourseSerivce中还没有移过来
* 最后确认流程后,使用此类来处理审核
* @author seastar * @author seastar
* *
*/ */
@@ -35,7 +34,7 @@ public interface ICourseAuditService {
/** /**
* 指定审核人 * hrbp指定审核人
* @param auditId * @param auditId
* @param courseId * @param courseId
* @param teacherId * @param teacherId
@@ -45,6 +44,31 @@ public interface ICourseAuditService {
*/ */
void appointAudit(String auditId,String courseId,String teacherId,String teacherName,String auditInfo, String remark); void appointAudit(String auditId,String courseId,String teacherId,String teacherName,String auditInfo, String remark);
/**
* 教师提交审核
* @param auditId
* @param courseId
* @param pass
* @param aid
* @param name
* @param remark
*/
void teacherSubmitAudit(String auditId,boolean pass,String remark);
/**
* hrbp提交审核
* @param auditId
* @param courseId
* @param openCourse 是否是公开课
* @param pass
* @param aid
* @param name
* @param remark
* @param publish
* @param from
*/
void hrbpSubmitAudit(String auditId, String courseId,boolean openCourse, boolean pass, String aid, String name, String remark);
/** /**
* 查询需要审核的信息 * 查询需要审核的信息
* @param courseId * @param courseId
@@ -63,21 +87,21 @@ public interface ICourseAuditService {
//以下是新增加的公开课的审核 //以下是新增加的公开课的审核
/** /**
* 查询需要审核的课程 * 最后的审核查询,公开课审核查询
* @param pageIndex * @param pageIndex
* @param pageSize * @param pageSize
* @param courseName * @param courseName
* @param auditState * @param lastState
* @param aid * @param aid
* @return * @return
*/ */
PageList<CourseAuditRecord> pageRecord(int pageIndex, int pageSize,String courseName,Integer auditState, String aid); PageList<CourseHRBPAudit> pageLastAudit(int pageIndex, int pageSize,String courseName,Integer lastState, String aid);
/** /**
* 提交审核 * 公开课提交审核,最后的提交审核
* @param record * @param record
*/ */
void submitAudit(CourseAuditRecord record); void submitLastAudit(String auditId, String courseId, boolean pass, String aid, String name, String remark);
} }

View File

@@ -1,5 +1,7 @@
package com.xboe.module.course.service.impl; package com.xboe.module.course.service.impl;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.annotation.Resource; import javax.annotation.Resource;
@@ -16,19 +18,22 @@ import com.xboe.core.orm.FieldFilters;
import com.xboe.core.orm.QueryBuilder; import com.xboe.core.orm.QueryBuilder;
import com.xboe.core.orm.UpdateBuilder; import com.xboe.core.orm.UpdateBuilder;
import com.xboe.module.course.dao.CourseAuditDao; import com.xboe.module.course.dao.CourseAuditDao;
import com.xboe.module.course.dao.CourseAuditRecordDao;
import com.xboe.module.course.dao.CourseDao; import com.xboe.module.course.dao.CourseDao;
import com.xboe.module.course.dao.CourseHRBPAuditDao; import com.xboe.module.course.dao.CourseHRBPAuditDao;
import com.xboe.module.course.dao.CourseTeacherDao; import com.xboe.module.course.dao.CourseTeacherDao;
import com.xboe.module.course.entity.Course; import com.xboe.module.course.entity.Course;
import com.xboe.module.course.entity.CourseAudit; import com.xboe.module.course.entity.CourseAudit;
import com.xboe.module.course.entity.CourseAuditRecord;
import com.xboe.module.course.entity.CourseHRBPAudit; import com.xboe.module.course.entity.CourseHRBPAudit;
import com.xboe.module.course.entity.CourseTeacher; import com.xboe.module.course.entity.CourseTeacher;
import com.xboe.module.course.service.ICourseAuditService; import com.xboe.module.course.service.ICourseAuditService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
/**
* 课程审核的处理,因为这个是后续增加的,所以之前审核的一些操作还是在课程处理中
* @author seastar
*
*/
@Slf4j @Slf4j
@Service @Service
public class CourseAuditServiceImpl implements ICourseAuditService{ public class CourseAuditServiceImpl implements ICourseAuditService{
@@ -36,9 +41,6 @@ public class CourseAuditServiceImpl implements ICourseAuditService{
@Resource @Resource
CourseAuditDao auditDao; CourseAuditDao auditDao;
@Resource
CourseAuditRecordDao auditRecordDao;
@Resource @Resource
CourseHRBPAuditDao courseHRBPAuditDao; CourseHRBPAuditDao courseHRBPAuditDao;
@@ -59,12 +61,6 @@ public class CourseAuditServiceImpl implements ICourseAuditService{
public void appointAudit(String auditId,String courseId, String teacherId, String teacherName,String auditInfo, String remark) { public void appointAudit(String auditId,String courseId, String teacherId, String teacherName,String auditInfo, String remark) {
//更新课程的表 //更新课程的表
// courseDao.updateFieldById(courseId, "auditAid", teacherId);
// courseDao.updateMultiFieldById(courseId,
// UpdateBuilder.create("auditAid", teacherId),
// UpdateBuilder.create("auditInfo", auditInfo)
// );
//
// //增加审核的信息 // //增加审核的信息
// CourseAudit ca=new CourseAudit(); // CourseAudit ca=new CourseAudit();
// ca.setAuditRemark(remark); // ca.setAuditRemark(remark);
@@ -80,7 +76,6 @@ public class CourseAuditServiceImpl implements ICourseAuditService{
UpdateBuilder.create("toInfo", auditInfo), UpdateBuilder.create("toInfo", auditInfo),
UpdateBuilder.create("toName", teacherName), UpdateBuilder.create("toName", teacherName),
UpdateBuilder.create("toRemark", remark) UpdateBuilder.create("toRemark", remark)
); );
} }
@@ -139,43 +134,181 @@ public class CourseAuditServiceImpl implements ICourseAuditService{
//// return rs; //// return rs;
// return null; // return null;
// } // }
@Override
@Transactional
public void teacherSubmitAudit(String auditId,boolean pass,String remark) {
LocalDateTime now=LocalDateTime.now();
//更新审核记录状态
courseHRBPAuditDao.updateMultiFieldById(auditId,
UpdateBuilder.create("toState", pass? CourseHRBPAudit.STATUS_PASS:CourseHRBPAudit.STATUS_NOPASS),
UpdateBuilder.create("toRemark", remark),
UpdateBuilder.create("toAuditTime", now),
UpdateBuilder.create("forward", CourseHRBPAudit.FORWARD_TO_FINISH)
);
}
@Override
@Transactional
public void hrbpSubmitAudit(String auditId, String courseId,boolean openCourse, boolean pass, String aid, String name, String remark) {
LocalDateTime now=LocalDateTime.now();
int status=Course.STATUS_AUDIT_FINISH;
if(!pass) {
status=Course.STATUS_AUDIT_NOPASS;
}
//更新审核记录状态
courseHRBPAuditDao.updateMultiFieldById(auditId,
UpdateBuilder.create("status", pass? CourseHRBPAudit.STATUS_PASS:CourseHRBPAudit.STATUS_NOPASS),
UpdateBuilder.create("auditRemark", remark),
UpdateBuilder.create("auditUser", name),
UpdateBuilder.create("auditTime", now)
);
//更新课程的转审状态,并把转审的信息置为空,这会的状态还未审核通过
if(!openCourse) { //非公开课,这已表示处理完成,直接更新课程状态
courseDao.updateMultiFieldById(courseId,UpdateBuilder.create("status", status),UpdateBuilder.create("auditAid", null),UpdateBuilder.create("auditInfo", null));
//审核通过并发布,直接发布课程
if(pass) {
//设置课程状态已审核完成,这里是管理员的审核
courseDao.updateMultiFieldById(courseId,
UpdateBuilder.create("published", pass),
UpdateBuilder.create("erasable", false), //设置以后不能物理删除了
UpdateBuilder.create("publishTime", LocalDateTime.now()));
//发布到全文检索中
Course c=courseDao.get(courseId);
publishUtil.fullTextPublish(c);
//同时添加发布事件,这里的创建人需要修改为教师
if(eventSender!=null) {
List<CourseTeacher> teachers = courseTeacherDao.findList(FieldFilters.eq("courseId", courseId));
if(teachers.size()>0) {
String authorIds="";
for(CourseTeacher cteacher:teachers) {
if(authorIds.equals("")) {
authorIds+=cteacher.getTeacherId();
}else {
authorIds+="|"+cteacher.getTeacherId();
}
}
eventSender.send("发布课程","PublishCourse", "发布课程【"+c.getName()+"", c.getId(), "1", c.getName(), aid,name,"authors:"+authorIds);
}
}else {
log.error("未配置事件消息发送的实现");
}
}
}else {
//对于公开课
if(pass) {
//公开课hrpb审核通过下一步是公开课的审核hrbp审核流程已经完成
courseHRBPAuditDao.updateMultiFieldById(auditId,
UpdateBuilder.create("forward", CourseHRBPAudit.FORWARD_LAST),
UpdateBuilder.create("lastState", CourseHRBPAudit.STATUS_NONE)
);
}else {
//如果未通过,直接修改课程状态
courseDao.updateMultiFieldById(courseId,UpdateBuilder.create("status", status),UpdateBuilder.create("auditAid", null),UpdateBuilder.create("auditInfo", null));
}
}
}
@Override @Override
public PageList<CourseAuditRecord> pageRecord(int pageIndex, int pageSize, String courseName, Integer auditState,String aid) { public PageList<CourseHRBPAudit> pageLastAudit(int pageIndex, int pageSize,String courseName,Integer lastState, String aid) {
QueryBuilder builder=QueryBuilder.from(CourseAuditRecord.class);
builder.setPageIndex(pageIndex);
builder.setPageSize(pageSize);
return null; QueryBuilder query=QueryBuilder.from(Course.class.getSimpleName()+" c,"+CourseHRBPAudit.class.getSimpleName()+" a");
query.setPageIndex(pageIndex);
query.setPageSize(pageSize);
query.addField("a");
query.addField("c.name");
query.addField("c.sysCreateBy");
query.addField("c.type");
query.addFilter(FieldFilters.eqField("c.id", "a.courseId"));
//最后的审核,公开课审核
query.addFilter(FieldFilters.eq("a.forward",CourseHRBPAudit.FORWARD_LAST));
query.addFilter(FieldFilters.gt("a.status",CourseHRBPAudit.STATUS_NONE));
//审核状态
if(lastState!=null) {
if(lastState==9) {
query.addFilter(FieldFilters.gt("a.lastState",CourseHRBPAudit.STATUS_NONE));
}else {
query.addFilter(FieldFilters.eq("a.lastState",lastState));
}
}
if(StringUtils.isNotBlank(courseName)){
query.addFilter(FieldFilters.like("c.name",courseName));
}
query.addFilter(FieldFilters.eq("c.deleted",false));
query.addFilter(FieldFilters.eq("c.enabled",true));
query.addOrder(OrderCondition.desc("a.addTime"));
PageList<CourseHRBPAudit> rs=new PageList<CourseHRBPAudit>();
rs.setList(new ArrayList<CourseHRBPAudit>());
try {
PageList<Object[]> list=courseDao.findPageFields(query.builder());
rs.setCount(list.getCount());
rs.setPageSize(pageSize);
for(Object[] objs : list.getList()) {
CourseHRBPAudit audit=(CourseHRBPAudit)objs[0];
audit.setCourseName(objs[1].toString());
audit.setCourseUser((String)objs[2]);
audit.setCourseType((Integer)objs[3]);
rs.getList().add(audit);
}
}catch(Exception e) {
log.error("查询课程审核错误",e);
}
return rs;
} }
@Override @Override
@Transactional @Transactional
public void submitAudit(CourseAuditRecord record) { public void submitLastAudit(String auditId, String courseId,boolean pass, String aid, String name, String remark) {
LocalDateTime now=LocalDateTime.now();
auditRecordDao.save(record); int status=Course.STATUS_AUDIT_FINISH;
//同步发布课程 if(!pass) {
//同步发布 status=Course.STATUS_AUDIT_NOPASS;
Course c= courseDao.get(record.getCourseId());
publishUtil.fullTextPublish(c);
//发布事件处理
if(eventSender!=null) {
List<CourseTeacher> teachers = courseTeacherDao.findList(FieldFilters.eq("courseId", record.getCourseId()));
if(teachers.size()>0) {
String authorIds="";
for(CourseTeacher cteacher:teachers) {
if(authorIds.equals("")) {
authorIds+=cteacher.getTeacherId();
}else {
authorIds+="|"+cteacher.getTeacherId();
}
}
eventSender.send("发布课程","PublishCourse", "发布课程【"+record.getCourseName()+"",record.getCourseId(), "1", record.getCourseName(), record.getAid(),record.getAname(),"authors:"+authorIds);
}
}else {
log.error("未配置事件消息发送的实现");
} }
courseDao.updateMultiFieldById(courseId,UpdateBuilder.create("status", status),UpdateBuilder.create("auditAid", null),UpdateBuilder.create("auditInfo", null));
courseHRBPAuditDao.updateMultiFieldById(auditId,
UpdateBuilder.create("lastRemark", remark),
UpdateBuilder.create("lastAid", aid),
UpdateBuilder.create("lastAname", name),
UpdateBuilder.create("lastTime", now),
UpdateBuilder.create("lastState", pass? CourseHRBPAudit.STATUS_PASS:CourseHRBPAudit.STATUS_NOPASS)
);
if(pass) {
//同步发布课程
//同步发布
Course c= courseDao.get(courseId);
publishUtil.fullTextPublish(c);
//发布事件处理
if(eventSender!=null) {
List<CourseTeacher> teachers = courseTeacherDao.findList(FieldFilters.eq("courseId",courseId));
if(teachers.size()>0) {
String authorIds="";
for(CourseTeacher cteacher:teachers) {
if(authorIds.equals("")) {
authorIds+=cteacher.getTeacherId();
}else {
authorIds+="|"+cteacher.getTeacherId();
}
}
eventSender.send("发布课程","PublishCourse", "发布课程【"+c.getName()+"",courseId, "1", c.getName(), aid,name,"authors:"+authorIds);
}
}else {
log.error("未配置事件消息发送的实现");
}
}
} }

View File

@@ -522,8 +522,6 @@ public class CourseServiceImpl implements ICourseService {
return c; return c;
} }
@Override @Override
public void save(CourseFullDto full) { public void save(CourseFullDto full) {
Course c=full.getCourse(); Course c=full.getCourse();