package com.jshop.action.taobao; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.springframework.stereotype.Controller; import com.jshop.action.tools.Validate; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import com.taobao.api.ApiException; import com.taobao.api.DefaultTaobaoClient; import com.taobao.api.TaobaoClient; import com.taobao.api.domain.Item; import com.taobao.api.domain.TradeRate; import com.taobao.api.request.ItemsOnsaleGetRequest; import com.taobao.api.request.TraderatesSearchRequest; import com.taobao.api.request.UserGetRequest; import com.taobao.api.response.ItemsOnsaleGetResponse; import com.taobao.api.response.TraderatesSearchResponse; import com.taobao.api.response.UserGetResponse; @ParentPackage("jshop") @Controller("tbItemAction") public class TbItemAction extends ActionSupport { private String numIid; private String nick; private String params; private List rows=new ArrayList(); private int rp; private Long page=1L; private int total=0; private String query; private String qtype; //报表数据集合 private List chartsrows=new ArrayList(); private boolean slogin; private boolean sucflag; public String getNick() { return nick; } public void setNick(String nick) { this.nick = nick; } public String getNumIid() { return numIid; } public void setNumIid(String numIid) { this.numIid = numIid; } public String getQuery() { return query; } public void setQuery(String query) { this.query = query; } public String getQtype() { return qtype; } public void setQtype(String qtype) { this.qtype = qtype; } public List getRows() { return rows; } public void setRows(List rows) { this.rows = rows; } public int getRp() { return rp; } public void setRp(int rp) { this.rp = rp; } public String getParams() { return params; } public void setParams(String params) { this.params = params; } public Long getPage() { return page; } public void setPage(Long page) { this.page = page; } public int getTotal() { return total; } public void setTotal(int total) { this.total = total; } public boolean isSlogin() { return slogin; } public void setSlogin(boolean slogin) { this.slogin = slogin; } public boolean isSucflag() { return sucflag; } public void setSucflag(boolean sucflag) { this.sucflag = sucflag; } public List getChartsrows() { return chartsrows; } public void setChartsrows(List chartsrows) { this.chartsrows = chartsrows; } /** * 清理错误 */ @Override public void validate() { this.clearErrorsAndMessages(); } /** * 根据当前页和每页大小拿到分页数据 * * @param pageNo * 当前页 * @param pageSize * 每页大小 * @param lstArticle * 数据 * @return List<Article> */ public static List getDataByPageNo(int pageNo, int pageSize, List list) { int totalpage = pageNo * pageSize > list.size() ? list.size() : pageNo * pageSize; return list.subList((pageNo - 1) * pageSize, totalpage); } /** * 获取淘宝用户上架商品信息 * @throws ApiException * @throws ApiException */ @Action(value = "findAllTaobaoOnsaleItem", results = { @Result(name = "json",type="json") }) public String findAllTaobaoOnsaleItem() throws ApiException{ String taobao_user_nick=(String) ActionContext.getContext().getSession().get("taobao_user_nick"); TaobaoClient client=new DefaultTaobaoClient(Util.URL, Util.APP_KEY, Util.APP_SERCET); UserGetRequest req=new UserGetRequest(); req.setFields("user_id,nick,seller_credit"); req.setNick(taobao_user_nick); UserGetResponse response = client.execute(req , Util.sessionKey); System.out.print(response); if(this.getQtype().equals("sc")){ this.setTotal(0); rows.clear(); this.findDefaultAllTaobaoOnsaleItem(); }else{ if(Validate.StrisNull(this.getQuery())){ return "json"; }else{ return "json"; } } return "json"; } public void findDefaultAllTaobaoOnsaleItem() throws ApiException{ String sessionKey=(String) ActionContext.getContext().getSession().get("sessionKey"); int currentPage=(int) page.longValue(); int lineSize=rp; TaobaoClient client=new DefaultTaobaoClient(Util.URL, Util.APP_KEY, Util.APP_SERCET); ItemsOnsaleGetRequest req=new ItemsOnsaleGetRequest(); req.setFields("num_iid,title,nick"); ItemsOnsaleGetResponse response = client.execute(req ,sessionKey); //System.out.println(response); List list=response.getItems(); if(list!=null){ total=list.size(); List list1=getDataByPageNo(currentPage,lineSize,list); if(list1!=null){ this.ProcessTaobaoOnsaleItem(list1); } } } public void ProcessTaobaoOnsaleItem(List list){ rows.clear(); for(Iterator it=list.iterator();it.hasNext();){ Item tbi=(Item)it.next(); Map<String,Object>cellMap=new HashMap<String,Object>(); cellMap.put("id", tbi.getNumIid()); cellMap.put("cell", new Object[]{ "<input id='id' name='firstcol' class='firsttaobaoonsaleitem' type='checkbox' value='"+tbi.getNumIid()+"'></input>", tbi.getTitle(), tbi.getNick(), "<a id='editgoods' href='jshop/admin/taobao/tbtradermanagement.jsp?params="+tbi.getNumIid()+","+tbi.getNick()+"' name='editgoods'>[查看评论]</a>" }); rows.add(cellMap); } } /** * 根据商品的数字ID获取评论 * @return * @throws ApiException */ @Action(value = "findAlltraderatessearchById", results = { @Result(name = "json",type="json") }) public String findAlltraderatessearchById() throws ApiException{ if(Validate.StrNotNull(this.getParams())){ String []strs=this.getParams().split(","); this.setNumIid(strs[0]); this.setNick(strs[1]); } TaobaoClient client=new DefaultTaobaoClient(Util.URL, Util.APP_KEY, Util.APP_SERCET); TraderatesSearchRequest req=new TraderatesSearchRequest(); req.setNumIid(Long.parseLong(this.getNumIid())); req.setSellerNick(this.getNick()); req.setPageNo(page); req.setPageSize(40L); TraderatesSearchResponse response = client.execute(req); List<TradeRate> list=response.getTradeRates(); if(list!=null){ total=response.getTotalResults().intValue(); rows.clear(); for(Iterator it=list.iterator();it.hasNext();){ TradeRate tr=(TradeRate)it.next(); if(tr.getRole().equals("seller")){ tr.setRole("卖家"); }else{ tr.setRole("买家"); } if(tr.getResult().equals("good")){ tr.setResult("好评"); }else if(tr.getResult().equals("neutral")){ tr.setResult("中评"); }else{ tr.setResult("差评"); } Map<String,Object>cellMap=new HashMap<String,Object>(); cellMap.put("id", tr.getNick()); cellMap.put("cell", new Object[]{ "<input id='id' name='firstcol' class='firsttaobaoonsaleitem' type='checkbox' value='"+tr.getNick()+"'></input>", tr.getNick(), tr.getItemTitle(), tr.getResult(), tr.getCreated(), tr.getContent(), tr.getReply(), "<a id='editgoods' href='#'>[发送回馈邮件]</a>" }); rows.add(cellMap); } }else{ this.setTotal(0); rows.clear(); return "json"; } return "json"; } }