1. 程式人生 > >dubbo+zookeeper實現soa架構的微服務應用

dubbo+zookeeper實現soa架構的微服務應用

@Override
public String processRequest(StringBuffer xml) {
    String respMessage = "";
    BaseMessage baseMessage = MessageUtil.xmlToObj(BaseMessage.class, xml);
    // 傳送方帳號(open_id)
        String fromUserName = baseMessage.getFromUserName();
        // 公眾帳號
        String toUserName = baseMessage.getToUserName();
        // 訊息型別
        String  msgType = baseMessage.getMsgType().toString();
        
    //自動回覆訊息
        if(msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_EVENT)){  //收到事件
           EventMessage eventMessage =  MessageUtil.xmlToObj(EventMessage.class, xml);
      
       MenuEvent menuEvent = MessageUtil.xmlToObj(MenuEvent.class, xml);
       System.out.println("微信傳來====="+JSON.toJSONString(menuEvent));
           if(eventMessage.getEvent().toString().equals(MessageUtil.EVENT_TYPE_SUBSCRIBE)){ //關注事件
            //使用者關注微訊號時獲取使用者資訊並存取到資料庫
           //新增之前查詢資料庫避免插入重複資料
           Map<String,String> map = new HashMap<String, String>();
           map.put("openid", fromUserName);
           List<Wxuserinfo> list = wxuserinfoMapper.searchWxuserinfoByParams(map);
           
           if(list.size()==0){ //新增新使用者
            Wxuserinfo userinfo = getUserinfoByOpenid(fromUserName);  
            userinfo.setRole("0");
            wxuserinfoMapper.insertWxuserinfo(userinfo);
           }else{ //老客戶
          Wxuserinfo wxuserinfo = list.get(0);
          wxuserinfo.setSubscribe("1");
          wxuserinfoMapper.updateWxuserinfo(wxuserinfo);
           }
           ReplyText replyText = new ReplyText();
           replyText.setFromUserName(toUserName);
           replyText.setToUserName(fromUserName);
           replyText.setContent("這裡是醬菜榮耀卡券服務平臺");
           replyText.setCreateTime(System.currentTimeMillis());
               respMessage = MessageUtil.objToXml(ReplyText.class, replyText);
           }else if(eventMessage.getEvent().toString().equals(MessageUtil.EVENT_TYPE_UNSUBSCRIBE)){ //取消關注事件
           //使用者取消時修改使用者資料庫
           Map<String, String> map = new HashMap<String, String>();
           map.put("openid", fromUserName);
           List<Wxuserinfo> list = wxuserinfoMapper.searchWxuserinfoByParams(map);
           Wxuserinfo wxuserinfo = list.get(0);
           wxuserinfo.setRole("0");
           wxuserinfo.setSubscribe("0");
           wxuserinfoMapper.updateWxuserinfo(wxuserinfo);
           System.out.println("收到取消關注事件");
           System.out.println(xml.toString());
      
           }else if(eventMessage.getEvent().toString().equals(MessageUtil.EVENT_TYPE_SCAN)){  //已關注
           
            System.out.println("收到掃描事件");
            System.out.println(xml.toString());
           }else if(menuEvent.getEventKey().equals("getcard")){ //領取卡券
           //回覆卡券圖文資訊
           ReplyImgAndText replyImgAndText = new ReplyImgAndText();
           replyImgAndText.setToUserName(fromUserName);
           replyImgAndText.setFromUserName(toUserName);
           replyImgAndText.setCreateTime(System.currentTimeMillis());
           List<_Item> articles = new ArrayList<_Item>();
           //查詢卡券資訊
           _Item item = new _Item();
           item.setUrl("www.baidu.com");
           item.setTitle("領券啦");
           item.setPicurl("http://g.hiphotos.baidu.com/image/pic/item/b3119313b07eca800b6ae3f49b2397dda14483b2.jpg");
           item.setDescription("雙十二代金券100元");
           item.setDescription("數量有限,先到先得");
           
           _Item item2 = new _Item();
           item2.setUrl("www.soso.com");
           item2.setTitle("領券啦");
           item2.setPicurl("http://g.hiphotos.baidu.com/image/pic/item/b3119313b07eca800b6ae3f49b2397dda14483b2.jpg");
           item2.setDescription("雙十二代金券100元");
           item2.setDescription("數量有限,先到先得");
           articles.add(item);
           articles.add(item2);
           replyImgAndText.setArticleCount(articles.size());
           replyImgAndText.setArticles(articles);
           respMessage = MessageUtil.objToXml(ReplyImgAndText.class, replyImgAndText);
           System.out.println("領取卡券");
           }else if(menuEvent.getEventKey().equals("usercardlist")){ //獲取卡包
           System.out.println("獲取卡包");
           }else if(menuEvent.getEventKey().equals("checkcard")){ //核銷卡券
           System.out.println("核銷卡券");
           }else{
           System.out.println("位置事件");
           }
           
  
        }
return respMessage;
}