|
|
package com.ibeetl.jlw.service;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.jlw.util.ToolUtils;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.ibeetl.admin.core.service.CoreBaseService;
|
|
|
import com.ibeetl.admin.core.util.PlatformException;
|
|
|
import com.ibeetl.admin.core.web.JsonResult;
|
|
|
import com.ibeetl.admin.core.web.JsonReturnCode;
|
|
|
import com.ibeetl.jlw.dao.TeacherOpenCourseStudentSigninLogDao;
|
|
|
import com.ibeetl.jlw.dao.TeacherOpenCourseStudentSigninSettingDao;
|
|
|
import com.ibeetl.jlw.entity.TeacherOpenCourseStudentSigninSetting;
|
|
|
import com.ibeetl.jlw.entity.vo.SummaryBySigninSettingIdsVO;
|
|
|
import com.ibeetl.jlw.enums.StartStatusEnum;
|
|
|
import com.ibeetl.jlw.validator.TeacherOpenCourseStudentSigninSettingQueryValidator;
|
|
|
import com.ibeetl.jlw.web.query.TeacherOpenCourseStudentSigninSettingQuery;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.beetl.sql.core.SqlId;
|
|
|
import org.beetl.sql.core.engine.PageQuery;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
|
|
import javax.validation.constraints.NotNull;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.concurrent.CopyOnWriteArrayList;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import static com.ibeetl.admin.core.util.BeanUtil.copyAllPropertiesSupportExtMap;
|
|
|
|
|
|
/**
|
|
|
* 学生签到设置 Service
|
|
|
* 当分布式ID开启后请勿使用insert(*,true)
|
|
|
*/
|
|
|
|
|
|
@Service
|
|
|
@Transactional
|
|
|
@Validated
|
|
|
@Slf4j
|
|
|
public class TeacherOpenCourseStudentSigninSettingService extends CoreBaseService<TeacherOpenCourseStudentSigninSetting> implements DeleteResourcesBy{
|
|
|
|
|
|
@Autowired private TeacherOpenCourseStudentSigninSettingDao teacherOpenCourseStudentSigninSettingDao;
|
|
|
@Autowired private TeacherOpenCourseStudentSigninLogDao teacherOpenCourseStudentSigninLogDao;
|
|
|
@Autowired private TeacherOpenCourseStudentSigninSettingQueryValidator settingQueryValidator;
|
|
|
|
|
|
public PageQuery<TeacherOpenCourseStudentSigninSetting>queryByCondition(PageQuery query){
|
|
|
PageQuery ret = teacherOpenCourseStudentSigninSettingDao.queryByCondition(query);
|
|
|
queryListAfter(ret.getList());
|
|
|
// setSummaryInfo(ret.getList());
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据签到ID,设置汇总数据
|
|
|
* @param list
|
|
|
*/
|
|
|
private void setSummaryInfo(List<TeacherOpenCourseStudentSigninSetting> list) {
|
|
|
if (ObjectUtil.isNotEmpty(list)) {
|
|
|
String signinSettingIds = list.stream().map(item -> item.getTeacherOpenCourseStudentSigninSettingId().toString()).collect(Collectors.joining(","));
|
|
|
List<SummaryBySigninSettingIdsVO> vos = teacherOpenCourseStudentSigninLogDao.summaryBySigninSettingIds(signinSettingIds);
|
|
|
|
|
|
CopyOnWriteArrayList<SummaryBySigninSettingIdsVO> vosSync = new CopyOnWriteArrayList<>(vos);
|
|
|
|
|
|
for (SummaryBySigninSettingIdsVO vo : vosSync) {
|
|
|
Long settingId = vo.getTeacherOpenCourseStudentSigninSettingId();
|
|
|
for (TeacherOpenCourseStudentSigninSetting signinSetting : list) {
|
|
|
// 比对id,进行值拷贝操作了
|
|
|
if (signinSetting.getTeacherOpenCourseStudentSigninSettingId().equals(settingId)) {
|
|
|
copyAllPropertiesSupportExtMap(vo, signinSetting);
|
|
|
vosSync.removeIf(item -> item.getTeacherOpenCourseStudentSigninSettingId().equals(settingId));
|
|
|
continue;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public PageQuery<TeacherOpenCourseStudentSigninSetting>queryByConditionQuery(PageQuery query){
|
|
|
PageQuery ret = teacherOpenCourseStudentSigninSettingDao.queryByConditionQuery(query);
|
|
|
queryListAfter(ret.getList());
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
public void deleteByList(List list){
|
|
|
String ids = "";
|
|
|
ToolUtils.deleteNullList(list);
|
|
|
for(int i=0;null != list && i<list.size();i++){
|
|
|
ids += list.get(i).toString()+(i==list.size()-1?"":",");
|
|
|
}
|
|
|
if(StringUtils.isNotBlank(ids)){
|
|
|
teacherOpenCourseStudentSigninSettingDao.deleteByIds(ids);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public void deleteTeacherOpenCourseStudentSigninSetting(String ids){
|
|
|
try {
|
|
|
teacherOpenCourseStudentSigninSettingDao.deleteTeacherOpenCourseStudentSigninSettingByIds(ids);
|
|
|
} catch (Exception e) {
|
|
|
throw new PlatformException("批量删除学生签到设置失败", e);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public String addAll(TeacherOpenCourseStudentSigninSettingQuery teacherOpenCourseStudentSigninSettingQuery){
|
|
|
String msg = "";
|
|
|
List<TeacherOpenCourseStudentSigninSetting> teacherOpenCourseStudentSigninSettingList = new ArrayList<>();
|
|
|
try {
|
|
|
teacherOpenCourseStudentSigninSettingList = JSON.parseArray(teacherOpenCourseStudentSigninSettingQuery.getTeacherOpenCourseStudentSigninSettingJsonStr(), TeacherOpenCourseStudentSigninSetting.class);
|
|
|
} catch (Exception e) {
|
|
|
try {
|
|
|
teacherOpenCourseStudentSigninSettingList.add(JSONObject.parseObject(teacherOpenCourseStudentSigninSettingQuery.getTeacherOpenCourseStudentSigninSettingJsonStr(), TeacherOpenCourseStudentSigninSetting.class));
|
|
|
} catch (Exception e1) {}
|
|
|
}
|
|
|
ToolUtils.deleteNullList(teacherOpenCourseStudentSigninSettingList);
|
|
|
if(null != teacherOpenCourseStudentSigninSettingList && teacherOpenCourseStudentSigninSettingList.size()>0){
|
|
|
for(int i=0;i<teacherOpenCourseStudentSigninSettingList.size();i++){
|
|
|
TeacherOpenCourseStudentSigninSetting teacherOpenCourseStudentSigninSetting = teacherOpenCourseStudentSigninSettingList.get(i);
|
|
|
teacherOpenCourseStudentSigninSetting.setUserId(teacherOpenCourseStudentSigninSettingQuery.getUserId());
|
|
|
teacherOpenCourseStudentSigninSetting.setOrgId(teacherOpenCourseStudentSigninSettingQuery.getOrgId());
|
|
|
}
|
|
|
insertBatch(teacherOpenCourseStudentSigninSettingList);
|
|
|
}
|
|
|
return msg;
|
|
|
}
|
|
|
|
|
|
public JsonResult add(TeacherOpenCourseStudentSigninSettingQuery teacherOpenCourseStudentSigninSettingQuery){
|
|
|
String msg = "";
|
|
|
settingQueryValidator.validator(teacherOpenCourseStudentSigninSettingQuery);
|
|
|
TeacherOpenCourseStudentSigninSetting teacherOpenCourseStudentSigninSetting = teacherOpenCourseStudentSigninSettingQuery.pojo();
|
|
|
teacherOpenCourseStudentSigninSetting.setTeacherOpenCourseStudentSigninSettingAddTime(new Date());
|
|
|
// 默认是未开始的状态
|
|
|
teacherOpenCourseStudentSigninSetting.setTeacherOpenCourseStudentSigninSettingStartStatus(StartStatusEnum.READY);
|
|
|
teacherOpenCourseStudentSigninSettingDao.insert(teacherOpenCourseStudentSigninSetting);
|
|
|
teacherOpenCourseStudentSigninSettingQuery.setTeacherOpenCourseStudentSigninSettingId(teacherOpenCourseStudentSigninSetting.getTeacherOpenCourseStudentSigninSettingId());
|
|
|
JsonResult jsonResult = new JsonResult();
|
|
|
jsonResult.setData(teacherOpenCourseStudentSigninSetting.getTeacherOpenCourseStudentSigninSettingId());//自增的ID丢进去
|
|
|
jsonResult.setCode(JsonReturnCode.SUCCESS.getCode());
|
|
|
jsonResult.setMsg(msg);
|
|
|
return jsonResult;
|
|
|
}
|
|
|
|
|
|
public String edit(TeacherOpenCourseStudentSigninSettingQuery teacherOpenCourseStudentSigninSettingQuery){
|
|
|
String msg = "";
|
|
|
TeacherOpenCourseStudentSigninSetting teacherOpenCourseStudentSigninSetting = teacherOpenCourseStudentSigninSettingQuery.pojo();
|
|
|
teacherOpenCourseStudentSigninSettingDao.updateTemplateById(teacherOpenCourseStudentSigninSetting);
|
|
|
return msg;
|
|
|
}
|
|
|
|
|
|
public String updateGivenByIds(TeacherOpenCourseStudentSigninSettingQuery teacherOpenCourseStudentSigninSettingQuery){
|
|
|
String msg = "";
|
|
|
if(StringUtils.isNotBlank(teacherOpenCourseStudentSigninSettingQuery.get_given())){
|
|
|
boolean flag = teacherOpenCourseStudentSigninSettingDao.updateGivenByIds(teacherOpenCourseStudentSigninSettingQuery) > 0;
|
|
|
if(!flag){
|
|
|
msg = "更新指定参数失败";
|
|
|
}
|
|
|
}else{
|
|
|
msg = "指定参数为空";
|
|
|
}
|
|
|
return msg;
|
|
|
}
|
|
|
|
|
|
public List<TeacherOpenCourseStudentSigninSetting> getValues (Object paras){
|
|
|
return sqlManager.select(SqlId.of("jlw.teacherOpenCourseStudentSigninSetting.getTeacherOpenCourseStudentSigninSettingValues"), TeacherOpenCourseStudentSigninSetting.class, paras);
|
|
|
}
|
|
|
|
|
|
public List<TeacherOpenCourseStudentSigninSetting> getValuesByQuery (TeacherOpenCourseStudentSigninSettingQuery teacherOpenCourseStudentSigninSettingQuery){
|
|
|
return teacherOpenCourseStudentSigninSettingDao.getValuesByQuery(teacherOpenCourseStudentSigninSettingQuery);
|
|
|
}
|
|
|
|
|
|
public List<TeacherOpenCourseStudentSigninSetting> getValuesByQueryNotWithPermission (TeacherOpenCourseStudentSigninSettingQuery teacherOpenCourseStudentSigninSettingQuery){
|
|
|
return teacherOpenCourseStudentSigninSettingDao.getValuesByQueryNotWithPermission(teacherOpenCourseStudentSigninSettingQuery);
|
|
|
}
|
|
|
|
|
|
public void parser(Object obj) {
|
|
|
dictParser(obj);
|
|
|
}
|
|
|
|
|
|
public TeacherOpenCourseStudentSigninSetting getInfo (Long teacherOpenCourseStudentSigninSettingId){
|
|
|
TeacherOpenCourseStudentSigninSettingQuery teacherOpenCourseStudentSigninSettingQuery = new TeacherOpenCourseStudentSigninSettingQuery();
|
|
|
teacherOpenCourseStudentSigninSettingQuery.setTeacherOpenCourseStudentSigninSettingId(teacherOpenCourseStudentSigninSettingId);
|
|
|
teacherOpenCourseStudentSigninSettingQuery.setTeacherOpenCourseStudentSigninSettingStatusPlural("1,2");//需要根据实际情况来
|
|
|
List<TeacherOpenCourseStudentSigninSetting> list = teacherOpenCourseStudentSigninSettingDao.getValuesByQuery(teacherOpenCourseStudentSigninSettingQuery);
|
|
|
if(null != list && list.size()>0){
|
|
|
return list.get(0);
|
|
|
}else{
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public TeacherOpenCourseStudentSigninSetting getInfo (TeacherOpenCourseStudentSigninSettingQuery teacherOpenCourseStudentSigninSettingQuery){
|
|
|
List<TeacherOpenCourseStudentSigninSetting> list = teacherOpenCourseStudentSigninSettingDao.getValuesByQuery(teacherOpenCourseStudentSigninSettingQuery);
|
|
|
if(null != list && list.size()>0){
|
|
|
return list.get(0);
|
|
|
}else{
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 设置签到配置的状态 开始,结束
|
|
|
* @param id
|
|
|
* @param status
|
|
|
*/
|
|
|
public void updateStatus(@NotNull(message = "签到配置ID不能为空!") Long id,
|
|
|
@NotNull(message = "签到状态不能为空!")
|
|
|
Integer status) {
|
|
|
TeacherOpenCourseStudentSigninSetting model = new TeacherOpenCourseStudentSigninSetting();
|
|
|
model.setTeacherOpenCourseStudentSigninSettingId(id);
|
|
|
|
|
|
switch (status) {
|
|
|
case 1: {
|
|
|
model.setTeacherOpenCourseStudentSigninSettingAddTime(new Date());
|
|
|
// 结束时间设置为空,代表只要大于开始时间,就一直可以进行签到
|
|
|
model.setTeacherOpenCourseStudentSigninSettingEndTime(null);
|
|
|
model.setTeacherOpenCourseStudentSigninSettingStartStatus(StartStatusEnum.ING);
|
|
|
|
|
|
TeacherOpenCourseStudentSigninSettingQuery settingQuery = new TeacherOpenCourseStudentSigninSettingQuery();
|
|
|
BeanUtil.copyProperties(model, settingQuery);
|
|
|
settingQuery.setTeacherOpenCourseStudentSigninSettingIdPlural(id.toString());
|
|
|
|
|
|
settingQuery.set_given(
|
|
|
"teacherOpenCourseStudentSigninSettingAddTime," +
|
|
|
"teacherOpenCourseStudentSigninSettingEndTime," +
|
|
|
"teacherOpenCourseStudentSigninSettingStartStatus");
|
|
|
updateGivenByIds(settingQuery);
|
|
|
} break;
|
|
|
|
|
|
case 2: {
|
|
|
// 结束时间,赋值
|
|
|
model.setTeacherOpenCourseStudentSigninSettingEndTime(new Date());
|
|
|
model.setTeacherOpenCourseStudentSigninSettingStartStatus(StartStatusEnum.END);
|
|
|
updateTemplate(model);
|
|
|
} break;
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void resetOperationByTeacherOpenCourseId(Long teacherOpenCourseId) {
|
|
|
log.info("可能需要实现重置操作!");
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void deleteTeacherOpenCourseAllRelatedByTeacherOpenCourseId(@NotNull(message = "开课ID不能为空!") Long teacherOpenCourseId) {
|
|
|
log.info("需要实现删除操作!");
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 功能描述: <br>
|
|
|
* 签到配置的日期列表
|
|
|
*
|
|
|
* @param teacherOpenCourseId
|
|
|
* @return {@link List< String>}
|
|
|
* @Author: lx
|
|
|
* @Date: 2022/12/28 19:51
|
|
|
*/
|
|
|
public List<String> sessionDateList(Long teacherOpenCourseId) {
|
|
|
List<String> list = teacherOpenCourseStudentSigninSettingDao.createLambdaQuery().andEq(TeacherOpenCourseStudentSigninSetting::getTeacherOpenCourseId, teacherOpenCourseId)
|
|
|
.andEq(TeacherOpenCourseStudentSigninSetting::getTeacherOpenCourseStudentSigninSettingStatus, 1)
|
|
|
.select(String.class, "teacher_open_course_student_signin_setting_session_time");
|
|
|
return CollectionUtil.emptyIfNull(list).stream().sorted().collect(Collectors.toList());
|
|
|
}
|
|
|
}
|