Commit aef12caa by 朱亚洁

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

parent 6889c146
...@@ -78,4 +78,12 @@ public interface AppletGroupSearchRecordBiz { ...@@ -78,4 +78,12 @@ public interface AppletGroupSearchRecordBiz {
* * @param null * * @param null
*/ */
List<Long> getRecordIdListByUser(Long wechatUserId); 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; package com.pcloud.book.applet.biz.impl;
import com.pcloud.book.applet.biz.AppletGroupSearchRecordBiz; 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.contants.AppletConstants;
import com.pcloud.book.applet.dao.AppletGroupSearchRecordDao; import com.pcloud.book.applet.dao.AppletGroupSearchRecordDao;
import com.pcloud.book.applet.dao.AppletGroupStatementDao; 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.AppletGroupSearchRecordDTO;
import com.pcloud.book.applet.dto.AppletGroupStatementDTO; 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.AppletGroupSearchRecord;
import com.pcloud.book.applet.entity.AppletGroupStatement; import com.pcloud.book.applet.entity.AppletGroupStatement;
import com.pcloud.book.book.dao.BookAdviserDao; import com.pcloud.book.book.dao.BookAdviserDao;
...@@ -19,9 +22,9 @@ import com.pcloud.book.group.dto.GroupQrcodeDTO; ...@@ -19,9 +22,9 @@ import com.pcloud.book.group.dto.GroupQrcodeDTO;
import com.pcloud.book.group.enums.JoinGroupTypeEnum; import com.pcloud.book.group.enums.JoinGroupTypeEnum;
import com.pcloud.book.rightsSetting.biz.RightsSettingBiz; import com.pcloud.book.rightsSetting.biz.RightsSettingBiz;
import com.pcloud.book.rightsSetting.entity.BaseTempletClassify; 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.dao.PcloudGroupActivityDao;
import com.pcloud.book.skill.dto.GroupActivity4AppletDTO; import com.pcloud.book.skill.dto.GroupActivity4AppletDTO;
import com.pcloud.common.constant.CacheConstant;
import com.pcloud.common.core.aspect.ParamLog; import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
...@@ -77,6 +80,10 @@ public class AppletGroupSearchRecordBizImpl implements AppletGroupSearchRecordBi ...@@ -77,6 +80,10 @@ public class AppletGroupSearchRecordBizImpl implements AppletGroupSearchRecordBi
private GroupQrcodeDao groupQrcodeDao; private GroupQrcodeDao groupQrcodeDao;
@Autowired @Autowired
private AppletGroupStatementDao appletGroupStatementDao; private AppletGroupStatementDao appletGroupStatementDao;
@Autowired
private AppletUserBookcaseBiz appletUserBookcaseBiz;
@Autowired
private PcloudGroupActivityBiz pcloudGroupActivityBiz;
@Override @Override
...@@ -242,4 +249,19 @@ public class AppletGroupSearchRecordBizImpl implements AppletGroupSearchRecordBi ...@@ -242,4 +249,19 @@ public class AppletGroupSearchRecordBizImpl implements AppletGroupSearchRecordBi
return appletGroupSearchRecordDao.getRecordIdListByUser(wechatUserId); 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 { ...@@ -60,4 +60,13 @@ public class AppletUserBookcaseDTO extends BaseDto {
@ApiModelProperty("isbn") @ApiModelProperty("isbn")
private String isbn; private String isbn;
@ApiModelProperty("年级标签")
private Long gradeLabelId;
@ApiModelProperty("科目标签")
private Long subjectLabelId;
@ApiModelProperty("上下册标签id")
private Long volLabelId;
} }
...@@ -146,4 +146,18 @@ public class AppletGroupManageFacade { ...@@ -146,4 +146,18 @@ public class AppletGroupManageFacade {
} }
return new ResponseDto<>(appletGroupSearchRecordBiz.getRecordIdListByUser(wechatUserId)); 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; 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.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.SaveGroupActivityRequestVO;
import com.pcloud.book.skill.facade.request.UpdateGroupActivityRequestVO; import com.pcloud.book.skill.facade.request.UpdateGroupActivityRequestVO;
import com.pcloud.book.skill.facade.response.QueryGroupActivityResponseVO; import com.pcloud.book.skill.facade.response.QueryGroupActivityResponseVO;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -53,4 +52,12 @@ public interface PcloudGroupActivityBiz { ...@@ -53,4 +52,12 @@ public interface PcloudGroupActivityBiz {
* @return * @return
*/ */
Map<Long, GroupActivity4AppletDTO> getByIds(List<Long> ids); 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; package com.pcloud.book.skill.biz.impl;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.alibaba.fastjson.JSON;
import com.pcloud.appcenter.assist.dto.AssistTempletDTO; import com.pcloud.appcenter.assist.dto.AssistTempletDTO;
import com.pcloud.book.applet.biz.AppletGroupSearchRecordBiz; 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.applet.dto.AppletGroupStatementDTO;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.book.biz.BookBiz; import com.pcloud.book.book.biz.BookBiz;
...@@ -21,7 +21,6 @@ import com.pcloud.book.group.biz.GroupQrcodeBiz; ...@@ -21,7 +21,6 @@ import com.pcloud.book.group.biz.GroupQrcodeBiz;
import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO; import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO;
import com.pcloud.book.reading.biz.ReadingActivityBiz; import com.pcloud.book.reading.biz.ReadingActivityBiz;
import com.pcloud.book.rightsSetting.biz.RightsSettingBiz; 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.BaseTempletClassify;
import com.pcloud.book.rightsSetting.entity.RightsSettingTitle; import com.pcloud.book.rightsSetting.entity.RightsSettingTitle;
import com.pcloud.book.rightsSetting.enums.RightsNowItemType; import com.pcloud.book.rightsSetting.enums.RightsNowItemType;
...@@ -40,13 +39,15 @@ import com.pcloud.common.core.aspect.ParamLog; ...@@ -40,13 +39,15 @@ import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam; import com.pcloud.common.page.PageParam;
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.StringUtilParent; import com.pcloud.common.utils.string.StringUtilParent;
import com.sdk.wxgroup.RobotProcessTypeEnum; import com.sdk.wxgroup.RobotProcessTypeEnum;
import com.sdk.wxgroup.SendGroupInviteVO; import com.sdk.wxgroup.SendGroupInviteVO;
import com.sdk.wxgroup.SendPicMessageVO; 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.ArrayList;
import java.util.Date; import java.util.Date;
...@@ -57,11 +58,6 @@ import java.util.Objects; ...@@ -57,11 +58,6 @@ import java.util.Objects;
import java.util.Optional; import java.util.Optional;
import java.util.UUID; 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 javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -341,4 +337,38 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz { ...@@ -341,4 +337,38 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz {
} }
return mapDto; 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; package com.pcloud.book.skill.dao;
import com.pcloud.book.applet.dto.AppletGroupManageDTO;
import com.pcloud.book.rightsSetting.entity.BaseTempletClassify; import com.pcloud.book.rightsSetting.entity.BaseTempletClassify;
import com.pcloud.book.skill.dto.GroupActivity4AppletDTO; import com.pcloud.book.skill.dto.GroupActivity4AppletDTO;
import com.pcloud.book.skill.entity.PcloudGroupActivity; import com.pcloud.book.skill.entity.PcloudGroupActivity;
import com.pcloud.book.skill.facade.response.QueryGroupActivityResponseVO;
import com.pcloud.common.core.dao.BaseDao; import com.pcloud.common.core.dao.BaseDao;
import java.util.List; import java.util.List;
...@@ -20,4 +18,5 @@ public interface PcloudGroupActivityDao extends BaseDao<PcloudGroupActivity> { ...@@ -20,4 +18,5 @@ public interface PcloudGroupActivityDao extends BaseDao<PcloudGroupActivity> {
List<GroupActivity4AppletDTO> getTishBookSchoolList(BaseTempletClassify baseTempletClassify, Integer limit); List<GroupActivity4AppletDTO> getTishBookSchoolList(BaseTempletClassify baseTempletClassify, Integer limit);
Map<Long, GroupActivity4AppletDTO> getByIds(List<Long> ids); Map<Long, GroupActivity4AppletDTO> getByIds(List<Long> ids);
} }
\ No newline at end of file
...@@ -4,12 +4,11 @@ import com.pcloud.book.rightsSetting.entity.BaseTempletClassify; ...@@ -4,12 +4,11 @@ import com.pcloud.book.rightsSetting.entity.BaseTempletClassify;
import com.pcloud.book.skill.dao.PcloudGroupActivityDao; import com.pcloud.book.skill.dao.PcloudGroupActivityDao;
import com.pcloud.book.skill.dto.GroupActivity4AppletDTO; import com.pcloud.book.skill.dto.GroupActivity4AppletDTO;
import com.pcloud.book.skill.entity.PcloudGroupActivity; import com.pcloud.book.skill.entity.PcloudGroupActivity;
import com.pcloud.book.skill.facade.response.QueryGroupActivityResponseVO;
import com.pcloud.common.core.dao.BaseDaoImpl; import com.pcloud.common.core.dao.BaseDaoImpl;
import java.util.HashMap;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -51,4 +50,5 @@ public class PcloudGroupActivityDaoImpl extends BaseDaoImpl<PcloudGroupActivity> ...@@ -51,4 +50,5 @@ public class PcloudGroupActivityDaoImpl extends BaseDaoImpl<PcloudGroupActivity>
public Map<Long, GroupActivity4AppletDTO> getByIds(List<Long> list) { public Map<Long, GroupActivity4AppletDTO> getByIds(List<Long> list) {
return super.getSqlSession().selectMap(getStatement("getByIds"), list,"id"); return super.getSqlSession().selectMap(getStatement("getByIds"), list,"id");
} }
} }
package com.pcloud.book.skill.facade; package com.pcloud.book.skill.facade;
import com.pcloud.book.skill.biz.PcloudGroupActivityBiz; 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.SaveGroupActivityRequestVO;
import com.pcloud.book.skill.facade.request.UpdateGroupActivityRequestVO; import com.pcloud.book.skill.facade.request.UpdateGroupActivityRequestVO;
import com.pcloud.book.skill.facade.response.QueryGroupActivityResponseVO; import com.pcloud.book.skill.facade.response.QueryGroupActivityResponseVO;
...@@ -20,7 +19,6 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -20,7 +19,6 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import io.swagger.annotations.ApiModelProperty;
@RestController @RestController
@RequestMapping("groupActivity") @RequestMapping("groupActivity")
...@@ -67,5 +65,4 @@ public class PcloudGroupActivityFacade { ...@@ -67,5 +65,4 @@ public class PcloudGroupActivityFacade {
return new ResponseDto<>(pcloudGroupActivityBiz.queryGroupActivity(name, proLabelId, purLabelId, depLabelId, joinType,firstClassify,secondClassify, gradeLabelId,subjectLabelId,numPerPage, currentPage)); return new ResponseDto<>(pcloudGroupActivityBiz.queryGroupActivity(name, proLabelId, purLabelId, depLabelId, joinType,firstClassify,secondClassify, gradeLabelId,subjectLabelId,numPerPage, currentPage));
} }
} }
...@@ -41,7 +41,10 @@ ...@@ -41,7 +41,10 @@
a.SECOND_TEMPLET_ID secondTempletId, a.SECOND_TEMPLET_ID secondTempletId,
a.TEMPLET_ID templetId, a.TEMPLET_ID templetId,
d.join_group_type joinGroupType, 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 FROM applet_user_bookcase c
LEFT JOIN BOOK_ADVISER a ON c.book_id=a.BOOK_ID AND c.adviser_id=a.ADVISER_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 AND a.IS_DELETE = 0 AND c.channel_id=a.CHANNEL_ID AND a.IS_DELETE = 0
......
...@@ -293,4 +293,43 @@ ...@@ -293,4 +293,43 @@
${item} ${item}
</foreach> </foreach>
</select> </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> </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