package com.qxueyou.scc.courseware.service.impl;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import org.apache.commons.lang3.ArrayUtils;
|
import org.apache.commons.lang3.StringUtils;
|
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.Logger;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.stereotype.Service;
|
|
import com.qxueyou.scc.admin.classes.model.ClsClass;
|
import com.qxueyou.scc.base.model.Result;
|
import com.qxueyou.scc.base.service.impl.CommonAppService;
|
import com.qxueyou.scc.base.util.ClientUtils;
|
import com.qxueyou.scc.base.util.CollectionUtils;
|
import com.qxueyou.scc.base.util.TraceUtils;
|
import com.qxueyou.scc.courseware.service.IOrgCourseService;
|
import com.qxueyou.scc.org.dao.OrgCourseDAO;
|
import com.qxueyou.scc.org.model.OrgCollegeCourse;
|
import com.qxueyou.scc.org.model.OrgCourse;
|
import com.qxueyou.scc.org.model.Organization;
|
|
@Service
|
public class OrgCourseService extends CommonAppService implements
|
IOrgCourseService {
|
|
@SuppressWarnings("unused")
|
private final Logger log = LogManager.getLogger("OrgCourseService");
|
|
private OrgCourseDAO orgCourseDAO;
|
|
public OrgCourseDAO getOrgCourseDAO() {
|
return orgCourseDAO;
|
}
|
|
/**
|
* 依赖注入
|
*
|
* @param lessonDAO
|
*/
|
@Autowired(required = false)
|
public void setOrgCourseDAO(@Qualifier("orgCourseDAO") OrgCourseDAO orgCourseDAO) {
|
this.orgCourseDAO = orgCourseDAO;
|
}
|
|
/**
|
* 后台 科目列表
|
* @param sql
|
* @param args
|
* @return
|
*/
|
public List<OrgCollegeCourse> queryCourseList(String orgId){
|
|
String sql = " select o.college_course_id as collegeCourseId ,o.course_category_name as courseCategoryName, o.price , o.name, "
|
+ " concat(s.count_class,'') as classCount "
|
+ " from org_college_course o left join ( "
|
+ " select c.college_course_id,count(c.class_id) count_class from org_class c where c.delete_flag = 0 group by c.college_course_id ) "
|
+ " s on o.college_course_id = s.college_course_id where o.delete_flag = 0 and o.organization_id = ? order by o.create_time desc " ;
|
|
return orgCourseDAO.queryCourseList(sql, CollectionUtils.newList(orgId));
|
}
|
|
/*
|
* (non-Javadoc)
|
*
|
* @see
|
* com.qxueyou.scc.org.service.IOrgCourseService#insertCourse(com
|
* .iqtogether.qxueyou.org.model.OrgCourse)
|
*/
|
@Override
|
public Result insertCourse(OrgCollegeCourse course) {
|
|
if(StringUtils.isNotBlank(course.getCollegeCourseId())){ // 编辑
|
String hql = " from ClsClass where collegeCourseId = ? and deleteFlag is false";
|
List<ClsClass> classes = find(hql, CollectionUtils.newList(course.getCollegeCourseId()), ClsClass.class);
|
for (ClsClass orgClass : classes) {
|
orgClass.setCollegeCourseName(course.getName());
|
TraceUtils.setUpdateTrace(orgClass);
|
save(orgClass);
|
}
|
|
OrgCollegeCourse dbCourse = read(OrgCollegeCourse.class, course.getCollegeCourseId());
|
dbCourse.setContent(course.getContent());
|
dbCourse.setCourseCategoryId(course.getCourseCategoryId());
|
dbCourse.setCourseCategoryName(course.getCourseCategoryName());
|
dbCourse.setImgPath(course.getImgPath());
|
dbCourse.setName(course.getName());
|
dbCourse.setPrice(course.getPrice());
|
dbCourse.setRecommend(course.isRecommend());
|
dbCourse.setTeacher(course.getTeacher());
|
dbCourse.setCourseId(course.getCourseId());
|
dbCourse.setCode(course.getName());//增加设置code
|
TraceUtils.setUpdateTrace(dbCourse);
|
Result result = save(dbCourse);
|
result.setMsg(course.getCollegeCourseId());
|
|
OrgCollegeCourse occ = new OrgCollegeCourse();
|
occ.setCollegeCourseId(dbCourse.getCollegeCourseId());
|
occ.setName(dbCourse.getName());
|
occ.setCollegeId(dbCourse.getCollegeId());
|
occ.setCode(dbCourse.getCode());
|
occ.setContent(dbCourse.getContent());
|
occ.setCourseCategoryId(dbCourse.getCourseCategoryId());
|
occ.setCourseCategoryName(dbCourse.getCourseCategoryName());
|
occ.setCourseId(dbCourse.getCourseId());
|
occ.setPrice(dbCourse.getPrice());
|
result.setData(occ);
|
return result;
|
}
|
|
// 设置基本信息
|
TraceUtils.setCreateTrace(course);
|
|
course.setDeleteFlag(false);
|
course.setOrganizationId(ClientUtils.getOrgId());
|
course.setCode(course.getName());
|
course.setCourseId(course.getCourseId());
|
|
Organization org = read(Organization.class,ClientUtils.getOrgId());
|
course.setTopOrgId(org.getTopOrganizationId());
|
Result result = insert(course);
|
result.setMsg(course.getCollegeCourseId());
|
result.setData(course);
|
|
return result;
|
}
|
|
/*
|
* (non-Javadoc)
|
*
|
* @see
|
* com.qxueyou.scc.org.service.IOrgCourseService#updateCourse(com
|
* .iqtogether.qxueyou.org.model.OrgCourse)
|
*/
|
@Override
|
public Result updateCourse(OrgCollegeCourse course) {
|
|
// 设置基本信息
|
String hql = " from ClsClass where collegeCourseId = ? and deleteFlag is false";
|
List<ClsClass> classes = find(hql, CollectionUtils.newList(course.getCollegeCourseId()), ClsClass.class);
|
for (ClsClass orgClass : classes) {
|
orgClass.setCollegeCourseName(course.getName());
|
TraceUtils.setUpdateTrace(orgClass);
|
save(orgClass);
|
}
|
|
OrgCollegeCourse dbCourse = read(OrgCollegeCourse.class, course.getCollegeCourseId());
|
|
dbCourse.setContent(course.getContent());
|
dbCourse.setCourseCategoryId(course.getCourseCategoryId());
|
dbCourse.setCourseCategoryName(course.getCourseCategoryName());
|
dbCourse.setImgPath(course.getImgPath());
|
dbCourse.setName(course.getName());
|
dbCourse.setPrice(course.getPrice());
|
dbCourse.setRecommend(course.isRecommend());
|
dbCourse.setTeacher(course.getTeacher());
|
dbCourse.setCourseId(course.getCourseId());
|
//增加设置code
|
dbCourse.setCode(course.getName());
|
TraceUtils.setUpdateTrace(dbCourse);
|
Result result = save(dbCourse);
|
result.setMsg(course.getCollegeCourseId());
|
|
OrgCollegeCourse occ = new OrgCollegeCourse();
|
occ.setCollegeCourseId(dbCourse.getCollegeCourseId());
|
occ.setName(dbCourse.getName());
|
occ.setCollegeId(dbCourse.getCollegeId());
|
occ.setCode(dbCourse.getCode());
|
occ.setContent(dbCourse.getContent());
|
occ.setCourseCategoryId(dbCourse.getCourseCategoryId());
|
occ.setCourseCategoryName(dbCourse.getCourseCategoryName());
|
occ.setCourseId(dbCourse.getCourseId());
|
occ.setPrice(dbCourse.getPrice());
|
|
result.setData(occ);
|
return result;
|
}
|
|
/**
|
* 专业编辑 - 选择科目类别后加载专业列表
|
*
|
* @return
|
*/
|
@Override
|
public List<OrgCourse> loadCourse( String courseCategoryId,String courseId) {
|
|
// 查询当前机构的专业
|
String hql_coll = "from OrgCollegeCourse where deleteFlag is false and organizationId = ? and courseId is not null";
|
List<OrgCollegeCourse> orgCollLst = find(hql_coll, CollectionUtils.newList(ClientUtils.getOrgId()), OrgCollegeCourse.class);
|
|
// 过滤掉courseID
|
String courseIds = "";
|
for (int i = 0; i < orgCollLst.size(); i++) {
|
|
if( StringUtils.isNotBlank(courseId) && courseId.equals(orgCollLst.get(i).getCourseId())){
|
continue;
|
}
|
courseIds = courseIds.concat(orgCollLst.get(i).getCourseId()).concat(",");
|
|
}
|
|
// 根据选择的科目ID查询专业ID
|
String hql = "from OrgCourse where deleteFlag is false and courseCategoryId = ? ";
|
List<OrgCourse> orgCourse = find(hql, CollectionUtils.newList(courseCategoryId), OrgCourse.class);
|
|
// 过滤当前机构已经添加的专业列表
|
List<OrgCourse> orgCourseLst = new ArrayList<OrgCourse>(orgCourse.size());
|
for (OrgCourse course : orgCourse) {
|
if(!ArrayUtils.contains(courseIds.split(","), course.getCourseId())){
|
orgCourseLst.add(course);
|
}
|
}
|
|
return orgCourseLst;
|
}
|
|
|
/*
|
* (non-Javadoc)
|
* @see com.qxueyou.scc.org.service.IOrgCourseService#deleteCourses(java.lang.String[])
|
*/
|
@SuppressWarnings("unused")
|
@Override
|
public Result deleteCourses(String[] courseIds) {
|
|
getCommonDAO().bulkUpdateInLoop(
|
"update OrgCollegeCourse set deleteFlag = true where collegeCourseId = ?",
|
courseIds);
|
|
//发送消息异步维护科目关联关系
|
for(String courseId:courseIds){
|
// sendUpdateCourseRelationMsg(courseId);
|
}
|
|
return new Result(true);
|
}
|
|
/*
|
* (non-Javadoc)
|
* @see com.qxueyou.scc.org.service.IOrgCourseService#doRecommend(java.lang.String[])
|
*/
|
@Override
|
public Result doRecommend(String[] courseIds) {
|
getCommonDAO().bulkUpdateInLoop(
|
"update OrgCourse set recommend = true where courseId = ?",
|
courseIds);
|
|
return new Result(true);
|
}
|
|
/*
|
* (non-Javadoc)
|
* @see com.qxueyou.scc.org.service.IOrgCourseService#doUnRecommend(java.lang.String[])
|
*/
|
@Override
|
public Result doUnRecommend(String[] courseIds) {
|
getCommonDAO().bulkUpdateInLoop(
|
"update OrgCourse set recommend = false where courseId = ?",
|
courseIds);
|
|
return new Result(true);
|
}
|
|
|
}
|