Commit e0e12510 by 桂前礼 Committed by 桂前礼

feat: [1003050] 学舍付费群与群分类列表优化

parent 096cf9ee
...@@ -94,5 +94,5 @@ public interface AppletUserBookcaseBiz { ...@@ -94,5 +94,5 @@ public interface AppletUserBookcaseBiz {
*/ */
Map<String,Integer> mapBookUserCountList(List<Long> bookIds); Map<String,Integer> mapBookUserCountList(List<Long> bookIds);
AppletUserBookcaseDTO getUserBookInfoByWechatUserId(Long wechatUserId, Long bookId); AppletUserBookcaseDTO getUserBookInfoByWechatUserId(Long bookId,Long channelId,Long adviserId);
} }
...@@ -11,6 +11,7 @@ import com.pcloud.book.applet.entity.AppletGroupManage; ...@@ -11,6 +11,7 @@ import com.pcloud.book.applet.entity.AppletGroupManage;
import com.pcloud.book.consumer.label.LabelConsr; import com.pcloud.book.consumer.label.LabelConsr;
import com.pcloud.book.consumer.reader.ReaderConsr; import com.pcloud.book.consumer.reader.ReaderConsr;
import com.pcloud.book.group.biz.GroupQrcodeBiz; import com.pcloud.book.group.biz.GroupQrcodeBiz;
import com.pcloud.book.group.dao.BookClassifyBuyRecordDao;
import com.pcloud.book.group.dao.BookQrcodeUserDao; import com.pcloud.book.group.dao.BookQrcodeUserDao;
import com.pcloud.book.group.vo.ClassifyQrcodeVO; import com.pcloud.book.group.vo.ClassifyQrcodeVO;
import com.pcloud.book.group.vo.GroupQrcode4ClassifyVO; import com.pcloud.book.group.vo.GroupQrcode4ClassifyVO;
...@@ -57,6 +58,8 @@ public class AppletGroupManageBizImpl implements AppletGroupManageBiz { ...@@ -57,6 +58,8 @@ public class AppletGroupManageBizImpl implements AppletGroupManageBiz {
private GroupQrcodeBiz groupQrcodeBiz; private GroupQrcodeBiz groupQrcodeBiz;
@Autowired @Autowired
private BookQrcodeUserDao bookQrcodeUserDao; private BookQrcodeUserDao bookQrcodeUserDao;
@Autowired
private BookClassifyBuyRecordDao bookClassifyBuyRecordDao;
@Override @Override
public AppletGroupManage getById(Long id) { public AppletGroupManage getById(Long id) {
...@@ -127,8 +130,7 @@ public class AppletGroupManageBizImpl implements AppletGroupManageBiz { ...@@ -127,8 +130,7 @@ public class AppletGroupManageBizImpl implements AppletGroupManageBiz {
dto.setStatus(0); dto.setStatus(0);
// 付费群 查询用户是否已经购买过该群分类 // 付费群 查询用户是否已经购买过该群分类
if (dto.getPrice().compareTo(BigDecimal.ZERO) > 0) { if (dto.getPrice().compareTo(BigDecimal.ZERO) > 0) {
GroupQrcode4ClassifyVO userQrcode = bookQrcodeUserDao.getUserQrcode(wechatUserId, dto.getClassifyId()); if (bookClassifyBuyRecordDao.checkUserBuy(wechatUserId, dto.getClassifyId())) {
if (userQrcode != null && userQrcode.getGroupQrcodeId() != null) {
dto.setStatus(1); dto.setStatus(1);
} }
} }
......
package com.pcloud.book.applet.biz.impl; package com.pcloud.book.applet.biz.impl;
import com.google.common.collect.Maps;
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.biz.AppletUserBookcaseBiz;
import com.pcloud.book.applet.contants.AppletConstants; import com.pcloud.book.applet.contants.AppletConstants;
...@@ -12,16 +13,22 @@ import com.pcloud.book.applet.dto.AppletUserBookcaseDTO; ...@@ -12,16 +13,22 @@ 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;
import com.pcloud.book.book.dto.BookAdviserDto;
import com.pcloud.book.consumer.reader.ReaderConsr; import com.pcloud.book.consumer.reader.ReaderConsr;
import com.pcloud.book.group.biz.BookGroupBiz;
import com.pcloud.book.group.biz.BookGroupClassifyBiz; import com.pcloud.book.group.biz.BookGroupClassifyBiz;
import com.pcloud.book.group.biz.GroupQrcodeBiz;
import com.pcloud.book.group.dao.BookClassifyBuyRecordDao;
import com.pcloud.book.group.dao.BookGroupDao; import com.pcloud.book.group.dao.BookGroupDao;
import com.pcloud.book.group.dao.BookQrcodeUserDao; import com.pcloud.book.group.dao.BookQrcodeUserDao;
import com.pcloud.book.group.dao.GroupQrcodeDao; import com.pcloud.book.group.dao.GroupQrcodeDao;
import com.pcloud.book.group.dto.BookGroupDTO; import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.BookServeDTO;
import com.pcloud.book.group.dto.GroupQrcodeDTO; 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.group.vo.GroupQrcode4ClassifyVO;
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.skill.biz.PcloudGroupActivityBiz; 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;
...@@ -45,6 +52,7 @@ import java.util.ArrayList; ...@@ -45,6 +52,7 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
/** /**
* (AppletGroupSearchRecord)表服务实现类 * (AppletGroupSearchRecord)表服务实现类
...@@ -85,7 +93,12 @@ public class AppletGroupSearchRecordBizImpl implements AppletGroupSearchRecordBi ...@@ -85,7 +93,12 @@ public class AppletGroupSearchRecordBizImpl implements AppletGroupSearchRecordBi
private PcloudGroupActivityBiz pcloudGroupActivityBiz; private PcloudGroupActivityBiz pcloudGroupActivityBiz;
@Autowired @Autowired
private BookQrcodeUserDao bookQrcodeUserDao; private BookQrcodeUserDao bookQrcodeUserDao;
@Autowired
private BookGroupBiz bookGroupBiz;
@Autowired
private BookClassifyBuyRecordDao bookClassifyBuyRecordDao;
@Autowired
private GroupQrcodeBiz groupQrcodeBiz;
@Override @Override
@ParamLog("通过ID查询单条数据") @ParamLog("通过ID查询单条数据")
...@@ -110,10 +123,32 @@ public class AppletGroupSearchRecordBizImpl implements AppletGroupSearchRecordBi ...@@ -110,10 +123,32 @@ public class AppletGroupSearchRecordBizImpl implements AppletGroupSearchRecordBi
} else { } else {
dto.setClassify4WechatVOList(bookGroupClassifyBiz.listClassify4Wechat(dto.getBookGroupId(), dto.getWechatUserId())); dto.setClassify4WechatVOList(bookGroupClassifyBiz.listClassify4Wechat(dto.getBookGroupId(), dto.getWechatUserId()));
} }
// 权益、资源、社群
fillRightsSettingAndResourceCount(recordList);
} }
return pageBeanNew; return pageBeanNew;
} }
private void fillRightsSettingAndResourceCount(List<AppletGroupSearchRecordDTO> recordList) {
if (ListUtils.isEmpty(recordList)) {
return;
}
for (AppletGroupSearchRecordDTO bookcaseDTO : recordList) {
//权益
if (JoinGroupTypeEnum.XIAORUI.getCode().equals(bookcaseDTO.getJoinGroupType())) {
RightsSettingDto rightsSettingDto = rightsSettingBiz.getRightsSettingByBookId4AppletHome(bookcaseDTO.getBookId(), bookcaseDTO.getAdviserId(), bookcaseDTO.getChannelId());
if (null == rightsSettingDto) {
continue;
}
bookcaseDTO.setRightsSettingCount(rightsSettingDto.getCount());
}
//资源数量
List<BookServeDTO> serveDTOList = bookGroupBiz.getBookAndBookGroupServeIds(bookcaseDTO.getAdviserId(), bookcaseDTO.getBookId(), bookcaseDTO.getChannelId());
bookGroupBiz.removeCanNotBuy(serveDTOList);
bookcaseDTO.setResourceCount(serveDTOList.size());
}
}
@Override @Override
@ParamLog("新增") @ParamLog("新增")
public Long insert(AppletGroupSearchRecord appletGroupSearchRecord) { public Long insert(AppletGroupSearchRecord appletGroupSearchRecord) {
...@@ -121,7 +156,10 @@ public class AppletGroupSearchRecordBizImpl implements AppletGroupSearchRecordBi ...@@ -121,7 +156,10 @@ public class AppletGroupSearchRecordBizImpl implements AppletGroupSearchRecordBi
throw BizException.PARAM_DELETION; throw BizException.PARAM_DELETION;
} }
BookGroupDTO bookGroupDTO = bookGroupDao.getDTOByBookId(appletGroupSearchRecord.getBookId(), appletGroupSearchRecord.getChannelId(), appletGroupSearchRecord.getAdviserId()); BookGroupDTO bookGroupDTO = bookGroupDao.getDTOByBookId(appletGroupSearchRecord.getBookId(), appletGroupSearchRecord.getChannelId(), appletGroupSearchRecord.getAdviserId());
if (bookGroupDTO != null && bookGroupDTO.getId() != null && bookGroupDTO.getId() > 0) { // 判断是否包含社群标识
if (bookGroupDTO != null && bookGroupDTO.getId() != null && bookGroupDTO.getId() > 0 && (
(bookGroupDTO.getJoinGroupType() != null && bookGroupDTO.getJoinGroupType() == 1) || (bookGroupDTO.getRelatedBookGroupId() != null && bookGroupDTO.getRelatedBookGroupId() > 0))
) {
appletGroupSearchRecord.setBookGroupId(bookGroupDTO.getId()); appletGroupSearchRecord.setBookGroupId(bookGroupDTO.getId());
appletGroupSearchRecordDao.insert(appletGroupSearchRecord); appletGroupSearchRecordDao.insert(appletGroupSearchRecord);
return appletGroupSearchRecord.getId(); return appletGroupSearchRecord.getId();
...@@ -183,11 +221,48 @@ public class AppletGroupSearchRecordBizImpl implements AppletGroupSearchRecordBi ...@@ -183,11 +221,48 @@ public class AppletGroupSearchRecordBizImpl implements AppletGroupSearchRecordBi
appletDTO.setName(qrcodeDTO.getGroupName()); appletDTO.setName(qrcodeDTO.getGroupName());
appletDTO.setDesc(qrcodeDTO.getClassifyIntroduce()); appletDTO.setDesc(qrcodeDTO.getClassifyIntroduce());
appletDTO.setBookGroupId(bookGroupId); appletDTO.setBookGroupId(bookGroupId);
appletDTO.setRelatedBookGroupId(relatedGroupId);
appletDTO.setBookGroupQrcodeId(qrcodeDTO.getId()); appletDTO.setBookGroupQrcodeId(qrcodeDTO.getId());
tishBookSchoolList.add(appletDTO); tishBookSchoolList.add(appletDTO);
} }
} }
} }
// 本书相关社群不足三个的,应该从平台端技能配置相关分类里拼社群
if (tishBookSchoolList.size()<3){
int num = 3 - tishBookSchoolList.size();
// 通过bookGroupId反查社群
BookAdviserDto bookAdviser = bookAdviserDao.getByBookGroupId(bookGroupId);
BaseTempletClassify baseTempletClassify = new BaseTempletClassify();
baseTempletClassify.setFirstClassify(bookAdviser.getTempletId());
baseTempletClassify.setSecondClassify(bookAdviser.getSecondTempletId());
baseTempletClassify.setGradeLabelId(bookAdviser.getGraLabelId());
baseTempletClassify.setSubjectLabelId(bookAdviser.getSubLabelId());
// 部分分类需要忽略二级分类
rightsSettingBiz.setClassifyAndLabel(baseTempletClassify);
Map<String, Object> paraMap = Maps.newHashMap();
paraMap.put("firstClassify", baseTempletClassify.getFirstClassify());
paraMap.put("secondClassify", baseTempletClassify.getSecondClassify());
paraMap.put("gradeLabelId", baseTempletClassify.getGradeLabelId());
paraMap.put("subjectLabelId", baseTempletClassify.getSubjectLabelId());
List<Long> classifyIds = pcloudGroupActivityDao.getGroupClassifyIds(paraMap);
List<Long> collect = tishBookSchoolList.stream().map(GroupActivity4AppletDTO::getClassifyId).distinct().collect(Collectors.toList());
classifyIds.removeAll(collect);
if (!ListUtils.isEmpty(classifyIds)){
List<GroupQrcodeDTO> qrcodeDTOS = groupQrcodeDao.getGroupQrcodeByClassifyIds(classifyIds);
if (!ListUtils.isEmpty(qrcodeDTOS)) {
for (GroupQrcodeDTO qrcodeDTO : qrcodeDTOS) {
GroupActivity4AppletDTO appletDTO = new GroupActivity4AppletDTO();
BeanUtils.copyProperties(qrcodeDTO, appletDTO);
appletDTO.setName(qrcodeDTO.getGroupName());
appletDTO.setDesc(qrcodeDTO.getClassifyIntroduce());
appletDTO.setBookGroupQrcodeId(qrcodeDTO.getId());
tishBookSchoolList.add(appletDTO);
}
}
}
}
if (ListUtils.isEmpty(tishBookSchoolList)) { if (ListUtils.isEmpty(tishBookSchoolList)) {
return new ArrayList<>(); return new ArrayList<>();
} }
...@@ -198,8 +273,7 @@ public class AppletGroupSearchRecordBizImpl implements AppletGroupSearchRecordBi ...@@ -198,8 +273,7 @@ public class AppletGroupSearchRecordBizImpl implements AppletGroupSearchRecordBi
groupActivity4AppletDTO.setStatus(0); groupActivity4AppletDTO.setStatus(0);
// 付费群 查询用户是否已经购买过该群分类 // 付费群 查询用户是否已经购买过该群分类
if (groupActivity4AppletDTO.getPrice().compareTo(BigDecimal.ZERO) > 0) { if (groupActivity4AppletDTO.getPrice().compareTo(BigDecimal.ZERO) > 0) {
GroupQrcode4ClassifyVO userQrcode = bookQrcodeUserDao.getUserQrcode(wechatUserId, groupActivity4AppletDTO.getClassifyId()); if (bookClassifyBuyRecordDao.checkUserBuy(wechatUserId, groupActivity4AppletDTO.getClassifyId())) {
if (userQrcode != null && userQrcode.getGroupQrcodeId() != null) {
groupActivity4AppletDTO.setStatus(1); groupActivity4AppletDTO.setStatus(1);
} }
} }
......
...@@ -315,8 +315,8 @@ public class AppletUserBookcaseBizImpl implements AppletUserBookcaseBiz { ...@@ -315,8 +315,8 @@ public class AppletUserBookcaseBizImpl implements AppletUserBookcaseBiz {
} }
@Override @Override
public AppletUserBookcaseDTO getUserBookInfoByWechatUserId(Long wechatUserId, Long bookId) { public AppletUserBookcaseDTO getUserBookInfoByWechatUserId(Long bookId, Long channelId, Long adviserId) {
AppletUserBookcaseDTO userBookInfoByWechatUserId = appletUserBookcaseDao.getUserBookInfoByWechatUserId(wechatUserId, bookId); AppletUserBookcaseDTO userBookInfoByWechatUserId = appletUserBookcaseDao.getUserBookInfoByWechatUserId(bookId,channelId,adviserId);
if (userBookInfoByWechatUserId == null){ if (userBookInfoByWechatUserId == null){
return new AppletUserBookcaseDTO(); return new AppletUserBookcaseDTO();
} }
......
...@@ -97,5 +97,5 @@ public interface AppletUserBookcaseDao extends BaseDao<AppletUserBookcase> { ...@@ -97,5 +97,5 @@ public interface AppletUserBookcaseDao extends BaseDao<AppletUserBookcase> {
*/ */
List<Long> getBookIdsByIds(List<Long> ids); List<Long> getBookIdsByIds(List<Long> ids);
AppletUserBookcaseDTO getUserBookInfoByWechatUserId(Long wechatUserId, Long bookId); AppletUserBookcaseDTO getUserBookInfoByWechatUserId(Long bookId, Long channelId, Long adviserId);
} }
...@@ -119,9 +119,10 @@ public class AppletUserBookcaseDaoImpl extends BaseDaoImpl<AppletUserBookcase> i ...@@ -119,9 +119,10 @@ public class AppletUserBookcaseDaoImpl extends BaseDaoImpl<AppletUserBookcase> i
} }
@Override @Override
public AppletUserBookcaseDTO getUserBookInfoByWechatUserId(Long wechatUserId, Long bookId) { public AppletUserBookcaseDTO getUserBookInfoByWechatUserId(Long bookId, Long channelId, Long adviserId) {
Map<String, Long> map = new HashMap<>(); Map<String, Long> map = new HashMap<>();
map.put("wechatUserId", wechatUserId); map.put("channelId", channelId);
map.put("adviserId", adviserId);
map.put("bookId", bookId); map.put("bookId", bookId);
return getSessionTemplate().selectOne(getStatement("getUserBookInfoByWechatUserId"),map); return getSessionTemplate().selectOne(getStatement("getUserBookInfoByWechatUserId"),map);
} }
......
...@@ -91,4 +91,7 @@ public class AppletGroupManageDTO extends BaseEntity { ...@@ -91,4 +91,7 @@ public class AppletGroupManageDTO extends BaseEntity {
@ApiModelProperty("购买状态 1已购买 0未购买") @ApiModelProperty("购买状态 1已购买 0未购买")
private Integer status; private Integer status;
@ApiModelProperty("关联")
private Long relatedBookGroupId;
} }
\ No newline at end of file
...@@ -59,4 +59,17 @@ public class AppletGroupSearchRecordDTO implements Serializable { ...@@ -59,4 +59,17 @@ public class AppletGroupSearchRecordDTO implements Serializable {
@ApiModelProperty("isbn") @ApiModelProperty("isbn")
private String isbn; private String isbn;
@ApiModelProperty("关联bookGroupId")
private Long relatedBookGroupId;
@ApiModelProperty("社群码类型")
private Integer joinGroupType;
@ApiModelProperty("有关联社群")
private Boolean hasGroup;
@ApiModelProperty("权益数量")
private Integer rightsSettingCount;
@ApiModelProperty("资源数量")
private Integer resourceCount;
} }
\ No newline at end of file
...@@ -82,4 +82,7 @@ public class AppletUserBookcaseDTO extends BaseDto { ...@@ -82,4 +82,7 @@ public class AppletUserBookcaseDTO extends BaseDto {
private Integer resourceCount; private Integer resourceCount;
@ApiModelProperty("书刊访问数量") @ApiModelProperty("书刊访问数量")
private Integer bookUserCount; private Integer bookUserCount;
@ApiModelProperty("关联bookGroupId")
private Long relatedBookGroupId;
} }
...@@ -541,9 +541,11 @@ public class AppletHomeFacade { ...@@ -541,9 +541,11 @@ public class AppletHomeFacade {
@GetMapping("getUserBookInfoByWechatUserId") @GetMapping("getUserBookInfoByWechatUserId")
public ResponseDto<AppletUserBookcaseDTO> getUserBookInfoByWechatUserId ( public ResponseDto<AppletUserBookcaseDTO> getUserBookInfoByWechatUserId (
@CookieValue("userInfo") String userInfo, @CookieValue("userInfo") String userInfo,
@RequestParam(value = "bookId") @ApiParam("BookId") Long bookId ){ @RequestParam(value = "bookId") @ApiParam("BookId") Long bookId,
@RequestParam(value = "channelId") @ApiParam("channelId") Long channelId,
@RequestParam(value = "adviserId") @ApiParam("adviserId") Long adviserId){
Long wechatUserId = Cookie.getId(userInfo,Cookie._WECHAT_USER_ID); Long wechatUserId = Cookie.getId(userInfo,Cookie._WECHAT_USER_ID);
return new ResponseDto<>(appletUserBookcaseBiz.getUserBookInfoByWechatUserId(wechatUserId,bookId)); return new ResponseDto<>(appletUserBookcaseBiz.getUserBookInfoByWechatUserId(bookId,channelId,adviserId));
} }
@ApiOperation("新增用户资源点击记录") @ApiOperation("新增用户资源点击记录")
......
...@@ -3,7 +3,13 @@ ...@@ -3,7 +3,13 @@
*/ */
package com.pcloud.book.book.dao; package com.pcloud.book.book.dao;
import com.pcloud.book.book.dto.*; import com.pcloud.book.book.dto.AdviserBookInfoDTO;
import com.pcloud.book.book.dto.AdviserManageDto;
import com.pcloud.book.book.dto.AviserBookInfoParam;
import com.pcloud.book.book.dto.BookAdviserDto;
import com.pcloud.book.book.dto.BookCountAndAdviserIdDTO;
import com.pcloud.book.book.dto.BookCountByAdvisersDto;
import com.pcloud.book.book.dto.BookCountDto;
import com.pcloud.book.book.entity.BookAdviser; import com.pcloud.book.book.entity.BookAdviser;
import com.pcloud.common.core.dao.BaseDao; import com.pcloud.common.core.dao.BaseDao;
...@@ -263,4 +269,6 @@ public interface BookAdviserDao extends BaseDao<BookAdviser> { ...@@ -263,4 +269,6 @@ public interface BookAdviserDao extends BaseDao<BookAdviser> {
BookAdviserDto getOneMainBook(Long bookId); BookAdviserDto getOneMainBook(Long bookId);
Map<Long, BookAdviserDto> getByBookAdviserIds(List<Long> bookAdviserIds); Map<Long, BookAdviserDto> getByBookAdviserIds(List<Long> bookAdviserIds);
BookAdviserDto getByBookGroupId(Long bookGroupId);
} }
...@@ -269,4 +269,9 @@ public class BookAdviserDaoImpl extends BaseDaoImpl<BookAdviser> implements Book ...@@ -269,4 +269,9 @@ public class BookAdviserDaoImpl extends BaseDaoImpl<BookAdviser> implements Book
return super.getSqlSession().selectMap(this.getStatement("getByBookAdviserIds"), bookAdviserIds, "bookAdviserId"); return super.getSqlSession().selectMap(this.getStatement("getByBookAdviserIds"), bookAdviserIds, "bookAdviserId");
} }
@Override
public BookAdviserDto getByBookGroupId(Long bookGroupId) {
return getSessionTemplate().selectOne(getStatement("getByBookGroupId"),bookGroupId);
}
} }
...@@ -239,7 +239,7 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz { ...@@ -239,7 +239,7 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz {
groupQrcode.setQrcodeUrl(oneQrcode.getQrcodeUrl()); groupQrcode.setQrcodeUrl(oneQrcode.getQrcodeUrl());
groupQrcode.setCreateUser(partyId); groupQrcode.setCreateUser(partyId);
groupQrcode.setWeixinQrcodeId(oneQrcode.getId()); groupQrcode.setWeixinQrcodeId(oneQrcode.getId());
groupQrcode.setUserNumber(oneQrcode.getUserNumber()); groupQrcode.setUserNumber(oneQrcode.getUserNumber()>3?oneQrcode.getUserNumber():3);
groupQrcode.setGroupSeq(1); groupQrcode.setGroupSeq(1);
// 群长度超过16部分会被截取,导致群名称重复 // 群长度超过16部分会被截取,导致群名称重复
final String s = "1群"; final String s = "1群";
......
...@@ -310,4 +310,6 @@ public interface GroupQrcodeDao extends BaseDao<GroupQrcode> { ...@@ -310,4 +310,6 @@ public interface GroupQrcodeDao extends BaseDao<GroupQrcode> {
* * @param null * * @param null
*/ */
List<GroupQrcodeDTO> listClassifyLatestGroupByBookGroup(Long bookGroupId); List<GroupQrcodeDTO> listClassifyLatestGroupByBookGroup(Long bookGroupId);
List<GroupQrcodeDTO> getGroupQrcodeByClassifyIds(List<Long> list);
} }
...@@ -313,4 +313,9 @@ public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements Grou ...@@ -313,4 +313,9 @@ public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements Grou
return getSessionTemplate().selectList(getStatement("listClassifyLatestGroupByBookGroup"), bookGroupId); return getSessionTemplate().selectList(getStatement("listClassifyLatestGroupByBookGroup"), bookGroupId);
} }
@Override
public List<GroupQrcodeDTO> getGroupQrcodeByClassifyIds(List<Long> list) {
return super.getSqlSession().selectList("getGroupQrcodeByClassifyIds",list);
}
} }
...@@ -82,4 +82,8 @@ public class GroupQrcodeDTO implements Serializable { ...@@ -82,4 +82,8 @@ public class GroupQrcodeDTO implements Serializable {
* 群分类价格 * 群分类价格
*/ */
private BigDecimal price; private BigDecimal price;
/**
* 关联社群书Id
*/
private Long relatedBookGroupId;
} }
...@@ -1234,7 +1234,7 @@ public class ReadingActivityBizImpl implements ReadingActivityBiz{ ...@@ -1234,7 +1234,7 @@ public class ReadingActivityBizImpl implements ReadingActivityBiz{
groupQrcode.setQrcodeUrl(qrcodeUrl); groupQrcode.setQrcodeUrl(qrcodeUrl);
groupQrcode.setCreateUser(0L); groupQrcode.setCreateUser(0L);
groupQrcode.setWeixinQrcodeId(qrcodeId); groupQrcode.setWeixinQrcodeId(qrcodeId);
groupQrcode.setUserNumber(robots.size()); groupQrcode.setUserNumber(robots.size()>3?robots.size():3);
groupQrcode.setGroupSeq(1); groupQrcode.setGroupSeq(1);
groupQrcode.setGroupName(readingGroup.getWxGroupName()); groupQrcode.setGroupName(readingGroup.getWxGroupName());
groupQrcode.setClassifyId(0L); groupQrcode.setClassifyId(0L);
......
...@@ -1774,6 +1774,10 @@ public class RightsSettingBizImpl implements RightsSettingBiz { ...@@ -1774,6 +1774,10 @@ public class RightsSettingBizImpl implements RightsSettingBiz {
rightsNowItem.setServeType(RightsServeTypeEnum.GROUP.name()); rightsNowItem.setServeType(RightsServeTypeEnum.GROUP.name());
rightsNowItem.setType(RightsNowItemTypeNew.GROUP_SERVICE.value); rightsNowItem.setType(RightsNowItemTypeNew.GROUP_SERVICE.value);
rightsNowItem.setRightsSettingId(rightsSettingId); rightsNowItem.setRightsSettingId(rightsSettingId);
rightsNowItem.setBookGroupId(groupActivity4AppletDTO.getBookGroupId());
rightsNowItem.setRelatedBookGroupId(groupActivity4AppletDTO.getRelatedBookGroupId());
rightsNowItem.setClassifyId(groupActivity4AppletDTO.getClassifyId());
rightsNowItem.setPrice(groupActivity4AppletDTO.getPrice());
items.add(rightsNowItem); items.add(rightsNowItem);
} }
} }
......
...@@ -9,6 +9,8 @@ import lombok.Data; ...@@ -9,6 +9,8 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/** /**
* @Description * @Description
* @Author ruansiyuan * @Author ruansiyuan
...@@ -85,5 +87,12 @@ public class RightsNowItem extends BaseEntity { ...@@ -85,5 +87,12 @@ public class RightsNowItem extends BaseEntity {
private String source; private String source;
@ApiModelProperty("即享权益") @ApiModelProperty("即享权益")
private Long rightsSettingTitleId; private Long rightsSettingTitleId;
@ApiModelProperty("关联社群ID")
private Long relatedBookGroupId;
@ApiModelProperty("群分类ID")
private Long classifyId;
@ApiModelProperty("社群书ID")
private Long bookGroupId;
@ApiModelProperty("群分类价格")
private BigDecimal price;
} }
...@@ -17,6 +17,7 @@ import com.pcloud.book.consumer.label.LabelConsr; ...@@ -17,6 +17,7 @@ import com.pcloud.book.consumer.label.LabelConsr;
import com.pcloud.book.consumer.reader.ReaderConsr; import com.pcloud.book.consumer.reader.ReaderConsr;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr; import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.group.biz.GroupQrcodeBiz; import com.pcloud.book.group.biz.GroupQrcodeBiz;
import com.pcloud.book.group.dao.BookClassifyBuyRecordDao;
import com.pcloud.book.group.dao.BookQrcodeUserDao; import com.pcloud.book.group.dao.BookQrcodeUserDao;
import com.pcloud.book.group.vo.ClassifyQrcodeVO; import com.pcloud.book.group.vo.ClassifyQrcodeVO;
import com.pcloud.book.group.vo.GroupQrcode4ClassifyVO; import com.pcloud.book.group.vo.GroupQrcode4ClassifyVO;
...@@ -94,7 +95,7 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz { ...@@ -94,7 +95,7 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz {
@Autowired @Autowired
private AppletGroupSearchRecordBiz appletGroupSearchRecordBiz; private AppletGroupSearchRecordBiz appletGroupSearchRecordBiz;
@Autowired @Autowired
private BookQrcodeUserDao bookQrcodeUserDao; private BookClassifyBuyRecordDao bookClassifyBuyRecordDao;
@ParamLog("保存共读活动") @ParamLog("保存共读活动")
@Override @Override
...@@ -372,8 +373,7 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz { ...@@ -372,8 +373,7 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz {
activity4AppletDTO.setStatus(0); activity4AppletDTO.setStatus(0);
// 付费群 查询用户是否已经购买过该群分类 // 付费群 查询用户是否已经购买过该群分类
if (activity4AppletDTO.getPrice().compareTo(BigDecimal.ZERO) > 0) { if (activity4AppletDTO.getPrice().compareTo(BigDecimal.ZERO) > 0) {
GroupQrcode4ClassifyVO userQrcode = bookQrcodeUserDao.getUserQrcode(wechatUserId, activity4AppletDTO.getClassifyId()); if (bookClassifyBuyRecordDao.checkUserBuy(wechatUserId, activity4AppletDTO.getClassifyId())) {
if (userQrcode != null && userQrcode.getGroupQrcodeId() != null) {
activity4AppletDTO.setStatus(1); activity4AppletDTO.setStatus(1);
} }
} }
......
...@@ -19,4 +19,5 @@ public interface PcloudGroupActivityDao extends BaseDao<PcloudGroupActivity> { ...@@ -19,4 +19,5 @@ public interface PcloudGroupActivityDao extends BaseDao<PcloudGroupActivity> {
Map<Long, GroupActivity4AppletDTO> getByIds(List<Long> ids); Map<Long, GroupActivity4AppletDTO> getByIds(List<Long> ids);
List<Long> getGroupClassifyIds(Map<String, Object> paraMap);
} }
\ No newline at end of file
...@@ -51,4 +51,9 @@ public class PcloudGroupActivityDaoImpl extends BaseDaoImpl<PcloudGroupActivity> ...@@ -51,4 +51,9 @@ public class PcloudGroupActivityDaoImpl extends BaseDaoImpl<PcloudGroupActivity>
return super.getSqlSession().selectMap(getStatement("getByIds"), list,"id"); return super.getSqlSession().selectMap(getStatement("getByIds"), list,"id");
} }
@Override
public List<Long> getGroupClassifyIds(Map<String, Object> paraMap) {
return super.getSqlSession().selectList("getGroupClassifyIds",paraMap);
}
} }
...@@ -73,4 +73,7 @@ public class GroupActivity4AppletDTO implements Serializable { ...@@ -73,4 +73,7 @@ public class GroupActivity4AppletDTO implements Serializable {
@ApiModelProperty("购买状态 1已购买 0未购买") @ApiModelProperty("购买状态 1已购买 0未购买")
private Integer status; private Integer status;
@ApiModelProperty("关联社群书ID")
private Long relatedBookGroupId;
} }
...@@ -61,11 +61,13 @@ ...@@ -61,11 +61,13 @@
b.description as `desc`, b.description as `desc`,
b.book_group_classify_id AS classifyId, b.book_group_classify_id AS classifyId,
c.book_group_id bookGroupId, c.book_group_id bookGroupId,
c.price c.price,
g.related_book_group_id relatedBookGroupId
FROM FROM
applet_group_manage a applet_group_manage a
INNER JOIN pcloud_group_activity b ON a.group_activity_id = b.id AND b.is_delete = 0 INNER JOIN pcloud_group_activity b ON a.group_activity_id = b.id AND b.is_delete = 0
INNER JOIN book_group_classify c ON b.book_group_classify_id = c.id AND c.is_delete = 0 INNER JOIN book_group_classify c ON b.book_group_classify_id = c.id AND c.is_delete = 0
LEFT JOIN book_group g ON g.id = c.book_group_id
WHERE a.enable=1 WHERE a.enable=1
<if test="recommend!=null"> <if test="recommend!=null">
AND a.recommend=#{recommend} AND a.recommend=#{recommend}
......
...@@ -37,14 +37,21 @@ ...@@ -37,14 +37,21 @@
d.PUBLISH publish, d.PUBLISH publish,
d.REMARK remark, d.REMARK remark,
d.COVER_IMG coverImg, d.COVER_IMG coverImg,
d.ISBN isbn d.ISBN isbn,
c.join_group_type joinGroupType,
g.TEMPLET_ID templetId,
g.SECOND_TEMPLET_ID secondTempletId,
IF(c.join_group_type=1 OR c.related_book_group_id>0,1,0) hasGroup,
c.related_book_group_id relatedBookGroupId
FROM applet_group_search_record a FROM applet_group_search_record a
INNER JOIN BOOK d ON a.BOOK_ID = d.BOOK_ID INNER JOIN BOOK d ON a.BOOK_ID = d.BOOK_ID
INNER JOIN book_group c ON a.book_group_id = c.id
LEFT JOIN book_adviser g ON a.adviser_id = g.ADVISER_ID AND g.BOOK_ID = a.book_id
WHERE 1=1 WHERE 1=1
<if test="wechatUserId!=null"> <if test="wechatUserId!=null">
AND a.wechat_user_id = #{wechatUserId} AND a.wechat_user_id = #{wechatUserId}
</if> </if>
ORDER BY update_time DESC ORDER BY a.update_time DESC
</select> </select>
<insert id="insert" keyProperty="id" useGeneratedKeys="true"> <insert id="insert" keyProperty="id" useGeneratedKeys="true">
......
...@@ -247,14 +247,15 @@ ...@@ -247,14 +247,15 @@
a.vol_label_id volLabelId, a.vol_label_id volLabelId,
IF(d.join_group_type=1 OR d.related_book_group_id>0,1,0) hasGroup, IF(d.join_group_type=1 OR d.related_book_group_id>0,1,0) hasGroup,
c.rights_setting_id rightsSettingId, c.rights_setting_id rightsSettingId,
r.count rightsSettingCount r.count rightsSettingCount,
d.related_book_group_id relatedBookGroupId
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
INNER JOIN BOOK b ON c.BOOK_ID = b.BOOK_ID AND b.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 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 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} WHERE c.book_id = #{bookId} AND c.channel_id = #{channelId} AND c.adviser_id = #{adviserId}
ORDER BY c.create_time DESC ORDER BY c.create_time DESC
LIMIT 1 LIMIT 1
</select> </select>
......
...@@ -663,6 +663,18 @@ ...@@ -663,6 +663,18 @@
LIMIT 1 LIMIT 1
</select> </select>
<select id="getByBookGroupId" parameterType="long" resultMap="bookAdviserMap">
SELECT
a.BOOK_ADVISER_ID, a.BOOK_ID, a.TEMPLET_ID, a.CHANNEL_ID, a.ADVISER_ID, a.IS_DELETE,
a.TEMPLET_ID,a.SECOND_TEMPLET_ID,
a.GRA_LABEL_ID,a.SUB_LABEL_ID,a.VER_LABEL_ID,a.AREA_LABEL_ID,a.vol_label_id
FROM
book_adviser a
LEFT JOIN book_group b ON a.ADVISER_ID = b.create_user AND a.CHANNEL_ID = b.channel_id AND a.BOOK_ID = b.book_id
WHERE
b.id = #{bookGroupId}
LIMIT 1
</select>
<select id="getBookListForAdvertising" parameterType="map" resultType="com.pcloud.book.advertising.dto.BookListForAdvertisingDTO"> <select id="getBookListForAdvertising" parameterType="map" resultType="com.pcloud.book.advertising.dto.BookListForAdvertisingDTO">
SELECT SELECT
......
...@@ -886,10 +886,12 @@ ...@@ -886,10 +886,12 @@
r.qrcode_url qrcodeUrl, r.qrcode_url qrcodeUrl,
f.classify_introduce classifyIntroduce, f.classify_introduce classifyIntroduce,
f.book_group_id bookGroupId, f.book_group_id bookGroupId,
f.price f.price,
g.related_book_group_id relatedBookGroupId
FROM FROM
book_group_qrcode r book_group_qrcode r
LEFT JOIN book_group_classify f ON r.classify_id = f.id LEFT JOIN book_group_classify f ON r.classify_id = f.id
LEFT JOIN book_group g ON f.book_group_id = g.id
WHERE WHERE
r.id IN ( r.id IN (
SELECT SELECT
...@@ -908,4 +910,35 @@ ...@@ -908,4 +910,35 @@
f.rank ASC, f.id ASC f.rank ASC, f.id ASC
</select> </select>
<select id="getGroupQrcodeByClassifyIds" parameterType="long" resultType="com.pcloud.book.group.dto.GroupQrcodeDTO">
SELECT
b.id id,
b.classify_id classifyId,
b.weixin_group_id weixinGroupId,
b.group_name groupName,
b.user_number userNumber,
b.qrcode_url qrcodeUrl,
c.related_book_group_id relatedBookGroupId,
a.price price,
c.id bookGroupId,
a.classify_introduce classifyIntroduce,
a.classify classify
FROM
book_group_classify a
LEFT JOIN book_group_qrcode b ON a.id = b.classify_id
LEFT JOIN book_group c ON a.book_group_id = c.id
LEFT JOIN pcloud_group_activity d ON d.book_group_classify_id = a.id
WHERE
a.id IN
<foreach collection="list" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
AND a.is_delete = 0
AND b.is_delete = 0
AND c.is_delete = 0
GROUP BY a.id
ORDER BY d.create_time DESC
LIMIT 3
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -33,6 +33,25 @@ ...@@ -33,6 +33,25 @@
update pcloud_group_activity set is_delete = 1 where id = #{id} update pcloud_group_activity set is_delete = 1 where id = #{id}
</update> </update>
<select id="getGroupClassifyIds" resultType="long" parameterType="map">
select book_group_classify_id from pcloud_group_activity
where
is_delete = 0 and is_show = 1
<if test="firstClassify != null">
and first_classify = #{firstClassify}
</if>
<if test="secondClassify != null">
and second_classify = #{secondClassify}
</if>
<if test="gradeLabelId != null">
and grade_label_id = #{gradeLabelId}
</if>
<if test="subjectLabelId != null">
and subject_label_id = #{subjectLabelId}
</if>
order by id desc
</select>
<select id="queryGroupActivity" resultType="com.pcloud.book.skill.facade.response.QueryGroupActivityResponseVO" parameterType="map" > <select id="queryGroupActivity" resultType="com.pcloud.book.skill.facade.response.QueryGroupActivityResponseVO" parameterType="map" >
SELECT SELECT
a.id, a.id,
...@@ -84,40 +103,45 @@ ...@@ -84,40 +103,45 @@
</select> </select>
<select id="getTishBookSchoolList" resultType="com.pcloud.book.skill.dto.GroupActivity4AppletDTO" parameterType="map" > <select id="getTishBookSchoolList" resultType="com.pcloud.book.skill.dto.GroupActivity4AppletDTO" parameterType="map" >
SELECT SELECT
a.id, a.id,
a.id groupActivityId, a.id groupActivityId,
a.`name`, a.`name`,
a.description as `desc`, a.description as `desc`,
a.join_type AS joinType, a.join_type AS joinType,
c.classify AS classifyName, c.classify AS classifyName,
a.book_group_classify_id classifyId, a.book_group_classify_id classifyId,
c.book_group_id bookGroupId, c.book_group_id bookGroupId,
a.first_classify AS firstClassify, a.first_classify AS firstClassify,
a.second_classify AS secondClassify, a.second_classify AS secondClassify,
a.grade_label_id AS gradeLabelId, a.grade_label_id AS gradeLabelId,
a.subject_label_id AS subjectLabelId a.subject_label_id AS subjectLabelId,
FROM c.id AS classifyId,
pcloud_group_activity a c.book_group_id AS bookGroupId,
INNER JOIN book_group_classify c ON a.book_group_classify_id = c.id AND c.is_delete = 0 d.related_book_group_id AS relatedBookGroupId,
INNER JOIN book_group_qrcode b ON b.classify_id = c.id AND b.is_delete = 0 c.price AS price
WHERE FROM
a.is_delete = 0 AND a.is_show = 1 pcloud_group_activity a
<if test="firstClassify != null"> INNER JOIN book_group_classify c ON a.book_group_classify_id = c.id AND c.is_delete = 0
and a.first_classify = #{firstClassify} INNER JOIN book_group_qrcode b ON b.classify_id = c.id AND b.is_delete = 0
</if> LEFT JOIN book_group d ON c.book_group_id = d.id
<if test="secondClassify != null"> WHERE
and a.second_classify = #{secondClassify} a.is_delete = 0 AND a.is_show = 1
</if> <if test="firstClassify != null">
<if test="gradeLabelId != null"> and a.first_classify = #{firstClassify}
and a.grade_label_id = #{gradeLabelId} </if>
</if> <if test="secondClassify != null">
<if test="subjectLabelId != null"> and a.second_classify = #{secondClassify}
and a.subject_label_id = #{subjectLabelId} </if>
</if> <if test="gradeLabelId != null">
GROUP BY a.id and a.grade_label_id = #{gradeLabelId}
ORDER BY a.id DESC </if>
LIMIT #{limit} <if test="subjectLabelId != null">
and a.subject_label_id = #{subjectLabelId}
</if>
GROUP BY a.id
ORDER BY a.id DESC
LIMIT #{limit}
</select> </select>
<select id="getById" resultMap="BaseResultMap" parameterType="long" > <select id="getById" resultMap="BaseResultMap" parameterType="long" >
...@@ -159,11 +183,14 @@ ...@@ -159,11 +183,14 @@
a.first_classify AS firstClassify, a.first_classify AS firstClassify,
a.second_classify AS secondClassify, a.second_classify AS secondClassify,
a.grade_label_id AS gradeLabelId, a.grade_label_id AS gradeLabelId,
a.subject_label_id AS subjectLabelId a.subject_label_id AS subjectLabelId,
c.price AS price,
d.related_book_group_id relatedBookGroupId
FROM FROM
pcloud_group_activity a pcloud_group_activity a
INNER JOIN book_group_classify c ON a.book_group_classify_id = c.id AND c.is_delete = 0 INNER JOIN book_group_classify c ON a.book_group_classify_id = c.id AND c.is_delete = 0
INNER JOIN book_group_qrcode b on b.classify_id = c.id AND b.is_delete = 0 INNER JOIN book_group_qrcode b on b.classify_id = c.id AND b.is_delete = 0
INNER JOIN book_group d ON c.book_group_id = d.id
WHERE WHERE
a.is_delete = 0 AND a.is_show = 1 a.is_delete = 0 AND a.is_show = 1
AND a.id IN AND a.id IN
...@@ -326,11 +353,13 @@ ...@@ -326,11 +353,13 @@
a.second_classify AS secondClassify, a.second_classify AS secondClassify,
a.grade_label_id AS gradeLabelId, a.grade_label_id AS gradeLabelId,
a.subject_label_id AS subjectLabelId, a.subject_label_id AS subjectLabelId,
c.price c.price,
g.related_book_group_id relatedBookGroupId
FROM FROM
pcloud_group_activity a pcloud_group_activity a
INNER JOIN book_group_classify c ON a.book_group_classify_id = c.id AND c.is_delete = 0 INNER JOIN book_group_classify c ON a.book_group_classify_id = c.id AND c.is_delete = 0
INNER JOIN book_group_qrcode b on c.id = b.classify_id AND b.is_delete = 0 INNER JOIN book_group_qrcode b on c.id = b.classify_id AND b.is_delete = 0
LEFT JOIN book_group g ON g.id = c.book_group_id
WHERE WHERE
a.is_delete = 0 AND a.is_show = 1 a.is_delete = 0 AND a.is_show = 1
<if test="firstClassify != null"> <if test="firstClassify != null">
......
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