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

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.rf.psychological.scale.dao.model.ScaleEntity;
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 OCCAGEScale extends BaseScale{
    public OCCAGEScale(JSONArray jsonArray, JSONObject resultJson) {
        super(jsonArray, resultJson);
    }

    public JSONObject scaleCalculate() throws Exception {
        //得分
        int score = 0;
        List<ScaleEntity> scaleEntities = (List<ScaleEntity>) resultJson.get("scaleEntities");

        for (int i = 0; i < jsonArray.size(); i++) {
            JSONObject jsonObject1 = jsonArray.getJSONObject(i);
            String[] split = scaleEntities.get(i).getCheckItems().split("；");
            for (int y = 0; y < split.length; y++) {
                if (jsonObject1.getString("checkItems").equals(split[y])) {
                    switch (y) {
                        case 0: {
                            score += 5;
                            break;
                        }
                        case 1: {
                            score += 3;
                            break;
                        }
                        case 2: {
                            score += 1;
                            break;
                        }
                    }
                }
            }
        }
        //得分列表
        Map<String, String> resultMap = new LinkedHashMap<>();
        resultMap.put("总分", String.valueOf(score));
        resultJson.put("总分", String.valueOf(score));

        if (score <= 20 && score >= 0) {
            resultMap.put("结论", "【职业心理儿童期】 你本质上还是一个天真小可爱。不切实际是你最大的优点和缺点。它让你更能感受快乐，也让你在生活中时常受挫。这种类型的人大多数具有自发性，并在富有创造性的工作中表现较为出色，但缺乏耐心，像小孩子一样容易朝三暮四，所以，儿童型的人通常比较难以让人信赖。处在这个心理年龄的人，还需要在职场的风雨中多多磨练，才能逐渐成熟。");
            resultJson.put("结论", "【职业心理儿童期】 你本质上还是一个天真小可爱。不切实际是你最大的优点和缺点。它让你更能感受快乐，也让你在生活中时常受挫。这种类型的人大多数具有自发性，并在富有创造性的工作中表现较为出色，但缺乏耐心，像小孩子一样容易朝三暮四，所以，儿童型的人通常比较难以让人信赖。处在这个心理年龄的人，还需要在职场的风雨中多多磨练，才能逐渐成熟。");
        } else if (score <= 40 && score >= 21) {
            resultMap.put("结论", "【职业心理青年期】 这种类型的人通常是理想主义者，富有冒险精神，乐观、专注，求知欲旺盛等许多令人喜欢的品质。但他们的一贯性和好斗性可能会很快演变成为固执和不妥协，因而容易导致同事之间发生分歧。此外，他们通常不信任直觉，受周围环境的影响很大。处在这个心理年龄的人，应该树立长远目标，克服短期行为。");
            resultJson.put("结论", "【职业心理青年期】 这种类型的人通常是理想主义者，富有冒险精神，乐观、专注，求知欲旺盛等许多令人喜欢的品质。但他们的一贯性和好斗性可能会很快演变成为固执和不妥协，因而容易导致同事之间发生分歧。此外，他们通常不信任直觉，受周围环境的影响很大。处在这个心理年龄的人，应该树立长远目标，克服短期行为。");
        } else if (score <= 60 && score >= 41) {
            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_OCC_AGE);
        returnJson.put("resultJson", resultJson);

        return returnJson;
    }
}
