package com.chinacreator.videoalliance.query.action; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import net.sf.json.JSONSerializer; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import com.chinacreator.common.exception.BusinessException; import com.chinacreator.common.pipe.DataOutPipe; import com.chinacreator.videoalliance.common.annotation.DataOut; import com.chinacreator.videoalliance.order.bean.OrderInfo; import com.chinacreator.videoalliance.order.dao.OrderDao; import com.chinacreator.videoalliance.query.bean.ProductBean; import com.chinacreator.videoalliance.query.dao.ProductDao; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonSerializer; @Controller public class QuerySpAction { @Autowired private OrderDao orderDao; @Autowired private ProductDao productDao; @RequestMapping("/querySP.do") @DataOut(callback="querySP") public DataOutPipe doOrder(HttpServletRequest request, String userid, String backurl,String apptype,String cpid) throws Exception { DataOutPipe pipe = new DataOutPipe(); if(StringUtils.isEmpty(cpid)){ throw new BusinessException("9002", "cpid参数不能为空"); } if(StringUtils.isEmpty(userid)){ throw new BusinessException("9002", "userid参数不能为空"); } List list = orderDao.findByUser(userid, cpid); List listproduct = productDao.query(cpid); for (OrderInfo orderInfo : list) { for (ProductBean productBean : listproduct) { if(orderInfo.getSpid().equals(productBean.getSpid())){ orderInfo.setMutex(productBean.getMutex()); } } } Iterator iterator = listproduct.iterator(); while(iterator.hasNext()){ ProductBean productBean = iterator.next(); for (OrderInfo orderInfo : list) { if(orderInfo.getSpid().equals(productBean.getSpid())){ iterator.remove(); }else if(StringUtils.isNotEmpty(orderInfo.getMutex())){ String[] strs = orderInfo.getMutex().trim().split(","); for (String string : strs) { if(productBean.getSpid().equals(string)){ iterator.remove(); } } } } } Gson gson = new Gson(); System.out.println(gson.toJson(listproduct)); // System.out.println(JSONSerializer.toJSON(listproduct)); pipe.add("product",listproduct); return pipe; } }