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; ...@@ -31,6 +31,7 @@ import com.pcloud.book.book.vo.PcloudAdviserBookVO;
import com.pcloud.book.book.vo.QrCodeVO; import com.pcloud.book.book.vo.QrCodeVO;
import com.pcloud.book.group.dto.BookAppletSceneDTO; import com.pcloud.book.group.dto.BookAppletSceneDTO;
import com.pcloud.book.group.dto.BookServeDTO; import com.pcloud.book.group.dto.BookServeDTO;
import com.pcloud.channelcenter.qrcode.vo.BookQrcodeVO;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
...@@ -390,4 +391,9 @@ public interface BookAdviserBiz { ...@@ -390,4 +391,9 @@ public interface BookAdviserBiz {
* 小睿书下面的书刊权益数量 * 小睿书下面的书刊权益数量
*/ */
Map<Long,Integer> rightsCountByBookIds(List<Long> bookIds); 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; ...@@ -24,7 +24,7 @@ import com.pcloud.book.book.vo.AgentBookStatsDetailVO;
import com.pcloud.book.book.vo.BookServeInfo; import com.pcloud.book.book.vo.BookServeInfo;
import com.pcloud.book.book.vo.PcloudAdviserBookVO; import com.pcloud.book.book.vo.PcloudAdviserBookVO;
import com.pcloud.book.book.vo.QrCodeVO; 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.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
...@@ -49,7 +49,6 @@ import org.springframework.web.bind.annotation.RequestParam; ...@@ -49,7 +49,6 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
...@@ -408,4 +407,18 @@ public class BookAdviserFacadeImpl implements BookAdviserFacade { ...@@ -408,4 +407,18 @@ public class BookAdviserFacadeImpl implements BookAdviserFacade {
public ResponseDto<Map<String, BookStatisticsResultDto>> getBookRightsCount(@RequestBody List<BookRequestVO> requestVOS) { public ResponseDto<Map<String, BookStatisticsResultDto>> getBookRightsCount(@RequestBody List<BookRequestVO> requestVOS) {
return new ResponseDto<>(bookAdviserBiz.getBookRightsCount(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 @@ ...@@ -3,15 +3,19 @@
*/ */
package com.pcloud.book.consumer.channel; 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.book.base.exception.BookBizException;
import com.pcloud.channelcenter.qrcode.dto.BookDto; import com.pcloud.channelcenter.qrcode.dto.BookDto;
import com.pcloud.channelcenter.qrcode.dto.GroupQrcodeVO; import com.pcloud.channelcenter.qrcode.dto.GroupQrcodeVO;
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.service.QrcodeLocationAssocService;
import com.pcloud.channelcenter.qrcode.service.QrcodeSceneService; import com.pcloud.channelcenter.qrcode.service.QrcodeSceneService;
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;
import com.pcloud.channelcenter.qrcode.vo.BookQrcodeVO;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto; import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
import com.pcloud.channelcenter.wechat.dto.AdviserBookResourceNumReqDTO; import com.pcloud.channelcenter.wechat.dto.AdviserBookResourceNumReqDTO;
import com.pcloud.channelcenter.wechat.dto.AdviserBookResourceNumRespDTO; import com.pcloud.channelcenter.wechat.dto.AdviserBookResourceNumRespDTO;
...@@ -40,6 +44,7 @@ import java.util.ArrayList; ...@@ -40,6 +44,7 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional;
/** /**
* @描述:二维码中间件 * @描述:二维码中间件
...@@ -60,6 +65,8 @@ public class QrcodeSceneConsr { ...@@ -60,6 +65,8 @@ public class QrcodeSceneConsr {
private MessageService messageService; private MessageService messageService;
@Autowired @Autowired
private AccountSettingService accountSettingService; private AccountSettingService accountSettingService;
@Autowired
private QrcodeLocationAssocService qrcodeLocationAssocService;
...@@ -491,4 +498,33 @@ public class QrcodeSceneConsr { ...@@ -491,4 +498,33 @@ public class QrcodeSceneConsr {
} }
return list; 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 @@ ...@@ -3,6 +3,7 @@
*/ */
package com.pcloud.book.consumer.user; package com.pcloud.book.consumer.user;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.pcloud.channelcenter.base.exceptions.ChannelBizException; import com.pcloud.channelcenter.base.exceptions.ChannelBizException;
import com.pcloud.channelcenter.qrcode.dto.AdviserQrcodeSceneDTO; import com.pcloud.channelcenter.qrcode.dto.AdviserQrcodeSceneDTO;
...@@ -11,6 +12,8 @@ import com.pcloud.channelcenter.qrcode.dto.QrcodeMessageDTO; ...@@ -11,6 +12,8 @@ import com.pcloud.channelcenter.qrcode.dto.QrcodeMessageDTO;
import com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto; import com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto;
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.vo.BookQrcodeVO;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
import com.pcloud.channelcenter.qrcode.vo.ServeIdTypeVO; import com.pcloud.channelcenter.qrcode.vo.ServeIdTypeVO;
import com.pcloud.channelcenter.wechat.entity.AccountSetting; import com.pcloud.channelcenter.wechat.entity.AccountSetting;
import com.pcloud.channelcenter.wechat.service.AccountSettingService; import com.pcloud.channelcenter.wechat.service.AccountSettingService;
...@@ -289,6 +292,26 @@ public class ChannelConsr { ...@@ -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和资源类型 * 查询图书下配置的资源ID和资源类型
*/ */
......
...@@ -880,4 +880,16 @@ public class WechatGroupConsr { ...@@ -880,4 +880,16 @@ public class WechatGroupConsr {
return new ArrayList<>(); 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; ...@@ -10,6 +10,7 @@ import com.pcloud.book.group.dto.TopAgentBookGroupDTO;
import com.pcloud.book.group.entity.BookGroup; import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.book.group.entity.QrChangeRecord; import com.pcloud.book.group.entity.QrChangeRecord;
import com.pcloud.book.group.vo.BookGroupAnalysisVO; import com.pcloud.book.group.vo.BookGroupAnalysisVO;
import com.pcloud.channelcenter.qrcode.vo.BookQrcodeVO;
import com.pcloud.book.rightsSetting.dto.ServeIdTypeDTO; import com.pcloud.book.rightsSetting.dto.ServeIdTypeDTO;
import com.pcloud.common.core.dao.BaseDao; import com.pcloud.common.core.dao.BaseDao;
...@@ -388,5 +389,9 @@ public interface BookGroupDao extends BaseDao<BookGroup> { ...@@ -388,5 +389,9 @@ public interface BookGroupDao extends BaseDao<BookGroup> {
List<BookGroupDTO> getDTOByBookIdList(Long bookId, Long channelId, Long adviserId); 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); List<ServeIdTypeDTO> listServeIdAndType4Book(Long bookId, Long channelId, Long adviserId);
} }
package com.pcloud.book.group.dao.impl; 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.dao.BookGroupDao;
import com.pcloud.book.group.dto.AgentStatisticsInfoDTO; import com.pcloud.book.group.dto.AgentStatisticsInfoDTO;
import com.pcloud.book.group.dto.BookGroupDTO; import com.pcloud.book.group.dto.BookGroupDTO;
...@@ -11,6 +12,7 @@ import com.pcloud.book.group.dto.TopAgentBookGroupDTO; ...@@ -11,6 +12,7 @@ import com.pcloud.book.group.dto.TopAgentBookGroupDTO;
import com.pcloud.book.group.entity.BookGroup; import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.book.group.entity.QrChangeRecord; import com.pcloud.book.group.entity.QrChangeRecord;
import com.pcloud.book.group.vo.BookGroupAnalysisVO; import com.pcloud.book.group.vo.BookGroupAnalysisVO;
import com.pcloud.channelcenter.qrcode.vo.BookQrcodeVO;
import com.pcloud.book.rightsSetting.dto.ServeIdTypeDTO; import com.pcloud.book.rightsSetting.dto.ServeIdTypeDTO;
import com.pcloud.common.core.dao.BaseDaoImpl; import com.pcloud.common.core.dao.BaseDaoImpl;
...@@ -525,6 +527,21 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou ...@@ -525,6 +527,21 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou
} }
@Override @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) { public List<ServeIdTypeDTO> listServeIdAndType4Book(Long bookId, Long channelId, Long adviserId) {
Map<String, Object> paramMap = new HashMap<>(); Map<String, Object> paramMap = new HashMap<>();
paramMap.put("bookId", bookId); paramMap.put("bookId", bookId);
......
...@@ -1298,6 +1298,64 @@ ...@@ -1298,6 +1298,64 @@
</foreach> </foreach>
</select> </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 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 select serve_id serveId, serve_type serveType, type_code typeCode, a.create_time createTime
from book_group_serve a from book_group_serve a
......
...@@ -138,6 +138,7 @@ ...@@ -138,6 +138,7 @@
select t.serve_id serveId, select t.serve_id serveId,
t.book_group_id bookGroupId, t.book_group_id bookGroupId,
t.serve_type serveType, t.serve_type serveType,
t.type_code typeCode,
t.serve_url serveUrl t.serve_url serveUrl
from book_group_serve t from book_group_serve t
where book_group_id in 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