Commit e4d6ba56 by 李传峰

Merge remote-tracking branch 'remotes/origin/master' into feature/2.x

parents f057df76 98cb038e
...@@ -449,4 +449,9 @@ public class BookConstant { ...@@ -449,4 +449,9 @@ public class BookConstant {
public static String IGNOR_BOOK_KEY = CacheConstant.BOOK + "ignorBookKey"; public static String IGNOR_BOOK_KEY = CacheConstant.BOOK + "ignorBookKey";
/**
* qq公众号
*/
public static final Long QQ_ACCOUNT_SETTING_ID = 999L;
} }
package com.pcloud.book.group.dto;
import com.pcloud.common.dto.BaseDto;
import lombok.Data;
/**
* @ClassName com.pcloud.book.group.dto.ResourcePageDTO
* @Author zhuyajie
* @Description 资源页信息
* @Date 2021/8/30 11:04
* @Version 1.0
**/
@Data
public class ResourcePageDTO extends BaseDto {
/**
* rays码id
*/
private Long bookGroupId;
/**
* 风格类型(1默认2艺术3插画)
*/
private Integer style;
/**
* 是否显示图书信息
*/
private Integer showBook;
/**
* 是否开启小睿流程
*/
private Integer openRays;
/**
* 是否开启世间食记
*/
private Integer openFood;
/**
* 创建人
*/
private Long createUser;
/**
* 预览二维码
*/
private String qrcodeUrl;
/**
* 二维码id
*/
private Long sceneId;
/**
* 公众号二维码id
*/
private Long officialSceneId;
/**
* 自定义配置的图书封面
*/
private String bookCover;
/**
* 书刊id
*/
private Long bookId;
/**
* 渠道id
*/
private Long channelId;
/**
* 背景图
*/
private String backgroundImg;
/**
* 二维码图片解析后的地址
*/
private String url;
}
...@@ -19,6 +19,7 @@ import com.pcloud.book.group.dto.MapBookGroupServeCountDTO; ...@@ -19,6 +19,7 @@ import com.pcloud.book.group.dto.MapBookGroupServeCountDTO;
import com.pcloud.book.group.dto.PersonalQrcodeDTO; import com.pcloud.book.group.dto.PersonalQrcodeDTO;
import com.pcloud.book.group.dto.QueryByBookAdviserDTO; import com.pcloud.book.group.dto.QueryByBookAdviserDTO;
import com.pcloud.book.group.dto.ResourceBrowseParamDto; import com.pcloud.book.group.dto.ResourceBrowseParamDto;
import com.pcloud.book.group.dto.ResourcePageDTO;
import com.pcloud.book.group.dto.SelfRobotBookGroupDTO; import com.pcloud.book.group.dto.SelfRobotBookGroupDTO;
import com.pcloud.book.group.dto.SelfRobotUserDTO; import com.pcloud.book.group.dto.SelfRobotUserDTO;
import com.pcloud.book.group.dto.SelfRobtParamDTO; import com.pcloud.book.group.dto.SelfRobtParamDTO;
...@@ -282,4 +283,8 @@ public interface BookGroupService { ...@@ -282,4 +283,8 @@ public interface BookGroupService {
@GetMapping("isOpenRaysScene") @GetMapping("isOpenRaysScene")
ResponseEntity<ResponseDto<Boolean>> isOpenRaysScene(@RequestParam(value = "sceneId", required = false) Long sceneId, ResponseEntity<ResponseDto<Boolean>> isOpenRaysScene(@RequestParam(value = "sceneId", required = false) Long sceneId,
@RequestParam(value = "bookGroupId", required = false) Long bookGroupId); @RequestParam(value = "bookGroupId", required = false) Long bookGroupId);
@ApiOperation("查资源页信息")
@GetMapping("getResourcePageById")
ResponseEntity<ResponseDto<ResourcePageDTO>> getResourcePageById(@RequestParam("resourcePageId") Long resourcePageId);
} }
...@@ -43,6 +43,8 @@ import java.util.Map; ...@@ -43,6 +43,8 @@ import java.util.Map;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import static com.pcloud.book.book.constant.BookConstant.QQ_ACCOUNT_SETTING_ID;
/** /**
* @ClassName com.pcloud.book.applet.biz.impl.AnswerSubscribeBizImpl * @ClassName com.pcloud.book.applet.biz.impl.AnswerSubscribeBizImpl
* @Author zhuyajie * @Author zhuyajie
...@@ -294,6 +296,10 @@ public class AnswerSubscribeBizImpl implements AnswerSubscribeBiz { ...@@ -294,6 +296,10 @@ public class AnswerSubscribeBizImpl implements AnswerSubscribeBiz {
@Override @Override
public AnswerSubscribeDTO getSubscribeQrcodeState(Long wechatUserId, Long accountSettingId) { public AnswerSubscribeDTO getSubscribeQrcodeState(Long wechatUserId, Long accountSettingId) {
AnswerSubscribeDTO dto = new AnswerSubscribeDTO();
if (QQ_ACCOUNT_SETTING_ID.equals(accountSettingId)) {
return dto;
}
String openId = readerConsr.getOpenIdByWechatUserIdAndOfficialAccountsId(wechatUserId, accountSettingId); String openId = readerConsr.getOpenIdByWechatUserIdAndOfficialAccountsId(wechatUserId, accountSettingId);
WechatUserOfficialAccounts accounts = readerConsr.getOfficialAccounts(accountSettingId, openId, wechatUserId); WechatUserOfficialAccounts accounts = readerConsr.getOfficialAccounts(accountSettingId, openId, wechatUserId);
Boolean isSubscribe = false; Boolean isSubscribe = false;
...@@ -301,7 +307,6 @@ public class AnswerSubscribeBizImpl implements AnswerSubscribeBiz { ...@@ -301,7 +307,6 @@ public class AnswerSubscribeBizImpl implements AnswerSubscribeBiz {
isSubscribe = accounts.getIsSubscribe() == 1 ? true : false; isSubscribe = accounts.getIsSubscribe() == 1 ? true : false;
} }
GroupQrcodeVO groupQrcodeVO = qrcodeSceneConsr.getSubscribeQrcode(accountSettingId); GroupQrcodeVO groupQrcodeVO = qrcodeSceneConsr.getSubscribeQrcode(accountSettingId);
AnswerSubscribeDTO dto = new AnswerSubscribeDTO();
dto.setQrcodeUrl(groupQrcodeVO.getQrcodeUrl()); dto.setQrcodeUrl(groupQrcodeVO.getQrcodeUrl());
dto.setIsSubscribe(isSubscribe); dto.setIsSubscribe(isSubscribe);
return dto; return dto;
......
...@@ -91,7 +91,8 @@ public class AppletThirdResourcesStaticBizImpl implements AppletThirdResourcesSt ...@@ -91,7 +91,8 @@ public class AppletThirdResourcesStaticBizImpl implements AppletThirdResourcesSt
@Override @Override
@ParamLog("获取跟谁学统计数据") @ParamLog("获取跟谁学统计数据")
public void getAppletThirdResourceStatic(Integer isAll) { public void getAppletThirdResourceStatic(Integer isAll) {
PageBeanNew pageBeanNew = null; //20210831 接口调用不通 ,暂停调用
/*PageBeanNew pageBeanNew = null;
//PageBeanNew pageBeanNew = appletThirdResourcesStaticDao.listPageNew(new PageParam(0, 10), null, "getList"); //PageBeanNew pageBeanNew = appletThirdResourcesStaticDao.listPageNew(new PageParam(0, 10), null, "getList");
if (null != pageBeanNew && !ListUtils.isEmpty(pageBeanNew.getRecordList()) && YesOrNoEnums.YES.getValue().equals(isAll)) { if (null != pageBeanNew && !ListUtils.isEmpty(pageBeanNew.getRecordList()) && YesOrNoEnums.YES.getValue().equals(isAll)) {
throw new BookBizException(BookBizException.ERROR, "当统计数据表不为空时不能导入全部数据只能导入昨日数据"); throw new BookBizException(BookBizException.ERROR, "当统计数据表不为空时不能导入全部数据只能导入昨日数据");
...@@ -134,7 +135,7 @@ public class AppletThirdResourcesStaticBizImpl implements AppletThirdResourcesSt ...@@ -134,7 +135,7 @@ public class AppletThirdResourcesStaticBizImpl implements AppletThirdResourcesSt
} catch (ParseException e) { } catch (ParseException e) {
LOGGER.error("获取跟谁学统计数据失败", e); LOGGER.error("获取跟谁学统计数据失败", e);
} }
} }*/
} }
......
...@@ -1608,7 +1608,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1608,7 +1608,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
Map<String, BookAdviserDto> bookAdviserDtoMap = new HashMap<>(); Map<String, BookAdviserDto> bookAdviserDtoMap = new HashMap<>();
try { try {
bookAdviserDtoMap = bookAdviserSubmit.get(ThreadPoolUtils.REMOTE_TIME_OUT, TimeUnit.SECONDS); bookAdviserDtoMap = bookAdviserSubmit.get(ThreadPoolUtils.REMOTE_TIME_OUT_LONG, TimeUnit.SECONDS);
} catch (InterruptedException | ExecutionException | TimeoutException e) { } catch (InterruptedException | ExecutionException | TimeoutException e) {
LOGGER.error("获取现代纸书是否小睿流程错误: {}==", e); LOGGER.error("获取现代纸书是否小睿流程错误: {}==", e);
} }
...@@ -2736,6 +2736,9 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -2736,6 +2736,9 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
String key = CacheConstant.BOOK + "BOOKIDS4AGENT:" + agentId+"_"+month; String key = CacheConstant.BOOK + "BOOKIDS4AGENT:" + agentId+"_"+month;
if (StringUtil.isEmpty(JedisClusterUtils.get(key))) { if (StringUtil.isEmpty(JedisClusterUtils.get(key))) {
List<Long> adviserIds = adviserConsr.getByAgentId(agentId); List<Long> adviserIds = adviserConsr.getByAgentId(agentId);
if (CollUtil.isEmpty(adviserIds)) {
return new ArrayList<>();
}
List<ERPPublishNumDTO> erpPublishNumQueryParams = bookAdviserDao.getErpPublishNumQueryParamsByMonth(adviserIds,month); List<ERPPublishNumDTO> erpPublishNumQueryParams = bookAdviserDao.getErpPublishNumQueryParamsByMonth(adviserIds,month);
if (ListUtils.isEmpty(erpPublishNumQueryParams)) { if (ListUtils.isEmpty(erpPublishNumQueryParams)) {
return new ArrayList<>(); return new ArrayList<>();
......
...@@ -118,6 +118,7 @@ import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto; ...@@ -118,6 +118,7 @@ import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto;
import com.pcloud.usercenter.party.agent.dto.SaleAgentDTO; import com.pcloud.usercenter.party.agent.dto.SaleAgentDTO;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.lucene.queryparser.classic.QueryParser;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
...@@ -2740,6 +2741,9 @@ public class BookBizImpl implements BookBiz { ...@@ -2740,6 +2741,9 @@ public class BookBizImpl implements BookBiz {
if (null != agentId) { if (null != agentId) {
adviserIds = adviserConsr.getByAgentId(agentId); adviserIds = adviserConsr.getByAgentId(agentId);
} }
if (!StringUtil.isEmpty(keyword)) {
keyword = QueryParser.escape(keyword);
}
Page<ESBookAndAdviser> esPage = esBookAndAdviserBiz.getESAdviserBooks4AppletV2(grayStatus, keyword, templetIds, graLabelIds, subLabelIds, Page<ESBookAndAdviser> esPage = esBookAndAdviserBiz.getESAdviserBooks4AppletV2(grayStatus, keyword, templetIds, graLabelIds, subLabelIds,
currentPage, numPerPage,scecondTempletIds, adviserIds, agentId); currentPage, numPerPage,scecondTempletIds, adviserIds, agentId);
......
...@@ -12,8 +12,10 @@ import com.pcloud.channelcenter.qrcode.dto.GroupQrcodeVO; ...@@ -12,8 +12,10 @@ import com.pcloud.channelcenter.qrcode.dto.GroupQrcodeVO;
import com.pcloud.channelcenter.qrcode.dto.OwnMessageDTO; import com.pcloud.channelcenter.qrcode.dto.OwnMessageDTO;
import com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto; import com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto;
import com.pcloud.channelcenter.qrcode.entity.QrcodeScene; import com.pcloud.channelcenter.qrcode.entity.QrcodeScene;
import com.pcloud.channelcenter.qrcode.entity.QrcodeTemp;
import com.pcloud.channelcenter.qrcode.service.QrcodeLocationAssocService; import com.pcloud.channelcenter.qrcode.service.QrcodeLocationAssocService;
import com.pcloud.channelcenter.qrcode.service.QrcodeSceneService; import com.pcloud.channelcenter.qrcode.service.QrcodeSceneService;
import com.pcloud.channelcenter.qrcode.service.QrcodeTempService;
import com.pcloud.channelcenter.qrcode.vo.BookAssocLastQrAskVO; import com.pcloud.channelcenter.qrcode.vo.BookAssocLastQrAskVO;
import com.pcloud.channelcenter.qrcode.vo.BookAssocLastQrVO; import com.pcloud.channelcenter.qrcode.vo.BookAssocLastQrVO;
import com.pcloud.channelcenter.qrcode.vo.BookAssocQRcountRequestVO; import com.pcloud.channelcenter.qrcode.vo.BookAssocQRcountRequestVO;
...@@ -70,7 +72,8 @@ public class QrcodeSceneConsr { ...@@ -70,7 +72,8 @@ public class QrcodeSceneConsr {
private AccountSettingService accountSettingService; private AccountSettingService accountSettingService;
@Autowired @Autowired
private QrcodeLocationAssocService qrcodeLocationAssocService; private QrcodeLocationAssocService qrcodeLocationAssocService;
@Autowired
private QrcodeTempService qrcodeTempService;
/** /**
...@@ -622,4 +625,17 @@ public class QrcodeSceneConsr { ...@@ -622,4 +625,17 @@ public class QrcodeSceneConsr {
return accountSetting; return accountSetting;
} }
public String createTempQrcode4H5(QrcodeTemp qrcodeTemp) {
LOGGER.info("H5创建公众号临时二维码,qrcodeTemp={}",qrcodeTemp.toString());
String qrcode = "";
if (null == qrcodeTemp) {
return qrcode;
}
try {
qrcode = ResponseHandleUtil.parseResponse(qrcodeTempService.createTempQrcode4H5(qrcodeTemp), String.class);
} catch (Exception e) {
LOGGER.error("H5创建公众号临时二维码失败"+e.getMessage(), e);
}
return qrcode;
}
} }
...@@ -7,6 +7,7 @@ import com.pcloud.book.group.dto.BookGroupServeDTO; ...@@ -7,6 +7,7 @@ import com.pcloud.book.group.dto.BookGroupServeDTO;
import com.pcloud.book.group.dto.BookServeDTO; import com.pcloud.book.group.dto.BookServeDTO;
import com.pcloud.book.group.dto.NavigationParamDTO; import com.pcloud.book.group.dto.NavigationParamDTO;
import com.pcloud.book.group.dto.ResourcePageCourseDTO; import com.pcloud.book.group.dto.ResourcePageCourseDTO;
import com.pcloud.book.group.dto.ResourcePageDTO;
import com.pcloud.book.group.entity.BookGroupServe; import com.pcloud.book.group.entity.BookGroupServe;
import com.pcloud.book.group.entity.ResourcePage; import com.pcloud.book.group.entity.ResourcePage;
import com.pcloud.book.group.entity.ResourcePageCollect; import com.pcloud.book.group.entity.ResourcePageCollect;
...@@ -440,4 +441,20 @@ public interface ResourcePageBiz { ...@@ -440,4 +441,20 @@ public interface ResourcePageBiz {
* * @param null * * @param null
*/ */
void batchUpdateColumnSeq(List<Long> navigationIds); void batchUpdateColumnSeq(List<Long> navigationIds);
/**
* 客户端-根据页面id查要弹出的二维码
* @author:zhuyajie
* @date:2021/8/23 17:31
* * @param null
*/
ResourcePageItemVO getPopupQrcode4Wechat(Long resourcePageId, Long wechatUserId);
/**
* 查资源页信息
* @author:zhuyajie
* @date:2021/8/30 11:08
* * @param null
*/
ResourcePageDTO getResourcePageById(Long resourcePageId);
} }
...@@ -5103,11 +5103,11 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -5103,11 +5103,11 @@ public class BookGroupBizImpl implements BookGroupBiz {
} }
Long raysClassifyId = null; Long raysClassifyId = null;
BookAdviserDto bookAdviserDto = bookAdviserDao.getBase(bookId, channelId, adviserId); BookAdviserDto bookAdviserDto = bookAdviserDao.getBase(bookId, channelId, adviserId);
if (null != bookAdviserDto) { if (null != bookAdviserDto && null != bookAdviserDto.getTempletId()) {
raysClassifyId = bookRaysClassifyDao.getClassifyIdByBookTemplateId(bookAdviserDto.getTempletId()); raysClassifyId = bookRaysClassifyDao.getClassifyIdByBookTemplateId(bookAdviserDto.getTempletId());
} if (null == raysClassifyId) {
if (null == raysClassifyId) { LOGGER.warn("书刊分类没有对应的小睿分类" + bookGroupId);
LOGGER.error("书刊分类没有对应的小睿分类" + bookGroupId); }
} }
String page = null;//小程序跳转页 todo String page = null;//小程序跳转页 todo
String appletId = createOneAppletId(); String appletId = createOneAppletId();
......
...@@ -55,6 +55,7 @@ import com.pcloud.book.group.dto.BookGroupServeDTO; ...@@ -55,6 +55,7 @@ import com.pcloud.book.group.dto.BookGroupServeDTO;
import com.pcloud.book.group.dto.BookServeDTO; import com.pcloud.book.group.dto.BookServeDTO;
import com.pcloud.book.group.dto.NavigationParamDTO; import com.pcloud.book.group.dto.NavigationParamDTO;
import com.pcloud.book.group.dto.ResourcePageCourseDTO; import com.pcloud.book.group.dto.ResourcePageCourseDTO;
import com.pcloud.book.group.dto.ResourcePageDTO;
import com.pcloud.book.group.dto.ResourcePageUrlDTO; import com.pcloud.book.group.dto.ResourcePageUrlDTO;
import com.pcloud.book.group.entity.BookAppletScene; import com.pcloud.book.group.entity.BookAppletScene;
import com.pcloud.book.group.entity.BookGroup; import com.pcloud.book.group.entity.BookGroup;
...@@ -86,6 +87,7 @@ import com.pcloud.channelcenter.qrcode.dto.BookSceneIdListDTO; ...@@ -86,6 +87,7 @@ import com.pcloud.channelcenter.qrcode.dto.BookSceneIdListDTO;
import com.pcloud.channelcenter.qrcode.dto.GroupQrcodeVO; import com.pcloud.channelcenter.qrcode.dto.GroupQrcodeVO;
import com.pcloud.channelcenter.qrcode.dto.OwnMessageDTO; import com.pcloud.channelcenter.qrcode.dto.OwnMessageDTO;
import com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto; import com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto;
import com.pcloud.channelcenter.qrcode.entity.QrcodeTemp;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto; import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
import com.pcloud.channelcenter.wechat.entity.AccountSetting; import com.pcloud.channelcenter.wechat.entity.AccountSetting;
import com.pcloud.channelcenter.wechat.entity.Message; import com.pcloud.channelcenter.wechat.entity.Message;
...@@ -471,6 +473,12 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -471,6 +473,12 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
if (typeCodes.contains(itemVO.getServeType()) && StringUtil.isEmpty(itemVO.getLinkUrl())) { if (typeCodes.contains(itemVO.getServeType()) && StringUtil.isEmpty(itemVO.getLinkUrl())) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "缺少资源链接"); throw new BookBizException(BookBizException.PARAM_IS_NULL, "缺少资源链接");
} }
if (ResourcePageConstants.ServeTypeEnum.OFFICIAL_ACCOUNT.getValue().equals(itemVO.getServeType())) {
if (null == itemVO.getQrcodeShowType()) {
//默认类型:平铺
itemVO.setQrcodeShowType(ResourcePageConstants.QrcodeShowTypeEnum.TILED.getCode());
}
}
} }
} }
...@@ -483,6 +491,11 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -483,6 +491,11 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
Integer maxSeq = resourcePageColumnDao.getMaxSeq(updateResourceColumnVO.getResourcePageId(), updateResourceColumnVO.getNavigationId()); Integer maxSeq = resourcePageColumnDao.getMaxSeq(updateResourceColumnVO.getResourcePageId(), updateResourceColumnVO.getNavigationId());
resourcePageColumn.setColumnSeq(maxSeq + 1); resourcePageColumn.setColumnSeq(maxSeq + 1);
} }
//默认导航
if (null == updateResourceColumnVO.getNavigationId()) {
ResourcePageNavigation navigation = resourcePageNavigationDao.getByType(updateResourceColumnVO.getResourcePageId(),ResourcePageConstants.NavigationTypeEnum.BOOK_SERVE.getCode());
resourcePageColumn.setNavigationId(navigation.getId());
}
resourcePageColumnDao.insert(resourcePageColumn); resourcePageColumnDao.insert(resourcePageColumn);
} else { } else {
resourcePageColumn.setId(updateResourceColumnVO.getResourcePageColumnId()); resourcePageColumn.setId(updateResourceColumnVO.getResourcePageColumnId());
...@@ -493,13 +506,51 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -493,13 +506,51 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
@ParamLog("生成公众号码") @ParamLog("生成公众号码")
private void createOfficialAccountUrl(Long resourcePageColumnId, UpdateResourceColumnVO updateResourceColumnVO) { private void createOfficialAccountUrl(Long resourcePageColumnId, UpdateResourceColumnVO updateResourceColumnVO) {
String qrcodeUrl;
String url = null;
ResourcePageItemVO itemVO = updateResourceColumnVO.getItemVOList().get(0); ResourcePageItemVO itemVO = updateResourceColumnVO.getItemVOList().get(0);
ResourcePage resourcePage = resourcePageDao.getById(updateResourceColumnVO.getResourcePageId()); ResourcePage resourcePage = resourcePageDao.getById(updateResourceColumnVO.getResourcePageId());
if (null == resourcePage) { if (null == resourcePage) {
return; return;
} }
if (ResourcePageConstants.QrcodeShowTypeEnum.TILED.getCode().equals(itemVO.getQrcodeShowType())) {
//平铺方式
createTiledQrcode(resourcePage, updateResourceColumnVO, resourcePageColumnId);
} else {
//弹窗方式
Long officialAccountsId;
ResourcePageItem item = new ResourcePageItem();
item.setResourcePageColumnId(resourcePageColumnId);
item.setResourcePageId(updateResourceColumnVO.getResourcePageId());
item.setCreateUser(updateResourceColumnVO.getCreateUser());
item.setLogoUrl(itemVO.getLogoUrl());
item.setGuideContent(itemVO.getGuideContent());
item.setServeType(ResourcePageConstants.ServeTypeEnum.OFFICIAL_ACCOUNT.getValue());
item.setSeqNum(1);
item.setIsShow(true);
item.setQrcodeSource(ResourcePageConstants.QrcodeSourceEnum.OFFICIAL_ACCOUNT.value);
if (null == itemVO.getAccountSettingId()) {
officialAccountsId = BookProps.getOperateOfficalId();
} else {
officialAccountsId = itemVO.getAccountSettingId();
}
item.setServeId(officialAccountsId);
item.setAccountSettingId(officialAccountsId);
item.setLinkUrl(itemVO.getLinkUrl());
item.setQrcodeShowType(itemVO.getQrcodeShowType());
item.setQrcodeSource(itemVO.getQrcodeSource() == null ? ResourcePageConstants.QrcodeSourceEnum.OFFICIAL_ACCOUNT.value : itemVO.getQrcodeSource());
resourcePageItemDao.insert(item);
}
}
/**
* 公众号二维码-平铺方式
* @author:zhuyajie
* @date:2021/8/23 15:50
* * @param null
*/
private void createTiledQrcode(ResourcePage resourcePage, UpdateResourceColumnVO updateResourceColumnVO, Long resourcePageColumnId) {
String qrcodeUrl;
String url = null;
ResourcePageItemVO itemVO = updateResourceColumnVO.getItemVOList().get(0);
Long officialSceneId = resourcePage.getOfficialSceneId(); Long officialSceneId = resourcePage.getOfficialSceneId();
if(ResourcePageConstants.QrcodeSourceEnum.OFFICIAL_ACCOUNT.value.equals(itemVO.getQrcodeSource())){ if(ResourcePageConstants.QrcodeSourceEnum.OFFICIAL_ACCOUNT.value.equals(itemVO.getQrcodeSource())){
if (null == officialSceneId) { if (null == officialSceneId) {
...@@ -539,19 +590,32 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -539,19 +590,32 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
item.setIsShow(true); item.setIsShow(true);
item.setServeId(officialSceneId); item.setServeId(officialSceneId);
item.setQrcodeSource(itemVO.getQrcodeSource() == null ? ResourcePageConstants.QrcodeSourceEnum.OFFICIAL_ACCOUNT.value : itemVO.getQrcodeSource()); item.setQrcodeSource(itemVO.getQrcodeSource() == null ? ResourcePageConstants.QrcodeSourceEnum.OFFICIAL_ACCOUNT.value : itemVO.getQrcodeSource());
if (!StringUtil.isEmpty(itemVO.getLogoUrl())) { item.setQrcodeShowType(itemVO.getQrcodeShowType());
//生成黑白logo二维码 qrcodeUrl = this.getLogoQrcode(url, itemVO.getLogoUrl(), qrcodeUrl);
try {
qrcodeUrl = QrcodeUtils.createLogoQr(url, itemVO.getLogoUrl(), 0xFF000000, 1);
} catch (BizException e) {
log.error("生成黑白logo二维码失败"+e.getMessage(), e);
}
}
item.setLinkUrl(qrcodeUrl); item.setLinkUrl(qrcodeUrl);
resourcePageItemDao.insert(item); resourcePageItemDao.insert(item);
} }
/** /**
* 生成带logo的二维码
* @author:zhuyajie
* @date:2021/8/23 15:43
* * @param null
*/
private String getLogoQrcode(String url, String logoUrl, String qrcodeUrl) {
if (StringUtil.isEmpty(logoUrl) || StringUtil.isEmpty(qrcodeUrl) || StringUtil.isEmpty(url)) {
return qrcodeUrl;
}
//生成黑白logo二维码
try {
qrcodeUrl = QrcodeUtils.createLogoQr(url, logoUrl, 0xFF000000, 1);
} catch (BizException e) {
log.error("生成黑白logo二维码失败"+e.getMessage(), e);
}
return qrcodeUrl;
}
/**
* 生成公众号二维码 * 生成公众号二维码
* @author:zhuyajie * @author:zhuyajie
* @date:2021/4/13 10:14 * @date:2021/4/13 10:14
...@@ -689,9 +753,11 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -689,9 +753,11 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
} }
itemVOList.sort(Comparator.comparing(ResourcePageItemVO::getId)); itemVOList.sort(Comparator.comparing(ResourcePageItemVO::getId));
Map<Long, List<ResourcePageItemVO>> columnMap = itemVOList.stream().collect(Collectors.groupingBy(ResourcePageItemVO::getResourcePageColumnId)); Map<Long, List<ResourcePageItemVO>> columnMap = itemVOList.stream().collect(Collectors.groupingBy(ResourcePageItemVO::getResourcePageColumnId));
List<ResourceColumnAndServeVO> removeColumns = new ArrayList<>();
for (ResourceColumnAndServeVO columnAndServeVO : serveVOS) { for (ResourceColumnAndServeVO columnAndServeVO : serveVOS) {
List<ResourcePageItemVO> itemVOS = columnMap.get(columnAndServeVO.getResourcePageColumnId()); List<ResourcePageItemVO> itemVOS = columnMap.get(columnAndServeVO.getResourcePageColumnId());
if (ListUtils.isEmpty(itemVOS)) { if (ListUtils.isEmpty(itemVOS)) {
removeColumns.add(columnAndServeVO);
continue; continue;
} }
columnAndServeVO.setItemVOList(itemVOS); columnAndServeVO.setItemVOList(itemVOS);
...@@ -706,6 +772,9 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -706,6 +772,9 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
columnAndServeVO.setLogoUrl(itemVOS.get(0).getLogoUrl()); columnAndServeVO.setLogoUrl(itemVOS.get(0).getLogoUrl());
} }
} }
if (!ListUtils.isEmpty(removeColumns)) {
serveVOS.removeAll(removeColumns);
}
} }
} }
if(CollUtil.isEmpty(serveVOS)){ if(CollUtil.isEmpty(serveVOS)){
...@@ -908,16 +977,38 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -908,16 +977,38 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
if (ListUtils.isEmpty(itemVOS)) { if (ListUtils.isEmpty(itemVOS)) {
return; return;
} }
List<ResourcePageItemVO> removeList = new ArrayList<>();
for (ResourcePageItemVO itemVO : itemVOS) { for (ResourcePageItemVO itemVO : itemVOS) {
//带logo的二维码
itemVO.setResultUrl(itemVO.getLinkUrl());
itemVO.setTypeName("公众号"); itemVO.setTypeName("公众号");
//原始二维码 if (ResourcePageConstants.QrcodeShowTypeEnum.TILED.getCode().equals(itemVO.getQrcodeShowType())) {
if(ResourcePageConstants.QrcodeSourceEnum.OFFICIAL_ACCOUNT.value.equals(itemVO.getQrcodeSource())){ //平铺方式
QrcodeSceneDto qrcodeSceneDto = qrcodeSceneConsr.getById(itemVO.getServeId()); itemVO.setResultUrl(itemVO.getLinkUrl());
itemVO.setLinkUrl(qrcodeSceneDto.getQrcodeUrl()); //原始二维码
if(ResourcePageConstants.QrcodeSourceEnum.OFFICIAL_ACCOUNT.value.equals(itemVO.getQrcodeSource())){
QrcodeSceneDto qrcodeSceneDto = qrcodeSceneConsr.getById(itemVO.getServeId());
itemVO.setLinkUrl(qrcodeSceneDto.getQrcodeUrl());
}
} else {
//弹窗方式,在客户端栏目中不展示
if (isWechat) {
removeList.add(itemVO);
continue;
}
Long accountSettingId = itemVO.getAccountSettingId();
if (null == accountSettingId) {
accountSettingId = BookProps.getOperateOfficalId();
itemVO.setAccountSettingId(accountSettingId);
}
AccountSetting accountSetting = qrcodeSceneConsr.getAppInfo(accountSettingId);
itemVO.setAccountSettingName(null == accountSetting?null:accountSetting.getBaseAppName());
if (BookProps.getOperateOfficalId().equals(accountSettingId)) {
itemVO.setLinkUrl(accountSetting.getQrcodeUrl());
}
} }
} }
if (!ListUtils.isEmpty(removeList)) {
itemVOS.removeAll(removeList);
}
} }
@ParamLog("填充应用作品") @ParamLog("填充应用作品")
...@@ -1219,12 +1310,27 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -1219,12 +1310,27 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
Long resourcePageId = this.updateResourcePage(updateResourcePageVO); Long resourcePageId = this.updateResourcePage(updateResourcePageVO);
if (!ListUtils.isEmpty(updateResourcePageVO.getColumnVOS())) { if (!ListUtils.isEmpty(updateResourcePageVO.getColumnVOS())) {
List<UpdateResourceColumnVO> list = updateResourcePageVO.getColumnVOS(); List<UpdateResourceColumnVO> list = updateResourcePageVO.getColumnVOS();
List<ResourcePageItemVO> accountItemVOS = new ArrayList<>();
for (UpdateResourceColumnVO columnVO : list) { for (UpdateResourceColumnVO columnVO : list) {
columnVO.setResourcePageId(resourcePageId); columnVO.setResourcePageId(resourcePageId);
columnVO.setCreateUser(updateResourcePageVO.getCreateUser()); columnVO.setCreateUser(updateResourcePageVO.getCreateUser());
//栏目校验 //栏目校验
this.checkResourceColumn(columnVO); this.checkResourceColumn(columnVO);
//公众号栏目
if (ResourcePageConstants.ColumnTypeEnum.OFFICIAL_ACCOUNT.getCode().equals(columnVO.getColumnType())) {
accountItemVOS.addAll(columnVO.getItemVOList());
}
}
//检查弹窗公众号配置数量
if (!ListUtils.isEmpty(accountItemVOS)) {
List<ResourcePageItemVO> popupItems = accountItemVOS.stream().filter(s->
ResourcePageConstants.QrcodeShowTypeEnum.POPUP.getCode().equals(s.getQrcodeShowType())).collect(Collectors.toList());
if (popupItems.size()>1) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "弹窗式公众号只能配置一个");
}
} }
//栏目资源
resourcePageItemDao.deleteByPageId(resourcePageId);
for (UpdateResourceColumnVO columnVO : list) { for (UpdateResourceColumnVO columnVO : list) {
this.updateResourceColumn(columnVO); this.updateResourceColumn(columnVO);
} }
...@@ -1646,12 +1752,27 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -1646,12 +1752,27 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
Long resourcePageId = resourcePage.getId(); Long resourcePageId = resourcePage.getId();
// 配置资源支持指定栏目 // 配置资源支持指定栏目
Integer columnType = Optional.ofNullable(addBookGroupServeDTO.getColumnType()).orElse(ResourcePageConstants.ColumnTypeEnum.APP_PRODUCT.getCode()); Integer columnType = Optional.ofNullable(addBookGroupServeDTO.getColumnType()).orElse(ResourcePageConstants.ColumnTypeEnum.APP_PRODUCT.getCode());
//是否有应用栏目 //第一个可配置资源的导航
List<ResourcePageColumn> columns = resourcePageColumnDao.getByColumnTypeAndPage(resourcePageId, columnType); Long navigationId=null;
List<Integer> navigationTypes = Arrays.asList(ResourcePageConstants.NavigationTypeEnum.BOOK_SERVE.getCode(),
ResourcePageConstants.NavigationTypeEnum.CUSTOM.getCode());
List<ResourcePageNavigation> navigations = resourcePageNavigationDao.getByPageId(resourcePageId);
for (ResourcePageNavigation navigation:navigations) {
if (navigationTypes.contains(navigation.getNavigationType())) {
navigationId = navigation.getId();
break;
}
}
if (null == navigationId) {
navigationId = this.addDefaultBookServeNavigation(resourcePageId);
}
//获取该导航最后一个应用作品栏目
List<ResourcePageColumn> columnList = resourcePageColumnDao.getByNavigation(navigationId);
List<ResourcePageColumn> columns = columnList.stream().filter(s->columnType.equals(s.getColumnType())).collect(Collectors.toList());
ResourcePageColumn column = null; ResourcePageColumn column = null;
List<ResourcePageItemVO> itemVOS = new ArrayList<>(); List<ResourcePageItemVO> itemVOS = new ArrayList<>();
if (!ListUtils.isEmpty(columns)) { if (!ListUtils.isEmpty(columns)) {
column = columns.get(0); column = columns.get(columns.size()-1);
itemVOS = resourcePageItemDao.getResourcePageItemByColumnId(column.getId()); itemVOS = resourcePageItemDao.getResourcePageItemByColumnId(column.getId());
} }
//资源 //资源
...@@ -1673,6 +1794,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -1673,6 +1794,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
columnVO.setCreateUser(adviserId); columnVO.setCreateUser(adviserId);
columnVO.setItemVOList(itemVOS); columnVO.setItemVOList(itemVOS);
columnVO.setResourcePageId(resourcePageId); columnVO.setResourcePageId(resourcePageId);
columnVO.setNavigationId(navigationId);
this.updateResourceColumn(columnVO); this.updateResourceColumn(columnVO);
} }
...@@ -1683,7 +1805,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -1683,7 +1805,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
columnVO.setColumnName("RAYS工具"); columnVO.setColumnName("RAYS工具");
} else { } else {
columnVO.setColumnFormat(1); columnVO.setColumnFormat(1);
columnVO.setColumnName("本书配套资源服务"); columnVO.setColumnName("应用作品");
} }
columnVO.setShowMore(false); columnVO.setShowMore(false);
return columnVO; return columnVO;
...@@ -2377,4 +2499,66 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -2377,4 +2499,66 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
} }
} }
} }
@Override
public ResourcePageItemVO getPopupQrcode4Wechat(Long resourcePageId, Long wechatUserId) {
Boolean popupState = false;
ResourcePageItemVO pageItemVO = resourcePageItemDao.getPopupQrcodeItem(resourcePageId);
if (null == pageItemVO) {
pageItemVO = new ResourcePageItemVO();
pageItemVO.setPopupState(popupState);
return pageItemVO;
}
String logoUrl = pageItemVO.getLogoUrl();
Long accountSettingId = pageItemVO.getAccountSettingId();
if (null == accountSettingId) {
accountSettingId = BookProps.getOperateOfficalId();
}
QrcodeTemp qrcodeTemp = new QrcodeTemp();
qrcodeTemp.setAccountSettingId(accountSettingId);
qrcodeTemp.setCreatedUser(wechatUserId);
qrcodeTemp.setPageId(resourcePageId);
String qrcodeUrl = qrcodeSceneConsr.createTempQrcode4H5(qrcodeTemp);
if (!StringUtil.isEmpty(qrcodeUrl) && !StringUtil.isEmpty(logoUrl)) {
//添加Logo
String url = "";
String tmpDirPath = FileUtil.getTmpDirPath();
if (!tmpDirPath.endsWith(File.separator)) {
tmpDirPath = tmpDirPath + File.separator;
}
File file = FileUtil.touch(tmpDirPath + UUIDUitl.generateShort() + ".png");
HttpUtil.downloadFile(qrcodeUrl, file);
try {
url = QrCodeUtil.decode(file);
} catch (QrCodeException e){
log.info("解析二维码图片失败,qrcodeUrl:{}", qrcodeUrl);
}
qrcodeUrl = this.getLogoQrcode(url, logoUrl, qrcodeUrl);
}
pageItemVO.setResultUrl(qrcodeUrl);
if (!StringUtil.isEmpty(qrcodeUrl)) {
popupState = true;
}
pageItemVO.setPopupState(popupState);
pageItemVO.setLinkUrl(null);
return pageItemVO;
}
@Override
public ResourcePageDTO getResourcePageById(Long resourcePageId) {
ResourcePageDTO resourcePageDTO = new ResourcePageDTO();
ResourcePage resourcePage = resourcePageDao.getById(resourcePageId);
if (null != resourcePage){
BeanUtils.copyProperties(resourcePage, resourcePageDTO);
if (null != resourcePage.getSceneId()) {
QrcodeSceneDto qrcodeSceneDto = qrcodeSceneConsr.getById(resourcePage.getSceneId());
resourcePageDTO.setUrl(null == qrcodeSceneDto?null:qrcodeSceneDto.getUrl());
} else if (null != resourcePage.getBookGroupId()) {
BookGroupDTO dto = bookGroupDao.getDTOById(resourcePage.getBookGroupId());
resourcePageDTO.setUrl(null == dto?null:dto.getGroupQrcodeLink());
}
}
return resourcePageDTO;
}
} }
...@@ -29,7 +29,8 @@ public class ResourcePageConstants { ...@@ -29,7 +29,8 @@ public class ResourcePageConstants {
GROUP(4, "社群", new String[]{ServeTypeEnum.GROUP_ACTIVITY.getValue(), ServeTypeEnum.WXWORK_GROUP.getValue()}), GROUP(4, "社群", new String[]{ServeTypeEnum.GROUP_ACTIVITY.getValue(), ServeTypeEnum.WXWORK_GROUP.getValue()}),
THIRD_RESOURCE(5, "第三方资源", new String[]{ServeTypeEnum.THIRD_RESOURCE.getValue()}), THIRD_RESOURCE(5, "第三方资源", new String[]{ServeTypeEnum.THIRD_RESOURCE.getValue()}),
PICTURE(6, "图片位", new String[]{ServeTypeEnum.APP.getValue(), ServeTypeEnum.PRODUCT.getValue(), PICTURE(6, "图片位", new String[]{ServeTypeEnum.APP.getValue(), ServeTypeEnum.PRODUCT.getValue(),
ServeTypeEnum.GROUP_ACTIVITY.getValue(), ServeTypeEnum.THIRD_RESOURCE.getValue()}); ServeTypeEnum.GROUP_ACTIVITY.getValue(), ServeTypeEnum.THIRD_RESOURCE.getValue()}),
RAYS_TOOL(7,"RAYS工具",new String[]{ServeTypeEnum.APP.getValue()});
private Integer code; private Integer code;
private String name; private String name;
...@@ -377,4 +378,29 @@ public class ResourcePageConstants { ...@@ -377,4 +378,29 @@ public class ResourcePageConstants {
//小程序默认导航,书友互助、阅读打卡 //小程序默认导航,书友互助、阅读打卡
public static List<Integer> APPLET_DEFAULT_NAVIGATIONS = Arrays.asList(ResourcePageConstants.NavigationTypeEnum.APPLET_QA.getCode(), public static List<Integer> APPLET_DEFAULT_NAVIGATIONS = Arrays.asList(ResourcePageConstants.NavigationTypeEnum.APPLET_QA.getCode(),
ResourcePageConstants.NavigationTypeEnum.CLOCK.getCode()); ResourcePageConstants.NavigationTypeEnum.CLOCK.getCode());
/**
* H5-公众号二维码展示方式
* @author:zhuyajie
* @date:2021/8/23 15:14
* * @param null
*/
public enum QrcodeShowTypeEnum{
//1平铺2弹窗
TILED(1),
POPUP(2);
private Integer code;
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
QrcodeShowTypeEnum(Integer code) {
this.code = code;
}
}
} }
...@@ -122,4 +122,12 @@ public interface ResourcePageItemDao extends BaseDao<ResourcePageItem>{ ...@@ -122,4 +122,12 @@ public interface ResourcePageItemDao extends BaseDao<ResourcePageItem>{
* * @param null * * @param null
*/ */
List<BookServeDTO> getBookAllServeIds(Long adviserId, Long bookId, Long channelId); List<BookServeDTO> getBookAllServeIds(Long adviserId, Long bookId, Long channelId);
/**
* 配置的弹窗类型公众号
* @author:zhuyajie
* @date:2021/8/23 17:52
* * @param null
*/
ResourcePageItemVO getPopupQrcodeItem(Long resourcePageId);
} }
\ No newline at end of file
...@@ -122,4 +122,9 @@ public class ResourcePageItemDaoImpl extends BaseDaoImpl<ResourcePageItem> imple ...@@ -122,4 +122,9 @@ public class ResourcePageItemDaoImpl extends BaseDaoImpl<ResourcePageItem> imple
map.put("channelId", channelId); map.put("channelId", channelId);
return getSessionTemplate().selectList(getStatement("getBookAllServeIds"), map); return getSessionTemplate().selectList(getStatement("getBookAllServeIds"), map);
} }
@Override
public ResourcePageItemVO getPopupQrcodeItem(Long resourcePageId) {
return getSessionTemplate().selectOne(getStatement("getPopupQrcodeItem"), resourcePageId);
}
} }
...@@ -64,4 +64,12 @@ public class ResourcePageItem extends BaseEntity { ...@@ -64,4 +64,12 @@ public class ResourcePageItem extends BaseEntity {
* 二维码来源 * 二维码来源
*/ */
private Integer qrcodeSource; private Integer qrcodeSource;
/**
* 二维码展示方式(1平铺2弹窗)
*/
private Integer qrcodeShowType;
/**
* 二维码公众号id
*/
private Long accountSettingId;
} }
...@@ -327,4 +327,12 @@ public class ResourcePageFacade { ...@@ -327,4 +327,12 @@ public class ResourcePageFacade {
resourcePageBiz.batchUpdateColumnSeq(navigationIds); resourcePageBiz.batchUpdateColumnSeq(navigationIds);
return new ResponseDto<>(); return new ResponseDto<>();
} }
@ApiOperation("客户端-根据页面id查要弹出的二维码")
@GetMapping("getPopupQrcode4Wechat")
public ResponseDto<?> getPopupQrcode4Wechat(@CookieValue("userInfo") String userInfo,
@RequestParam("resourcePageId") Long resourcePageId){
Long wechatUserId = Cookie.getId(userInfo,Cookie._WECHAT_USER_ID);
return new ResponseDto<>(resourcePageBiz.getPopupQrcode4Wechat(resourcePageId, wechatUserId));
}
} }
...@@ -22,6 +22,7 @@ import com.pcloud.book.group.dto.MapBookGroupServeCountDTO; ...@@ -22,6 +22,7 @@ import com.pcloud.book.group.dto.MapBookGroupServeCountDTO;
import com.pcloud.book.group.dto.PersonalQrcodeDTO; import com.pcloud.book.group.dto.PersonalQrcodeDTO;
import com.pcloud.book.group.dto.QueryByBookAdviserDTO; import com.pcloud.book.group.dto.QueryByBookAdviserDTO;
import com.pcloud.book.group.dto.ResourceBrowseParamDto; import com.pcloud.book.group.dto.ResourceBrowseParamDto;
import com.pcloud.book.group.dto.ResourcePageDTO;
import com.pcloud.book.group.dto.SelfRobotBookGroupDTO; import com.pcloud.book.group.dto.SelfRobotBookGroupDTO;
import com.pcloud.book.group.dto.SelfRobotUserDTO; import com.pcloud.book.group.dto.SelfRobotUserDTO;
import com.pcloud.book.group.dto.SelfRobtParamDTO; import com.pcloud.book.group.dto.SelfRobtParamDTO;
...@@ -483,4 +484,10 @@ public class BookGroupServiceImpl implements BookGroupService { ...@@ -483,4 +484,10 @@ public class BookGroupServiceImpl implements BookGroupService {
@RequestParam(value = "bookGroupId", required = false) Long bookGroupId) { @RequestParam(value = "bookGroupId", required = false) Long bookGroupId) {
return ResponseHandleUtil.toResponse(resourcePageBiz.isOpenRaysScene(sceneId, bookGroupId)); return ResponseHandleUtil.toResponse(resourcePageBiz.isOpenRaysScene(sceneId, bookGroupId));
} }
@Override
@GetMapping("getResourcePageById")
public ResponseEntity<ResponseDto<ResourcePageDTO>> getResourcePageById(@RequestParam("resourcePageId") Long resourcePageId) {
return ResponseHandleUtil.toResponse(resourcePageBiz.getResourcePageById(resourcePageId));
}
} }
package com.pcloud.book.group.vo; package com.pcloud.book.group.vo;
import com.pcloud.book.applet.dto.AppletNewsDTO;
import com.pcloud.book.applet.dto.AppletOuterBooklistDTO; import com.pcloud.book.applet.dto.AppletOuterBooklistDTO;
import com.pcloud.book.applet.dto.GroupActivity4AppletDTO; import com.pcloud.book.applet.dto.GroupActivity4AppletDTO;
import com.pcloud.book.applet.entity.AppletThirdResources; import com.pcloud.book.applet.entity.AppletThirdResources;
import com.pcloud.book.book.vo.BookLinkVO;
import com.pcloud.book.book.vo.response.BookQrcodeWxworkResponseVO; import com.pcloud.book.book.vo.response.BookQrcodeWxworkResponseVO;
import com.pcloud.common.dto.BaseDto; import com.pcloud.common.dto.BaseDto;
import com.pcloud.wechatgroup.wxwork.dto.WxworkGroupQrcodeBaseDTO;
import java.math.BigDecimal;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -106,4 +100,20 @@ public class ResourcePageItemVO extends BaseDto{ ...@@ -106,4 +100,20 @@ public class ResourcePageItemVO extends BaseDto{
private String qrcodeType; private String qrcodeType;
private Integer jumpType; private Integer jumpType;
/**
* 二维码展示方式(1平铺2弹窗)
*/
private Integer qrcodeShowType;
/**
* 二维码公众号id
*/
private Long accountSettingId;
/**
* 二维码公众号名称
*/
private String accountSettingName;
/**
* 二维码公众号弹出状态
*/
private Boolean popupState;
} }
...@@ -322,7 +322,7 @@ public class PushBizImpl implements PushBiz { ...@@ -322,7 +322,7 @@ public class PushBizImpl implements PushBiz {
//获取群信息 //获取群信息
GroupQrcode groupQrcode = groupQrcodeDao.getById(pushGroup.getBookGroupQrcodeId()); GroupQrcode groupQrcode = groupQrcodeDao.getById(pushGroup.getBookGroupQrcodeId());
if (groupQrcode == null) { if (groupQrcode == null) {
LOGGER.error("未找到群信息!qrcodeId=" + pushGroup.getBookGroupQrcodeId()); LOGGER.warn("未找到群信息!qrcodeId=" + pushGroup.getBookGroupQrcodeId());
continue; continue;
} }
//获取机器人微信号 //获取机器人微信号
...@@ -334,9 +334,8 @@ public class PushBizImpl implements PushBiz { ...@@ -334,9 +334,8 @@ public class PushBizImpl implements PushBiz {
LOGGER.info("发送一个群里的一个消息结束,休眠1秒pushGroup=" + pushGroup.toString() + "pushItem=" + pushItem.toString() + "altId=" + altId); LOGGER.info("发送一个群里的一个消息结束,休眠1秒pushGroup=" + pushGroup.toString() + "pushItem=" + pushItem.toString() + "altId=" + altId);
Thread.sleep(1000); Thread.sleep(1000);
} catch (InterruptedException e) { } catch (InterruptedException e) {
LOGGER.error("发消息休眠1秒出错", e); LOGGER.warn("发消息休眠1秒出错");
} }
} }
} }
} }
...@@ -349,8 +348,7 @@ public class PushBizImpl implements PushBiz { ...@@ -349,8 +348,7 @@ public class PushBizImpl implements PushBiz {
//获取群信息 //获取群信息
GroupQrcode groupQrcode = groupQrcodeDao.getById(pushGroup.getBookGroupQrcodeId()); GroupQrcode groupQrcode = groupQrcodeDao.getById(pushGroup.getBookGroupQrcodeId());
if (groupQrcode == null) { if (groupQrcode == null) {
LOGGER.error("未找到群信息!"); throw new BookBizException(BookBizException.PARAM_IS_NULL, "未找到群信息");
return;
} }
String groupId = groupQrcode.getWeixinGroupId(); String groupId = groupQrcode.getWeixinGroupId();
ClassifyDTO classifyDTO = bookGroupClassifyDao.getById(groupQrcode.getClassifyId()); ClassifyDTO classifyDTO = bookGroupClassifyDao.getById(groupQrcode.getClassifyId());
......
...@@ -14,6 +14,11 @@ public class ThreadPoolUtils { ...@@ -14,6 +14,11 @@ public class ThreadPoolUtils {
*/ */
public static final int REMOTE_TIME_OUT = 5; public static final int REMOTE_TIME_OUT = 5;
/**
* 远程调用超时时间(单位:秒)
*/
public static final int REMOTE_TIME_OUT_LONG = 30;
/** /**
* 异步导出线程池 * 异步导出线程池
......
...@@ -17,13 +17,20 @@ ...@@ -17,13 +17,20 @@
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/> <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="createUser" column="create_user" jdbcType="INTEGER"/> <result property="createUser" column="create_user" jdbcType="INTEGER"/>
<result property="qrcodeSource" column="qrcode_source" jdbcType="INTEGER"/>
<result property="qrcodeShowType" column="qrcode_show_type" jdbcType="INTEGER"/>
<result property="accountSettingId" column="account_setting_id" jdbcType="INTEGER"/>
</resultMap> </resultMap>
<sql id="Base_Column_List">
id, resource_page_id, resource_page_column_id, serve_id, serve_type, link_url, type_code, seq_num, is_show,
guide_content, logo_url, create_time, qrcode_source, qrcode_show_type, account_setting_id
</sql>
<!--查询单个--> <!--查询单个-->
<select id="getById" resultMap="ResourcePageItemMap"> <select id="getById" resultMap="ResourcePageItemMap">
select select
id, resource_page_id, resource_page_column_id, serve_id, serve_type, link_url, type_code, seq_num, is_show, <include refid="Base_Column_List"/>
guide_content, logo_url, create_time
from book.resource_page_item from book.resource_page_item
where id = #{id} where id = #{id}
</select> </select>
...@@ -31,20 +38,22 @@ ...@@ -31,20 +38,22 @@
<!--新增所有列--> <!--新增所有列-->
<insert id="insert" keyProperty="id" useGeneratedKeys="true"> <insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into book.resource_page_item(resource_page_id, resource_page_column_id, serve_id, serve_type, link_url, type_code, insert into book.resource_page_item(resource_page_id, resource_page_column_id, serve_id, serve_type, link_url, type_code,
seq_num, is_show, guide_content, logo_url, create_time, update_time, create_user, qrcode_source) seq_num, is_show, guide_content, logo_url, create_time, update_time, create_user, qrcode_source,
qrcode_show_type, account_setting_id)
values (#{resourcePageId}, #{resourcePageColumnId}, #{serveId}, #{serveType}, #{linkUrl}, #{typeCode}, values (#{resourcePageId}, #{resourcePageColumnId}, #{serveId}, #{serveType}, #{linkUrl}, #{typeCode},
#{seqNum}, #{isShow}, #{guideContent}, #{logoUrl}, now(), now(), #{createUser}, #{qrcodeSource}) #{seqNum}, #{isShow}, #{guideContent}, #{logoUrl}, now(), now(), #{createUser}, #{qrcodeSource},
#{qrcodeShowType}, #{accountSettingId})
</insert> </insert>
<insert id="batchInsert" keyProperty="id" useGeneratedKeys="true"> <insert id="batchInsert" keyProperty="id" useGeneratedKeys="true">
insert into book.resource_page_item(resource_page_id, resource_page_column_id, serve_id, serve_type, insert into book.resource_page_item(resource_page_id, resource_page_column_id, serve_id, serve_type,
link_url, type_code, seq_num, is_show, guide_content, logo_url, link_url, type_code, seq_num, is_show, guide_content, logo_url,
create_time, update_time, create_user, qrcode_source) create_time, update_time, create_user, qrcode_source, qrcode_show_type, account_setting_id)
values values
<foreach collection="list" separator="," index="index" item="item"> <foreach collection="list" separator="," index="index" item="item">
(#{item.resourcePageId}, #{item.resourcePageColumnId}, #{item.serveId}, #{item.serveType}, (#{item.resourcePageId}, #{item.resourcePageColumnId}, #{item.serveId}, #{item.serveType},
#{item.linkUrl}, #{item.typeCode}, #{item.seqNum}, #{item.isShow}, #{item.guideContent}, #{item.logoUrl}, #{item.linkUrl}, #{item.typeCode}, #{item.seqNum}, #{item.isShow}, #{item.guideContent}, #{item.logoUrl},
now(), now(), #{item.createUser}, #{item.qrcodeSource}) now(), now(), #{item.createUser}, #{item.qrcodeSource}, #{item.qrcodeShowType}, #{item.accountSettingId})
</foreach> </foreach>
</insert> </insert>
...@@ -110,7 +119,9 @@ ...@@ -110,7 +119,9 @@
guide_content guideContent, guide_content guideContent,
qrcode_source qrcodeSource, qrcode_source qrcodeSource,
create_user createUser, create_user createUser,
seq_num seqNum seq_num seqNum,
qrcode_show_type qrcodeShowType,
account_setting_id accountSettingId
FROM FROM
resource_page_item resource_page_item
WHERE WHERE
...@@ -319,4 +330,29 @@ ...@@ -319,4 +330,29 @@
i.serve_type, i.serve_type,
i.serve_id i.serve_id
</select> </select>
<select id="getPopupQrcodeItem" resultType="com.pcloud.book.group.vo.ResourcePageItemVO" parameterType="map">
SELECT
id,
serve_id serveId,
serve_type serveType,
link_url linkUrl,
resource_page_column_id resourcePageColumnId,
type_code typeCode,
logo_url logoUrl,
guide_content guideContent,
qrcode_source qrcodeSource,
create_user createUser,
seq_num seqNum,
qrcode_show_type qrcodeShowType,
account_setting_id accountSettingId
FROM
resource_page_item
WHERE
resource_page_id = #{resourcePageId}
and qrcode_show_type = 2
and serve_type = 'OFFICIAL_ACCOUNT'
limit 1
</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