Commit c8096143 by liangkaiping

copy

parent 695eea91
# research-project 调研
\ No newline at end of file
<?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.yizhi</groupId>
<artifactId>cloud-research</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.yizhi</groupId>
<artifactId>cloud-research-api</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-common-api</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-util</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-orm</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-core</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
package com.yizhi.research.application;
/**
* @Author: shengchenglong
* @Date: 2018/6/11 16:29
*/
public interface ResearchConstant {
/**
* 进行中
*/
Integer STATE_ING = 1;
/**
* 已结束
*/
Integer STATE_FINISHED = 2;
/**
* 已过期
*/
Integer STATE_DATED = 3;
}
package com.yizhi.research.application.eum;
/**
* 是否可以跳题
*
* @Author: shengchenglong
* @Date: 2018/3/14 10:58
*/
public enum Jumpleable {
/**
* 可以
*/
YES(1),
/**
* 不可以
*/
NO(0);
private int value;
private Jumpleable(int value) {
this.value = value;
}
public int getValue() {
return this.value;
}
}
package com.yizhi.research.application.eum;
/**
* 调研问题类型
*
* @Author: shengchenglong
* @Date: 2018/3/14 10:58
*/
public enum QuestionType {
/**
* 单选题
*/
SINGLE_OPTION_QUESTION(1),
/**
* 多选题
*/
MULTIPLE_OPTION_QUESTION(2),
/**
* 问答题
*/
ASK_ANSWER_QUESTION(3),
/**
* 打分题
*/
POINT_QUESTION(4);
private int value;
private QuestionType(int value) {
this.value = value;
}
public int getValue() {
return this.value;
}
}
package com.yizhi.research.application.eum;
/**
* @Author: shengchenglong
* @Date: 2018/3/14 18:35
*/
public enum RemindTimeType {
/**
* 开始时间之前
*/
BEFORE_START(1),
/**
* 结束时间之前
*/
BEFORE_END(2),
/**
* 自定义时间
*/
CUSTOM(3);
private int value;
private RemindTimeType(int value) {
this.value = value;
}
public int getValue() {
return this.value;
}
}
package com.yizhi.research.application.eum;
/**
* 调研状态
*
* @Author: shengchenglong
* @Date: 2018/3/16 17:27
*/
public enum ResearchState {
/**
* 草稿
*/
GRAFT(0),
/**
* 上架
*/
RELEASED(1),
/**
* 下架
*/
NO_RELEASED(2);
private int value;
private ResearchState(int value) {
this.value = value;
}
public int getValue() {
return this.value;
}
}
package com.yizhi.research.application.feign;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.research.application.model.AnswerModel;
import com.yizhi.research.application.vo.StatisticResearchMetadataVo;
import com.yizhi.research.application.vo.api.ViewAnswerVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* @Author: shengchenglong
* @Date: 2018/3/19 10:31
*/
@FeignClient(name = "research", contextId = "ResearchAnswerClient")
public interface ResearchAnswerClient {
/**
* 学员提交调研问卷答案
*
* @param answerModel
* @return
*/
@PostMapping("/researchAnswer/submit")
Integer submitAnswer(@RequestBody AnswerModel answerModel);
/**
* 查看提交的问卷答案
*
* @param researchId
* @param accountId
* @return
*/
@GetMapping("/researchAnswer/view")
ViewAnswerVo viewResearch(@RequestParam("researchId") Long researchId, @RequestParam("accountId") Long accountId);
@GetMapping("/researchAnswer/views")
Page<ViewAnswerVo> viewAnswers(@RequestParam("researchId") Long researchId,
@RequestParam("pageNo") Integer start,
@RequestParam("pageSize") Integer end);
@GetMapping("/researchAnswer/view/list")
List<ViewAnswerVo> viewList(@RequestParam("researchId") Long researchId);
@GetMapping("/researchAnswer/views/list")
List<ViewAnswerVo> viewAnswersList(@RequestParam("researchId") Long researchId,
@RequestParam("pageNo") Integer pageNo,
@RequestParam("pageSize") Integer pageSize);
@GetMapping("/researchAnswer/views/count")
Integer viewAnswersCount(@RequestParam("researchId") Long researchId);
@GetMapping("/researchAnswer/selectLearnRecord")
public List<StatisticResearchMetadataVo> selectLearnRecord(@RequestParam("researchId")Long researchId,
@RequestParam("startDate")String startDate,
@RequestParam("endDate")String endDate);
}
package com.yizhi.research.application.feign;
import com.yizhi.research.application.vo.domain.TrResearchAuthorizeVo;
import com.yizhi.research.application.vo.VisibleRangeExport;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* @Author: shengchenglong
* @Date: 2018/6/8 13:36
*/
@FeignClient(name = "research", contextId = "ResearchAuthorizeClient")
public interface ResearchAuthorizeClient {
/**
* 查看可见范围
*
* @param researchId
* @return
*/
@GetMapping("/researchAuthorize/researchId/get")
List<TrResearchAuthorizeVo> getResearchAuthorize(@RequestParam("researchId") Long researchId);
@PostMapping("/researchAuthorize/researchId/insert")
Boolean insertResearchAuthorize(@RequestBody List<TrResearchAuthorizeVo> trResearchAuthorizeVos);
/**
* 可见范围导出
* @param assignmentId
* @return
*/
@GetMapping("/researchAuthorize/export/visiblRange")
public VisibleRangeExport exportVisibleRange(@RequestParam(name="researchId",required=true)Long researchId);
}
package com.yizhi.research.application.feign;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.core.application.vo.DroolsVo;
import com.yizhi.research.application.vo.CalendarTaskParamVo;
import com.yizhi.research.application.vo.domain.ResearchVo;
import com.yizhi.research.application.model.CopyResearchModel;
import com.yizhi.research.application.vo.BaseModel;
import com.yizhi.research.application.vo.api.CheckResearchStateVo;
import com.yizhi.research.application.vo.api.PageVo;
import com.yizhi.research.application.vo.api.SearchVo;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @Author: shengchenglong
* @Date: 2018/3/13 14:26
*/
@FeignClient(name = "research", contextId = "ResearchClient")
public interface ResearchClient {
/**
* 返回插入的调研的 id
*
* @param researchVo
* @return
*/
@PostMapping("/research/insert")
ResearchVo insert(@RequestBody ResearchVo researchVo);
/**
* 分页查询
*
* @param model
* @return
*/
@GetMapping("/research/page/list")
Page<ResearchVo> listPage(@RequestBody BaseModel<Page<ResearchVo>> model);
@GetMapping("/research/page/poolExamList")
Page<Map<String, Object>> getPoolExamList(@RequestParam(value = "name", required = false) String name,
@RequestParam(value = "ids", required = false) List<Long> ids,
@RequestParam(value = "pageNo", required = false) Integer pageNo,
@RequestParam(value = "pageSize", required = false) Integer pageSize);
/**
* 批量删除
*
* @param ids
* @return
*/
@PostMapping("/research/batch/delete")
Integer batchDelete(@RequestBody List<Long> ids);
// /**
// * 上架或下架
// *
// * @param id
// * @param state 1:上架,2:下架
// * @return
// */
// @PostMapping("/research/upOrDown")
// Integer upOrDown(@RequestParam("id") Long id, @RequestParam("state") Integer state);
/**
* 查看一个调研,包含提醒
*
* @param id
* @return
*/
@GetMapping("/research/view")
ResearchVo viewOne(@RequestParam("id") Long id);
/**
* 更新一个调研,包含提醒(删除以前的提醒)
*
* @param researchVo
* @return
*/
@PostMapping("/research/update")
int update(@RequestBody ResearchVo researchVo);
/**
* 上架或下架
*
* @param researchVo
* @return
*/
@PostMapping("/research/release")
ResearchVo upOrDown(@RequestBody ResearchVo researchVo);
/**
* 复制调研
*
* @param model
* @return
*/
@PostMapping("/research/copy")
ResearchVo copy(@RequestBody CopyResearchModel model);
/**
* 学员端分页列表
*
* @param pageVo
* @return
*/
@GetMapping("/research/api/page/list")
Page<ResearchVo> apiListPage(@RequestBody BaseModel<PageVo> model);
/**
* 学员端模糊查询分页列表
*
* @param searchVo
* @return
*/
@GetMapping("/research/api/search/page/list")
Page<ResearchVo> apiSearchPage(@RequestBody SearchVo searchVo);
/**
* 学员端查询我的调研个数
*
* @return
*/
@GetMapping("/research/api/count")
Integer searchUnfinishCount(@RequestBody RequestContext context);
/**
* 检查学员的某个调研的状态
*
* @return
*/
@PostMapping("/research/state/check")
Integer checkResearchState(@RequestBody CheckResearchStateVo checkResearchStateVo);
/**
* 获取管理端报表列表
*
* @param startDate
* @param endDate
* @param kwd
* @param pageSize
* @param pageNo
* @return
*/
@GetMapping("/research/group")
Page<ResearchVo> getResearchList(@RequestParam(name = "startDate", required = false) String startDate, @RequestParam(name = "endDate", required = false) String endDate,
@RequestParam(name = "kwd", required = false) String kwd, @RequestParam(name = "pageSize", required = false, defaultValue = "10") Integer pageSize,
@RequestParam(name = "pageNo", required = false, defaultValue = "1") Integer pageNo, @RequestParam(name = "orgIds", required = false) List<Long> orgIds,
@RequestParam(name = "companyId", required = true) Long companyId, @RequestParam(name = "siteId", required = true) Long siteId
);
/**
* 某个调研的人员完成情况
*
* @param researchId
* @return
*/
@GetMapping("/research/group/view")
ResearchVo getResearchView(@RequestParam(name = "researchId", required = true) Long researchId);
@GetMapping("/research/by/new/server")
public List<Map<String, Object>> getServerByCompanyIdAndIds(@RequestParam("companyId")Long companyId,@RequestParam(name="ids",required=false)List<Long> ids);
@PostMapping("/research/delete")
public Integer delete(Map map);
@GetMapping("/research/getAllResearch")
public List<ResearchVo> getAllResearch();
@GetMapping("/research/selectRecordMinTime")
public Date selectRecordMinTime();
@GetMapping ("/research/getAllSiteId")
public List<Long> getAllSiteId();
/**
* 根据调研id 返回对应的积分
* @param ids
* @return
*/
@GetMapping("/research/getPointById")
public Integer getPointByIds(@RequestParam(value = "ids",required = false) List<Long> ids);
@PostMapping("/research/getPageToCalendar")
public Page<ResearchVo> getPageToCalendar(@ApiParam("paramVo") @RequestBody CalendarTaskParamVo paramVo);
@GetMapping("/research/getPageByDrools")
Page<DroolsVo> getPageByDrools(@RequestParam("field") String field,
@RequestParam(value = "value", required = false) String value,
@RequestParam("pageNo") Integer pageNo,
@RequestParam("pageSize") Integer pageSize);
}
package com.yizhi.research.application.feign;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.research.application.vo.domain.TrResearchQuestionVo;
import com.yizhi.research.application.model.ModifyQuestionModel;
import com.yizhi.research.application.vo.api.MyQuestion;
import com.yizhi.research.application.vo.api.QuestionJumpVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
import java.util.Map;
/**
* @Author: shengchenglong
* @Date: 2018/3/14 15:19
*/
@FeignClient(name = "research", contextId = "ResearchQuestionClient")
public interface ResearchQuestionClient {
/**
* 批量插入问题
*
* @param questions
* @return
*/
@PostMapping("/researchQuestion/batch/insert")
int batchInsert(@RequestBody List<TrResearchQuestionVo> questions);
/**
* 问题更新
*
* @param modifyQuestionModel 删除的序号,所有的问题(包括没变的,新增的,修改的)
* @return
*/
@PostMapping("/researchQuestion/update")
int batchUpdate(@RequestBody ModifyQuestionModel modifyQuestionModel);
/**
* 分页查询 一个调研下面的问题
*
* @param page 只有一个
* @return
*/
@GetMapping("/researchQuestion/page/list")
List<TrResearchQuestionVo> listPage(@RequestBody Page<TrResearchQuestionVo> page);
/**
* 根据调研id查询所有
*
* @param researchId
* @return
*/
@GetMapping("/researchQuestion/list")
List<TrResearchQuestionVo> listAll(@RequestParam("researchId") Long researchId);
/**
* 选择跳题时的问题列表
*
* @param id 需要跳题的问题id
* @return
*/
@GetMapping("/researchQuestion/jump/question/list")
List<TrResearchQuestionVo> listAllForJump(@RequestParam("id") Long id);
/**
* 调研逐题显示下一题或者上一题
*/
@GetMapping("/researchQuestion/last/next")
MyQuestion lastAndNext(
@RequestBody MyQuestion myQuestion
);
@PostMapping("/researchQuestion/jump/question/update")
Integer updateQuestionJump(@RequestBody QuestionJumpVo vo);
@GetMapping("/researchQuestion/option/get")
Map<String,Object> getOptionByQuestionId(@RequestParam("questionId") Long id);
@GetMapping("/researchQuestion/list/all")
List<TrResearchQuestionVo> list(@RequestParam("researchId") Long researchId);
@GetMapping("/researchQuestion/getFinishedAccountIds")
List<Long> getFinishedAccountIds(@RequestParam("researchId") Long researchId,@RequestParam("companyId") Long companyId,@RequestParam("siteId")Long siteId);
}
package com.yizhi.research.application.feign;
import com.yizhi.research.application.vo.domain.TrResearchQuestionOptionVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@FeignClient(name = "research", contextId = "ResearchQuestionOptionClient")
public interface ResearchQuestionOptionClient {
/**
* 根据调研id查询所有的选项
* @param researchId
* @return
*/
@GetMapping("/trResearchQuestionOption/all")
List<TrResearchQuestionOptionVo> listOption(@RequestParam("researchId") Long researchId);
}
package com.yizhi.research.application.feign;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.research.application.vo.domain.StatisticsResearchVo;
import com.yizhi.research.application.vo.report.DownloadParamsVoOnTime;
import com.yizhi.util.application.domain.Response;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@FeignClient(name= "research")
public interface ResearchReportClient {
/**
* 异步加载统计
* @param startDate
* @param endDate
* @return
*/
@GetMapping("/statisticsResearch/asynchronous/load/data")
public Response<String> asynchronousResearch(@RequestParam("startDate") String startDate, @RequestParam("endDate") String endDate);
@GetMapping("/statisticsResearch/group")
Page<StatisticsResearchVo> researchGroup(@RequestParam(name = "startDate", required = false) String startDate,
@RequestParam(name = "endDate", required = false) String endDate,
@RequestParam(name = "kwd", required = false) String kwd,
@RequestParam(name = "pageSize", required = false, defaultValue = "10") Integer pageSize,
@RequestParam(name = "pageNo", required = false, defaultValue = "1") Integer pageNo,
@RequestParam(name= "companyId" ,required = true) Long companyId,
@RequestParam(name= "orgIds" ,required = false) List<Long> orgIds,
@RequestParam(name= "siteId" ,required = true) Long siteId);
@GetMapping("/statisticsResearch/group/view")
Page<StatisticsResearchVo> researchGroupView(
@RequestParam(name = "startDate", required = false) String startDate,
@RequestParam(name = "endDate", required = false) String endDate,
@RequestParam(name= "researchId" ,required = true) Long researchId,
@RequestParam(name = "orgNameorOrgCode" ,required = false) String orgNameorOrgCode,
@RequestParam(name = "accountName" ,required = false )String accountName,
@RequestParam(name= "state" ,required = false) Integer state,
@RequestParam(name = "pageSize", required = false, defaultValue = "10") Integer pageSize,
@RequestParam(name = "pageNo", required = false, defaultValue = "1") Integer pageNo);
@GetMapping("/statisticsResearch/group/view/state/count")
StatisticsResearchVo getCanStateCount(
@RequestParam(name = "startDate", required = false) String startDate,
@RequestParam(name = "endDate", required = false) String endDate,
@RequestParam(name= "researchId" ,required = true) Long researchId,
@RequestParam(name = "orgNameorOrgCode" ,required = false) String orgNameorOrgCode,
@RequestParam(name = "accountName" ,required = false )String accountName,
@RequestParam(name= "state" ,required = false) Integer state);
@GetMapping("/statisticsResearch/export/research/accounts")
List<StatisticsResearchVo> researchList(
@RequestParam(name = "startDate", required = false) String startDate,
@RequestParam(name = "endDate", required = false) String endDate,
@RequestParam(name= "researchId" ,required = true) Long researchId,
@RequestParam(name = "orgNameorOrgCode" ,required = false) String orgNameorOrgCode,
@RequestParam(name = "accountName" ,required = false )String accountName,
@RequestParam(name= "state" ,required = false) Integer state);
@ApiOperation(value = "下载调研参与人员的统计个数" ,notes = "下载参与人员的统计个数" ,response = StatisticsResearchVo.class)
@GetMapping("/statisticsResearch/export/research/accounts/count")
public Integer researchViewCount(
@RequestParam(name = "startDate", required = false) String startDate,
@RequestParam(name = "endDate", required = false) String endDate,
@RequestParam(name= "researchId" ,required = true) Long researchId,
@RequestParam(name = "orgNameorOrgCode" ,required = false) String orgNameorOrgCode,
@RequestParam(name = "accountName" ,required = false )String accountName,
@RequestParam(name= "state" ,required = false) Integer state
);
@ApiOperation(value = "调研参与人员的统计分页列表" ,notes = "调研参与人员的统计分页列表" ,response = StatisticsResearchVo.class)
@GetMapping("/statisticsResearch/group/views")
List<StatisticsResearchVo> researchViews(
@RequestParam(name = "startDate", required = false) String startDate,
@RequestParam(name = "endDate", required = false) String endDate,
@RequestParam(name= "researchId" ,required = true) Long researchId,
@RequestParam(name = "orgNameorOrgCode" ,required = false) String orgNameorOrgCode,
@RequestParam(name = "accountName" ,required = false )String accountName,
@RequestParam(name= "state" ,required = false) Integer state,
@RequestParam(name = "pageSize", required = false, defaultValue = "10") Integer pageSize,
@RequestParam(name = "pageNo", required = false, defaultValue = "1") Integer pageNo);
@ApiOperation (value = "导出调研明细", notes = "导出调研明细")
@PostMapping("/statisticsResearch/details/Excel/onTime")
public String reportResearchDetails(@RequestBody DownloadParamsVoOnTime vo);
@ApiOperation (value = "导出调研分析", notes = "导出调研分析")
@PostMapping("/statisticsResearch/analyze/Excel/onTime")
public String reportResearchanalyze(@RequestBody DownloadParamsVoOnTime vo);
}
package com.yizhi.research.application.model;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.research.application.vo.api.AnswerVo;
import lombok.Data;
import java.util.Date;
/**
* @Author: shengchenglong
* @Date: 2018/3/19 11:14
*/
@Data
public class AnswerModel {
private AnswerVo answerVo;
private RequestContext context;
private Date date;
}
package com.yizhi.research.application.model;
import com.yizhi.core.application.context.RequestContext;
import lombok.Data;
import java.util.Date;
/**
* @Author: shengchenglong
* @Date: 2018/3/17 12:16
*/
@Data
public class CopyResearchModel {
private RequestContext requestContext;
private Date date;
private Long researchId;
}
package com.yizhi.research.application.model;
import lombok.Data;
import java.util.List;
/**
* @Author: shengchenglong
* @Date: 2018/5/23 14:16
*/
@Data
public class DataRangeModel {
/**
* 是否管理整个站点
*/
private Boolean admin;
/**
* 所属站点id
*/
private Long siteId;
/**
* 所属部门id
*/
private List<Long> orgIds;
}
package com.yizhi.research.application.model;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.research.application.vo.domain.TrResearchQuestionVo;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @Author: shengchenglong
* @Date: 2018/3/16 15:43
*/
@Data
public class ModifyQuestionModel {
/**
* 所属调研id
*/
private Long researchId;
/**
* 删除的id集合
*/
private List<Long> deletedIds;
/**
* 新增的问题,修改的问题(修改仅仅涉及序号)
*/
private List<TrResearchQuestionVo> questions;
private RequestContext requestContext;
private Date date;
}
package com.yizhi.research.application.vo;
import com.yizhi.core.application.context.RequestContext;
import lombok.Data;
import java.util.Date;
/**
* @Author: shengchenglong
* @Date: 2018/3/27 15:55
*/
@Data
public class BaseModel<T> {
private RequestContext context;
private Date date;
private T obj;
}
package com.yizhi.research.application.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
public class CalendarTaskParamVo {
@ApiModelProperty("时间参数")
public Date date;
@ApiModelProperty("业务类型")
public Integer taskType = 0;
@ApiModelProperty("当前页数")
public Integer pageNo;
@ApiModelProperty("页内条数")
public Integer pageSize;
}
package com.yizhi.research.application.vo;
import java.util.Arrays;
import java.util.List;
/**
*
*/
public enum EvenType {
COURSE_UP(1L,Arrays.asList(1,2)),//"课程上架通知"
COURSE_FINISH(2L, Arrays.asList(1,2)),//课程完成通知
ENROLL_START(3L, Arrays.asList(1,3,4,5)),//报名开始
TRAINING_AUDIT_PASS(4L, Arrays.asList(1,3,4,5)),//项目审核通过通知
TRAINING_AUDIT_FAIL(5L, Arrays.asList(1,3,4,5)),//项目审核不通过通知
SIGN_SUCCESS(6L, Arrays.asList(1,3,4,5)),//签到成功通知
TRAINING_FINISH(7L, Arrays.asList(1,3,4,5)),//项目完成通知
ASSIGNMENT_AUDIT_FINISH(8L, Arrays.asList(1,6,7,8)),//作业已被批阅通知
EXAM_AUDIT_FINISH(9L, Arrays.asList(1,9,10,11)),//考试已被批阅通知
POINT_CHANGE(10L, Arrays.asList(1,12,13,14));//积分变动原因
//数据库message表的id
private Long key;
//数据库message_parameter表的field_type
private List<Integer> fieldType;
private EvenType(Long key, List<Integer> fieldType) {
this.key = key;
this.fieldType = fieldType;
}
public Long getKey() {
return key;
}
public List<Integer> getName() {
return fieldType;
}
}
package com.yizhi.research.application.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author: shengchenglong
* @Date: 2018/4/11 14:26
*/
@Data
@ApiModel(value = "调研id vo")
public class IdVo {
@ApiModelProperty(value = "调研id")
private Long id;
@ApiModelProperty(value = "积分")
private Integer point;
}
package com.yizhi.research.application.vo;
import com.yizhi.core.application.context.RequestContext;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author hutao123
* @since 2019-09-09
*/
@Data
@Api(tags = "MessageRemindVo", description = "各个业务设置提醒时的数据")
public class MessageRemindVo implements Serializable {
private static final long serialVersionUID = -7621642684091133619l;
@ApiModelProperty(value = "提醒id ")
private Long id;
@ApiModelProperty(value = "消息id")
private Long messageId;
@ApiModelProperty(value = "消息类型:1、自定义消息;2、系统消息;3、事件触发消息")
private Integer messageType;
@ApiModelProperty(value = "用户id 主要用于触发消息 个人完成发消息类型")
private Long accountId;
@ApiModelProperty(value = "消息内容(完整版)")
private String messageContext;
@ApiModelProperty(value = "关联模块类型(1:学习计划、2:考试、3:调研、4、投票5:报名、6:作业、7:签到、8:项目、9:直播、10:积分)")
private Integer relationType;
@ApiModelProperty(value = "关联的业务id: 比如调研id")
private Long relationId;
@ApiModelProperty(value = "发送方式:1、站内信;2、短信;3、邮件")
private Integer sendType;
@ApiModelProperty(value = "该业务提醒是被关闭,关闭则为true,默认false")
private Boolean hasDeleted = false;
@ApiModelProperty(value = "该业务提醒是否有变化,有则为true,默认false")
private Boolean isChangge = false;
@ApiModelProperty(value = "专门存放提醒时间设置")
private List<MessageTaskRemindVo> messageTaskRemindVos = new ArrayList<>();
@ApiModelProperty(value = "目前只有培训项目需要,计划同步项目可见范围")
private Boolean visibleRangeUpdate = false;
@ApiModelProperty(value = "指定范围(0:全平台,1:指定用户)")
private Integer visibleRange;
@ApiModelProperty(value = "业务参数对象")
private TaskVo taskVo;
@ApiModelProperty(value = "触发消息专用 发送时间")
private Date sendTime;
@ApiModelProperty(value = "是否设置为上架状态")
private Boolean hasUp = false;
@ApiModelProperty(value = "是否是 修改业务状态 ")
private Boolean taskStatusUpdate = false;
@ApiModelProperty(value = "业务状态 1:才允上架许发送(业务上架)0:不允许发送(业务非上架) 仅针对于系统消息")
private Integer taskStatus;
@ApiModelProperty(value = "上下文 必传,主要需要 siteId companyId accountId accountName 都不能是空")
private RequestContext requestContext;
@ApiModelProperty(value = "调研是否为复制类型")
private Boolean isCopy = false;
@ApiModelProperty(value = "复制调研时,旧的调研id")
private Long oldRelationId;
}
package com.yizhi.research.application.vo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author hutao123
* @since 2019-09-09
*/
@Data
@Api(tags = "MessageTaskRemindVo", description = "各个业务设置提醒时的数据")
public class MessageTaskRemindVo implements Serializable {
@ApiModelProperty(value = "待发消息id")
private Long messageRemindId;
@ApiModelProperty(value = "提醒时间事件类型 1:业务开始时间、 2:业务结束时间、3:自定义时间")
private Integer timeEventType;
@ApiModelProperty(value = "发生时间枚举:1:五分钟前、2:十分钟前、3:三十分钟前、4:一个小时前、5:两个小时前、6:一天前、7:两天前")
private Integer timeType;
@ApiModelProperty(value = "最终发送时间")
private Date sendTime;
}
package com.yizhi.research.application.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
public class StatisticResearchMetadataVo {
@ApiModelProperty (value = "调研ID")
private Long researchId;
@ApiModelProperty (value = "用户ID")
private Long accountId;
@ApiModelProperty (value = "应参加状态,1应参加 0不应参加(用于统计:应参加人数,MAX取值)")
private Integer canState;
@ApiModelProperty (value = "实际参加状态,1参加 0未参加(用于统计:实参加人数,MAX取值)")
private Integer joinState;
@ApiModelProperty (value = "提交时间")
private Date finishTime;
@ApiModelProperty (value = "调研参加时间")
private Date researchAnswerCreateTime;
@ApiModelProperty (value = "记录统计时间")
private Date recordCreateTime;
}
package com.yizhi.research.application.vo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 消息
* </p>
*
* @author hutao123
* @since 2019-09-09
*/
@Data
@Api(tags = "TaskVo", description = "业务参数对象")
public class TaskVo implements Serializable {
@ApiModelProperty(value = "业务名称")
private String taskName;
@ApiModelProperty(value = "业务开始时间")
private Date taskStratTime;
@ApiModelProperty(value = "业务结束时间")
private Date taskEndTime;
@ApiModelProperty(value = "业务得分")
private Double taskScore;
@ApiModelProperty(value = "业务发生原因(主要用于积分)")
private String reason;
@ApiModelProperty(value = "业务时间(主要用于积分)")
private Date taskTime;
@ApiModelProperty(value = "事件类型")
private EvenType evenType;
}
package com.yizhi.research.application.vo;
import java.util.List;
import com.yizhi.core.application.context.RequestContext;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 2019/09/19
* @author wangfeida
*
*/
@Data
public class VisibleRangeExport {
@ApiModelProperty(name="bizId",value="具体业务id")
private Long bizId;
@ApiModelProperty(name="bizName",value="具体业务名字")
private String bizName;
@ApiModelProperty(name="个人ID集合",value="个人id集合")
private List<Long> accountIds;
@ApiModelProperty(name="组织ID集合",value="组织ID集合")
private List<Long> orgIds;
@ApiModelProperty(name="上下文对象",value="上下文对象")
private RequestContext context;
}
package com.yizhi.research.application.vo.api;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author: shengchenglong
* @Date: 2018/3/19 11:06
*/
@Data
@Api(tags = "AnswerQuestionItemVo", description = "每个问题的答案vo")
public class AnswerQuestionItemVo {
@ApiModelProperty(value = "选项id", notes = "单选题和多选题:就是问题的答案;打分题:就是对应的打分项id")
private Long optionId;
@ApiModelProperty(value = "问题答案", notes = "问答题有效,选择题选项允许填空时有效")
private String content;
@ApiModelProperty(value = "选项打分", notes = "打分题有效")
private Integer score;
}
package com.yizhi.research.application.vo.api;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @Author: shengchenglong
* @Date: 2018/3/19 11:03
*/
@Data
@Api(tags = "AnswerQuestionVo", description = "调研问卷答案问题vo")
public class AnswerQuestionVo {
@ApiModelProperty(value = "问题id 新增不穿,更新必传", required = true)
private Long questionId;
@ApiModelProperty(value = "是否是第一题 1是")
private Integer isFrist =0;
@ApiModelProperty(value = "是否是最后一题 1是")
private Integer isLast =0;
@ApiModelProperty(value = "问题类型,1单选题、2多选题、3问答题、4打分题", required = true)
private Integer questionType;
@ApiModelProperty(value = "每个问题的答案vo,多选题和打分题可能会有多个", required = true)
private List<AnswerQuestionItemVo> questionItems;
@ApiModelProperty(value = "回答题目的id")
private Long answerQuestionId;
}
package com.yizhi.research.application.vo.api;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @Author: shengchenglong
* @Date: 2018/3/19 11:02
*/
@Data
@Api(tags = "AnswerVo", description = "调研问卷答案vo")
public class AnswerVo {
@ApiModelProperty(value = "所属调研id", required = true)
private Long researchId;
@ApiModelProperty(value = "调研终端类型,1微信 2PC 3APP")
private Integer terminalType;
@ApiModelProperty(value = "开始时间", required = true)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date startTime;
@ApiModelProperty(value = "提交时间", required = true)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date submitTime;
@ApiModelProperty(value = "问题集合", required = true)
private List<AnswerQuestionVo> questions;
}
package com.yizhi.research.application.vo.api;
import com.yizhi.core.application.context.RequestContext;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@Api(tags = "CheckResearchStateVo", description = "检查某个学员的某个调研状态")
public class CheckResearchStateVo {
RequestContext context;
@ApiModelProperty(value = "所属调研id", required = true)
Long researchId;
}
package com.yizhi.research.application.vo.api;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.research.application.vo.domain.TrResearchQuestionVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
public class MyQuestion {
@ApiModelProperty(value = "调研id")
private Long researchId;
@ApiModelProperty(value = "跳转的题号")
private Integer num;
@ApiModelProperty(value = "回答调研的开始时间")
private Date startDate;
@ApiModelProperty(value = "回答调研的结束时间")
private Date endDate;
@ApiModelProperty(value = "调研终端类型,1微信 2PC 3APP")
private Integer terminaltype;
@ApiModelProperty(value = "问题对象,下一题时显示给前端", required = true)
private TrResearchQuestionVo question;
private RequestContext context;
@ApiModelProperty(value = "题目")
private AnswerQuestionVo answerQuestionVo;
}
package com.yizhi.research.application.vo.api;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
/**
* @Author: shengchenglong
* @Date: 2018/3/17 16:55
*/
@Data
public class PageVo {
private Long accountId;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date date;
private Integer state;
private Integer pageNo;
private Integer pageSize;
}
package com.yizhi.research.application.vo.api;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.research.application.vo.domain.TrResearchQuestionOptionVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class QuestionJumpVo {
@ApiModelProperty(value = "当前问题id")
private Long questionId;
@ApiModelProperty(value = "问题选项")
private List<TrResearchQuestionOptionVo> options;
@ApiModelProperty(value = "根据指定跳题策略时的题号")
private Integer jumpNo;
@ApiModelProperty(value = "跳题策略类型 1表示根据选项跳题,2表示指定跳题")
private Integer type;
private RequestContext context;
}
package com.yizhi.research.application.vo.api;
import com.yizhi.core.application.context.RequestContext;
import lombok.Data;
/**
* @Author: shengchenglong
* @Date: 2018/3/19 09:47
*/
@Data
public class SearchVo {
private String name;
private RequestContext context;
private Integer pageNo;
private Integer pageSize;
}
package com.yizhi.research.application.vo.api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @Author: shengchenglong
* @Date: 2018/5/8 09:57
*/
@ApiModel("查看提交的问卷答案--答案下的问题选项")
@Data
public class ViewAnswerQuestionOptionVo {
@ApiModelProperty(value = "选项ID主键")
private Long id;
@ApiModelProperty(value = "选项排序,不能为空")
private Integer no;
@ApiModelProperty(value = "选项内容,最多支持输入500汉字")
private String content;
@ApiModelProperty(value = "跳题题号(单选题有效),问题设置了跳题才有效,大于当前题号")
private Integer jumpNum;
@ApiModelProperty(value = "是否正确答案(选择题有效),0不是 1是")
private Integer correct;
@ApiModelProperty(value = "是否允许填空")
private Integer editable;
@ApiModelProperty(value = "是否被学员选中")
private Boolean answerChecked = false;
@ApiModelProperty(value = "学员回答的内容", notes = "问答题有效")
private String answerContent;
@ApiModelProperty(value = "学员打分分数", notes = "打分题有效")
private Integer answerScore;
@ApiModelProperty(value = "最大分数",notes = "打分题有效")
private Integer maxScore = 0;
@ApiModelProperty(value = "最小分数",notes = "打分题有效")
private Integer minScore = 0;
@ApiModelProperty(value ="总分", notes = "总分")
private Integer totalSocre = 0;
@ApiModelProperty(value = "选中个数" , notes = "选中个数")
private Integer checkCount = 0;
@ApiModelProperty(value = "是否是其他选项")
private Integer isOther = 0;
}
package com.yizhi.research.application.vo.api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @Author: shengchenglong
* @Date: 2018/5/8 09:43
*/
@ApiModel("查看提交的问卷答案--答案下的问题")
@Data
public class ViewAnswerQuestionVo {
@ApiModelProperty(value = "问题_ID")
private Long id;
@ApiModelProperty(value = "题号")
private Integer no;
@ApiModelProperty(value = "问题类型,1单选题、2多选题、3问答题、4打分题")
private Integer type;
@ApiModelProperty(value = "问题内容")
private String content;
@ApiModelProperty(value = "存放附件路径,附件格式:音频、视频、图片")
private String contentAppendixUrl;
@ApiModelProperty(value = "是否必答,0非必答 1必答,默认0")
private Integer needAnswer;
@ApiModelProperty(value = "多选题:最多选择几项,0不选中 >0选中,默认0")
private Integer maxSelectItem;
@ApiModelProperty(value = "多选题:最少选择几项,0不选中 >0选中,默认0")
private Integer minSelectItem;
@ApiModelProperty(value = "答案下的问题选项集合", notes = "选择题、打分题有效")
private List<ViewAnswerQuestionOptionVo> options;
@ApiModelProperty(value = "问答题的回答内容")
private String answerContent;
@ApiModelProperty(value = "该问题有效回答的个数")
private Integer validCount = 0;
@ApiModelProperty(value = "用户id")
private Long accountId;
}
package com.yizhi.research.application.vo.api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @Author: shengchenglong
* @Date: 2018/5/8 09:40
*/
@ApiModel("查看提交的问卷答案--答案主体")
@Data
public class ViewAnswerVo {
@ApiModelProperty(value = "答卷ID,主键")
private Long id;
@ApiModelProperty(value = "调研名称")
private String name;
@ApiModelProperty(value = "用户的id")
private Long accountId;
@ApiModelProperty(value = "开始时间,用户进入考试的时间")
private Date startTime;
@ApiModelProperty(value = "提交时间")
private Date submitTime;
@ApiModelProperty(value = "调研用时,分钟")
private Integer duration;
@ApiModelProperty(value = "调研终端类型,1微信 2PC 3APP")
private Integer terminalType;
@ApiModelProperty(value = "答案下的问题集合")
private List<ViewAnswerQuestionVo> answerQuestions;
}
package com.yizhi.research.application.vo.domain;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import com.yizhi.research.application.vo.MessageRemindVo;
import com.yizhi.research.application.vo.manage.RemindVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* <p>
* 调研
* </p>
*
* @author shengchenglong
* @since 2018-03-12
*/
@Data
@Api(tags = "ResearchVo", description = "调研")
@TableName("resarch")
public class ResearchVo {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "调研主键ID,主键")
private Long id;
@ApiModelProperty(value = "培训项目ID")
private Long trainingProjectId;
@ApiModelProperty(value = "调研编码,系统将自动生成调研编码;编码规则,按创建顺序累加,例如DY000001,DY000002")
private String researchNo;
@ApiModelProperty(value = "积分,默认0")
private Integer point;
@ApiModelProperty(value = "提醒设置,0否 1是,默认0")
private Integer remind;
@ApiModelProperty(value = "开启邮件提醒(0:否,1是,默认否)")
private Integer enableMailRemind;
@ApiModelProperty(value = "邮件提醒,模板id")
private Long mailTemplateId;
@ApiModelProperty(value = "开启站内提醒(0:否,1是,默认否)")
private Integer enableAppRemind;
@ApiModelProperty(value = "站内消息提醒模板id")
private Long appTemplateId;
@ApiModelProperty(value = "调研名称")
private String name;
@ApiModelProperty(value = "开始时间")
private Date startTime;
@ApiModelProperty(value = "结束时间")
private Date endTime;
@ApiModelProperty(value = "可见范围,1平台用户可见(企业下所有人员) 2指定学员可见")
private Integer visibleRange;
@ApiModelProperty(value = "调研说明")
private String content;
@ApiModelProperty(value = "调研备注")
private String remark;
@ApiModelProperty(value = "状态,0草稿 1上架 2下架")
private Integer state;
@ApiModelProperty(value = "删除状态:0未删,1已删(默认0)")
private Integer deleted;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人ID")
private Long createById;
@ApiModelProperty(value = "创建人姓名")
private String createByName;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人ID")
private Long updateById;
@ApiModelProperty(value = "修改人姓名")
private String updateByName;
@ApiModelProperty(value = "下架时间")
private Date unReleaseTime;
@ApiModelProperty(value = "下架人ID")
private Long unReleaseById;
@ApiModelProperty(value = "下架人姓名")
private String unReleaseByName;
@ApiModelProperty(value = "发布时间")
private Date releaseTime;
@ApiModelProperty(value = "发布人ID")
private Long releaseById;
@ApiModelProperty(value = "发布人姓名")
private String releaseByName;
@ApiModelProperty(value = "企业_ID")
private Long companyId;
@ApiModelProperty(value = "部门_ID")
private Long orgId;
@ApiModelProperty(value = "站点_ID")
private Long siteId;
/**
* 该调研可参加人数
*/
@ApiModelProperty(value = "可参加人数")
private Integer count;
/**
* 实际参加人数
*/
@ApiModelProperty(value = "实际参加人数")
private Integer realCount;
/**
* 提醒集合,不持久化
*/
@ApiModelProperty(value = "消息提醒")
private List<TrResearchRemindVo> reminds;
/**
* 关联人员集合
*/
@ApiModelProperty(value = "关联人员")
private List<TrResearchAuthorizeVo> authorizes;
@ApiModelProperty(value = "关联人员id")
private List<Long> relationIds;
/**
* 问题集合,不持久化
*/
@ApiModelProperty(value = "消息提醒")
private List<TrResearchQuestionVo> questions;
@ApiModelProperty(value = "改调研的答卷")
private List<TrResearchAnswerVo> trResearchAnswerVos;
@ApiModelProperty(value = "搜索列表显示状态:1已完成,2进行中,3已过期")
private Integer finishState;
@ApiModelProperty(value = "完成时间")
private Date finishTime;
@ApiModelProperty(value = "提醒vo")
private RemindVo remindVo;
@ApiModelProperty(value = "各个业务设置提醒时的数据")
private MessageRemindVo messageRemindVo;
@ApiModelProperty(value = "关键字,逗号分隔")
private String keywords;
@ApiModelProperty(value = "是否启用在日历任务中显示")
private Integer enableTask;
@ApiModelProperty(value = "调研logo")
private String image;
}
package com.yizhi.research.application.vo.domain;
import com.baomidou.mybatisplus.annotations.TableName;
import io.swagger.annotations.Api;
import lombok.Data;
@Data
@Api(tags = "StatisticsResearchLearnVo", description = "调研明细")
@TableName("statistics_research_learn")
public class StatisticsResearchLearnVo extends StatisticsResearchVo {
private static final long serialVersionUID = -1170397195805248674L;
}
package com.yizhi.research.application.vo.domain;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
@Api(tags = "StatisticsResearchVo", description = "")
@TableName("statistics_research")
public class StatisticsResearchVo {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
private Long id;
@ApiModelProperty(value = "调研ID")
private Long researchId;
@ApiModelProperty(value = "调研编码")
private String researchNo;
@ApiModelProperty(value = "调研名称")
private String researchName;
@ApiModelProperty(value = "调研开始时间")
private Date researchStartTime;
@ApiModelProperty(value = "调研结束时间")
private Date researchEndTime;
@ApiModelProperty(value = "创建调研的企业ID")
private Long researchCompanyId;
@ApiModelProperty(value = "创建调研的站点ID")
private Long researchSiteId;
@ApiModelProperty(value = "创建调研的组织ID")
private Long researchOrgId;
@ApiModelProperty(value = "调研创建时间")
private Date researchCreateTime;
@ApiModelProperty(value = "用户ID")
private Long accountId;
@ApiModelProperty(value = "用户名")
private String accountName;
@ApiModelProperty(value = "用户姓名")
private String accountFullName;
@ApiModelProperty(value = "用户状态")
private Integer accountState;
@ApiModelProperty(value = "工号")
private String accountWorkNum;
@ApiModelProperty(value = "学员企业ID")
private Long accountCompanyId;
@ApiModelProperty(value = "学员企业ID")
private Long accountSiteId;
@ApiModelProperty(value = "学员组织ID")
private Long accountOrgId;
@ApiModelProperty(value = "所在部门")
private String orgName;
@ApiModelProperty(value = "部门所有父节点名称")
private String orgParentNames;
@ApiModelProperty(value = "应参加状态,1应参加 0不应参加(用于统计:应参加人数,MAX取值)")
private Integer canState;
@ApiModelProperty(value = "应参加人数")
private Integer canStateCount;
@ApiModelProperty(value = "实际参加状态,1参加 0未参加(用于统计:实参加人数,MAX取值)")
private Integer joinState;
@ApiModelProperty(value = "实际参加人数")
private Integer joinStateCount;
@ApiModelProperty(value = "调研完成时间")
private Date finishTime;
@ApiModelProperty(value = "调研序号")
private Integer index;
}
package com.yizhi.research.application.vo.domain;
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import lombok.Data;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
/**
* <p>
* 答案选项
* </p>
*
* @author shengchenglong123
* @since 2018-03-19
*/
@Data
@Api(tags = "TrResearchQuestionResult", description = "答案选项")
@TableName("tr_research_answer_question_result")
public class TrResearchAnswerQuestionResultVo extends Model<TrResearchAnswerQuestionResultVo> {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "答案ID,主键")
private Long id;
@ApiModelProperty(value = "冗余调研id")
private Long researchId;
@ApiModelProperty(value = "冗余answerId")
private Long answerId;
@ApiModelProperty(value = "答案题目_ID,外键")
private Long answerQuestionId;
@ApiModelProperty(value = "问题类型,1单选题、2多选题、3问答题、4打分题")
private Integer questionType;
@ApiModelProperty(value = "单选题和多选题,存放问题选中选项的ID")
private Long optionId;
@ApiModelProperty(value = "问答题,存放回答内容(question_type=3)")
private String content;
@ApiModelProperty(value = "打分题,学员给的分值")
private Integer score;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人ID")
private Long createById;
@ApiModelProperty(value = "创建人姓名")
private String createByName;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人ID")
private Long updateById;
@ApiModelProperty(value = "修改人姓名")
private String updateByName;
@Override
protected Serializable pkVal() {
return this.id;
}
}
package com.yizhi.research.application.vo.domain;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* <p>
* 答案题目
* </p>
*
* @author shengchenglong
* @since 2018-03-12
*/
@Data
@Api(tags = "TrResearchAnswerQuestionVo", description = "答案题目")
@TableName("tr_research_answer_question")
public class TrResearchAnswerQuestionVo extends Model<TrResearchAnswerQuestionVo> {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "答卷题目ID,主键")
private Long id;
@ApiModelProperty(value = "冗余调研id")
private Long researchId;
@ApiModelProperty(value = "答卷_ID,外键")
private Long answerId;
@ApiModelProperty(value = "问题_ID,外键")
private Long questionId;
@ApiModelProperty(value = "学员_ID")
private Long accountId;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人ID")
private Long createById;
@ApiModelProperty(value = "创建人姓名")
private String createByName;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人ID")
private Long updateById;
@ApiModelProperty(value = "修改人姓名")
private String updateByName;
@ApiModelProperty(value = "问题答案集合,不持久化")
private List<TrResearchAnswerQuestionResultVo> questionResults;
@Override
protected Serializable pkVal() {
return this.id;
}
}
package com.yizhi.research.application.vo.domain;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* <p>
* 答卷
* </p>
*
* @author shengchenglong
* @since 2018-03-12
*/
@Data
@Api(tags = "TrResearchAnswerVo", description = "答卷")
@TableName("tr_research_answer")
public class TrResearchAnswerVo extends Model<TrResearchAnswerVo> {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "答卷ID,主键")
private Long id;
@ApiModelProperty(value = "调研主键_ID,外键")
private Long researchId;
@ApiModelProperty(value = "调研名称")
private String name;
@ApiModelProperty(value = "学员_ID")
private Long accountId;
@ApiModelProperty(value = "开始时间,用户进入考试的时间")
private Date startTime;
@ApiModelProperty(value = "提交时间")
private Date submitTime;
@ApiModelProperty(value = "调研用时,分钟")
private Integer duration;
@ApiModelProperty(value = "调研终端类型,1微信 2PC 3APP")
private Integer terminalType;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人ID")
private Long createById;
@ApiModelProperty(value = "创建人姓名")
private String createByName;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人ID")
private Long updateById;
@ApiModelProperty(value = "修改人姓名")
private String updateByName;
@ApiModelProperty(value = "企业_ID")
private Long companyId;
@ApiModelProperty(value = "部门_ID")
private Long orgId;
@ApiModelProperty(value = "站点_ID")
private Long siteId;
@ApiModelProperty(value = "是否完成 1:已完成(默认) 0:未完成 2:已删除")
private Integer finish;
@ApiModelProperty(value = "该调研答卷下关联的问题,不持久化")
private List<TrResearchAnswerQuestionVo> answerQuestions;
@Override
protected Serializable pkVal() {
return this.id;
}
}
package com.yizhi.research.application.vo.domain;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 调研用户范围
* </p>
*
* @author shengchenglong
* @since 2018-03-12
*/
@Data
@Api(tags = "TrResearchAuthorizeVo", description = "调研用户范围")
@TableName("tr_research_authorize")
public class TrResearchAuthorizeVo extends Model<TrResearchAuthorizeVo> {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
private Long id;
@ApiModelProperty(value = "调研主键_ID,外键")
private Long researchId;
@ApiModelProperty(value = "1. 部门,2.用户,3.用户组")
private Integer type;
@ApiModelProperty(value = "关联id,类型由type判定")
private Long relationId;
@ApiModelProperty(value = "所属站点id")
private Long siteId;
@ApiModelProperty(value = "状态,0删除 1有效(默认有效)")
private Integer state;
@ApiModelProperty(value = "关联人员名称")
private String name;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人ID")
private Long createById;
@ApiModelProperty(value = "创建人姓名")
private String createByName;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人ID")
private Long updateById;
@ApiModelProperty(value = "修改人姓名")
private String updateByName;
@ApiModelProperty(value = "用户名")
private String fullName;
@ApiModelProperty(value = "工号")
private String workNum;
@Override
protected Serializable pkVal() {
return this.id;
}
}
package com.yizhi.research.application.vo.domain;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 只对题型是:单选题、多选题和打分题
* </p>
*
* @author shengchenglong
* @since 2018-03-12
*/
@Data
@Api(tags = "TrResearchQuestionOptionVo", description = "只对题型是:单选题、多选题和打分题")
@TableName("tr_reseach_question_option")
public class TrResearchQuestionOptionVo extends Model<TrResearchQuestionOptionVo> {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "选项ID主键")
private Long id;
@ApiModelProperty(value = "所属调研,冗余字段")
private Long researchId;
@ApiModelProperty(value = "问题主键_ID,外键")
private Long questionId;
@ApiModelProperty(value = "问题类型,1单选题、2多选题、3问答题、4打分题")
private Integer questionType;
@ApiModelProperty(value = "选项排序,不能为空")
private Integer no;
@ApiModelProperty(value = "允许填空,对单选和多选有效,0不允许 1允许,默认0")
private Integer editable;
@ApiModelProperty(value = "是否是必填 0 不是 1是")
private Integer required;
@ApiModelProperty(value = "是否是其他选项 0不是 1 是")
private Integer isOther;
@ApiModelProperty(value = "选项内容,最多支持输入500汉字")
private String content;
@ApiModelProperty(value = "最低分值(打分题有效),只对打分题有效")
private Integer minScore;
@ApiModelProperty(value = "最高分值(打分题有效),只对打分题有效")
private Integer maxScore;
@ApiModelProperty(value = "跳题题号(单选题有效),问题设置了跳题才有效,大于当前题号")
private Integer jumpNum;
@ApiModelProperty(value = "指定跳题时才有效,越过的题号")
private Integer[] jumpedNums;
@ApiModelProperty(value = "是否正确答案(选择题有效),0不是 1是默认不是")
private Integer correct;
@ApiModelProperty(value = "是否删除(0:未删,1:已删)")
private Integer deleted;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人ID")
private Long createById;
@ApiModelProperty(value = "创建人姓名")
private String createByName;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人ID")
private Long updateById;
@ApiModelProperty(value = "修改人姓名")
private String updateByName;
@ApiModelProperty(value = "是否被选中 1选中,0没有选中")
private Integer check = 0;
@ApiModelProperty(value = "问答题 回答内容")
private String answerContent;
@ApiModelProperty(value = "打分题 分数")
private Integer answerScore;
@Override
protected Serializable pkVal() {
return this.id;
}
}
package com.yizhi.research.application.vo.domain;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import com.yizhi.research.application.vo.manage.OtherOptionVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* <p>
* 问题
* </p>
*
* @author shengchenglong
* @since 2018-03-12
*/
@Data
@Api(tags = "TrResearchQuestionVo", description = "问题")
@TableName("tr_research_question")
public class TrResearchQuestionVo extends Model<TrResearchQuestionVo> {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "问题主键ID,主键")
private Long id;
@ApiModelProperty(value = "调研主键_ID,外键")
private Long researchId;
@ApiModelProperty(value = "问题类型,1单选题、2多选题、3问答题、4打分题")
private Integer type;
@ApiModelProperty(value = "问题内容")
private String content;
@ApiModelProperty(value = "是否是重新进入 1是")
private Integer isFrist =0;
@ApiModelProperty(value = "是否是最后一题 1是")
private Integer isLast =0;
@ApiModelProperty(value = "调研说明,只有第一题有")
private String remark;
@ApiModelProperty(value = "存放附件路径,附件格式:音频、视频、图片")
private String contentAppendixUrl;
@ApiModelProperty(value = "是否必答,0非必答 1必答,默认0")
private Integer needAnswer;
@ApiModelProperty(value = "多选题:最多选择几项,0不选中 >0选中,默认0")
private Integer maxSelectItem;
@ApiModelProperty(value = "多选题:最少选择几项,0不选中 >0选中,默认0")
private Integer minSelectItem;
@ApiModelProperty(value = "最低分值(打分题有效),只对打分题有效")
private Integer minScore;
@ApiModelProperty(value = "最高分值(打分题有效),只对打分题有效")
private Integer maxScore;
@ApiModelProperty(value = "题号,不能为空")
private Integer no;
@ApiModelProperty(value = "是否跳题(单选题需要),0不支持 1支持,默认0(需求改变,这个字段无意义)")
private Integer jumpable;
@ApiModelProperty(value = "问题跳题的类型,1表示根据选项跳题,2表示指定跳题")
private Integer jumpType;
@ApiModelProperty(value = "跳转的题目题号,指定跳题时才有效")
private Integer jumpNum;
@ApiModelProperty(value = "指定跳题时才有效,越过的题号")
private Integer[] jumpedNums;
@ApiModelProperty(value = "上一题的题号")
private Integer lastNo;
@ApiModelProperty(value = "是否删除(0:未删,1:已删)")
private Integer deleted;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人ID")
private Long createById;
@ApiModelProperty(value = "创建人姓名")
private String createByName;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人ID")
private Long updateById;
@ApiModelProperty(value = "修改人姓名")
private String updateByName;
@ApiModelProperty(value = "企业_ID")
private Long companyId;
@ApiModelProperty(value = "部门_ID")
private Long orgId;
@ApiModelProperty(value = "站点_ID")
private Long siteId;
/**
* 选择题,打分题 选项,不持久化
*/
private List<TrResearchQuestionOptionVo> options;
@ApiModelProperty("是否有题目的跳题是该题目 0没有 1有")
private Integer has;
private OtherOptionVo otherOptionVo;
private Integer hasOther = 0;
@ApiModelProperty(value = "其他选项input框是否必填")
private Integer required = 0;
@ApiModelProperty(value = "调研名称")
private String researchName;
@ApiModelProperty(value = "调研开始时间")
private String startTime;
@ApiModelProperty(value = "调研结束时间")
private String endTime;
@ApiModelProperty(value = "调研说明")
private String researchContent;
@Override
protected Serializable pkVal() {
return this.id;
}
}
package com.yizhi.research.application.vo.domain;
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import lombok.Data;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
/**
* <p>
* 提醒时间
* </p>
*
* @author shengchenglong123
* @since 2018-03-14
*/
@Data
@Api(tags = "TrResearchRemindVo", description = "提醒时间")
@TableName("tr_research_remind")
public class TrResearchRemindVo extends Model<TrResearchRemindVo> {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键id")
private Long id;
@ApiModelProperty(value = "关联调研id")
private Long researchId;
@ApiModelProperty(value = "1:开始之前,2:开始之后,3:自定义时间")
private Integer type;
@ApiModelProperty(value = "type=1或type=2:相差秒数")
private Long seconds;
@ApiModelProperty(value = "是否删除(0:未删,1:已删)")
private Integer deleted;
@ApiModelProperty(value = "提醒时间")
private Date time;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人ID")
private Long createById;
@ApiModelProperty(value = "创建人姓名")
private String createByName;
@Override
protected Serializable pkVal() {
return this.id;
}
}
package com.yizhi.research.application.vo.manage;
import com.baomidou.mybatisplus.annotations.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class OtherOptionVo {
@ApiModelProperty(value = "其它选项的id")
private Long id;
@ApiModelProperty(value = "选项内容")
private String content;
@ApiModelProperty(value = "题号")
private Integer no;
@ApiModelProperty(value = "是否是必填 0 不是 1是")
private Integer required;
@ApiModelProperty(value = "允许填空,对单选和多选有效,0不允许 1允许,默认0")
private Integer editable;
@ApiModelProperty(value = "跳题题号")
private Integer jumpNum;
}
package com.yizhi.research.application.vo.manage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @Author: shengchenglong
* @Date: 2018/3/15 11:10
*/
@Data
@Api(tags = "QuestionEditVo", description = "调研问题修改vo")
public class QuestionEditVo {
@ApiModelProperty(value = "所属调研id")
private Long researchId;
@ApiModelProperty(value = "要删除的调研问题的id集合")
private List<Long> deleteIds;
@ApiModelProperty(value = "问题集合", notes = "在编辑时(要么新增,要么只改序号):序号改变的,必传id,no两个字段;新增的,id必定不能传")
private List<QuestionVo> questions;
}
package com.yizhi.research.application.vo.manage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 选择题选项vo,包括单选、多选
*
* @Author: shengchenglong
* @Date: 2018/3/14 09:34
*/
@Data
@Api(tags = "QuestionOptionVo", description = "选择题选项vo,包括单选、多选\n打分题vo")
public class QuestionOptionVo {
@ApiModelProperty(value = "id", notes = "修改时传")
private Long id;
@ApiModelProperty(value = "所有题型有效:选项号,不能为空", required = true)
private Integer no;
@ApiModelProperty(value = "单选和多选有效:允许填空,0不允许 1允许,默认0")
private Integer editable;
@ApiModelProperty(value = "单选和多选有效:0不是,1是,默认不是")
private Integer correct;
@ApiModelProperty(value = "单选题有效:跳题题号,问题设置了跳题才有效,大于当前题号")
private Integer jumpNum;
@ApiModelProperty(value = "选项内容,最多支持输入500汉字")
private String content;
@ApiModelProperty(value = "打分题有效:最高分值")
private Integer maxScore;
@ApiModelProperty(value = "打分题有效:最低分值")
private Integer minScore;
@ApiModelProperty(value = "是否是必填 0 不是 1是")
private Integer required;
@ApiModelProperty(value = "是否是其它选项 0 不是 1是")
private Integer isOther;
}
package com.yizhi.research.application.vo.manage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @Author: shengchenglong
* @Date: 2018/3/14 09:51
*/
@Data
@Api(tags = "QuestionVo", description = "调研问题vo,包括所有题型")
public class QuestionVo {
@ApiModelProperty(value = "问题id,若是修改,必传;新增的问题,不能传值")
private Long id;
// *************************问题通用属性 开始**********************************
@ApiModelProperty(value = "所属调研id", required = true)
private Long reseachId;
@ApiModelProperty(value = "问题类型,1单选题、2多选题、3问答题、打分题", required = true)
private Integer type;
@ApiModelProperty(value = "所有题型有效:题号,不能为空", required = true)
private Integer no;
@ApiModelProperty(value = "所有题型有效:问题内容")
private String content;
@ApiModelProperty(value = "所有题型有效:存放附件路径,附件格式:音频、视频、图片")
private String contentAppendixUrl;
@ApiModelProperty(value = "所有题型有效:是否必答,0非必答 1必答,默认0")
private Integer needAnswer;
// **************************问题通用属性 结束************************************
// **************************选择题属性 开始************************************
@ApiModelProperty(value = "多选题有效:最多选择几项,0不选中 >0选中,默认0")
private Integer maxSelectItem;
@ApiModelProperty(value = "多选题有效:最少选择几项,0不选中 >0选中,默认0")
private Integer minSelectItem;
// 单选题属性
@ApiModelProperty(value = "单选题有效:是否跳题,0不支持 1支持,默认0")
private Integer jumpable;
// **************************选择题属性 结束************************************
// **************************打分题属性 开始************************************
@ApiModelProperty(value = "打分题有效:最高分值")
private Integer maxScore;
@ApiModelProperty(value = "打分题有效:最低分值")
private Integer minScore;
// **************************打分题属性 结束************************************
@ApiModelProperty(value = "选择题和打分题有效:问题选项")
private List<QuestionOptionVo> questionOptions = new ArrayList<>();
@ApiModelProperty(value = "问题跳题的类型,1表示根据选项跳题,2表示指定跳题")
private Integer jumpType;
@ApiModelProperty(value = "跳转的题目题号,指定跳题时才有效")
private Integer jumpNum;
@ApiModelProperty(value = "其他选项,单独拿出来")
private OtherOptionVo otherOption;
@ApiModelProperty(value = "是否有其他")
private Integer hasOther;
}
package com.yizhi.research.application.vo.manage;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @Author: shengchenglong
* @Date: 2018/3/14 17:15
*/
@Data
@Api(tags = "RemindVo", description = "提醒时间vo(修改时未改的字段勿传值也勿传空字符串)")
public class RemindTimeVo {
@ApiModelProperty(value = "提醒时间id(仅update时可传)")
private Long id;
@ApiModelProperty(value = "1:开始之前,2:开始之后,3:自定义时间")
private Integer type;
@ApiModelProperty(value = "开始之前或开始之后:相差秒数")
private Integer seconds;
@ApiModelProperty(value = "自定义时间:确定时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date time;
}
package com.yizhi.research.application.vo.manage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @Author: shengchenglong
* @Date: 2018/3/14 17:05
*/
@Data
@Api(tags = "RemindVo", description = "提醒vo")
public class RemindVo {
@ApiModelProperty(value = "开启邮件提醒(0:否,1:是)", required = true)
private Integer enableMail;
@ApiModelProperty(value = "开启站内消息提醒(0:否,1:是)", required = true)
private Integer enableApp;
@ApiModelProperty(value = "邮件模板id")
private Long mailTemplateId;
@ApiModelProperty(value = "站内消息模板id")
private Long appTemplateId;
@ApiModelProperty(value = "提醒内容")
private String content;
@ApiModelProperty(value = "提醒时间集合")
private List<RemindTimeVo> remindTimes;
}
package com.yizhi.research.application.vo.manage;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yizhi.research.application.vo.MessageRemindVo;
import com.yizhi.research.application.vo.domain.TrResearchAuthorizeVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 保存resrarch vo
*
* @Author: shengchenglong
* @Date: 2018/3/13 11:06
*/
@Data
@Api(tags = "ResearchVo", description = "后台保存调研vo(修改时未改的字段勿传值也勿传空字符串)")
public class ResearchVo {
@ApiModelProperty(value = "调研id(仅update时可传)")
private Long id;
@ApiModelProperty(value = "调研名称")
private String name;
@ApiModelProperty(value = "调研开始时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date startTime;
@ApiModelProperty(value = "调研结束时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date endTime;
@ApiModelProperty(value = "可见范围,1平台用户可见(企业下所有人员) 2指定学员可见")
private Integer visibleRange;
@ApiModelProperty(value = "调研说明")
private String content;
@ApiModelProperty(value = "调研备注")
private String remark;
@ApiModelProperty(value="调研指定的人员(仅当visibleRange=2时可传)")
private List<TrResearchAuthorizeVo> trResearchAuthorize;
@ApiModelProperty(value = "提醒vo")
private RemindVo remindVo;
@ApiModelProperty(value = "是否有提醒")
private Integer remind;
@ApiModelProperty(value = "积分,默认0")
private Integer point;
@ApiModelProperty(value = "各个业务设置提醒时的数据")
private MessageRemindVo messageRemindVo;
private String keywords;
@ApiModelProperty(value = "调研logo")
private String image;
@ApiModelProperty(value = "是否启用在日历任务中显示")
private Integer enableTask;
}
package com.yizhi.research.application.vo.report;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.research.application.vo.domain.TrResearchQuestionVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class DownloadParamsVoOnTime {
@ApiModelProperty(value = "调研ID")
private Long researchId;
@ApiModelProperty(value = "调研名字")
private String resesrchName;
@ApiModelProperty(value = "上下文")
private RequestContext context;
@ApiModelProperty(value = "开始时间(调研时间)")
private String startTime;
@ApiModelProperty(value = "结束时间(调研时间)")
private String endTime;
@ApiModelProperty(value = "部门关键字或者部门编码")
private String orgNameorOrgCode;
@ApiModelProperty(value = "用户关键字")
private String accountName;
@ApiModelProperty(value = "参加状态")
private Integer joinState;
@ApiModelProperty(value = "任务名称")
private String taskName;
@ApiModelProperty(value = "任务序号")
private String serialNo;
@ApiModelProperty(value = "任务id")
private Long taskId;
@ApiModelProperty(value = "调研问题集合")
private List<TrResearchQuestionVo> trResearchQuestionVos = new ArrayList<>();
}
package com.yizhi.research.application.vo.report;
import com.yizhi.research.application.vo.api.ViewAnswerQuestionVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class ReportResearchAnalyze {
@ApiModelProperty(value= "调研id")
private Long researchId;
@ApiModelProperty(value= "题目总数")
private Integer questionCount = 0;
@ApiModelProperty(value= "提交问卷份数")
private Integer submitCount = 0;
@ApiModelProperty(value= "可参加人数")
private Integer joinCount = 0;
@ApiModelProperty(value= "实际参加人数")
private Integer realJoinCount = 0;
@ApiModelProperty(value= "题目以及选项")
private List<ViewAnswerQuestionVo> viewAnswerQuestionVOs;
}
package com.yizhi.research.application.vo.report;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* 调研查看
* @author mei
*
*/
@Data
public class ResearchGroupViewVo {
@ApiModelProperty(value= "用户id")
private Long accountId;
@ApiModelProperty(value = "用户名")
private String accountName;
@ApiModelProperty(value = "姓名")
private String accountFullName;
@ApiModelProperty(value = "所在部门")
private String orgName;
@ApiModelProperty(value="所在部门父类")
private String orgParentNames;
@ApiModelProperty(value = "是否参加 1:表示已经参加 0:表示未参加")
private Integer joinState=0;
@ApiModelProperty(value = "提交时间")
private Date finishTime;
@ApiModelProperty(value = "用户状态")
private Integer accountState;
@ApiModelProperty(value = "序号")
private Integer index;
}
package com.yizhi.research.application.vo.report;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* 调研统计
* @author mei
*
*/
@Data
public class ResearchGroupVo {
@ApiModelProperty(value = "调研ID")
private Long researchId;
@ApiModelProperty(value = "序号")
private Integer index;
@ApiModelProperty(value = "调研名称")
private String researchName ;
@ApiModelProperty(value = "开始时间(调研时间)")
private Date researchStartTime;
@ApiModelProperty(value = "结束时间(调研时间)")
private Date researchEndTime;
@ApiModelProperty(value = "可参加人数(空返回0)")
private Integer canStateCount = 0;
@ApiModelProperty(value = "实际参加人数(空返回0)")
private Integer joinStateCount = 0;
@ApiModelProperty(value = "用户状态")
private Integer accountState;
@ApiModelProperty(value = "管理员类别")
private Integer rangeType;
}
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<parent>
<groupId>com.yizhi</groupId>
<artifactId>cloud-research</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.yizhi</groupId>
<artifactId>cloud-research-service</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-common-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-util</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-orm</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-core</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-research-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-newMessage-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-system-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- deploy 时跳过该模块 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>
package com.yizhi.research.application;
import org.apache.commons.collections.CollectionUtils;
import org.apache.ibatis.executor.Executor;
import org.apache.ibatis.mapping.BoundSql;
import org.apache.ibatis.mapping.MappedStatement;
import org.apache.ibatis.mapping.ParameterMapping;
import org.apache.ibatis.plugin.*;
import org.apache.ibatis.reflection.MetaObject;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.ResultHandler;
import org.apache.ibatis.session.RowBounds;
import org.apache.ibatis.type.TypeHandlerRegistry;
import java.text.DateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Properties;
import java.util.regex.Matcher;
@Intercepts({
@Signature(type = Executor.class, method = "update", args = {
MappedStatement.class, Object.class}),
@Signature(type = Executor.class, method = "query", args = {
MappedStatement.class, Object.class, RowBounds.class,
ResultHandler.class})})
@SuppressWarnings({"unchecked", "rawtypes"})
public class MybatisInterceptor implements Interceptor {
@Override
public Object intercept(Invocation invocation) throws Throwable {
try {
MappedStatement mappedStatement = (MappedStatement) invocation.getArgs()[0]; // 获取xml中的一个select/update/insert/delete节点,主要描述的是一条SQL语句
Object parameter = null;
// 获取参数,if语句成立,表示sql语句有参数,参数格式是map形式
if (invocation.getArgs().length > 1) {
parameter = invocation.getArgs()[1];
System.out.println("parameter = " + parameter);
}
String sqlId = mappedStatement.getId(); // 获取到节点的id,即sql语句的id
System.out.println("sqlId = " + sqlId);
BoundSql boundSql = mappedStatement.getBoundSql(parameter); // BoundSql就是封装myBatis最终产生的sql类
Configuration configuration = mappedStatement.getConfiguration(); // 获取节点的配置
String sql = getSql(configuration, boundSql, sqlId); // 获取到最终的sql语句
System.out.println("sql = " + sql);
//log.debug(sql);
} catch (Exception e) {
// log.error(e.getMessage(), e);
}
return invocation.proceed(); // 执行完上面的任务后,不改变原有的sql执行过程
}
// 封装了一下sql语句,使得结果返回完整xml路径下的sql语句节点id + sql语句
public static String getSql(Configuration configuration, BoundSql boundSql, String sqlId) {
String sql = showSql(configuration, boundSql);
StringBuilder str = new StringBuilder(100);
str.append(sqlId);
str.append(":");
str.append(sql);
return str.toString();
}
/*<br> *如果参数是String,则添加单引号, 如果是日期,则转换为时间格式器并加单引号; 对参数是null和不是null的情况作了处理<br>  */
private static String getParameterValue(Object obj) {
String value = null;
if (obj instanceof String) {
value = "'" + obj.toString() + "'";
} else if (obj instanceof Date) {
DateFormat formatter = DateFormat.getDateTimeInstance(DateFormat.DEFAULT, DateFormat.DEFAULT, Locale.CHINA);
value = "'" + formatter.format(new Date()) + "'";
} else {
if (obj != null) {
value = obj.toString();
} else {
value = "";
}
}
return value;
}
// 进行?的替换
public static String showSql(Configuration configuration, BoundSql boundSql) {
Object parameterObject = boundSql.getParameterObject(); // 获取参数
List<ParameterMapping> parameterMappings = boundSql
.getParameterMappings();
String sql = boundSql.getSql().replaceAll("[\\s]+", " "); // sql语句中多个空格都用一个空格代替
if (CollectionUtils.isNotEmpty(parameterMappings) && parameterObject != null) {
TypeHandlerRegistry typeHandlerRegistry = configuration.getTypeHandlerRegistry(); // 获取类型处理器注册器,类型处理器的功能是进行java类型和数据库类型的转换<br>       // 如果根据parameterObject.getClass()可以找到对应的类型,则替换
if (typeHandlerRegistry.hasTypeHandler(parameterObject.getClass())) {
sql = sql.replaceFirst("\\?", Matcher.quoteReplacement(getParameterValue(parameterObject)));
} else {
MetaObject metaObject = configuration.newMetaObject(parameterObject);// MetaObject主要是封装了originalObject对象,提供了get和set的方法用于获取和设置originalObject的属性值,主要支持对JavaBean、Collection、Map三种类型对象的操作
for (ParameterMapping parameterMapping : parameterMappings) {
String propertyName = parameterMapping.getProperty();
if (metaObject.hasGetter(propertyName)) {
Object obj = metaObject.getValue(propertyName);
sql = sql.replaceFirst("\\?", Matcher.quoteReplacement(getParameterValue(obj)));
} else if (boundSql.hasAdditionalParameter(propertyName)) {
Object obj = boundSql.getAdditionalParameter(propertyName); // 该分支是动态sql
sql = sql.replaceFirst("\\?", Matcher.quoteReplacement(getParameterValue(obj)));
} else {
sql = sql.replaceFirst("\\?", "缺失");
}//打印出缺失,提醒该参数缺失并防止错位
}
}
}
return sql;
}
@Override
public Object plugin(Object target) {
return Plugin.wrap(target, this);
}
@Override
public void setProperties(Properties properties) {
}
}
\ No newline at end of file
package com.yizhi.research.application;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients(basePackages = {"com.yizhi"})
@ComponentScan(basePackages = {"com.yizhi"})
public class ResearchApplication {
public static void main(String[] args) {
SpringApplication.run(ResearchApplication.class, args);
}
}
package com.yizhi.research.application;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("考试-调研")
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.fulan.application"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("调研")
//版本
.version("1.0")
.build();
}
}
package com.yizhi.research.application.controller;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.research.application.download.DownloadResearchAnalyze;
import com.yizhi.research.application.download.DownloadResearchAnalyze1;
import com.yizhi.research.application.download.DownloadResearchDetails;
import com.yizhi.research.application.service.StatisticsResearchService;
import com.yizhi.research.application.vo.domain.StatisticsResearch;
import com.yizhi.research.application.vo.report.DownloadParamsVoOnTime;
import com.yizhi.util.application.domain.Response;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/statisticsResearch")
public class StatisticsResearchController {
@Autowired
private StatisticsResearchRun statisticsResearchRun;
@Autowired
private StatisticsResearchService statisticsResearchService;
@Autowired
private DownloadResearchDetails downloadResearchDetails;
@Autowired
private DownloadResearchAnalyze downloadResearchAnalyze;
@Autowired
private DownloadResearchAnalyze1 downloadResearchAnalyze1;
private Logger LOGGER = LoggerFactory.getLogger(StatisticsResearchController.class);
@GetMapping("/asynchronous/load/data")
public Response<String> asynchronousResearch(@RequestParam("startDate") String startDate, @RequestParam("endDate") String endDate){
Map<String,Object> map=new HashMap<String,Object>();
map.put("startDate", startDate);
map.put("endDate", endDate);
statisticsResearchRun.execute(map,true);
return Response.ok();
}
@ApiOperation(value = "调研统计", notes = "调研统计", response = StatisticsResearch.class)
@GetMapping("/group")
public Page<StatisticsResearch> researchGroup(@RequestParam(name = "startDate", required = false) String startDate,
@RequestParam(name = "endDate", required = false) String endDate,
@RequestParam(name = "kwd", required = false) String kwd,
@RequestParam(name = "pageSize", required = false, defaultValue = "10") Integer pageSize,
@RequestParam(name = "pageNo", required = false, defaultValue = "1") Integer pageNo,
@RequestParam(name= "companyId" ,required = true) Long companyId,
@RequestParam(name= "orgIds" ,required = false) List<Long> orgIds,
@RequestParam(name= "siteId" ,required = true) Long siteId){
return statisticsResearchService.researchGroup(startDate,endDate,kwd,pageSize,pageNo,companyId,orgIds,siteId);
}
@ApiOperation(value = "调研参与人员的统计" ,notes = "调研参与人员的统计" ,response =StatisticsResearch.class)
@GetMapping("/group/view")
public Page<StatisticsResearch> researchGroupView(
@RequestParam(name = "startDate", required = false) String startDate,
@RequestParam(name = "endDate", required = false) String endDate,
@RequestParam(name= "researchId" ,required = true) Long researchId,
@RequestParam(name = "orgNameorOrgCode" ,required = false) String orgNameorOrgCode,
@RequestParam(name = "accountName" ,required = false )String accountName,
@RequestParam(name= "state" ,required = false) Integer state,
@RequestParam(name = "pageSize", required = false, defaultValue = "10") Integer pageSize,
@RequestParam(name = "pageNo", required = false, defaultValue = "1") Integer pageNo){
return statisticsResearchService.selectResearchView(researchId,startDate,endDate,orgNameorOrgCode,accountName,state,pageNo,pageSize);
}
@GetMapping("/group/view/state/count")
public StatisticsResearch getCanStateCount(
@RequestParam(name = "startDate", required = false) String startDate,
@RequestParam(name = "endDate", required = false) String endDate,
@RequestParam(name= "researchId" ,required = true) Long researchId,
@RequestParam(name = "orgNameorOrgCode" ,required = false) String orgNameorOrgCode,
@RequestParam(name = "accountName" ,required = false )String accountName,
@RequestParam(name= "state" ,required = false) Integer state
){
return statisticsResearchService.selectJoinCount(researchId,startDate,endDate,orgNameorOrgCode,accountName,state);
}
@ApiOperation(value = "下载调研参与人员的统计" ,notes = "下载参与人员的统计" ,response =StatisticsResearch.class)
@GetMapping("/export/research/accounts")
public List<StatisticsResearch> researchList(
@RequestParam(name = "startDate", required = false) String startDate,
@RequestParam(name = "endDate", required = false) String endDate,
@RequestParam(name= "researchId" ,required = true) Long researchId,
@RequestParam(name = "orgNameorOrgCode" ,required = false) String orgNameorOrgCode,
@RequestParam(name = "accountName" ,required = false )String accountName,
@RequestParam(name= "state" ,required = false) Integer state){
return statisticsResearchService.researchViewList(researchId,orgNameorOrgCode,accountName,state,startDate,endDate);
}
@ApiOperation(value = "下载调研参与人员的统计个数" ,notes = "下载参与人员的统计个数" ,response =StatisticsResearch.class)
@GetMapping("/export/research/accounts/count")
public Integer researchViewCount(
@RequestParam(name = "startDate", required = false) String startDate,
@RequestParam(name = "endDate", required = false) String endDate,
@RequestParam(name= "researchId" ,required = true) Long researchId,
@RequestParam(name = "orgNameorOrgCode" ,required = false) String orgNameorOrgCode,
@RequestParam(name = "accountName" ,required = false )String accountName,
@RequestParam(name= "state" ,required = false) Integer state
){
return statisticsResearchService.selectResearchViewCount(researchId,startDate,endDate,orgNameorOrgCode,accountName,state) ;
}
@ApiOperation(value = "调研参与人员的统计" ,notes = "调研参与人员的统计" ,response =StatisticsResearch.class)
@GetMapping("/group/views")
public List<StatisticsResearch> researchViews(
@RequestParam(name = "startDate", required = false) String startDate,
@RequestParam(name = "endDate", required = false) String endDate,
@RequestParam(name= "researchId" ,required = true) Long researchId,
@RequestParam(name = "orgNameorOrgCode" ,required = false) String orgNameorOrgCode,
@RequestParam(name = "accountName" ,required = false )String accountName,
@RequestParam(name= "state" ,required = false) Integer state,
@RequestParam(name = "pageSize", required = false, defaultValue = "10") Integer pageSize,
@RequestParam(name = "pageNo", required = false, defaultValue = "1") Integer pageNo){
return statisticsResearchService.researchViews(researchId,startDate,endDate,orgNameorOrgCode,accountName,state,pageNo,pageSize);
}
@ApiOperation (value = "实时导出调研明细", notes = "导出调研明细")
@PostMapping("/details/Excel/onTime")
public String reportResearchDetails(@RequestBody DownloadParamsVoOnTime vo) {
try {
downloadResearchDetails.execute(vo, true);
return "任务名称:" + vo.getTaskName() + ",任务序号:" + vo.getSerialNo();
} catch (Exception e) {
LOGGER.error("", e);
return null;
}
}
@ApiOperation (value = "实时导出调研分析统计", notes = "导出调研分析统计")
@PostMapping ("/analyze/Excel/onTime")
public String reportResearchanalyze(@RequestBody DownloadParamsVoOnTime vo) {
try {
downloadResearchAnalyze1.execute(vo, true);
// downloadResearchAnalyze.execute(vo, true);
return "任务名称:" + vo.getTaskName() + ",任务序号:" + vo.getSerialNo();
} catch (Exception e) {
LOGGER.error("", e);
return null;
}
}
}
package com.yizhi.research.application.controller;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.research.application.mapper.TrResearchAnswerMapper;
import com.yizhi.research.application.model.AnswerModel;
import com.yizhi.research.application.service.ITrResearchAnswerService;
import com.yizhi.research.application.vo.StatisticResearchMetadataVo;
import com.yizhi.research.application.vo.api.ViewAnswerVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 答卷 前端控制器
* </p>
*
* @author shengchenglong
* @since 2018-03-12
*/
@RestController
@RequestMapping("/researchAnswer")
public class TrResearchAnswerController {
@Autowired
private ITrResearchAnswerService researchAnswerService;
@Autowired
private TrResearchAnswerMapper trResearchAnswerMapper;
/**
* 学员提交答案
* @param answerModel
* @return
* @throws Exception
*/
@PostMapping("/submit")
public Integer submitAnswer(@RequestBody AnswerModel answerModel) throws Exception {
return researchAnswerService.submitAnswer(answerModel);
}
@GetMapping("/view")
public ViewAnswerVo viewResearch(@RequestParam("researchId") Long researchId, @RequestParam("accountId") Long accountId) {
return researchAnswerService.apiViewAnswer(researchId, accountId);
}
/**
* 查看调研下所有的答卷
* @param researchId
* @param
* @return
*/
@GetMapping("/views")
public Page<ViewAnswerVo> viewAnswers(@RequestParam("researchId") Long researchId,
@RequestParam("pageNo") Integer pageNo,
@RequestParam("pageSize") Integer pageSize){
return researchAnswerService.apiViewAnswers(researchId,pageNo,pageSize);
}
@GetMapping("/views/list")
public List<ViewAnswerVo> viewAnswersList(@RequestParam("researchId") Long researchId,
@RequestParam("pageNo") Integer pageNo,
@RequestParam("pageSize") Integer pageSize){
return researchAnswerService.viewAnswerVoList(researchId,pageNo,pageSize);
}
@GetMapping("/views/count")
public Integer viewAnswersCount(@RequestParam("researchId") Long researchId){
return researchAnswerService.apiViewAnswersCount(researchId);
}
@GetMapping("/view/list")
public List<ViewAnswerVo> viewList(@RequestParam("researchId") Long researchId){
return researchAnswerService.viewList(researchId);
}
/**
* 根据调研answer的创建时间、调研id、已完成状态查询,
* @param researchId
* @param currentDate
* @return
*/
@GetMapping("/selectLearnRecord")
public List<StatisticResearchMetadataVo> selectLearnRecord(@RequestParam("researchId")Long researchId,
@RequestParam("startDate")String startDate,
@RequestParam("endDate")String endDate){
return trResearchAnswerMapper.selectLearnRecord(researchId,startDate,endDate);
}
}
package com.yizhi.research.application.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.stereotype.Controller;
/**
* <p>
* 答案题目 前端控制器
* </p>
*
* @author shengchenglong
* @since 2018-03-12
*/
@Controller
@RequestMapping("/trResearchAnswerQuestion")
public class TrResearchAnswerQuestionController {
}
package com.yizhi.research.application.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.yizhi.research.application.service.IResearchService;
import com.yizhi.research.application.service.ITrResearchAuthorizeService;
import com.yizhi.research.application.vo.VisibleRangeExport;
import com.yizhi.research.application.vo.domain.TrResearchAuthorize;
import com.yizhi.research.application.vo.domain.TrResearchAuthorizeVo;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 调研用户范围 前端控制器
* </p>
*
* @author shengchenglong
* @since 2018-03-12
*/
@RestController
@RequestMapping("/researchAuthorize")
public class TrResearchAuthorizeController {
@Autowired
private ITrResearchAuthorizeService iTrResearchAuthorizeService;
@Autowired
private IResearchService researchService;
@GetMapping("/researchId/get")
public List<TrResearchAuthorize> getResearchAuthorize(@RequestParam("researchId") Long researchId) {
TrResearchAuthorize example = new TrResearchAuthorize();
example.setResearchId(researchId);
return example.selectList(new EntityWrapper(example));
}
@PostMapping("/researchId/insert")
public Boolean insertResearchAuthorize(@RequestBody List<TrResearchAuthorizeVo> trResearchAuthorizes){
List<TrResearchAuthorize> list=new ArrayList<>();
for (TrResearchAuthorizeVo trv:trResearchAuthorizes
) {
TrResearchAuthorize t=new TrResearchAuthorize();
BeanUtils.copyProperties(trv,t);
list.add(t);
}
return iTrResearchAuthorizeService.insertAll(list);
}
@ApiOperation(value="可见范围导出",notes="可见范围导出")
@GetMapping("/export/visiblRange")
public VisibleRangeExport vsibleRangeExport(@ApiParam(value="researchId",name="调研的Id",required=true) @RequestParam(name="researchId",required=true) Long researchId) {
return researchService.vsibleRangeExport(researchId);
}
}
package com.yizhi.research.application.controller;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.research.application.model.ModifyQuestionModel;
import com.yizhi.research.application.service.ITrResearchQuestionOptionService;
import com.yizhi.research.application.service.ITrResearchQuestionService;
import com.yizhi.research.application.vo.api.MyQuestion;
import com.yizhi.research.application.vo.api.QuestionJumpVo;
import com.yizhi.research.application.vo.domain.TrResearchQuestion;
import com.yizhi.research.application.vo.domain.TrResearchQuestionOption;
import com.yizhi.research.application.vo.domain.TrResearchQuestionOptionVo;
import com.yizhi.research.application.vo.domain.TrResearchQuestionVo;
import org.apache.poi.ss.formula.functions.T;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* <p>
* 问题 前端控制器
* </p>
*
* @author shengchenglong
* @since 2018-03-12
*/
@RestController
@RequestMapping("/researchQuestion")
public class TrResearchQuestionController {
private static final Logger LOGGER = LoggerFactory.getLogger(TrResearchQuestionController.class);
@Autowired
private ITrResearchQuestionService researchQuestionService;
@Autowired
private ITrResearchQuestionOptionService researchQuestionOptionServiceService;
/**
* 批量插入问题
*
* @param questions
* @return
*/
@PostMapping("/batch/insert")
public int batchInsert(@RequestBody List<TrResearchQuestionVo> questions) {
if (CollectionUtils.isEmpty(questions)) {
return 0;
}
List<TrResearchQuestion> list=new ArrayList<>();
for (TrResearchQuestionVo trqv:questions
) {
TrResearchQuestion tr=new TrResearchQuestion();
BeanUtils.copyProperties(trqv,tr);
List<TrResearchQuestionOptionVo> list1=trqv.getOptions();
List<TrResearchQuestionOption> list2=new ArrayList<>();
if (!CollectionUtils.isEmpty(list1)) {
for (TrResearchQuestionOptionVo j : list1
) {
TrResearchQuestionOption trr = new TrResearchQuestionOption();
BeanUtils.copyProperties(j, trr);
list2.add(trr);
}
}
tr.setOptions(list2);
list.add(tr);
}
return researchQuestionService.batchInsert(list);
}
/**
* 问题更新
* deletedIds: 删除的问题的id集合
* questions: 新增的问题,修改的问题(修改仅仅涉及序号)
*
* @param model
* @return
*/
@PostMapping("/update")
public int batchUpdate(@RequestBody ModifyQuestionModel model) throws Exception {
return researchQuestionService.batchUpdate(model);
}
/**
* 分页查询 一个调研下面的问题
*
* @param page 只有一个
* @return
*/
@GetMapping("/page/list")
public List<TrResearchQuestion> listPage(@RequestBody Page<TrResearchQuestion> page) {
Map<String, Object> map = page.getCondition();
map.put("pageNo", page.getCurrent());
map.put("pageSize", page.getSize());
return researchQuestionService.listPage(map);
}
/**
* 根据调研id查询所有
*
* @param researchId
* @return
*/
@GetMapping("/list")
public List<TrResearchQuestion> listAll(@RequestParam("researchId") Long researchId) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("researchId", researchId);
return researchQuestionService.listPage(map);
}
@GetMapping("/list/all")
public List<TrResearchQuestion> list(@RequestParam("researchId") Long researchId) {
return researchQuestionService.listAll(researchId);
}
/**
* 选择跳题时的问题列表
*
* @param id 需要跳题的问题id
* @return
*/
@GetMapping("/jump/question/list")
public List<TrResearchQuestion> listAllForJump(@RequestParam("id") Long id) {
return researchQuestionService.listAllForJump(id);
}
/**
* 调研逐题显示下一题或者上一题
*/
@GetMapping("/last/next")
public MyQuestion lastAndNext(
@RequestBody MyQuestion myQuestion
) {
return researchQuestionService.lastAndNext(myQuestion);
}
@PostMapping("/jump/question/update")
Integer updateQuestionJump(@RequestBody QuestionJumpVo vo) {
return researchQuestionService.updateQuestionJump(vo);
}
@GetMapping("/option/get")
Map<String, Object> getOptionByQuestionId(@RequestParam("questionId") Long id) {
return researchQuestionOptionServiceService.getOptionByQuestionId(id);
}
/**
* 查找调研完成学员id
*
* @param researchId
* @param companyId
* @param siteId
* @return
*/
@GetMapping("/getFinishedAccountIds")
List<Long> getFinishedAccountIds(@RequestParam("researchId") Long researchId,
@RequestParam("companyId") Long companyId,
@RequestParam("siteId") Long siteId) {
return researchQuestionService.getFinishedAccountIds(researchId, companyId, siteId);
}
}
package com.yizhi.research.application.controller;
import com.yizhi.research.application.service.ITrResearchQuestionOptionService;
import com.yizhi.research.application.vo.domain.TrResearchQuestionOption;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/**
* <p>
* 只对题型是:单选题、多选题和打分题 前端控制器
* </p>
*
* @author shengchenglong
* @since 2018-03-12
*/
@RestController
@RequestMapping("/trResearchQuestionOption")
public class TrResearchQuestionOptionController {
@Autowired
ITrResearchQuestionOptionService iTrResearchQuestionOptionService;
@GetMapping("/all")
public List<TrResearchQuestionOption> listAll(@RequestParam("researchId") Long researchId) {
return iTrResearchQuestionOptionService.listAll(researchId);
}
@GetMapping("/option/get")
public Map<String,Object> getOptionByQuestionId(@RequestParam("questionId") Long id){
return iTrResearchQuestionOptionService.getOptionByQuestionId(id);
}
}
package com.yizhi.research.application.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 答案选项 前端控制器
* </p>
*
* @author shengchenglong
* @since 2018-03-12
*/
@RestController
@RequestMapping("/trResearchQuestionResult")
public class TrResearchQuestionResultController {
}
package com.yizhi.research.application.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.stereotype.Controller;
/**
* <p>
* 前端控制器
* </p>
*
* @author shengchenglong123
* @since 2018-03-14
*/
@Controller
@RequestMapping("/trResearchRemind")
public class TrResearchRemindController {
}
package com.yizhi.research.application.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.research.application.model.DataRangeModel;
import com.yizhi.research.application.vo.domain.Research;
import com.yizhi.research.application.vo.domain.TrResearchAuthorize;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.session.RowBounds;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
/**
* <p>
* 调研 Mapper 接口
* </p>
*
* @author shengchenglong
* @since 2018-03-12
*/
public interface ResearchMapper extends BaseMapper<Research> {
/**
* 后台管理分页列表
*
* @param state
* @param name
* @param rowBounds
* @return
*/
List<Research> listPage(@Param("date") String date, @Param("state") Integer state, @Param("name") String name, @Param("range") DataRangeModel dataRangeModel, RowBounds rowBounds);
Integer listPageCount(@Param("date") String date,@Param("state") Integer state, @Param("name") String name, @Param("range") DataRangeModel dataRangeModel);
/**
* 查询所有
*
* @return
*/
int selectAllCount(@Param("siteId") Long siteId);
/**
* 批量删除(仅能删除草稿状态)
*
* @param ids
* @return
*/
int batchDelete(@Param("ids") List<Long> ids);
/**
* 学员端调研列表
*
* @param idsInRange 可见范围内的调研id集合
* @param now 当前时间
* @return
*/
List<Research> apiListResearch(@Param("idsInRange") List<Long> idsInRange, @Param("accountId") Long accountId,
@Param("siteId") Long siteId, @Param("now") Date now, @Param("state") Integer state,
RowBounds rowBounds);
/**
* 分页模糊查询
*
* @param idsInRange 可见范围内的调研id集合
* @param name
* @param rowBounds
* @return
*/
List<Research> apiSearchPage(@Param("siteId") Long siteId, @Param("name") String name,@Param("accountId") Long accountId,
@Param("now") Date date,@Param("idsInRange") List<Long> idsInRange, RowBounds rowBounds);
/**
* 查询所有进行中的我的调研
*/
Integer apiCountResearch(@Param("idsInRange") List<Long> idsInRange, @Param("accountId") Long accountId,
@Param("siteId") Long siteId, @Param("now") Date now);
int selectListCount(@Param("idsInRange") List<Long> idsInRange, @Param("accountId") Long accountId,
@Param("siteId") Long siteId, @Param("now") Date now, @Param("state") Integer state);
LinkedList<Research> selectRealJoin(@Param("researchIds") List<Long> researchIds);
LinkedList<TrResearchAuthorize> selectRelationIds(@Param("researchIds") List<Long> researchIds);
List<Research> selectResearchPage(
@Param("startDate")String startDate, @Param("endDate")String endDate,
@Param("kwd")String kwd,@Param("orgIds")List<Long> orgIds, @Param("companyId")Long companyId,
@Param("siteId") Long siteId,RowBounds rowBounds);
Integer selectResearchCount(@Param("startDate")String startDate, @Param("endDate")String endDate,
@Param("kwd")String kwd,@Param("orgIds")List<Long> orgIds, @Param("companyId")Long companyId,
@Param("siteId") Long siteId);
List<Map<String, Object>> getPoolExamList(@Param("name") String name, @Param("ids") List<Long> ids,
@Param("companyId") Long companyId,@Param("siteId") Long siteId,
@Param("orgIds") List<Long> orgIds, Page<Map<String, Object>> page);
@Select("select * from research where id = #{id} and deleted =0 ")
Research selectStateOne(@Param("id") Long id);
List<Research> getAllResearchs();
Date selectRecordMinTime();
List<Long> getIdsByDate(@Param("date") Date date,@Param("siteId") Long siteId);
List<Research> getPageToCalendar(@Param("finishTrIds") List<Long> finishTrIds, @Param("trIds") List<Long> trIds, @Param("date") Date date, @Param("siteId") Long siteId, Page<Research> page);
Integer getPageToCalendarNum(@Param("finishTrIds") List<Long> finishTrIds, @Param("trIds") List<Long> trIds, @Param("date") Date date, @Param("siteId") Long siteId);
}
package com.yizhi.research.application.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.yizhi.research.application.vo.domain.StatisticsResearchLearn;
public interface StatisticsResearchLearnMapper extends BaseMapper<StatisticsResearchLearn> {
}
package com.yizhi.research.application.mapper;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.yizhi.research.application.vo.domain.Research;
import com.yizhi.research.application.vo.domain.StatisticsResearch;
import com.yizhi.research.application.vo.domain.StatisticsResearchLearn;
import com.yizhi.research.application.vo.domain.TrResearchAnswer;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.plugins.Page;
public interface StatisticsResearchMapper extends BaseMapper<StatisticsResearch> {
/**
* 报表得到所有的指定范围人员
*
* @return
*/
List<Long> getAllRelationId(@Param("researchId") Long researchId);
List<TrResearchAnswer> selectRealJoin(@Param("researchId") Long researchId, @Param("accountIds") List<Long> accountIds,
@Param("startDate") String startDate);
List<StatisticsResearch> selectResearchView(
@Param("researchId") Long researchId,
@Param("startDate") String startDate,
@Param("endDate") String endDate,
@Param("orgNameorOrgCode") String orgNameorOrgCode,
@Param("accountName") String accountName,
@Param("joinState") Integer joinState,
Page<StatisticsResearch> page);
Integer selectResearchViewCount(@Param("researchId") Long researchId,
@Param("startDate") String startDate,
@Param("endDate") String endDate,
@Param("orgNameorOrgCode") String orgNameorOrgCode,
@Param("accountName") String accountName,
@Param("joinState") Integer joinState);
StatisticsResearch selectJoinCount(@Param("researchId") Long researchId,
@Param("startDate") String startDate,
@Param("endDate") String endDate,
@Param("orgNameorOrgCode") String orgNameorOrgCode,
@Param("accountName") String accountName,
@Param("joinState") Integer joinState);
List<StatisticsResearch> selectStatisticsResearchPage(@Param("startDate") String startDate,
@Param("endDate") String endDate,
@Param("kwd") String kwd,
@Param("companyId") Long companyId,
@Param("orgIds")List<Long> orgIds,
@Param("siteId") Long siteId,
RowBounds rowBounds);
Integer selectStatisticsResearchCount(@Param("startDate") String startDate,
@Param("endDate") String endDate,
@Param("kwd") String kwd,
@Param("companyId") Long companyId,
@Param("orgIds") List<Long> orgIds,
@Param("siteId") Long siteId);
List<StatisticsResearch> selectResearchViewList(@Param("researchId") Long researchId,
@Param("orgNameorOrgCode") String orgNameorOrgCode,
@Param("accountName") String accountName,
@Param("joinState") Integer joinState,
@Param("startDate")String startDate,
@Param("endDate")String endDate);
Date selectMaxDate();
Date selectRecordMinTime();
List<Research> getAllResearchs(@Param("startDate") String startDate, @Param("endDate") String endDate);
void deleteRecordeByDate(@Param("currentDate") String currentDate);
/**
* 批量插入调研
* @param researchId 调研ID
* @param currentDate 调研日期
* @return
*/
int insertAccountLearn(@Param("researchId")Long researchId, @Param("currentDate")String currentDate);
/**
* 获取添加的调研信息
* @param researchId 调研ID
* @param currentDate 调研日期
* @return 返回调研的学生ID集合
*/
@MapKey("account_id")
List<StatisticsResearchLearn> selectAccountLearn(@Param("researchId")Long researchId, @Param("currentDate")String currentDate);
List<Long> selectAccountLearnList(@Param("paramMap") Map<String, Object> paramMap, Page<Long> page);
/**
* 查找学员有没有调研
* @param courseId
* @param accountId
* @return
*/
Integer selectEmptyCourseAccountLearnCount(@Param("researchId") Long researchId, @Param("accountId") Long accountId);
/**
* 删除没有学习记录的学员信息
*/
void deleteEmptyAccountLearn();
/**
* 查找该调研有没有人参加了
* @param researchId
* @return
*/
Integer selectEmptyCourseLearnCount(@Param("researchId")Long researchId);
/**
* 查找学员有没有学了该调研
* @param researchId
* @param accountId
* @return
*/
@MapKey("accountId")
Map<Long, Long> selectAccountLearnByResearchId(@Param("researchId") Long researchId);
/**
* 按部门纬度统计数据量会很大,影响效率.对其进行拆分,按部门统计从此表中查询
*/
void insertStatisticsResearchToGroupFind();
void deleteStatisticsResearchToGroupFind();
/**
* 调研信息直接从statistics_research_metadata表中查询效率很慢,对其进行拆分.按调研和用户统计的查询条件从此获取
*/
void insertStatisticsResearchToAccountGroupFind();
void deleteStatisticsResearchToAccountGroupFind();
}
package com.yizhi.research.application.mapper;
import java.util.Date;
import java.util.List;
import com.yizhi.research.application.vo.StatisticResearchMetadataVo;
import com.yizhi.research.application.vo.domain.TrResearchAnswer;
import com.yizhi.research.application.vo.report.ResearchGroupViewVo;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
/**
* <p>
* 答卷 Mapper 接口
* </p>
*
* @author shengchenglong
* @since 2018-03-12
*/
public interface TrResearchAnswerMapper extends BaseMapper<TrResearchAnswer> {
/**
* 检查某个学员的某个调研的状态
*/
Integer checkResearchAnswer
(@Param("visibleRange") Integer visibleRange, @Param("accountId") Long accountId,@Param("researchId") Long researchId, @Param("relationIds") List<Long> relationsId,@Param("date") Date date);
Integer checkResearchAnswerState
(@Param("visibleRange") Integer visibleRange,@Param("accountId") Long accountId, @Param("researchId") Long researchId, @Param("relationIds") List<Long> relationsId,@Param("date") Date date);
/*
* 根据调研id查询完成的个数
* */
Integer selectFinishCount(@Param("researchId") Long researchId);
@Update("update tr_research_answer set finish = 2 where research_id = #{researchId} and account_id = #{accountId}")
void deleteAnswer(@Param("researchId") Long researchId,@Param("accountId")Long accountId);
/**
* 根据调研answer的创建时间、调研id、已完成状态查询,
* @param researchId
* @param currentDate
* @return
*/
List<StatisticResearchMetadataVo> selectLearnRecord(@Param("researchId") Long researchId, @Param("startDate") String startDate, @Param("endDate") String endDate);
/**
* 实时查询答卷
*
* @param researchId
* @return
*/
List<ResearchGroupViewVo> queryAnswerRecord(@Param("researchId") Long researchId, @Param("siteId")Long siteId);
List<Long> getFinshIdsByIds(@Param("ids")List<Long> ids, @Param("accountId")Long accountId,@Param("siteId") Long siteId);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yizhi.research.application.mapper.TrResearchAnswerMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.yizhi.research.application.vo.domain.TrResearchAnswer">
<id column="tb_id" property="id" />
<result column="tb_research_id" property="researchId" />
<result column="tb_name" property="name" />
<result column="tb_account_id" property="accountId" />
<result column="tb_start_time" property="startTime" />
<result column="tb_submit_time" property="submitTime" />
<result column="tb_duration" property="duration" />
<result column="tb_terminal_type" property="terminalType" />
<result column="tb_create_time" property="createTime" />
<result column="tb_create_by_id" property="createById" />
<result column="tb_create_by_name" property="createByName" />
<result column="tb_update_time" property="updateTime" />
<result column="tb_update_by_id" property="updateById" />
<result column="tb_update_by_name" property="updateByName" />
<result column="tb_company_id" property="companyId" />
<result column="tb_org_id" property="orgId" />
<result column="tb_site_id" property="siteId" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
tb.id AS tb_id
,tb.research_id AS tb_research_id
,tb.name AS tb_name
,tb.account_id AS tb_account_id
,tb.start_time AS tb_start_time
,tb.submit_time AS tb_submit_time
,tb.duration AS tb_duration
,tb.terminal_type AS tb_terminal_type
,tb.create_time AS tb_create_time
,tb.create_by_id AS tb_create_by_id
,tb.create_by_name AS tb_create_by_name
,tb.update_time AS tb_update_time
,tb.update_by_id AS tb_update_by_id
,tb.update_by_name AS tb_update_by_name
,tb.company_id AS tb_company_id
,tb.org_id AS tb_org_id
,tb.site_id AS tb_site_id
</sql>
<select id="checkResearchAnswer" resultType="Integer">
select count(*) from (
select re.start_time from research re
left join tr_research_answer answer on re.id=answer.research_id
inner join cloud_research.tr_research_authorize as authorize
on re.id = authorize.research_id and authorize.state = 1
where answer.research_id=#{researchId} and answer.finish=1
and <![CDATA[ re.end_time > #{date} ]]>and <![CDATA[ re.start_time < #{date} ]]>
and answer.id is null and answer.account_id = #{accountId}
<if test="visibleRange==2 and relationIds != null and relationIds.size > 0" >
and authorize.relation_id in
<foreach collection="relationIds" separator="," item="id" close=")" open="(">
#{id}
</foreach>
</if>
)t
</select>
<select id="checkResearchAnswerState" resultType="Integer">
select count(*) from (
select re.start_time from research re
left join tr_research_answer answer on re.id=answer.research_id
inner join cloud_research.tr_research_authorize as authorize
on re.id = authorize.research_id and authorize.state = 1
where answer.research_id=#{researchId} and answer.finish=1
and <![CDATA[ re.end_time < #{date} ]]>
and answer.id is null
<if test="visibleRange==2 and relationIds != null and relationIds.size > 0" >
and authorize.relation_id in
<foreach collection="relationIds" separator="," item="id" close=")" open="(">
#{id}
</foreach>
</if>
)t
</select>
<select id="selectFinishCount" resultType="Integer">
select count(*) from tr_research_answer where research_id=#{researchId} and finish = 1
</select>
<select id="selectLearnRecord" resultType="com.yizhi.research.application.vo.StatisticResearchMetadataVo">
SELECT b.id as researchId ,a.account_id as accountId ,1 as canState,1 as joinState ,MIN(a.submit_time) as finishTime,MIN(a.create_time) as researchAnswerCreateTime
FROM tr_research_answer a
LEFT JOIN research b ON a.research_id=b.id
WHERE a.research_id=b.id AND a.research_id=#{researchId} AND
<![CDATA[ DATE_FORMAT(a.submit_time, '%Y-%m-%d')>=DATE_FORMAT(#{startDate}, '%Y-%m-%d')]]>
AND
<![CDATA[ DATE_FORMAT(a.submit_time, '%Y-%m-%d')<=DATE_FORMAT(#{endDate}, '%Y-%m-%d')]]>
and a.finish = 1
GROUP BY a.account_id,DATE_FORMAT(a.create_time,'%Y-%m-%d'),a.research_id
</select>
<select id="queryAnswerRecord" resultType="com.yizhi.research.application.vo.report.ResearchGroupViewVo">
SELECT a.account_id as accountId ,a.submit_time as finishTime FROM tr_research_answer a
where a.finish = 1 and a.research_id = #{researchId} and a.site_id = #{siteId}
order by a.submit_time DESC
</select>
<select id="getFinshIdsByIds" resultType="java.lang.Long">
SELECT research_id FROM tr_research_answer c
where
c.account_id = #{accountId}
and c.site_id = #{siteId}
and c.finish = 1
<if test="ids != null and ids.size() > 0">
and c.research_id in (<foreach collection="ids" item="item" separator=",">#{item}</foreach>)
</if>
</select>
</mapper>
package com.yizhi.research.application.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.yizhi.research.application.vo.domain.TrResearchAnswerQuestion;
import com.yizhi.research.application.vo.domain.TrResearchQuestion;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* <p>
* 答案题目 Mapper 接口
* </p>
*
* @author shengchenglong
* @since 2018-03-12
*/
public interface TrResearchAnswerQuestionMapper extends BaseMapper<TrResearchAnswerQuestion> {
/**
* 批量插入
*
* @param list
* @return
*/
int batchInsert(@Param("list") List<TrResearchAnswerQuestion> list);
@Select("select * from tr_research_question where id in (select question_id from tr_research_answer_question " +
" where research_id = #{researchId} and account_id =#{accountId})")
List<TrResearchQuestion> selectListByAnswer(@Param("researchId") Long researchId, @Param("accountId")Long accountId);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yizhi.research.application.mapper.TrResearchAnswerQuestionMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.yizhi.research.application.vo.domain.TrResearchAnswerQuestion">
<id column="tb_id" property="id" />
<result column="tb_research_id" property="researchId" />
<result column="tb_answer_id" property="answerId" />
<result column="tb_question_id" property="questionId" />
<result column="tb_account_id" property="accountId" />
<result column="tb_create_time" property="createTime" />
<result column="tb_create_by_id" property="createById" />
<result column="tb_create_by_name" property="createByName" />
<result column="tb_update_time" property="updateTime" />
<result column="tb_update_by_id" property="updateById" />
<result column="tb_update_by_name" property="updateByName" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
tb.id AS tb_id
,tb.research_id AS tb_research_id
,tb.answer_id AS tb_answer_id
,tb.question_id AS tb_question_id
,tb.account_id AS tb_account_id
,tb.create_time AS tb_create_time
,tb.create_by_id AS tb_create_by_id
,tb.create_by_name AS tb_create_by_name
,tb.update_time AS tb_update_time
,tb.update_by_id AS tb_update_by_id
,tb.update_by_name AS tb_update_by_name
</sql>
<insert id="batchInsert">
insert into tr_research_answer_question
(id
,research_id
,answer_id
,question_id
,account_id
,create_time
,create_by_id
,create_by_name
,update_time
,update_by_id
,update_by_name)
values
<foreach collection="list" item="item" separator=",">
(#{item.id},
#{item.researchId},#{item.answerId},#{item.questionId},#{item.accountId},#{item.createTime},#{item.createById},
#{item.createByName},#{item.updateTime},#{item.updateById},#{item.updateByName})
</foreach>
</insert>
</mapper>
package com.yizhi.research.application.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.yizhi.research.application.vo.domain.TrResearchAnswerQuestionResult;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 答案选项 Mapper 接口
* </p>
*
* @author shengchenglong
* @since 2018-03-12
*/
public interface TrResearchAnswerQuestionResultMapper extends BaseMapper<TrResearchAnswerQuestionResult> {
/**
* 批量插入
*
* @param list
* @return
*/
int batchInsert(@Param("list") List<TrResearchAnswerQuestionResult> list);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yizhi.research.application.mapper.TrResearchAnswerQuestionResultMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.yizhi.research.application.vo.domain.TrResearchAnswerQuestionResult">
<id column="tb_id" property="id" />
<result column="tb_research_id" property="researchId" />
<result column="tb_answer_id" property="answerId" />
<result column="tb_answer_question_id" property="answerQuestionId" />
<result column="tb_question_type" property="questionType" />
<result column="tb_option_id" property="optionId" />
<result column="tb_content" property="content" />
<result column="tb_score" property="score" />
<result column="tb_create_time" property="createTime" />
<result column="tb_create_by_id" property="createById" />
<result column="tb_create_by_name" property="createByName" />
<result column="tb_update_time" property="updateTime" />
<result column="tb_update_by_id" property="updateById" />
<result column="tb_update_by_name" property="updateByName" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
tb.id AS tb_id
,tb.research_id AS tb_research_id
,tb.answer_id AS tb_answer_id
,tb.answer_question_id AS tb_answer_question_id
,tb.question_type AS tb_question_type
,tb.option_id AS tb_option_id
,tb.content AS tb_content
,tb.score AS tb_score
,tb.create_time AS tb_create_time
,tb.create_by_id AS tb_create_by_id
,tb.create_by_name AS tb_create_by_name
,tb.update_time AS tb_update_time
,tb.update_by_id AS tb_update_by_id
,tb.update_by_name AS tb_update_by_name
</sql>
<insert id="batchInsert">
insert into tr_research_answer_question_result
(id
,research_id
,answer_id
,answer_question_id
,question_type
,option_id
,content
,score
,create_time
,create_by_id
,create_by_name
,update_time
,update_by_id
,update_by_name)
values
<foreach collection="list" separator="," item="item">
(#{item.id},#{item.researchId},#{item.answerId},#{item.answerQuestionId},#{item.questionType},#{item.optionId},
#{item.content},#{item.score},#{item.createTime},#{item.createById},
#{item.createByName},#{item.updateTime},#{item.updateById},#{item.updateByName})
</foreach>
</insert>
</mapper>
package com.yizhi.research.application.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.yizhi.research.application.vo.domain.TrResearchAuthorize;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 调研用户范围 Mapper 接口
* </p>
*
* @author shengchenglong
* @since 2018-03-12
*/
public interface TrResearchAuthorizeMapper extends BaseMapper<TrResearchAuthorize> {
/**
* 查询指定范围内的可见调研id
*
* @param relationIds
* @return
*/
List<Long> getResearchIdsInRange(@Param("relationIds") List<Long> relationIds);
int batchInsert(@Param("list") List<TrResearchAuthorize> researchAuthorizes);
void deleteByResearchId(@Param("researchId") Long researchId);
List<Long> getUsefulIds(@Param("ids") List<Long> ids,@Param("relationIds") List<Long> relationIds,@Param("siteId") Long siteId);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yizhi.research.application.mapper.TrResearchAuthorizeMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.yizhi.research.application.vo.domain.TrResearchAuthorize">
<id column="tb_id" property="id" />
<result column="tb_research_id" property="researchId" />
<result column="tb_type" property="type" />
<result column="tb_relation_id" property="relationId" />
<result column="tb_state" property="state" />
<result column="tb_create_time" property="createTime" />
<result column="tb_create_by_id" property="createById" />
<result column="tb_create_by_name" property="createByName" />
<result column="tb_update_time" property="updateTime" />
<result column="tb_update_by_id" property="updateById" />
<result column="tb_update_by_name" property="updateByName" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
tb.id AS tb_id
,tb.research_id AS tb_research_id
,tb.type AS tb_type
,tb.relation_id AS tb_relation_id
,tb.state AS tb_state
,tb.create_time AS tb_create_time
,tb.create_by_id AS tb_create_by_id
,tb.create_by_name AS tb_create_by_name
,tb.update_time AS tb_update_time
,tb.update_by_id AS tb_update_by_id
,tb.update_by_name AS tb_update_by_name
</sql>
<select id="getResearchIdsInRange" resultType="java.lang.Long">
SELECT tb.research_id
FROM tr_research_authorize tb
WHERE
tb.state = 1
AND relation_id in
(<foreach collection="relationIds" item="item" separator=",">#{item}</foreach>)
</select>
<insert id="batchInsert">
insert into tr_research_authorize
(id
,name
,research_id
,type
,relation_id
,site_id
,state
,create_by_id
,create_time
,create_by_name)
values
<foreach collection="list" separator="," item="item">
<if test="item != null">
(#{item.id},#{item.name},#{item.researchId},#{item.type},#{item.relationId},#{item.siteId},#{item.state},
#{item.createById},#{item.createTime},#{item.createByName})
</if>
</foreach>
</insert>
<!-- <delete id="deleteByResearchId">-->
<!-- delete from tr_research_authorize where research_id=#{researchId}-->
<!-- </delete>-->
<update id="deleteByResearchId">
update tr_research_authorize set state = 0 where research_id=#{researchId}
</update>
<select id="getUsefulIds" resultType="java.lang.Long">
<if test="relationIds != null">
select research_id
from tr_research_authorize
<where>
deleted = 0
and site_id = #{siteId}
and relation_id in
<foreach collection="relationIds" open="(" close=")" item="item" separator=",">
#{item}
</foreach>
<if test="ids != null and ids.size()>0">
and research_id in <foreach collection="ids" open="(" close=")" item="id" separator=","> #{id} </foreach>
</if>
</where>
</if>
</select>
</mapper>
This diff is collapsed. Click to expand it.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment