|
|
@@ -19,6 +19,7 @@ import com.cyksj.common.snowflake.Sequence;
|
|
|
import com.cyksj.common.task.GlobalThreadPoolTaskExecutor;
|
|
|
import com.cyksj.common.util.GoogleGenerator;
|
|
|
import com.cyksj.common.util.Jsons;
|
|
|
+import com.cyksj.common.util.StringUtil;
|
|
|
import com.cyksj.dto.Result;
|
|
|
import com.cyksj.enums.GatewayResponse;
|
|
|
import com.cyksj.mapper.*;
|
|
|
@@ -491,12 +492,15 @@ public class GroupRelationController {
|
|
|
@PostMapping("/record/questionnaire/{promotionId}")
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@NoSubmit
|
|
|
- public Result<String> recordQuestionnaire(@PathVariable Long promotionId, @RequestBody List<FormFieldsData> answers) {
|
|
|
+ public Result<String> recordQuestionnaire(@PathVariable Long promotionId, String showId, @RequestBody List<FormFieldsData> answers) {
|
|
|
Long groupsId = SEQUENCE.nextId();
|
|
|
List<QuestionnairePromotionFieldsListView> promotionFieldsListViews = beanSearcher.searchAll(QuestionnairePromotionFieldsListView.class, MapUtils.builder().field(QuestionnairePromotionFieldsListView::getPromotionId, promotionId).build());
|
|
|
if (CollUtil.isEmpty(promotionFieldsListViews)) throw BusinessRuntimeException.getInstance("问卷已结束");
|
|
|
if (promotionFieldsListViews.size() != answers.size()) throw BusinessRuntimeException.getInstance("请完成所有问题");
|
|
|
answers.forEach(answer -> {
|
|
|
+ if (StringUtil.isNotBlank(showId)) {
|
|
|
+ answer.setUserId(userService.getUserIdByShowId(showId));
|
|
|
+ }
|
|
|
Long fieldsId = answer.getFieldsId();
|
|
|
String content = answer.getContent();
|
|
|
if (fieldsId == null || StrUtil.isBlank(content)) {
|
|
|
@@ -509,6 +513,16 @@ public class GroupRelationController {
|
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 查询用户是否填写问卷
|
|
|
+ */
|
|
|
+ @GetMapping("/check/questionnaire/{promotionId}")
|
|
|
+ public Result<Boolean> checkQuestionnaire(@PathVariable Long promotionId) {
|
|
|
+ long userId = StpUserUtil.getLoginIdAsLong();
|
|
|
+ Integer count = formFieldsDataMapper.selectCount(Wrappers.lambdaQuery(FormFieldsData.class).eq(FormFieldsData::getUserId, userId).eq(FormFieldsData::getPromotionId, promotionId));
|
|
|
+ return GatewayResponse.SUCCESS.newBuilder().toResult(count > 0);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 对应平台车票 广告配置列表
|
|
|
*/
|