java队列queue

来源:互联网 发布:开票软件有哪些 编辑:程序博客网 时间:2024/04/28 16:03
package com.yanshu.controller;


import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Queue;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;


import com.alibaba.fastjson.JSON;
import com.yanshu.dao.LogesspidersetingDao;
import com.yanshu.dao.OpenCateDao;
import com.yanshu.pojo.Logesspiderseting;
import com.yanshu.pojo.OpenCate;


import com.yanshu.utils.JsonUtil;


@RestController
@CrossOrigin
public class OpenCateController {
@Autowired
private OpenCateDao opendao;
@Autowired
private LogesspidersetingDao logdao;
private Integer count_three = 1; 
String strtim = null;//接收时间的变量
static String operationTimes=null;
static String cids=null;
List<Map<String,Object>> lcids=new ArrayList<>();
Map<String,Object> mcids=new HashMap<>();
public OpenCateController() {
// TODO Auto-generated constructor stub
}
private static final Queue<OpenCate> queueAll = new LinkedList<>();
public static Queue<OpenCate> getInstance() {   
return  queueAll;  
 }
// private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
private static final SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyyMMdd"); 
/**
 * http://localhost:8080/spiderQue/gocid?num=15&cid=11
 * @param num
 * @param cid
 * @return
 */
@RequestMapping(value="/gocid", method = { RequestMethod.GET,RequestMethod.POST }, produces = "application/json; charset=utf-8")
public String getOpenCate(Integer num,String cid)
{
String strtime=dateFormat1.format(new Date());
Map map=new HashMap();
map.put("operationTime", strtime);
map.put("cid", cid);
//传入两个参数--获取的结果永远为空
List<Logesspiderseting> lcids=logdao.findByOpenCate(map);
//map list 判断

//日志表为空,添加记录
if(lcids.size() < 1)
{
//根据用户传递的ID 查询,把数据存到队列里面去
List<OpenCate> opencatelist=opendao.findByOpenCate(cid);
for (OpenCate object : opencatelist) {
queueAll.offer(object);
}
//保存当前,日期和,用户传递的ID到日志表
logdao.save(map);
}
//从队列里面拿数据
List<OpenCate> returnUsers= new ArrayList<>();
for (int i = 1; i <=num; i++) {
if(queueAll.size()>1){
returnUsers.add(queueAll.poll());
}
}
return returnUsers.size()!=0?JSON.toJSONString(returnUsers):JsonUtil.errorMessages(8);
}



}