You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tianze-pro/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseStudentSig...

272 lines
13 KiB
Java

package com.ibeetl.jlw.service;
2 years ago
import cn.hutool.core.bean.BeanUtil;
2 years ago
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;
2 years ago
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{
2 years ago
@Autowired private TeacherOpenCourseStudentSigninSettingDao teacherOpenCourseStudentSigninSettingDao;
@Autowired private TeacherOpenCourseStudentSigninLogDao teacherOpenCourseStudentSigninLogDao;
2 years ago
@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 = "";
2 years ago
settingQueryValidator.validator(teacherOpenCourseStudentSigninSettingQuery);
TeacherOpenCourseStudentSigninSetting teacherOpenCourseStudentSigninSetting = teacherOpenCourseStudentSigninSettingQuery.pojo();
2 years ago
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
*/
2 years ago
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);
2 years ago
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);
2 years ago
updateTemplate(model);
} break;
}
2 years ago
}
@Override
public void resetOperationByTeacherOpenCourseId(Long teacherOpenCourseId) {
log.info("可能需要实现重置操作!");
}
@Override
public void deleteTeacherOpenCourseAllRelatedByTeacherOpenCourseId(@NotNull(message = "开课ID不能为空") Long teacherOpenCourseId) {
log.info("需要实现删除操作!");
}
2 years ago
/**
* : <br>
*
*
* @param teacherOpenCourseId
* @return {@link List< String>}
* @Author: lx
* @Date: 2022/12/28 19:51
*/
public List<String> sessionDateList(Long teacherOpenCourseId) {
2 years ago
List<String> list = teacherOpenCourseStudentSigninSettingDao.createLambdaQuery().andEq(TeacherOpenCourseStudentSigninSetting::getTeacherOpenCourseId, teacherOpenCourseId)
2 years ago
.andEq(TeacherOpenCourseStudentSigninSetting::getTeacherOpenCourseStudentSigninSettingStatus, 1)
.select(String.class, "teacher_open_course_student_signin_setting_session_time");
2 years ago
return CollectionUtil.emptyIfNull(list).stream().sorted().collect(Collectors.toList());
2 years ago
}
}