commit:修改微服务工程目录名称

This commit is contained in:
Jerry
2020-09-26 20:14:58 +08:00
parent d05ad53a17
commit 322b3bc19d
463 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.orange.demo</groupId>
<artifactId>stats</artifactId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>stats-interface</artifactId>
<version>1.0.0</version>
<name>stats-interface</name>
<packaging>jar</packaging>
<dependencies>
<!-- 通用业务依赖 -->
<dependency>
<groupId>com.orange.demo</groupId>
<artifactId>application-common</artifactId>
<version>1.0.0</version>
</dependency>
<!-- 通用组件依赖 -->
<dependency>
<groupId>com.orange.demo</groupId>
<artifactId>common-core</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,182 @@
package com.orange.demo.statsinterface.client;
import com.orange.demo.common.core.config.FeignConfig;
import com.orange.demo.common.core.base.client.BaseClient;
import com.orange.demo.common.core.constant.ErrorCodeEnum;
import com.orange.demo.common.core.object.*;
import com.orange.demo.statsinterface.dto.CourseTransStatsDto;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.*;
import java.util.*;
/**
* 课程统计服务远程数据操作访问接口。
*
* @author Orange Team
* @date 2020-08-08
*/
@FeignClient(
name = "stats",
configuration = FeignConfig.class,
fallbackFactory = CourseTransStatsClient.CourseTransStatsClientFallbackFactory.class)
public interface CourseTransStatsClient extends BaseClient<CourseTransStatsDto, Long> {
/**
* 基于主键的(In-list)条件获取远程数据接口。
*
* @param statsIds 主键Id集合。
* @param withDict 是否包含字典关联。
* @return 应答结果对象,包含主对象的数据集合。
*/
@Override
@PostMapping("/courseTransStats/listByIds")
ResponseResult<List<CourseTransStatsDto>> listByIds(
@RequestParam("statsIds") Set<Long> statsIds,
@RequestParam("withDict") Boolean withDict);
/**
* 基于主键Id获取远程对象。
*
* @param statsId 主键Id。
* @param withDict 是否包含字典关联。
* @return 应答结果对象,包含主对象数据。
*/
@Override
@PostMapping("/courseTransStats/getById")
ResponseResult<CourseTransStatsDto> getById(
@RequestParam("statsId") Long statsId,
@RequestParam("withDict") Boolean withDict);
/**
* 判断参数列表中指定的主键Id是否都存在。
*
* @param statsIds 主键Id集合。
* @return 应答结果对象包含true全部存在否则false。
*/
@Override
@PostMapping("/courseTransStats/existIds")
ResponseResult<Boolean> existIds(@RequestParam("statsIds") Set<Long> statsIds);
/**
* 判断主键Id是否存在。
*
* @param statsId 参数主键Id。
* @return 应答结果对象包含true表示存在否则false。
*/
@Override
@PostMapping("/courseTransStats/existId")
ResponseResult<Boolean> existId(@RequestParam("statsId") Long statsId);
/**
* 获取远程主对象中符合查询条件的数据列表。
*
* @param queryParam 查询参数。
* @return 应答结果对象,包含实体对象集合。
*/
@Override
@PostMapping("/courseTransStats/listBy")
ResponseResult<List<CourseTransStatsDto>> listBy(@RequestBody MyQueryParam queryParam);
/**
* 获取远程主对象中符合查询条件的单条数据对象。
*
* @param queryParam 查询参数。
* @return 应答结果对象,包含实体对象。
*/
@Override
@PostMapping("/courseTransStats/getBy")
ResponseResult<CourseTransStatsDto> getBy(@RequestBody MyQueryParam queryParam);
/**
* 获取远程主对象中符合查询条件的数据列表。
* 和listBy接口相比以Map列表的方式返回的主要目的是降低服务之间的耦合度。
*
* @param queryParam 查询参数。
* @return 应答结果对象,包含主对象集合。
*/
@Override
@PostMapping("/courseTransStats/listMapBy")
ResponseResult<List<Map<String, Object>>> listMapBy(@RequestBody MyQueryParam queryParam);
/**
* 获取远程主对象中符合查询条件的数据数量。
*
* @param queryParam 查询参数。
* @return 应答结果对象,包含结果数量。
*/
@Override
@PostMapping("/courseTransStats/countBy")
ResponseResult<Integer> countBy(@RequestBody MyQueryParam queryParam);
/**
* 获取远程对象中符合查询条件的分组聚合计算Map列表。
*
* @param aggregationParam 聚合参数。
* @return 应该结果对象包含聚合计算后的分组Map列表。
*/
@Override
@PostMapping("/courseTransStats/aggregateBy")
ResponseResult<List<Map<String, Object>>> aggregateBy(@RequestBody MyAggregationParam aggregationParam);
@Component("StatsCourseTransStatsClientFallbackFactory")
@Slf4j
class CourseTransStatsClientFallbackFactory implements FallbackFactory<CourseTransStatsClient>, CourseTransStatsClient {
@Override
public ResponseResult<List<CourseTransStatsDto>> listByIds(
Set<Long> statsIds, Boolean withDict) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<CourseTransStatsDto> getById(
Long statsId, Boolean withDict) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<Boolean> existIds(Set<Long> statsIds) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<Boolean> existId(Long statsId) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<List<CourseTransStatsDto>> listBy(MyQueryParam queryParam) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<CourseTransStatsDto> getBy(MyQueryParam queryParam) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<List<Map<String, Object>>> listMapBy(MyQueryParam queryParam) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<Integer> countBy(MyQueryParam queryParam) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<List<Map<String, Object>>> aggregateBy(MyAggregationParam aggregationParam) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public CourseTransStatsClient create(Throwable throwable) {
log.error("Exception For Feign Remote Call.", throwable);
return new CourseTransStatsClientFallbackFactory();
}
}
}

View File

@@ -0,0 +1,182 @@
package com.orange.demo.statsinterface.client;
import com.orange.demo.common.core.config.FeignConfig;
import com.orange.demo.common.core.base.client.BaseClient;
import com.orange.demo.common.core.constant.ErrorCodeEnum;
import com.orange.demo.common.core.object.*;
import com.orange.demo.statsinterface.dto.StudentActionStatsDto;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.*;
import java.util.*;
/**
* 学生行为统计服务远程数据操作访问接口。
*
* @author Orange Team
* @date 2020-08-08
*/
@FeignClient(
name = "stats",
configuration = FeignConfig.class,
fallbackFactory = StudentActionStatsClient.StudentActionStatsClientFallbackFactory.class)
public interface StudentActionStatsClient extends BaseClient<StudentActionStatsDto, Long> {
/**
* 基于主键的(In-list)条件获取远程数据接口。
*
* @param statsIds 主键Id集合。
* @param withDict 是否包含字典关联。
* @return 应答结果对象,包含主对象的数据集合。
*/
@Override
@PostMapping("/studentActionStats/listByIds")
ResponseResult<List<StudentActionStatsDto>> listByIds(
@RequestParam("statsIds") Set<Long> statsIds,
@RequestParam("withDict") Boolean withDict);
/**
* 基于主键Id获取远程对象。
*
* @param statsId 主键Id。
* @param withDict 是否包含字典关联。
* @return 应答结果对象,包含主对象数据。
*/
@Override
@PostMapping("/studentActionStats/getById")
ResponseResult<StudentActionStatsDto> getById(
@RequestParam("statsId") Long statsId,
@RequestParam("withDict") Boolean withDict);
/**
* 判断参数列表中指定的主键Id是否都存在。
*
* @param statsIds 主键Id集合。
* @return 应答结果对象包含true全部存在否则false。
*/
@Override
@PostMapping("/studentActionStats/existIds")
ResponseResult<Boolean> existIds(@RequestParam("statsIds") Set<Long> statsIds);
/**
* 判断主键Id是否存在。
*
* @param statsId 参数主键Id。
* @return 应答结果对象包含true表示存在否则false。
*/
@Override
@PostMapping("/studentActionStats/existId")
ResponseResult<Boolean> existId(@RequestParam("statsId") Long statsId);
/**
* 获取远程主对象中符合查询条件的数据列表。
*
* @param queryParam 查询参数。
* @return 应答结果对象,包含实体对象集合。
*/
@Override
@PostMapping("/studentActionStats/listBy")
ResponseResult<List<StudentActionStatsDto>> listBy(@RequestBody MyQueryParam queryParam);
/**
* 获取远程主对象中符合查询条件的单条数据对象。
*
* @param queryParam 查询参数。
* @return 应答结果对象,包含实体对象。
*/
@Override
@PostMapping("/studentActionStats/getBy")
ResponseResult<StudentActionStatsDto> getBy(@RequestBody MyQueryParam queryParam);
/**
* 获取远程主对象中符合查询条件的数据列表。
* 和listBy接口相比以Map列表的方式返回的主要目的是降低服务之间的耦合度。
*
* @param queryParam 查询参数。
* @return 应答结果对象,包含主对象集合。
*/
@Override
@PostMapping("/studentActionStats/listMapBy")
ResponseResult<List<Map<String, Object>>> listMapBy(@RequestBody MyQueryParam queryParam);
/**
* 获取远程主对象中符合查询条件的数据数量。
*
* @param queryParam 查询参数。
* @return 应答结果对象,包含结果数量。
*/
@Override
@PostMapping("/studentActionStats/countBy")
ResponseResult<Integer> countBy(@RequestBody MyQueryParam queryParam);
/**
* 获取远程对象中符合查询条件的分组聚合计算Map列表。
*
* @param aggregationParam 聚合参数。
* @return 应该结果对象包含聚合计算后的分组Map列表。
*/
@Override
@PostMapping("/studentActionStats/aggregateBy")
ResponseResult<List<Map<String, Object>>> aggregateBy(@RequestBody MyAggregationParam aggregationParam);
@Component("StatsStudentActionStatsClientFallbackFactory")
@Slf4j
class StudentActionStatsClientFallbackFactory implements FallbackFactory<StudentActionStatsClient>, StudentActionStatsClient {
@Override
public ResponseResult<List<StudentActionStatsDto>> listByIds(
Set<Long> statsIds, Boolean withDict) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<StudentActionStatsDto> getById(
Long statsId, Boolean withDict) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<Boolean> existIds(Set<Long> statsIds) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<Boolean> existId(Long statsId) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<List<StudentActionStatsDto>> listBy(MyQueryParam queryParam) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<StudentActionStatsDto> getBy(MyQueryParam queryParam) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<List<Map<String, Object>>> listMapBy(MyQueryParam queryParam) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<Integer> countBy(MyQueryParam queryParam) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<List<Map<String, Object>>> aggregateBy(MyAggregationParam aggregationParam) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public StudentActionStatsClient create(Throwable throwable) {
log.error("Exception For Feign Remote Call.", throwable);
return new StudentActionStatsClientFallbackFactory();
}
}
}

View File

@@ -0,0 +1,182 @@
package com.orange.demo.statsinterface.client;
import com.orange.demo.common.core.config.FeignConfig;
import com.orange.demo.common.core.base.client.BaseClient;
import com.orange.demo.common.core.constant.ErrorCodeEnum;
import com.orange.demo.common.core.object.*;
import com.orange.demo.statsinterface.dto.StudentActionTransDto;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.*;
import java.util.*;
/**
* 学生行为流水服务远程数据操作访问接口。
*
* @author Orange Team
* @date 2020-08-08
*/
@FeignClient(
name = "stats",
configuration = FeignConfig.class,
fallbackFactory = StudentActionTransClient.StudentActionTransClientFallbackFactory.class)
public interface StudentActionTransClient extends BaseClient<StudentActionTransDto, Long> {
/**
* 基于主键的(In-list)条件获取远程数据接口。
*
* @param transIds 主键Id集合。
* @param withDict 是否包含字典关联。
* @return 应答结果对象,包含主对象的数据集合。
*/
@Override
@PostMapping("/studentActionTrans/listByIds")
ResponseResult<List<StudentActionTransDto>> listByIds(
@RequestParam("transIds") Set<Long> transIds,
@RequestParam("withDict") Boolean withDict);
/**
* 基于主键Id获取远程对象。
*
* @param transId 主键Id。
* @param withDict 是否包含字典关联。
* @return 应答结果对象,包含主对象数据。
*/
@Override
@PostMapping("/studentActionTrans/getById")
ResponseResult<StudentActionTransDto> getById(
@RequestParam("transId") Long transId,
@RequestParam("withDict") Boolean withDict);
/**
* 判断参数列表中指定的主键Id是否都存在。
*
* @param transIds 主键Id集合。
* @return 应答结果对象包含true全部存在否则false。
*/
@Override
@PostMapping("/studentActionTrans/existIds")
ResponseResult<Boolean> existIds(@RequestParam("transIds") Set<Long> transIds);
/**
* 判断主键Id是否存在。
*
* @param transId 参数主键Id。
* @return 应答结果对象包含true表示存在否则false。
*/
@Override
@PostMapping("/studentActionTrans/existId")
ResponseResult<Boolean> existId(@RequestParam("transId") Long transId);
/**
* 获取远程主对象中符合查询条件的数据列表。
*
* @param queryParam 查询参数。
* @return 应答结果对象,包含实体对象集合。
*/
@Override
@PostMapping("/studentActionTrans/listBy")
ResponseResult<List<StudentActionTransDto>> listBy(@RequestBody MyQueryParam queryParam);
/**
* 获取远程主对象中符合查询条件的单条数据对象。
*
* @param queryParam 查询参数。
* @return 应答结果对象,包含实体对象。
*/
@Override
@PostMapping("/studentActionTrans/getBy")
ResponseResult<StudentActionTransDto> getBy(@RequestBody MyQueryParam queryParam);
/**
* 获取远程主对象中符合查询条件的数据列表。
* 和listBy接口相比以Map列表的方式返回的主要目的是降低服务之间的耦合度。
*
* @param queryParam 查询参数。
* @return 应答结果对象,包含主对象集合。
*/
@Override
@PostMapping("/studentActionTrans/listMapBy")
ResponseResult<List<Map<String, Object>>> listMapBy(@RequestBody MyQueryParam queryParam);
/**
* 获取远程主对象中符合查询条件的数据数量。
*
* @param queryParam 查询参数。
* @return 应答结果对象,包含结果数量。
*/
@Override
@PostMapping("/studentActionTrans/countBy")
ResponseResult<Integer> countBy(@RequestBody MyQueryParam queryParam);
/**
* 获取远程对象中符合查询条件的分组聚合计算Map列表。
*
* @param aggregationParam 聚合参数。
* @return 应该结果对象包含聚合计算后的分组Map列表。
*/
@Override
@PostMapping("/studentActionTrans/aggregateBy")
ResponseResult<List<Map<String, Object>>> aggregateBy(@RequestBody MyAggregationParam aggregationParam);
@Component("StatsStudentActionTransClientFallbackFactory")
@Slf4j
class StudentActionTransClientFallbackFactory implements FallbackFactory<StudentActionTransClient>, StudentActionTransClient {
@Override
public ResponseResult<List<StudentActionTransDto>> listByIds(
Set<Long> transIds, Boolean withDict) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<StudentActionTransDto> getById(
Long transId, Boolean withDict) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<Boolean> existIds(Set<Long> transIds) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<Boolean> existId(Long transId) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<List<StudentActionTransDto>> listBy(MyQueryParam queryParam) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<StudentActionTransDto> getBy(MyQueryParam queryParam) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<List<Map<String, Object>>> listMapBy(MyQueryParam queryParam) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<Integer> countBy(MyQueryParam queryParam) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<List<Map<String, Object>>> aggregateBy(MyAggregationParam aggregationParam) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public StudentActionTransClient create(Throwable throwable) {
log.error("Exception For Feign Remote Call.", throwable);
return new StudentActionTransClientFallbackFactory();
}
}
}

View File

@@ -0,0 +1,106 @@
package com.orange.demo.statsinterface.dto;
import com.orange.demo.common.core.validator.UpdateGroup;
import com.orange.demo.common.core.validator.ConstDictRef;
import com.orange.demo.application.common.constant.Subject;
import lombok.Data;
import javax.validation.constraints.*;
import java.util.Date;
import java.util.Map;
/**
* CourseTransStatsDto对象。
*
* @author Orange Team
* @date 2020-08-08
*/
@Data
public class CourseTransStatsDto {
/**
* 主键Id。
*/
@NotNull(message = "数据验证失败主键Id不能为空", groups = {UpdateGroup.class})
private Long statsId;
/**
* 统计日期。
*/
@NotNull(message = "数据验证失败,统计日期不能为空!")
private Date statsDate;
/**
* 科目Id。
*/
@NotNull(message = "数据验证失败,所属科目不能为空!")
@ConstDictRef(constDictClass = Subject.class, message = "数据验证失败,所属科目为无效值!")
private Integer subjectId;
/**
* 年级Id。
*/
@NotNull(message = "数据验证失败,所属年级不能为空!")
private Integer gradeId;
/**
* 年级名称。
*/
private String gradeName;
/**
* 课程Id。
*/
@NotNull(message = "数据验证失败课程ID不能为空")
private Long courseId;
/**
* 课程名称。
*/
private String courseName;
/**
* 学生上课次数。
*/
@NotNull(message = "数据验证失败,上课次数不能为空!")
private Integer studentAttendCount;
/**
* 学生献花数量。
*/
@NotNull(message = "数据验证失败,献花数量不能为空!")
private Integer studentFlowerAmount;
/**
* 学生献花次数。
*/
@NotNull(message = "数据验证失败,献花次数不能为空!")
private Integer studentFlowerCount;
/**
* statsDate 范围过滤起始值(>=)。
*/
private String statsDateStart;
/**
* statsDate 范围过滤结束值(<=)。
*/
private String statsDateEnd;
/**
* gradeId 字典关联数据。
*/
private Map<String, Object> gradeIdDictMap;
/**
* courseId 字典关联数据。
*/
private Map<String, Object> courseIdDictMap;
/**
* subjectId 常量字典关联数据。
*/
private Map<String, Object> subjectIdDictMap;
}

View File

@@ -0,0 +1,170 @@
package com.orange.demo.statsinterface.dto;
import com.orange.demo.common.core.validator.UpdateGroup;
import lombok.Data;
import javax.validation.constraints.*;
import java.util.Date;
import java.util.Map;
/**
* StudentActionStatsDto对象。
*
* @author Orange Team
* @date 2020-08-08
*/
@Data
public class StudentActionStatsDto {
/**
* 主键Id。
*/
@NotNull(message = "数据验证失败主键Id不能为空", groups = {UpdateGroup.class})
private Long statsId;
/**
* 统计日期。
*/
@NotNull(message = "数据验证失败,统计日期不能为空!")
private Date statsDate;
/**
* 统计小时。
*/
private Date statsMonth;
/**
* 年级Id。
*/
@NotNull(message = "数据验证失败,所属年级不能为空!")
private Integer gradeId;
/**
* 学生所在省Id。
*/
@NotNull(message = "数据验证失败,所在省份不能为空!")
private Long provinceId;
/**
* 学生所在城市Id。
*/
@NotNull(message = "数据验证失败,所在城市不能为空!")
private Long cityId;
/**
* 购课学币数量。
*/
@NotNull(message = "数据验证失败,购课学币数量不能为空!")
private Integer buyCourseAmount;
/**
* 购买课程次数。
*/
@NotNull(message = "数据验证失败,购买课程次数不能为空!")
private Integer buyCourseCount;
/**
* 购买视频学币数量。
*/
@NotNull(message = "数据验证失败,购买视频学币数量不能为空!")
private Integer buyVideoAmount;
/**
* 购买视频次数。
*/
@NotNull(message = "数据验证失败,购买视频次数不能为空!")
private Integer buyVideoCount;
/**
* 购买作业学币数量。
*/
@NotNull(message = "数据验证失败,购买作业学币数量不能为空!")
private Integer buyPaperAmount;
/**
* 购买作业次数。
*/
@NotNull(message = "数据验证失败,购买作业次数不能为空!")
private Integer buyPaperCount;
/**
* 购买献花数量。
*/
@NotNull(message = "数据验证失败,购买献花数量不能为空!")
private Integer buyFlowerAmount;
/**
* 购买献花次数。
*/
@NotNull(message = "数据验证失败,购买献花次数不能为空!")
private Integer buyFlowerCount;
/**
* 充值学币数量。
*/
@NotNull(message = "数据验证失败,充值学币数量不能为空!")
private Integer rechargeCoinAmount;
/**
* 充值学币次数。
*/
@NotNull(message = "数据验证失败,充值学币次数不能为空!")
private Integer rechargeCoinCount;
/**
* 线下课程上课次数。
*/
@NotNull(message = "数据验证失败,线下课程上课次数不能为空!")
private Integer doCourseCount;
/**
* 观看视频次数。
*/
@NotNull(message = "数据验证失败,观看视频次数不能为空!")
private Integer watchVideoCount;
/**
* 购买献花消费学币数量。
*/
@NotNull(message = "数据验证失败,购买献花消费学币数量不能为空!")
private Integer watchVideoTotalSecond;
/**
* 做题数量。
*/
@NotNull(message = "数据验证失败,做题数量不能为空!")
private Integer doExerciseCount;
/**
* 做题正确的数量。
*/
@NotNull(message = "数据验证失败,做题正确的数量不能为空!")
private Integer doExerciseCorrectCount;
/**
* statsDate 范围过滤起始值(>=)。
*/
private String statsDateStart;
/**
* statsDate 范围过滤结束值(<=)。
*/
private String statsDateEnd;
/**
* gradeId 字典关联数据。
*/
private Map<String, Object> gradeIdDictMap;
/**
* provinceId 字典关联数据。
*/
private Map<String, Object> provinceIdDictMap;
/**
* cityId 字典关联数据。
*/
private Map<String, Object> cityIdDictMap;
}

View File

@@ -0,0 +1,138 @@
package com.orange.demo.statsinterface.dto;
import com.orange.demo.common.core.validator.UpdateGroup;
import com.orange.demo.common.core.validator.ConstDictRef;
import com.orange.demo.application.common.constant.StudentActionType;
import com.orange.demo.application.common.constant.DeviceType;
import lombok.Data;
import javax.validation.constraints.*;
import java.util.Date;
import java.util.Map;
/**
* StudentActionTransDto对象。
*
* @author Jerry
* @date 2020-08-13
*/
@Data
public class StudentActionTransDto {
/**
* 主键Id。
*/
@NotNull(message = "数据验证失败主键Id不能为空", groups = {UpdateGroup.class})
private Long transId;
/**
* 学生Id。
*/
@NotNull(message = "数据验证失败学生Id不能为空")
private Long studentId;
/**
* 学生名称。
*/
@NotBlank(message = "数据验证失败,学生名称不能为空!")
private String studentName;
/**
* 学生校区。
*/
@NotNull(message = "数据验证失败,学生校区不能为空!")
private Long schoolId;
/**
* 年级Id。
*/
@NotNull(message = "数据验证失败,所属年级不能为空!")
private Integer gradeId;
/**
* 行为类型(0: 充值 1: 购课 2: 上课签到 3: 上课签退 4: 看视频课 5: 做作业 6: 刷题 7: 献花)。
*/
@NotNull(message = "数据验证失败,行为类型不能为空!")
@ConstDictRef(constDictClass = StudentActionType.class, message = "数据验证失败,行为类型为无效值!")
private Integer actionType;
/**
* 设备类型(0: iOS 1: Android 2: PC)。
*/
@NotNull(message = "数据验证失败,设备类型不能为空!")
@ConstDictRef(constDictClass = DeviceType.class, message = "数据验证失败,设备类型为无效值!")
private Integer deviceType;
/**
* 看视频秒数。
*/
private Integer watchVideoSeconds;
/**
* 购买献花数量。
*/
private Integer flowerCount;
/**
* 购买作业数量。
*/
private Integer paperCount;
/**
* 购买视频数量。
*/
private Integer videoCount;
/**
* 购买课程数量。
*/
private Integer courseCount;
/**
* 充值学币数量。
*/
private Integer coinCount;
/**
* 做题是否正确标记。
*/
private Integer exerciseCorrectFlag;
/**
* 发生时间。
*/
@NotNull(message = "数据验证失败,发生时间不能为空!")
private Date createTime;
/**
* createTime 范围过滤起始值(>=)。
*/
private String createTimeStart;
/**
* createTime 范围过滤结束值(<=)。
*/
private String createTimeEnd;
/**
* schoolId 字典关联数据。
*/
private Map<String, Object> schoolIdDictMap;
/**
* gradeId 字典关联数据。
*/
private Map<String, Object> gradeIdDictMap;
/**
* actionType 常量字典关联数据。
*/
private Map<String, Object> actionTypeDictMap;
/**
* deviceType 常量字典关联数据。
*/
private Map<String, Object> deviceTypeDictMap;
}