[Feature] 新增问卷发布功能 (#372)
* feat: 1,添加修改问卷,删除问卷接口,修改创建问卷 部分逻辑 2,添加修改问卷,删除问卷接口单元测试 * feat: 1,添加修改问卷,删除问卷接口,修改创建问卷 部分逻辑 2,添加修改问卷,删除问卷接口单元测试 * style:代码格式化调整 * style:代码格式化调整 * feat:新增发布问卷接口,同时修改了创建问卷接口 --------- Co-authored-by: kui <likui@jiuhy.cn>
This commit is contained in:
parent
ad42623ce9
commit
c52a6ddaa1
2
pom.xml
2
pom.xml
@ -29,7 +29,7 @@
|
|||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<java.compiler.source.version>1.8</java.compiler.source.version>
|
<java.compiler.source.version>1.8</java.compiler.source.version>
|
||||||
<java.compiler.target.version>1.8</java.compiler.target.version>
|
<java.compiler.target.version>1.8</java.compiler.target.version>
|
||||||
<lombok.version>1.18.8</lombok.version>
|
<lombok.version>1.18.20</lombok.version>
|
||||||
<junit.version>4.12</junit.version>
|
<junit.version>4.12</junit.version>
|
||||||
<lang3.version>3.14.0</lang3.version>
|
<lang3.version>3.14.0</lang3.version>
|
||||||
<fastjson.version>1.2.83</fastjson.version>
|
<fastjson.version>1.2.83</fastjson.version>
|
||||||
|
@ -18,6 +18,7 @@ public enum RespErrorCode {
|
|||||||
SURVEY_CONTENT_NOT_ALLOW(3005, "存在禁用内容"),
|
SURVEY_CONTENT_NOT_ALLOW(3005, "存在禁用内容"),
|
||||||
UPDATE_SURVEY_META_ERROR(3006, "修改问卷失败"),
|
UPDATE_SURVEY_META_ERROR(3006, "修改问卷失败"),
|
||||||
DELETE_SURVEY_ERROR(3007, "删除问卷失败"),
|
DELETE_SURVEY_ERROR(3007, "删除问卷失败"),
|
||||||
|
PUBLISH_SURVEY_ERROR(3008, "发布问卷失败"),
|
||||||
CAPTCHA_INCORRECT(4001, "验证码不正确"),
|
CAPTCHA_INCORRECT(4001, "验证码不正确"),
|
||||||
RESPONSE_SIGN_ERROR(9001, "签名不正确"),
|
RESPONSE_SIGN_ERROR(9001, "签名不正确"),
|
||||||
RESPONSE_CURRENT_TIME_NOT_ALLOW(9002, "当前时间不允许提交"),
|
RESPONSE_CURRENT_TIME_NOT_ALLOW(9002, "当前时间不允许提交"),
|
||||||
@ -27,8 +28,6 @@ public enum RespErrorCode {
|
|||||||
UPLOAD_FILE_ERROR(5001, "上传文件错误");
|
UPLOAD_FILE_ERROR(5001, "上传文件错误");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private final int code;
|
private final int code;
|
||||||
private final String message;
|
private final String message;
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@ import org.springframework.data.mongodb.core.mapping.Document;
|
|||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 问卷发布后的配置表
|
* 问卷发布后的配置表
|
||||||
@ -15,7 +16,7 @@ import javax.validation.constraints.NotNull;
|
|||||||
* @author likui63@163.com
|
* @author likui63@163.com
|
||||||
* @date: 2024/7/27 13:59
|
* @date: 2024/7/27 13:59
|
||||||
*/
|
*/
|
||||||
@Document("surveySubmit")
|
@Document("surveyPublish")
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
@ -45,7 +46,7 @@ public class SurveyPublish extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
@NotBlank(message = "问卷schema不能为空")
|
@NotBlank(message = "问卷schema不能为空")
|
||||||
@NotNull(message = "问卷schema不能为空")
|
@NotNull(message = "问卷schema不能为空")
|
||||||
private String code;
|
private Map<String, Object> code;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -43,6 +43,12 @@
|
|||||||
<artifactId>junit</artifactId>
|
<artifactId>junit</artifactId>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.mockito</groupId>
|
||||||
|
<artifactId>mockito-inline</artifactId>
|
||||||
|
<version>4.3.0</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,8 +2,11 @@ package com.xiaojusurvey.engine.core.survey;
|
|||||||
|
|
||||||
import com.xiaojusurvey.engine.common.entity.survey.SurveyConf;
|
import com.xiaojusurvey.engine.common.entity.survey.SurveyConf;
|
||||||
|
|
||||||
|
|
||||||
public interface SurveyConfService {
|
public interface SurveyConfService {
|
||||||
|
|
||||||
|
void createSurveyConf(SurveyConf surveyConf);
|
||||||
|
|
||||||
void saveSurveyConfig(SurveyConf surveyConf);
|
void saveSurveyConfig(SurveyConf surveyConf);
|
||||||
|
|
||||||
SurveyConf getSurveyConfBySurveyId(String surveyId);
|
SurveyConf getSurveyConfBySurveyId(String surveyId);
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package com.xiaojusurvey.engine.core.survey;
|
package com.xiaojusurvey.engine.core.survey;
|
||||||
|
|
||||||
import com.xiaojusurvey.engine.common.entity.survey.SurveyMeta;
|
import com.xiaojusurvey.engine.common.entity.survey.SurveyMeta;
|
||||||
|
import com.xiaojusurvey.engine.common.entity.survey.SurveyPublish;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 问卷发布配置服务
|
* 问卷发布配置服务
|
||||||
@ -10,6 +11,9 @@ import com.xiaojusurvey.engine.common.entity.survey.SurveyMeta;
|
|||||||
*/
|
*/
|
||||||
public interface SurveyPublishService {
|
public interface SurveyPublishService {
|
||||||
|
|
||||||
|
boolean save(SurveyPublish surveyPublish);
|
||||||
|
|
||||||
boolean delete(SurveyMeta param);
|
boolean delete(SurveyMeta param);
|
||||||
|
|
||||||
|
SurveyPublish getByPageId(String surveyId);
|
||||||
}
|
}
|
||||||
|
@ -17,4 +17,15 @@ public interface SurveyService {
|
|||||||
boolean updateMeta(SurveyMetaUpdateParam param);
|
boolean updateMeta(SurveyMetaUpdateParam param);
|
||||||
|
|
||||||
boolean deleteSurvey(String surveyId);
|
boolean deleteSurvey(String surveyId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发布问卷
|
||||||
|
*
|
||||||
|
* @param surveyId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
boolean publishSurvey(String surveyId);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,11 @@ public class SurveyConfServiceImpl implements SurveyConfService {
|
|||||||
@Resource
|
@Resource
|
||||||
private MongoRepository mongoRepository;
|
private MongoRepository mongoRepository;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void createSurveyConf(SurveyConf surveyConf) {
|
||||||
|
mongoRepository.save(surveyConf);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void saveSurveyConfig(SurveyConf surveyConf) {
|
public void saveSurveyConfig(SurveyConf surveyConf) {
|
||||||
SurveyConf codeInfo = this.getSurveyConfBySurveyId(surveyConf.getPageId());
|
SurveyConf codeInfo = this.getSurveyConfBySurveyId(surveyConf.getPageId());
|
||||||
|
@ -33,6 +33,12 @@ public class SurveyPublishServiceImpl implements SurveyPublishService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean save(SurveyPublish surveyPublish) {
|
||||||
|
SurveyPublish ret = mongoRepository.save(surveyPublish);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean delete(SurveyMeta param) {
|
public boolean delete(SurveyMeta param) {
|
||||||
if (StringUtils.hasLength(param.getSurveyPath())) {
|
if (StringUtils.hasLength(param.getSurveyPath())) {
|
||||||
@ -47,6 +53,14 @@ public class SurveyPublishServiceImpl implements SurveyPublishService {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SurveyPublish getByPageId(String surveyId) {
|
||||||
|
Query query = new Query();
|
||||||
|
query.addCriteria(Criteria.where("pageId").is(surveyId));
|
||||||
|
SurveyPublish surveyPublish = mongoRepository.findOne(query, SurveyPublish.class);
|
||||||
|
return surveyPublish;
|
||||||
|
}
|
||||||
|
|
||||||
public SurveyPublish getBysurveyPath(String surveyPath) {
|
public SurveyPublish getBysurveyPath(String surveyPath) {
|
||||||
Query query = new Query();
|
Query query = new Query();
|
||||||
query.addCriteria(Criteria.where("surveyPath").is(surveyPath));
|
query.addCriteria(Criteria.where("surveyPath").is(surveyPath));
|
||||||
|
@ -1,14 +1,24 @@
|
|||||||
package com.xiaojusurvey.engine.core.survey.impl;
|
package com.xiaojusurvey.engine.core.survey.impl;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import com.xiaojusurvey.engine.common.constants.RespErrorCode;
|
import com.xiaojusurvey.engine.common.constants.RespErrorCode;
|
||||||
import com.xiaojusurvey.engine.common.entity.Status;
|
import com.xiaojusurvey.engine.common.entity.Status;
|
||||||
|
import com.xiaojusurvey.engine.common.entity.survey.SurveyConf;
|
||||||
|
import com.xiaojusurvey.engine.common.entity.survey.SurveyHistory;
|
||||||
import com.xiaojusurvey.engine.common.entity.survey.SurveyMeta;
|
import com.xiaojusurvey.engine.common.entity.survey.SurveyMeta;
|
||||||
|
import com.xiaojusurvey.engine.common.entity.survey.SurveyPublish;
|
||||||
|
import com.xiaojusurvey.engine.common.entity.user.User;
|
||||||
|
import com.xiaojusurvey.engine.common.enums.HistoryTypeEnum;
|
||||||
import com.xiaojusurvey.engine.common.enums.SurveyStatusEnum;
|
import com.xiaojusurvey.engine.common.enums.SurveyStatusEnum;
|
||||||
import com.xiaojusurvey.engine.common.exception.ServiceException;
|
import com.xiaojusurvey.engine.common.exception.ServiceException;
|
||||||
import com.xiaojusurvey.engine.core.reslut.IdResult;
|
import com.xiaojusurvey.engine.core.reslut.IdResult;
|
||||||
|
import com.xiaojusurvey.engine.core.survey.SurveyConfService;
|
||||||
|
import com.xiaojusurvey.engine.core.survey.SurveyHistoryService;
|
||||||
import com.xiaojusurvey.engine.core.survey.SurveyPublishService;
|
import com.xiaojusurvey.engine.core.survey.SurveyPublishService;
|
||||||
import com.xiaojusurvey.engine.core.survey.SurveyService;
|
import com.xiaojusurvey.engine.core.survey.SurveyService;
|
||||||
import com.xiaojusurvey.engine.core.survey.param.SurveyMetaUpdateParam;
|
import com.xiaojusurvey.engine.core.survey.param.SurveyMetaUpdateParam;
|
||||||
|
import com.xiaojusurvey.engine.core.util.WebUtils;
|
||||||
import com.xiaojusurvey.engine.repository.MongoRepository;
|
import com.xiaojusurvey.engine.repository.MongoRepository;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.data.mongodb.core.query.Criteria;
|
import org.springframework.data.mongodb.core.query.Criteria;
|
||||||
@ -18,7 +28,9 @@ import org.springframework.stereotype.Service;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: LYF
|
* @Author: LYF
|
||||||
@ -35,6 +47,12 @@ public class SurveyServiceImpl implements SurveyService {
|
|||||||
@Resource
|
@Resource
|
||||||
private SurveyPublishService surveyPublishService;
|
private SurveyPublishService surveyPublishService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private SurveyConfService surveyConfService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private SurveyHistoryService surveyHistoryService;
|
||||||
|
|
||||||
public MongoRepository getMongoRepository() {
|
public MongoRepository getMongoRepository() {
|
||||||
return mongoRepository;
|
return mongoRepository;
|
||||||
}
|
}
|
||||||
@ -54,6 +72,17 @@ public class SurveyServiceImpl implements SurveyService {
|
|||||||
List<Status> statusList = Arrays.asList(newStatus);
|
List<Status> statusList = Arrays.asList(newStatus);
|
||||||
surveyMeta.setStatusList(statusList);
|
surveyMeta.setStatusList(statusList);
|
||||||
idResult.setId(mongoRepository.save(surveyMeta).getId());
|
idResult.setId(mongoRepository.save(surveyMeta).getId());
|
||||||
|
//保存survyConf
|
||||||
|
SurveyConf conf = new SurveyConf();
|
||||||
|
conf.setPageId(idResult.getId());
|
||||||
|
Map map = new HashMap<>(4);
|
||||||
|
conf.setCode(map);
|
||||||
|
// conf.setId("");
|
||||||
|
// conf.setCreateDate(0L);
|
||||||
|
// conf.setUpdateDate(0L);
|
||||||
|
conf.setCurStatus(new Status());
|
||||||
|
conf.setStatusList(new ArrayList<Status>());
|
||||||
|
surveyConfService.createSurveyConf(conf);
|
||||||
return idResult;
|
return idResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -104,5 +133,47 @@ public class SurveyServiceImpl implements SurveyService {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean publishSurvey(String surveyId) {
|
||||||
|
//1,查询问卷配置
|
||||||
|
SurveyConf conf = surveyConfService.getSurveyConfBySurveyId(surveyId);
|
||||||
|
SurveyMeta meta = getSurveyMeta(surveyId);
|
||||||
|
//2,surveyMeta保存
|
||||||
|
Status pub = SurveyStatusEnum.getSpecStatus(SurveyStatusEnum.PUBLISHED);
|
||||||
|
meta.setCurStatus(pub);
|
||||||
|
meta.getStatusList().add(pub);
|
||||||
|
mongoRepository.save(meta);
|
||||||
|
|
||||||
|
//3,保存问卷配置到publish表
|
||||||
|
SurveyPublish publish = new SurveyPublish();
|
||||||
|
publish.setPageId(surveyId);
|
||||||
|
publish.setTitle(meta.getTitle());
|
||||||
|
publish.setSurveyPath(meta.getSurveyPath());
|
||||||
|
publish.setCode(conf.getCode());
|
||||||
|
// publish.setId("");
|
||||||
|
// publish.setCreateDate(0L);
|
||||||
|
// publish.setUpdateDate(0L);
|
||||||
|
// Status pub = SurveyStatusEnum.getSpecStatus(SurveyStatusEnum.PUBLISHED);
|
||||||
|
publish.setCurStatus(pub);
|
||||||
|
publish.setStatusList(Arrays.asList(pub));
|
||||||
|
surveyPublishService.save(publish);
|
||||||
|
|
||||||
|
//4,保存history
|
||||||
|
SurveyHistory his = new SurveyHistory();
|
||||||
|
his.setPageId(conf.getId());
|
||||||
|
his.setSchema(conf.getCode());
|
||||||
|
his.setType(HistoryTypeEnum.PUBLISH_HIS.getHistoryType());
|
||||||
|
User user = (User) WebUtils.getHttpServletRequest().getAttribute("user");
|
||||||
|
Map<String, Object> opt = new HashMap<>(4);
|
||||||
|
opt.put("_id", user.getId());
|
||||||
|
opt.put("username", user.getUsername());
|
||||||
|
his.setOperator(opt);
|
||||||
|
Status st = SurveyStatusEnum.getSpecStatus(SurveyStatusEnum.NEW);
|
||||||
|
his.setCurStatus(st);
|
||||||
|
his.setStatusList(Arrays.asList(st));
|
||||||
|
surveyHistoryService.addHistory(his);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,53 @@
|
|||||||
|
//package com.xiaojusurvey.engine.core.survey.vo;
|
||||||
|
//
|
||||||
|
//import com.xiaojusurvey.engine.common.entity.Status;
|
||||||
|
//
|
||||||
|
//import javax.validation.constraints.NotBlank;
|
||||||
|
//import javax.validation.constraints.NotNull;
|
||||||
|
//
|
||||||
|
///**
|
||||||
|
// * 问卷信息
|
||||||
|
// *
|
||||||
|
// * @author likui63@163.com
|
||||||
|
// * @Date 2024/7/28 21:57
|
||||||
|
// */
|
||||||
|
//public class SurveyVO {
|
||||||
|
//
|
||||||
|
// private String _id;
|
||||||
|
//
|
||||||
|
// private String name;
|
||||||
|
// /**
|
||||||
|
// * 问卷类型
|
||||||
|
// */
|
||||||
|
// @NotBlank(message = "问卷类型不能为空")
|
||||||
|
// @NotNull(message = "问卷类型不能为空")
|
||||||
|
// private String surveyType;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 问卷短链
|
||||||
|
// */
|
||||||
|
// private String surveyPath;
|
||||||
|
// /**
|
||||||
|
// * 问卷标题
|
||||||
|
// */
|
||||||
|
// private String title;
|
||||||
|
// /**
|
||||||
|
// * 当前状态
|
||||||
|
// */
|
||||||
|
// private Status curStatus;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 创建时间
|
||||||
|
// */
|
||||||
|
// private Long createDate;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 创建人
|
||||||
|
// */
|
||||||
|
// private String creator;
|
||||||
|
// /**
|
||||||
|
// * 所有者
|
||||||
|
// */
|
||||||
|
// private String owner;
|
||||||
|
//
|
||||||
|
//}
|
@ -0,0 +1,97 @@
|
|||||||
|
package com.xiaojusurvey.engine.core.util;
|
||||||
|
|
||||||
|
import org.springframework.web.context.request.RequestContextHolder;
|
||||||
|
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||||
|
|
||||||
|
import javax.servlet.ServletContext;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
|
import java.net.InetAddress;
|
||||||
|
import java.net.UnknownHostException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author likui63@163.com
|
||||||
|
* @Date 2024/7/30 19:15
|
||||||
|
*/
|
||||||
|
public class WebUtils {
|
||||||
|
|
||||||
|
private static final String LOCALHOST = "127.0.0.1";
|
||||||
|
private static final String DOT = ".";
|
||||||
|
private static final int IP_LEN_0 = 0;
|
||||||
|
private static final int IP_LEN_15 = 15;
|
||||||
|
private static final String HEADER_X_FORWARDED_FOR = "x-forwarded-for";
|
||||||
|
private static final String HEADER_PROXY_CLIENT_IP = "Proxy-Client-IP";
|
||||||
|
private static final String HEADER_WL_PROXY_CLIENT_IP = "WL-Proxy-Client-IP";
|
||||||
|
private static final String UNKNOWN = "unknown";
|
||||||
|
|
||||||
|
|
||||||
|
public static ServletRequestAttributes getServletRequestAttributes() {
|
||||||
|
return (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 得到当前线程的请求对象
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static HttpServletRequest getHttpServletRequest() {
|
||||||
|
return getServletRequestAttributes().getRequest();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 得到访问的ip地址
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getRequestIp() {
|
||||||
|
HttpServletRequest request = getHttpServletRequest();
|
||||||
|
String ip = null;
|
||||||
|
ip = request.getHeader(HEADER_X_FORWARDED_FOR);
|
||||||
|
if ((ip == null) || (ip.length() == IP_LEN_0) || (UNKNOWN.equalsIgnoreCase(ip))) {
|
||||||
|
ip = request.getHeader(HEADER_PROXY_CLIENT_IP);
|
||||||
|
}
|
||||||
|
if ((ip == null) || (ip.length() == IP_LEN_0) || (UNKNOWN.equalsIgnoreCase(ip))) {
|
||||||
|
ip = request.getHeader(HEADER_WL_PROXY_CLIENT_IP);
|
||||||
|
}
|
||||||
|
if ((ip == null) || (ip.length() == IP_LEN_0) || (UNKNOWN.equalsIgnoreCase(ip))) {
|
||||||
|
ip = request.getRemoteAddr();
|
||||||
|
if (LOCALHOST.equals(ip)) {
|
||||||
|
InetAddress inet = null;
|
||||||
|
try {
|
||||||
|
inet = InetAddress.getLocalHost();
|
||||||
|
} catch (UnknownHostException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
ip = inet.getHostAddress();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((ip != null) && (ip.length() > IP_LEN_15)) {
|
||||||
|
if (ip.indexOf(DOT) > IP_LEN_0) {
|
||||||
|
ip = ip.substring(IP_LEN_0, ip.indexOf(","));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ip;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 得到当前线程的响应对象
|
||||||
|
*/
|
||||||
|
public static HttpServletResponse getHttpServletResponse() {
|
||||||
|
return getServletRequestAttributes().getResponse();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 得到session对象
|
||||||
|
*/
|
||||||
|
public static HttpSession getHttpSession() {
|
||||||
|
return getHttpServletRequest().getSession();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 得到servletContext对象
|
||||||
|
*/
|
||||||
|
public static ServletContext getServletContext() {
|
||||||
|
return getHttpServletRequest().getServletContext();
|
||||||
|
}
|
||||||
|
}
|
@ -2,24 +2,31 @@ package com.xiaojusurvey.engine.core.survey.impl;
|
|||||||
|
|
||||||
|
|
||||||
import com.xiaojusurvey.engine.common.entity.Status;
|
import com.xiaojusurvey.engine.common.entity.Status;
|
||||||
|
import com.xiaojusurvey.engine.common.entity.survey.SurveyConf;
|
||||||
import com.xiaojusurvey.engine.common.entity.survey.SurveyMeta;
|
import com.xiaojusurvey.engine.common.entity.survey.SurveyMeta;
|
||||||
|
import com.xiaojusurvey.engine.common.entity.user.User;
|
||||||
import com.xiaojusurvey.engine.common.enums.SurveyStatusEnum;
|
import com.xiaojusurvey.engine.common.enums.SurveyStatusEnum;
|
||||||
|
import com.xiaojusurvey.engine.core.survey.SurveyConfService;
|
||||||
|
import com.xiaojusurvey.engine.core.survey.SurveyHistoryService;
|
||||||
import com.xiaojusurvey.engine.core.survey.SurveyPublishService;
|
import com.xiaojusurvey.engine.core.survey.SurveyPublishService;
|
||||||
import com.xiaojusurvey.engine.core.survey.param.SurveyMetaUpdateParam;
|
import com.xiaojusurvey.engine.core.survey.param.SurveyMetaUpdateParam;
|
||||||
|
import com.xiaojusurvey.engine.core.util.WebUtils;
|
||||||
import com.xiaojusurvey.engine.repository.MongoRepository;
|
import com.xiaojusurvey.engine.repository.MongoRepository;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
import org.junit.platform.engine.TestTag;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.mockito.InjectMocks;
|
import org.mockito.InjectMocks;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
|
import org.mockito.MockedStatic;
|
||||||
|
import org.mockito.Mockito;
|
||||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
|
||||||
import static org.mockito.Mockito.when;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 问卷service单元测试
|
* 问卷service单元测试
|
||||||
@ -36,6 +43,12 @@ public class SurveyServiceImplTest {
|
|||||||
@Mock
|
@Mock
|
||||||
SurveyPublishService surveyPublishService;
|
SurveyPublishService surveyPublishService;
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
SurveyConfService surveyConfService;
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
SurveyHistoryService surveyHistoryService;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
MongoRepository mongoRepository;
|
MongoRepository mongoRepository;
|
||||||
|
|
||||||
@ -67,7 +80,7 @@ public class SurveyServiceImplTest {
|
|||||||
updateParam.setTitle("新时代");
|
updateParam.setTitle("新时代");
|
||||||
updateParam.setRemark("这是一个测试");
|
updateParam.setRemark("这是一个测试");
|
||||||
|
|
||||||
when(mongoRepository.findOne(any(),any())).thenReturn(surveyMeta);
|
Mockito.when(mongoRepository.findOne(Mockito.any(),Mockito.any())).thenReturn(surveyMeta);
|
||||||
|
|
||||||
boolean flag = surveyService.updateMeta(updateParam);
|
boolean flag = surveyService.updateMeta(updateParam);
|
||||||
Assert.assertEquals(true,flag);
|
Assert.assertEquals(true,flag);
|
||||||
@ -77,11 +90,32 @@ public class SurveyServiceImplTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void deleteSurveyTest() {
|
public void deleteSurveyTest() {
|
||||||
when(mongoRepository.findOne(any(),any())).thenReturn(surveyMeta);
|
Mockito.when(mongoRepository.findOne(Mockito.any(),Mockito.any())).thenReturn(surveyMeta);
|
||||||
when(surveyPublishService.delete(any())).thenReturn(true);
|
Mockito.when(surveyPublishService.delete(Mockito.any())).thenReturn(true);
|
||||||
boolean flag = surveyService.deleteSurvey(surveyid);
|
boolean flag = surveyService.deleteSurvey(surveyid);
|
||||||
Assert.assertEquals(true,flag);
|
Assert.assertEquals(true,flag);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void publishSurveyTest(){
|
||||||
|
SurveyConf conf = new SurveyConf();
|
||||||
|
|
||||||
|
Mockito.when(surveyConfService.getSurveyConfBySurveyId(Mockito.any())).thenReturn(conf);
|
||||||
|
Mockito.when(mongoRepository.findOne(Mockito.any(),Mockito.eq(SurveyMeta.class))).thenReturn(surveyMeta);
|
||||||
|
Mockito.when(mongoRepository.save(Mockito.any())).thenReturn(null);
|
||||||
|
Mockito.when(surveyPublishService.save(Mockito.any())).thenReturn(true);
|
||||||
|
Mockito.when(surveyHistoryService.addHistory(Mockito.any())).thenReturn(null);
|
||||||
|
Mockito.mockStatic(WebUtils.class);
|
||||||
|
HttpServletRequest req = Mockito.mock(HttpServletRequest.class);
|
||||||
|
Mockito.when(WebUtils.getHttpServletRequest()).thenReturn(req);
|
||||||
|
User user = new User();
|
||||||
|
user.setId("123");
|
||||||
|
user.setUsername("ttt");
|
||||||
|
Mockito.when(req.getAttribute("user")).thenReturn(user);
|
||||||
|
boolean falg = surveyService.publishSurvey(surveyid);
|
||||||
|
Assert.assertTrue("成功",falg == true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -16,6 +16,7 @@ import com.xiaojusurvey.engine.core.survey.SurveyService;
|
|||||||
import com.xiaojusurvey.engine.core.survey.param.SurveyMetaUpdateParam;
|
import com.xiaojusurvey.engine.core.survey.param.SurveyMetaUpdateParam;
|
||||||
import com.xiaojusurvey.engine.core.survey.vo.SurveyInfoInVO;
|
import com.xiaojusurvey.engine.core.survey.vo.SurveyInfoInVO;
|
||||||
import com.xiaojusurvey.engine.core.survey.vo.SurveyInfoOutVO;
|
import com.xiaojusurvey.engine.core.survey.vo.SurveyInfoOutVO;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@ -32,6 +33,7 @@ import java.util.Map;
|
|||||||
*/
|
*/
|
||||||
@RequestMapping("/api/survey")
|
@RequestMapping("/api/survey")
|
||||||
@RestController
|
@RestController
|
||||||
|
@Slf4j
|
||||||
public class SurveyController {
|
public class SurveyController {
|
||||||
@Resource
|
@Resource
|
||||||
private SurveyService surveyService;
|
private SurveyService surveyService;
|
||||||
@ -126,4 +128,22 @@ public class SurveyController {
|
|||||||
}
|
}
|
||||||
return RpcResultUtil.createFailedResult(RespErrorCode.DELETE_SURVEY_ERROR.getCode(), RespErrorCode.DELETE_SURVEY_ERROR.getMessage());
|
return RpcResultUtil.createFailedResult(RespErrorCode.DELETE_SURVEY_ERROR.getCode(), RespErrorCode.DELETE_SURVEY_ERROR.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发布问卷
|
||||||
|
*
|
||||||
|
* @param surveyId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("/publishSurvey")
|
||||||
|
public RpcResult publishSurvey(@RequestParam @NotBlank(message = "问卷ID不能为空") String surveyId) {
|
||||||
|
log.info("[publishSurvey] 发布问卷,surveyId={}", surveyId);
|
||||||
|
boolean flag = surveyService.publishSurvey(surveyId);
|
||||||
|
if (flag) {
|
||||||
|
return RpcResultUtil.createSuccessResult(null);
|
||||||
|
}
|
||||||
|
return RpcResultUtil.createFailedResult(RespErrorCode.PUBLISH_SURVEY_ERROR.getCode(), RespErrorCode.PUBLISH_SURVEY_ERROR.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,7 @@ import org.mockito.Mock;
|
|||||||
import org.mockito.Mockito;
|
import org.mockito.Mockito;
|
||||||
import org.springframework.mock.web.MockHttpServletRequest;
|
import org.springframework.mock.web.MockHttpServletRequest;
|
||||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||||
|
import org.springframework.ui.ModelExtensionsKt;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
@ -90,4 +91,12 @@ public class SurveyControllerTest {
|
|||||||
Assert.assertEquals(new Integer(200), surveyResult2.getCode());
|
Assert.assertEquals(new Integer(200), surveyResult2.getCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void publishSurveyTest() {
|
||||||
|
|
||||||
|
Mockito.when(surveyService.publishSurvey(Mockito.any())).thenReturn(true);
|
||||||
|
surveyController.publishSurvey("11111");
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user