Commit bf67e2df by 裴大威

Merge branch 'zyj-fixbug-applet' into 'master'

接口优化/book/v1.0/appletHome/listUserBookcaseByWechatUserId

See merge request rays/pcloud-book!617
parents 2636eedf 7e64b7af
...@@ -15,6 +15,7 @@ import com.pcloud.common.page.PageBeanNew; ...@@ -15,6 +15,7 @@ import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam; import com.pcloud.common.page.PageParam;
import com.pcloud.common.utils.DateUtils; import com.pcloud.common.utils.DateUtils;
import com.pcloud.common.utils.ListUtils; import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import com.pcloud.common.utils.string.StringUtil; import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto; import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
...@@ -48,10 +49,27 @@ public class AppletUserBookcaseBizImpl implements AppletUserBookcaseBiz { ...@@ -48,10 +49,27 @@ public class AppletUserBookcaseBizImpl implements AppletUserBookcaseBiz {
@Override @Override
public void addUserBook(AppletUserBookcase appletUserBookcase) { public void addUserBook(AppletUserBookcase appletUserBookcase) {
appletUserBookcaseDao.insert(appletUserBookcase); appletUserBookcaseDao.insert(appletUserBookcase);
Long wechatUserId = appletUserBookcase.getWechatUserId();
String key = "BOOK:APPLET:listByWechatUserId"+wechatUserId;
String countKey = "BOOK:APPLET:listByWechatUserId-count"+wechatUserId;
JedisClusterUtils.del(key);
JedisClusterUtils.del(countKey);
} }
@Override @Override
public PageBeanNew<AppletUserBookcaseDTO> listByWechatUserId(Long wechatUserId, Integer currentPage, Integer numPerPage) { public PageBeanNew<AppletUserBookcaseDTO> listByWechatUserId(Long wechatUserId, Integer currentPage, Integer numPerPage) {
String key = "BOOK:APPLET:listByWechatUserId"+wechatUserId;
String field = currentPage+"-"+numPerPage;
String countKey = "BOOK:APPLET:listByWechatUserId-count"+wechatUserId;
List<AppletUserBookcaseDTO> bookcaseDTOS = JedisClusterUtils.hgetJson2List(key,field,AppletUserBookcaseDTO.class);
Integer count =0;
String countStr = JedisClusterUtils.get(countKey);
if (!StringUtil.isEmpty(countStr)){
count = Integer.valueOf(countStr);
}
if (!ListUtils.isEmpty(bookcaseDTOS) && count>0){
return new PageBeanNew<>(currentPage,numPerPage,count,bookcaseDTOS);
}
Map<String,Object> map = new HashMap<>(); Map<String,Object> map = new HashMap<>();
map.put("wechatUserId",wechatUserId); map.put("wechatUserId",wechatUserId);
PageBeanNew<AppletUserBookcaseDTO> pageBeanNew = appletUserBookcaseDao.listPageNew( PageBeanNew<AppletUserBookcaseDTO> pageBeanNew = appletUserBookcaseDao.listPageNew(
...@@ -59,7 +77,9 @@ public class AppletUserBookcaseBizImpl implements AppletUserBookcaseBiz { ...@@ -59,7 +77,9 @@ public class AppletUserBookcaseBizImpl implements AppletUserBookcaseBiz {
if (null == pageBeanNew || ListUtils.isEmpty(pageBeanNew.getRecordList())){ if (null == pageBeanNew || ListUtils.isEmpty(pageBeanNew.getRecordList())){
return new PageBeanNew<>(currentPage,numPerPage,0,new ArrayList<>()); return new PageBeanNew<>(currentPage,numPerPage,0,new ArrayList<>());
} }
fillTempletNameAgentName(pageBeanNew.getRecordList()); fillTempletName(pageBeanNew.getRecordList());
JedisClusterUtils.hset2Json(key,field,pageBeanNew.getRecordList());
JedisClusterUtils.set(countKey,String.valueOf(pageBeanNew.getTotalCount()));
return pageBeanNew; return pageBeanNew;
} }
...@@ -108,9 +128,7 @@ public class AppletUserBookcaseBizImpl implements AppletUserBookcaseBiz { ...@@ -108,9 +128,7 @@ public class AppletUserBookcaseBizImpl implements AppletUserBookcaseBiz {
return map; return map;
} }
private void fillTempletNameAgentName(List<AppletUserBookcaseDTO> recordList) { private void fillTempletName(List<AppletUserBookcaseDTO> recordList) {
List<Long> adviserIds=recordList.stream().filter(s->s.getAdviserId()!=null).map(AppletUserBookcaseDTO::getAdviserId).distinct().collect(Collectors.toList());
Map<Long, AdviserBaseInfoDto> infoDtoMap = adviserConsr.getAdviserId2AdviserInfoDtoMap(adviserIds);
List<Long> templetIds = new ArrayList<>(); List<Long> templetIds = new ArrayList<>();
recordList.forEach(dto -> { recordList.forEach(dto -> {
if (Objects.nonNull(dto.getTempletId())) { if (Objects.nonNull(dto.getTempletId())) {
...@@ -132,13 +150,6 @@ public class AppletUserBookcaseBizImpl implements AppletUserBookcaseBiz { ...@@ -132,13 +150,6 @@ public class AppletUserBookcaseBizImpl implements AppletUserBookcaseBiz {
AssistTempletDTO templetDTO = assistTempletDTOMap.get(templetId); AssistTempletDTO templetDTO = assistTempletDTOMap.get(templetId);
bookcaseDTO.setTempletName(Optional.ofNullable(templetDTO).map(AssistTempletDTO::getTempletName).orElse(null)); bookcaseDTO.setTempletName(Optional.ofNullable(templetDTO).map(AssistTempletDTO::getTempletName).orElse(null));
} }
Long adviserId=bookcaseDTO.getAdviserId();
if (!MapUtils.isEmpty(infoDtoMap) && infoDtoMap.containsKey(adviserId)){
AdviserBaseInfoDto infoDto = infoDtoMap.get(adviserId);
if (infoDto!=null){
bookcaseDTO.setAgentName(infoDto.getAgentName());
}
}
} }
} }
......
...@@ -137,8 +137,9 @@ ...@@ -137,8 +137,9 @@
FROM FROM
applet_booklist_config c applet_booklist_config c
LEFT JOIN applet_booklist ap ON c.booklist_id=ap.id LEFT JOIN applet_booklist ap ON c.booklist_id=ap.id
LEFT JOIN BOOK_ADVISER A ON c.book_id=a.BOOK_ID AND c.adviser_id=a.ADVISER_ID AND c.channel_id=a.CHANNEL_ID LEFT JOIN BOOK_ADVISER A ON c.book_id=a.BOOK_ID AND c.adviser_id=a.ADVISER_ID
INNER JOIN BOOK B ON A.BOOK_ID = B.BOOK_ID AND A.IS_DELETE = 0 AND B.IS_DELETE = 0 AND c.channel_id=a.CHANNEL_ID AND A.IS_DELETE = 0
INNER JOIN BOOK B ON c.book_id = B.BOOK_ID AND B.IS_DELETE = 0
WHERE WHERE
c.booklist_id=#{booklistId} c.booklist_id=#{booklistId}
ORDER BY c.seq ASC ORDER BY c.seq ASC
......
...@@ -36,8 +36,9 @@ ...@@ -36,8 +36,9 @@
a.SECOND_TEMPLET_ID secondTempletId, a.SECOND_TEMPLET_ID secondTempletId,
a.TEMPLET_ID templetId a.TEMPLET_ID templetId
FROM applet_user_bookcase c FROM applet_user_bookcase c
LEFT JOIN BOOK_ADVISER a ON c.book_id=a.BOOK_ID AND c.adviser_id=a.ADVISER_ID AND c.channel_id=a.CHANNEL_ID LEFT JOIN BOOK_ADVISER a ON c.book_id=a.BOOK_ID AND c.adviser_id=a.ADVISER_ID
INNER JOIN BOOK b ON c.BOOK_ID = b.BOOK_ID AND a.IS_DELETE = 0 AND b.IS_DELETE = 0 AND c.channel_id=a.CHANNEL_ID AND a.IS_DELETE = 0
INNER JOIN BOOK b ON c.BOOK_ID = b.BOOK_ID AND b.IS_DELETE = 0
WHERE c.wechat_user_id=#{wechatUserId} WHERE c.wechat_user_id=#{wechatUserId}
GROUP BY c.book_id,c.adviser_id,c.channel_id GROUP BY c.book_id,c.adviser_id,c.channel_id
ORDER BY c.create_time DESC ORDER BY c.create_time DESC
......
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