Commit aef12caa by 朱亚洁

1002985首页社群共读以书刊分类推荐配置

parent 6889c146
......@@ -78,4 +78,12 @@ public interface AppletGroupSearchRecordBiz {
* * @param null
*/
List<Long> getRecordIdListByUser(Long wechatUserId);
/**
* 根据分类查社群-首页
* @author:zhuyajie
* @date:2020/6/8 14:45
* * @param null
*/
PageBeanNew<AppletGroupManageDTO> getGroupList4AppletHome(Long wechatUserId, Integer currentPage, Integer numPerPage);
}
\ No newline at end of file
package com.pcloud.book.applet.biz.impl;
import com.pcloud.book.applet.biz.AppletGroupSearchRecordBiz;
import com.pcloud.book.applet.biz.AppletUserBookcaseBiz;
import com.pcloud.book.applet.contants.AppletConstants;
import com.pcloud.book.applet.dao.AppletGroupSearchRecordDao;
import com.pcloud.book.applet.dao.AppletGroupStatementDao;
import com.pcloud.book.applet.dto.AppletGroupManageDTO;
import com.pcloud.book.applet.dto.AppletGroupSearchRecordDTO;
import com.pcloud.book.applet.dto.AppletGroupStatementDTO;
import com.pcloud.book.applet.dto.AppletUserBookcaseDTO;
import com.pcloud.book.applet.entity.AppletGroupSearchRecord;
import com.pcloud.book.applet.entity.AppletGroupStatement;
import com.pcloud.book.book.dao.BookAdviserDao;
......@@ -19,9 +22,9 @@ import com.pcloud.book.group.dto.GroupQrcodeDTO;
import com.pcloud.book.group.enums.JoinGroupTypeEnum;
import com.pcloud.book.rightsSetting.biz.RightsSettingBiz;
import com.pcloud.book.rightsSetting.entity.BaseTempletClassify;
import com.pcloud.book.skill.biz.PcloudGroupActivityBiz;
import com.pcloud.book.skill.dao.PcloudGroupActivityDao;
import com.pcloud.book.skill.dto.GroupActivity4AppletDTO;
import com.pcloud.common.constant.CacheConstant;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew;
......@@ -77,6 +80,10 @@ public class AppletGroupSearchRecordBizImpl implements AppletGroupSearchRecordBi
private GroupQrcodeDao groupQrcodeDao;
@Autowired
private AppletGroupStatementDao appletGroupStatementDao;
@Autowired
private AppletUserBookcaseBiz appletUserBookcaseBiz;
@Autowired
private PcloudGroupActivityBiz pcloudGroupActivityBiz;
@Override
......@@ -242,4 +249,19 @@ public class AppletGroupSearchRecordBizImpl implements AppletGroupSearchRecordBi
return appletGroupSearchRecordDao.getRecordIdListByUser(wechatUserId);
}
@Override
public PageBeanNew<AppletGroupManageDTO> getGroupList4AppletHome(Long wechatUserId, Integer currentPage, Integer numPerPage) {
//用户最近读的书
PageBeanNew<AppletUserBookcaseDTO> bookcaseDTOPageBeanNew = appletUserBookcaseBiz.listByWechatUserId(wechatUserId, currentPage, 1);
if (null == bookcaseDTOPageBeanNew || ListUtils.isEmpty(bookcaseDTOPageBeanNew.getRecordList())) {
return new PageBeanNew<>(currentPage, numPerPage, 0, new ArrayList<>());
}
AppletUserBookcaseDTO bookcaseDTO = bookcaseDTOPageBeanNew.getRecordList().get(0);
if (null == bookcaseDTO) {
return new PageBeanNew<>(currentPage, numPerPage, 0, new ArrayList<>());
}
PageBeanNew<AppletGroupManageDTO> pageBeanNew = pcloudGroupActivityBiz.getGroupListByBookTemplet(bookcaseDTO.getTempletId(), bookcaseDTO.getSecondTempletId(), bookcaseDTO.getGradeLabelId(), bookcaseDTO.getSubjectLabelId(), currentPage, numPerPage);
return pageBeanNew;
}
}
\ No newline at end of file
......@@ -60,4 +60,13 @@ public class AppletUserBookcaseDTO extends BaseDto {
@ApiModelProperty("isbn")
private String isbn;
@ApiModelProperty("年级标签")
private Long gradeLabelId;
@ApiModelProperty("科目标签")
private Long subjectLabelId;
@ApiModelProperty("上下册标签id")
private Long volLabelId;
}
......@@ -146,4 +146,18 @@ public class AppletGroupManageFacade {
}
return new ResponseDto<>(appletGroupSearchRecordBiz.getRecordIdListByUser(wechatUserId));
}
@ApiOperation("根据书刊分类查社群--小程序首页")
@GetMapping("getGroupList4AppletHome")
public ResponseDto<?> getGroupList4AppletHome(
@CookieValue("userInfo") String userInfo,
@RequestParam("numPerPage") Integer numPerPage,
@RequestParam("currentPage") Integer currentPage)
throws BizException, PermissionException {
Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
if(!NumberUtil.isNumber(wechatUserId)){
throw BookBizException.PARAM_DELETION;
}
return new ResponseDto<>(appletGroupSearchRecordBiz.getGroupList4AppletHome(wechatUserId,currentPage,numPerPage));
}
}
\ No newline at end of file
package com.pcloud.book.skill.biz;
import com.pcloud.book.applet.dto.AppletGroupManageDTO;
import com.pcloud.book.skill.dto.GroupActivity4AppletDTO;
import com.pcloud.book.skill.facade.request.QueryGroupActivityRequestVO;
import com.pcloud.book.skill.facade.request.SaveGroupActivityRequestVO;
import com.pcloud.book.skill.facade.request.UpdateGroupActivityRequestVO;
import com.pcloud.book.skill.facade.response.QueryGroupActivityResponseVO;
import com.pcloud.common.page.PageBeanNew;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
import java.util.Map;
......@@ -53,4 +52,12 @@ public interface PcloudGroupActivityBiz {
* @return
*/
Map<Long, GroupActivity4AppletDTO> getByIds(List<Long> ids);
/**
* 根据书刊分类查社群
* @author:zhuyajie
* @date:2020/6/8 10:49
* * @param null
*/
PageBeanNew<AppletGroupManageDTO> getGroupListByBookTemplet(Long firstClassify, Long secondClassify, Long gradeLabelId, Long subjectLabelId, Integer currentPage, Integer numPerPage);
}
package com.pcloud.book.skill.biz.impl;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.alibaba.fastjson.JSON;
import com.pcloud.appcenter.assist.dto.AssistTempletDTO;
import com.pcloud.book.applet.biz.AppletGroupSearchRecordBiz;
import com.pcloud.book.applet.dao.AppletGroupStatementDao;
import com.pcloud.book.applet.dto.AppletGroupManageDTO;
import com.pcloud.book.applet.dto.AppletGroupStatementDTO;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.book.biz.BookBiz;
......@@ -21,7 +21,6 @@ import com.pcloud.book.group.biz.GroupQrcodeBiz;
import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO;
import com.pcloud.book.reading.biz.ReadingActivityBiz;
import com.pcloud.book.rightsSetting.biz.RightsSettingBiz;
import com.pcloud.book.rightsSetting.dto.RightsSettingDto;
import com.pcloud.book.rightsSetting.entity.BaseTempletClassify;
import com.pcloud.book.rightsSetting.entity.RightsSettingTitle;
import com.pcloud.book.rightsSetting.enums.RightsNowItemType;
......@@ -40,13 +39,15 @@ import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import com.pcloud.common.utils.string.StringUtilParent;
import com.sdk.wxgroup.RobotProcessTypeEnum;
import com.sdk.wxgroup.SendGroupInviteVO;
import com.sdk.wxgroup.SendPicMessageVO;
import com.sdk.wxgroup.WxGroupSDK;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Date;
......@@ -57,11 +58,6 @@ import java.util.Objects;
import java.util.Optional;
import java.util.UUID;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
......@@ -341,4 +337,38 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz {
}
return mapDto;
}
@Override
public PageBeanNew<AppletGroupManageDTO> getGroupListByBookTemplet(Long firstClassify, Long secondClassify, Long gradeLabelId, Long subjectLabelId, Integer currentPage, Integer numPerPage) {
// 处理分类和标签
if (null == firstClassify && null == secondClassify && null == gradeLabelId && null == subjectLabelId) {
return new PageBeanNew<>(currentPage, numPerPage, 0, new ArrayList<>());
}
BaseTempletClassify baseTempletClassify = new BaseTempletClassify();
baseTempletClassify.setFirstClassify(firstClassify);
baseTempletClassify.setSecondClassify(secondClassify);
baseTempletClassify.setGradeLabelId(gradeLabelId);
baseTempletClassify.setSubjectLabelId(subjectLabelId);
rightsSettingBiz.setClassifyAndLabel(baseTempletClassify);
Map<String, Object> map = new HashMap<>();
map.put("firstClassify", baseTempletClassify.getFirstClassify());
map.put("secondClassify", baseTempletClassify.getSecondClassify());
map.put("gradeLabelId", baseTempletClassify.getGradeLabelId());
map.put("subjectLabelId", baseTempletClassify.getSubjectLabelId());
PageBeanNew<AppletGroupManageDTO> list = pcloudGroupActivityDao.listPageNew(new PageParam(currentPage,numPerPage),map,"getGroupListByBookTemplet");
if (null == list || ListUtils.isEmpty(list.getRecordList())) {
return new PageBeanNew<>(currentPage,numPerPage,0,new ArrayList<>());
}
for (AppletGroupManageDTO activity4AppletDTO : list.getRecordList()) {
String filterStr = StringUtilParent.replaceHtml(activity4AppletDTO.getDesc());
String subStr = filterStr.length() > 60 ? filterStr.substring(0, 60) + "..." : filterStr;
activity4AppletDTO.setCutDesc(subStr);
//头像、对话
List<String> headUrlList = appletGroupSearchRecordBiz.getHeadUrlList(activity4AppletDTO.getUserNumber(), activity4AppletDTO.getBookGroupQrcodeId());
activity4AppletDTO.setHeadUrlList(headUrlList);
List<AppletGroupStatementDTO> statementDTOS = appletGroupSearchRecordBiz.getStatementList(activity4AppletDTO.getUserNumber(), headUrlList, activity4AppletDTO.getBookGroupQrcodeId());
activity4AppletDTO.setStatementDTOList(statementDTOS);
}
return list;
}
}
package com.pcloud.book.skill.dao;
import com.pcloud.book.applet.dto.AppletGroupManageDTO;
import com.pcloud.book.rightsSetting.entity.BaseTempletClassify;
import com.pcloud.book.skill.dto.GroupActivity4AppletDTO;
import com.pcloud.book.skill.entity.PcloudGroupActivity;
import com.pcloud.book.skill.facade.response.QueryGroupActivityResponseVO;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
......@@ -20,4 +18,5 @@ public interface PcloudGroupActivityDao extends BaseDao<PcloudGroupActivity> {
List<GroupActivity4AppletDTO> getTishBookSchoolList(BaseTempletClassify baseTempletClassify, Integer limit);
Map<Long, GroupActivity4AppletDTO> getByIds(List<Long> ids);
}
\ No newline at end of file
......@@ -4,12 +4,11 @@ import com.pcloud.book.rightsSetting.entity.BaseTempletClassify;
import com.pcloud.book.skill.dao.PcloudGroupActivityDao;
import com.pcloud.book.skill.dto.GroupActivity4AppletDTO;
import com.pcloud.book.skill.entity.PcloudGroupActivity;
import com.pcloud.book.skill.facade.response.QueryGroupActivityResponseVO;
import com.pcloud.common.core.dao.BaseDaoImpl;
import java.util.HashMap;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -51,4 +50,5 @@ public class PcloudGroupActivityDaoImpl extends BaseDaoImpl<PcloudGroupActivity>
public Map<Long, GroupActivity4AppletDTO> getByIds(List<Long> list) {
return super.getSqlSession().selectMap(getStatement("getByIds"), list,"id");
}
}
package com.pcloud.book.skill.facade;
import com.pcloud.book.skill.biz.PcloudGroupActivityBiz;
import com.pcloud.book.skill.facade.request.QueryGroupActivityRequestVO;
import com.pcloud.book.skill.facade.request.SaveGroupActivityRequestVO;
import com.pcloud.book.skill.facade.request.UpdateGroupActivityRequestVO;
import com.pcloud.book.skill.facade.response.QueryGroupActivityResponseVO;
......@@ -20,7 +19,6 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import io.swagger.annotations.ApiModelProperty;
@RestController
@RequestMapping("groupActivity")
......@@ -67,5 +65,4 @@ public class PcloudGroupActivityFacade {
return new ResponseDto<>(pcloudGroupActivityBiz.queryGroupActivity(name, proLabelId, purLabelId, depLabelId, joinType,firstClassify,secondClassify, gradeLabelId,subjectLabelId,numPerPage, currentPage));
}
}
......@@ -41,7 +41,10 @@
a.SECOND_TEMPLET_ID secondTempletId,
a.TEMPLET_ID templetId,
d.join_group_type joinGroupType,
b.ISBN isbn
b.ISBN isbn,
a.GRA_LABEL_ID gradeLabelId,
a.SUB_LABEL_ID subjectLabelId,
a.vol_label_id volLabelId
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 AND a.IS_DELETE = 0
......
......@@ -293,4 +293,43 @@
${item}
</foreach>
</select>
<select id="getGroupListByBookTemplet" parameterType="map" resultType="com.pcloud.book.applet.dto.AppletGroupManageDTO">
SELECT
a.id,
a.id groupActivityId,
a.`name`,
a.description as `desc`,
a.join_type AS joinType,
a.group_pic AS groupPic,
a.book_group_qrcode_id AS bookGroupQrcodeId,
b.group_name AS groupName,
b.user_number userNumber,
b.classify_id classifyId,
c.book_group_id bookGroupId,
a.first_classify AS firstClassify,
a.second_classify AS secondClassify,
a.grade_label_id AS gradeLabelId,
a.subject_label_id AS subjectLabelId
FROM
pcloud_group_activity a
INNER JOIN book_group_qrcode b on a.book_group_qrcode_id = b.id AND b.is_delete = 0
INNER JOIN book_group_classify c ON b.classify_id = c.id AND c.is_delete = 0
WHERE
a.is_delete = 0
<if test="firstClassify != null">
and a.first_classify = #{firstClassify}
</if>
<if test="secondClassify != null">
and a.second_classify = #{secondClassify}
</if>
<if test="gradeLabelId != null">
and a.grade_label_id = #{gradeLabelId}
</if>
<if test="subjectLabelId != null">
and a.subject_label_id = #{subjectLabelId}
</if>
ORDER BY id DESC
</select>
</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