/** * */ package org.hamster.weixinmp.service; import java.util.Date; import java.util.List; import lombok.Setter; import org.apache.log4j.Logger; import org.dom4j.DocumentException; import org.dom4j.Element; import org.hamster.weixinmp.config.WxConfig; import org.hamster.weixinmp.constant.WxMsgRespType; import org.hamster.weixinmp.controller.util.WxXmlUtil; import org.hamster.weixinmp.dao.entity.base.WxBaseMsgEntity; import org.hamster.weixinmp.dao.entity.base.WxBaseRespEntity; import org.hamster.weixinmp.dao.entity.item.WxItemMusicEntity; import org.hamster.weixinmp.dao.entity.item.WxItemPicDescEntity; import org.hamster.weixinmp.dao.entity.msg.WxMsgEventEntity; import org.hamster.weixinmp.dao.entity.msg.WxMsgImageEntity; import org.hamster.weixinmp.dao.entity.msg.WxMsgLinkEntity; import org.hamster.weixinmp.dao.entity.msg.WxMsgLocEntity; import org.hamster.weixinmp.dao.entity.msg.WxMsgTextEntity; import org.hamster.weixinmp.dao.entity.resp.WxRespMusicEntity; import org.hamster.weixinmp.dao.entity.resp.WxRespPicDescEntity; import org.hamster.weixinmp.dao.entity.resp.WxRespTextEntity; import org.hamster.weixinmp.dao.repository.auth.WxAuthDao; import org.hamster.weixinmp.dao.repository.auth.WxAuthReqDao; import org.hamster.weixinmp.dao.repository.item.WxItemImageDao; import org.hamster.weixinmp.dao.repository.item.WxItemMusicDao; import org.hamster.weixinmp.dao.repository.item.WxItemPicDescDao; import org.hamster.weixinmp.dao.repository.item.WxItemThumbDao; import org.hamster.weixinmp.dao.repository.item.WxItemVideoDao; import org.hamster.weixinmp.dao.repository.item.WxItemVoiceDao; import org.hamster.weixinmp.dao.repository.menu.WxMenuBtnDao; import org.hamster.weixinmp.dao.repository.msg.WxMsgEventDao; import org.hamster.weixinmp.dao.repository.msg.WxMsgImageDao; import org.hamster.weixinmp.dao.repository.msg.WxMsgLinkDao; import org.hamster.weixinmp.dao.repository.msg.WxMsgLocDao; import org.hamster.weixinmp.dao.repository.msg.WxMsgTextDao; import org.hamster.weixinmp.dao.repository.msg.WxMsgVideoDao; import org.hamster.weixinmp.dao.repository.msg.WxMsgVoiceDao; import org.hamster.weixinmp.dao.repository.resp.WxRespImageDao; import org.hamster.weixinmp.dao.repository.resp.WxRespMusicDao; import org.hamster.weixinmp.dao.repository.resp.WxRespPicDescDao; import org.hamster.weixinmp.dao.repository.resp.WxRespTextDao; import org.hamster.weixinmp.dao.repository.resp.WxRespVideoDao; import org.hamster.weixinmp.dao.repository.resp.WxRespVoiceDao; import org.hamster.weixinmp.dao.repository.user.WxGroupDao; import org.hamster.weixinmp.dao.repository.user.WxUserDao; import org.hamster.weixinmp.util.WxUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; /** * @author grossopaforever@gmail.com * @version Jul 28, 2013 * */ @Service @Transactional(readOnly = true) public class WxStorageService { public static final Logger log = Logger.getLogger(WxStorageService.class); @Autowired(required = false) protected WxAuthDao authDao; @Autowired(required = false) protected WxAuthReqDao authReqDao; @Autowired(required = false) protected WxMsgTextDao msgTextDao; @Autowired(required = false) protected WxMsgImageDao msgImgDao; @Autowired(required = false) protected WxMsgLinkDao msgLinkDao; @Autowired(required = false) protected WxMsgLocDao msgLocDao; @Autowired(required = false) protected WxMsgEventDao msgEventDao; @Autowired(required = false) protected WxMsgVideoDao msgVideoDao; @Autowired(required = false) protected WxMsgVoiceDao msgVoiceDao; @Autowired(required = false) protected WxRespTextDao respTextDao; @Autowired(required = false) protected WxRespPicDescDao respPicDescDao; @Autowired(required = false) protected WxRespMusicDao respMusicDao; @Autowired(required = false) protected WxRespImageDao respImageDao; @Autowired(required = false) protected WxRespVideoDao respVideoDao; @Autowired(required = false) protected WxRespVoiceDao respVoiceDao; @Autowired(required = false) protected WxItemImageDao itemImageDao; @Autowired(required = false) protected WxItemMusicDao itemMusicDao; @Autowired(required = false) protected WxItemPicDescDao wxItemPicDescDao; @Autowired(required = false) protected WxItemThumbDao itemThumbDao; @Autowired(required = false) protected WxItemVideoDao itemVideoDao; @Autowired(required = false) protected WxItemVoiceDao itemVoiceDao; @Autowired(required = false) protected WxMenuBtnDao wxMenuBtnDao; @Autowired(required = false) protected WxGroupDao groupDao; @Autowired(required = false) protected WxUserDao userDao; @Setter protected String token; @Autowired(required = false) protected WxConfig wxConfig; public WxMsgTextEntity saveMsgText(Element ele) throws DocumentException { WxMsgTextEntity msgText = WxXmlUtil.getMsgText(ele); if (msgTextDao != null) { msgTextDao.save(msgText); } else { } return msgText; } public WxMsgImageEntity saveMsgImg(Element ele) throws DocumentException { WxMsgImageEntity msgImg = WxXmlUtil.getMsgImage(ele); if (msgImgDao != null) { msgImgDao.save(msgImg); } else { } return msgImg; } public WxMsgLinkEntity saveMsgLink(Element ele) throws DocumentException { WxMsgLinkEntity msgLink = WxXmlUtil.getMsgLink(ele); if (msgLinkDao != null) { msgLinkDao.save(msgLink); } else { } return msgLink; } public WxMsgLocEntity saveMsgLoc(Element ele) throws DocumentException { WxMsgLocEntity msgLoc = WxXmlUtil.getMsgLoc(ele); if (msgLocDao != null) { msgLocDao.save(msgLoc); } else { } return msgLoc; } public WxMsgEventEntity saveMsgEvent(Element ele) throws DocumentException { WxMsgEventEntity msgEvent = WxXmlUtil.getMsgEvent(ele); if (msgEventDao != null) { msgEventDao.save(msgEvent); } else { } return msgEvent; } public WxRespTextEntity createRespText(String content, String fromUserName, String toUserName, Integer funcFlag) { WxRespTextEntity respText = new WxRespTextEntity(); respText.setContent(content); respText.setCreatedDate(new Date()); respText.setCreateTime(WxUtil.currentTimeInSec()); respText.setFromUserName(fromUserName); respText.setToUserName(toUserName); respText.setFuncFlag(funcFlag); respText.setMsgType(WxMsgRespType.TEXT); if (respTextDao != null) { respTextDao.save(respText); } else { } return respText; } public WxRespPicDescEntity createRespPicDesc( List<WxItemPicDescEntity> articles, String fromUserName, String toUserName, Integer funcFlag) { WxRespPicDescEntity respPicDesc = new WxRespPicDescEntity(); respPicDesc.setCreatedDate(new Date()); respPicDesc.setCreateTime(WxUtil.currentTimeInSec()); respPicDesc.setFromUserName(fromUserName); respPicDesc.setToUserName(toUserName); respPicDesc.setFuncFlag(funcFlag); respPicDesc.setMsgType(WxMsgRespType.NEWS); respPicDesc.setArticles(articles); if (respPicDescDao != null) { respPicDescDao.save(respPicDesc); } else { } return respPicDesc; } public WxRespPicDescEntity createRespPicDesc2(List<Long> articleIds, String fromUserName, String toUserName, Integer funcFlag) { WxRespPicDescEntity respPicDesc = new WxRespPicDescEntity(); respPicDesc.setCreatedDate(new Date()); respPicDesc.setCreateTime(WxUtil.currentTimeInSec()); respPicDesc.setFromUserName(fromUserName); respPicDesc.setToUserName(toUserName); respPicDesc.setFuncFlag(funcFlag); respPicDesc.setMsgType(WxMsgRespType.NEWS); respPicDesc.setArticles(wxItemPicDescDao.findByIdIn(articleIds)); if (respPicDescDao != null) { respPicDescDao.save(respPicDesc); } else { } return respPicDesc; } public WxRespMusicEntity createRespMusic(String fromUserName, String toUserName, Integer funcFlag, WxItemMusicEntity itemMusic) { WxRespMusicEntity respMusic = new WxRespMusicEntity(); respMusic.setCreatedDate(new Date()); respMusic.setCreateTime(WxUtil.currentTimeInSec()); respMusic.setFromUserName(fromUserName); respMusic.setToUserName(toUserName); respMusic.setFuncFlag(funcFlag); respMusic.setMsgType(WxMsgRespType.MUSIC); // respMusic.setMusic(itemMusic); if (respMusicDao != null) { respMusicDao.save(respMusic); } else { } return respMusic; } // /////////////// // common parts // // /////////////// public WxBaseRespEntity handleMessage(WxBaseMsgEntity msg) { WxRespTextEntity respText = createRespText( "Only test message, please ignore this.", msg.getToUserName(), msg.getFromUserName(), 1); return respText; } }