Commit 17fec208 by 朱亚洁

feat:[1004835]H5本书服务直接弹出关注公众号

parent 2e83a418
......@@ -15,6 +15,7 @@ public interface AnswerSubscribeBiz {
*/
AnswerSubscribeDTO answerSubscribe(AnswerSubscribeDTO answerSubscribeDTO);
/**
* 查询是否订阅
* @author:zhuyajie
......@@ -52,4 +53,19 @@ public interface AnswerSubscribeBiz {
* * @param null
*/
AnswerSubscribeUserDTO getUserSubscribeInfo(Long wechatUserId);
/**
* 查公众号是否关注
* @author:zhuyajie
* @date:2021/6/3 14:36
* * @param null
*/
AnswerSubscribeDTO getSubscribeQrcodeState(Long wechatUserId, Long accountSettingId);
/**
* 添加推送书刊埋点
* @author:zhuyajie
* @date:2021/6/3 14:43
* * @param null
*/
void addSubscribePushRecord(AnswerSubscribeDTO answerSubscribeDTO);
}
......@@ -90,37 +90,10 @@ public class AnswerSubscribeBizImpl implements AnswerSubscribeBiz {
}
answerSubscribe.setResourceCount(resourcePageBiz.getResourceCounts(answerSubscribeDTO.getBookId(),answerSubscribeDTO.getAdviserId(),answerSubscribeDTO.getChannelId()));
answerSubscribeDao.insert(answerSubscribe);
return getSubscribeQrcode(answerSubscribeDTO);
}
/**
* 查询公众号关注情况
* @author:zhuyajie
* @date:2021/5/14 16:34
* * @param null
*/
private AnswerSubscribeDTO getSubscribeQrcode(AnswerSubscribeDTO answerSubscribeDTO) {
AnswerSubscribeDTO dto = new AnswerSubscribeDTO();
Long wechatUserId = answerSubscribeDTO.getWechatUserId();
Long accountSettingId = answerSubscribeDTO.getAccountSettingId();
//是否关注
String openId = readerConsr.getOpenIdByWechatUserIdAndOfficialAccountsId(wechatUserId, accountSettingId);
WechatUserOfficialAccounts accounts = readerConsr.getOfficialAccounts(accountSettingId, openId, wechatUserId);
Boolean isSubscribe = false;
if (null != accounts) {
isSubscribe = accounts.getIsSubscribe() == 1 ? true : false;
}
AnswerSubscribePopup popup = new AnswerSubscribePopup();
popup.setWechatUserId(wechatUserId);
popup.setAccountSettingId(accountSettingId);
popup.setBookId(answerSubscribeDTO.getBookId());
popup.setChannelId(answerSubscribeDTO.getChannelId());
popup.setAdviserId(answerSubscribeDTO.getAdviserId());
popup.setSubscribeType(answerSubscribeDTO.getSubscribeType());
answerSubscribePopupDao.insert(popup);
GroupQrcodeVO groupQrcodeVO = qrcodeSceneConsr.getSubscribeQrcode(accountSettingId);
dto.setQrcodeUrl(groupQrcodeVO.getQrcodeUrl());
dto.setIsSubscribe(isSubscribe);
//推送书刊埋点
this.addSubscribePushRecord(answerSubscribeDTO);
//关注公众号状态和公众号二维码
AnswerSubscribeDTO dto = this.getSubscribeQrcodeState(answerSubscribeDTO.getWechatUserId(), answerSubscribeDTO.getAccountSettingId());
return dto;
}
......@@ -183,7 +156,8 @@ public class AnswerSubscribeBizImpl implements AnswerSubscribeBiz {
this.sendAppletTemplateMsg(wechatUserId, accountSettingId,bookName);
} else {
//公众号消息
this.sendTemplate4Customer(channelId,wechatUserId,bookName);
String url = getResourcePageUrl(bookId, adviserId, channelId);
this.sendTemplate4Customer(channelId,wechatUserId,bookName,url);
}
answerSubscribeUser.setSendState(AnswerSendStateEnum.has_send.code);
}
......@@ -282,32 +256,66 @@ public class AnswerSubscribeBizImpl implements AnswerSubscribeBiz {
answerSubscribeUserDTO.setBookId(popup.getBookId());
answerSubscribeUserDTO.setChannelId(popup.getChannelId());
answerSubscribeUserDTO.setAdviserId(popup.getAdviserId());
//已关注公众号
if (popup.getSubscribeType() == 1) {
//书刊订阅
ResourcePageVO resourcePageVO = resourcePageBiz.getResourcePageByBookId(popup.getBookId(), popup.getChannelId(), popup.getAdviserId(), wechatUserId);
answerSubscribeUserDTO.setBookName(null == resourcePageVO ? null : resourcePageVO.getBookName());
//小睿书流程有推送链接
if (null != resourcePageVO && resourcePageVO.getOpenRays() == 1) {
String host = BookProps.getWechatDomain();
if ("uat".equals(BookProps.getSystemEnv())) {
host = host.replace("wechat666", "weixin35515");
} else {
host = host.replace("wechat666", "weixin23");
}
String url = "";
if (null != resourcePageVO.getSceneId()) {
url = host + "/rayh5/book?sceneId=" + resourcePageVO.getSceneId();
} else if (null != resourcePageVO.getBookGroupId()) {
url = host + "/rayh5/book?bookGroupId=" + resourcePageVO.getId();
}
answerSubscribeUserDTO.setUrl(url);
//推送链接
answerSubscribeUserDTO.setUrl(getResourcePageUrl(popup.getBookId(), popup.getAdviserId(), popup.getChannelId()));
}
BookDto bookDto = bookBiz.getBaseById(popup.getBookId());
answerSubscribeUserDTO.setBookName(null == bookDto ? null : bookDto.getBookName());
return answerSubscribeUserDTO;
}
/**
* 书刊开启小睿的资源页链接
* @author:zhuyajie
* @date:2021/6/3 15:06
* * @param null
*/
private String getResourcePageUrl(Long bookId, Long adviserId, Long channelId) {
String url = null;
ResourcePageVO resourcePageVO = resourcePageBiz.getResourcePageByBookId(bookId, channelId, adviserId, null);
if (null != resourcePageVO && resourcePageVO.getOpenRays() == 1) {
String host = BookProps.getWechatDomain();
if ("uat".equals(BookProps.getSystemEnv())) {
host = host.replace("wechat666", "weixin35515");
} else {
host = host.replace("wechat666", "weixin23");
}
if (null != resourcePageVO.getSceneId()) {
url = host + "/rayh5/book?sceneId=" + resourcePageVO.getSceneId();
} else if (null != resourcePageVO.getBookGroupId()) {
url = host + "/rayh5/book?bookGroupId=" + resourcePageVO.getId();
}
}
if (StringUtil.isEmpty(answerSubscribeUserDTO.getBookName())) {
BookDto bookDto = bookBiz.getBaseById(popup.getBookId());
answerSubscribeUserDTO.setBookName(null == bookDto ? null : bookDto.getBookName());
return url;
}
@Override
public AnswerSubscribeDTO getSubscribeQrcodeState(Long wechatUserId, Long accountSettingId) {
String openId = readerConsr.getOpenIdByWechatUserIdAndOfficialAccountsId(wechatUserId, accountSettingId);
WechatUserOfficialAccounts accounts = readerConsr.getOfficialAccounts(accountSettingId, openId, wechatUserId);
Boolean isSubscribe = false;
if (null != accounts) {
isSubscribe = accounts.getIsSubscribe() == 1 ? true : false;
}
return answerSubscribeUserDTO;
GroupQrcodeVO groupQrcodeVO = qrcodeSceneConsr.getSubscribeQrcode(accountSettingId);
AnswerSubscribeDTO dto = new AnswerSubscribeDTO();
dto.setQrcodeUrl(groupQrcodeVO.getQrcodeUrl());
dto.setIsSubscribe(isSubscribe);
return dto;
}
@Override
public void addSubscribePushRecord(AnswerSubscribeDTO answerSubscribeDTO) {
AnswerSubscribePopup popup = new AnswerSubscribePopup();
popup.setWechatUserId(answerSubscribeDTO.getWechatUserId());
popup.setAccountSettingId(answerSubscribeDTO.getAccountSettingId());
popup.setBookId(answerSubscribeDTO.getBookId());
popup.setChannelId(answerSubscribeDTO.getChannelId());
popup.setAdviserId(answerSubscribeDTO.getAdviserId());
popup.setSubscribeType(answerSubscribeDTO.getSubscribeType());
answerSubscribePopupDao.insert(popup);
}
private void sendAppletTemplateMsg(Long wechatUserId, Long accountSettingId, String bookName) {
......@@ -340,12 +348,12 @@ public class AnswerSubscribeBizImpl implements AnswerSubscribeBiz {
templateConsr.sendManage(SceneCode.PROJECT_TASK_SCENE.value, agentId, adviserId, SystemCode.adviser.code, null, temParam, SendType.SEND_BY_PARTY_ID.value, false);
}
private void sendTemplate4Customer(Long channelId, Long wechatUserId, String bookName) {
private void sendTemplate4Customer(Long channelId, Long wechatUserId, String bookName, String url) {
Map<String, String> paramMap = new HashMap<>();
paramMap.put("first", "本书有新的资源服务上架,看看是不是你想要的?");
paramMap.put("keyword1", StringUtil.addBracket(bookName));
paramMap.put("keyword2", "书刊配套资源服务");
paramMap.put("remark", "再次扫描书上二维码,即可查看更新内容");
templateConsr.sendOperate(SceneCode.PROJECT_TASK_SCENE.value, channelId, wechatUserId, null, paramMap, SendType.SEND_BY_WECHAT_USER_ID.value, false);
templateConsr.sendOperate(SceneCode.PROJECT_TASK_SCENE.value, channelId, wechatUserId, url, paramMap, SendType.SEND_BY_WECHAT_USER_ID.value, false);
}
}
......@@ -1300,6 +1300,29 @@ public class AppletHomeFacade {
Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
return new ResponseDto<>(appletNewsBiz.getStayOnlineAppClickCount());
}
@ApiOperation("查公众号是否关注")
@GetMapping("getSubscribeQrcodeState")
public ResponseDto<?> getSubscribeQrcodeState(@CookieValue("userInfo") String userInfo) {
Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
Long accountSettingId = Cookie.getId(userInfo,Cookie._OFFICIAL_ACCOUNTS_ID);
return new ResponseDto<>(answerSubscribeBiz.getSubscribeQrcodeState(wechatUserId, accountSettingId));
}
@ApiOperation("添加推送书刊埋点")
@PostMapping("addSubscribePushRecord")
public ResponseDto<?> addSubscribePushRecord(@CookieValue("userInfo") String userInfo,
@RequestBody AnswerSubscribeDTO answerSubscribeDTO) {
Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
Long accountSettingId = Cookie.getId(userInfo,Cookie._OFFICIAL_ACCOUNTS_ID);
if (null == answerSubscribeDTO){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少参数");
}
answerSubscribeDTO.setWechatUserId(wechatUserId);
answerSubscribeDTO.setAccountSettingId(accountSettingId);
answerSubscribeBiz.addSubscribePushRecord(answerSubscribeDTO);
return new ResponseDto<>();
}
}
......
......@@ -41,8 +41,8 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.ApiParam;
......@@ -254,12 +254,12 @@ public class AppletServiceImpl implements AppletService {
}
@Override
@RequestMapping("getLastReadBookInfo")
@RequestMapping(value = "getLastReadBookInfo", method = RequestMethod.POST)
public ResponseEntity<ResponseDto<BaseTempletClassifyDTO>> getLastReadBookInfo(@RequestBody List<Long> wechatUserIds) {
return ResponseHandleUtil.toResponse(appletUserBookcaseBiz.getLastReadBookInfo(wechatUserIds));
}
@RequestMapping("getSameClassifyUserIds")
@RequestMapping(value = "getSameClassifyUserIds", method = RequestMethod.POST)
@Override
public ResponseEntity<ResponseDto<List<Long>>> getSameClassifyUserIds(@RequestBody List<Long> wechatUserIds){
return ResponseHandleUtil.toResponse(appletUserBookcaseBiz.getSameClassifyUserIds(wechatUserIds));
......
......@@ -920,13 +920,15 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
if (!MapUtils.isEmpty(agentMap)) {
resourcePageVO.setAgentName(agentMap.get(adviserId).getAgentName());
}
Integer collectState = 0;
if (null != resourcePageVO && null != resourcePageVO.getId()) {
if (null != wechatUserId) {
//查收藏状态
ResourcePageCollect collect = resourcePageCollectDao.getCollectRecordByUser(wechatUserId, resourcePageVO.getId());
collectState = null == collect ? 0 : 1;
Integer collectState = 0;
if (null != resourcePageVO && null != resourcePageVO.getId()) {
ResourcePageCollect collect = resourcePageCollectDao.getCollectRecordByUser(wechatUserId, resourcePageVO.getId());
collectState = null == collect ? 0 : 1;
}
resourcePageVO.setCollectState(collectState);
}
resourcePageVO.setCollectState(collectState);
return resourcePageVO;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment