KlServiceImpl.java 3.32 KB
package com.bsth.service.Kl.impl;



import com.bsth.entity.Kl;
import com.bsth.service.Kl.KlService;
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.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;

@Service
public class KlServiceImpl implements KlService {

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

    @Autowired
    JdbcTemplate jdbcTemplate;

    private static DateTimeFormatter dtf=DateTimeFormatter.ofPattern("yyyy-MM-dd");

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

    DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

    @Override
    public Map<String, Object> query(Map<String, Object> map) {
        Map<String, Object> modelMap = new HashMap<>();
        try {
            StringBuffer sql=new StringBuffer("SELECT * FROM bsth_c_kl where 1=1 ");
            if(map.get("line")!=null && !map.get("line").equals("")){
                sql.append(" and line_code ='"+map.get("line")+"'");
            }
            if(map.get("deviceId_like")!=null && !map.get("deviceId_like").equals("")){
                sql.append(" and deviceId like '%"+map.get("deviceId_like")+"%'");
            }
            String date = LocalDate.now().format(dtf);
            if(map.get("date")!=null){
                date=map.get("date").toString();
            }
            sql.append(" and createDate >='"+date+" 00:00:00'");
            sql.append(" and createDate <='"+date+" 23:59:59'");
            List<Map<String,Object>> query = jdbcTemplate.queryForList(sql.toString());
            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<String,Object>> result=query.subList(page*10, end);
            for (Map<String, Object> m : result) {
                m.put("time",m.get("createDate").toString().substring(0,19));
                m.put("photo",url+m.get("photo"));
            }
            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("客流查询异常", e);
            modelMap.put("code","502");
            return modelMap;
        }
    }

    @Override
    public List<Kl> loadKl() {
        List<Kl> list = new ArrayList<>();
        try {
            LocalDateTime localDateTime = LocalDateTime.now().minusMinutes(3);
            String time = localDateTime.format(dateTimeFormatter);
            StringBuffer sql=new StringBuffer("select * from bsth_c_kl where createDate>='" +time+
                    "' and id in(SELECT max(id) from bsth_c_kl GROUP BY deviceId)");
            list = jdbcTemplate.query(sql.toString(), BeanPropertyRowMapper.newInstance(Kl.class));
        } catch (Exception e) {
            logger.error("客流信息加载异常", e);
        }
        return list;
    }


}