zoujiajian 3 rokov pred
rodič
commit
38d8d28bef

+ 4 - 4
netflix-dao/src/main/java/com/cyksj/model/dto/FormFieldsView.java → netflix-dao/src/main/java/com/cyksj/model/dto/QuestionnaireFieldsView.java

@@ -7,16 +7,16 @@ import lombok.Setter;
 
 /*
  *项目名: netflix
- *文件名: FormFieldsView
+ *文件名: QuestionnaireFieldsView
  *创建者: JavaZou
  *创建时间:2023/6/12 16:23
  */
 @Getter
 @Setter
-@SearchBean(tables = "form_fields_default fd left join form_fields ff on ff.id = fd.fields_id :promotion_id:" +
-		" left join form_template ft on ft.id = ff.template_id",
+@SearchBean(tables = "form_template ft left join form_fields ff on ff.template_id = ft.id" +
+		" left join form_fields_default fd on fd.fields_id = ff.id :promotion_id:",
 		where = "ff.deleted is true and ft.deleted is true")
-public class FormFieldsView {
+public class QuestionnaireFieldsView {
 	@DbField("ff.id")
 	private Long id;
 

+ 17 - 2
netflix-web/src/main/java/com/cyksj/web/controller/manage/form/FormController.java

@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.manage.form.FormFieldsDataMapper;
@@ -13,8 +14,10 @@ import com.cyksj.model.dto.FormTemplateDataDto;
 import com.cyksj.model.entity.FormFields;
 import com.cyksj.model.entity.FormFieldsDefault;
 import com.cyksj.model.entity.FormTemplate;
+import com.cyksj.model.entity.QuestionnairePromotion;
 import com.cyksj.model.views.FormFieldsDataView;
 import com.cyksj.service.mange.form.FormService;
+import com.cyksj.service.mange.form.QuestionnairePromotionService;
 import com.ejlchina.searcher.BeanSearcher;
 import com.ejlchina.searcher.SearchResult;
 import com.ejlchina.searcher.util.MapUtils;
@@ -47,6 +50,8 @@ public class FormController {
 
 	private final BeanSearcher beanSearcher;
 
+	private final QuestionnairePromotionService promotionService;
+
 	private final HttpServletRequest request;
 
 	/**
@@ -126,8 +131,18 @@ public class FormController {
 	 * 用户问卷回答列表
 	 */
 	@GetMapping("/get/question/resp/data")
-	public Result<SearchResult<FormFieldsDataView>> getData(Long fieldsId) {
-		if (fieldsId == null) fieldsId = 3l;
+	public Result<SearchResult<FormFieldsDataView>> getData(Long promotionId, Long fieldsId) {
+		if (promotionId != null) {
+			QuestionnairePromotion byId = promotionService.getById(promotionId);
+			if (byId == null) throw BusinessRuntimeException.getInstance("问卷不存在");
+			if (byId.getName().contains("商务")) {
+				FormFields fields = formFieldsMapper.selectOne(Wrappers.lambdaQuery(FormFields.class).eq(FormFields::getTemplateId, byId.getTemplateId())
+						.like(FormFields::getFieldsName, "渠道").last("limit 1"));
+				if (fields != null) {
+					fieldsId = fields.getId();
+				}
+			}
+		}
 		SearchResult<FormFieldsDataView> search = beanSearcher.search(FormFieldsDataView.class, MapUtils.flatBuilder(request.getParameterMap())
 				.build());
 		return GatewayResponse.SUCCESS.newBuilder().toResult(search);

+ 7 - 4
netflix-web/src/main/java/com/cyksj/web/controller/manage/form/QuestionnairePromotionController.java

@@ -3,7 +3,7 @@ package com.cyksj.web.controller.manage.form;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
-import com.cyksj.model.dto.FormFieldsView;
+import com.cyksj.model.dto.QuestionnaireFieldsView;
 import com.cyksj.model.entity.QuestionnairePromotion;
 import com.cyksj.service.mange.form.QuestionnairePromotionService;
 import com.ejlchina.searcher.BeanSearcher;
@@ -63,10 +63,13 @@ public class QuestionnairePromotionController {
 	 * 问卷详情 问卷字段以及答案列表
 	 */
 	@GetMapping("/template/get/detail/{promotionId}")
-	public Result<SearchResult<FormFieldsView>> getFieldsView(@PathVariable Long promotionId) {
-		SearchResult<FormFieldsView> search = beanSearcher.search(FormFieldsView.class, MapUtils.flatBuilder(request.getParameterMap())
+	public Result<SearchResult<QuestionnaireFieldsView>> getFieldsView(@PathVariable Long promotionId) {
+		QuestionnairePromotion byId = promotionService.getById(promotionId);
+		if (byId==null) throw BusinessRuntimeException.getInstance("问卷不存在");
+		SearchResult<QuestionnaireFieldsView> search = beanSearcher.search(QuestionnaireFieldsView.class, MapUtils.flatBuilder(request.getParameterMap())
+				.field(QuestionnaireFieldsView::getTemplateId, byId.getTemplateId())
 				.put("promotion_id", String.format(" and fd.promotion_id = %s", promotionId))
-				.orderBy(FormFieldsView::getSorted).asc()
+				.orderBy(QuestionnaireFieldsView::getSorted).asc()
 				.build());
 		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
 	}