package edu.fudan.weixin.actions;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import edu.fudan.eservice.common.struts.GuestActionBase;
import edu.fudan.eservice.common.utils.CommonUtil;
import edu.fudan.eservice.common.utils.MongoUtil;
import edu.fudan.weixin.model.TACOAuth2Model;
import edu.fudan.weixin.model.WiscomPayModel;
@ParentPackage(value = "servicebase")
@Namespace("/")
public class PayAction extends GuestActionBase {
/**
*
*/
private static final long serialVersionUID = -1752755265539060382L;
private List binds;
private String uisid;
public String execute() throws IOException {
Object openid = getSession().get("openid");
if (!CommonUtil.isEmpty(openid)) {
DBObject user = MongoUtil.getInstance().getDB()
.getCollection("Bindings")
.findOne(new BasicDBObject("openid", openid));
binds = new TACOAuth2Model().fetchUserinfo(user);
if (binds != null && binds.size() > 0) {
for (Object b : binds) {
if (b instanceof Map) {
Map bm = (Map) b;
String uid = String.valueOf(bm.get("user_id"));
if (binds.size() == 1 || !CommonUtil.isEmpty(uisid)
&& uisid.equals(uid))
ServletActionContext.getResponse().sendRedirect(
WiscomPayModel.formupDirecturl(
openid.toString(), uid));
}
}
}
}
if (binds == null)
binds = new ArrayList();
return SUCCESS;
}
public List getBinds() {
return binds;
}
public void setBinds(List binds) {
this.binds = binds;
}
public String getUisid() {
return uisid;
}
public void setUisid(String uisid) {
this.uisid = uisid;
}
}