Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: 问卷保存,获取,查询历史记录,获取banner配置接口开发 #297

Merged
merged 1 commit into from
Jun 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.xiaojusurvey.engine.common.entity.survey;

import com.xiaojusurvey.engine.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.Map;

/**
* @Author: maple
* @CreateTime: 2024/6/7 21:27
* @Description: 问卷配置
*/
@Document("surveyConf")
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Data
public class SurveyConf extends BaseEntity {

private String pageId;

private Map<String, Object> code;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.xiaojusurvey.engine.common.entity.survey;

import com.xiaojusurvey.engine.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.Map;

/**
* @Author: maple
* @CreateTime: 2024/6/7 21:28
* @Description: 问卷历史记录
*/
@Document("surveyHistory")
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Data
public class SurveyHistory extends BaseEntity {

private String pageId;

private String type;

private Map<String, Object> schema;

private Map<String, Object> operator;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.xiaojusurvey.engine.common.enums;

import lombok.Getter;

/**
* @Author: maple
* @CreateTime: 2024/6/10 21:28
* @Description: 历史记录枚举值
*/
@Getter
public enum HistoryTypeEnum {

//保存历史
DAILY_HIS("dailyHis"),

//发布历史
PUBLISH_HIS("publishHis");

private final String historyType;

HistoryTypeEnum(String historyType) {
this.historyType = historyType;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.xiaojusurvey.engine.core.survey;

import com.xiaojusurvey.engine.common.entity.survey.SurveyConf;

public interface SurveyConfService {

void saveSurveyConfig(SurveyConf surveyConf);

SurveyConf getSurveyConfBySurveyId(String surveyId);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.xiaojusurvey.engine.core.survey;

import com.xiaojusurvey.engine.common.entity.survey.SurveyHistory;

import java.util.List;

public interface SurveyHistoryService {

SurveyHistory addHistory(SurveyHistory surveyHistory);

List<SurveyHistory> getHistoryList(String surveyId, String historyType);
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,6 @@
*/
public interface SurveyService {
IdResult createSurvey(SurveyMeta surveyMeta);

SurveyMeta getSurveyMeta(String surveyId);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package com.xiaojusurvey.engine.core.survey.impl;

import com.xiaojusurvey.engine.common.constants.RespErrorCode;
import com.xiaojusurvey.engine.common.entity.survey.SurveyConf;
import com.xiaojusurvey.engine.common.exception.ServiceException;
import com.xiaojusurvey.engine.core.survey.SurveyConfService;
import com.xiaojusurvey.engine.repository.MongoRepository;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
* @Author: maple
* @CreateTime: 2024/6/9 13:52
* @Description:
*/
@Service
public class SurveyConfServiceImpl implements SurveyConfService {

@Resource
private MongoRepository mongoRepository;

@Override
public void saveSurveyConfig(SurveyConf surveyConf) {
SurveyConf codeInfo = this.getSurveyConfBySurveyId(surveyConf.getPageId());
if (null == codeInfo) {
throw new ServiceException(RespErrorCode.SURVEY_NOT_FOUND.getMessage(), RespErrorCode.SURVEY_NOT_FOUND.getCode());
}
codeInfo.setCode(surveyConf.getCode());
codeInfo.setUpdateDate(System.currentTimeMillis());
mongoRepository.save(codeInfo);
}

@Override
public SurveyConf getSurveyConfBySurveyId(String surveyId) {
Criteria criteria = Criteria.where("pageId").is(surveyId);
Query query = new Query(criteria);
return this.mongoRepository.findOne(query, SurveyConf.class);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package com.xiaojusurvey.engine.core.survey.impl;

import com.xiaojusurvey.engine.common.entity.survey.SurveyHistory;
import com.xiaojusurvey.engine.core.survey.SurveyHistoryService;
import com.xiaojusurvey.engine.repository.MongoRepository;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
* @Author: maple
* @CreateTime: 2024/6/10 21:29
* @Description: 问卷历史记录服务
*/
@Service
public class SurveyHistoryServiceImpl implements SurveyHistoryService {

@Resource
private MongoRepository mongoRepository;

@Override
public SurveyHistory addHistory(SurveyHistory surveyHistory) {
return mongoRepository.save(surveyHistory);
}

@Override
public List<SurveyHistory> getHistoryList(String surveyId, String historyType) {
// 组合查询条件
Query query = new Query();
query.addCriteria(Criteria.where("pageId").is(surveyId))
.addCriteria(Criteria.where("type").is(historyType));

// 设置查询选项
query.limit(100);
query.with(Sort.by(Sort.Direction.DESC, "createDate"));

// 选择查询的字段
query.fields().include("createDate").include("operator").include("type").include("_id");
return mongoRepository.page(query, 0, 100, SurveyHistory.class);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import com.xiaojusurvey.engine.core.reslut.IdResult;
import com.xiaojusurvey.engine.core.survey.SurveyService;
import com.xiaojusurvey.engine.repository.MongoRepository;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
Expand All @@ -18,6 +20,7 @@ public class SurveyServiceImpl implements SurveyService {

@Resource
private MongoRepository mongoRepository;

/**
* 创建问卷
*/
Expand All @@ -27,4 +30,11 @@ public IdResult createSurvey(SurveyMeta surveyMeta) {
idResult.setId(mongoRepository.save(surveyMeta).getId());
return idResult;
}

@Override
public SurveyMeta getSurveyMeta(String surveyId) {
Query query = new Query();
query.addCriteria(Criteria.where("_id").is(surveyId));
return mongoRepository.findOne(query, SurveyMeta.class);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.xiaojusurvey.engine.core.survey.vo;

import lombok.Data;

import java.util.Map;

/**
* @Author: maple
* @CreateTime: 2024/6/15 20:16
* @Description:
*/
@Data
public class SurveyHistoryOutVO {

private String id;

private String type;

private Long createDate;

private Map<String, Object> operator;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.xiaojusurvey.engine.core.survey.vo;

import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Map;

/**
* @Author: maple
* @CreateTime: 2024/6/9 13:40
* @Description:
*/
@Data
public class SurveyInfoInVO {

@NotBlank(message = "问卷id不能为空", groups = {UpdateConf.class})
private String surveyId;

@NotNull(message = "问卷数据不能为空", groups = {UpdateConf.class})
private Map<String, Object> configData;

public interface UpdateConf {
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.xiaojusurvey.engine.core.survey.vo;

import com.xiaojusurvey.engine.common.entity.survey.SurveyConf;
import com.xiaojusurvey.engine.common.entity.survey.SurveyMeta;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
* @Author: maple
* @CreateTime: 2024/6/9 14:16
* @Description:
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SurveyInfoOutVO {

private SurveyMeta surveyMetaRes;

private SurveyConf surveyConfRes;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package com.xiaojusurvey.engine.config;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.Resource;

import java.nio.charset.StandardCharsets;
import java.nio.file.Files;

/**
* @Author: maple
* @CreateTime: 2024/6/9 14:23
* @Description:
*/
@Getter
@Configuration
@Slf4j
public class BannerDataConfig implements InitializingBean {

@Value("classpath:banner.json")
private Resource bannerResource;

private JSONObject bannerData;

@Override
public void afterPropertiesSet() throws Exception {
try {
String bannerContent = new String(Files.readAllBytes(bannerResource.getFile().toPath()), StandardCharsets.UTF_8);
bannerData = JSON.parseObject(bannerContent);
} catch (Exception e) {
log.error("Initializing BannerDataConfig fail, e:", e);
}
}

}
Loading