package com.rf.psychological.scale.resultBusiness.scaleResult;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.rf.psychological.utils.Constant;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
 * @description Sarason考试焦虑量表
 */
public class TAScale extends BaseScale {
    public TAScale(JSONArray jsonArray, JSONObject resultJson) {
        super(jsonArray, resultJson);
    }

    public JSONObject scaleCalculate() throws Exception {
        //总分
        int score = 0;

        for (int i = 0; i < jsonArray.size(); i++) {
            JSONObject jsonObject1 = jsonArray.getJSONObject(i);
            if (jsonObject1.getString("checkItems").equals("是")) {
                score += 1;
            } else if (jsonObject1.getString("checkItems").equals("否")) {
                score += 0;
            }
        }


        //得分列表
        Map<String, String> resultMap = new LinkedHashMap<>();
        resultMap.put("总分", String.valueOf(score));
        resultJson.put("总分", String.valueOf(score));


        if (score >= 0 && score <= 11) {
            resultMap.put("结论", "面对考试，您的心中会有些惶恐不安，有一种焦虑感，请别担心，这是正常现象。当你出现焦虑感时，说明你的脑细胞已经兴奋起来了，准备好面对紧张的考试了。相关研究结果表明，适度的焦虑感有助于考试成绩的提高。 建议：在考试前，您对自己的心理掌控能力还是较好的，可以适当的放松来做一些缓解。");
            resultJson.put("结论", "面对考试，您的心中会有些惶恐不安，有一种焦虑感，请别担心，这是正常现象。当你出现焦虑感时，说明你的脑细胞已经兴奋起来了，准备好面对紧张的考试了。相关研究结果表明，适度的焦虑感有助于考试成绩的提高。 建议：在考试前，您对自己的心理掌控能力还是较好的，可以适当的放松来做一些缓解。");
        } else if (score >= 12 && score <= 19) {
            resultMap.put("结论", "您在面临考试时，心情过于激动，焦虑感过高。以这样紧张的心情去参加考试，势必难以考出你的实际水平。由于焦虑，您的神经系统功能可能变得有点儿紊乱，因此，您应当设法降低自己的考试焦虑水平，防止神经功能进一步恶化，以免形成慢性的神经性焦虑症。 建议：在考试前，您最重要的工作并不是要抓紧时间再多学一点，而是要调整自己的心态。您可以适当放低对自己的要求，尽量做一些运动来缓解机体的焦虑。");
            resultJson.put("结论", "您在面临考试时，心情过于激动，焦虑感过高。以这样紧张的心情去参加考试，势必难以考出你的实际水平。由于焦虑，您的神经系统功能可能变得有点儿紊乱，因此，您应当设法降低自己的考试焦虑水平，防止神经功能进一步恶化，以免形成慢性的神经性焦虑症。 建议：在考试前，您最重要的工作并不是要抓紧时间再多学一点，而是要调整自己的心态。您可以适当放低对自己的要求，尽量做一些运动来缓解机体的焦虑。");
        }else if (score >= 20 && score <= 37){
            resultMap.put("结论", "您已经患上了“考试焦虑症”，这是一种神经性的焦虑症。对你而言，考试已经不仅仅是考试那么简单，更像是一次次艰难地“受刑”，尤其是在考试前夕莫名其妙难以忍受的焦虑和恐惧，在这些情绪的摧残中，每一次考试都不能幸免地无法发挥好，久而久之，更是强化了恶性的循环，严重影响对学习的信心，形成习得性的无助。 建议：您的焦虑水平已经极高，这种情况下建议您进行心理咨询，在心理咨询师的陪伴下一步步来降低考试带给你魔性般的焦虑。");
            resultJson.put("结论", "您已经患上了“考试焦虑症”，这是一种神经性的焦虑症。对你而言，考试已经不仅仅是考试那么简单，更像是一次次艰难地“受刑”，尤其是在考试前夕莫名其妙难以忍受的焦虑和恐惧，在这些情绪的摧残中，每一次考试都不能幸免地无法发挥好，久而久之，更是强化了恶性的循环，严重影响对学习的信心，形成习得性的无助。 建议：您的焦虑水平已经极高，这种情况下建议您进行心理咨询，在心理咨询师的陪伴下一步步来降低考试带给你魔性般的焦虑。");
        }

        List<Map<String, String>> resultMapList = new ArrayList<>();
        resultMapList.add(resultMap);

        JSONObject returnJson = new JSONObject(true);
        returnJson.put("resultMapList", resultMapList);
        returnJson.put("scaleName", Constant.SHEET_NAME_TAS);
        returnJson.put("resultJson", resultJson);

        return returnJson;
    }
}
