From 3adefa44b77cae70f37b573560ed480c2e56768b Mon Sep 17 00:00:00 2001 From: EricsHu <hrr145632> Date: 星期二, 09 五月 2023 19:16:17 +0800 Subject: [PATCH] 新增后台接口 --- src/main/resources/application.properties | 4 src/main/java/com/qxueyou/scc/base/dao/BaseDAO.java | 555 ++++++++++++------------ src/main/java/com/qxueyou/scc/sys/action/LoginController.java | 37 + src/main/java/com/qxueyou/scc/exercise/service/impl/ExerciseInfoService.java | 356 ++++++++-------- src/main/java/com/qxueyou/scc/admin/schoolRoll/impl/SchoolRollServiceImpl.java | 15 src/main/java/com/qxueyou/scc/wx/service/IWechatService.java | 2 src/main/java/com/qxueyou/scc/admin/classes/service/impl/ClsClassService.java | 220 +++++----- src/main/java/com/qxueyou/scc/teach/live/service/impl/MediaLiveService.java | 19 src/main/java/com/qxueyou/scc/wx/service/impl/WechatService.java | 16 src/main/java/com/qxueyou/scc/controller/VideoLiveController.java | 4 src/main/java/com/qxueyou/scc/teach/live/service/IMediaLiveService.java | 48 +- 11 files changed, 678 insertions(+), 598 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 3aa4e02..dbf0cb3 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 @@ -81,7 +81,7 @@ */ @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, @@ -150,7 +150,7 @@ hql.append(" and c.endTime < sysdate() "); } // System.out.println("vvvvv"+ClientUtils.getOrgId()+"333333333"+ClientUtils.getUserId()); - List<Object> args = CollectionUtils.newList(ClientUtils.getOrgId(),keyword_ + "%","40288a1261d106ba0161d1072e260000"); + 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)"); @@ -170,13 +170,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); } @@ -316,138 +316,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() 澧炲姞鏉′欢杩囨护鎺夊巻鍙茬彮绾� + 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()); - 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 " ); - 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姝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; + /** + * 鏌ヨ鐝骇 + * + * 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); } diff --git a/src/main/java/com/qxueyou/scc/admin/schoolRoll/impl/SchoolRollServiceImpl.java b/src/main/java/com/qxueyou/scc/admin/schoolRoll/impl/SchoolRollServiceImpl.java index 92f3715..2d0694f 100644 --- a/src/main/java/com/qxueyou/scc/admin/schoolRoll/impl/SchoolRollServiceImpl.java +++ b/src/main/java/com/qxueyou/scc/admin/schoolRoll/impl/SchoolRollServiceImpl.java @@ -65,14 +65,23 @@ StuStudent stuStudent = findUnique(hql.toString(), args, StuStudent.class); if(stuStudent!=null && classId!=null){ + StringBuffer ClaHql=new StringBuffer("from ClsClass where classId=? and deleteFlag is false"); + + List<Object> claArgs = CollectionUtils.newList(classId); + + ClsClass cLaClass = findUnique(ClaHql.toString(), claArgs, ClsClass.class); + + cLaClass.setStudentCount(cLaClass.getStudentCount()+1); + stuStudent.setClassId(classId); + save(stuStudent); }else { return new Result(false,"鐝骇涓嶅瓨鍦ㄦ垨瀛︾敓涓嶅瓨鍦�"); } } - return new Result(true); + return new Result(true,"鍒嗙彮鎴愬姛"); } @@ -88,7 +97,7 @@ String[] headers = { "濮撳悕", "鎬у埆" ,"鎵嬫満鍙�" ,"韬唤璇�"}; List<StuStudent> dataset = new ArrayList<StuStudent>(); for (StuStudent stuStudent: - stuStudents) { + stuStudents) { StuStudent u = new StuStudent(); u.setName(stuStudent.getName()); u.setSex(stuStudent.getSex()); @@ -133,7 +142,7 @@ @Override public Result loopStudentIds(String[] studentIds) { for (String studentId: - studentIds) { + studentIds) { auditStudent(studentId); } return new Result(true); diff --git a/src/main/java/com/qxueyou/scc/base/dao/BaseDAO.java b/src/main/java/com/qxueyou/scc/base/dao/BaseDAO.java index 13f67a8..843a3db 100644 --- a/src/main/java/com/qxueyou/scc/base/dao/BaseDAO.java +++ b/src/main/java/com/qxueyou/scc/base/dao/BaseDAO.java @@ -39,11 +39,12 @@ * @since JDK1.6 * @history 2010-07-28 澶忓痉铏� 鏂板缓 */ +@Transactional(readOnly=false) public class BaseDAO extends HibernateDaoSupport { - - /** 娉ㄩ噴 rawtypes */ - private static final String RAW_TYPES = "rawtypes"; - + + /** 娉ㄩ噴 rawtypes */ + private static final String RAW_TYPES = "rawtypes"; + /** * 娉ㄥ叆sessionFactory * @@ -63,9 +64,9 @@ * @return 鏌ユ壘鍒扮殑缁撴灉,濡傛灉娌℃壘鍒�,杩斿洖null */ public <T> T read(Class<T> clz, Serializable key) { - if(key==null){ - return null; - } + if(key==null){ + return null; + } return clz.cast(this.getHibernateTemplate().get(clz, key)); } @@ -75,7 +76,7 @@ public void update(Object obj) { this.getHibernateTemplate().update(obj); } - + /** * 淇濆瓨瀵硅薄 */ @@ -96,7 +97,7 @@ */ public void saveOrUpdateAll(@SuppressWarnings(RAW_TYPES) Collection collection) { for(Object obj:collection){ - this.getHibernateTemplate().saveOrUpdate(obj); + this.getHibernateTemplate().saveOrUpdate(obj); } } @@ -106,7 +107,7 @@ public void deleteAll(@SuppressWarnings(RAW_TYPES) Collection col) { this.getHibernateTemplate().deleteAll(col); } - + /** * 鏍规嵁hql鏌ヨ,骞惰繑鍥炴墽琛岀被鍨嬬殑鍒楄〃缁撴灉 * @@ -115,10 +116,10 @@ * @return */ @SuppressWarnings("unchecked") - public <T> List<T> find(String hql, Class<T> cls) { + public <T> List<T> find(String hql, Class<T> cls) { return find(hql,Collections.EMPTY_LIST,cls); } - + /** * 鏍规嵁hql鏌ヨ,骞惰繑鍥炴墽琛岀被鍨嬬殑鍒楄〃缁撴灉 * @@ -127,11 +128,11 @@ * @param cls 杩斿洖绫诲瀷 * @return */ - public <T> List<T> find(final String hql,final List<Object> args,final Class<T> cls) { - return this.getHibernateTemplate().execute(new HibernateCallback<List<T>>() { + public <T> List<T> find(final String hql,final List<Object> args,final Class<T> cls) { + return this.getHibernateTemplate().execute(new HibernateCallback<List<T>>() { @SuppressWarnings("unchecked") - public List<T> doInHibernate(Session session) { + public List<T> doInHibernate(Session session) { Query query = session.createQuery(hql); int i = 0; for (Object arg : args) { @@ -143,7 +144,7 @@ } }); } - + /** * 鏍规嵁hql鏌ヨ,骞惰繑鍥炴墽琛岀被鍨嬬殑鍒楄〃 * @@ -152,11 +153,11 @@ * @param cls 杩斿洖绫诲瀷 * @return */ - @SuppressWarnings("unchecked") - public List<Object[]> findwithRawResult(String hql, List<Object> args) { + @SuppressWarnings("unchecked") + public List<Object[]> findwithRawResult(String hql, List<Object> args) { return (List<Object[]>) this.getHibernateTemplate().find(hql, args.toArray()); } - + /** * 鏍规嵁hql鏌ヨ,杩斿洖鍒楄〃鏁版嵁鎬绘暟 * @@ -165,28 +166,28 @@ * @param cls 杩斿洖绫诲瀷 * @return */ - public int findCount(final String hql, final List<Object> args) { - return getHibernateTemplate().execute(new HibernateCallback<Integer>() { - + public int findCount(final String hql, final List<Object> args) { + return getHibernateTemplate().execute(new HibernateCallback<Integer>() { + @Override public Integer doInHibernate(Session session){ - - Query query = session.createQuery(hql.trim().startsWith("from")?"select count(1) ".concat(hql):hql); - int i = 0; - for (Object arg : args) { + + Query query = session.createQuery(hql.trim().startsWith("from")?"select count(1) ".concat(hql):hql); + int i = 0; + for (Object arg : args) { query.setParameter(i++, arg); } - - if(null != query.uniqueResult()){ - return ((Long)query.uniqueResult()).intValue(); - }else{ - return 0 ; - } + + if(null != query.uniqueResult()){ + return ((Long)query.uniqueResult()).intValue(); + }else{ + return 0 ; + } } }); } - - /** + + /** * 鏍规嵁hql鏌ヨ,杩斿洖鍒楄〃鏁版嵁鎬绘暟 * * @param hql 鏌ヨ璇彞 @@ -194,27 +195,27 @@ * @param cls 杩斿洖绫诲瀷 * @return */ - public int findCountBySql(final String sql, final List<Object> args) { - return getHibernateTemplate().execute(new HibernateCallback<Integer>() { - + public int findCountBySql(final String sql, final List<Object> args) { + return getHibernateTemplate().execute(new HibernateCallback<Integer>() { + @Override public Integer doInHibernate(Session session){ - - Query query = session.createSQLQuery(sql.trim().startsWith("from")?"select count(1) ".concat(sql):sql); - int i = 0; - for (Object arg : args) { + + Query query = session.createSQLQuery(sql.trim().startsWith("from")?"select count(1) ".concat(sql):sql); + int i = 0; + for (Object arg : args) { query.setParameter(i++, arg); } - - if(null != query.uniqueResult()){ - return ((BigInteger)query.uniqueResult()).intValue(); - }else{ - return 0 ; - } + + if(null != query.uniqueResult()){ + return ((BigInteger)query.uniqueResult()).intValue(); + }else{ + return 0 ; + } } }); } - + /** * 鏍规嵁hql鏌ヨ,杩斿洖鍒楄〃鍒嗛〉鏁版嵁 * @@ -224,7 +225,7 @@ * @return */ @SuppressWarnings({ "unchecked" }) - public <T> List<T> findList(final String hql, final Pager page, final List<Object> args,Class<T> cls) { + public <T> List<T> findList(final String hql, final Pager page, final List<Object> args,Class<T> cls) { return this.getHibernateTemplate().execute(new HibernateCallback<List<T>>() { public List<T> doInHibernate(Session session) { @@ -239,7 +240,7 @@ } }); } - + /** * 鏍规嵁hql鏌ヨ,杩斿洖鍞竴鐨勬暟鎹� * @@ -249,7 +250,7 @@ * @return */ @SuppressWarnings({ RAW_TYPES, "unchecked" }) - public <T> T findUnique(final String hql, final List<Object> args,Class<T> cls) { + public <T> T findUnique(final String hql, final List<Object> args,Class<T> cls) { return (T)this.getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) { @@ -290,7 +291,7 @@ }); } - + /** * 鏍规嵁hql鏌ヨ,骞惰繑鍥炴墽琛岀被鍨嬬殑鍒楄〃缁撴灉 * @@ -310,14 +311,14 @@ query.setParameter(i++, arg); } query.setFirstResult(pager.getPageSize()*(pager.getPageNum()-1)); - query.setMaxResults(pager.getPageSize()); + query.setMaxResults(pager.getPageSize()); return query.list(); } }); } - - + + /** * hql鍙惈鍗曚竴鍙傛暟 * @@ -327,17 +328,17 @@ * @return */ public Result bulkUpdateInLoop(String hql, Object args[]) { - int iCount = 0; + int iCount = 0; for(Object arg:args){ - iCount += getHibernateTemplate().bulkUpdate(hql, arg); + iCount += getHibernateTemplate().bulkUpdate(hql, arg); } Map<String,Object> attrs = new HashMap<String,Object>(1); attrs.put("doCount", iCount); Result result = new Result(true); result.setData(attrs); - return result; + return result; } - + /** * hql鍙惈鍗曚竴鍙傛暟 * @@ -347,14 +348,14 @@ * @return */ public Result bulkUpdate(String hql, Object args[]) { - int count = getHibernateTemplate().bulkUpdate(hql, args); + int count = getHibernateTemplate().bulkUpdate(hql, args); Map<String,Object> attrs = new HashMap<String,Object>(1); attrs.put("doCount", count); Result result = new Result(true); result.setData(attrs); - return result; + return result; } - + /** * 瀛樺偍杩囩▼璇彞 * @@ -362,25 +363,25 @@ * @param args 鍙傛暟鏁扮粍 * @return */ - public Result executeProduce(final String sql, final Object args[]) { - - Integer result = getHibernateTemplate().execute(new HibernateCallback<Integer>(){ + public Result executeProduce(final String sql, final Object args[]) { - @Override - public Integer doInHibernate(Session session) - throws HibernateException { - - Query query = session.createSQLQuery("{ "+sql+" }"); - for(int i=0;i<args.length;i++){ - query.setParameter(i, args[i]); - } + Integer result = getHibernateTemplate().execute(new HibernateCallback<Integer>(){ + + @Override + public Integer doInHibernate(Session session) + throws HibernateException { + + Query query = session.createSQLQuery("{ "+sql+" }"); + for(int i=0;i<args.length;i++){ + query.setParameter(i, args[i]); + } return query.executeUpdate(); - } - + } + }); return new Result(true,String.valueOf(result)); } - + /** * 鎵цsql鍒犻櫎 * @@ -388,24 +389,24 @@ * @param args 鍙傛暟鏁扮粍 * @return */ - public int executeSqlDelete(final String sql, final Object args[]) { - - return getHibernateTemplate().execute(new HibernateCallback<Integer>(){ + public int executeSqlDelete(final String sql, final Object args[]) { - @Override - public Integer doInHibernate(Session session) - throws HibernateException { - - Query query = session.createSQLQuery(sql); - for(int i=0;i<args.length;i++){ - query.setParameter(i, args[i]); - } + return getHibernateTemplate().execute(new HibernateCallback<Integer>(){ + + @Override + public Integer doInHibernate(Session session) + throws HibernateException { + + Query query = session.createSQLQuery(sql); + for(int i=0;i<args.length;i++){ + query.setParameter(i, args[i]); + } return query.executeUpdate(); - } - + } + }); } - + /** * 鏍规嵁hql鏌ヨ,骞惰繑鍥炴墽琛岀被鍨嬬殑鍒楄〃缁撴灉 * @@ -416,30 +417,30 @@ */ @SuppressWarnings({RAW_TYPES, "unchecked" }) public List<Object[]> findRawByComplexHql(final String hql, final Map<String, Object> map) { - // 鏌ヨ缁撴灉 + // 鏌ヨ缁撴灉 return (List<Object[]>)this.getHibernateTemplate().execute(new HibernateCallback<List>() { public List doInHibernate(Session session) { Query query = session.createQuery(hql); - if (map != null) { - Set<String> keySet = map.keySet(); - for (String string : keySet) { - Object obj = map.get(string); + if (map != null) { + Set<String> keySet = map.keySet(); + for (String string : keySet) { + Object obj = map.get(string); //杩欓噷鑰冭檻浼犲叆鐨勫弬鏁版槸浠�涔堢被鍨嬶紝涓嶅悓绫诲瀷浣跨敤鐨勬柟娉曚笉鍚� - if(obj instanceof Collection<?>){ - query.setParameterList(string, (Collection<?>)obj); - }else if(obj instanceof Object[]){ - query.setParameterList(string, (Object[])obj); - }else{ - query.setParameter(string, obj); - } - } - } + if(obj instanceof Collection<?>){ + query.setParameterList(string, (Collection<?>)obj); + }else if(obj instanceof Object[]){ + query.setParameterList(string, (Object[])obj); + }else{ + query.setParameter(string, obj); + } + } + } return query.list(); } }); - } - + } + /** * 鏍规嵁hql鏌ヨ,杩斿洖鍒楄〃鏁版嵁鎬绘暟 * @@ -448,39 +449,39 @@ * @param cls 杩斿洖绫诲瀷 * @return */ - public int findCountByComplexHql(final String hql, final Map<String, Object> map) { - return getHibernateTemplate().execute(new HibernateCallback<Integer>() { - + public int findCountByComplexHql(final String hql, final Map<String, Object> map) { + return getHibernateTemplate().execute(new HibernateCallback<Integer>() { + @Override public Integer doInHibernate(Session session){ - - Query queryHql = session.createQuery(hql.trim().startsWith("from")?"select count(1) ".concat(hql):hql); - - if (map != null) { - Set<String> keySet = map.keySet(); - for (String string : keySet) { - Object obj = map.get(string); + + Query queryHql = session.createQuery(hql.trim().startsWith("from")?"select count(1) ".concat(hql):hql); + + if (map != null) { + Set<String> keySet = map.keySet(); + for (String string : keySet) { + Object obj = map.get(string); //杩欓噷鑰冭檻浼犲叆鐨勫弬鏁版槸浠�涔堢被鍨嬶紝涓嶅悓绫诲瀷浣跨敤鐨勬柟娉曚笉鍚� - if(obj instanceof Collection<?>){ - queryHql.setParameterList(string, (Collection<?>)obj); - }else if(obj instanceof Object[]){ - queryHql.setParameterList(string, (Object[])obj); - }else{ - queryHql.setParameter(string, obj); - } - } - } - - if(null != queryHql.uniqueResult()){ - return ((Long)queryHql.uniqueResult()).intValue(); - }else{ - return 0 ; - } + if(obj instanceof Collection<?>){ + queryHql.setParameterList(string, (Collection<?>)obj); + }else if(obj instanceof Object[]){ + queryHql.setParameterList(string, (Object[])obj); + }else{ + queryHql.setParameter(string, obj); + } + } + } + + if(null != queryHql.uniqueResult()){ + return ((Long)queryHql.uniqueResult()).intValue(); + }else{ + return 0 ; + } } }); } - - /** + + /** * 鏍规嵁sql鏌ヨ,杩斿洖鍒楄〃鏁版嵁鎬绘暟 * * @param hql 鏌ヨ璇彞 @@ -488,38 +489,38 @@ * @param cls 杩斿洖绫诲瀷 * @return */ - public int findCountByComplexSql(final String hql, final Map<String, Object> map) { - return getHibernateTemplate().execute(new HibernateCallback<Integer>() { - + public int findCountByComplexSql(final String hql, final Map<String, Object> map) { + return getHibernateTemplate().execute(new HibernateCallback<Integer>() { + @Override public Integer doInHibernate(Session session){ - - Query querySql = session.createSQLQuery(hql.trim().startsWith("from")?"select count(1) ".concat(hql):hql); - - if (map != null) { - Set<String> keySet = map.keySet(); - for (String string : keySet) { - Object obj = map.get(string); + + Query querySql = session.createSQLQuery(hql.trim().startsWith("from")?"select count(1) ".concat(hql):hql); + + if (map != null) { + Set<String> keySet = map.keySet(); + for (String string : keySet) { + Object obj = map.get(string); //杩欓噷鑰冭檻浼犲叆鐨勫弬鏁版槸浠�涔堢被鍨嬶紝涓嶅悓绫诲瀷浣跨敤鐨勬柟娉曚笉鍚� - if(obj instanceof Collection<?>){ - querySql.setParameterList(string, (Collection<?>)obj); - }else if(obj instanceof Object[]){ - querySql.setParameterList(string, (Object[])obj); - }else{ - querySql.setParameter(string, obj); - } - } - } - - if(null != querySql.uniqueResult()){ - return ((BigInteger)querySql.uniqueResult()).intValue(); - }else{ - return 0 ; - } + if(obj instanceof Collection<?>){ + querySql.setParameterList(string, (Collection<?>)obj); + }else if(obj instanceof Object[]){ + querySql.setParameterList(string, (Object[])obj); + }else{ + querySql.setParameter(string, obj); + } + } + } + + if(null != querySql.uniqueResult()){ + return ((BigInteger)querySql.uniqueResult()).intValue(); + }else{ + return 0 ; + } } }); } - + /** * 鏍规嵁hql鏌ヨ,骞惰繑鍥炴墽琛岀被鍨嬬殑鍒楄〃缁撴灉 * @@ -529,12 +530,12 @@ * @return */ public <T> List<T> findByComplexHql(final String hql, final Map<String, Object> map, Class<T> cls) { - Pager page = new Pager(); - page.setPageSize(Integer.MAX_VALUE); - page.setPageNum(1); + Pager page = new Pager(); + page.setPageSize(Integer.MAX_VALUE); + page.setPageNum(1); return findByComplexHql(hql, page, map, cls); } - + /** * 澶嶆潅hql * @param sql @@ -543,43 +544,43 @@ * @return */ public <T> T findUniqueByHql(final String hql, final Map<String, Object> map){ - // 鏌ヨ缁撴灉 + // 鏌ヨ缁撴灉 List<T> lst = this.getHibernateTemplate().execute(new HibernateCallback<List<T>>() { - + @SuppressWarnings("unchecked") - public List<T> doInHibernate(Session session) { + public List<T> doInHibernate(Session session) { Query queryHql = session.createQuery(hql); - if (map != null) { - Set<String> keySet = map.keySet(); - for (String string : keySet) { - Object obj = map.get(string); + if (map != null) { + Set<String> keySet = map.keySet(); + for (String string : keySet) { + Object obj = map.get(string); //杩欓噷鑰冭檻浼犲叆鐨勫弬鏁版槸浠�涔堢被鍨嬶紝涓嶅悓绫诲瀷浣跨敤鐨勬柟娉曚笉鍚� - if(obj instanceof Collection<?>){ - queryHql.setParameterList(string, (Collection<?>)obj); - }else if(obj instanceof Object[]){ - queryHql.setParameterList(string, (Object[])obj); - }else{ - queryHql.setParameter(string, obj); - } - } - } + if(obj instanceof Collection<?>){ + queryHql.setParameterList(string, (Collection<?>)obj); + }else if(obj instanceof Object[]){ + queryHql.setParameterList(string, (Object[])obj); + }else{ + queryHql.setParameter(string, obj); + } + } + } queryHql.setFirstResult(0); queryHql.setMaxResults(1); - + List<?> r = queryHql.list(); - + List<T> lst = new ArrayList<T>(r.size()); for(Object o:r) { - lst.add((T)o); + lst.add((T)o); } return lst; } }); - + return lst.isEmpty()?null:lst.get(0); } - + /** * 鏍规嵁hql鏌ヨ,骞惰繑鍥炴墽琛岀被鍨嬬殑鍒楄〃缁撴灉锛屽垪琛ㄦ暟鎹负Map * @@ -588,13 +589,13 @@ * @return */ public List<Map<String,Object>> findListWithMapByHql(final String hql, final Map<String, Object> map) { - Pager page = new Pager(); - page.setPageNum(1); - page.setPageSize(Integer.MAX_VALUE); - + Pager page = new Pager(); + page.setPageNum(1); + page.setPageSize(Integer.MAX_VALUE); + return findListWithMapByHql(hql,map,page); } - + /** * 鏍规嵁hql鏌ヨ,骞惰繑鍥炴墽琛岀被鍨嬬殑鍒楄〃缁撴灉锛屽垪琛ㄦ暟鎹负Map * @@ -604,34 +605,34 @@ */ @SuppressWarnings("unchecked") public List<Map<String,Object>> findListWithMapByHql(final String hql, final Map<String, Object> map,final Pager page) { - // 鏌ヨ缁撴灉 + // 鏌ヨ缁撴灉 List<Map<String,Object>> lst = getHibernateTemplate().execute(new HibernateCallback<List<Map<String,Object>>>() { - public List<Map<String,Object>> doInHibernate(Session session) { + public List<Map<String,Object>> doInHibernate(Session session) { Query query = session.createQuery(hql).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); - if (map != null) { - Set<String> keySet = map.keySet(); - for (String string : keySet) { - Object obj = map.get(string); + if (map != null) { + Set<String> keySet = map.keySet(); + for (String string : keySet) { + Object obj = map.get(string); //杩欓噷鑰冭檻浼犲叆鐨勫弬鏁版槸浠�涔堢被鍨嬶紝涓嶅悓绫诲瀷浣跨敤鐨勬柟娉曚笉鍚� - if(obj instanceof Collection<?>){ - query.setParameterList(string, (Collection<?>)obj); - }else if(obj instanceof Object[]){ - query.setParameterList(string, (Object[])obj); - }else{ - query.setParameter(string, obj); - } + if(obj instanceof Collection<?>){ + query.setParameterList(string, (Collection<?>)obj); + }else if(obj instanceof Object[]){ + query.setParameterList(string, (Object[])obj); + }else{ + query.setParameter(string, obj); + } } - } + } query.setFirstResult(page.getPageSize()*(page.getPageNum()-1)); query.setMaxResults(page.getPageSize()); return query.list(); } }); - + return lst; } - + /** * 鏍规嵁hql鏌ヨ,骞惰繑鍥炲敮涓�涓�鏉$粨鏋� * @@ -642,35 +643,35 @@ */ @SuppressWarnings({RAW_TYPES }) public <T> T findUniqueByComplexHql(final String hql, final Map<String, Object> map, Class<T> cls) { - // 鏌ヨ缁撴灉 + // 鏌ヨ缁撴灉 List<T> lst = this.getHibernateTemplate().execute(new HibernateCallback<List<T>>() { public List doInHibernate(Session session) { Query query = session.createQuery(hql); - if (map != null) { - Set<String> keySet = map.keySet(); - for (String string : keySet) { - Object obj = map.get(string); + if (map != null) { + Set<String> keySet = map.keySet(); + for (String string : keySet) { + Object obj = map.get(string); //杩欓噷鑰冭檻浼犲叆鐨勫弬鏁版槸浠�涔堢被鍨嬶紝涓嶅悓绫诲瀷浣跨敤鐨勬柟娉曚笉鍚� - if(obj instanceof Collection<?>){ - query.setParameterList(string, (Collection<?>)obj); - }else if(obj instanceof Object[]){ - query.setParameterList(string, (Object[])obj); - }else{ - query.setParameter(string, obj); - } - } - } + if(obj instanceof Collection<?>){ + query.setParameterList(string, (Collection<?>)obj); + }else if(obj instanceof Object[]){ + query.setParameterList(string, (Object[])obj); + }else{ + query.setParameter(string, obj); + } + } + } query.setFirstResult(0); query.setMaxResults(1); return query.list(); } }); - + return lst.isEmpty()?null:cls.cast(lst.get(0)); } - + /** * 鏍规嵁Sql鏌ヨ,骞惰繑鍥炴墽琛岀被鍨嬬殑鍒楄〃缁撴灉 * @@ -680,13 +681,13 @@ * @return */ public <T> List<T> findByComplexSql(final String sql, final Map<String, Object> map, Class<T> cls) { - Pager page = new Pager(); - page.setPageSize(Integer.MAX_VALUE); - page.setPageNum(1); + Pager page = new Pager(); + page.setPageSize(Integer.MAX_VALUE); + page.setPageNum(1); return findByComplexSql(sql, page, map, cls); } - - + + /** * 鏍规嵁Sql鏌ヨ,骞惰繑鍥炴墽琛岀被鍨嬬殑鍒楄〃缁撴灉 * @@ -697,32 +698,32 @@ */ @SuppressWarnings({RAW_TYPES, "unchecked" }) public List<Object[]> findRawByComplexSql(final String sql, final Map<String, Object> map) { - // 鏌ヨ缁撴灉 + // 鏌ヨ缁撴灉 return (List<Object[]>)this.getHibernateTemplate().execute(new HibernateCallback<List>() { public List doInHibernate(Session session) { SQLQuery query = session.createSQLQuery(sql); - if (map != null) { - Set<String> keySet = map.keySet(); - for (String string : keySet) { - Object obj = map.get(string); + if (map != null) { + Set<String> keySet = map.keySet(); + for (String string : keySet) { + Object obj = map.get(string); //杩欓噷鑰冭檻浼犲叆鐨勫弬鏁版槸浠�涔堢被鍨嬶紝涓嶅悓绫诲瀷浣跨敤鐨勬柟娉曚笉鍚� - if(obj instanceof Collection<?>){ - query.setParameterList(string, (Collection<?>)obj); - }else if(obj instanceof Object[]){ - query.setParameterList(string, (Object[])obj); - }else{ - query.setParameter(string, obj); - } - } - } + if(obj instanceof Collection<?>){ + query.setParameterList(string, (Collection<?>)obj); + }else if(obj instanceof Object[]){ + query.setParameterList(string, (Object[])obj); + }else{ + query.setParameter(string, obj); + } + } + } return query.list(); } }); - - + + } - + /** * 鏍规嵁hql鏌ヨ,骞惰繑鍥炴墽琛岀被鍨嬬殑鍒楄〃缁撴灉 * @@ -733,31 +734,31 @@ */ @SuppressWarnings({RAW_TYPES }) public <T> List<T> findByComplexHql(final String hql,final Pager page, final Map<String, Object> map, Class<T> cls) { - // 鏌ヨ缁撴灉 + // 鏌ヨ缁撴灉 List lst = this.getHibernateTemplate().execute(new HibernateCallback<List>() { public List doInHibernate(Session session) { Query queryHql = session.createQuery(hql); - if (map != null) { - Set<String> keySet = map.keySet(); - for (String string : keySet) { - Object obj = map.get(string); + if (map != null) { + Set<String> keySet = map.keySet(); + for (String string : keySet) { + Object obj = map.get(string); //杩欓噷鑰冭檻浼犲叆鐨勫弬鏁版槸浠�涔堢被鍨嬶紝涓嶅悓绫诲瀷浣跨敤鐨勬柟娉曚笉鍚� - if(obj instanceof Collection<?>){ - queryHql.setParameterList(string, (Collection<?>)obj); - }else if(obj instanceof Object[]){ - queryHql.setParameterList(string, (Object[])obj); - }else{ - queryHql.setParameter(string, obj); - } - } - } + if(obj instanceof Collection<?>){ + queryHql.setParameterList(string, (Collection<?>)obj); + }else if(obj instanceof Object[]){ + queryHql.setParameterList(string, (Object[])obj); + }else{ + queryHql.setParameter(string, obj); + } + } + } queryHql.setFirstResult(page.getPageSize()*(page.getPageNum()-1)); queryHql.setMaxResults(page.getPageSize()); return queryHql.list(); } }); - + // 缁勮缁撴灉 List<T> result = new ArrayList<T>(); for (Object obj : lst) { @@ -765,7 +766,7 @@ } return result; } - + /** * 鏍规嵁Sql鏌ヨ,骞惰繑鍥炴墽琛岀被鍨嬬殑鍒楄〃缁撴灉 * @@ -776,31 +777,31 @@ */ @SuppressWarnings({RAW_TYPES }) public <T> List<T> findByComplexSql(final String sql,final Pager page, final Map<String, Object> map, Class<T> cls) { - // 鏌ヨ缁撴灉 + // 鏌ヨ缁撴灉 List lst = this.getHibernateTemplate().execute(new HibernateCallback<List>() { public List doInHibernate(Session session) { - SQLQuery querySql = session.createSQLQuery(sql); - if (map != null) { - Set<String> keySet = map.keySet(); - for (String string : keySet) { - Object obj = map.get(string); + SQLQuery querySql = session.createSQLQuery(sql); + if (map != null) { + Set<String> keySet = map.keySet(); + for (String string : keySet) { + Object obj = map.get(string); //杩欓噷鑰冭檻浼犲叆鐨勫弬鏁版槸浠�涔堢被鍨嬶紝涓嶅悓绫诲瀷浣跨敤鐨勬柟娉曚笉鍚� - if(obj instanceof Collection<?>){ - querySql.setParameterList(string, (Collection<?>)obj); - }else if(obj instanceof Object[]){ - querySql.setParameterList(string, (Object[])obj); - }else{ - querySql.setParameter(string, obj); - } - } - } + if(obj instanceof Collection<?>){ + querySql.setParameterList(string, (Collection<?>)obj); + }else if(obj instanceof Object[]){ + querySql.setParameterList(string, (Object[])obj); + }else{ + querySql.setParameter(string, obj); + } + } + } querySql.setFirstResult(page.getPageSize()*(page.getPageNum()-1)); querySql.setMaxResults(page.getPageSize()); return querySql.list(); } }); - + // 缁勮缁撴灉 List<T> result = new ArrayList<T>(); for (Object obj : lst) { @@ -808,6 +809,6 @@ } return result; } - - + + } diff --git a/src/main/java/com/qxueyou/scc/controller/VideoLiveController.java b/src/main/java/com/qxueyou/scc/controller/VideoLiveController.java index 359b4b1..f18bac9 100644 --- a/src/main/java/com/qxueyou/scc/controller/VideoLiveController.java +++ b/src/main/java/com/qxueyou/scc/controller/VideoLiveController.java @@ -259,8 +259,8 @@ */ @ApiOperation(value = "鍒犻櫎鍒涘缓鐨勭洿鎾�") @PostMapping(value = "delete") - public Result delete(String videoLiveIds) { - return liveService.delete(videoLiveIds.split(",")); + public Result delete(String videoLiveIds,String courseIds) throws Exception { + return liveService.delete(videoLiveIds.split(","),courseIds.split(",")); } diff --git a/src/main/java/com/qxueyou/scc/exercise/service/impl/ExerciseInfoService.java b/src/main/java/com/qxueyou/scc/exercise/service/impl/ExerciseInfoService.java index 8efc799..f71fc0c 100644 --- a/src/main/java/com/qxueyou/scc/exercise/service/impl/ExerciseInfoService.java +++ b/src/main/java/com/qxueyou/scc/exercise/service/impl/ExerciseInfoService.java @@ -62,7 +62,7 @@ /** * 鑰冭瘯 - * + * * @author lihanqi * */ @@ -87,64 +87,64 @@ @Autowired IHandoutService handoutService; - + @Autowired IMsgInfoService msgInfoService; - + @Autowired IExerciseCompleteService exerciseCompleteService; - + @Autowired IExerciseGroupService exerciseGroupService; - + @Override public List<ExerciseInfo> list(String keyword,String classId,Short status,Integer pageSize,Integer pageNum) { StringBuffer hql = new StringBuffer(500); hql.append("from ExerciseInfo e where e.name like ? and e.createId =? "); List<Object> params = CollectionUtils.newList('%' + keyword.trim() + '%',ClientUtils.getUserId()); - + if(status!=null){ hql.append(" and e.status = ? "); params.add(status); } - + if(StringUtils.isNotEmpty(classId)){ hql.append(" and exists(select 1 from ExerciseExamReClass r where e.exerciseInfoId=r.examId and r.classId = ? and r.deleteFlag is false)"); params.add(classId); } - + hql.append(" and e.deleteFlag is false order by e.createTime desc"); return findList(hql.toString(),new Pager(pageSize, pageNum),params, ExerciseInfo.class); } - + @Override public int listCount(String keyword,String classId, Short status) { StringBuffer hql = new StringBuffer(500); hql.append("from ExerciseInfo e where e.name like ? and e.createId =? "); List<Object> params = CollectionUtils.newList('%' + keyword.trim() + '%',ClientUtils.getUserId()); - + if(status!=null){ hql.append(" and e.status = ? "); params.add(status); } - + if(StringUtils.isNotEmpty(classId)){ hql.append(" and exists(select 1 from ExerciseExamReClass r where e.exerciseInfoId=r.examId and r.classId = ? and r.deleteFlag is false)"); params.add(classId); } - + hql.append(" and e.deleteFlag is false "); return findCount(hql.toString(),params); } - + /** * 淇濆瓨浣滀笟 - * + * * @return */ public Result insertExerciseInfo(ExerciseInfo exerciseInfo) { String[] classIds = QBeanUtils.listPropertyVal(exerciseInfo.getReClasses(), "classId").toArray(new String[exerciseInfo.getReClasses().size()]); - + String exerciseInfoId = UUIDUtils.generateUUID().replace("-", ""); exerciseInfo.setExerciseInfoId(exerciseInfoId); exerciseInfo.setOrgId(ClientUtils.getOrgId()); @@ -157,39 +157,39 @@ // 淇濆瓨棰樼洰绫诲瀷 List<ExerciseItemSet> lstExerciseItemSet = exerciseInfo.getExerciseItemSets(); this.saveExerciseItemSet(exerciseInfoId,lstExerciseItemSet); - + //鐢熸垚浣滀笟棰樼洰淇℃伅 String[] sourceGroupIds = QBeanUtils.listPropertyVal(exerciseInfo.getReGroups(), "groupId").toArray(new String[exerciseInfo.getReGroups().size()]); - + String newGroupId = this.exerciseGroupService.doCreateRandomExerciseGroup( exerciseInfo.getName() + "-浣滀笟",ExerciseGroup.TYPE_EXERCISE_EXAM_ITEM,sourceGroupIds,lstExerciseItemSet); - + if(StringUtils.isEmpty(newGroupId)){ return new Result(false, "棰樼洰鏁版嵁涓嶅锛岃澧炲姞棰樺簱鐨勯鐩垨鑰呭噺灏戣瘯鍗风殑棰樻暟",exerciseInfoId); } - + this.saveExerciseExamReGroup(exerciseInfoId,new String[]{newGroupId},EXAM_TYPES[0],ExerciseExamReGroup.GROUP_TYPE_EXAM); - + // 淇濆瓨鍏宠仈棰樺簱淇℃伅 this.saveExerciseExamReGroup(exerciseInfoId,sourceGroupIds,null,ExerciseExamReGroup.GROUP_TYPE_SOURCE); } - + // 淇濆瓨鍏宠仈鐝骇 this.saveExerciseExamReClass(exerciseInfoId, classIds); - + return new Result(true, "", exerciseInfoId); } /** * 淇敼缁冧範 - * + * * @return */ public Result updateExerciseInfo(ExerciseInfo exerciseInfo) { String[] classIds = QBeanUtils.listPropertyVal(exerciseInfo.getReClasses(), "classId").toArray(new String[exerciseInfo.getReClasses().size()]); - + String exerciseInfoId = exerciseInfo.getExerciseInfoId(); - + ExerciseInfo newExerciseInfo = this.read(ExerciseInfo.class, exerciseInfoId); newExerciseInfo.setScore(exerciseInfo.getScore()); newExerciseInfo.setClassCount(classIds == null ? 0 : classIds.length); @@ -203,49 +203,49 @@ newExerciseInfo.setCommitUploadType(exerciseInfo.getCommitUploadType()); TraceUtils.setUpdateTrace(newExerciseInfo); this.save(newExerciseInfo); - + //娓呯悊鏃у叧绯绘暟鎹� this.doClearExerciseExamReData(exerciseInfoId); - + // 绛旈浣滀笟榛樿鎸夌収缁熶竴鍗风敓鎴愪綔涓氶鐩� - + if (newExerciseInfo.getType() == ExerciseInfo.EXERCISE_TYPE_ANSWER) { - + // 淇濆瓨棰樼洰绫诲瀷 List<ExerciseItemSet> lstExerciseItemSet = exerciseInfo.getExerciseItemSets(); - + saveExerciseItemSet(exerciseInfoId,lstExerciseItemSet); - + //鐢熸垚浣滀笟棰樼洰淇℃伅 String[] groupIds = QBeanUtils.listPropertyVal(exerciseInfo.getReGroups(), "groupId").toArray(new String[exerciseInfo.getReGroups().size()]); String newGroupId = this.exerciseGroupService.doCreateRandomExerciseGroup( - exerciseInfo.getName() + "-浣滀笟",ExerciseGroup.TYPE_EXERCISE_EXAM_ITEM,groupIds, lstExerciseItemSet); - + exerciseInfo.getName() + "-浣滀笟",ExerciseGroup.TYPE_EXERCISE_EXAM_ITEM,groupIds, lstExerciseItemSet); + if(StringUtils.isEmpty(newGroupId)){ return new Result(false, "棰樼洰鏁版嵁涓嶅锛岃澧炲姞棰樺簱鐨勯鐩垨鑰呭噺灏戣瘯鍗风殑棰樻暟"); } - + this.saveExerciseExamReGroup(exerciseInfoId,new String[]{newGroupId},EXAM_TYPES[0],ExerciseExamReGroup.GROUP_TYPE_EXAM); - + // 淇濆瓨鍏宠仈棰樺簱淇℃伅 this.saveExerciseExamReGroup(exerciseInfoId,groupIds,null,ExerciseExamReGroup.GROUP_TYPE_SOURCE); - - + + } // 淇濆瓨鍏宠仈鐝骇 this.saveExerciseExamReClass(exerciseInfoId, classIds); - + return new Result(true, "", exerciseInfoId); } - + //娓呴櫎涔嬪墠鐨勭粌涔犲叧鑱斿叧绯绘暟鎹� private void doClearExerciseExamReData(String exerciseInfoId){ this.bulkUpdate("update ExerciseExamReGroup set deleteFlag = 1 where examId = ?",new Object[]{exerciseInfoId}); this.bulkUpdate("update ExerciseExamReClass set deleteFlag = 1 where examId = ?",new Object[] {exerciseInfoId}); this.bulkUpdate("update ExerciseItemSet set deleteFlag = 1 where exerciseInfoId = ?",new Object[]{exerciseInfoId}); } - + private void saveExerciseExamReClass(String exerciseInfoId,String[] classIds){ ExerciseExamReClass reClass = null; for (String classId : classIds) { @@ -254,10 +254,10 @@ reClass.setDeleteFlag(false); reClass.setExamId(exerciseInfoId); TraceUtils.setCreateTrace(reClass); - this.save(reClass); + this.save(reClass); } } - + private void saveExerciseExamReGroup(String exerciseInfoId, String [] groupIds,String examType,short reType){ ExerciseExamReGroup reGroup = null; for (String groupId : groupIds) { @@ -269,9 +269,9 @@ reGroup.setExamId(exerciseInfoId); TraceUtils.setCreateTrace(reGroup); this.save(reGroup); - } + } } - + private void saveExerciseItemSet(String exerciseInfoId,List<ExerciseItemSet> lstExerciseItemSet){ for (ExerciseItemSet itemSet : lstExerciseItemSet) { itemSet.setExerciseInfoId(exerciseInfoId); @@ -282,7 +282,7 @@ /** * 鍒犻櫎浣滀笟 - * + * * @param examId * @return */ @@ -293,43 +293,43 @@ @Override public String queryExerciseInfoRelatedGroupId(String exerciseInfoId) { - return this.findUnique("select groupId from ExerciseExamReGroup where examId=? and type=? and deleteFlag is false ", - CollectionUtils.newList(exerciseInfoId, ExerciseExamReGroup.GROUP_TYPE_EXAM),String.class); + return this.findUnique("select groupId from ExerciseExamReGroup where examId=? and type=? and deleteFlag is false ", + CollectionUtils.newList(exerciseInfoId, ExerciseExamReGroup.GROUP_TYPE_EXAM),String.class); } - - + + @Override public List<ExerciseItemSet> queryExerciseItemSet(String exerciseInfoId){ - return this.find("from ExerciseItemSet where exerciseInfoId=? and deleteFlag is false order by itemType ASC", + return this.find("from ExerciseItemSet where exerciseInfoId=? and deleteFlag is false order by itemType ASC", CollectionUtils.newList(exerciseInfoId), ExerciseItemSet.class); } - + @Override public List<ExerciseResultV> queryStuExerciselist(String keyword,String exerciseInfoId,String userId,String subjectId,Short status,Integer pageSize,Integer pageNum) { StringBuffer hql = new StringBuffer(500); hql.append("from ExerciseResultV where exerciseStatus=?"); List<Object> params = CollectionUtils.newList(ExerciseInfo.EXERCISE_STATUS_PUBLISHED); - + if(!StringUtils.isEmpty(userId)){ hql.append(" and userId=? "); - params.add(userId); + params.add(userId); } - + if(!StringUtils.isEmpty(exerciseInfoId)){ hql.append(" and id.exerciseInfoId=?"); - params.add(exerciseInfoId); + params.add(exerciseInfoId); } - + if(!StringUtils.isEmpty(keyword)){ hql.append(" and studentName like ?"); - params.add("%" + keyword.trim() + "%"); + params.add("%" + keyword.trim() + "%"); } - + if(!StringUtils.isEmpty(subjectId)){ hql.append(" and subjectId=?"); params.add(subjectId); } - + //榛樿鍏ㄩ儴锛�0寰呭畬鎴愶紝1宸叉彁浜� ,2:宸叉壒闃�,3闇�閲嶅啓,4:閫炬湡鏈氦 if(status!=null){ Date nowTime = new Date(); @@ -353,38 +353,38 @@ params.add(ExerciseCompleteInfo.STATUS_DRAFT); } } - + hql.append(" order by startTime desc"); - + return this.findList(hql.toString(),new Pager(pageSize, pageNum),params, ExerciseResultV.class); } - + @Override public int queryStuExerciseListCount(String keyword,String exerciseInfoId,String userId,String subjectId,Short status) { StringBuffer hql = new StringBuffer(500); hql.append("from ExerciseResultV where exerciseStatus=?"); List<Object> params = CollectionUtils.newList(ExerciseInfo.EXERCISE_STATUS_PUBLISHED); - + if(!StringUtils.isEmpty(userId)){ hql.append(" and userId=? "); - params.add(userId); + params.add(userId); } - + if(!StringUtils.isEmpty(exerciseInfoId)){ hql.append(" and id.exerciseInfoId=?"); - params.add(exerciseInfoId); + params.add(exerciseInfoId); } - + if(!StringUtils.isEmpty(keyword)){ hql.append(" and studentName like ?"); params.add("%" + keyword.trim() + "%"); } - + if(!StringUtils.isEmpty(subjectId)){ hql.append(" and subjectId=?"); params.add(subjectId); } - + //榛樿鍏ㄩ儴锛�0寰呭畬鎴愶紝1宸叉彁浜� ,2:宸叉壒闃�,3闇�閲嶅啓,4:閫炬湡鏈氦 if(status!=null){ Date nowTime = new Date(); @@ -408,13 +408,13 @@ params.add(ExerciseCompleteInfo.STATUS_DRAFT); } } - - return this.findCount(hql.toString(), params); + + return this.findCount(hql.toString(), params); } - + /** * 鍒濆鍖栧钩鍧囨垚缁╁拰鏈�楂樻垚缁� - * + * * @param groupId * @return */ @@ -428,7 +428,7 @@ /** * 棰樼洰寰楀垎璇︽儏 - * + * * @param groupId * @return */ @@ -495,7 +495,7 @@ /** * 寮�濮嬮鐩綔涓� - * + * * @param examId * @return */ @@ -506,12 +506,12 @@ this.doStartAnswerExercise(exerciseInfo, clsClass, studentUserId) : this.doStartOtherExercise(exerciseInfo, clsClass, studentUserId); - + } /** * 寮�濮嬮鐩綔涓� - * + * * @param examId * @return */ @@ -559,51 +559,51 @@ // 鏌ヨ瀛︾敓鑰冭瘯鎬诲垎 result.addData("studentScore", record.getScore()); result.addData("objStudentScore", record.getObjScore()==null?BigDecimal.ZERO:record.getObjScore()); - + ExerciseCompleteInfo completeInfo = doGetOrCreateExerciseCompleteInfo(exerciseInfo.getExerciseInfoId(),clsClass.getClassId() , studentUserId); - + if(completeInfo!=null){ result.addData("exerciseCompleteId", completeInfo.getExerciseCompleteId()); } - + result.addData("itemSet", exerciseInfo.getExerciseItemSets()); return result; } - + private ExerciseCompleteInfo doGetOrCreateExerciseCompleteInfo(String exerciseInfoId,String classId,String studentUserId){ - // 鍒ゆ柇鏄惁宸茬粡鍒濆鍖� - ExerciseCompleteInfo completeInfo = exerciseCompleteService.queryCompleteInfo(exerciseInfoId,classId , studentUserId); - - if(completeInfo==null){ - String hql = " select s.studentId as studentId,s.studentNo as studentNo,s.userId as studentUserId,s.name as studentName," - + " c.classId as classId,c.name as className from StuStudent s ,ClsClass c,ExerciseExamReClass r " - + " where r.examId=:exerciseInfoId and r.classId =c.classId and c.classId= s.classId and s.userId=:userId" - + " and s.classId=:classId and r.examId=:exerciseInfoId and r.deleteFlag is false and s.deleteFlag is false and c.deleteFlag is false"; - - List<Map<String, Object>> resultMap = this.findListWithMapByHql(hql, + // 鍒ゆ柇鏄惁宸茬粡鍒濆鍖� + ExerciseCompleteInfo completeInfo = exerciseCompleteService.queryCompleteInfo(exerciseInfoId,classId , studentUserId); + + if(completeInfo==null){ + String hql = " select s.studentId as studentId,s.studentNo as studentNo,s.userId as studentUserId,s.name as studentName," + + " c.classId as classId,c.name as className from StuStudent s ,ClsClass c,ExerciseExamReClass r " + + " where r.examId=:exerciseInfoId and r.classId =c.classId and c.classId= s.classId and s.userId=:userId" + + " and s.classId=:classId and r.examId=:exerciseInfoId and r.deleteFlag is false and s.deleteFlag is false and c.deleteFlag is false"; + + List<Map<String, Object>> resultMap = this.findListWithMapByHql(hql, CollectionUtils.newObjectMap("userId",studentUserId,"classId",classId,"exerciseInfoId",exerciseInfoId)); - - if(resultMap!=null && resultMap.get(0)!=null){ - Map<String, Object> map = resultMap.get(0); - - completeInfo = new ExerciseCompleteInfo(); - TraceUtils.setCreateTrace(completeInfo); - completeInfo.setStudentId((String) map.get("studentId")); - completeInfo.setStudentNo((String) map.get("studentNo")); - completeInfo.setStudentUserId((String) map.get("studentUserId")); - completeInfo.setStudentUserName((String) map.get("studentName")); - completeInfo.setClassId((String) map.get("classId")); - completeInfo.setClassName((String) map.get("className")); - completeInfo.setExerciseInfoId(exerciseInfoId); - completeInfo.setCompleteStatus(ExerciseCompleteInfo.STATUS_DRAFT); - this.save(completeInfo); - } + + if(resultMap!=null && resultMap.get(0)!=null){ + Map<String, Object> map = resultMap.get(0); + + completeInfo = new ExerciseCompleteInfo(); + TraceUtils.setCreateTrace(completeInfo); + completeInfo.setStudentId((String) map.get("studentId")); + completeInfo.setStudentNo((String) map.get("studentNo")); + completeInfo.setStudentUserId((String) map.get("studentUserId")); + completeInfo.setStudentUserName((String) map.get("studentName")); + completeInfo.setClassId((String) map.get("classId")); + completeInfo.setClassName((String) map.get("className")); + completeInfo.setExerciseInfoId(exerciseInfoId); + completeInfo.setCompleteStatus(ExerciseCompleteInfo.STATUS_DRAFT); + this.save(completeInfo); } - - return completeInfo; + } + + return completeInfo; } - + private Map<String,Object> insertExerRecord(ExerciseInfo exerciseInfo,String groupId) { ExerciseRecord record = new ExerciseRecord(); record.setDeleteFlag(false); @@ -616,7 +616,7 @@ record.setUserId(ClientUtils.getUserId()); record.setOrgId(ClientUtils.getOrgId()); TraceUtils.setCreateTrace(record); - + //鑾峰彇鑰冭瘯棰樼洰缁熻淇℃伅锛屽苟淇濆瓨 Map<String,Object> result = this.queryItemStatics(exerciseInfo.getExerciseItemSets()); record.setTotalScore(new BigDecimal(exerciseInfo.getScore())); @@ -625,23 +625,23 @@ record.setObjTotalScore((BigDecimal)result.get("objTotalScore")); record.setSubItemCount((int)result.get("subItemCount")); record.setObjItemCount((int)result.get("objItemCount")); - + TraceUtils.setCreateTrace(record); this.save(record); - + Map<String,Object> resultMap = new HashMap<String, Object>(3); resultMap.put("exerciseRecordId", record.getRecordId()); resultMap.put("updateTime", DateTimeUtils.getCurrDateTime(record.getUpdateTime())); resultMap.put("exerciseGroupId", groupId); resultMap.put("record", record); - + return resultMap; } - + private Map<String,Object> queryItemStatics(List<ExerciseItemSet> itemSets){ float subTotalScore = 0,objTotalScore=0; int subItemCount=0,objItemCount=0; - + //濡傛灉鏄殢鏈虹粍鍗� if(itemSets!=null && itemSets.size()>0){ for(ExerciseItemSet s:itemSets){ @@ -654,19 +654,19 @@ } } } - + Map<String,Object> result = new HashMap<String,Object>(); result.put("subTotalScore", new BigDecimal(subTotalScore)); result.put("objTotalScore", new BigDecimal(objTotalScore)); result.put("subItemCount", subItemCount); result.put("objItemCount", objItemCount); - + return result; - } + } /** * 寮�濮嬫枃浠跺拰鍐欎綔浣滀笟 - * + * * @param examId * @return */ @@ -674,7 +674,7 @@ // 鏌ヨ鏄惁宸茬粡瀛樺湪鍋氶璁板綍锛屽鏋滀笉瀛樺湪闇�瑕佹柊寤� ExerciseCompleteInfo exerciseCompleteInfo = exerciseCompleteService.doCheckAndCreateExerciseCompleteInfo( exerciseInfo.getExerciseInfoId(), clsClass.getClassId(), studentUserId); - + exerciseCompleteInfo.setCommitUploadType(exerciseInfo.getCommitUploadType()); exerciseCompleteInfo.setRemind(exerciseInfo.getRemind()); exerciseCompleteInfo.setExerciseType(exerciseInfo.getType()); @@ -690,7 +690,7 @@ exerciseCompleteInfo .setPreviewPath(StringUtils.isNotEmpty(video.getAndroidHD()) ? video.getAndroidHD() : StringUtils.isNotEmpty(video.getAndroidSD()) ? video.getAndroidSD() - : video.getAndroidLD()); + : video.getAndroidLD()); } else { exerciseCompleteInfo.setTransStatus(ExerciseCompleteInfo.PREVIEW_STATUS_NO); } @@ -714,7 +714,7 @@ .getOrgText(exerciseCompleteInfo.getExerciseCompleteId(), OrgText.TABLE_WRITING_EXERCISE) .getContent()); } - + exerciseCompleteInfo.setTotalScore(exerciseInfo.getScore()); return new Result(true,"",CollectionUtils.newObjectMap("exerciseCompleteInfo", exerciseCompleteInfo)); @@ -722,11 +722,11 @@ @Override public Result doSubmitOtherExerciseInfo(String exerciseCompleteInfoId, String content, String fileId, - String filePath, short submitType) { + String filePath, short submitType) { Result result = new Result(true); ExerciseCompleteInfo exerciseCompleteInfo = this.read(ExerciseCompleteInfo.class, exerciseCompleteInfoId); ExerciseInfo exerciseInfo = this.read(ExerciseInfo.class, exerciseCompleteInfo.getExerciseInfoId()); - + if (exerciseInfo.getType() == ExerciseInfo.EXERCISE_TYPE_WRITING) { result = this.doSubmitWritingExerciseInfo(exerciseCompleteInfoId, content, submitType); } else if (exerciseInfo.getType() == ExerciseInfo.EXERCISE_TYPE_FILE) { @@ -738,7 +738,7 @@ /** * 鎻愪氦鍐欎綔浣滀笟 - * + * * @param exerciseInfoId * @param content * @param submitType @@ -762,14 +762,14 @@ exerciseCompleteInfo.setCompleteStatus(ExerciseCompleteInfo.STATUS_COMMIT); exerciseCompleteInfo.setCreator(ClientUtils.getUserName()); } - + this.save(exerciseCompleteInfo); return new Result(true); } /** * 鎻愪氦鏂囦欢浣滀笟 - * + * * @param exerciseCompleteInfoId * @param content * @param fileId @@ -778,7 +778,7 @@ * @return */ private Result doSubmitFileExerciseInfo(String exerciseCompleteInfoId, String content, String fileId, - String filePath, short submitType) { + String filePath, short submitType) { ExerciseCompleteInfo exerciseCompleteInfo = this.read(ExerciseCompleteInfo.class, exerciseCompleteInfoId); ExerciseInfo exerciseInfo = this.read(ExerciseInfo.class, exerciseCompleteInfo.getExerciseInfoId()); @@ -794,7 +794,7 @@ ResFile resFile = this.read(ResFile.class, fileId); exerciseCompleteInfo.setFileId(fileId); exerciseCompleteInfo.setFilePath(filePath); - exerciseCompleteInfo.setOrgiFileName(resFile.getFileName()); + exerciseCompleteInfo.setOrgiFileName(ClientUtils.getUserName()+"鐨勪綔涓�"); } exerciseCompleteInfo.setUploadDesc(content); @@ -885,12 +885,12 @@ return new Result(false, "鎻愪氦鏁版嵁寮傚父"); } - + ExerciseRecord record = this.read(ExerciseRecord.class, initRecordId); //璁$畻寰楀垎 double studentScore = this.doCalculateExerciseScores(answerData, exerciseInfo.getExerciseItemSets()); - + // 鎻愪氦璇曞嵎绛旀 answerData.setScore(new BigDecimal(studentScore)); Map<String, Object> resultMap = exerciseVerService.doOperExerciseAnswerData(answerData); @@ -898,19 +898,19 @@ // 鏇存柊寰楀垎璁板綍鍙婄姸鎬� exerciseCompleteInfo = this.read(ExerciseCompleteInfo.class, exerciseCompleteId); resultMap.put("studentScore", studentScore); - - + + // 鏇存柊瀹屾垚寰楀垎 if (ExerciseRecord.STATUS_SUBMIT.equals(answerData.getStatus())) { resultMap.put("objScore", studentScore); exerciseCompleteInfo.setSubmitTime(new Date()); - + if(record.getSubItemCount()==0){ exerciseCompleteInfo.setCompleteStatus(ExerciseCompleteInfo.STATUS_CHECKED); }else{ exerciseCompleteInfo.setCompleteStatus(ExerciseCompleteInfo.STATUS_COMMIT); } - + this.bulkUpdate( "update ExerciseRecord set status=1 , score=" + studentScore + ",objScore=" + studentScore + " where deleteFlag is false and recordId=?", @@ -928,10 +928,10 @@ + " where deleteFlag is false and recordId=? ", new Object[] { resultMap.get("recordId") }); } - exerciseCompleteInfo.setStudentScore(new BigDecimal(studentScore)); - + exerciseCompleteInfo.setStudentScore(new BigDecimal(studentScore)); + this.save(exerciseCompleteInfo); - + // 璁板綍鎻愪氦鐨勬暟鎹棩蹇� exerciseVerService.doSaveExerciseDataSubmitLog(JSON.toJSONString(answerData), initRecordId, ExerciseDataSubmitLog.TYPE_SUBMIT_ANSWER, ExerciseDataSubmitLog.STATUS_SUCCESS, @@ -956,15 +956,15 @@ private double doCalculateExerciseScores(ExerciseSubmitAnswerData answerData, List<ExerciseItemSet> lstItemSet) { //鑾峰彇濉┖棰樼瓟妗堜俊鎭� Map<String,String> exerciseFillItemMap= null; - List<Object[]> lstObj = this.find("select i.exerciseId,i.answer from ExerciseGroupItemRe r, ExerciseItem i where r.exerciseItemId=i.exerciseId and r.exerciseGroupId=? and r.deleteFlag is false and i.type=? and i.deleteFlag is false", + List<Object[]> lstObj = this.find("select i.exerciseId,i.answer from ExerciseGroupItemRe r, ExerciseItem i where r.exerciseItemId=i.exerciseId and r.exerciseGroupId=? and r.deleteFlag is false and i.type=? and i.deleteFlag is false", CollectionUtils.newList(answerData.getExerciseGroupId(),ExerciseItem.TYPE_FILL_BLANKS), Object[].class); if(lstObj!=null && lstObj.size()>0){ exerciseFillItemMap = new HashMap<String,String>(lstObj.size()); for(Object[] arrObj : lstObj){ exerciseFillItemMap.put((String)arrObj[0],(String)arrObj[1]); - } + } } - + Map<String, Double> scoreMap = new HashMap<String, Double>(); for (int i = 0; i < lstItemSet.size(); i++) { if (lstItemSet.get(i).getItemType() == ExerciseItem.TYPE_SINGLE_SELECT) { @@ -983,7 +983,7 @@ scoreMap.put("fill_right", lstItemSet.get(i).getRightScore()); scoreMap.put("fill_wrong", lstItemSet.get(i).getWrongScore()); scoreMap.put("fill_noanswer", lstItemSet.get(i).getBlankScore()); - } + } } double totalScore = 0.00; String tempRightAnswer =null; @@ -1040,7 +1040,7 @@ return totalScore; } - + @Override public Result doPublishExercise(String[] exerciseIds) { // 鏇存柊浣滀笟鐘舵�� @@ -1054,7 +1054,7 @@ for (String exerciseId : exerciseIds) { // 鍒ゆ柇鏄惁宸茬粡鍒濆鍖栵紝濡傛灉宸茬粡鍒濆鍖栧垯缁х画 -> TODO:闇�瑕佸鐞嗘柊鍔犲叆鐝骇瀛︾敓 int count = this.findCount("from ExerciseCompleteInfo f where f.deleteFlag is false and f.exerciseInfoId=?",CollectionUtils.newList(exerciseId)); - + if (count == 0) { hql = " select s.studentId as studentId,s.studentNo as studentNo,s.userId as studentUserId,s.name as studentName,c.classId as classId,c.name as className " + " from StuStudent s ,ClsClass c,ExerciseExamReClass r where r.examId=:exerciseInfoId " @@ -1079,26 +1079,26 @@ this.saveOrUpdateAll(lstCompleteInfos); } } - + //鍙戝竷浣滀笟娑堟伅 this.doExercisePublishMsg(exerciseId); } - + return new Result(true); } - + private void doExercisePublishMsg(String exerciseInfoId){ ExerciseInfo exerciseInfo= this.read(ExerciseInfo.class, exerciseInfoId); - - List<String> lstUserIds = this.find("select userId from ExerciseResultV where id.exerciseInfoId=?", - CollectionUtils.newList(exerciseInfoId), String.class); - + + List<String> lstUserIds = this.find("select userId from ExerciseResultV where id.exerciseInfoId=?", + CollectionUtils.newList(exerciseInfoId), String.class); + if(lstUserIds!=null && lstUserIds.size()>0){ Map<String,String> attrs = CollectionUtils.newStringMap("exerciseInfoId",exerciseInfoId,"exerciseName",exerciseInfo.getName(), - "subjectId",exerciseInfo.getSubjectId(),"subjectName",exerciseInfo.getSubject().getName()); - - msgInfoService.doSendTextMsgToUsers(lstUserIds.toArray(new String[lstUserIds.size()]), - MsgInfo.TYPE_EXERCISE," 鍙戝竷浜嗕綔涓� ", attrs); + "subjectId",exerciseInfo.getSubjectId(),"subjectName",exerciseInfo.getSubject().getName()); + + msgInfoService.doSendTextMsgToUsers(lstUserIds.toArray(new String[lstUserIds.size()]), + MsgInfo.TYPE_EXERCISE," 鍙戝竷浜嗕綔涓� ", attrs); } } @@ -1108,7 +1108,7 @@ this.bulkUpdateInLoop("update ExerciseInfo set status=" + ExerciseInfo.EXERCISE_STATUS_DRAFT + " WHERE exerciseInfoId=?",exerciseIds); // 娓呴櫎浣滀笟瀹屾垚鎯呭喌 this.bulkUpdateInLoop("update ExerciseCompleteInfo set deleteFlag= true WHERE exerciseInfoId=?", exerciseIds); - + return new Result(true); } @@ -1160,7 +1160,7 @@ /** * 鑾峰彇瀹屾垚鐨勪綔涓氫釜鏁� - * + * * @param classId * @param userId * @return @@ -1197,10 +1197,10 @@ CollectionUtils.newObjectMap("classId", classId, "status", ExerciseInfo.EXERCISE_STATUS_PUBLISHED)); return exerciseCount; } - + /** * 鏌ヨ浣滀笟鍒楄〃-鏁欏笀绔� - * + * * @param pageSize * @param keyword * @param classId @@ -1210,19 +1210,19 @@ public List<Map<String, Object>> teacherExerciseInfoList(Integer pageSize,String keyword,String classId,Integer pageNum) { QHomeworkScoreV qHomeworkScoreV = QHomeworkScoreV.homeworkScoreV; QExerciseInfo qExerciseInfo = QExerciseInfo.exerciseInfo; - + Expression<Integer> cases = new CaseBuilder() - .when(qHomeworkScoreV.completeStatus.isNull()).then(1) - .otherwise(0).sum().as("homeworkNoSubmitCount"); - + .when(qHomeworkScoreV.completeStatus.isNull()).then(1) + .otherwise(0).sum().as("homeworkNoSubmitCount"); + Expression<Integer> cases2 = new CaseBuilder() - .when(qHomeworkScoreV.completeStatus.eq(String.valueOf(ExerciseCompleteInfo.STATUS_CHECKED))).then(1) - .otherwise(0).sum().as("homeworkToAuditCount"); - + .when(qHomeworkScoreV.completeStatus.eq(String.valueOf(ExerciseCompleteInfo.STATUS_CHECKED))).then(1) + .otherwise(0).sum().as("homeworkToAuditCount"); + Expression<Integer> cases3 = new CaseBuilder() - .when(qHomeworkScoreV.completeStatus.eq(String.valueOf(ExerciseCompleteInfo.STATUS_COMMIT))).then(1) - .otherwise(0).sum().as("homeworkHasAuditCount"); - + .when(qHomeworkScoreV.completeStatus.eq(String.valueOf(ExerciseCompleteInfo.STATUS_COMMIT))).then(1) + .otherwise(0).sum().as("homeworkHasAuditCount"); + return this.getQueryFactory().select(cases,cases2,cases3, qExerciseInfo.name.max(), qExerciseInfo.startTime.max(), qExerciseInfo.endTime.max(), qExerciseInfo.type.max()).from(qHomeworkScoreV, qExerciseInfo) .where(qHomeworkScoreV.classId.eq(classId) @@ -1242,21 +1242,21 @@ return map; }).collect(Collectors.toList()); } - + @Override public Map<String,Integer> queryResultStatusCount(List<String> lstExerciseIds) { if(lstExerciseIds== null || lstExerciseIds.size()==0){ return null; } - + String hql = "select id.exerciseInfoId||'-'||completeStatus ,count(1) from ExerciseResultV " - + "where id.exerciseInfoId in(:exerciseIds) group by id.exerciseInfoId,completeStatus"; - - List<Object[]> lstResult = this.findByComplexHql(hql, + + "where id.exerciseInfoId in(:exerciseIds) group by id.exerciseInfoId,completeStatus"; + + List<Object[]> lstResult = this.findByComplexHql(hql, CollectionUtils.newObjectMap("exerciseIds",lstExerciseIds.toArray(new String[lstExerciseIds.size()])), Object[].class); - - Map<String,Integer> resultMap = new HashMap<String,Integer>(lstResult.size()); - + + Map<String,Integer> resultMap = new HashMap<String,Integer>(lstResult.size()); + for(Object[] o:lstResult){ resultMap.put((String)o[0],((Long)o[1]).intValue()); } diff --git a/src/main/java/com/qxueyou/scc/sys/action/LoginController.java b/src/main/java/com/qxueyou/scc/sys/action/LoginController.java index 4a51522..e12d6ee 100644 --- a/src/main/java/com/qxueyou/scc/sys/action/LoginController.java +++ b/src/main/java/com/qxueyou/scc/sys/action/LoginController.java @@ -116,6 +116,18 @@ @Value("${wx.secret}") private String secret; + /** + * 鍏紬鍙穉ppID + */ + @Value("${wx.app.appId}") + private String wxappId; + + + /** + * 鍏紬鍙穝ecret + */ + @Value("${wx.app.secret}") + private String wxsecret; public static String UUNUMBER="QXYUUNUMBER"; @@ -129,8 +141,19 @@ * @throws IOException */ + @PostMapping("/wxAccountsLogin") + @ApiOperation("寰俊鍏紬鍙风櫥褰�") + @ResponseBody + public Result wxAccountsLogin(String code) { + JSONObject gettoken = wechatService.gettoken(wxappId, wxsecret); + JSONObject OpenId = wechatService.getSessionKeyOrOpenId(code); + JSONObject user = wechatService.getUser(gettoken.get("access_token").toString(), OpenId.get("openid").toString()); + return new Result(true,"鎴愬姛",user); + } + + @PostMapping("/wxlogin") - @ApiOperation("寰俊鐧诲綍") + @ApiOperation("寰俊灏忕▼搴忕櫥褰�") @ResponseBody public Result wechatLogin(String code,String number) { JSONObject sessionKeyOrOpenId = wechatService.getSessionKeyOrOpenId(code); @@ -164,10 +187,20 @@ String studentSql = "from StuStudent where deleteFlag is false and userId = ? "; List<Object> stuParams = CollectionUtils.newList(user.getUserId()); StuStudent stuStudent = commonDAO.findUnique(studentSql, stuParams, StuStudent.class); + CacheParamters param = new CacheParamters(); + param.setUserId(user.getUserId()); + param.setCustomRoleValue(user.getEmail()); + param.setCustomOrgId(user.getImei()); + param.setCacheIpFlag(true); + // 缂撳瓨鍒拌姹傜嚎绋� + UserInfoWrapper wrapper = cacheUserInfo(param, null); + // 瀛樺埌redis + redisTemplate.opsForValue().set(UserInfoWrapper.SESSION_USER_INFO_KEY, wrapper); return new Result(true,"鎺堟潈鎴愬姛",CollectionUtils.newObjectMap("user",user,"ClassId",stuStudent.getClassId())); } return phone; -} + } + @ApiOperation(value = "鐧诲叆鎺ュ彛", notes = "") @ApiImplicitParams({ diff --git a/src/main/java/com/qxueyou/scc/teach/live/service/IMediaLiveService.java b/src/main/java/com/qxueyou/scc/teach/live/service/IMediaLiveService.java index 9222dfc..255aeec 100644 --- a/src/main/java/com/qxueyou/scc/teach/live/service/IMediaLiveService.java +++ b/src/main/java/com/qxueyou/scc/teach/live/service/IMediaLiveService.java @@ -7,7 +7,7 @@ import com.qxueyou.scc.teach.live.model.MediaVideoLive; public interface IMediaLiveService { - + /** * 鏂板鐩存挱 * @param name 鐩存挱鍚嶇О @@ -20,21 +20,23 @@ * @return */ Result add(String name,String content,String teacherId,String teacherName,String subjectId,String subjectName,String definition,String imgPath,Date startTime,Date endTime,Integer courseId,boolean record,List<String> classIds); - + /** * 鏌ヨ鐩存挱 * @param liveId 鐩存挱Id * @return */ MediaVideoLive read(String liveId); - + + MediaVideoLive revamp(int courseId); + /** * 鏌ヨ鐩存挱 * @param noticeId 鐩存挱Id * @return */ List<MediaVideoLive> readByStatus(List<String> liveIdLst,short[] status); - + /** * 鏌ヨ鐩存挱 * @param keyword 鏌ヨ鍏抽敭瀛� @@ -43,14 +45,14 @@ * @return */ List<MediaVideoLive> listOfMine(String keyword,Integer pageNum, Integer pageSize); - + /** * 鏌ヨ鐩存挱鎬绘暟 * @param keyword 鏌ヨ鍏抽敭瀛� * @return */ int listCountOfMine(String keyword); - + /** * 鏌ヨ鐩存挱 * @param keyword 鏌ヨ鍏抽敭瀛� @@ -59,14 +61,14 @@ * @return */ List<MediaVideoLive> list(String keyword,String[] classIds,String subjectId,Short status,Integer pageNum, Integer pageSize); - + /** * 鏌ヨ鐩存挱鎬绘暟 * @param keyword 鏌ヨ鍏抽敭瀛� * @return */ int listCount(String keyword,String [] classIds,String subjectId,Short status); - + /** * 淇敼鐩存挱 * @param liveId 鐩存挱ID @@ -85,72 +87,72 @@ * @return */ Result update(String liveId,String name,String content,String teacherId,String teacherName,String subjectId,String subjectName,String definition,String imgPath,Date startTime,Date endTime,boolean record,List<String> classIds); - + /** * 鍒犻櫎鐩存挱 * @param liveId 鐩存挱ID * @return */ Result delete(String liveId); - + /** * 鍒犻櫎鐩存挱 * @param liveId 鐩存挱ID鏁扮粍 * @return */ - Result delete(String[] liveIds); - + Result delete(String[] liveIds,String [] courseIds) throws Exception; + /** * 鍙戝竷鐩存挱 * @param liveId 鐩存挱ID * @return */ Result doIssue(String liveId); - + /** * 鍙栨秷鐩存挱 * @param liveId 鐩存挱ID * @return */ Result doCancel(String liveId); - - + + /** * 鍙戝竷鐩存挱 * @param liveId 鐩存挱ID * @return */ Result doStart(String liveId); - + /** * 鍙栨秷鐩存挱 * @param liveId 鐩存挱ID * @return */ Result doPause(String liveId); - + /** * 鍙栨秷鐩存挱 * @param liveId 鐩存挱ID * @return */ Result doStop(String liveId); - + /** * 璇诲彇鐩存挱鐝骇 * @param liveId 鐩存挱ID * @return */ List<String> getLiveClasses(String liveId); - - + + /** * 鐐硅禐鐩存挱 * @param liveId 鐩存挱ID * @return */ Result doPraise(String liveId); - - - + + + } diff --git a/src/main/java/com/qxueyou/scc/teach/live/service/impl/MediaLiveService.java b/src/main/java/com/qxueyou/scc/teach/live/service/impl/MediaLiveService.java index 4bcd977..51f54e8 100644 --- a/src/main/java/com/qxueyou/scc/teach/live/service/impl/MediaLiveService.java +++ b/src/main/java/com/qxueyou/scc/teach/live/service/impl/MediaLiveService.java @@ -7,6 +7,7 @@ import java.util.List; import java.util.Map; +import com.qxueyou.scc.sdk.MTCloud; import io.swagger.models.auth.In; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -157,14 +158,19 @@ save(live); return Result.SUCCESS; } - + @Override - public Result delete(String[] liveIds) { + public Result delete(String[] liveIds,String [] courseIds) throws Exception { for(String liveId:liveIds) { delete(liveId); + for(String courseId:courseIds) { + MTCloud client = new MTCloud(); + String s = client.courseDelete(courseId); + } } return Result.SUCCESS; } + @Override public Result doIssue(String liveId) { @@ -347,7 +353,14 @@ public MediaVideoLive read(String liveId) { return read(MediaVideoLive.class,liveId); } - + + @Override + public MediaVideoLive revamp(int courseId) { + String hql = "from MediaVideoLive where deleteFlag is false and courseId=?"; + MediaVideoLive unique = findUnique(hql, CollectionUtils.newList(courseId), MediaVideoLive.class); + return unique ; + } + @SuppressWarnings("unchecked") @Override public List<MediaVideoLive> readByStatus(List<String> liveIdLst,short[] status) { diff --git a/src/main/java/com/qxueyou/scc/wx/service/IWechatService.java b/src/main/java/com/qxueyou/scc/wx/service/IWechatService.java index b6c3f04..4bf39e2 100644 --- a/src/main/java/com/qxueyou/scc/wx/service/IWechatService.java +++ b/src/main/java/com/qxueyou/scc/wx/service/IWechatService.java @@ -23,6 +23,8 @@ Result getNumber(String tonken, String number); JSONObject gettoken(String appid,String secret); + + JSONObject getUser(String token,String openId); // Result isBindWx(String userId); // Result getSignature(String url); diff --git a/src/main/java/com/qxueyou/scc/wx/service/impl/WechatService.java b/src/main/java/com/qxueyou/scc/wx/service/impl/WechatService.java index cc0fbd5..3325780 100644 --- a/src/main/java/com/qxueyou/scc/wx/service/impl/WechatService.java +++ b/src/main/java/com/qxueyou/scc/wx/service/impl/WechatService.java @@ -116,6 +116,22 @@ return s; } + @Override + public JSONObject getUser(String token, String openId) { + String requestUrl = "https://api.weixin.qq.com/sns/userinfo"; + + Map<String, String> requestUrlParam = new HashMap<>(); + + requestUrlParam.put("access_token", token); + + requestUrlParam.put("openid", openId); + + requestUrlParam.put("lang", "zh_CN"); + + JSONObject s = JSON.parseObject(HttpClientUtil.doGet(requestUrl, requestUrlParam)); + + return s; + } // private String getWechatHeadImgUrl(String unionId) { // WechatUserDO wxUser = this.template.findOne(Query.query(condition().and("unionId").is(unionId)), WechatUserDO.class); // return wxUser.getHeadImgUrl(); diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 1ec895b..a6dee7f 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -96,4 +96,8 @@ wx.appId=wx953bf2ed18e7836b wx.secret=1d8b00beaddf5c8f36d1fedc14ef7973 + +wx.app.appId=wx5a7c0d4798fbfdc2 +wx.app.secret=95c5470a52a2c4e037741f82246f4d86 + logging.config=classpath:log4j2.xml -- Gitblit v1.8.0