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 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 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 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 loadCourse( String courseCategoryId,String courseId) { // 查询当前机构的专业 String hql_coll = "from OrgCollegeCourse where deleteFlag is false and organizationId = ? and courseId is not null"; List 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 = find(hql, CollectionUtils.newList(courseCategoryId), OrgCourse.class); // 过滤当前机构已经添加的专业列表 List orgCourseLst = new ArrayList(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); } }