罗元桥
2021-09-16 2e886e605ec08c40b690027a6d364e972d55fe0a
Merge branch 'test_bak' into 'master'

Test bak

See merge request root/zhihuishequ!179
7个文件已修改
206 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpUtils.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityQuestnaireApi.java 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireAnswerContentDAO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireSubDO.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActQuestnaireAnswerContentDOMapper.xml 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java
@@ -76,7 +76,7 @@
            stringEntity.setContentEncoding(HttpConstant.UTF8_ENCODE);
            stringEntity.setContentType(HttpConstant.APPLICATION_JSON);
            httpPost.setEntity(stringEntity);
            log.info("请求{}接口的参数为{}", url, jsonParam);
//            log.info("请求{}接口的参数为{}", url, jsonParam);
            // 执行发送,获取相应结果
            httpResponse = httpClient.execute(httpPost);
            httpEntity = httpResponse.getEntity();
@@ -99,7 +99,7 @@
        }
        // 请求接口的响应时间
        endTime = System.currentTimeMillis();
        log.info("请求{}接口的响应报文内容为{},本次请求API接口的响应时间为:{}毫秒", url, result, (endTime - startTime));
//        log.info("请求{}接口的响应报文内容为{},本次请求API接口的响应时间为:{}毫秒", url, result, (endTime - startTime));
        return result;
    }
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpUtils.java
@@ -56,7 +56,7 @@
        BufferedReader in = null;
        try {
            String urlNameString = url + "?" + param;
            log.info("sendGet - {}", urlNameString);
//            log.info("sendGet - {}", urlNameString);
            URL realUrl = new URL(urlNameString);
            URLConnection connection = realUrl.openConnection();
            connection.setRequestProperty("accept", "*/*");
@@ -68,7 +68,7 @@
            while ((line = in.readLine()) != null) {
                result.append(line);
            }
            log.info("recv - {}", result);
//            log.info("recv - {}", result);
        } catch (ConnectException e) {
            log.error("调用HttpUtils.sendGet ConnectException, url=" + url + ",param=" + param, e);
        } catch (SocketTimeoutException e) {
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityQuestnaireApi.java
@@ -3,12 +3,14 @@
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.*;
import javax.annotation.Resource;
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.common.utlis.StringUtils;
import org.springframework.web.bind.annotation.*;
import com.alibaba.excel.EasyExcel;
@@ -173,7 +175,7 @@
                    String firstRowContent = "调查结果";
                    List<String> head0 = new ArrayList<>();
                    head0.add(firstRowContent);
                    head0.add("姓名");
                    head0.add("调查人昵称");
                    headList.add(head0);
                    List<String> head1 = new ArrayList<>();
                    head1.add(firstRowContent);
@@ -182,53 +184,14 @@
                    subVOList.forEach(sub -> {
                        List<String> headn = new ArrayList<>();
                        headn.add(firstRowContent);
                        headn.add(sub.getContent());
                        if(sub.getType() == 11){
                            headn.add(sub.getContent().substring(0, sub.getContent().indexOf("(")));
                        }else{
                            headn.add(sub.getContent());
                        }
                        headList.add(headn);
                    });
                    List<List<Object>> datalist = new ArrayList<>();
                    List<ComActQuestnaireAnswerContentVO> answerContentVOList = questnaireAnswersDTOS.getAnswers();
                    if (answerContentVOList != null && answerContentVOList.size() > 0) {
                        List<Object> userData = new ArrayList<>();
                        List<ComActQuestnaireAnswerContentVO> usersAnswers = questnaireAnswersDTOS.getAnswers();
                        //查询用户回答的所有答案,并新增到答案列表中
                        Long reserveRecordId = null;
                        StringBuffer sb = new StringBuffer();
                        Boolean isDX = false;
                        for (ComActQuestnaireAnswerContentVO userAnswers:usersAnswers) {
                            if(reserveRecordId == null){
                                reserveRecordId = userAnswers.getReserveRecordId();
                                userData.add(userAnswers.getNickName());
                                userData.add(DateUtils.format(userAnswers.getTime(),DateUtils.ymdhms_format));
                            }
                            if(!reserveRecordId.equals(userAnswers.getReserveRecordId())){
                                if(isDX){
                                    String answer = sb.toString();
                                    userData.add(answer.substring(0,answer.length()-1));
                                    sb = new StringBuffer();
                                    isDX = false;
                                }
                                datalist.add(userData);
                                userData = new ArrayList<>();
                                reserveRecordId = userAnswers.getReserveRecordId();
                                userData.add(userAnswers.getNickName());
                                userData.add(DateUtils.format(userAnswers.getTime(),DateUtils.ymdhms_format));
                            }
                            //判断是否是多选框
                            if(userAnswers.getOptionType().equals(1)){
                                isDX = true;
                                sb.append(userAnswers.getAnswerContent() + ",");
                                continue;
                            }
                            userData.add(userAnswers.getAnswerContent());
                        }
                        if(isDX){
                            String answer = sb.toString();
                            userData.add(answer.substring(0,answer.length()-1));
                        }
                        datalist.add(userData);
                    }
                    List<List<Object>> datalist = dataList(questnaireAnswersDTOS.getAnswers());
                    WriteCellStyle headWriteCellStyle = new WriteCellStyle();
                    WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
@@ -346,4 +309,90 @@
        return communityService.statisticsSummaryHeader(questId, loginUserInfo.getCommunityId());
    }
    /**
     * 数据转换
     * @param answerContentVOList   用户问答列表数据
     * @return  调查问卷需要导出数据
     */
    private List<List<Object>> dataList(List<ComActQuestnaireAnswerContentVO> answerContentVOList) {
        //结果数据集合
        List<List<Object>> resultList = new ArrayList<>();
        //构建单个用户数据
        List<Object> userData = new ArrayList<>();
        //遍历答案列表
        Long reserveRecordId = 0L;
        Long reserveSubId = 0L;
        StringBuffer sb = new StringBuffer();
        if (answerContentVOList != null && answerContentVOList.size() > 0) {
            for (ComActQuestnaireAnswerContentVO userAnswers : answerContentVOList) {
                //判断是文字描述直接跳过
                if (userAnswers.getOptionType().equals(5)) {
                    continue;
                }
                //判断reserveRecordId为空则为第一条记录,默认加上昵称和灯谜是
                if (reserveRecordId.equals(0L)) {
                    reserveRecordId = userAnswers.getReserveRecordId();
                    userData.add(userAnswers.getNickName());
                    userData.add(DateUtils.format(userAnswers.getTime(), DateUtils.ymdhms_format));
                }
                //根据reserveRecordId判断是否是第二条填报记录
                if (!reserveRecordId.equals(userAnswers.getReserveRecordId())) {
                    reserveSubId = 0L;
                    userData = new ArrayList<>();
                    reserveRecordId = userAnswers.getReserveRecordId();
                    userData.add(userAnswers.getNickName());
                    userData.add(DateUtils.format(userAnswers.getTime(), DateUtils.ymdhms_format));
                    if(StringUtils.isNotEmpty(userAnswers.getAnswerContent())){
                        userData.add(userAnswers.getAnswerContent());
                    }else{
                        userData.add(" ");
                    }
                }else{
                    if(reserveSubId.equals(0L)){
                        reserveSubId = userAnswers.getReserveSubId();
                    }
                    if(!reserveSubId.equals(userAnswers.getReserveSubId())){
                        reserveSubId = userAnswers.getReserveSubId();
                        //判断当前的组件类型是否是图片上传,导出时需要导出图片
                        if(userAnswers.getOptionType().equals(11)){
                            reserveSubId = userAnswers.getReserveSubId();
                            try {
                                userData.add(new URL(userAnswers.getAnswerContent()));
                            }catch (Exception e){
                                userData.add(" ");
                                log.error("导出转换图片失败!");
                            }
                            continue;
                        }
                        sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
                        String answer = sb.toString();
                        userData.add(answer.substring(0, answer.length() - 1));
                        sb = new StringBuffer();
                    }else{
                        //判断当前的组件类型是否是图片上传,导出时需要导出图片
                        if(userAnswers.getOptionType().equals(11)){
                            reserveSubId = userAnswers.getReserveSubId();
                            try {
                                userData.add(new URL(userAnswers.getAnswerContent()));
                            }catch (Exception e){
                                userData.add(" ");
                                log.error("导出转换图片失败!");
                            }
                            continue;
                        }
                        sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
                        String answer = sb.toString();
                        userData.add(answer.substring(0, answer.length() - 1));
                        sb = new StringBuffer();
                    }
                }
            }
            resultList.add(userData);
        }
        return resultList;
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireAnswerContentDAO.java
@@ -41,10 +41,6 @@
     * @param questId
     *            问卷ID
     */
//    @Select("<script> " + "SELECT ac.* \n"
//        + "FROM com_act_questnaire_answer_content ac left JOIN com_act_questnaire_sub qs  ON ac.sub_id = qs.id \n"
//        + " LEFT JOIN   com_act_questnaire qn ON qs.que_Id = qn.id \n" + "WHERE qn.id=#{questId}\n"
//        + "ORDER BY ac.user_id, qs.id " + "</script>")
    List<ComActQuestnaireAnswerContentVO> selectListByQuestnaire(@Param("questId") Long questId);
    /**
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireSubDO.java
@@ -22,7 +22,7 @@
    /**
     * 类型 0 单选  1 多选 2 输入框 2姓名输入框 3 手机号 4 身份证 5 文字描述 6 日期选择
     */
    private int type;
    private Integer type;
    /**
     * 题目内容
     */
@@ -41,4 +41,22 @@
     */
    @TableField("`key`")
    private String key;
    /**
     * 类型 0 单选  1 多选 2 输入框  3 手机号 4 身份证 5 文字描述 6 日期选择 7 时间选择 8 可换行的输入框 9姓名输入框 10图片选择 11图片上传
     */
    public interface type {
        int danxuan = 0;
        int duoxuan = 1;
        int wenda = 2;
        int phone = 3;
        int card = 4;
        int describe = 5;
        int date = 6;
        int time = 7;
        int input = 8;
        int name = 9;
        int imgselect = 10;
        int imgopload = 11;
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireServiceImpl.java
@@ -481,9 +481,11 @@
            new QueryWrapper<ComActQuestnaireSubDO>().lambda().eq(ComActQuestnaireSubDO::getQueId, questId));
        List<ComActQuestnaireSubVO> listSubVo = new ArrayList<>();
        list.forEach(subDo -> {
            ComActQuestnaireSubVO comActQuestnaireSubVO = new ComActQuestnaireSubVO();
            BeanUtils.copyProperties(subDo, comActQuestnaireSubVO);
            listSubVo.add(comActQuestnaireSubVO);
            if(!subDo.getType().equals(ComActQuestnaireSubDO.type.describe)){
                ComActQuestnaireSubVO comActQuestnaireSubVO = new ComActQuestnaireSubVO();
                BeanUtils.copyProperties(subDo, comActQuestnaireSubVO);
                listSubVo.add(comActQuestnaireSubVO);
            }
        });
        questnaireAnswersDTO.setSubs(listSubVo);
        /**
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActQuestnaireAnswerContentDOMapper.xml
@@ -25,19 +25,24 @@
    <select id="selectListByQuestnaire" resultType="com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO">
        SELECT
            qs.type AS optionType,
            ac.answer_id as reserveRecordId,
            ac.answer_content,
            caqs.type AS optionType,
            caqac.answer_id as reserveRecordId,
            caqac.sub_id as reserveSubId,
            caqac.answer_content,
            caqac.type,
            caqac.id,
            su.nick_name,
            carr.create_at AS `time`
            caqua.create_at AS `time`
        FROM
            com_act_questnaire_answer_content ac
            LEFT JOIN com_act_questnaire_sub qs ON ac.sub_id = qs.id
            LEFT JOIN com_act_questnaire qn ON qs.que_Id = qn.id
            LEFT JOIN sys_user su ON ac.user_id = su.user_id
            LEFT JOIN com_act_questnaire_user_answer carr ON carr.id = ac.answer_id
            com_act_questnaire_answer_content caqac
            LEFT JOIN com_act_questnaire_sub caqs ON caqac.selection_id = caqs.id
            LEFT JOIN com_act_questnaire caq ON caqs.que_Id = caq.id
            LEFT JOIN sys_user su ON caqac.user_id = su.user_id
            LEFT JOIN com_act_questnaire_user_answer caqua ON caqua.id = caqac.answer_id
        WHERE
            qn.id = #{questId}
            caq.id = #{questId}
        ORDER BY
            caqac.id ASC
    </select>
</mapper>