Commit bb3cf4a3 by 朱亚洁

1002867社群学舍优化显示

parent db969237
package com.pcloud.book.applet.biz;
import com.pcloud.book.applet.dto.AppletGroupManageDTO;
import com.pcloud.book.applet.dto.AppletGroupStatementDTO;
import com.pcloud.book.applet.entity.AppletGroupSearchRecord;
import com.pcloud.book.skill.dto.GroupActivity4AppletDTO;
import com.pcloud.common.page.PageBeanNew;
......@@ -53,4 +54,20 @@ public interface AppletGroupSearchRecordBiz {
void deleteByIds(List<Long> ids);
List<GroupActivity4AppletDTO> getTishBookSchoolList(Long bookGroupId);
/**
* 群对话随机组装
* @author:zhuyajie
* @date:2020/5/8 15:23
* * @param null
*/
public List<AppletGroupStatementDTO> getStatementList(Integer userNum, List<String> headUrlList,Long groupQrcodeId);
/**
* 获取群头像
* @author:zhuyajie
* @date:2020/5/9
* * @param null
*/
public List<String> getHeadUrlList(Integer userNum, Long groupQrcodeId);
}
\ No newline at end of file
package com.pcloud.book.applet.biz.impl;
import com.google.common.collect.Lists;
import com.pcloud.book.applet.biz.AppletGroupSearchRecordBiz;
import com.pcloud.book.applet.dto.AppletGroupManageDTO;
import com.pcloud.book.applet.dto.AppletGroupStatementDTO;
import com.pcloud.book.applet.dto.UpdateAppletGroupManageDTO;
import com.pcloud.book.applet.entity.AppletGroupManage;
import com.pcloud.book.applet.dao.AppletGroupManageDao;
......@@ -13,8 +16,6 @@ import com.pcloud.common.page.PageParam;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.NumberUtil;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.common.utils.string.StringUtilParent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -40,13 +41,14 @@ public class AppletGroupManageBizImpl implements AppletGroupManageBiz {
private static final Logger LOGGER = LoggerFactory.getLogger(AppletGroupManageBizImpl.class);
private static final String GROUP_HEAD_URL_REDIS="BOOK:APPLET:appletGroupManage_groupHeadUrl";
@Autowired
private AppletGroupManageDao appletGroupManageDao;
@Autowired
private LabelConsr labelConsr;
@Autowired
private ReaderConsr readerConsr;
@Autowired
private AppletGroupSearchRecordBiz appletGroupSearchRecordBiz;
@Override
public AppletGroupManage getById(Long id) {
......@@ -98,16 +100,10 @@ public class AppletGroupManageBizImpl implements AppletGroupManageBiz {
String subStr = filterStr.length() > 60 ? filterStr.substring(0, 60) + "..." : filterStr;
dto.setCutDesc(subStr);
//头像列表从缓存里取
List<String> headUrlList = JedisClusterUtils.hgetJson2List(GROUP_HEAD_URL_REDIS,dto.getGroupActivityId().toString(),String.class);
//缓存为空或数量不一致,重新获取
if (ListUtils.isEmpty(headUrlList) ||
(headUrlList.size()<9&&!dto.getUserNumber().equals(headUrlList.size()))){
headUrlList = readerConsr.getRandomHeadUrlList(dto.getUserNumber()>9?9:dto.getUserNumber());
JedisClusterUtils.hset2Json(GROUP_HEAD_URL_REDIS,dto.getGroupActivityId().toString(),headUrlList);
JedisClusterUtils.expire(GROUP_HEAD_URL_REDIS,3600);
}
List<String> headUrlList = appletGroupSearchRecordBiz.getHeadUrlList(dto.getUserNumber(),dto.getBookGroupQrcodeId());
dto.setHeadUrlList(headUrlList);
dto.setQrcodeHeadUrl(readerConsr.getNineHeadUrl());
List<AppletGroupStatementDTO> statementDTOS = appletGroupSearchRecordBiz.getStatementList(dto.getUserNumber(),headUrlList,dto.getBookGroupQrcodeId());
dto.setStatementDTOList(statementDTOS);
}
return recordList;
}
......@@ -149,4 +145,5 @@ public class AppletGroupManageBizImpl implements AppletGroupManageBiz {
public void deleteById(Long id) {
appletGroupManageDao.deleteById(id);
}
}
\ No newline at end of file
package com.pcloud.book.applet.dao;
import com.pcloud.book.applet.entity.AppletGroupStatement;
import com.pcloud.common.core.dao.BaseDao;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 学舍群话语库(AppletGroupStatement)表数据库访问层
*
* @author makejava
* @since 2020-05-08 11:21:25
*/
public interface AppletGroupStatementDao extends BaseDao<AppletGroupStatement>{
/**
* 通过实体作为筛选条件查询
*
* @return 对象列表
*/
List<AppletGroupStatement> getAll();
/**
* 随机取n条
*
* @return 对象列表
*/
List<AppletGroupStatement> getRandom(Integer count);
}
\ No newline at end of file
package com.pcloud.book.applet.dao.impl;
import com.pcloud.book.applet.dao.AppletGroupStatementDao;
import com.pcloud.book.applet.entity.AppletGroupStatement;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @ClassName com.pcloud.book.applet.dao.impl.AppletGroupStatementDaoImpl
* @Author zhuyajie
* @Description 学舍群话语库
* @Date 2020/5/8 11:23
* @Version 1.0
**/
@Component
public class AppletGroupStatementDaoImpl extends BaseDaoImpl<AppletGroupStatement> implements AppletGroupStatementDao{
@Override
public List<AppletGroupStatement> getAll() {
return getSessionTemplate().selectList(getStatement("getAll"));
}
@Override
public List<AppletGroupStatement> getRandom(Integer count) {
return getSessionTemplate().selectList(getStatement("getRandom"), count);
}
}
......@@ -81,4 +81,7 @@ public class AppletGroupManageDTO extends BaseEntity {
@ApiModelProperty("头像列表")
private List<String> headUrlList;
@ApiModelProperty("学舍群话语")
private List<AppletGroupStatementDTO> statementDTOList;
}
\ No newline at end of file
package com.pcloud.book.applet.dto;
import com.pcloud.common.dto.BaseDto;
import java.math.BigDecimal;
import lombok.Data;
/**
* @ClassName com.pcloud.book.applet.dto.AppletGroupStatementDTO
* @Author zhuyajie
* @Description 学社群对话
* @Date 2020/5/8 15:12
* @Version 1.0
**/
@Data
public class AppletGroupStatementDTO extends BaseDto {
/**
* 头像
*/
private String headUrl;
/**
* 语句
*/
private String statement;
/**
* 类型
*/
private Integer type;
/**
* 音频时长
*/
private BigDecimal duration;
}
package com.pcloud.book.applet.entity;
import com.pcloud.common.entity.BaseEntity;
import java.math.BigDecimal;
import lombok.Data;
/**
* 学舍群话语库(AppletGroupStatement)实体类
*
* @author zhuyajie
* @since 2020-05-08 11:21:25
*/
@Data
public class AppletGroupStatement extends BaseEntity {
private static final long serialVersionUID = 857680952758668647L;
/**
* 语句
*/
private String statement;
/**
* 类型
*/
private Integer type;
/**
* 音频时长
*/
private BigDecimal duration;
}
\ No newline at end of file
......@@ -295,4 +295,11 @@ public interface GroupQrcodeDao extends BaseDao<GroupQrcode> {
* 根据类型获取当前群总人数
*/
Integer getUserCountByJoinGroupType(Integer joinGroupType);
/**
* 根据社群书id查群
* @param bookGroupId
* @return
*/
List<GroupQrcodeDTO> getGroupQrcodeListByBookGroupId(Long bookGroupId);
}
......@@ -302,4 +302,9 @@ public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements Grou
paramMap.put("joinGroupType", joinGroupType);
return this.getSqlSession().selectOne(this.getStatement("getUserCountByJoinGroupType"), paramMap);
}
@Override
public List<GroupQrcodeDTO> getGroupQrcodeListByBookGroupId(Long bookGroupId) {
return getSessionTemplate().selectList(getStatement("getGroupQrcodeListByBookGroupId"), bookGroupId);
}
}
......@@ -61,5 +61,20 @@ public class GroupQrcodeDTO implements Serializable {
*/
private Integer joinGroupType;
/**
*群分类
*/
private String classify;
/**
*群二维码
*/
private String qrcodeUrl;
/**
*群分类介绍
*/
private String classifyIntroduce;
/**
*社群码id
*/
private Long bookGroupId;
}
......@@ -5,8 +5,10 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.appcenter.assist.dto.AssistTempletDTO;
import com.pcloud.book.applet.biz.AppletGroupSearchRecordBiz;
import com.pcloud.book.applet.biz.AppletNewsBiz;
import com.pcloud.book.applet.dao.AppletNewsDao;
import com.pcloud.book.applet.dto.AppletGroupStatementDTO;
import com.pcloud.book.applet.dto.AppletNewsDTO;
import com.pcloud.book.applet.entity.AppletNews;
import com.pcloud.book.base.exception.BookBizException;
......@@ -95,8 +97,6 @@ import java.util.stream.Collectors;
@Slf4j
public class RightsSettingBizImpl implements RightsSettingBiz {
private static final String GROUP_HEAD_URL_REDIS="BOOK:APPLET:RIGHTSSETTINGBIZIMPL:SETGROUPACTIVITY";
@Autowired
private RightsSettingDAO rightsSettingDAO;
@Autowired
......@@ -150,6 +150,8 @@ public class RightsSettingBizImpl implements RightsSettingBiz {
@Autowired
private RightsNowPicDao rightsNowPicDao;
@Autowired
private AppletGroupSearchRecordBiz appletGroupSearchRecordBiz;
@Override
@ParamLog("新增权益设置")
......@@ -979,15 +981,10 @@ public class RightsSettingBizImpl implements RightsSettingBiz {
String subStr = filterStr.length() > 60 ? filterStr.substring(0, 60) + "..." : filterStr;
groupActivity4AppletDTO.setCutDesc(subStr);
//头像列表从缓存里取
List<String> headUrlList = JedisClusterUtils.hgetJson2List(GROUP_HEAD_URL_REDIS,groupActivity4AppletDTO.getGroupActivityId().toString(),String.class);
//缓存为空或数量不一致,重新获取
if (ListUtils.isEmpty(headUrlList) ||
(headUrlList.size()<9 && !groupActivity4AppletDTO.getUserNumber().equals(headUrlList.size()))){
headUrlList = readerConsr.getRandomHeadUrlList(groupActivity4AppletDTO.getUserNumber()>9 ? 9:groupActivity4AppletDTO.getUserNumber());
JedisClusterUtils.hset2Json(GROUP_HEAD_URL_REDIS,groupActivity4AppletDTO.getGroupActivityId().toString(),headUrlList);
JedisClusterUtils.expire(GROUP_HEAD_URL_REDIS,3600);
}
List<String> headUrlList = appletGroupSearchRecordBiz.getHeadUrlList(groupActivity4AppletDTO.getUserNumber(),groupActivity4AppletDTO.getBookGroupQrcodeId());
groupActivity4AppletDTO.setHeadUrlList(headUrlList);
List<AppletGroupStatementDTO> statementDTOS = appletGroupSearchRecordBiz.getStatementList(groupActivity4AppletDTO.getUserNumber(),headUrlList,groupActivity4AppletDTO.getBookGroupQrcodeId());
groupActivity4AppletDTO.setStatementDTOList(statementDTOS);
for(RightsSettingItem rightsSettingItem : list){
if(rightsSettingItemIds.contains(rightsSettingItem.getId())){
rightsSettingItem.setGroupActivity4AppletDTO(groupActivity4AppletDTO);
......@@ -1065,7 +1062,7 @@ public class RightsSettingBizImpl implements RightsSettingBiz {
}
newsDTOS = dtos;
}
JedisClusterUtils.setJsonList(key, newsDTOS, CommonUtils.todayRemainingSeconds());
JedisClusterUtils.setJsonList(key, newsDTOS, 60);
}
}
item.setAppletNewsDTOS(newsDTOS);
......
......@@ -5,6 +5,9 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
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.AppletGroupStatementDTO;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.book.biz.BookBiz;
import com.pcloud.book.book.dao.BookLabelDao;
......@@ -67,7 +70,6 @@ import lombok.extern.slf4j.Slf4j;
@Service
public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz {
private static final String GROUP_HEAD_URL_REDIS="BOOK:APPLET:pcloudGroupActivityBizImpl_groupHeadUrl";
@Resource
private PcloudSkillDao pcloudSkillDao;
......@@ -93,6 +95,8 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz {
private BookBiz bookBiz;
@Autowired
private RightsSettingTitleMapper rightsSettingTitleMapper;
@Autowired
private AppletGroupSearchRecordBiz appletGroupSearchRecordBiz;
@ParamLog("保存共读活动")
@Override
......@@ -303,22 +307,17 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz {
}
// 是否开启社群服务开关
RightsSettingTitle right = rightsSettingTitleMapper.getByRightSettingIdAndType(rightSettingId, RightsNowItemType.GROUP_SERVICE.value);
groupActivity4AppletDTO.setOpenStatus(Objects.isNull(right) ? false : right.getOpenState());
groupActivity4AppletDTO.setOpenStatus(Objects.isNull(right.getOpenState()) ? false : right.getOpenState());
groupActivity4AppletDTO.setRightsSettingTitle(right.getRightsSettingTitle());
groupActivity4AppletDTO.setRightsSettingDesc(right.getRightsSettingDesc());
String filterStr = StringUtilParent.replaceHtml(groupActivity4AppletDTO.getDesc());
String subStr = filterStr.length() > 60 ? filterStr.substring(0, 60) + "..." : filterStr;
groupActivity4AppletDTO.setCutDesc(subStr);
//头像列表从缓存里取
List<String> headUrlList = JedisClusterUtils.hgetJson2List(GROUP_HEAD_URL_REDIS,groupActivity4AppletDTO.getGroupActivityId().toString(),String.class);
//缓存为空或数量不一致,重新获取
if (ListUtils.isEmpty(headUrlList) ||
(headUrlList.size()<9 && !groupActivity4AppletDTO.getUserNumber().equals(headUrlList.size()))){
headUrlList = readerConsr.getRandomHeadUrlList(groupActivity4AppletDTO.getUserNumber()>9 ? 9:groupActivity4AppletDTO.getUserNumber());
JedisClusterUtils.hset2Json(GROUP_HEAD_URL_REDIS,groupActivity4AppletDTO.getGroupActivityId().toString(),headUrlList);
JedisClusterUtils.expire(GROUP_HEAD_URL_REDIS,3600);
}
List<String> headUrlList = appletGroupSearchRecordBiz.getHeadUrlList(groupActivity4AppletDTO.getUserNumber(),groupActivity4AppletDTO.getBookGroupQrcodeId());
groupActivity4AppletDTO.setHeadUrlList(headUrlList);
List<AppletGroupStatementDTO> statementDTOS = appletGroupSearchRecordBiz.getStatementList(groupActivity4AppletDTO.getUserNumber(),headUrlList,groupActivity4AppletDTO.getBookGroupQrcodeId());
groupActivity4AppletDTO.setStatementDTOList(statementDTOS);
return groupActivity4AppletDTO;
}
}
......@@ -2,6 +2,8 @@ package com.pcloud.book.skill.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.pcloud.book.applet.dto.AppletGroupStatementDTO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
......@@ -59,4 +61,9 @@ public class GroupActivity4AppletDTO implements Serializable {
@ApiModelProperty("权益描述")
private String rightsSettingDesc;
@ApiModelProperty("学舍群话语")
private List<AppletGroupStatementDTO> statementDTOList;
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pcloud.book.applet.dao.impl.AppletGroupStatementDaoImpl">
<resultMap type="com.pcloud.book.applet.entity.AppletGroupStatement" id="AppletGroupStatementMap">
<result property="id" column="id" jdbcType="INTEGER"/>
<result property="statement" column="statement" jdbcType="VARCHAR"/>
<result property="type" column="type" jdbcType="INTEGER"/>
<result property="duration" column="duration" jdbcType="DECIMAL"/>
</resultMap>
<select id="getAll" resultMap="AppletGroupStatementMap">
select
id, statement,type,duration
from book.applet_group_statement
</select>
<select id="getRandom" parameterType="integer" resultMap="AppletGroupStatementMap">
SELECT id, statement,type, duration
FROM book.applet_group_statement
ORDER BY RAND()
LIMIT #{count}
</select>
</mapper>
\ No newline at end of file
......@@ -461,7 +461,8 @@
b.cover_img book_img,
b.isbn,
bg.channel_id,
bg.create_user
bg.create_user,
bg.join_group_type
FROM
book_group bg
LEFT JOIN book b ON bg.book_id = b.BOOK_ID
......
......@@ -842,4 +842,24 @@
and t2.join_group_type=#{joinGroupType}
</if>
</select>
<select id="getGroupQrcodeListByBookGroupId" parameterType="long" resultType="com.pcloud.book.group.dto.GroupQrcodeDTO">
SELECT
q.id id,
q.classify_id classifyId,
q.weixin_group_id weixinGroupId,
q.group_name groupName,
q.user_number userNumber,
c.classify classify,
q.qrcode_url qrcodeUrl,
c.classify_introduce classifyIntroduce,
c.book_group_id bookGroupId
FROM
book_group_classify c
JOIN book_group_qrcode q ON c.id = q.classify_id
WHERE
c.book_group_id = #{bookGroupId}
AND c.is_delete = 0
AND q.is_delete = 0
</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