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 人际关系综合诊断量表
 */
public class PRTScale extends BaseScale {
    public PRTScale(JSONArray jsonArray, JSONObject resultJson) {
        super(jsonArray, resultJson);
    }

    public JSONObject scaleCalculate() throws Exception {
        //交谈总分
        int scoreA = 0;
        //交际总分
        int scoreB = 0;
        //待人接物总分
        int scoreC = 0;
        //异性交往总分
        int scoreD = 0;
        //总分
        int score = 0;

        for (int i = 0; i < jsonArray.size(); i++) {
            JSONObject jsonObject1 = jsonArray.getJSONObject(i);
            if (i == 0 || i == 4 || i == 8 || i == 12 || i == 16 || i == 20 || i == 24) {
                if (jsonObject1.getString("scoreDirection").equals("1")) {
                    if (jsonObject1.getString("checkItems").equals("是")) {
                        scoreA += 1;
                    } else if (jsonObject1.getString("checkItems").equals("否")) {
                        scoreA += 0;
                    }
                }
            } else if (i == 1 || i == 5 || i == 9 || i == 13 || i == 17 || i == 21 || i == 25) {
                if (jsonObject1.getString("scoreDirection").equals("1")) {
                    if (jsonObject1.getString("checkItems").equals("是")) {
                        scoreB += 1;
                    } else if (jsonObject1.getString("checkItems").equals("否")) {
                        scoreB += 0;
                    }
                }
            } else if (i == 2 || i == 6 || i == 10 || i == 14 || i == 18 || i == 22 || i == 26) {
                if (jsonObject1.getString("scoreDirection").equals("1")) {
                    if (jsonObject1.getString("checkItems").equals("符合描写")) {
                        scoreC += 1;
                    } else if (jsonObject1.getString("checkItems").equals("不符合描写")) {
                        scoreC += 0;
                    }
                }
            } else {
                if (jsonObject1.getString("scoreDirection").equals("1")) {
                    if (jsonObject1.getString("checkItems").equals("符合描写")) {
                        scoreD += 1;
                    } else if (jsonObject1.getString("checkItems").equals("不符合描写")) {
                        scoreD += 0;
                    }
                }
            }
        }

        score = scoreA + scoreB + scoreC + scoreD;

        //得分列表
        Map<String, String> resultMap = new LinkedHashMap<>();
        resultMap.put("交谈总分", String.valueOf(scoreA));
        resultJson.put("交谈总分", String.valueOf(scoreA));
        resultMap.put("交际总分", String.valueOf(scoreB));
        resultJson.put("交际总分", String.valueOf(scoreB));
        resultMap.put("待人接物总分", String.valueOf(scoreC));
        resultJson.put("待人接物总分", String.valueOf(scoreC));
        resultMap.put("异性交往总分", String.valueOf(scoreD));
        resultJson.put("异性交往总分", String.valueOf(scoreD));
        resultMap.put("总分", String.valueOf(score));
        resultJson.put("总分", String.valueOf(score));


        if (score >= 0 && score <= 8) {
            resultMap.put("总分结论", "你在与朋友相处上的困扰较少。你善于交谈，性格比较开朗，主动，关心别人，你对周围的朋友都比较好，愿意和他们在一起，他们也都喜欢你，你 们相处得不错。而且，你能够从与朋友相处中，得到乐趣。你的生活是比较充实而且丰富多彩的，你与异性朋友也相处得比较好。一句话，你不存在或较少存在交友 方面的困扰，你善于与朋友相处，人缘很好，获得许多的好感与赞同。");
            resultJson.put("总分结论", "你在与朋友相处上的困扰较少。你善于交谈，性格比较开朗，主动，关心别人，你对周围的朋友都比较好，愿意和他们在一起，他们也都喜欢你，你 们相处得不错。而且，你能够从与朋友相处中，得到乐趣。你的生活是比较充实而且丰富多彩的，你与异性朋友也相处得比较好。一句话，你不存在或较少存在交友 方面的困扰，你善于与朋友相处，人缘很好，获得许多的好感与赞同。");
        } else if (score >= 9 && score <= 14) {
            resultMap.put("总分结论", "你与朋友相处存在一定程度的困扰。你的人缘很一般，换句话说，你和朋友的关系并不牢固，时好时坏，经常处在一种起伏波动之中。");
            resultJson.put("总分结论", "你与朋友相处存在一定程度的困扰。你的人缘很一般，换句话说，你和朋友的关系并不牢固，时好时坏，经常处在一种起伏波动之中。");
        }else if (score >= 15 && score <= 28) {
            resultMap.put("总分结论", "你在同朋友相处上的行为困扰较严重，分数超过20分，则表明你的人际关系困扰程度很严重，而且在心理上出现较为明显得障碍。你可能不善于交谈，也可能是一个性格孤僻的人，不开朗，或者有明显得自高自大、讨人嫌的行为。");
            resultJson.put("总分结论", "你在同朋友相处上的行为困扰较严重，分数超过20分，则表明你的人际关系困扰程度很严重，而且在心理上出现较为明显得障碍。你可能不善于交谈，也可能是一个性格孤僻的人，不开朗，或者有明显得自高自大、讨人嫌的行为。");
        }

        if (scoreA >= 0 && scoreA <= 2) {
            resultMap.put("交谈结论", "你有较高的交谈能力和技巧，善于利用恰当地谈话方式来交流思想感情，因此在与别人建立友情方面，你往往比别人获得更多的成功。这些优势不仅为你的学习与生活创造了良好的心境，而且常常有助于你成为伙伴中的领袖人物。");
            resultJson.put("交谈结论", "你有较高的交谈能力和技巧，善于利用恰当地谈话方式来交流思想感情，因此在与别人建立友情方面，你往往比别人获得更多的成功。这些优势不仅为你的学习与生活创造了良好的心境，而且常常有助于你成为伙伴中的领袖人物。");
        } else if (scoreA >= 3 && scoreA <= 5) {
            resultMap.put("交谈结论", "你的交谈能力一般，你会诉说自己的感受，但不能讲得调理清晰；你努力使自己成为一个好的倾听者，但还是做得不够。如果你与对方不太熟悉，开始时 你往往表现得拘谨与沉默，不大愿意跟对方交谈。但这种局面在你面前一般不会持续很久。经过一段时间的接触与锻炼，你可能主动与同学搭话，同时这一切来得自 然而非造作，此时，表明你的健谈能力已经大为改观，在这方面的困扰也会逐渐消除。");
            resultJson.put("交谈结论", "你的交谈能力一般，你会诉说自己的感受，但不能讲得调理清晰；你努力使自己成为一个好的倾听者，但还是做得不够。如果你与对方不太熟悉，开始时 你往往表现得拘谨与沉默，不大愿意跟对方交谈。但这种局面在你面前一般不会持续很久。经过一段时间的接触与锻炼，你可能主动与同学搭话，同时这一切来得自 然而非造作，此时，表明你的健谈能力已经大为改观，在这方面的困扰也会逐渐消除。");
        }else if (scoreA >= 6) {
            resultMap.put("交谈结论", "你不善于交谈，只有在极需要的情况下你才同别人交谈，你总难于表达自己的感受，无论是愉快还是烦恼；你不是个很好的倾诉者，往往无法专心听别人说话或只对单独的话题感兴趣。");
            resultJson.put("交谈结论", "你不善于交谈，只有在极需要的情况下你才同别人交谈，你总难于表达自己的感受，无论是愉快还是烦恼；你不是个很好的倾诉者，往往无法专心听别人说话或只对单独的话题感兴趣。");

        }

        if (scoreB >= 0 && scoreB <= 2) {
            resultMap.put("交际结论", "你对人较为真诚和热情。总之，你的人际关系较和谐，在这些问题上，你不存在较明显持久的行为困扰。");
            resultJson.put("交际结论", "你对人较为真诚和热情。总之，你的人际关系较和谐，在这些问题上，你不存在较明显持久的行为困扰。");
        } else if (scoreB >= 3 && scoreB <= 5) {
            resultMap.put("交际结论", "往往表明你在被动得寻找被人喜欢的突破口。你不喜欢独自一个人呆着，你需要朋友在一起，但你又不太善于创造条件并积极主动地寻找知心朋友，而且，你心有余悸，生怕再主动行为后的“冷”体验。");
            resultJson.put("交际结论", "往往表明你在被动得寻找被人喜欢的突破口。你不喜欢独自一个人呆着，你需要朋友在一起，但你又不太善于创造条件并积极主动地寻找知心朋友，而且，你心有余悸，生怕再主动行为后的“冷”体验。");
        }else if (scoreB >= 6) {
            resultMap.put("交际结论", "则表明你在社交活动与交游方面存在着较大的行为困扰。比如，在正常集体活动与社交场合，你比大多数伙伴更为拘谨；在有陌生人或老师存在地场合。你往 往感到更加紧张而扰乱你的思绪；你往往过多地考虑自己的形象而使自己处于越被动，越来越孤独的境地。总之，交际与交友方面的严重困扰，使你陷入“感情危机 ”和孤独困窘得状态。");
            resultJson.put("交际结论", "则表明你在社交活动与交游方面存在着较大的行为困扰。比如，在正常集体活动与社交场合，你比大多数伙伴更为拘谨；在有陌生人或老师存在地场合。你往 往感到更加紧张而扰乱你的思绪；你往往过多地考虑自己的形象而使自己处于越被动，越来越孤独的境地。总之，交际与交友方面的严重困扰，使你陷入“感情危机 ”和孤独困窘得状态。");
        }

        if (scoreC >= 0 && scoreC <= 2) {
            resultMap.put("待人接物结论", "表明你较尊重别人，敢于承担责任，对环境的适应性强。你常常以你的真诚、宽容、责任心强等个性获得众多的好感与赞同。");
            resultJson.put("待人接物结论", "表明你较尊重别人，敢于承担责任，对环境的适应性强。你常常以你的真诚、宽容、责任心强等个性获得众多的好感与赞同。");
        } else if (scoreC >= 3 && scoreC <= 5) {
            resultMap.put("待人接物结论", "则往往表明你是个多侧面的人，也许可以算是一个教圆滑的人。对待不同的人，你有不同的态度，而不同的人对你也有不同的评价。你讨厌某人或被某人所讨 厌，但你却极喜欢另一个人或被另一个人所喜欢。你的朋友关系某方面是和谐的、良好的，某些方面却是紧张的恶劣的。因此，你的情绪很不稳定，内心极不平衡， 常常处于矛盾状态中。");
            resultJson.put("待人接物结论", "则往往表明你是个多侧面的人，也许可以算是一个教圆滑的人。对待不同的人，你有不同的态度，而不同的人对你也有不同的评价。你讨厌某人或被某人所讨 厌，但你却极喜欢另一个人或被另一个人所喜欢。你的朋友关系某方面是和谐的、良好的，某些方面却是紧张的恶劣的。因此，你的情绪很不稳定，内心极不平衡， 常常处于矛盾状态中。");
        }else if (scoreC >= 6) {
            resultMap.put("待人接物结论", "则往往表明你缺乏待人接物的机智与技巧。在实际的人际关系中，你也许常有意无意地伤害别人，或者你过分地羡慕别人以致在内心妒忌别人。因此，其他一些同学可能回报你的冷漠、排斥，甚至是愚弄。");
            resultJson.put("待人接物结论", "则往往表明你缺乏待人接物的机智与技巧。在实际的人际关系中，你也许常有意无意地伤害别人，或者你过分地羡慕别人以致在内心妒忌别人。因此，其他一些同学可能回报你的冷漠、排斥，甚至是愚弄。");
        }

        if (scoreD >= 0 && scoreD <= 2) {
            resultMap.put("异性交往结论", " 表明你懂得如何真确处理异性朋友之间的关系。对异性同学持公正的态度，能大大方方地自自然然地与他们交往，并且在与异性交往中，得到了许多从同性朋友那里 不能得到的东西，增加了对异性的了解，也丰富了自己的个性。你可能是一个较受欢迎的人，无论是同学朋友还是异性朋友，多数人都较喜欢你和赞赏你。");
            resultJson.put("异性交往结论", " 表明你懂得如何真确处理异性朋友之间的关系。对异性同学持公正的态度，能大大方方地自自然然地与他们交往，并且在与异性交往中，得到了许多从同性朋友那里 不能得到的东西，增加了对异性的了解，也丰富了自己的个性。你可能是一个较受欢迎的人，无论是同学朋友还是异性朋友，多数人都较喜欢你和赞赏你。");
        } else if (scoreD >= 3 && scoreD <= 4) {
            resultMap.put("异性交往结论", "表明你与异性同学交往的行为困扰程度一般，优势呢可能会觉得与异性同学交往是一件愉快的事，有时又会认为这种交往似乎是一种负担，你不懂得如何与异性交往最适宜。");
            resultJson.put("异性交往结论", "表明你与异性同学交往的行为困扰程度一般，优势呢可能会觉得与异性同学交往是一件愉快的事，有时又会认为这种交往似乎是一种负担，你不懂得如何与异性交往最适宜。");
        }else if (scoreD >= 5) {
            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_PRT);
        returnJson.put("resultJson", resultJson);

        return returnJson;
    }
}
