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);
|
}
|
|
|
}
|