package com.duowenlvshi.duowenlszp.app.util;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;


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

/**
 * @author yang fang yu
 * @since 2019/8/29 17:34
 */
@Service
public class SelectRedis {
    @Autowired
    private StringRedisTemplate redisTemplate;
    /**
     * 把数据库字段code的val从redis中取出,并加入list中
     * */
    public  void SelectList(List<Map> list,String code){
        List<String> list2 = new ArrayList();
        list2.add("post");
        list2.add("sex");
        list2.add("yearlySalary");
        list2.add("city");
        list2.add("expertise");
        list2.add("school");
        list2.add("businessType");
        list2.add("upperOrLower");
        list2.add("yearsOfPractice");
        list2.add("latelyPost");
        list2.add("latelyCity");
        list2.add("latelyYearlySalary");
        list2.add("latelyBusinessType");
        list2.add("latelyExpertise");
        list2.add("education");
        /*list2.add("msgType");*/
        for (Map map : list) {
            for (String str : list2) {
                String str1 =(String) map.get(str);
                if(str1 != null){
                    String[] strArray = str1.split(",");
                    if(strArray.length>1){
                        String str2 = "";
                        int i=1;
                        for (String s : strArray) {
                            String str3 = redisTemplate.opsForValue().get(s);
                            if("city".equals(str)){
                                if("1".equals(code)){
                                    if(i % 2==0){
                                        str2 +=str3+" ";
                                    }
                                    i++;
                                }else{
                                    str2 +=str3+" ";
                                }
                            }else if("latelyCity".equals(str)){
                                if(i % 2==0){
                                    str2 +=str3+" ";
                                }
                                i++;
                            }
                            else{
                                str2 +=str3+",";
                            }
                        }
                        str2 = str2.substring(0,str2.length() - 1);
                        map.put(str+"Val",str2);
                    }else{
                        map.put(str+"Val",redisTemplate.opsForValue().get(str1));
                    }
                }
            }
        }
    }
}
