Commit 907a6790 by 阮思源

Merge branch 'master' of http://begitlab.chubanyun.me/rays/pcloud-book into feat-1001733

parents 9559320d 7add7d77
...@@ -760,19 +760,23 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz { ...@@ -760,19 +760,23 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
* @return * @return
*/ */
private List<String> getLinkList(String title, Boolean isNew) { private List<String> getLinkList(String title, Boolean isNew) {
//标题正则表达式 List<String> list = new ArrayList<>();
Pattern pa;
if (isNew) { if (isNew) {
title = title.replaceAll("&nbsp;"," "); String regex = "(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]";
pa = Pattern.compile(UrlConstant.OWN_SHORT_URL + "[0-9A-Za-z]+\\s"); Matcher matcher = Pattern.compile(regex, Pattern.DOTALL).matcher(title);
} else { while (matcher.find()) {
pa = Pattern.compile("<link>.*?</link>"); String url = matcher.group();
if (url.startsWith(UrlConstant.OWN_SHORT_URL)) {
list.add(matcher.group());
} }
List<String> list = new ArrayList<>(); }
} else {
Pattern pa = Pattern.compile("<link>.*?</link>");
Matcher ma = pa.matcher(title); Matcher ma = pa.matcher(title);
while (ma.find()) { while (ma.find()) {
list.add(ma.group()); list.add(ma.group());
} }
}
return list; return list;
} }
...@@ -3195,9 +3199,7 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz { ...@@ -3195,9 +3199,7 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
@Override @Override
public void dealOldCPAContent() { public void dealOldCPAContent() {
List<AdvertisingSpace> spaceList = advertisingSpaceDao.getCPASpaceList(); List<AdvertisingSpace> spaceList = advertisingSpaceDao.getCPASpaceList();
if (ListUtils.isEmpty(spaceList)) { if (!ListUtils.isEmpty(spaceList)) {
return;
}
for (AdvertisingSpace space : spaceList) { for (AdvertisingSpace space : spaceList) {
Long adId = space.getId(); Long adId = space.getId();
AdvertisingCpa cpa = new AdvertisingCpa(); AdvertisingCpa cpa = new AdvertisingCpa();
...@@ -3218,5 +3220,18 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz { ...@@ -3218,5 +3220,18 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
detailFileDao.updateCPAId(adId, cpaId); detailFileDao.updateCPAId(adId, cpaId);
} }
} }
List<Long> linkCpaIds = advertisingCpaDao.getNoPreviewLinkCPAList();
if (!ListUtils.isEmpty(linkCpaIds)) {
for (Long cpaId : linkCpaIds) {
//预览链接
String previewLink = wechatGroupLinkPrefix + "/ad?cpa_id=" + cpaId;
previewLink = UrlUtils.getShortUrl4Own(wechatGroupLinkPrefix + "/link?url=" + URLEncoder.encode(previewLink));
AdvertisingCpa cpaUpdate = new AdvertisingCpa();
cpaUpdate.setId(cpaId);
cpaUpdate.setPreviewLink(previewLink);
advertisingCpaDao.update(cpaUpdate);
}
}
}
} }
...@@ -3,6 +3,8 @@ package com.pcloud.book.advertising.dao; ...@@ -3,6 +3,8 @@ package com.pcloud.book.advertising.dao;
import com.pcloud.book.advertising.entity.AdvertisingCpa; import com.pcloud.book.advertising.entity.AdvertisingCpa;
import com.pcloud.common.core.dao.BaseDao; import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
/** /**
* @描述:cpa内容 * @描述:cpa内容
* @作者:zhuyajie * @作者:zhuyajie
...@@ -10,4 +12,9 @@ import com.pcloud.common.core.dao.BaseDao; ...@@ -10,4 +12,9 @@ import com.pcloud.common.core.dao.BaseDao;
* @版本:1.0 * @版本:1.0
*/ */
public interface AdvertisingCpaDao extends BaseDao<AdvertisingCpa> { public interface AdvertisingCpaDao extends BaseDao<AdvertisingCpa> {
/**
* 要更新预览链接的cpa
* @return
*/
List<Long> getNoPreviewLinkCPAList();
} }
...@@ -6,6 +6,8 @@ import com.pcloud.common.core.dao.BaseDaoImpl; ...@@ -6,6 +6,8 @@ import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List;
/** /**
* @描述:cpa内容 * @描述:cpa内容
* @作者:zhuyajie * @作者:zhuyajie
...@@ -14,4 +16,8 @@ import org.springframework.stereotype.Component; ...@@ -14,4 +16,8 @@ import org.springframework.stereotype.Component;
*/ */
@Component("advertisingCpaDao") @Component("advertisingCpaDao")
public class AdvertisingCpaDaoImpl extends BaseDaoImpl<AdvertisingCpa> implements AdvertisingCpaDao { public class AdvertisingCpaDaoImpl extends BaseDaoImpl<AdvertisingCpa> implements AdvertisingCpaDao {
@Override
public List<Long> getNoPreviewLinkCPAList() {
return getSessionTemplate().selectList(getStatement("getNoPreviewLinkCPAList"));
}
} }
...@@ -1450,6 +1450,9 @@ public class BookBizImpl implements BookBiz { ...@@ -1450,6 +1450,9 @@ public class BookBizImpl implements BookBiz {
// 书籍总数缓存加1 // 书籍总数缓存加1
bookCache.incrObject(BookConstant.BOOK_CACHE + "PLATFORM_BOOK_COUNT"); bookCache.incrObject(BookConstant.BOOK_CACHE + "PLATFORM_BOOK_COUNT");
} else { } else {
// 主编辑才能修改书刊信息
Long mainAdviserId = bookAdviserBiz.getMainAdviserId(book.getBookId(), book.getChannelId());
if (book.getCreatedUser().equals(mainAdviserId)) {
checkIsUpdateCoverImgAndSendTopic(bookDto, book.getCoverImg()); checkIsUpdateCoverImgAndSendTopic(bookDto, book.getCoverImg());
checkIsUpdateBookNameAndSendTopic(bookDto, book.getBookName()); checkIsUpdateBookNameAndSendTopic(bookDto, book.getBookName());
// 修改图书基本信息 // 修改图书基本信息
...@@ -1459,6 +1462,7 @@ public class BookBizImpl implements BookBiz { ...@@ -1459,6 +1462,7 @@ public class BookBizImpl implements BookBiz {
// 清除redis中数据 // 清除redis中数据
bookCache.clearRedisByBook(book.getBookId(), book.getIsbn(), book.getSerialNumber()); bookCache.clearRedisByBook(book.getBookId(), book.getIsbn(), book.getSerialNumber());
} }
}
bookDto = bookDao.getByIsbnAndSnum(book.getIsbn(), book.getSerialNumber()); bookDto = bookDao.getByIsbnAndSnum(book.getIsbn(), book.getSerialNumber());
bookDto.setChannelId(book.getChannelId()); bookDto.setChannelId(book.getChannelId());
/*if (null != bookGroup) { /*if (null != bookGroup) {
......
...@@ -312,14 +312,6 @@ public class SendWeixinRequestTools { ...@@ -312,14 +312,6 @@ public class SendWeixinRequestTools {
WxGroupSDK.sendTextMessage(sendTextMessageVO); WxGroupSDK.sendTextMessage(sendTextMessageVO);
} }
public static void main(String[] args) {
// SendTextMessageVO sendTextMessageVO = new SendTextMessageVO();
// sendTextMessageVO.setContent("关键词1:a" + "\n" + "换行换行换行" + "\n");
// sendTextMessageVO.setAltId("wxid_qj200bf0key022");
// sendTextMessageVO.setWxGroupId("14108963419@chatroom");
// WxGroupSDK.sendTextMessage(sendTextMessageVO);
}
/** /**
* 发送默认欢迎语 * 发送默认欢迎语
*/ */
...@@ -355,7 +347,7 @@ public class SendWeixinRequestTools { ...@@ -355,7 +347,7 @@ public class SendWeixinRequestTools {
isOld = false; isOld = false;
sb.append("\n\n本群配有以下资源服务,戳链接立即获取:\n"); sb.append("\n\n本群配有以下资源服务,戳链接立即获取:\n");
for (KeywordDTO keyword : keywords) { for (KeywordDTO keyword : keywords) {
if (sb.length() + (keyword.getKeywords() + "\n").length() >= 830) { if (sb.length() + (keyword.getKeywords() + "\n").length() >= 730) {
break; break;
} }
sb.append("【").append(keyword.getKeywords()).append("】\n"); sb.append("【").append(keyword.getKeywords()).append("】\n");
...@@ -367,7 +359,7 @@ public class SendWeixinRequestTools { ...@@ -367,7 +359,7 @@ public class SendWeixinRequestTools {
} else { } else {
sb.append("\n\n在群内回复以下关键词,领取任务或资源:\n"); sb.append("\n\n在群内回复以下关键词,领取任务或资源:\n");
for (KeywordDTO keyword : keywords) { for (KeywordDTO keyword : keywords) {
if ((content.length() + sb.length()) >= 1000 && (sb.length() + (keyword.getKeywords() + "\n").length()) >= 922) { if ((content.length() + sb.length()) >= 1000 && (sb.length() + (keyword.getKeywords() + "\n").length()) >= 892) {
break; break;
} }
sb.append("【").append(keyword.getKeywords()).append("】"); sb.append("【").append(keyword.getKeywords()).append("】");
...@@ -379,6 +371,12 @@ public class SendWeixinRequestTools { ...@@ -379,6 +371,12 @@ public class SendWeixinRequestTools {
if (haveKeyword && !isOld) { if (haveKeyword && !isOld) {
groupKeyword.append("后续也可以回复【】里的关键词,再次领取"); groupKeyword.append("后续也可以回复【】里的关键词,再次领取");
} }
// 拼接反馈链接
AccountSettingDto accountSettingDto = dto.getAccountSettingDto();
String feedbackUrl = "*common/C"+classifyQrcodeInfo.getChannelId()+"/A0/feedback/suggest?groupQrcodeId=" + classifyQrcodeInfo.getGroupQrcodeId();
String url = splitUrl(accountSettingDto, feedbackUrl);
LOGGER.info("发送欢迎语反馈链接feedbackUrl:{}, url:{}", feedbackUrl, url);
groupKeyword.append("\n\n群资源与书上介绍不符?点这里反馈\n->").append(UrlUtils.getShortUrl4Own(url));
// 1001692 自定义欢迎语+关键词文案,如果超过300字,关键词拆分出来发 // 1001692 自定义欢迎语+关键词文案,如果超过300字,关键词拆分出来发
if ((content.length() + sb.length()) >= 1000) { if ((content.length() + sb.length()) >= 1000) {
sendTextMessage(content.toString(), robotId, weixinGroupId, ip); sendTextMessage(content.toString(), robotId, weixinGroupId, ip);
...@@ -388,6 +386,7 @@ public class SendWeixinRequestTools { ...@@ -388,6 +386,7 @@ public class SendWeixinRequestTools {
} }
} }
@ParamLog("发送欢迎语消息") @ParamLog("发送欢迎语消息")
public static void sendGuideMessage(SendGuideMessageDTO dto) { public static void sendGuideMessage(SendGuideMessageDTO dto) {
if (Objects.isNull(dto) || CollectionUtils.isEmpty(dto.getReplyMessages())) { if (Objects.isNull(dto) || CollectionUtils.isEmpty(dto.getReplyMessages())) {
...@@ -424,7 +423,7 @@ public class SendWeixinRequestTools { ...@@ -424,7 +423,7 @@ public class SendWeixinRequestTools {
isOld = false; isOld = false;
sb.append("\n\n本群配有以下资源服务,戳链接立即获取:\n"); sb.append("\n\n本群配有以下资源服务,戳链接立即获取:\n");
for (KeywordDTO keyword : keywords) { for (KeywordDTO keyword : keywords) {
if (sb.length() + (keyword.getKeywords() + "\n").length() >= 850) { if (sb.length() + (keyword.getKeywords() + "\n").length() >= 730) {
break; break;
} }
sb.append("【").append(keyword.getKeywords()).append("】\n"); sb.append("【").append(keyword.getKeywords()).append("】\n");
...@@ -436,7 +435,7 @@ public class SendWeixinRequestTools { ...@@ -436,7 +435,7 @@ public class SendWeixinRequestTools {
} else { } else {
sb.append("\n\n在群内回复以下关键词,领取任务或资源:\n"); sb.append("\n\n在群内回复以下关键词,领取任务或资源:\n");
for (KeywordDTO keyword : keywords) { for (KeywordDTO keyword : keywords) {
if ((s.length() + sb.length()) >= 1000 && (sb.length() + (keyword.getKeywords() + "\n").length()) >= 922) { if ((s.length() + sb.length()) >= 1000 && (sb.length() + (keyword.getKeywords() + "\n").length()) >= 892) {
break; break;
} }
sb.append("【").append(keyword.getKeywords()).append("】"); sb.append("【").append(keyword.getKeywords()).append("】");
...@@ -447,6 +446,12 @@ public class SendWeixinRequestTools { ...@@ -447,6 +446,12 @@ public class SendWeixinRequestTools {
if (haveKeyword && !isOld) { if (haveKeyword && !isOld) {
groupKeyword.append("后续也可以回复【】里的关键词,再次领取"); groupKeyword.append("后续也可以回复【】里的关键词,再次领取");
} }
// 拼接反馈链接
AccountSettingDto accountSettingDto = dto.getAccountSettingDto();
String feedbackUrl = "*common/C"+classifyQrcodeInfo.getChannelId()+"/A0/feedback/suggest?groupQrcodeId=" + classifyQrcodeInfo.getGroupQrcodeId();
String url = splitUrl(accountSettingDto, feedbackUrl);
LOGGER.info("发送欢迎语反馈链接feedbackUrl:{}, url:{}", feedbackUrl, url);
groupKeyword.append("\n\n群资源与书上介绍不符?点这里反馈\n->").append(UrlUtils.getShortUrl4Own(url));
// 1001692 自定义欢迎语+关键词文案,如果超过300字,关键词拆分出来发 // 1001692 自定义欢迎语+关键词文案,如果超过300字,关键词拆分出来发
if (s.length() + groupKeyword.length() >= 1000) { if (s.length() + groupKeyword.length() >= 1000) {
sendMessageDTO.setContent(s); sendMessageDTO.setContent(s);
......
...@@ -115,4 +115,14 @@ ...@@ -115,4 +115,14 @@
update_time DESC update_time DESC
</select> </select>
<select id="getNoPreviewLinkCPAList" resultType="long">
SELECT
id
FROM
advertising_cpa
WHERE
preview_link IS NULL
AND detail_mode IS NOT NULL
</select>
</mapper> </mapper>
\ No newline at end of file
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