Commit 8dfa375c by 田超

Merge branch 'feature/listQrcode' into 'master'

feat: [1004546] 编辑端展示图书下所有二维码

See merge request rays/pcloud-book!1257
parents 8fcc5149 3336bc5f
......@@ -31,6 +31,7 @@ import com.pcloud.book.book.vo.PcloudAdviserBookVO;
import com.pcloud.book.book.vo.QrCodeVO;
import com.pcloud.book.group.dto.BookAppletSceneDTO;
import com.pcloud.book.group.dto.BookServeDTO;
import com.pcloud.channelcenter.qrcode.vo.BookQrcodeVO;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew;
......@@ -390,4 +391,9 @@ public interface BookAdviserBiz {
* 小睿书下面的书刊权益数量
*/
Map<Long,Integer> rightsCountByBookIds(List<Long> bookIds);
/**
* 编辑端 - 分页获取图书下二维码列表
*/
PageBeanNew<BookQrcodeVO> qrList4AdviserBookNew(Long bookId, Long channelId, Long adviserId, String sceneName, Integer currentPage, Integer numPerPage);
}
......@@ -24,7 +24,7 @@ import com.pcloud.book.book.vo.AgentBookStatsDetailVO;
import com.pcloud.book.book.vo.BookServeInfo;
import com.pcloud.book.book.vo.PcloudAdviserBookVO;
import com.pcloud.book.book.vo.QrCodeVO;
import com.pcloud.book.book.vo.request.UpdateBookRobotProcessDto;
import com.pcloud.channelcenter.qrcode.vo.BookQrcodeVO;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew;
......@@ -49,7 +49,6 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
......@@ -408,4 +407,18 @@ public class BookAdviserFacadeImpl implements BookAdviserFacade {
public ResponseDto<Map<String, BookStatisticsResultDto>> getBookRightsCount(@RequestBody List<BookRequestVO> requestVOS) {
return new ResponseDto<>(bookAdviserBiz.getBookRightsCount(requestVOS));
}
@ApiOperation("获取图书下二维码列表")
@GetMapping("qrList4AdviserBookNew")
public ResponseDto<PageBeanNew<BookQrcodeVO>> qrList4AdviserBookNew(
@RequestHeader("token") String token,
@RequestParam("currentPage") Integer currentPage,
@RequestParam("numPerPage") Integer numPerPage,
@RequestParam(value = "bookId", required = false) Long bookId,
@RequestParam(value = "channelId", required = false) Long channelId,
@RequestParam(value = "sceneName", required = false) String sceneName) {
ParamChecker.checkPageParamIsAbsent(currentPage, numPerPage, "分页参数错误!");
Long adviserId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
return new ResponseDto<>(bookAdviserBiz.qrList4AdviserBookNew(bookId,channelId,adviserId,sceneName,currentPage,numPerPage));
}
}
......@@ -3,15 +3,19 @@
*/
package com.pcloud.book.consumer.channel;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.channelcenter.qrcode.dto.BookDto;
import com.pcloud.channelcenter.qrcode.dto.GroupQrcodeVO;
import com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto;
import com.pcloud.channelcenter.qrcode.entity.QrcodeScene;
import com.pcloud.channelcenter.qrcode.service.QrcodeLocationAssocService;
import com.pcloud.channelcenter.qrcode.service.QrcodeSceneService;
import com.pcloud.channelcenter.qrcode.vo.BookAssocLastQrAskVO;
import com.pcloud.channelcenter.qrcode.vo.BookAssocLastQrVO;
import com.pcloud.channelcenter.qrcode.vo.BookAssocQRcountRequestVO;
import com.pcloud.channelcenter.qrcode.vo.BookQrcodeVO;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
import com.pcloud.channelcenter.wechat.dto.AdviserBookResourceNumReqDTO;
import com.pcloud.channelcenter.wechat.dto.AdviserBookResourceNumRespDTO;
......@@ -40,6 +44,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
/**
* @描述:二维码中间件
......@@ -60,6 +65,8 @@ public class QrcodeSceneConsr {
private MessageService messageService;
@Autowired
private AccountSettingService accountSettingService;
@Autowired
private QrcodeLocationAssocService qrcodeLocationAssocService;
......@@ -491,4 +498,33 @@ public class QrcodeSceneConsr {
}
return list;
}
/**
* 模糊匹配印码位置
*/
public List<Long> getLocationIds4Name(String name) {
if (StrUtil.isBlank(name)) {
return new ArrayList<>();
}
try {
return Optional.ofNullable(ResponseHandleUtil.parseList(qrcodeLocationAssocService.getLocationIds4Name(name), Long.class)).orElse(new ArrayList<>());
} catch (Exception e) {
LOGGER.warn("【模糊匹配印码位置】 请求失败,<ERROR>.[getLocationIds4Name]:{}", e.getMessage(), e);
return new ArrayList<>();
}
}
/**
* 渠道查询图书二维码
*/
public List<BookQrcodeVO> qrList4AdviserBookNew(Long bookId, Long channelId, Long adviserId, String sceneName) {
if (ObjectUtil.hasEmpty(bookId, channelId, adviserId)) return new ArrayList<>();
try {
return Optional.ofNullable(ResponseHandleUtil.parseList(qrcodeSceneService.qrList4AdviserBookNew(bookId, channelId, adviserId, sceneName), BookQrcodeVO.class)).orElse(new ArrayList<>());
} catch (Exception e) {
LOGGER.warn("【渠道查询图书二维码】 请求失败,<ERROR>.[qrList4AdviserBookNew]:{}", e.getMessage(), e);
return new ArrayList<>();
}
}
}
......@@ -3,6 +3,7 @@
*/
package com.pcloud.book.consumer.user;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.pcloud.channelcenter.base.exceptions.ChannelBizException;
import com.pcloud.channelcenter.qrcode.dto.AdviserQrcodeSceneDTO;
......@@ -11,6 +12,8 @@ import com.pcloud.channelcenter.qrcode.dto.QrcodeMessageDTO;
import com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto;
import com.pcloud.channelcenter.qrcode.service.QrcodeLocationAssocService;
import com.pcloud.channelcenter.qrcode.service.QrcodeSceneService;
import com.pcloud.channelcenter.qrcode.vo.BookQrcodeVO;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
import com.pcloud.channelcenter.qrcode.vo.ServeIdTypeVO;
import com.pcloud.channelcenter.wechat.entity.AccountSetting;
import com.pcloud.channelcenter.wechat.service.AccountSettingService;
......@@ -289,6 +292,26 @@ public class ChannelConsr {
}
}
public List<BookQrcodeVO> getQrList4SceneIds(List<Long> qrcodeSceneIds) {
if (CollUtil.isEmpty(qrcodeSceneIds)) return new ArrayList<>();
try {
return ResponseHandleUtil.parseList(qrcodeSceneService.getQrList4SceneIds(qrcodeSceneIds), BookQrcodeVO.class);
} catch (Exception e) {
LOGGER.warn("获取二维码信息失败!ERR:" + e.getMessage(), e);
return new ArrayList<>();
}
}
public Map<Long, AccountSettingDto> listWechat(List<Long> channelIds){
if (CollUtil.isEmpty(channelIds)) return new HashMap<>();
try {
return ResponseHandleUtil.parseMap(accountSettingService.listWechat(channelIds), Long.class, AccountSettingDto.class);
} catch (BizException e) {
LOGGER.warn("根据渠道id获取微信信息失败!ERR:" + e.getMessage(), e);
return new HashMap<>();
}
}
/**
* 查询图书下配置的资源ID和资源类型
*/
......
......@@ -880,4 +880,16 @@ public class WechatGroupConsr {
return new ArrayList<>();
}
}
public Map<Long, GroupUserCountDTO> getScanCountByGroup(List<Long> bookGroupIds) {
if (CollUtil.isEmpty(bookGroupIds)) return new HashMap<>();
try {
return ResponseHandleUtil.parseMap(groupMemberService.getScanCountByGroup(bookGroupIds, null), Long.class, GroupUserCountDTO.class);
} catch (Exception e) {
log.warn("[getScanCountByGroup] 批量获取社群码扫码人数/次数 失败" + e.getMessage(), e);
return new HashMap<>();
}
}
}
......@@ -10,6 +10,7 @@ import com.pcloud.book.group.dto.TopAgentBookGroupDTO;
import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.book.group.entity.QrChangeRecord;
import com.pcloud.book.group.vo.BookGroupAnalysisVO;
import com.pcloud.channelcenter.qrcode.vo.BookQrcodeVO;
import com.pcloud.book.rightsSetting.dto.ServeIdTypeDTO;
import com.pcloud.common.core.dao.BaseDao;
......@@ -388,5 +389,9 @@ public interface BookGroupDao extends BaseDao<BookGroup> {
List<BookGroupDTO> getDTOByBookIdList(Long bookId, Long channelId, Long adviserId);
List<BookQrcodeVO> listBookQrcodes(Long bookId, Long channelId, Long adviserId, String sceneName, List<Long> locationIds);
List<BookQrcodeVO> listBookQrcodeVOByIds(List<Long> bookGroupIds);
List<ServeIdTypeDTO> listServeIdAndType4Book(Long bookId, Long channelId, Long adviserId);
}
package com.pcloud.book.group.dao.impl;
import cn.hutool.core.map.MapUtil;
import com.pcloud.book.group.dao.BookGroupDao;
import com.pcloud.book.group.dto.AgentStatisticsInfoDTO;
import com.pcloud.book.group.dto.BookGroupDTO;
......@@ -11,6 +12,7 @@ import com.pcloud.book.group.dto.TopAgentBookGroupDTO;
import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.book.group.entity.QrChangeRecord;
import com.pcloud.book.group.vo.BookGroupAnalysisVO;
import com.pcloud.channelcenter.qrcode.vo.BookQrcodeVO;
import com.pcloud.book.rightsSetting.dto.ServeIdTypeDTO;
import com.pcloud.common.core.dao.BaseDaoImpl;
......@@ -525,6 +527,21 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou
}
@Override
public List<BookQrcodeVO> listBookQrcodes(Long bookId, Long channelId, Long adviserId, String sceneName, List<Long> locationIds) {
Map<String, Object> paramMap = MapUtil.of("bookId", bookId);
paramMap.put("channelId", channelId);
paramMap.put("adviserId", adviserId);
paramMap.put("sceneName", sceneName);
paramMap.put("locationIds", locationIds);
return getSqlSession().selectList(getStatement("listBookQrcodes"), paramMap);
}
@Override
public List<BookQrcodeVO> listBookQrcodeVOByIds(List<Long> bookGroupIds) {
return getSqlSession().selectList(getStatement("listBookQrcodeVOByIds"), MapUtil.of("bookGroupIds", bookGroupIds));
}
@Override
public List<ServeIdTypeDTO> listServeIdAndType4Book(Long bookId, Long channelId, Long adviserId) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("bookId", bookId);
......
......@@ -1298,6 +1298,64 @@
</foreach>
</select>
<select id="listBookQrcodes" resultType="com.pcloud.channelcenter.qrcode.vo.BookQrcodeVO" parameterType="map">
SELECT id sceneId, update_time lastModifiedDate, 'bookGroup' source
FROM book_group
WHERE
book_id = ${bookId}
AND is_delete = 0
AND create_user = ${adviserId}
AND channel_id = ${channelId}
<if test="sceneName != null">
AND (group_qrcode_name LIKE CONCAT('%', #{sceneName}, '%')
<if test="locationIds != null">
OR group_qrcode_location_id IN <foreach collection="locationIds" open="(" item="it" separator="," close=")"> ${it} </foreach>
</if>
)
</if>
</select>
<resultMap id="BookQrcodeVO" type="com.pcloud.channelcenter.qrcode.vo.BookQrcodeVO">
<id column="id" property="sceneId" jdbcType="BIGINT"/>
<result column="book_id" property="bookId" jdbcType="BIGINT"/>
<result column="channel_id" property="channelPartyId" jdbcType="BIGINT"/>
<result column="group_qrcode_url" property="qrcodeUrl" jdbcType="VARCHAR"/>
<result column="group_qrcode_name" property="qrcodeName" jdbcType="VARCHAR"/>
<result column="pro_label_id" property="proLabelId" jdbcType="BIGINT"/>
<result column="dep_label_id" property="depLabelId" jdbcType="BIGINT"/>
<result column="pur_label_id" property="purLabelId" jdbcType="BIGINT"/>
<result column="create_user" property="adviserId" jdbcType="BIGINT"/>
<result column="create_time" property="createdDate" jdbcType="TIMESTAMP"/>
<result column="update_time" property="lastModifiedDate" jdbcType="TIMESTAMP"/>
<result column="join_group_type" property="joinGroupType" jdbcType="INTEGER"/>
<result column="jump_type" property="jumpType" jdbcType="INTEGER"/>
<result column="source" property="source" jdbcType="VARCHAR"/>
<collection property="qrcodeLocations" ofType="com.pcloud.channelcenter.qrcode.dto.QrcodeLocationDto">
<id column="group_qrcode_location_id" property="locationId" jdbcType="BIGINT"/>
</collection>
</resultMap>
<select id="listBookQrcodeVOByIds" resultMap="BookQrcodeVO" parameterType="map">
SELECT id,
book_id,
channel_id,
group_qrcode_url,
group_qrcode_name,
pro_label_id,
dep_label_id,
pur_label_id,
create_user,
create_time,
update_time,
join_group_type,
jump_type,
group_qrcode_location_id,
'bookGroup' source
FROM book_group
WHERE id IN <foreach collection="bookGroupIds" open="(" item="it" separator="," close=")"> ${it} </foreach>
</select>
<select id="listServeIdAndType4Book" resultType="com.pcloud.book.rightsSetting.dto.ServeIdTypeDTO" parameterType="map">
select serve_id serveId, serve_type serveType, type_code typeCode, a.create_time createTime
from book_group_serve a
......
......@@ -138,6 +138,7 @@
select t.serve_id serveId,
t.book_group_id bookGroupId,
t.serve_type serveType,
t.type_code typeCode,
t.serve_url serveUrl
from book_group_serve t
where book_group_id in
......
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