DSMServiceImpl.java 2.54 KB
package com.bsth.service.dsm.impl;


import com.alibaba.fastjson.JSON;
import com.bsth.service.dsm.DSMService;
import com.bsth.util.HttpClientUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*;

@Service
public class DSMServiceImpl implements DSMService {

    Logger logger = LoggerFactory.getLogger(this.getClass());

    @Autowired
    JdbcTemplate jdbcTemplate;

    @Value("${dsm.url}")
    private String url;



    private static DateTimeFormatter dtf=DateTimeFormatter.ofPattern("yyyy-MM-dd");
    @Override
    public Map<String, Object> query(Map<String, Object> map) {
        Map<String, Object> modelMap = new HashMap<>();
        try {
            String dateS = LocalDate.now().format(dtf);
            String dateE = LocalDate.now().plusDays(1).format(dtf);
            if(map.get("date")!=null){
                dateS=map.get("date").toString();
                dateE=LocalDate.parse(map.get("date").toString(),dtf).plusDays(1).format(dtf);
            }
            StringBuilder sb= HttpClientUtils.get(url+"?startime="+dateS+"&endtime="+dateE);
            List<Map> query = JSON.parseArray(sb.toString(),Map.class);
            Iterator it = query.iterator();

            while (it.hasNext()) {
                Map m = (Map) it.next();
                if(map.get("line")!=null && !map.get("line").equals("") && !map.get("line").equals(m.get("lineid").toString())){
                    it.remove();
                }
                else if(map.get("nbbm_like")!=null && !map.get("nbbm_like").equals("") && !m.get("nbbm").toString().contains(map.get("nbbm_like").toString())){
                    it.remove();
                }

            }

            Integer page = Integer.valueOf(map.containsKey("page")?map.get("page").toString():"0");
            int end = (page+1)*10>query.size()?query.size():(page+1)*10;
            List<Map> result=query.subList(page*10, end);
            modelMap.put("dataList", result);
            modelMap.put("totalPages", query.size()%10>0?query.size()/10+1:query.size()/10);
            modelMap.put("code","00");
            return modelMap;
        } catch (Exception e) {
            logger.error("DSM查询异常", e);
            modelMap.put("code","502");
            return modelMap;
        }
    }


}