Przeglądaj źródła

问卷调查调整

zouxuan 3 lat temu
rodzic
commit
7b1e2d4b3d

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/QuestionnaireUserResultDao.java

@@ -38,4 +38,8 @@ public interface QuestionnaireUserResultDao extends BaseDAO<Long, QuestionnaireU
     List<QuestionnaireResultDto> getQuestionResult(@Param("activeId") Integer activeId, @Param("activeType") String activeType);
 
     List<Map<Integer, String>> queryUserName(String activeType);
+
+    List<QuestionnaireUserResultDto> findResultCount(Map<String, Object> params);
+
+    int countResultCount(Map<String, Object> params);
 }

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/QuestionnaireActiveTypeEnum.java

@@ -5,7 +5,8 @@ import com.ym.mec.common.enums.BaseEnum;
 public enum QuestionnaireActiveTypeEnum implements BaseEnum<String, QuestionnaireActiveTypeEnum> {
 	REPLACEMENT("REPLACEMENT", "乐器置换"),
 	CLOUD_TEACHER_FEEDBACK("CLOUD_TEACHER_FEEDBACK", "云教练用户反馈"),
-	MUSIC_GROUP_QUESTION("MUSIC_GROUP_QUESTION", "乐团满意度调查");
+	MUSIC_GROUP_QUESTION("MUSIC_GROUP_QUESTION", "乐团满意度调查"),
+	ENTERPRISE_CUSTOMIZATION("ENTERPRISE_CUSTOMIZATION", "管乐迷定制问卷");
 
 	private String code;
 

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/QuestionnaireUserResultService.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.service;
 import com.ym.mec.biz.dal.dto.ReplacementInstrumentActivityDto;
 import com.ym.mec.biz.dal.entity.QuestionnaireQuestion;
 import com.ym.mec.biz.dal.entity.QuestionnaireUserResult;
+import com.ym.mec.biz.dal.page.QuestionnaireUserResultQueryInfo;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
 import org.json.JSONObject;
@@ -29,4 +30,15 @@ public interface QuestionnaireUserResultService extends BaseService<Long, Questi
      * @return
      */
     void add(ReplacementInstrumentActivityDto replacementInstrumentActivityDto);
+
+    /**
+    * @description: 提交调查问卷(没有活动)
+     * @param replacementInstrumentActivity
+    * @return void
+    * @author zx
+    * @date 2021/12/2 17:24
+    */
+    void addResult(ReplacementInstrumentActivityDto replacementInstrumentActivity);
+
+    Object queryResultPage(QuestionnaireUserResultQueryInfo queryInfo);
 }

+ 41 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/QuestionnaireUserResultServiceImpl.java

@@ -9,6 +9,7 @@ import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.QuestionnaireActiveTypeEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
+import com.ym.mec.biz.dal.page.QuestionnaireUserResultQueryInfo;
 import com.ym.mec.biz.dal.page.ReplacementInstrumentActivityQueryInfo;
 import com.ym.mec.biz.service.CooperationOrganService;
 import com.ym.mec.common.dal.BaseDAO;
@@ -17,6 +18,7 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
+import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.http.HttpUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.json.JSONObject;
@@ -194,4 +196,43 @@ public class QuestionnaireUserResultServiceImpl extends BaseServiceImpl<Long, Qu
 		//新增问卷结果
 		questionnaireUserResultDao.batchInsert1(questionnaireUserResultList);
 	}
+
+    @Override
+	@Transactional(rollbackFor = Exception.class)
+    public void addResult(ReplacementInstrumentActivityDto replacementInstrumentActivity) {
+		Integer topicId = replacementInstrumentActivity.getTopicId();
+
+		List<QuestionnaireUserResult> questionnaireUserResultList = replacementInstrumentActivity.getQuestionnaireUserResultList();
+		if(questionnaireUserResultList == null || questionnaireUserResultList.size() == 0){
+			throw new BizException("请填写问卷结果");
+		}
+		Long time = new Date().getTime();
+		for (QuestionnaireUserResult result : questionnaireUserResultList) {
+			result.setUserId(time.intValue());
+			result.setQuestionnaireTopicId(topicId);
+			result.setActiveType(QuestionnaireActiveTypeEnum.ENTERPRISE_CUSTOMIZATION);
+		}
+		//新增问卷结果
+		questionnaireUserResultDao.batchInsert1(questionnaireUserResultList);
+    }
+
+	@Override
+	public Object queryResultPage(QuestionnaireUserResultQueryInfo queryInfo) {
+		PageInfo<QuestionnaireUserResultDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<String, Object>();
+		MapUtil.populateMap(params, queryInfo);
+
+		List<QuestionnaireUserResultDto> dataList = null;
+		int count = questionnaireUserResultDao.countResultCount(params);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
+			dataList = questionnaireUserResultDao.findResultCount(params);
+		}
+		if (count == 0) {
+			dataList = new ArrayList<>();
+		}
+		pageInfo.setRows(dataList);
+		return pageInfo;
+	}
 }

+ 20 - 1
mec-biz/src/main/resources/config/mybatis/QuestionnaireUserResultMapper.xml

@@ -106,14 +106,33 @@
 	</delete>
 
     <!-- 分页查询 -->
+	<select id="findResultCount" resultMap="QuestionnaireUserResultDto" parameterType="map">
+		SELECT qu1.*,qq.content_,GROUP_CONCAT(qqi.answer_value_ ORDER BY qqi.sort_) answer_value_
+		FROM (SELECT qu.user_id_ id_ FROM questionnaire_user_result qu
+		WHERE qu.questionnaire_topic_id_ = #{topicId}
+		GROUP BY qu.user_id_ <include refid="global.limit"/>) qur
+		LEFT JOIN questionnaire_user_result qu1 ON qur.id_ = qu1.user_id_
+		LEFT JOIN questionnaire_question qq ON qq.id_ = qu1.questionnaire_question_id_
+		LEFT JOIN questionnaire_question_item qqi ON FIND_IN_SET(qqi.id_,qu1.questionnaire_question_item_id_list_)
+		WHERE qu1.questionnaire_topic_id_ = #{topicId}
+		GROUP BY qu1.user_id_,qq.id_
+		ORDER BY qu1.user_id_,qq.sort_
+	</select>
+	<!-- 查询当前表的总记录数 -->
+	<select id="countResultCount" resultType="int">
+		SELECT COUNT(DISTINCT qu.user_id_) FROM questionnaire_user_result qu WHERE qu.questionnaire_topic_id_ = #{topicId}
+	</select>
+
+	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="QuestionnaireUserResult" parameterType="map">
 		SELECT * FROM questionnaire_user_result ORDER BY id_ <include refid="global.limit"/>
 	</select>
-	
+
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM questionnaire_user_result
 	</select>
+
     <select id="countByTopicId" resultType="java.lang.Integer">
 		SELECT COUNT(id_) FROM questionnaire_user_result WHERE questionnaire_topic_id_ = #{topicId}
 	</select>

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/config/ResourceServerConfig.java

@@ -38,7 +38,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
                         "/replacementInstrumentActivity/queryReplacementsStat", "/eduStudentRegistration/queryPreApplyList",
                         "/eduSubject/findSubSubjects", "/eduFinancialExpenditure/batchAdd", "/eduSendNotice/*",
                         "/oaContracts/*", "/eduStudent/organStudentOverView", "/activity/countCloudTeacherActive",
-                        "/activity/organDoubleEleven2021Statis", "/activity/doubleEleven2021Statis").permitAll().anyRequest().authenticated().and().httpBasic();
+                        "/activity/organDoubleEleven2021Statis", "/activity/doubleEleven2021Statis", "/questionnaireTopic/getDetail", "/questionnaireUserResult/add").permitAll().anyRequest().authenticated().and().httpBasic();
     }
 
     @Override

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/QuestionnaireTopicController.java

@@ -31,7 +31,7 @@ public class QuestionnaireTopicController extends BaseController {
     @ApiOperation(value = "获取详情")
     @GetMapping("/getDetail")
     @PreAuthorize("@pcs.hasPermissions('questionnaireTopic/getDetail')")
-    @AuditLogAnnotation(operateName = "新增")
+    @AuditLogAnnotation(operateName = "获取详情")
     public Object getDetail(Integer id) {
         return succeed(questionnaireTopicService.getDetail(id));
     }

+ 18 - 0
mec-web/src/main/java/com/ym/mec/web/controller/QuestionnaireUserResultController.java

@@ -1,7 +1,9 @@
 package com.ym.mec.web.controller;
 
 import com.ym.mec.biz.dal.dao.QuestionnaireQuestionDao;
+import com.ym.mec.biz.dal.dto.ReplacementInstrumentActivityDto;
 import com.ym.mec.biz.dal.entity.QuestionnaireQuestion;
+import com.ym.mec.biz.dal.entity.QuestionnaireUserResult;
 import com.ym.mec.biz.dal.enums.QuestionnaireActiveTypeEnum;
 import com.ym.mec.biz.dal.page.QuestionnaireUserResultQueryInfo;
 import com.ym.mec.biz.service.QuestionnaireUserResultService;
@@ -15,6 +17,7 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -36,6 +39,14 @@ public class QuestionnaireUserResultController extends BaseController {
     @Autowired
     private QuestionnaireQuestionDao questionnaireQuestionDao;
 
+    @ApiOperation(value = "添加调查问卷(非活动)")
+    @GetMapping("/add")
+    @PreAuthorize("@pcs.hasPermissions('questionnaireUserResult/add')")
+    public Object queryPage(@RequestBody ReplacementInstrumentActivityDto replacementInstrumentActivity) {
+        questionnaireUserResultService.addResult(replacementInstrumentActivity);
+        return succeed();
+    }
+
     @ApiOperation(value = "分页查询")
     @GetMapping("/queryPage")
     @PreAuthorize("@pcs.hasPermissions('questionnaireUserResult/queryPage')")
@@ -43,6 +54,13 @@ public class QuestionnaireUserResultController extends BaseController {
         return succeed(questionnaireUserResultService.queryDetailPage(queryInfo));
     }
 
+    @ApiOperation(value = "分页查询")
+    @GetMapping("/queryResultPage")
+    @PreAuthorize("@pcs.hasPermissions('questionnaireUserResult/queryResultPage')")
+    public Object queryResultPage(QuestionnaireUserResultQueryInfo queryInfo) {
+        return succeed(questionnaireUserResultService.queryResultPage(queryInfo));
+    }
+
     @ApiOperation(value = "导出")
     @RequestMapping("/export")
     @PreAuthorize("@pcs.hasPermissions('questionnaireUserResult/export')")