Commit 303a2a10 by zhuyajie

接口优化

parent e1b475e8
......@@ -1798,18 +1798,15 @@ public class BookBizImpl implements BookBiz {
return new PageBeanNew<>(currentPage, numPerPage, 0, new ArrayList<>());
}
List<AdviserBookInfoDTO> list = pageBean.getRecordList();
List<Long> agentIds = list.stream().filter(s -> s.getAgentId() != null).map(AdviserBookInfoDTO::getAgentId).distinct().collect(Collectors.toList());
List<Long> adviserIds = list.stream().filter(s -> s.getAdviserId() != null).map(AdviserBookInfoDTO::getAdviserId).distinct().collect(Collectors.toList());
Map<Long, String> adviserMap = adviserConsr.getNames(adviserIds);
Map<Long, String> agentMap = agentConsr.getNames(agentIds);
Map<Long, AdviserBaseInfoDto> adviserMap = adviserConsr.getAdviserId2AdviserInfoDtoMap(adviserIds);
for (AdviserBookInfoDTO dto : list) {
if (!MapUtils.isEmpty(adviserMap) && null != dto.getAdviserId() && adviserMap.containsKey(dto.getAdviserId())) {
dto.setAdviserName(adviserMap.get(dto.getAdviserId()));
}
if (!MapUtils.isEmpty(agentMap) && null != dto.getAgentId() && agentMap.containsKey(dto.getAgentId())) {
dto.setAgentName(agentMap.get(dto.getAgentId()));
AdviserBaseInfoDto adviserBaseInfoDto = adviserMap.get(dto.getAdviserId());
if (null != adviserBaseInfoDto){
dto.setAdviserName(adviserBaseInfoDto.getPartyName());
dto.setAgentName(adviserBaseInfoDto.getAgentName());
}
}
}
return pageBean;
......
......@@ -4381,13 +4381,14 @@ public class BookGroupBizImpl implements BookGroupBiz {
map.put("bookIds", userSelectParamDTO.getBookIds());
map.put("robotId", userSelectParamDTO.getRobotId());
map.put("invitedFilter", userSelectParamDTO.getInvitedFilter());
List<UserBookInfoVO> countlist = bookGroupCipherUserDao.listUser4ReadingActivity(map);
List<Long> countlist = bookGroupCipherUserDao.listId4ReadingActivity(map);
if (ListUtils.isEmpty(countlist)) {
return new PageBeanNew<>(currentPage, numPerPage, 0, new ArrayList<>());
}
map.put("pageNum", currentPage * numPerPage);
map.put("numPerPage", numPerPage);
List<UserBookInfoVO> list = bookGroupCipherUserDao.listUser4ReadingActivity(map);
List<Long> idList = bookGroupCipherUserDao.listId4ReadingActivity(map);
List<UserBookInfoVO> list = bookGroupCipherUserDao.listUserByIds(idList);
//填充用户信息、扫码书刊信息,小号信息
groupSet.setUserBookInfo4ReadingActivity(list);
return new PageBeanNew<>(currentPage, numPerPage, countlist.size(), list);
......
......@@ -183,6 +183,20 @@ public interface BookGroupCipherUserDao extends BaseDao<BookGroupCipherUser> {
List<UserBookInfoVO> listUser4ReadingActivity(Map<String, Object> map);
/**
* 共读活动好友id查询
* @param map
* @return
*/
List<Long> listId4ReadingActivity(Map<String, Object> map);
/**
* 根据id查好友
* @param idList
* @return
*/
List<UserBookInfoVO> listUserByIds(List<Long> idList);
/**
* 扫码书刊及关联的新标签
* @param wxUserId
* @param altId
......
......@@ -202,6 +202,18 @@ public class BookGroupCipherUserDaoImpl extends BaseDaoImpl<BookGroupCipherUser>
}
@Override
public List<Long> listId4ReadingActivity(Map<String, Object> map){
return getSessionTemplate().selectList(getStatement("listId4ReadingActivity"), map);
}
@Override
public List<UserBookInfoVO> listUserByIds(List<Long> idList){
Map<String,Object> map = new HashMap<>();
map.put("idList", idList);
return getSessionTemplate().selectList(getStatement("listUserByIds"), map);
}
@Override
public List<UserBookInfoItemVO> getScanBookInfoByUserNew(String wxUserId, String altId) {
Map<String, Object> map = new HashMap<>();
map.put("wxUserId", wxUserId);
......
......@@ -723,7 +723,11 @@ public class GroupSet {
List<String> wxUserIds = list.stream().filter(s -> s.getWxUserId() != null).map(UserBookInfoVO::getWxUserId).distinct().collect(Collectors.toList());
Map<String, GroupUserDTO> userDTOMap = wechatGroupConsr.mapWxUserInfoByWxIdList(wxUserIds);
List<Long> bookLabelIds = new ArrayList<>();
List<String> altIdList = new ArrayList<>();
List<String> altIdList = list.stream().filter(s -> s.getAltId() != null).map(UserBookInfoVO::getAltId).distinct().collect(Collectors.toList());
Map<String, GroupUserDTO> robotDTOMap =new HashMap<>();
if (!ListUtils.isEmpty(altIdList)){
robotDTOMap = wechatGroupConsr.mapRobotInfoByIdList(altIdList);
}
for (UserBookInfoVO userBookInfoVO : list) {
//用户信息
if (!MapUtils.isEmpty(userDTOMap) && userDTOMap.containsKey(userBookInfoVO.getWxUserId())) {
......@@ -732,6 +736,18 @@ public class GroupSet {
userBookInfoVO.setNickName(userDTO.getNickName());
userBookInfoVO.setSex(userDTO.getSex());
}
//小号信息
if (!MapUtils.isEmpty(robotDTOMap) && userDTOMap.containsKey(userBookInfoVO.getWxUserId())) {
GroupUserDTO groupUserDTO = robotDTOMap.get(userBookInfoVO.getAltId());
RobotBaseInfoVO robotBaseInfoVO = new RobotBaseInfoVO();
robotBaseInfoVO.setRobotId(userBookInfoVO.getAltId());
robotBaseInfoVO.setNickName(groupUserDTO.getNickName());
robotBaseInfoVO.setHeadPic(groupUserDTO.getHeadPic());
robotBaseInfoVO.setSex(groupUserDTO.getSex());
List<RobotBaseInfoVO> robotBaseInfoVOS = new ArrayList<>();
robotBaseInfoVOS.add(robotBaseInfoVO);
userBookInfoVO.setRobotBaseInfoVOS(robotBaseInfoVOS);
}
//扫码书刊
List<UserBookInfoItemVO> bookList = bookGroupCipherUserDao.getScanBookInfoByUserNew(userBookInfoVO.getWxUserId(), userBookInfoVO.getAltId());
userBookInfoVO.setBookInfoItemVOS(bookList);
......@@ -751,23 +767,12 @@ public class GroupSet {
if (!ListUtils.isEmpty(areaLabelIds)) {
bookLabelIds.addAll(areaLabelIds);
}
//小号id
List<RobotBaseInfoVO> robotBaseInfoVOS = new ArrayList<>();
RobotBaseInfoVO robotBaseInfoVO = new RobotBaseInfoVO();
robotBaseInfoVO.setRobotId(userBookInfoVO.getAltId());
robotBaseInfoVOS.add(robotBaseInfoVO);
userBookInfoVO.setRobotBaseInfoVOS(robotBaseInfoVOS);
altIdList.addAll(Arrays.asList(userBookInfoVO.getAltId()));
}
//标签,小号信息
//标签
Map<Long, BookLabel> bookLabelMap =new HashMap<>();
if (!ListUtils.isEmpty(bookLabelIds)){
bookLabelMap = bookLabelDao.getMapByIds(bookLabelIds);
}
Map<String, GroupUserDTO> groupUserDTOMap =new HashMap<>();
if (!ListUtils.isEmpty(altIdList)){
groupUserDTOMap = wechatGroupConsr.mapRobotInfoByIdList(altIdList);
}
for (UserBookInfoVO userBookInfoVO: list){
if (!MapUtils.isEmpty(bookLabelMap)){
for (UserBookInfoItemVO bookInfoItemVO : userBookInfoVO.getBookInfoItemVOS()) {
......@@ -785,14 +790,6 @@ public class GroupSet {
}
}
}
for (RobotBaseInfoVO robotBaseInfoVO : userBookInfoVO.getRobotBaseInfoVOS()) {
if (!MapUtils.isEmpty(groupUserDTOMap) && groupUserDTOMap.containsKey(robotBaseInfoVO.getRobotId())) {
GroupUserDTO groupUserDTO = groupUserDTOMap.get(robotBaseInfoVO.getRobotId());
robotBaseInfoVO.setNickName(groupUserDTO.getNickName());
robotBaseInfoVO.setHeadPic(groupUserDTO.getHeadPic());
robotBaseInfoVO.setSex(groupUserDTO.getSex());
}
}
}
}
......
......@@ -1846,14 +1846,13 @@
g.id bookGroupId
FROM
book_group g
LEFT JOIN book_adviser a ON g.book_id = a.BOOK_ID
INNER JOIN book_adviser a ON g.book_id = a.BOOK_ID
AND a.IS_DELETE = 0
AND g.channel_id = a.CHANNEL_ID
AND g.create_user = a.ADVISER_ID
LEFT JOIN book b ON b.BOOK_ID = a.BOOK_ID
INNER JOIN book b ON b.BOOK_ID = a.BOOK_ID AND b.IS_DELETE = 0
WHERE
b.IS_DELETE = 0
AND a.IS_DELETE = 0
AND g.is_delete = 0
g.is_delete = 0
AND g.join_group_type in
<foreach collection="joinGroupTypes" item="item" open="(" separator="," close=")">
${item}
......
......@@ -593,6 +593,58 @@
</if>
</select>
<select id="listId4ReadingActivity" parameterType="map" resultType="Long">
SELECT
MAX(u.id) uid
FROM
book_group_cipher_user u
LEFT JOIN book_group g ON u.book_group_id = g.id
WHERE
g.join_group_type = 3
<if test="bookIds != null and bookIds.size>0">
AND g.book_id IN
<foreach collection="bookIds" open="(" close=")" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="wxUserIds != null and wxUserIds.size>0">
AND u.wx_user_id IN
<foreach collection="wxUserIds" open="(" close=")" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="robotId != null">
AND u.alt_id = #{robotId}
</if>
<if test="invitedFilter != null and invitedFilter == 1">
AND u.wx_user_id NOT IN
(SELECT DISTINCT wx_user_id FROM reading_user)
</if>
GROUP BY
u.wx_user_id
ORDER BY
u.create_time DESC,
MAX(u.id) DESC
<if test="pageNum>=0 and numPerPage>0">
LIMIT #{pageNum}, #{numPerPage}
</if>
</select>
<select id="listUserByIds" parameterType="map" resultType="com.pcloud.book.group.vo.UserBookInfoVO">
SELECT
s.wx_user_id wxUserId,
s.alt_id altId
FROM
book_group_cipher_user s
WHERE s.id IN
<foreach collection="idList" open="(" close=")" item="item" separator=",">
#{item}
</foreach>
ORDER BY
s.create_time DESC,
s.id DESC
</select>
<select id="getScanBookInfoByUserNew" parameterType="map" resultType="com.pcloud.book.group.vo.UserBookInfoItemVO">
SELECT
u.book_group_id bookGroupId,
......@@ -603,15 +655,15 @@
a.AREA_LABEL_ID areaLabelId
FROM
book_group_cipher_user u
LEFT JOIN book_group g ON u.book_group_id = g.id
LEFT JOIN book b ON g.book_id = b.BOOK_ID
LEFT JOIN book_adviser a ON g.book_id = a.BOOK_ID
INNER JOIN book_group g ON u.book_group_id = g.id AND g.is_delete=0
INNER JOIN book_adviser a ON g.book_id = a.BOOK_ID
AND a.IS_DELETE=0
AND g.create_user = a.ADVISER_ID
AND g.channel_id = a.CHANNEL_ID
INNER JOIN book b ON g.book_id = b.BOOK_ID AND b.IS_DELETE=0
WHERE
u.wx_user_id = #{wxUserId}
AND u.alt_id = #{altId}
AND a.GRA_LABEL_ID >0
GROUP BY
u.book_group_id
ORDER BY
......
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