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;
}
......
......@@ -89,31 +89,31 @@ public class AppletUserBookcaseBizImpl implements AppletUserBookcaseBiz {
@Override
public PageBeanNew<AppletUserBookcaseDTO> listByWechatUserId(Long wechatUserId, Integer currentPage, Integer numPerPage) {
String key = AppletConstants.USER_BOOK_CASE+wechatUserId;
String field = currentPage+"-"+numPerPage;
String countKey = AppletConstants.USER_BOOK_CASE_COUNT+wechatUserId;
List<AppletUserBookcaseDTO> bookcaseDTOS = JedisClusterUtils.hgetJson2List(key,field,AppletUserBookcaseDTO.class);
Integer count =0;
String key = AppletConstants.USER_BOOK_CASE + wechatUserId;
String field = currentPage + "-" + numPerPage;
String countKey = AppletConstants.USER_BOOK_CASE_COUNT + wechatUserId;
List<AppletUserBookcaseDTO> bookcaseDTOS = JedisClusterUtils.hgetJson2List(key, field, AppletUserBookcaseDTO.class);
Integer count = 0;
String countStr = JedisClusterUtils.get(countKey);
if (!StringUtil.isEmpty(countStr)){
if (!StringUtil.isEmpty(countStr)) {
count = Integer.valueOf(countStr);
}
if (!ListUtils.isEmpty(bookcaseDTOS) && count>0){
return new PageBeanNew<>(currentPage,numPerPage,count,bookcaseDTOS);
if (!ListUtils.isEmpty(bookcaseDTOS) && count > 0) {
return new PageBeanNew<>(currentPage, numPerPage, count, bookcaseDTOS);
}
Map<String,Object> map = new HashMap<>();
map.put("wechatUserId",wechatUserId);
Map<String, Object> map = new HashMap<>();
map.put("wechatUserId", wechatUserId);
PageBeanNew<AppletUserBookcaseDTO> pageBeanNew = appletUserBookcaseDao.listPageNew(
new PageParam(currentPage,numPerPage),map,"listByWechatUserId");
if (null == pageBeanNew || ListUtils.isEmpty(pageBeanNew.getRecordList())){
return new PageBeanNew<>(currentPage,numPerPage,0,new ArrayList<>());
new PageParam(currentPage, numPerPage), map, "listByWechatUserId");
if (null == pageBeanNew || ListUtils.isEmpty(pageBeanNew.getRecordList())) {
return new PageBeanNew<>(currentPage, numPerPage, 0, new ArrayList<>());
}
fillTempletName(pageBeanNew.getRecordList());
fillRightsSettingAndResourceCount(pageBeanNew.getRecordList());
JedisClusterUtils.hset2Json(key,field,pageBeanNew.getRecordList());
JedisClusterUtils.set(countKey,String.valueOf(pageBeanNew.getTotalCount()));
JedisClusterUtils.expire(key,60);
JedisClusterUtils.expire(countKey,60);
JedisClusterUtils.hset2Json(key, field, pageBeanNew.getRecordList());
JedisClusterUtils.set(countKey, String.valueOf(pageBeanNew.getTotalCount()));
JedisClusterUtils.expire(key, 60);
JedisClusterUtils.expire(countKey, 60);
return pageBeanNew;
}
......@@ -149,34 +149,34 @@ public class AppletUserBookcaseBizImpl implements AppletUserBookcaseBiz {
@Override
public Map<String, Object> getUserClickStatistic(Long wechatUserId, Long bookId, Long channelId, Long adviserId) {
//社群书和现代纸书下资源
List<BookServeDTO> serveDTOList = bookGroupBiz.getBookAndBookGroupServeIds(adviserId,bookId,channelId);
if (ListUtils.isEmpty(serveDTOList)){
List<BookServeDTO> serveDTOList = bookGroupBiz.getBookAndBookGroupServeIds(adviserId, bookId, channelId);
if (ListUtils.isEmpty(serveDTOList)) {
return new HashMap<>();
}
Integer clickCount = 0;
String startDate = DateUtils.formatDate(new Date(), DateUtils.DATE_FORMAT_DATEONLY);
List<Long> appIds = serveDTOList.stream().filter(s->s.getServeType().equalsIgnoreCase("APP")).
List<Long> appIds = serveDTOList.stream().filter(s -> s.getServeType().equalsIgnoreCase("APP")).
map(BookServeDTO::getServeId).distinct().collect(Collectors.toList());
List<Long> productIds = serveDTOList.stream().filter(s->s.getServeType().equalsIgnoreCase("PRODUCT")).
List<Long> productIds = serveDTOList.stream().filter(s -> s.getServeType().equalsIgnoreCase("PRODUCT")).
map(BookServeDTO::getServeId).distinct().collect(Collectors.toList());
if (!ListUtils.isEmpty(appIds)){
Integer appCount = appletUserBookcaseDao.getUserClickServerCount(wechatUserId,bookId,channelId,adviserId,appIds,"APP");
if (appCount>0){
clickCount = clickCount+appCount;
startDate = appletUserBookcaseDao.getMinClickTime(wechatUserId,bookId,channelId,adviserId,appIds,"APP");
if (!ListUtils.isEmpty(appIds)) {
Integer appCount = appletUserBookcaseDao.getUserClickServerCount(wechatUserId, bookId, channelId, adviserId, appIds, "APP");
if (appCount > 0) {
clickCount = clickCount + appCount;
startDate = appletUserBookcaseDao.getMinClickTime(wechatUserId, bookId, channelId, adviserId, appIds, "APP");
}
}
if (!ListUtils.isEmpty(productIds)){
Integer productCount = appletUserBookcaseDao.getUserClickServerCount(wechatUserId,bookId,channelId,adviserId,productIds,"PRODUCT");
if (productCount>0){
clickCount = clickCount+productCount;
String dateStr = appletUserBookcaseDao.getMinClickTime(wechatUserId,bookId,channelId,adviserId,productIds,"PRODUCT");
if (!StringUtil.isEmpty(dateStr) && DateUtils.getDateByStr(dateStr).before(DateUtils.getDateByStr(startDate))){
if (!ListUtils.isEmpty(productIds)) {
Integer productCount = appletUserBookcaseDao.getUserClickServerCount(wechatUserId, bookId, channelId, adviserId, productIds, "PRODUCT");
if (productCount > 0) {
clickCount = clickCount + productCount;
String dateStr = appletUserBookcaseDao.getMinClickTime(wechatUserId, bookId, channelId, adviserId, productIds, "PRODUCT");
if (!StringUtil.isEmpty(dateStr) && DateUtils.getDateByStr(dateStr).before(DateUtils.getDateByStr(startDate))) {
startDate = dateStr;
}
}
}
Map<String,Object> map = new HashMap<>();
Map<String, Object> map = new HashMap<>();
map.put("startDate", startDate);
map.put("clickCount", clickCount);
return map;
......@@ -193,26 +193,26 @@ public class AppletUserBookcaseBizImpl implements AppletUserBookcaseBiz {
}
});
List<Long> classifyTempletIds = recordList.stream().filter(s -> s.getJoinGroupType() != null && JoinGroupTypeEnum.XIAORUI.getCode().equals(s.getJoinGroupType())).map(s -> s.getTempletId()).distinct().collect(Collectors.toList());
Map<Integer,Integer> classifyMap=new HashMap<>();
if(!ListUtils.isEmpty(classifyTempletIds)){
Map<Integer, Integer> classifyMap = new HashMap<>();
if (!ListUtils.isEmpty(classifyTempletIds)) {
List<BookRaysClassify> listByIds = bookRaysClassifyDao.getClassifyListByIds(classifyTempletIds);
if(!ListUtils.isEmpty(listByIds)){
classifyMap=listByIds.stream().collect(Collectors.toMap(a->a.getBookTemplateId(),a->a.getRaysClassifyId(),(k1,k2)->k2));
if (!ListUtils.isEmpty(listByIds)) {
classifyMap = listByIds.stream().collect(Collectors.toMap(a -> a.getBookTemplateId(), a -> a.getRaysClassifyId(), (k1, k2) -> k2));
}
}
Map<Long, AssistTempletDTO> assistTempletDTOMap = assistTempletConsr.mapByIds(templetIds);
for (AppletUserBookcaseDTO bookcaseDTO:recordList){
for (AppletUserBookcaseDTO bookcaseDTO : recordList) {
Long secondTempletId = bookcaseDTO.getSecondTempletId();
Long templetId = bookcaseDTO.getTempletId();
if (secondTempletId!=null&&assistTempletDTOMap!=null) {
if (secondTempletId != null && assistTempletDTOMap != null) {
AssistTempletDTO templetDTO = assistTempletDTOMap.get(secondTempletId);
bookcaseDTO.setSecondTempletName(Optional.ofNullable(templetDTO).map(AssistTempletDTO::getTempletName).orElse(null));
}
if (templetId!=null && assistTempletDTOMap!=null) {
if (templetId != null && assistTempletDTOMap != null) {
AssistTempletDTO templetDTO = assistTempletDTOMap.get(templetId);
bookcaseDTO.setTempletName(Optional.ofNullable(templetDTO).map(AssistTempletDTO::getTempletName).orElse(null));
}
if (!MapUtils.isEmpty(classifyMap) && null!=bookcaseDTO.getTempletId() && classifyMap.containsKey(bookcaseDTO.getTempletId().intValue())){
if (!MapUtils.isEmpty(classifyMap) && null != bookcaseDTO.getTempletId() && classifyMap.containsKey(bookcaseDTO.getTempletId().intValue())) {
bookcaseDTO.setClassifyId(classifyMap.get(bookcaseDTO.getTempletId().intValue()));
}
}
......@@ -256,7 +256,7 @@ public class AppletUserBookcaseBizImpl implements AppletUserBookcaseBiz {
@Override
public void deleteByIds(List<Long> ids, Long wechatUserId) {
if (ListUtils.isEmpty(ids)){
if (ListUtils.isEmpty(ids)) {
return;
}
esBookAndAdviserBiz.updateBookAndAdviserToES(appletUserBookcaseDao.getBookIdsByIds(ids));
......@@ -274,7 +274,7 @@ public class AppletUserBookcaseBizImpl implements AppletUserBookcaseBiz {
@Override
@ParamLog("获取用户当前本书的阅读方式")
public AppletUserBookcase getUserReadType(Long wechatUserId, Long bookId, Long adviserId, Long channelId) {
AppletUserBookcase appletUserBookcase = appletUserBookcaseDao.getUserReadType(wechatUserId,bookId,adviserId,channelId);
AppletUserBookcase appletUserBookcase = appletUserBookcaseDao.getUserReadType(wechatUserId, bookId, adviserId, channelId);
return appletUserBookcase;
}
......@@ -282,7 +282,7 @@ public class AppletUserBookcaseBizImpl implements AppletUserBookcaseBiz {
public void randomChangeBook(Long wechatUserId) {
List<AppletUserBookcase> bookcaseList = appletUserBookcaseDao.getListByUserId(wechatUserId);
//无书或只有一本不处理
if (ListUtils.isEmpty(bookcaseList) || bookcaseList.size()==1){
if (ListUtils.isEmpty(bookcaseList) || bookcaseList.size() == 1) {
return;
}
//去除最近一本书
......@@ -290,8 +290,8 @@ public class AppletUserBookcaseBizImpl implements AppletUserBookcaseBiz {
//随机取一本书埋点
AppletUserBookcase appletUserBookcase = bookcaseList.get(new Random().nextInt(bookcaseList.size()));
this.addUserBook(appletUserBookcase);
ThreadPoolUtils.OTHER_THREAD_POOL.execute(()->{
this.listByWechatUserId(wechatUserId,0,1);
ThreadPoolUtils.OTHER_THREAD_POOL.execute(() -> {
this.listByWechatUserId(wechatUserId, 0, 1);
});
}
......@@ -314,4 +314,16 @@ public class AppletUserBookcaseBizImpl implements AppletUserBookcaseBiz {
return map;
}
@Override
public AppletUserBookcaseDTO getUserBookInfoByWechatUserId(Long wechatUserId, Long bookId) {
AppletUserBookcaseDTO userBookInfoByWechatUserId = appletUserBookcaseDao.getUserBookInfoByWechatUserId(wechatUserId, bookId);
if (userBookInfoByWechatUserId == null){
return new AppletUserBookcaseDTO();
}
List<AppletUserBookcaseDTO> appletUserBookcaseDTOS = Collections.singletonList(userBookInfoByWechatUserId);
fillTempletName(appletUserBookcaseDTOS);
fillRightsSettingAndResourceCount(appletUserBookcaseDTOS);
return appletUserBookcaseDTOS.get(0);
}
}
......@@ -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