From 784d643c8d073dc31652b03b7f1bd82a9d1c627f Mon Sep 17 00:00:00 2001
From: EricsHu <hrr145632>
Date: 星期四, 23 十一月 2023 20:21:26 +0800
Subject: [PATCH] 优化班级课程

---
 src/main/java/com/qxueyou/scc/admin/classes/service/impl/ClsClassService.java |  284 ++++++++++++++++++++++++++++++++------------------------
 1 files changed, 160 insertions(+), 124 deletions(-)

diff --git a/src/main/java/com/qxueyou/scc/admin/classes/service/impl/ClsClassService.java b/src/main/java/com/qxueyou/scc/admin/classes/service/impl/ClsClassService.java
index 2b9e1a3..12d3d5d 100644
--- a/src/main/java/com/qxueyou/scc/admin/classes/service/impl/ClsClassService.java
+++ b/src/main/java/com/qxueyou/scc/admin/classes/service/impl/ClsClassService.java
@@ -34,7 +34,7 @@
 import com.qxueyou.scc.teach.subject.model.Subject;
 
 /**
- * 班级服务类
+ * 鐝骇鏈嶅姟绫�
  *
  * @author xiadehu
  */
@@ -57,7 +57,7 @@
     ILectureService lectureService;
 
     /**
-     * 添加班级
+     * 娣诲姞鐝骇
      */
     @Override
     public Result insertClass(String className, String classNumber, Date startTime, Date endTime, String subjectId,
@@ -77,11 +77,11 @@
         return new Result(true, "success",CollectionUtils.newStringMap("classId",cls.getClassId()));
     }
     /**
-     * 添加补考班级班级
+     * 娣诲姞琛ヨ�冪彮绾х彮绾�
      */
     @Override
     public Result insertReClass(String className, String classNumber, Date startTime, Date endTime, String subjectId,
-                              String teacherId,String classTypes) {
+                                String teacherId,String classTypes) {
 
         ClsClass cls = new ClsClass();
 
@@ -97,14 +97,14 @@
         save(cls);
         return new Result(true, "success",CollectionUtils.newStringMap("classId",cls.getClassId()));
     }
-	@Override
-	public ClsClass getReClass(String classTypes) {
-		String hql = "select c from ClsClass c where c.deleteFlag is false and c.classTypes=? ";
+    @Override
+    public ClsClass getReClass(String classTypes) {
+        String hql = "select c from ClsClass c where c.deleteFlag is false and c.classTypes=? ";
 
-		ClsClass cls = findUnique(hql, CollectionUtils.newList(classTypes),
-				ClsClass.class);
-		return cls;
-	}
+        ClsClass cls = findUnique(hql, CollectionUtils.newList(classTypes),
+                ClsClass.class);
+        return cls;
+    }
 
     @Override
     public Result updateClass(String classId, String className, String classNumber, Date startTime, Date endTime,
@@ -134,23 +134,59 @@
     public ClsClass read(String classId) {
         return read(ClsClass.class, classId);
     }
+//
+//    /**
+//     * 鍘熷锛氳幏鍙栫彮绾у垪琛�
+//     */
+//    @Override
+//    public List<ClsClass> getClassLst(String keyword, String teacherId, Integer pageSize, Integer pageNum, Integer pageType) {
+//        String keyword_ = StringUtils.isBlank(keyword) ? "" : keyword;
+////        System.out.println(keyword_);
+//        StringBuffer hql = new StringBuffer("from ClsClass c where c.deleteFlag is false and c.orgId=? and c.name like ? and c.createId=?");
+//
+//        if (pageType == 1) {
+//            hql.append(" and c.endTime >= sysdate() ");
+//        }else if(pageType == 2) {
+//            hql.append(" and c.endTime < sysdate() ");
+//        }
+////        System.out.println("vvvvv"+ClientUtils.getOrgId()+"333333333"+ClientUtils.getUserId());
+//        List<Object> args = CollectionUtils.newList(ClientUtils.getOrgId(),keyword_ + "%",ClientUtils.getUserId());
+////        System.out.println(args);
+//        if (!StringUtils.isEmpty(teacherId)) {
+//            hql.append(" and exists( select 1 from ClsClassReSubject r,Subject t where r.subjectId=t.subjectId and c.classId= r.classId and t.teacherId=? and r.deleteFlag is false and t.deleteFlag is false)");
+//            args.add(teacherId);
+//        }
+//
+//        hql.append(" order by c.createTime desc");
+////        System.out.println(hql.toString());
+////        System.out.println(findList(hql.toString(), new Pager(pageSize, pageNum), args, ClsClass.class));
+//        return findList(hql.toString(), new Pager(pageSize, pageNum), args, ClsClass.class);
+//    }
 
     /**
-     * 获取班级列表
+     * 浼樺寲鑾峰彇鐝骇鍒楄〃
+     * @param keyword
+     * @param teacherId
+     * @param pageSize
+     * @param pageNum
+     * @param pageType
+     * @return
      */
-    @Override
     public List<ClsClass> getClassLst(String keyword, String teacherId, Integer pageSize, Integer pageNum, Integer pageType) {
         String keyword_ = StringUtils.isBlank(keyword) ? "" : keyword;
 //        System.out.println(keyword_);
-        StringBuffer hql = new StringBuffer("from ClsClass c where c.deleteFlag is false and c.orgId=? and c.name like ? and c.createId=?");
+        StringBuffer hql = new StringBuffer("from ClsClass c where c.deleteFlag is false and c.orgId=? and c.name like ? ");
 
         if (pageType == 1) {
             hql.append(" and c.endTime >= sysdate() ");
         }else if(pageType == 2) {
             hql.append(" and c.endTime < sysdate() ");
         }
-//        System.out.println("vvvvv"+ClientUtils.getOrgId()+"333333333"+ClientUtils.getUserId());
-        List<Object> args = CollectionUtils.newList(ClientUtils.getOrgId(),keyword_ + "%","40288a1261d106ba0161d1072e260000");
+//        if (!StringUtils.isEmpty(teacherId)) {
+//            hql.append("and c.createId=?)");
+//        }
+//        System.out.println("vvvvv"+ClientUtils.getOrgId()+"333333333"+ClientUtils.getUserId()); ,ClientUtils.getUserId()
+        List<Object> args = CollectionUtils.newList(ClientUtils.getOrgId(),keyword_ + "%");
 //        System.out.println(args);
         if (!StringUtils.isEmpty(teacherId)) {
             hql.append(" and exists( select 1 from ClsClassReSubject r,Subject t where r.subjectId=t.subjectId and c.classId= r.classId and t.teacherId=? and r.deleteFlag is false and t.deleteFlag is false)");
@@ -170,13 +206,13 @@
         if (pageType == 1) {
             hql.append(" and c.endTime >= sysdate() ");
         }else if(pageType == 2) {
-        	hql.append(" and c.endTime < sysdate() ");
+            hql.append(" and c.endTime < sysdate() ");
         }
 
         List<Object> args = CollectionUtils.newList(ClientUtils.getOrgId(),keyword + "%");
 
         if (!StringUtils.isEmpty(teacherId)) {
-        	hql.append(" and exists( select 1 from ClsClassReSubject r,Subject t where r.subjectId=t.subjectId and c.classId= r.classId and t.teacherId=? and r.deleteFlag is false and t.deleteFlag is false)");
+            hql.append(" and exists( select 1 from ClsClassReSubject r,Subject t where r.subjectId=t.subjectId and c.classId= r.classId and t.teacherId=? and r.deleteFlag is false and t.deleteFlag is false)");
             args.add(teacherId);
         }
 
@@ -197,15 +233,15 @@
     }
 
     /**
-     * 删除班级
+     * 鍒犻櫎鐝骇
      */
     @Override
     public Result deleteClass(String[] classIds) {
         for (String classId : classIds) {
             deleteClass(classId);
-            //删除班级学员
+            //鍒犻櫎鐝骇瀛﹀憳
             this.deleteStudent(classId);
-            //删除班级课程
+            //鍒犻櫎鐝骇璇剧▼
             this.deleteClassSubject(classId);
         }
 
@@ -213,21 +249,21 @@
     }
 
     /**
-     * 删除班级学员
+     * 鍒犻櫎鐝骇瀛﹀憳
      */
     private void deleteStudent(String classId) {
         this.bulkUpdate("update StuStudent set deleteFlag = 1 where classId = ?", new Object[] {classId});
     }
 
     /**
-     * 删除班级课程
+     * 鍒犻櫎鐝骇璇剧▼
      */
     private void deleteClassSubject(String classId) {
         this.bulkUpdate("delete from ClsClassReSubject  where classId=?", new Object[] {classId});
     }
 
     /**
-     * @param classId 班级id
+     * @param classId 鐝骇id
      * @return
      */
     private Result deleteClass(String classId) {
@@ -316,138 +352,138 @@
 
     @Override
     public List<Map<String,Object>> queryAvailableClassIdAndName(String teacherId,String subjectId) {
-    	StringBuffer hql = new StringBuffer(1000);
-    	// and c.endTime>=sysdate() 增加条件过滤掉历史班级
-    	hql.append("select c.classId as classId ,c.name as className from ClsClass c where c.deleteFlag is false and c.orgId=:orgId and c.createId=:createId " );
-    	Map<String,Object> queryParam = new HashMap<String,Object>();
-    	queryParam.put("orgId", ClientUtils.getOrgId());
-    	queryParam.put("createId", ClientUtils.getUserId());
+        StringBuffer hql = new StringBuffer(1000);
+        // and c.endTime>=sysdate() 澧炲姞鏉′欢杩囨护鎺夊巻鍙茬彮绾� and c.createId=:createId
+        hql.append("select c.classId as classId ,c.name as className from ClsClass c where c.deleteFlag is false and c.orgId=:orgId " );
+        Map<String,Object> queryParam = new HashMap<String,Object>();
+        queryParam.put("orgId", ClientUtils.getOrgId());
+//        queryParam.put("createId", ClientUtils.getUserId());
 
-    	if(StringUtils.isNotEmpty(teacherId)||StringUtils.isNotEmpty(subjectId)){
-    		hql.append(" and exists (select 1 from ClsClassReSubject r ,Subject s where r.subjectId=s.subjectId and  r.classId =c.classId and r.deleteFlag is false ");
-    	}
+        if(StringUtils.isNotEmpty(teacherId)||StringUtils.isNotEmpty(subjectId)){
+            hql.append(" and exists (select 1 from ClsClassReSubject r ,Subject s where r.subjectId=s.subjectId and  r.classId =c.classId and r.deleteFlag is false ");
+        }
 
-    	if(!StringUtils.isEmpty(teacherId)){
-    		hql.append(" and s.teacherId=:teacherId ");
-    		queryParam.put("teacherId", teacherId);
-    	}
+        if(!StringUtils.isEmpty(teacherId)){
+            hql.append(" and s.teacherId=:teacherId ");
+            queryParam.put("teacherId", teacherId);
+        }
 
-    	if(!StringUtils.isEmpty(subjectId)){
-    		hql.append(" and s.origSubjectId=:subjectId ");
-    		queryParam.put("subjectId", subjectId);
-    	}
+        if(!StringUtils.isEmpty(subjectId)){
+            hql.append(" and s.origSubjectId=:subjectId ");
+            queryParam.put("subjectId", subjectId);
+        }
 
-    	if(StringUtils.isNotEmpty(teacherId)||StringUtils.isNotEmpty(subjectId)){
-    		hql.append(")");
-    	}
+        if(StringUtils.isNotEmpty(teacherId)||StringUtils.isNotEmpty(subjectId)){
+            hql.append(")");
+        }
 
-    	return this.findListWithMapByHql(hql.toString(), queryParam);
+        return this.findListWithMapByHql(hql.toString(), queryParam);
     }
 
-	@Override
+    @Override
     public List<Map<String,Object>> queryAllClassIdAndName() {
-    	StringBuffer hql = new StringBuffer(500);
+        StringBuffer hql = new StringBuffer(500);
 //        c.deleteFlag is false  and
-        hql.append("select c.classId as classId ,c.name as className from ClsClass c where c.endTime>=:endTime  and c.orgId=:orgId " );
+        hql.append("select c.classId as classId ,c.name as className from ClsClass c where c.endTime>=:endTime and deleteFlag is false  and c.orgId=:orgId " );
 
-    	return this.findListWithMapByHql(hql.toString(), CollectionUtils.newObjectMap("endTime",new Date(),"orgId",ClientUtils.getOrgId()));
+        return this.findListWithMapByHql(hql.toString(), CollectionUtils.newObjectMap("endTime",new Date(),"orgId",ClientUtils.getOrgId()));
     }
 
 
 
-	/**
-	 * 查询班级
-	 *
-	 * type 1正常班級,2历史班級
-	 */
-	public Result classList(String keyword, Pager pager, int type) {
-		//获取老师id
-		String teacherId = teacherService.getTeacherIdByUserId(ClientUtils.getUserId());
-		if (StringUtils.isEmpty(teacherId)) {
-			return new Result(false, "非老师角色无法查看班级");
-		}
-		QClsClass qClsClass = QClsClass.clsClass;
-		QSubject qSubject = QSubject.subject;
-		QClsClassReSubject qClsClassReSubject = QClsClassReSubject.clsClassReSubject;
-		QSubjectProgressTreeV qSubjectProgressTreeV = QSubjectProgressTreeV.subjectProgressTreeV;
+    /**
+     * 鏌ヨ鐝骇
+     *
+     * type 1姝e父鐝礆锛�2鍘嗗彶鐝礆
+     */
+    public Result classList(String keyword, Pager pager, int type) {
+        //鑾峰彇鑰佸笀id
+        String teacherId = teacherService.getTeacherIdByUserId(ClientUtils.getUserId());
+        if (StringUtils.isEmpty(teacherId)) {
+            return new Result(false, "闈炶�佸笀瑙掕壊鏃犳硶鏌ョ湅鐝骇");
+        }
+        QClsClass qClsClass = QClsClass.clsClass;
+        QSubject qSubject = QSubject.subject;
+        QClsClassReSubject qClsClassReSubject = QClsClassReSubject.clsClassReSubject;
+        QSubjectProgressTreeV qSubjectProgressTreeV = QSubjectProgressTreeV.subjectProgressTreeV;
 
-		//查询脚本
-		JPAQuery<Tuple> queryDsl = this.getQueryFactory()
-				.select(qClsClass.name, qClsClass.classId, qClsClass.classNumber, qClsClass.studentCount,
-						qClsClass.createTime, qClsClass.startTime, qClsClass.endTime, qSubject)
-				.from(qClsClass, qSubject, qClsClassReSubject)
-				.where(qClsClass.deleteFlag.isFalse().and((type == 2 ? qClsClass.endTime.lt(new Date()) : qClsClass.endTime.gt(new Date()))).and(qClsClass.name.like("%" + keyword + "%"))
-						.and(qSubject.teacherId.eq(teacherId)).and(qSubject.deleteFlag.isFalse())
-						.and(qClsClassReSubject.deleteFlag.isFalse())
-						.and(qClsClassReSubject.classId.eq(qClsClass.classId))
-						.and(qClsClassReSubject.subjectId.eq(qSubject.subjectId)))
-				.groupBy(qClsClass.classId);
+        //鏌ヨ鑴氭湰
+        JPAQuery<Tuple> queryDsl = this.getQueryFactory()
+                .select(qClsClass.name, qClsClass.classId, qClsClass.classNumber, qClsClass.studentCount,
+                        qClsClass.createTime, qClsClass.startTime, qClsClass.endTime, qSubject)
+                .from(qClsClass, qSubject, qClsClassReSubject)
+                .where(qClsClass.deleteFlag.isFalse().and((type == 2 ? qClsClass.endTime.lt(new Date()) : qClsClass.endTime.gt(new Date()))).and(qClsClass.name.like("%" + keyword + "%"))
+                        .and(qSubject.teacherId.eq(teacherId)).and(qSubject.deleteFlag.isFalse())
+                        .and(qClsClassReSubject.deleteFlag.isFalse())
+                        .and(qClsClassReSubject.classId.eq(qClsClass.classId))
+                        .and(qClsClassReSubject.subjectId.eq(qSubject.subjectId)))
+                .groupBy(qClsClass.classId);
 
-		//总数
-		long count = queryDsl.fetchCount();
+        //鎬绘暟
+        long count = queryDsl.fetchCount();
 
-		//listData
-		List<Map<String, Object>> listData = queryDsl.limit(pager.getPageSize()).offset(pager.getOffset())
-				.orderBy(qClsClass.createTime.desc(), qSubject.createTime.desc()).fetch().stream().map(tuple -> {
-					Map<String, Object> map = new HashMap<String, Object>();
-					Subject subject = tuple.get(qSubject);
+        //listData
+        List<Map<String, Object>> listData = queryDsl.limit(pager.getPageSize()).offset(pager.getOffset())
+                .orderBy(qClsClass.createTime.desc(), qSubject.createTime.desc()).fetch().stream().map(tuple -> {
+                    Map<String, Object> map = new HashMap<String, Object>();
+                    Subject subject = tuple.get(qSubject);
 
-					map.put("className", tuple.get(qClsClass.name));
-					map.put("classId", tuple.get(qClsClass.classId));
-					map.put("classNumber", tuple.get(qClsClass.classNumber));
-					map.put("studentCount", tuple.get(qClsClass.studentCount));
-					map.put("createTime", tuple.get(qClsClass.createTime));
-					map.put("startTime", tuple.get(qClsClass.startTime));
-					map.put("endTime", tuple.get(qClsClass.endTime));
-					if (subject != null) {
-						map.put("subjectName", subject.getName());
-						map.put("progressPercent",
-								this.getQueryFactory().select(qSubjectProgressTreeV.percent.avg())
-										.from(qSubjectProgressTreeV)
-										.where(qSubjectProgressTreeV.id.nodeId.eq(subject.getSubjectId())
-												.and(qSubjectProgressTreeV.nodeType.eq(Progress.PROGRESS_TYPE_SUBJECT)))
-										.groupBy(qSubjectProgressTreeV.id.nodeId).fetchOne());
-					} else {
-						map.put("subjectName", "暂无开班课程");
-						map.put("progressPercent", 0);
-					}
-					return map;
-				}).collect(Collectors.toList());
+                    map.put("className", tuple.get(qClsClass.name));
+                    map.put("classId", tuple.get(qClsClass.classId));
+                    map.put("classNumber", tuple.get(qClsClass.classNumber));
+                    map.put("studentCount", tuple.get(qClsClass.studentCount));
+                    map.put("createTime", tuple.get(qClsClass.createTime));
+                    map.put("startTime", tuple.get(qClsClass.startTime));
+                    map.put("endTime", tuple.get(qClsClass.endTime));
+                    if (subject != null) {
+                        map.put("subjectName", subject.getName());
+                        map.put("progressPercent",
+                                this.getQueryFactory().select(qSubjectProgressTreeV.percent.avg())
+                                        .from(qSubjectProgressTreeV)
+                                        .where(qSubjectProgressTreeV.id.nodeId.eq(subject.getSubjectId())
+                                                .and(qSubjectProgressTreeV.nodeType.eq(Progress.PROGRESS_TYPE_SUBJECT)))
+                                        .groupBy(qSubjectProgressTreeV.id.nodeId).fetchOne());
+                    } else {
+                        map.put("subjectName", "鏆傛棤寮�鐝绋�");
+                        map.put("progressPercent", 0);
+                    }
+                    return map;
+                }).collect(Collectors.toList());
 
-		return new Result(true, "success", CollectionUtils.newObjectMap("count", count, "listData", listData));
-	}
+        return new Result(true, "success", CollectionUtils.newObjectMap("count", count, "listData", listData));
+    }
 
     @Override
     public String [] queryClassNamesByIds(String[] classIds){
-    	if(classIds!=null && classIds.length==0){
-    		return null;
-    	}
+        if(classIds!=null && classIds.length==0){
+            return null;
+        }
 
-    	String [] classNames = null;
+        String [] classNames = null;
 
-    	List<Map<String,Object>> lstResult= this.findListWithMapByHql("select c.classId as classId ,c.name as className from ClsClass c where c.classId in (:classIds) ",
-    			CollectionUtils.newObjectMap("classIds",classIds));
+        List<Map<String,Object>> lstResult= this.findListWithMapByHql("select c.classId as classId ,c.name as className from ClsClass c where c.classId in (:classIds) ",
+                CollectionUtils.newObjectMap("classIds",classIds));
 
-    	if(lstResult!=null && lstResult.size()==classIds.length){
-    		Map<String,String> map= new HashMap<String,String>(lstResult.size());
-    		classNames =new String [classIds.length];
+        if(lstResult!=null && lstResult.size()==classIds.length){
+            Map<String,String> map= new HashMap<String,String>(lstResult.size());
+            classNames =new String [classIds.length];
 
-    		for(Map<String,Object> item:lstResult){
-        		map.put((String)item.get("classId"), (String)item.get("className"));
-        	}
+            for(Map<String,Object> item:lstResult){
+                map.put((String)item.get("classId"), (String)item.get("className"));
+            }
 
-    		for(int i=0;i<classIds.length;i++){
-    			classNames[i]= map.get(classIds[i]);
-    		}
-    	}
+            for(int i=0;i<classIds.length;i++){
+                classNames[i]= map.get(classIds[i]);
+            }
+        }
 
-    	return classNames;
+        return classNames;
     }
 
     @Override
     public List<ClsClass> queryStudentClassesByUserId(String userId) {
-    	return this.find("from  ClsClass c where c.deleteFlag is false and exists( select 1 from StuStudent t where  t.classId = c.classId and t.userId=? and t.status=? ) ",
-				CollectionUtils.newList(userId,StuStudent.STATUS_ACTIVE),ClsClass.class);
+        return this.find("from  ClsClass c where c.deleteFlag is false and exists( select 1 from StuStudent t where  t.classId = c.classId and t.userId=? and t.status=? ) ",
+                CollectionUtils.newList(userId,StuStudent.STATUS_ACTIVE),ClsClass.class);
     }
 
 

--
Gitblit v1.8.0