浏览代码

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

Joburgess 4 年之前
父节点
当前提交
db9b7fcd0d
共有 18 个文件被更改,包括 280 次插入75 次删除
  1. 1 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/QuestionnaireQuestionDao.java
  2. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/QuestionnaireQuestionItemDao.java
  3. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ReplacementInstrumentActivityDao.java
  4. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ReplacementInstrumentActivityStatDto.java
  5. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/service/QuestionnaireUserResultService.java
  6. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/TeacherService.java
  7. 83 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/QuestionnaireUserResultServiceImpl.java
  8. 4 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ReplacementInstrumentCooperationServiceImpl.java
  9. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java
  10. 28 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java
  11. 14 1
      mec-biz/src/main/resources/config/mybatis/QuestionnaireQuestionItemMapper.xml
  12. 4 3
      mec-biz/src/main/resources/config/mybatis/QuestionnaireQuestionMapper.xml
  13. 17 9
      mec-biz/src/main/resources/config/mybatis/QuestionnaireUserResultMapper.xml
  14. 14 16
      mec-biz/src/main/resources/config/mybatis/ReplacementInstrumentActivityMapper.xml
  15. 1 1
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherController.java
  16. 65 0
      mec-web/src/main/java/com/ym/mec/web/controller/QuestionnaireUserResultController.java
  17. 6 30
      mec-web/src/main/java/com/ym/mec/web/controller/ReplacementInstrumentActivityController.java
  18. 9 0
      mec-web/src/main/java/com/ym/mec/web/controller/TeacherController.java

+ 1 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/QuestionnaireQuestionDao.java

@@ -13,6 +13,5 @@ public interface QuestionnaireQuestionDao extends BaseDAO<Long, QuestionnaireQue
 
     List<QuestionnaireQuestion> findByTopicId(int topicId);
 
-    //获取导出字段
-    List<String> findQuestionColumnList(Integer cooperationId);
+    List<QuestionnaireQuestion> queryQuestionList(Integer cooperationId);
 }

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/QuestionnaireQuestionItemDao.java

@@ -5,6 +5,7 @@ import com.ym.mec.biz.dal.entity.QuestionnaireQuestionItem;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 public interface QuestionnaireQuestionItemDao extends BaseDAO<Long, QuestionnaireQuestionItem> {
 
@@ -20,4 +21,6 @@ public interface QuestionnaireQuestionItemDao extends BaseDAO<Long, Questionnair
     QuestionnaireQuestionItem findByQuestionId(Long questionId);
 
     void batchDel(@Param("itemIdList") List<Long> delQuestionnaireQuestionItemIdList);
+
+    List<Map<Integer, String>> queryUserName(@Param("cooperationId") Integer cooperationId);
 }

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ReplacementInstrumentActivityDao.java

@@ -21,17 +21,17 @@ public interface ReplacementInstrumentActivityDao extends BaseDAO<Integer, Repla
 
     ReplacementInstrumentActivityStatHead countReplacementsInfo(Integer cooperationId);
 
-    int openPay(@Param("cooperationOrganId") Integer cooperationOrganId);
+    int openPay(@Param("replacementInstrumentCooperationId") Integer replacementInstrumentCooperationId);
 
     ReplacementInstrumentActivity getLock(@Param("id") Integer id);
 
     /**
      * 获取开启缴费推送的人
      *
-     * @param cooperationId
+     * @param replacementInstrumentCooperationId
      * @return
      */
-    List<ReplacementInstrumentActivityStatDto> getPushUsers(@Param("cooperationId") Integer cooperationId);
+    List<ReplacementInstrumentActivityStatDto> getPushUsers(@Param("replacementInstrumentCooperationId") Integer replacementInstrumentCooperationId);
 
     /**
      * 获取置换记录详情

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ReplacementInstrumentActivityStatDto.java

@@ -33,12 +33,22 @@ public class ReplacementInstrumentActivityStatDto extends ReplacementInstrumentA
 
     private BigDecimal salePrice;
 
+    private String title;
+
     @ApiModelProperty(value = "是否参与校赛")
     private String hasYesFirstAnswer;
 
     @ApiModelProperty(value="是否有置换乐器")
     private String hasInstrumentsId;
 
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
     public String getSubjectName() {
         return subjectName;
     }

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

@@ -1,13 +1,24 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.biz.dal.entity.QuestionnaireQuestion;
 import com.ym.mec.biz.dal.entity.QuestionnaireUserResult;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
+import org.json.JSONObject;
 import java.util.List;
+import java.util.Map;
 
 public interface QuestionnaireUserResultService extends BaseService<Long, QuestionnaireUserResult> {
 
     void batchInsert(List<QuestionnaireUserResult> questionnaireUserResultList);
 
     Object queryDetailPage(QueryInfo queryInfo);
+
+    /**
+     *
+     * @param cooperationId
+     * @param questionList
+     * @return
+     */
+    Map<String,Object> questionnaireUserResultExport(Integer cooperationId, List<QuestionnaireQuestion> questionList);
 }

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/TeacherService.java

@@ -30,6 +30,12 @@ public interface TeacherService extends BaseService<Integer, Teacher> {
     int add(Teacher teacher) throws Exception;
 
     /**
+     * 修改教师信息(不包含离职日期等信息)
+     * @param teacher
+     */
+    void updateTea1(Teacher teacher);
+
+    /**
      * 修改教师信息
      * @param teacher
      */

+ 83 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/QuestionnaireUserResultServiceImpl.java

@@ -1,26 +1,38 @@
 package com.ym.mec.biz.service.impl;
 
+import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.QuestionnaireUserResultDto;
+import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
+import com.ym.mec.biz.dal.entity.QuestionnaireQuestion;
+import com.ym.mec.biz.dal.entity.QuestionnaireQuestionItem;
+import com.ym.mec.biz.dal.page.ReplacementInstrumentActivityQueryInfo;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.util.collection.MapUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.json.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.biz.dal.entity.QuestionnaireUserResult;
 import com.ym.mec.biz.service.QuestionnaireUserResultService;
-import com.ym.mec.biz.dal.dao.QuestionnaireUserResultDao;
 import org.springframework.stereotype.Service;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class QuestionnaireUserResultServiceImpl extends BaseServiceImpl<Long, QuestionnaireUserResult>  implements QuestionnaireUserResultService {
 	
 	@Autowired
 	private QuestionnaireUserResultDao questionnaireUserResultDao;
+	@Autowired
+	private QuestionnaireQuestionItemDao questionnaireQuestionItemDao;
+	@Autowired
+	private QuestionnaireQuestionDao questionnaireQuestionDao;
+	@Autowired
+	private TeacherDao teacherDao;
 
 	@Override
 	public BaseDAO<Long, QuestionnaireUserResult> getDAO() {
@@ -51,4 +63,70 @@ public class QuestionnaireUserResultServiceImpl extends BaseServiceImpl<Long, Qu
 		pageInfo.setRows(dataList);
 		return pageInfo;
 	}
+
+	@Override
+	public Map<String,Object> questionnaireUserResultExport(Integer cooperationId,List<QuestionnaireQuestion> questionList) {
+		HashMap<String, Object> paramMap = new HashMap<>(2);
+		paramMap.put("activeId",cooperationId);
+		List<QuestionnaireUserResult> userResults = questionnaireUserResultDao.findAll(paramMap);
+
+		Map<String,Object> resultMap = new HashMap<>(2);
+		//导出列表数据
+		List<Map<String,Object>> jsonObjectList = new ArrayList<>();
+		Set<String> body = new LinkedHashSet<>();
+
+		if(userResults != null && userResults.size() > 0){
+			//获取所有的问题列表
+			List<Long> questionIdList = questionList.stream().map(e -> e.getId()).collect(Collectors.toList());
+			Map<Long, List<QuestionnaireQuestion>> questionMap = questionList.stream().collect(Collectors.groupingBy(QuestionnaireQuestion::getId));
+			//获取所有答案列表
+			paramMap.put("questionIdList",questionIdList);
+			List<QuestionnaireQuestionItem> questionItemList = questionnaireQuestionItemDao.findAll(paramMap);
+			Map<Long, List<QuestionnaireQuestionItem>> questionItemMap = questionItemList.stream().collect(Collectors.groupingBy(QuestionnaireQuestionItem::getId));
+			//按学员分组
+			Map<Integer, List<QuestionnaireUserResult>> userIdMap = userResults.stream().collect(Collectors.groupingBy(QuestionnaireUserResult::getUserId));
+			List<Integer> userIdList = new ArrayList<>(userIdMap.keySet());
+			Collections.sort(userIdList);
+			Map<Integer, String> nameList = MapUtil.convertMybatisMap(questionnaireQuestionItemDao.queryUserName(cooperationId));
+			Map<Integer, String> phoneList = MapUtil.convertMybatisMap(teacherDao.queryPhoneByIds(StringUtils.join(userIdList,",")));
+			for (Integer userId : userIdList) {
+				List<QuestionnaireUserResult> userResultList = userIdMap.get(userId);
+				if(userResultList != null && userResultList.size() > 0){
+					Map<String,Object> jsonObject = new LinkedHashMap<>();
+					body.add("cooperationId");
+					body.add("userId");
+					body.add("userName");
+					body.add("phone");
+					jsonObject.put("cooperationId",cooperationId);
+					jsonObject.put("userId",userId);
+					jsonObject.put("userName",nameList.get(userId));
+					jsonObject.put("phone",phoneList.get(userId));
+					//分解当前学员答案
+					for (QuestionnaireUserResult result : userResultList) {
+						//获取问题列表
+						QuestionnaireQuestion question = questionMap.get(result.getQuestionnaireQuestionId()).get(0);
+						String questionnaireQuestionItemIdList = result.getQuestionnaireQuestionItemIdList();
+						StringBuffer userResult = new StringBuffer();
+						if(StringUtils.isNotEmpty(questionnaireQuestionItemIdList)){
+							String[] split = questionnaireQuestionItemIdList.split(",");
+							for (String s : split) {
+								List<QuestionnaireQuestionItem> items = questionItemMap.get(Long.parseLong(s));
+								userResult.append(items.get(0).getAnswerValue()).append("\n");
+							}
+						}
+						String additionalValue = result.getAdditionalValue();
+						if(StringUtils.isNotEmpty(additionalValue)){
+							userResult.append(additionalValue);
+						}
+						body.add(question.getContent());
+						jsonObject.put(question.getContent(),userResult.toString());
+					}
+					jsonObjectList.add(jsonObject);
+				}
+			}
+		}
+		resultMap.put("jsonObjectList",jsonObjectList);
+		resultMap.put("body",body);
+		return resultMap;
+	}
 }

+ 4 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ReplacementInstrumentCooperationServiceImpl.java

@@ -46,8 +46,8 @@ public class ReplacementInstrumentCooperationServiceImpl extends BaseServiceImpl
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public ReplacementInstrumentCooperation openPay(Integer cooperationId) {
-        ReplacementInstrumentCooperation replacementInstrumentCooperation = replacementInstrumentCooperationDao.get(cooperationId);
+    public ReplacementInstrumentCooperation openPay(Integer id) {
+        ReplacementInstrumentCooperation replacementInstrumentCooperation = replacementInstrumentCooperationDao.get(id);
         if (replacementInstrumentCooperation == null) {
             throw new BizException("合作单位乐器置换活动不存在");
         }
@@ -59,9 +59,9 @@ public class ReplacementInstrumentCooperationServiceImpl extends BaseServiceImpl
 
         //发送推送链接
         //家长您好!您订购的 {乐器品牌}品牌乐器已经开始接受预定,请点击{链接地址}完成付款,付款后15个工作日以内到货,如有疑问请咨询乐团管理老师。
-        List<ReplacementInstrumentActivityStatDto> pushUsers = replacementInstrumentActivityDao.getPushUsers(cooperationId);
+        List<ReplacementInstrumentActivityStatDto> pushUsers = replacementInstrumentActivityDao.getPushUsers(id);
 
-        replacementInstrumentActivityDao.openPay(replacementInstrumentCooperation.getCooperationOrganId());
+        replacementInstrumentActivityDao.openPay(id);
 
 
         String baseApiUrl = sysConfigDao.findConfigValue("base_api_url");

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java

@@ -165,7 +165,7 @@ public class StudentManageServiceImpl implements StudentManageService {
                 } else {
                     dto.setHasPracticeCourse(YesOrNoEnum.NO);
                 }
-                if (studentListCourseDto.getRemainPracticeNum() > 0) {
+                if (studentListCourseDto.getRemainVipNum() > 0) {
                     dto.setNoStartVipCourseNum(studentListCourseDto.getRemainVipNum());
                 }
             } else {

+ 28 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -136,6 +136,34 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
+	public void updateTea1(Teacher teacher) {
+		Teacher teacher1 = teacherDao.get(teacher.getId());
+		if(null==teacher1){
+			throw new BizException("教师信息不存在");
+		}
+		if(StringUtils.isNotEmpty(teacher.getPhone())){
+			SysUser sysUser = sysUserFeignService.queryUserByMobile(teacher.getPhone());
+			if(sysUser != null && !sysUser.getId().equals(teacher.getId())){
+				throw new BizException("手机号已存在");
+			}
+		}
+		if(Objects.nonNull(teacher.getEntryDate())&&Objects.nonNull(teacher.getFormalStaffDate())){
+			if(teacher.getEntryDate().compareTo(teacher.getFormalStaffDate())>0){
+				throw new BizException("入职日期不可晚于转正日期");
+			}
+		}
+		teacher.setUpdateTime(new Date());
+		teacher.setTeacherOrganId(teacher.getOrganId());
+		teacherDao.update(teacher);
+		teacher.setOrganId(null);
+		teacherDao.updateUser(teacher);
+		imGroupDao.updateNickname(teacher.getId(),teacher.getRealName());
+		imGroupDao.updateUserFriendNickname(teacher.getId(),teacher.getRealName());
+		imFeignService.update(new ImUserModel(teacher.getId().toString(),teacher.getRealName(),teacher.getAvatar()));
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public void updateTea(Teacher teacher) {
 		Teacher teacher1 = teacherDao.get(teacher.getId());
 		if(null==teacher1){

+ 14 - 1
mec-biz/src/main/resources/config/mybatis/QuestionnaireQuestionItemMapper.xml

@@ -24,7 +24,16 @@
 	
 	<!-- 全查询 -->
 	<select id="findAll" resultMap="QuestionnaireQuestionItem">
-		SELECT * FROM questionnaire_question_item ORDER BY id_
+		SELECT * FROM questionnaire_question_item 
+		<where>
+			<if test="questionIdList != null and questionIdList.size > 0">
+				AND questionnaire_question_id_ IN
+				<foreach collection="questionIdList" open="(" close=")" separator="," item="item">
+					#{item}
+				</foreach>
+			</if>
+		</where>
+		ORDER BY id_
 	</select>
 	
 	<!-- 向数据库增加一条记录 -->
@@ -106,4 +115,8 @@
     <select id="findByQuestionId" resultMap="QuestionnaireQuestionItem">
 		SELECT * FROM questionnaire_question_item WHERE questionnaire_question_id_ = #{questionId} LIMIT 1
 	</select>
+	<select id="queryUserName" resultType="java.util.Map">
+		SELECT user_id_ `key`,user_name_ `value` FROM replacement_instrument_activity
+		WHERE replacement_instrument_cooperation_id_ = #{cooperationId}
+	</select>
 </mapper>

+ 4 - 3
mec-biz/src/main/resources/config/mybatis/QuestionnaireQuestionMapper.xml

@@ -113,9 +113,10 @@
     <select id="findByTopicId" resultMap="QuestionnaireQuestion">
 		SELECT * FROM questionnaire_question WHERE questionnaire_topic_id_ = #{topicId}
 	</select>
-    <select id="findQuestionColumnList" resultType="java.lang.String">
-		SELECT qq.content_ FROM replacement_instrument_cooperation ric
+
+	<select id="queryQuestionList" resultMap="QuestionnaireQuestion">
+		SELECT qq.* FROM replacement_instrument_cooperation ric
 		LEFT JOIN questionnaire_question qq ON qq.questionnaire_topic_id_ = ric.topic_id_
-		WHERE ric.id_ = #{cooperationId}
+		WHERE ric.id_ = #{cooperationId} ORDER BY sort_
 	</select>
 </mapper>

+ 17 - 9
mec-biz/src/main/resources/config/mybatis/QuestionnaireUserResultMapper.xml

@@ -28,7 +28,13 @@
 	
 	<!-- 全查询 -->
 	<select id="findAll" resultMap="QuestionnaireUserResult">
-		SELECT * FROM questionnaire_user_result ORDER BY id_
+		SELECT * FROM questionnaire_user_result
+		<where>
+			<if test="activeId != null">
+				active_id_ = #{activeId}
+			</if>
+		</where>
+		ORDER BY user_id_,id_
 	</select>
 	
 	<!-- 向数据库增加一条记录 -->
@@ -100,8 +106,9 @@
 		SELECT COUNT(id_) FROM questionnaire_user_result WHERE questionnaire_topic_id_ = #{topicId}
 	</select>
 	<select id="findDetailCount" resultType="java.lang.Integer">
-		SELECT COUNT(DISTINCT su.id_) FROM questionnaire_user_result qu
-		LEFT JOIN sys_user su ON su.id_ = qu.user_id_
+		SELECT COUNT(DISTINCT ria.user_id_) FROM questionnaire_user_result qu
+		LEFT JOIN replacement_instrument_activity ria ON ria.replacement_instrument_cooperation_id_ = qu.active_id_ AND ria.user_id_ = qu.user_id_
+		AND ria.user_id_ = qu.user_id_
 		<include refid="queryDetailPageSql"/>
 	</select>
 	<resultMap type="com.ym.mec.biz.dal.dto.QuestionnaireUserResultDto" id="QuestionnaireUserResultDto">
@@ -123,7 +130,7 @@
 	<sql id="queryDetailPageSql">
 		<where>
 			<if test="search != null and search != ''">
-				qu.user_id_ = #{search} OR su.username_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%')
+				qu.user_id_ = #{search} OR ria.username_ LIKE CONCAT('%',#{search},'%') OR ria.mobile_no_ LIKE CONCAT('%',#{search},'%')
 			</if>
 			<if test="activeId != null">
 				AND qu.active_id_ = #{activeId}
@@ -151,17 +158,18 @@
 		</where>
 	</sql>
 	<select id="queryDetailPage" resultMap="QuestionnaireUserResultDto">
-		SELECT qu1.*,qur.username_,qur.phone_,qq.content_,GROUP_CONCAT(qqi.answer_value_ ORDER BY qqi.sort_) answer_value_
-		FROM (SELECT su.id_,su.username_,su.phone_ FROM questionnaire_user_result qu
-		LEFT JOIN sys_user su ON su.id_ = qu.user_id_
+		SELECT qu1.*,qur.user_name_ username_,qur.phone_,qq.content_,GROUP_CONCAT(qqi.answer_value_ ORDER BY qqi.sort_) answer_value_
+		FROM (SELECT ria.user_id_ id_,ria.user_name_,ria.mobile_no_ phone_ FROM questionnaire_user_result qu
+		LEFT JOIN replacement_instrument_activity ria ON ria.replacement_instrument_cooperation_id_ = qu.active_id_ AND ria.user_id_ = qu.user_id_
+		AND ria.user_id_ = qu.user_id_
 		<include refid="queryDetailPageSql"/>
-		GROUP BY su.id_
+		GROUP BY ria.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_)
 		<include refid="queryDetailPageSql1"/>
 		GROUP BY qu1.user_id_,qq.id_
-		ORDER BY qu1.user_id_
+		ORDER BY qu1.user_id_,qq.sort_
 	</select>
 </mapper>

+ 14 - 16
mec-biz/src/main/resources/config/mybatis/ReplacementInstrumentActivityMapper.xml

@@ -40,6 +40,7 @@
         <result property="discountPrice" column="discount_price_"/>
         <result property="depreciationPrice" column="depreciation_price_"/>
         <result property="salePrice" column="sale_price_"/>
+        <result property="title" column="title_"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -217,25 +218,21 @@
 
     <select id="countReplacementsInfo"
             resultType="com.ym.mec.biz.dal.dto.ReplacementInstrumentActivityStatHead">
-        SELECT ric.open_pay_                                                                              openPay,
-               COUNT(DISTINCT ria.user_id_)                                                               surveyNum,
-               COUNT(DISTINCT
-                     IF(ria.instruments_id_ IS NOT NULL, ria.user_id_, NULL))                             replacementNum,
-               TRUNCATE(COUNT(IF(ria.instruments_id_ IS NOT NULL, ria.user_id_, NULL)) / COUNT(DISTINCT ria.user_id_) *
-                        100,
-                        2)                                                                                replacementRate,
-               TRUNCATE(COUNT(IF(ria.pay_status_ = 2, ria.user_id_, NULL)) /
-                        COUNT(DISTINCT IF(ria.instruments_id_ IS NOT NULL, ria.user_id_, NULL)) * 100, 2) paymentRate
-        FROM replacement_instrument_activity ria
-                 LEFT JOIN replacement_instrument_cooperation ric
-                           ON ria.cooperation_organ_id_ = ric.cooperation_organ_id_
+        SELECT ric.open_pay_ openPay,
+               COUNT( DISTINCT ria.user_id_ ) surveyNum,
+               COUNT( DISTINCT IF (ria.instruments_id_ IS NOT NULL, ria.user_id_, NULL)) replacementNum,
+               TRUNCATE ( COUNT(DISTINCT IF ( ria.instruments_id_ IS NOT NULL, ria.user_id_, NULL )) / COUNT( DISTINCT ria.user_id_ ) * 100, 2 ) replacementRate,
+               TRUNCATE ( COUNT(DISTINCT IF ( ria.pay_status_ = 2, ria.user_id_, NULL )) / COUNT( DISTINCT IF ( ria.instruments_id_ IS NOT NULL, ria.user_id_, NULL )) * 100, 2) paymentRate
+        FROM
+            replacement_instrument_activity ria
+                LEFT JOIN replacement_instrument_cooperation ric ON ria.cooperation_organ_id_ = ric.cooperation_organ_id_
         WHERE ria.replacement_instrument_cooperation_id_ = #{cooperationId}
     </select>
 
     <update id="openPay" parameterType="integer">
         UPDATE replacement_instrument_activity
         SET open_flag_ = 1
-        WHERE cooperation_organ_id_ = #{cooperationOrganId}
+        WHERE replacement_instrument_cooperation_id_ = #{replacementInstrumentCooperationId}
           AND open_flag_ = 0
           AND instruments_id_ > 0
     </update>
@@ -252,9 +249,9 @@
         FROM replacement_instrument_activity ria
                  LEFT JOIN sys_user su ON su.id_ = ria.user_id_
                  LEFT JOIN goods g ON g.id_ = ria.instruments_id_
-        WHERE replacement_instrument_cooperation_id_ = #{cooperationId}
+        WHERE replacement_instrument_cooperation_id_ = #{replacementInstrumentCooperationId}
           AND open_flag_ = 0
-          AND instruments_id_ IS NOT NULL
+          AND instruments_id_ > 0
     </select>
 
     <select id="getInfo" resultMap="ReplacementInstrumentActivityStatDto">
@@ -286,8 +283,9 @@
         g.discount_price_,
         g.group_purchase_price_ sale_price_,
         (g.discount_price_ - g.group_purchase_price_) depreciation_price_,
-        s.name_ subject_name_,co.name_ cooperationOrganName
+        s.name_ subject_name_,co.name_ cooperationOrganName,qt.title_
         FROM replacement_instrument_activity ria
+        LEFT JOIN questionnaire_topic qt ON qt.id_ = ria.topic_id_
         LEFT JOIN goods g ON g.id_ = ria.instruments_id_
         LEFT JOIN subject s ON s.id_ = ria.subject_id_
         lEFT JOIN sys_user su ON su.id_ = ria.user_id_

+ 1 - 1
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherController.java

@@ -55,7 +55,7 @@ public class TeacherController extends BaseController {
         }
         teacher.setUpdateTime(new Date());
         teacher.setId(sysUser.getId());
-        teacherService.updateTea(teacher);
+        teacherService.updateTea1(teacher);
         return succeed();
     }
 

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

@@ -1,15 +1,28 @@
 package com.ym.mec.web.controller;
 
+import com.ym.mec.biz.dal.dao.QuestionnaireQuestionDao;
+import com.ym.mec.biz.dal.entity.QuestionnaireQuestion;
 import com.ym.mec.biz.dal.page.QuestionnaireUserResultQueryInfo;
 import com.ym.mec.biz.service.QuestionnaireUserResultService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.QueryInfo;
+import com.ym.mec.util.date.DateUtil;
+import com.ym.mec.util.excel.POIUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.json.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.*;
+import java.util.stream.Collectors;
+
 @RequestMapping("questionnaireUserResult")
 @Api(tags = "问题答案")
 @RestController
@@ -17,6 +30,8 @@ public class QuestionnaireUserResultController extends BaseController {
 
     @Autowired
     private QuestionnaireUserResultService questionnaireUserResultService;
+    @Autowired
+    private QuestionnaireQuestionDao questionnaireQuestionDao;
 
     @ApiOperation(value = "分页查询")
     @GetMapping("/queryPage")
@@ -24,4 +39,54 @@ public class QuestionnaireUserResultController extends BaseController {
     public Object queryPage(QuestionnaireUserResultQueryInfo queryInfo) {
         return succeed(questionnaireUserResultService.queryDetailPage(queryInfo));
     }
+
+    @ApiOperation(value = "导出")
+    @RequestMapping("/export")
+    @PreAuthorize("@pcs.hasPermissions('questionnaireUserResult/export')")
+    public void questionnaireUserResultExport(Integer cooperationId, HttpServletResponse response) throws Exception {
+        List<QuestionnaireQuestion> questionList = questionnaireQuestionDao.queryQuestionList(cooperationId);
+        questionList.removeAll(Collections.singleton(null));
+        if(questionList != null && questionList.size() > 0){
+            List<String> column = new ArrayList<>();
+            column.add("活动编号");
+            column.add("学员编号");
+            column.add("学员姓名");
+            column.add("手机号");
+            List<String> collect = questionList.stream().map(e -> e.getContent()).collect(Collectors.toList());
+            column.addAll(collect);
+            String[] header = column.toArray(new String[column.size()]);
+            Map<String,Object> resultMap = questionnaireUserResultService.questionnaireUserResultExport(cooperationId,questionList);
+            List<Map<String,Object>> jsonObjectList = (List<Map<String,Object>>)resultMap.get("jsonObjectList");
+            if(jsonObjectList.size() == 0){
+                throw new BizException("暂无可导出数据");
+            }
+            OutputStream outputStream = response.getOutputStream();
+            HSSFWorkbook workbook = null;
+            try {
+                Set<String> body1 = (Set<String>)resultMap.get("body");
+                String[] body = body1.toArray(new String[body1.size()]);
+                workbook = POIUtil.exportExcel(header, body, jsonObjectList);
+                response.setContentType("application/octet-stream");
+                response.setHeader("Content-Disposition", "attachment;filename=replacement-" + DateUtil.getDate(new Date()) + ".xls");
+                response.flushBuffer();
+                outputStream = response.getOutputStream();
+                workbook.write(outputStream);
+                outputStream.flush();
+                workbook.close();
+            } catch (Exception e) {
+                e.printStackTrace();
+            } finally {
+                if (outputStream != null) {
+                    try {
+                        workbook.close();
+                        outputStream.close();
+                    } catch (IOException e) {
+                        e.printStackTrace();
+                    }
+                }
+            }
+        }else {
+            throw new BizException("暂无可导出数据");
+        }
+    }
 }

+ 6 - 30
mec-web/src/main/java/com/ym/mec/web/controller/ReplacementInstrumentActivityController.java

@@ -9,10 +9,7 @@ import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.page.ReplacementInstrumentActivityQueryInfo;
-import com.ym.mec.biz.service.GoodsService;
-import com.ym.mec.biz.service.ReplacementInstrumentActivityService;
-import com.ym.mec.biz.service.ReplacementInstrumentCooperationService;
-import com.ym.mec.biz.service.SysMessageService;
+import com.ym.mec.biz.service.*;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
@@ -25,6 +22,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.json.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -36,6 +34,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.*;
+import java.util.stream.Collectors;
 
 @RequestMapping("replacementInstrumentActivity")
 @Api(tags = "乐器置换-调查问卷服务")
@@ -55,7 +54,7 @@ public class ReplacementInstrumentActivityController extends BaseController {
     @Autowired
     private QuestionnaireQuestionDao questionnaireQuestionDao;
     @Autowired
-    private QuestionnaireUserResultDao questionnaireUserResultDao;
+    private QuestionnaireUserResultService questionnaireUserResultService;
     @Autowired
     private SysConfigDao sysConfigDao;
     @Autowired
@@ -133,24 +132,6 @@ public class ReplacementInstrumentActivityController extends BaseController {
         return succeed(replacementInstrumentActivity);
     }
 
-//    @ApiOperation(value = "导出")
-//    @RequestMapping("/export")
-//    @PreAuthorize("@pcs.hasPermissions('questionnaireUserResult/export')")
-//    public void questionnaireUserResultExport(ReplacementInstrumentActivityQueryInfo queryInfo, HttpServletResponse response) throws Exception {
-//        List<String> questionColumn = questionnaireQuestionDao.findQuestionColumnList(queryInfo.getCooperationId());
-//        if(questionColumn != null && questionColumn.size() > 0){
-//            List<String> column = new ArrayList<>();
-//            column.add("学员编号");
-//            column.add("学员姓名");
-//            column.add("手机号");
-//            column.addAll(questionColumn);
-//            String[] header = column.toArray(new String[column.size()]);
-////            questionnaireUserResultDao.queryDetailPage()
-//        }else {
-//            throw new BizException("暂无可导出数据");
-//        }
-//    }
-
     @ApiOperation(value = "导出")
     @RequestMapping("/export")
     @PreAuthorize("@pcs.hasPermissions('replacementInstrumentActivity/export')")
@@ -177,11 +158,6 @@ public class ReplacementInstrumentActivityController extends BaseController {
             throw new BizException("没有可导出的记录");
         }
         for (ReplacementInstrumentActivityStatDto row : pageList.getRows()) {
-            if (row.getQuestionResult().substring(0, 1).equals("1")) {
-                row.setHasYesFirstAnswer("是");
-            } else {
-                row.setHasYesFirstAnswer("否");
-            }
             if(row.getInstrumentsId() == null){
                 row.setHasInstrumentsId("否");
             }else {
@@ -192,8 +168,8 @@ public class ReplacementInstrumentActivityController extends BaseController {
         OutputStream outputStream = response.getOutputStream();
         HSSFWorkbook workbook = null;
         try {
-            String[] header = {"分部", "合作单位编号", "合作单位", "学员编号", "学员姓名", "联系电话", "声部", "品牌", "型号", "是否置换乐器"};
-            String[] body = {"organName", "cooperationOrganId", "cooperationOrganName", "userId", "userName", "mobileNo", "subjectName", "brand", "specification","hasInstrumentsId"};
+            String[] header = {"活动编号","分部", "合作单位编号", "合作单位","问卷标题", "缴费状态", "学员编号", "学员姓名", "联系电话", "声部", "品牌", "型号", "是否置换乐器"};
+            String[] body = {"replacementInstrumentCooperationId","organName", "cooperationOrganId", "cooperationOrganName","title","payStatus==NULL || payStatus==0?'未缴费':payStatus==1?'缴费中':'已缴费'", "userId", "userName", "mobileNo", "subjectName", "brand", "specification","hasInstrumentsId"};
             workbook = POIUtil.exportExcel(header, body, pageList.getRows());
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attachment;filename=replacement-" + DateUtil.getDate(new Date()) + ".xls");

+ 9 - 0
mec-web/src/main/java/com/ym/mec/web/controller/TeacherController.java

@@ -78,6 +78,15 @@ public class TeacherController extends BaseController {
         return succeed();
     }
 
+    @ApiOperation(value = "修改教师信息(不包含离职日期等信息)")
+    @PostMapping("/update1")
+    @PreAuthorize("@pcs.hasPermissions('teacher/update1')")
+    @AuditLogAnnotation(operateName = "修改教师信息(不包含离职日期等信息)")
+    public Object update1(Teacher teacher) {
+        teacherService.updateTea1(teacher);
+        return succeed();
+    }
+
     @ApiOperation(value = "根据教师编号查询教师基本信息")
     @GetMapping("/get")
     @ApiParam(value = "教师编号", required = true)