package edu.fudan.weixin.subscribe; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.mongodb.BasicDBList; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCursor; import com.mongodb.DBObject; import edu.fudan.eservice.common.utils.MongoUtil; import edu.fudan.weixin.model.TACOAuth2Model; import edu.fudan.weixin.model.TemplateMessage; /** * 发送每日余额提醒 * @author wking * */ public class DailyBalanceThread implements Runnable { private static Log log=LogFactory.getLog(DailyBalanceThread.class); @Override public void run() { DBObject msg=new BasicDBObject("first","截止到当前您的一卡通余额信息:").append("remark", "本提醒不作为账户凭证,最终余额以一卡通系统为准。"); DB db=MongoUtil.getInstance().getDB(); DBCursor cs=db.getCollection("Books").find(new BasicDBObject("book",true).append("item", "ecard_balance")); TACOAuth2Model m=new TACOAuth2Model(); while(cs.hasNext()) { String openid=String.valueOf(cs.next().get("openid")); DBObject user=db.getCollection("Bindings").findOne(new BasicDBObject("openid",openid)); if(user!=null &&user.get("binds")!=null&&user.get("binds") instanceof List) { BasicDBList l=m.yktxx(user); for(Object obj:l) { if(obj!=null &&obj instanceof DBObject) { DBObject dbo=(DBObject)obj; Object balance=dbo.get("card_balance"); if(balance!=null) { msg.put("name", dbo.get("username")+"("+dbo.get("uisid")+")"); msg.put("money",balance+"元"); log.info(dbo.get("uisid")+"--"+TemplateMessage.send("ecard_balance", openid, msg)); } } } } try { Thread.sleep(100L); } catch (InterruptedException e) { break; } } } }