Commit 7e736d73 by Administrator

Merge branch 'feature/1003039' into 'master'

feat: [1003039] 首页改版-设计变更0609

See merge request rays/pcloud-book!771
parents cd68cb5b 81283f6a
......@@ -79,4 +79,8 @@ public interface BookGroupClassifyService {
@ApiOperation("根据群分类id找群")
@GetMapping("getGroupQrcodeByClassify")
ResponseEntity<ResponseDto<GroupQrcode4ClassifyDTO>> getGroupQrcodeByClassify(@RequestParam("wechatUserId") Long wechatUserId,@RequestParam("classifyId") Long classifyId);
@ApiOperation("获取群分类入群价格")
@GetMapping("getClassifyPrice")
ResponseEntity<ResponseDto<BigDecimal>> getClassifyPrice(@RequestParam("classifyId") Long classifyId);
}
......@@ -28,12 +28,14 @@ public interface AppletGroupManageBiz {
/**
* 任意门
*
* @param wechatUserId
* @param recommend
* @param currentPage
* @param numPerPage
* @return
*/
PageBeanNew getList4Applet(Integer recommend, Integer currentPage, Integer numPerPage);
PageBeanNew getList4Applet(Long wechatUserId, Integer recommend, Integer currentPage, Integer numPerPage);
/**
* 新增数据
......
......@@ -53,7 +53,7 @@ public interface AppletGroupSearchRecordBiz {
void deleteByIds(List<Long> ids);
List<GroupActivity4AppletDTO> getTishBookSchoolList(Long bookGroupId);
List<GroupActivity4AppletDTO> getTishBookSchoolList(Long wechatUserId, Long bookGroupId);
/**
* 群对话随机组装
......
......@@ -93,4 +93,6 @@ public interface AppletUserBookcaseBiz {
* * @param null
*/
Map<String,Integer> mapBookUserCountList(List<Long> bookIds);
AppletUserBookcaseDTO getUserBookInfoByWechatUserId(Long wechatUserId, Long bookId);
}
......@@ -11,7 +11,9 @@ import com.pcloud.book.applet.entity.AppletGroupManage;
import com.pcloud.book.consumer.label.LabelConsr;
import com.pcloud.book.consumer.reader.ReaderConsr;
import com.pcloud.book.group.biz.GroupQrcodeBiz;
import com.pcloud.book.group.dao.BookQrcodeUserDao;
import com.pcloud.book.group.vo.ClassifyQrcodeVO;
import com.pcloud.book.group.vo.GroupQrcode4ClassifyVO;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam;
......@@ -27,6 +29,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -52,6 +55,8 @@ public class AppletGroupManageBizImpl implements AppletGroupManageBiz {
private AppletGroupSearchRecordBiz appletGroupSearchRecordBiz;
@Autowired
private GroupQrcodeBiz groupQrcodeBiz;
@Autowired
private BookQrcodeUserDao bookQrcodeUserDao;
@Override
public AppletGroupManage getById(Long id) {
......@@ -101,7 +106,7 @@ public class AppletGroupManageBizImpl implements AppletGroupManageBiz {
}
@Override
public PageBeanNew getList4Applet(Integer recommend, Integer currentPage, Integer numPerPage) {
public PageBeanNew getList4Applet(Long wechatUserId, Integer recommend, Integer currentPage, Integer numPerPage) {
Map<String,Object> map = new HashMap<>();
map.put("recommend", recommend);
PageBeanNew<AppletGroupManageDTO> recordList = appletGroupManageDao.listPageNew(new PageParam(currentPage, numPerPage), map, "getList4Applet");
......@@ -119,6 +124,14 @@ public class AppletGroupManageBizImpl implements AppletGroupManageBiz {
dto.setUserNumber(groupQrcodeInfo.getUserNumber());
dto.setBookGroupQrcodeId(groupQrcodeInfo.getId());
dto.setGroupPic(groupQrCode);
dto.setStatus(0);
// 付费群 查询用户是否已经购买过该群分类
if (dto.getPrice().compareTo(BigDecimal.ZERO) > 0) {
GroupQrcode4ClassifyVO userQrcode = bookQrcodeUserDao.getUserQrcode(wechatUserId, dto.getClassifyId());
if (userQrcode != null && userQrcode.getGroupQrcodeId() != null) {
dto.setStatus(1);
}
}
//头像列表从缓存里取
List<String> headUrlList = appletGroupSearchRecordBiz.getHeadUrlList(dto.getUserNumber(),dto.getBookGroupQrcodeId());
dto.setHeadUrlList(headUrlList);
......
......@@ -12,16 +12,16 @@ 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;
import com.pcloud.book.book.dto.BookAdviserDto;
import com.pcloud.book.consumer.reader.ReaderConsr;
import com.pcloud.book.group.biz.BookGroupClassifyBiz;
import com.pcloud.book.group.dao.BookGroupDao;
import com.pcloud.book.group.dao.BookQrcodeUserDao;
import com.pcloud.book.group.dao.GroupQrcodeDao;
import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.GroupQrcodeDTO;
import com.pcloud.book.group.enums.JoinGroupTypeEnum;
import com.pcloud.book.group.vo.GroupQrcode4ClassifyVO;
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;
......@@ -33,20 +33,19 @@ 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.StringUtilParent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
/**
* (AppletGroupSearchRecord)表服务实现类
*
......@@ -84,6 +83,8 @@ public class AppletGroupSearchRecordBizImpl implements AppletGroupSearchRecordBi
private AppletUserBookcaseBiz appletUserBookcaseBiz;
@Autowired
private PcloudGroupActivityBiz pcloudGroupActivityBiz;
@Autowired
private BookQrcodeUserDao bookQrcodeUserDao;
@Override
......@@ -153,7 +154,7 @@ public class AppletGroupSearchRecordBizImpl implements AppletGroupSearchRecordBi
}
@Override
public List<GroupActivity4AppletDTO> getTishBookSchoolList(Long bookGroupId) {
public List<GroupActivity4AppletDTO> getTishBookSchoolList(Long wechatUserId, Long bookGroupId) {
BookGroupDTO bookGroupDTO = bookGroupDao.getDTOById(bookGroupId);
List<GroupActivity4AppletDTO> tishBookSchoolList = new ArrayList<>();
//本书自带社群
......@@ -194,6 +195,14 @@ public class AppletGroupSearchRecordBizImpl implements AppletGroupSearchRecordBi
String filterStr = StringUtilParent.replaceHtml(groupActivity4AppletDTO.getDesc());
String subStr = filterStr.length() > 60 ? filterStr.substring(0, 60) + "..." : filterStr;
groupActivity4AppletDTO.setCutDesc(subStr);
groupActivity4AppletDTO.setStatus(0);
// 付费群 查询用户是否已经购买过该群分类
if (groupActivity4AppletDTO.getPrice().compareTo(BigDecimal.ZERO) > 0) {
GroupQrcode4ClassifyVO userQrcode = bookQrcodeUserDao.getUserQrcode(wechatUserId, groupActivity4AppletDTO.getClassifyId());
if (userQrcode != null && userQrcode.getGroupQrcodeId() != null) {
groupActivity4AppletDTO.setStatus(1);
}
}
//头像列表从缓存里取
List<String> headUrlList = this.getHeadUrlList(groupActivity4AppletDTO.getUserNumber(), groupActivity4AppletDTO.getBookGroupQrcodeId());
groupActivity4AppletDTO.setHeadUrlList(headUrlList);
......@@ -260,7 +269,7 @@ public class AppletGroupSearchRecordBizImpl implements AppletGroupSearchRecordBi
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);
PageBeanNew<AppletGroupManageDTO> pageBeanNew = pcloudGroupActivityBiz.getGroupListByBookTemplet(wechatUserId, bookcaseDTO.getTempletId(), bookcaseDTO.getSecondTempletId(), bookcaseDTO.getGradeLabelId(), bookcaseDTO.getSubjectLabelId(), currentPage, numPerPage);
return pageBeanNew;
}
......
......@@ -96,4 +96,6 @@ public interface AppletUserBookcaseDao extends BaseDao<AppletUserBookcase> {
* * @param null
*/
List<Long> getBookIdsByIds(List<Long> ids);
AppletUserBookcaseDTO getUserBookInfoByWechatUserId(Long wechatUserId, Long bookId);
}
......@@ -117,4 +117,12 @@ public class AppletUserBookcaseDaoImpl extends BaseDaoImpl<AppletUserBookcase> i
map.put("ids", ids);
return getSessionTemplate().selectList(getStatement("getBookIdsByIds"), map);
}
@Override
public AppletUserBookcaseDTO getUserBookInfoByWechatUserId(Long wechatUserId, Long bookId) {
Map<String, Long> map = new HashMap<>();
map.put("wechatUserId", wechatUserId);
map.put("bookId", bookId);
return getSessionTemplate().selectOne(getStatement("getUserBookInfoByWechatUserId"),map);
}
}
......@@ -4,6 +4,7 @@ import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
......@@ -84,4 +85,10 @@ public class AppletGroupManageDTO extends BaseEntity {
@ApiModelProperty("学舍群话语")
private List<AppletGroupStatementDTO> statementDTOList;
@ApiModelProperty("入群价格")
private BigDecimal price;
@ApiModelProperty("购买状态 1已购买 0未购买")
private Integer status;
}
\ No newline at end of file
......@@ -56,7 +56,7 @@ public class AppletGroupManageFacade {
if(!NumberUtil.isNumber(wechatUserId)){
throw BookBizException.PARAM_DELETION;
}
return new ResponseDto<>(appletGroupManageBiz.getList4Applet(recommend, currentPage, numPerPage));
return new ResponseDto<>(appletGroupManageBiz.getList4Applet(wechatUserId, recommend, currentPage, numPerPage));
}
@ApiOperation("新增社群")
......@@ -134,7 +134,7 @@ public class AppletGroupManageFacade {
if(!NumberUtil.isNumber(wechatUserId)){
throw BookBizException.PARAM_DELETION;
}
return new ResponseDto<>(appletGroupSearchRecordBiz.getTishBookSchoolList(bookGroupId));
return new ResponseDto<>(appletGroupSearchRecordBiz.getTishBookSchoolList(wechatUserId, bookGroupId));
}
@ApiOperation("用户社群书记录id列表")
......
......@@ -537,6 +537,15 @@ public class AppletHomeFacade {
return new ResponseDto<>(appletUserBookcaseBiz.listByWechatUserId(wechatUserId,currentPage,numPerPage));
}
@ApiOperation("小程序首页书籍信息")
@GetMapping("getUserBookInfoByWechatUserId")
public ResponseDto<AppletUserBookcaseDTO> getUserBookInfoByWechatUserId (
@CookieValue("userInfo") String userInfo,
@RequestParam(value = "bookId") @ApiParam("BookId") Long bookId ){
Long wechatUserId = Cookie.getId(userInfo,Cookie._WECHAT_USER_ID);
return new ResponseDto<>(appletUserBookcaseBiz.getUserBookInfoByWechatUserId(wechatUserId,bookId));
}
@ApiOperation("新增用户资源点击记录")
@PostMapping("addUserClickRecord")
public ResponseDto<?> addUserClickRecord(
......
package com.pcloud.book.group.dto;
import java.io.Serializable;
import java.math.BigDecimal;
import lombok.Data;
......@@ -77,4 +78,8 @@ public class GroupQrcodeDTO implements Serializable {
*社群码id
*/
private Long bookGroupId;
/**
* 群分类价格
*/
private BigDecimal price;
}
......@@ -9,6 +9,7 @@ import com.pcloud.book.group.dto.GroupQrcodeBaseDTO;
import com.pcloud.book.group.dto.GroupQrcodeInfo4Advertising;
import com.pcloud.book.group.dto.ProAssocGroupAndUserNumberDTO;
import com.pcloud.book.group.service.BookGroupClassifyService;
import com.pcloud.book.group.vo.ClassifyVO;
import com.pcloud.book.group.vo.GroupQrcode4ClassifyVO;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.utils.ResponseHandleUtil;
......@@ -139,4 +140,14 @@ public class BookGroupClassifyServiceImpl implements BookGroupClassifyService {
}
return ResponseHandleUtil.toResponse(groupQrcode4ClassifyDTO);
}
@Override
public ResponseEntity<ResponseDto<BigDecimal>> getClassifyPrice(Long classifyId) {
BigDecimal bigDecimal = new BigDecimal(0);
ClassifyVO classify = bookGroupClassifyBiz.getClassify(classifyId);
if (classify!=null && classify.getPrice()!=null){
bigDecimal = classify.getPrice();
}
return ResponseHandleUtil.toResponse(bigDecimal);
}
}
......@@ -61,7 +61,7 @@ public interface PcloudGroupActivityBiz {
* @date:2020/6/8 10:49
* * @param null
*/
PageBeanNew<AppletGroupManageDTO> getGroupListByBookTemplet(Long firstClassify, Long secondClassify, Long gradeLabelId, Long subjectLabelId, Integer currentPage, Integer numPerPage);
PageBeanNew<AppletGroupManageDTO> getGroupListByBookTemplet(Long wechatUserId, Long firstClassify, Long secondClassify, Long gradeLabelId, Long subjectLabelId, Integer currentPage, Integer numPerPage);
List<GroupActivity4AppletDTO> getTishBookSchoolListWrap(BaseTempletClassify baseTempletClassify, Integer limit);
......
......@@ -17,8 +17,9 @@ import com.pcloud.book.consumer.label.LabelConsr;
import com.pcloud.book.consumer.reader.ReaderConsr;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.group.biz.GroupQrcodeBiz;
import com.pcloud.book.group.dao.BookQrcodeUserDao;
import com.pcloud.book.group.vo.ClassifyQrcodeVO;
import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO;
import com.pcloud.book.group.vo.GroupQrcode4ClassifyVO;
import com.pcloud.book.reading.biz.ReadingActivityBiz;
import com.pcloud.book.rightsSetting.biz.RightsSettingBiz;
import com.pcloud.book.rightsSetting.entity.BaseTempletClassify;
......@@ -51,6 +52,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
......@@ -91,6 +93,8 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz {
private RightsSettingTitleMapper rightsSettingTitleMapper;
@Autowired
private AppletGroupSearchRecordBiz appletGroupSearchRecordBiz;
@Autowired
private BookQrcodeUserDao bookQrcodeUserDao;
@ParamLog("保存共读活动")
@Override
......@@ -344,7 +348,7 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz {
}
@Override
public PageBeanNew<AppletGroupManageDTO> getGroupListByBookTemplet(Long firstClassify, Long secondClassify, Long gradeLabelId, Long subjectLabelId, Integer currentPage, Integer numPerPage) {
public PageBeanNew<AppletGroupManageDTO> getGroupListByBookTemplet(Long wechatUserId, 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<>());
......@@ -365,6 +369,14 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz {
return new PageBeanNew<>(currentPage,numPerPage,0,new ArrayList<>());
}
for (AppletGroupManageDTO activity4AppletDTO : list.getRecordList()) {
activity4AppletDTO.setStatus(0);
// 付费群 查询用户是否已经购买过该群分类
if (activity4AppletDTO.getPrice().compareTo(BigDecimal.ZERO) > 0) {
GroupQrcode4ClassifyVO userQrcode = bookQrcodeUserDao.getUserQrcode(wechatUserId, activity4AppletDTO.getClassifyId());
if (userQrcode != null && userQrcode.getGroupQrcodeId() != null) {
activity4AppletDTO.setStatus(1);
}
}
String filterStr = StringUtilParent.replaceHtml(activity4AppletDTO.getDesc());
String subStr = filterStr.length() > 60 ? filterStr.substring(0, 60) + "..." : filterStr;
activity4AppletDTO.setCutDesc(subStr);
......
......@@ -7,6 +7,7 @@ import com.pcloud.book.applet.dto.AppletGroupStatementDTO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
import lombok.Data;
......@@ -67,4 +68,9 @@ public class GroupActivity4AppletDTO implements Serializable {
@ApiModelProperty("群分类名称")
private String classifyName;
@ApiModelProperty("入群价格")
private BigDecimal price;
@ApiModelProperty("购买状态 1已购买 0未购买")
private Integer status;
}
......@@ -60,7 +60,8 @@
b.`name`,
b.description as `desc`,
b.book_group_classify_id AS classifyId,
c.book_group_id bookGroupId
c.book_group_id bookGroupId,
c.price
FROM
applet_group_manage a
INNER JOIN pcloud_group_activity b ON a.group_activity_id = b.id AND b.is_delete = 0
......
......@@ -226,4 +226,37 @@
</foreach>
</select>
<select id="getUserBookInfoByWechatUserId" parameterType="long" resultType="com.pcloud.book.applet.dto.AppletUserBookcaseDTO">
SELECT
c.id id,
c.book_id bookId,
c.channel_id channelId,
c.adviser_id adviserId,
b.BOOK_NAME bookName,
b.COVER_IMG coverImg,
c.create_time createTime,
b.AUTHOR author,
b.PUBLISH publish,
a.SECOND_TEMPLET_ID secondTempletId,
a.TEMPLET_ID templetId,
d.join_group_type joinGroupType,
d.id bookGroupId,
b.ISBN isbn,
a.GRA_LABEL_ID gradeLabelId,
a.SUB_LABEL_ID subjectLabelId,
a.vol_label_id volLabelId,
IF(d.join_group_type=1 OR d.related_book_group_id>0,1,0) hasGroup,
c.rights_setting_id rightsSettingId,
r.count rightsSettingCount
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
INNER JOIN BOOK b ON c.BOOK_ID = b.BOOK_ID AND b.IS_DELETE = 0
LEFT JOIN book_group d ON d.BOOK_ID = a.BOOK_ID and d.create_user=c.adviser_id and d.channel_id=c.channel_id AND d.IS_DELETE = 0
LEFT JOIN rights_setting r ON c.rights_setting_id = r.id AND d.join_group_type=4
WHERE c.wechat_user_id=#{wechatUserId} AND c.book_id = #{bookId}
ORDER BY c.create_time DESC
LIMIT 1
</select>
</mapper>
\ No newline at end of file
......@@ -885,7 +885,8 @@
f.classify classify,
r.qrcode_url qrcodeUrl,
f.classify_introduce classifyIntroduce,
f.book_group_id bookGroupId
f.book_group_id bookGroupId,
f.price
FROM
book_group_qrcode r
LEFT JOIN book_group_classify f ON r.classify_id = f.id
......
......@@ -325,7 +325,8 @@
a.first_classify AS firstClassify,
a.second_classify AS secondClassify,
a.grade_label_id AS gradeLabelId,
a.subject_label_id AS subjectLabelId
a.subject_label_id AS subjectLabelId,
c.price
FROM
pcloud_group_activity a
INNER JOIN book_group_classify c ON a.book_group_classify_id = c.id AND c.is_delete = 0
......
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