diff --git a/admin-core/src/main/java/com/ibeetl/admin/core/conf/JasonConfig.java b/admin-core/src/main/java/com/ibeetl/admin/core/conf/JasonConfig.java index 2c12f77c..d99a93ec 100644 --- a/admin-core/src/main/java/com/ibeetl/admin/core/conf/JasonConfig.java +++ b/admin-core/src/main/java/com/ibeetl/admin/core/conf/JasonConfig.java @@ -1,24 +1,29 @@ package com.ibeetl.admin.core.conf; import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.Version; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; -import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.databind.module.SimpleModule; +import com.fasterxml.jackson.databind.ser.ContextualSerializer; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.ibeetl.admin.core.annotation.BigDecimalFormat; import com.ibeetl.admin.core.web.JsonResult; import org.apache.commons.lang3.StringUtils; import org.beetl.sql.core.engine.PageQuery; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.jackson.JsonComponent; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.io.IOException; +import java.math.BigDecimal; import java.math.BigInteger; +import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.Map; +import java.util.Objects; @Configuration public class JasonConfig { @@ -84,4 +89,43 @@ public class JasonConfig { } } + + @JsonComponent + public class BigDecimalSerializer extends JsonSerializer implements ContextualSerializer { + private String format = "#####0.00"; + + @Override + public void serialize(BigDecimal bigDecimal, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException { + jsonGenerator.writeString(new DecimalFormat(format).format(bigDecimal)); + } + + @Override + public JsonSerializer createContextual(SerializerProvider serializerProvider, BeanProperty beanProperty) throws JsonMappingException { + if(beanProperty !=null ){ + if(Objects.equals(beanProperty.getType().getRawClass(),BigDecimal.class)){ + BigDecimalFormat bigDecimalFormat = beanProperty.getAnnotation((BigDecimalFormat.class)); + if(bigDecimalFormat == null){ + bigDecimalFormat = beanProperty.getContextAnnotation(BigDecimalFormat.class); + } + BigDecimalSerializer bigDecimalSerializer = new BigDecimalSerializer(); + if(bigDecimalFormat != null){ + bigDecimalSerializer.format = bigDecimalFormat.value(); + } + return bigDecimalSerializer; + } + return serializerProvider.findValueSerializer(beanProperty.getType(),beanProperty); + } + return serializerProvider.findNullValueSerializer(beanProperty); + } + } + + @JsonComponent + public class BigDecimalDeSerializer extends JsonDeserializer { + @Override + public BigDecimal deserialize(JsonParser jsonParser, + DeserializationContext deserializationContext) throws IOException, JsonProcessingException { + + return new BigDecimal(jsonParser.getText().replaceAll(",","")); + } + } } diff --git a/web/src/main/java/com/ibeetl/jlw/dao/TeacherOpenCourseStudentSigninLogDao.java b/web/src/main/java/com/ibeetl/jlw/dao/TeacherOpenCourseStudentSigninLogDao.java index e6cec19b..dbb67170 100644 --- a/web/src/main/java/com/ibeetl/jlw/dao/TeacherOpenCourseStudentSigninLogDao.java +++ b/web/src/main/java/com/ibeetl/jlw/dao/TeacherOpenCourseStudentSigninLogDao.java @@ -1,6 +1,7 @@ package com.ibeetl.jlw.dao; import com.ibeetl.jlw.entity.TeacherOpenCourseStudentSigninLog; +import com.ibeetl.jlw.entity.vo.TeacherOpenCourseStudentSigninLogSummaryVO; import com.ibeetl.jlw.web.query.TeacherOpenCourseStudentSigninLogQuery; import org.beetl.sql.core.engine.PageQuery; import org.beetl.sql.mapper.BaseMapper; @@ -26,4 +27,10 @@ public interface TeacherOpenCourseStudentSigninLogDao extends BaseMapper getValuesByQueryNotWithPermission(TeacherOpenCourseStudentSigninLogQuery teacherOpenCourseStudentSigninLogQuery); List> getExcelValues(TeacherOpenCourseStudentSigninLogQuery teacherOpenCourseStudentSigninLogQuery); + + /** + * 签到汇总 + * @param teacherOpenCourseId + */ + TeacherOpenCourseStudentSigninLogSummaryVO summary(Long teacherOpenCourseId); } diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseStudentSigninLogService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseStudentSigninLogService.java index f07f2262..ea5cace3 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseStudentSigninLogService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseStudentSigninLogService.java @@ -27,6 +27,7 @@ import com.ibeetl.jlw.entity.dto.TeacherOpenCourseStudentSigninLogManualMergeDTO import com.ibeetl.jlw.entity.dto.TeacherOpenCourseStudentSigninLogSigninDTO; import com.ibeetl.jlw.entity.dto.TeacherOpenCourseStudentSigninLogSigninDTO.ManualClass; import com.ibeetl.jlw.entity.dto.TeacherOpenCourseStudentSigninSettingManualDTO; +import com.ibeetl.jlw.entity.vo.TeacherOpenCourseStudentSigninLogSummaryVO; import com.ibeetl.jlw.enums.StartStatusEnum; import com.ibeetl.jlw.validator.TeacherOpenCourseStudentSigninLogSigninDTOValidator; import com.ibeetl.jlw.web.query.TeacherOpenCourseStudentSigninLogQuery; @@ -609,4 +610,13 @@ public class TeacherOpenCourseStudentSigninLogService extends CoreBaseService