Commit 6889c146 by 田超

Merge branch 'feat-zyj-1002945' into 'master'

1002945编辑端社群书普通群的创建和关联流程问题

See merge request rays/pcloud-book!757
parents 193b3d6a 105e06ac
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
package com.pcloud.book.book.dto; package com.pcloud.book.book.dto;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.common.dto.BaseDto; import com.pcloud.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -669,6 +670,42 @@ public class BookDto extends BaseDto { ...@@ -669,6 +670,42 @@ public class BookDto extends BaseDto {
* 上下册标签id * 上下册标签id
*/ */
private Long volLabelId; private Long volLabelId;
/**
* 是否独立活码群
*/
private Boolean singleGroup;
/**
* 关联群
*/
private Long relatedBookGroupId;
/**
* 关联群的社群码
*/
private BookGroupDTO relatedBookGroup;
public BookGroupDTO getRelatedBookGroup() {
return relatedBookGroup;
}
public void setRelatedBookGroup(BookGroupDTO relatedBookGroup) {
this.relatedBookGroup = relatedBookGroup;
}
public Long getRelatedBookGroupId() {
return relatedBookGroupId;
}
public void setRelatedBookGroupId(Long relatedBookGroupId) {
this.relatedBookGroupId = relatedBookGroupId;
}
public Boolean getSingleGroup() {
return singleGroup;
}
public void setSingleGroup(Boolean singleGroup) {
this.singleGroup = singleGroup;
}
/** /**
* 是否开启小睿流程 * 是否开启小睿流程
......
...@@ -75,4 +75,8 @@ public interface BookGroupClassifyService { ...@@ -75,4 +75,8 @@ public interface BookGroupClassifyService {
@ApiOperation("根据群分类id找群") @ApiOperation("根据群分类id找群")
@GetMapping("getGroupQrcodeInfo4Classify") @GetMapping("getGroupQrcodeInfo4Classify")
ResponseEntity<ResponseDto<GroupQrcode4ClassifyDTO>> getGroupQrcodeInfo4Classify(@RequestParam("wechatUserId") Long wechatUserId,@RequestParam("classifyId") Long classifyId); ResponseEntity<ResponseDto<GroupQrcode4ClassifyDTO>> getGroupQrcodeInfo4Classify(@RequestParam("wechatUserId") Long wechatUserId,@RequestParam("classifyId") Long classifyId);
@ApiOperation("根据群分类id找群")
@GetMapping("getGroupQrcodeByClassify")
ResponseEntity<ResponseDto<GroupQrcode4ClassifyDTO>> getGroupQrcodeByClassify(@RequestParam("wechatUserId") Long wechatUserId,@RequestParam("classifyId") Long classifyId);
} }
...@@ -147,21 +147,11 @@ public class AppletGroupSearchRecordBizImpl implements AppletGroupSearchRecordBi ...@@ -147,21 +147,11 @@ public class AppletGroupSearchRecordBizImpl implements AppletGroupSearchRecordBi
@Override @Override
public List<GroupActivity4AppletDTO> getTishBookSchoolList(Long bookGroupId) { public List<GroupActivity4AppletDTO> getTishBookSchoolList(Long bookGroupId) {
BookGroupDTO bookGroupDTO = bookGroupDao.getBookBaseInfoById(bookGroupId); BookGroupDTO bookGroupDTO = bookGroupDao.getDTOById(bookGroupId);
BookAdviserDto adviserDto = bookAdviserDao.getBase(bookGroupDTO.getBookId(), bookGroupDTO.getChannelId(), bookGroupDTO.getCreateUser());
BaseTempletClassify baseTempletClassify = new BaseTempletClassify();
if (adviserDto != null) {
baseTempletClassify.setFirstClassify(adviserDto.getTempletId());
baseTempletClassify.setSecondClassify(adviserDto.getSecondTempletId());
baseTempletClassify.setGradeLabelId(adviserDto.getGraLabelId());
baseTempletClassify.setSubjectLabelId(adviserDto.getSubLabelId());
baseTempletClassify.setVolLabelId(adviserDto.getVolLabelId());
rightsSettingBiz.setClassifyAndLabel(baseTempletClassify);
}
List<GroupActivity4AppletDTO> tishBookSchoolList = new ArrayList<>(); List<GroupActivity4AppletDTO> tishBookSchoolList = new ArrayList<>();
//本书自带社群 //本书自带社群
if (JoinGroupTypeEnum.GROUP_QRCODE.getCode().equals(bookGroupDTO.getJoinGroupType())) { if (JoinGroupTypeEnum.GROUP_QRCODE.getCode().equals(bookGroupDTO.getJoinGroupType())) {
List<GroupQrcodeDTO> groupQrcodeDTOS = groupQrcodeDao.getGroupQrcodeListByBookGroupId(bookGroupId); List<GroupQrcodeDTO> groupQrcodeDTOS = groupQrcodeDao.listClassifyLatestGroupByBookGroup(bookGroupId);
if (!ListUtils.isEmpty(groupQrcodeDTOS)) { if (!ListUtils.isEmpty(groupQrcodeDTOS)) {
for (GroupQrcodeDTO qrcodeDTO : groupQrcodeDTOS) { for (GroupQrcodeDTO qrcodeDTO : groupQrcodeDTOS) {
GroupActivity4AppletDTO appletDTO = new GroupActivity4AppletDTO(); GroupActivity4AppletDTO appletDTO = new GroupActivity4AppletDTO();
...@@ -174,10 +164,21 @@ public class AppletGroupSearchRecordBizImpl implements AppletGroupSearchRecordBi ...@@ -174,10 +164,21 @@ public class AppletGroupSearchRecordBizImpl implements AppletGroupSearchRecordBi
} }
} }
} }
//根据分类推荐相关 //本书关联社群
List<GroupActivity4AppletDTO> groupActivity4AppletDTOS = pcloudGroupActivityDao.getTishBookSchoolList(baseTempletClassify, 10); if (null != bookGroupDTO.getRelatedBookGroupId()){
if (!ListUtils.isEmpty(groupActivity4AppletDTOS)) { Long relatedGroupId = bookGroupDTO.getRelatedBookGroupId();
tishBookSchoolList.addAll(groupActivity4AppletDTOS); List<GroupQrcodeDTO> qrcodeDTOS = groupQrcodeDao.listClassifyLatestGroupByBookGroup(relatedGroupId);
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.setBookGroupId(bookGroupId);
appletDTO.setBookGroupQrcodeId(qrcodeDTO.getId());
tishBookSchoolList.add(appletDTO);
}
}
} }
if (ListUtils.isEmpty(tishBookSchoolList)) { if (ListUtils.isEmpty(tishBookSchoolList)) {
return new ArrayList<>(); return new ArrayList<>();
......
...@@ -856,4 +856,28 @@ public interface BookGroupBiz { ...@@ -856,4 +856,28 @@ public interface BookGroupBiz {
* * @param null * * @param null
*/ */
void updateBookGroupOpenWeapp(Long bookGroupId, Boolean openWeapp); void updateBookGroupOpenWeapp(Long bookGroupId, Boolean openWeapp);
/**
* 创建独立活码群社群码
* @author:zhuyajie
* @date:2020/5/28 11:36
* * @param null
*/
Long createSingleBookGroup(BookGroup bookGroup, Long adviserId);
/**
* 更新小睿关联社群书
* @author:zhuyajie
* @date:2020/5/29 19:21
* * @param null
*/
void updateRelatedBookGroup(Long bookGroupId, Long relatedBookGroupId);
/**
* 获取独立活码群社群码列表
* @author:zhuyajie
* @date:2020/6/1 12:43
* * @param null
*/
PageBeanNew<BookGroupDTO> listSingleBookGroup4Adviser(String name, Integer currentPage, Integer numPerPage, Long adviserId);
} }
...@@ -269,4 +269,6 @@ public interface BookGroupClassifyBiz { ...@@ -269,4 +269,6 @@ public interface BookGroupClassifyBiz {
GroupQrcode4ClassifyVO getGroupQrcodeInfo4Heals(Long classifyId, Long wechatUserId); GroupQrcode4ClassifyVO getGroupQrcodeInfo4Heals(Long classifyId, Long wechatUserId);
List<GroupQrcode4ClassifyDTO> getQrcodeByClassifyId4Heals(Long classifyId); List<GroupQrcode4ClassifyDTO> getQrcodeByClassifyId4Heals(Long classifyId);
GroupQrcode4ClassifyVO getGroupQrcodeByClassify(Long classifyId, Long wechatUserId);
} }
...@@ -9,7 +9,9 @@ import com.pcloud.appcenter.app.dto.AppDto; ...@@ -9,7 +9,9 @@ import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.appcenter.base.dto.AppPriceCacheDTO; import com.pcloud.appcenter.base.dto.AppPriceCacheDTO;
import com.pcloud.appcenter.cache.service.AppPriceCacheService; import com.pcloud.appcenter.cache.service.AppPriceCacheService;
import com.pcloud.audioapp.audioLesson.service.AudioLessonService; import com.pcloud.audioapp.audioLesson.service.AudioLessonService;
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.entity.AppletGroupSearchRecord;
import com.pcloud.book.applet.entity.AppletUserBookcase; import com.pcloud.book.applet.entity.AppletUserBookcase;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.book.biz.BookBiz; import com.pcloud.book.book.biz.BookBiz;
...@@ -398,6 +400,8 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -398,6 +400,8 @@ public class BookGroupBizImpl implements BookGroupBiz {
private RightsSettingBiz rightsSettingBiz; private RightsSettingBiz rightsSettingBiz;
@Autowired @Autowired
private AppletUserBookcaseBiz appletUserBookcaseBiz; private AppletUserBookcaseBiz appletUserBookcaseBiz;
@Autowired
private AppletGroupSearchRecordBiz appletGroupSearchRecordBiz;
private static final ThreadPoolExecutor PLATFORM_STATISTICS_EXPORT_THREAD = new ThreadPoolExecutor(2, 2, private static final ThreadPoolExecutor PLATFORM_STATISTICS_EXPORT_THREAD = new ThreadPoolExecutor(2, 2,
0, TimeUnit.SECONDS, new LinkedBlockingQueue<>(), 0, TimeUnit.SECONDS, new LinkedBlockingQueue<>(),
...@@ -838,6 +842,7 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -838,6 +842,7 @@ public class BookGroupBizImpl implements BookGroupBiz {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "社群码前后类型不一致!!"); throw new BookBizException(BookBizException.PARAM_IS_NULL, "社群码前后类型不一致!!");
} }
checkShortBookName(bookGroup); checkShortBookName(bookGroup);
Long productId = group.getProductId();
if (null == group.getProductId()) { if (null == group.getProductId()) {
AddAppProductParamDTO addAppProductParamDTO = new AddAppProductParamDTO(); AddAppProductParamDTO addAppProductParamDTO = new AddAppProductParamDTO();
addAppProductParamDTO.setAppProCode(ProductTypeConstant.BOOK_GROUP); addAppProductParamDTO.setAppProCode(ProductTypeConstant.BOOK_GROUP);
...@@ -852,6 +857,7 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -852,6 +857,7 @@ public class BookGroupBizImpl implements BookGroupBiz {
throw new BookBizException(BookBizException.DB_DML_FAIL, "操作失败!"); throw new BookBizException(BookBizException.DB_DML_FAIL, "操作失败!");
} }
bookGroup.setProductId(product.getProductId()); bookGroup.setProductId(product.getProductId());
productId = product.getProductId();
} else { } else {
UpdateAppProductParamDTO updateAppProductParamDTO = new UpdateAppProductParamDTO(); UpdateAppProductParamDTO updateAppProductParamDTO = new UpdateAppProductParamDTO();
updateAppProductParamDTO.setProductId(group.getProductId()); updateAppProductParamDTO.setProductId(group.getProductId());
...@@ -860,6 +866,11 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -860,6 +866,11 @@ public class BookGroupBizImpl implements BookGroupBiz {
ResponseHandleUtil.parseResponse(productService.postUpdateBookGroupProduct(updateAppProductParamDTO), Product.class); ResponseHandleUtil.parseResponse(productService.postUpdateBookGroupProduct(updateAppProductParamDTO), Product.class);
} }
bookGroupDao.update(bookGroup); bookGroupDao.update(bookGroup);
//上架
if (null != productId) {
Long channelId = bookGroup.getChannelId() == null ? group.getChannelId() : bookGroup.getChannelId();
productConsr.productAutoOnShelves(channelId, Arrays.asList(productId));
}
if (JoinGroupTypeEnum.AI_ROBOT.getCode().equals(bookGroup.getJoinGroupType())) { if (JoinGroupTypeEnum.AI_ROBOT.getCode().equals(bookGroup.getJoinGroupType())) {
this.updateFriendGuide(bookGroup.getId(), bookGroup.getFriendGuideList(), group.getCreateUser()); this.updateFriendGuide(bookGroup.getId(), bookGroup.getFriendGuideList(), group.getCreateUser());
} }
...@@ -995,11 +1006,22 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -995,11 +1006,22 @@ public class BookGroupBizImpl implements BookGroupBiz {
bookSet.setFreezeStatus(pageBean.getRecordList()); bookSet.setFreezeStatus(pageBean.getRecordList());
// 填充社群书数据 // 填充社群书数据
List<Long> bookGroupIds = new ArrayList<>(); List<Long> bookGroupIds = new ArrayList<>();
pageBean.getRecordList().forEach(obj -> bookGroupIds.add(((BookDto) obj).getBookGroupId())); List<Long> relatedGroupIds = new ArrayList<>();
pageBean.getRecordList().forEach(obj -> {
BookDto bookDto = (BookDto) obj;
bookGroupIds.add(bookDto.getBookGroupId());
if (null != bookDto.getRelatedBookGroupId()) {
relatedGroupIds.add(bookDto.getRelatedBookGroupId());
}
});
ResponseEntity<ResponseDto<Map<Long, BigDecimal>>> responseEntity = settlementService.getWXGroupIncomeByAdviser(bookGroupIds, adviserId); ResponseEntity<ResponseDto<Map<Long, BigDecimal>>> responseEntity = settlementService.getWXGroupIncomeByAdviser(bookGroupIds, adviserId);
Map<Long, BigDecimal> incomeMap = ResponseHandleUtil.parseMap(responseEntity, Long.class, BigDecimal.class); Map<Long, BigDecimal> incomeMap = ResponseHandleUtil.parseMap(responseEntity, Long.class, BigDecimal.class);
Map<Long, BookGroupStatisticDTO> statisMap = bookGroupClassifyDao.getClassifyCountAbout(bookGroupIds); Map<Long, BookGroupStatisticDTO> statisMap = bookGroupClassifyDao.getClassifyCountAbout(bookGroupIds);
Map<Long, Integer> scanMap = ResponseHandleUtil.parseMap(groupMemberService.getScanUserCountByGroup(bookGroupIds), Long.class, Integer.class); Map<Long, Integer> scanMap = ResponseHandleUtil.parseMap(groupMemberService.getScanUserCountByGroup(bookGroupIds), Long.class, Integer.class);
Map<Long, BookGroupDTO> relatedBookGroupMap = new HashMap<>();
if (!ListUtils.isEmpty(relatedGroupIds)){
relatedBookGroupMap = bookGroupDao.mapDTOByIds(relatedGroupIds);
}
for (Object object : pageBean.getRecordList()) { for (Object object : pageBean.getRecordList()) {
BookDto bookDto = (BookDto) object; BookDto bookDto = (BookDto) object;
Long bookGroupId = bookDto.getBookGroupId(); Long bookGroupId = bookDto.getBookGroupId();
...@@ -1031,6 +1053,11 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -1031,6 +1053,11 @@ public class BookGroupBizImpl implements BookGroupBiz {
bookDto.setFriendsCount(friendsCount); bookDto.setFriendsCount(friendsCount);
Boolean hasRobotKeyword = selfRobotKeywordBiz.hasKeyword(bookGroupId); Boolean hasRobotKeyword = selfRobotKeywordBiz.hasKeyword(bookGroupId);
bookDto.setHasRobotKeyword(hasRobotKeyword); bookDto.setHasRobotKeyword(hasRobotKeyword);
if (!MapUtils.isEmpty(relatedBookGroupMap) && relatedBookGroupMap.containsKey(bookDto.getRelatedBookGroupId())) {
BookGroupDTO relatedBookGroup = relatedBookGroupMap.get(bookDto.getRelatedBookGroupId());
relatedBookGroup.setGroupQrcodeLink(bookGroupQrcodeDomain + "/" + bookDto.getRelatedBookGroupId());
bookDto.setRelatedBookGroup(relatedBookGroup);
}
} }
return pageBean; return pageBean;
} }
...@@ -4805,6 +4832,14 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -4805,6 +4832,14 @@ public class BookGroupBizImpl implements BookGroupBiz {
appletUserBookcase.setBookId(bookGroupDTO.getBookId()); appletUserBookcase.setBookId(bookGroupDTO.getBookId());
appletUserBookcase.setChannelId(bookGroupDTO.getChannelId()); appletUserBookcase.setChannelId(bookGroupDTO.getChannelId());
appletUserBookcaseBiz.addUserBook(appletUserBookcase); appletUserBookcaseBiz.addUserBook(appletUserBookcase);
//社群书埋点
AppletGroupSearchRecord appletGroupSearchRecord = new AppletGroupSearchRecord();
appletGroupSearchRecord.setAdviserId(bookGroupDTO.getCreateUser());
appletGroupSearchRecord.setBookGroupId(bookAppletScene.getBookGroupId());
appletGroupSearchRecord.setBookId(bookGroupDTO.getBookId());
appletGroupSearchRecord.setChannelId(bookGroupDTO.getChannelId());
appletGroupSearchRecord.setWechatUserId(wechatUserId);
appletGroupSearchRecordBiz.insert(appletGroupSearchRecord);
} else if (bookAppletScene.getSceneId() != null) { } else if (bookAppletScene.getSceneId() != null) {
QrcodeSceneDto byId = qrcodeSceneConsr.getById(bookAppletScene.getSceneId()); QrcodeSceneDto byId = qrcodeSceneConsr.getById(bookAppletScene.getSceneId());
dto.setBookId(byId.getAdviserBookId()); dto.setBookId(byId.getAdviserBookId());
...@@ -5011,4 +5046,28 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -5011,4 +5046,28 @@ public class BookGroupBizImpl implements BookGroupBiz {
bookGroupDao.updateBookGroupOpenWeapp(bookGroupId, openWeapp); bookGroupDao.updateBookGroupOpenWeapp(bookGroupId, openWeapp);
} }
@Override
public Long createSingleBookGroup(BookGroup bookGroup, Long adviserId) {
BookGroup bookGroupNew = this.createBookGroupAfterCreateBook(0L, 0L, adviserId, 2, null,
JoinGroupTypeEnum.GROUP_QRCODE.getCode());
bookGroup.setId(bookGroupNew.getId());
bookGroup.setSingleGroup(true);
this.updateBookGroup(bookGroup);
return bookGroupNew.getId();
}
@Override
public void updateRelatedBookGroup(Long bookGroupId, Long relatedBookGroupId) {
bookGroupDao.updateRelatedBookGroup(bookGroupId,relatedBookGroupId);
}
@Override
public PageBeanNew<BookGroupDTO> listSingleBookGroup4Adviser(String name, Integer currentPage, Integer numPerPage, Long adviserId) {
Map<String, Object> map = new HashMap<>();
map.put("adviserId", adviserId);
map.put("name", name);
PageBeanNew<BookGroupDTO> pageBeanNew = bookGroupDao.listPageNew(new PageParam(currentPage, numPerPage), map, "listSingleBookGroup4Adviser");
return pageBeanNew;
}
} }
...@@ -1320,4 +1320,40 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz { ...@@ -1320,4 +1320,40 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz {
List<GroupQrcode4ClassifyDTO> list=bookGroupClassifyDao.getQrcodeByClassifyId4Heals(classifyId, classify.getChangeNumber()); List<GroupQrcode4ClassifyDTO> list=bookGroupClassifyDao.getQrcodeByClassifyId4Heals(classifyId, classify.getChangeNumber());
return list; return list;
} }
@Override
public GroupQrcode4ClassifyVO getGroupQrcodeByClassify(Long classifyId, Long wechatUserId) {
//获取分类基本信息
ClassifyVO classify = bookGroupClassifyDao.getClassify(classifyId);
if (classify == null) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "社群码不存在,请刷新后重试");
}
//获取用户是否分配过二维码
GroupQrcode4ClassifyVO groupQrcode4ClassifyVO = bookQrcodeUserDao.getUserQrcode(classifyId, wechatUserId);
if (groupQrcode4ClassifyVO == null) {
//获取分类对应的二维码
groupQrcode4ClassifyVO = bookGroupClassifyDao.getClassifyQrcode(classifyId, classify.getChangeNumber());
if (groupQrcode4ClassifyVO == null) {
groupQrcode4ClassifyVO = new GroupQrcode4ClassifyVO();
groupQrcode4ClassifyVO.setClassifyId(classifyId);
} else {
BookQrcodeUser bookQrcodeUser = new BookQrcodeUser();
bookQrcodeUser.setClassifyId(classifyId);
bookQrcodeUser.setGroupQrcodeId(groupQrcode4ClassifyVO.getGroupQrcodeId());
bookQrcodeUser.setWechatUserId(wechatUserId);
bookQrcodeUser.setCreateUser(wechatUserId);
bookQrcodeUser.setFromType(QrcodeUsedEnum.RAYS.value);
try {
bookQrcodeUserDao.insert(bookQrcodeUser);
} catch (DataIntegrityViolationException e) {
LOGGER.error("已存在该用户!");
}
}
}
String spareQr = getSpareQr(classify.getBookGroupId());
groupQrcode4ClassifyVO.setSpareQr(spareQr);
groupQrcode4ClassifyVO.setClassify(classify.getClassify());
return groupQrcode4ClassifyVO;
}
} }
...@@ -322,4 +322,19 @@ public interface BookGroupDao extends BaseDao<BookGroup> { ...@@ -322,4 +322,19 @@ public interface BookGroupDao extends BaseDao<BookGroup> {
* 1V1社群书是否开启小睿流程 * 1V1社群书是否开启小睿流程
*/ */
void updateBookGroupOpenWeapp(Long bookGroupId, Boolean openWeapp); void updateBookGroupOpenWeapp(Long bookGroupId, Boolean openWeapp);
/**
* 更新小睿关联社群书
* @author:zhuyajie
* @date:2020/5/29 19:21
* * @param null
*/
void updateRelatedBookGroup(Long bookGroupId, Long relatedBookGroupId);
/**
* 社群书信息
* @author:zhuyajie
* @date:2020/5/29 19:43
* * @param null
*/
Map<Long,BookGroupDTO> mapDTOByIds(List<Long> ids);
} }
...@@ -303,4 +303,11 @@ public interface GroupQrcodeDao extends BaseDao<GroupQrcode> { ...@@ -303,4 +303,11 @@ public interface GroupQrcodeDao extends BaseDao<GroupQrcode> {
*/ */
List<GroupQrcodeDTO> getGroupQrcodeListByBookGroupId(Long bookGroupId); List<GroupQrcodeDTO> getGroupQrcodeListByBookGroupId(Long bookGroupId);
/**
* 查社群码下群(每个分类取最近建的群)
* @author:zhuyajie
* @date:2020/6/8 16:45
* * @param null
*/
List<GroupQrcodeDTO> listClassifyLatestGroupByBookGroup(Long bookGroupId);
} }
...@@ -396,4 +396,19 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou ...@@ -396,4 +396,19 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou
map.put("openWeapp", openWeapp); map.put("openWeapp", openWeapp);
getSessionTemplate().update(getStatement("updateBookGroupOpenWeapp"), map); getSessionTemplate().update(getStatement("updateBookGroupOpenWeapp"), map);
} }
@Override
public void updateRelatedBookGroup(Long bookGroupId, Long relatedBookGroupId) {
Map<String,Object> map = new HashMap<>();
map.put("relatedBookGroupId", relatedBookGroupId);
map.put("id", bookGroupId);
getSessionTemplate().update(getStatement("updateRelatedBookGroup"),map);
}
@Override
public Map<Long, BookGroupDTO> mapDTOByIds(List<Long> ids) {
Map<String,Object> map = new HashMap<>();
map.put("list",ids);
return getSessionTemplate().selectMap(getStatement("mapDTOByIds"),map,"id");
}
} }
package com.pcloud.book.group.dao.impl; package com.pcloud.book.group.dao.impl;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.pcloud.book.advertising.dto.GroupTagDTO; import com.pcloud.book.advertising.dto.GroupTagDTO;
import com.pcloud.book.advertising.dto.WeixinClassifyInfoDTO; import com.pcloud.book.advertising.dto.WeixinClassifyInfoDTO;
import com.pcloud.book.group.dao.GroupQrcodeDao; import com.pcloud.book.group.dao.GroupQrcodeDao;
...@@ -17,6 +18,7 @@ import com.pcloud.book.group.vo.ClassifyQrcodeVO; ...@@ -17,6 +18,7 @@ import com.pcloud.book.group.vo.ClassifyQrcodeVO;
import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO; import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO;
import com.pcloud.book.group.vo.ListGroupQrcodeResponseVO; import com.pcloud.book.group.vo.ListGroupQrcodeResponseVO;
import com.pcloud.common.core.dao.BaseDaoImpl; import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.HashMap; import java.util.HashMap;
...@@ -306,4 +308,9 @@ public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements Grou ...@@ -306,4 +308,9 @@ public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements Grou
return getSessionTemplate().selectList(getStatement("getGroupQrcodeListByBookGroupId"), bookGroupId); return getSessionTemplate().selectList(getStatement("getGroupQrcodeListByBookGroupId"), bookGroupId);
} }
@Override
public List<GroupQrcodeDTO> listClassifyLatestGroupByBookGroup(Long bookGroupId) {
return getSessionTemplate().selectList(getStatement("listClassifyLatestGroupByBookGroup"), bookGroupId);
}
} }
...@@ -270,6 +270,43 @@ public class BookGroupDTO extends BaseDto { ...@@ -270,6 +270,43 @@ public class BookGroupDTO extends BaseDto {
* 小程序url * 小程序url
*/ */
private String appletUrl; private String appletUrl;
/**
* 是否独立活码群
*/
private Boolean singleGroup;
/**
* 关联群
*/
private Long relatedBookGroupId;
/**
* 社群码链接
*/
private String groupQrcodeLink;
public String getGroupQrcodeLink() {
return groupQrcodeLink;
}
public void setGroupQrcodeLink(String groupQrcodeLink) {
this.groupQrcodeLink = groupQrcodeLink;
}
public Long getRelatedBookGroupId() {
return relatedBookGroupId;
}
public void setRelatedBookGroupId(Long relatedBookGroupId) {
this.relatedBookGroupId = relatedBookGroupId;
}
public Boolean getSingleGroup() {
return singleGroup;
}
public void setSingleGroup(Boolean singleGroup) {
this.singleGroup = singleGroup;
}
/** /**
* 是否开启小睿流程 * 是否开启小睿流程
......
...@@ -155,7 +155,14 @@ public class BookGroup extends BaseEntity { ...@@ -155,7 +155,14 @@ public class BookGroup extends BaseEntity {
* 书籍简称 * 书籍简称
*/ */
private String shortBookName; private String shortBookName;
/**
* 是否独立活码群
*/
private Boolean singleGroup;
/**
* 关联群
*/
private Long relatedBookGroupId;
/** /**
* 好友引导语 * 好友引导语
*/ */
...@@ -165,6 +172,21 @@ public class BookGroup extends BaseEntity { ...@@ -165,6 +172,21 @@ public class BookGroup extends BaseEntity {
*/ */
private Boolean openWeapp; private Boolean openWeapp;
public Long getRelatedBookGroupId() {
return relatedBookGroupId;
}
public void setRelatedBookGroupId(Long relatedBookGroupId) {
this.relatedBookGroupId = relatedBookGroupId;
}
public Boolean getSingleGroup() {
return singleGroup;
}
public void setSingleGroup(Boolean singleGroup) {
this.singleGroup = singleGroup;
}
public Boolean getOpenWeapp() { public Boolean getOpenWeapp() {
return openWeapp; return openWeapp;
...@@ -430,7 +452,6 @@ public class BookGroup extends BaseEntity { ...@@ -430,7 +452,6 @@ public class BookGroup extends BaseEntity {
", belongSpecialAgent=" + belongSpecialAgent + ", belongSpecialAgent=" + belongSpecialAgent +
", shortBookName='" + shortBookName + '\'' + ", shortBookName='" + shortBookName + '\'' +
", friendGuideList=" + friendGuideList + ", friendGuideList=" + friendGuideList +
", openWeapp=" + openWeapp +
'}'; '}';
} }
} }
\ No newline at end of file
...@@ -725,4 +725,28 @@ public interface BookGroupFacade { ...@@ -725,4 +725,28 @@ public interface BookGroupFacade {
@GetMapping("updateBookGroupOpenWeapp") @GetMapping("updateBookGroupOpenWeapp")
ResponseDto<?> updateBookGroupOpenWeapp( ResponseDto<?> updateBookGroupOpenWeapp(
@RequestHeader("token") String token, @RequestParam("bookGroupId") Long bookGroupId, @RequestParam("openWeapp") Boolean openWeapp); @RequestHeader("token") String token, @RequestParam("bookGroupId") Long bookGroupId, @RequestParam("openWeapp") Boolean openWeapp);
@ApiOperation("创建独立活码群社群码")
@PostMapping("createSingleBookGroup")
ResponseDto<Long> createSingleBookGroup(@RequestHeader("token") String token, @RequestBody @ApiParam BookGroup bookGroup);
@ApiOperation("更新小睿关联社群书")
@GetMapping("updateRelatedBookGroup")
ResponseDto<?> updateRelatedBookGroup(@RequestHeader("token") String token,
@RequestParam("bookGroupId") Long bookGroupId, @RequestParam(value = "relatedBookGroupId",required = false) Long relatedBookGroupId);
@ApiOperation(value = "获取独立活码群社群码列表(编辑)", httpMethod = "GET")
@ApiImplicitParams({
@ApiImplicitParam(name = "token", value = "token", dataType = "string", paramType = "header"),
@ApiImplicitParam(name = "name", value = "书籍名称", dataType = "string", paramType = "query"),
@ApiImplicitParam(name = "currentPage", value = "当前页", dataType = "Integer", paramType = "query"),
@ApiImplicitParam(name = "numPerPage", value = "每页条数", dataType = "Integer", paramType = "query")
})
@GetMapping("listSingleBookGroup4Adviser")
ResponseDto<?> listSingleBookGroup4Adviser(@RequestHeader("token") String token,
@RequestParam(value = "name", required = false) String name,
@RequestParam(value = "currentPage", required = true) Integer currentPage,
@RequestParam(value = "numPerPage", required = true) Integer numPerPage)
throws BizException, PermissionException;
} }
...@@ -3,7 +3,6 @@ package com.pcloud.book.group.facade.impl; ...@@ -3,7 +3,6 @@ package com.pcloud.book.group.facade.impl;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.group.biz.BookGroupBiz; 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.constant.BookBusinessConstants;
import com.pcloud.book.group.dto.BookAppletSceneDTO; import com.pcloud.book.group.dto.BookAppletSceneDTO;
import com.pcloud.book.group.dto.BookGroupDTO; import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.ChangeQrCodeTypeDto; import com.pcloud.book.group.dto.ChangeQrCodeTypeDto;
...@@ -16,10 +15,8 @@ import com.pcloud.book.group.entity.BookGroupServe; ...@@ -16,10 +15,8 @@ import com.pcloud.book.group.entity.BookGroupServe;
import com.pcloud.book.group.entity.WxWechatUserCorrelation; import com.pcloud.book.group.entity.WxWechatUserCorrelation;
import com.pcloud.book.group.enums.JoinGroupTypeEnum; import com.pcloud.book.group.enums.JoinGroupTypeEnum;
import com.pcloud.book.group.facade.BookGroupFacade; import com.pcloud.book.group.facade.BookGroupFacade;
import com.pcloud.book.group.tools.BookExcelReader;
import com.pcloud.book.group.vo.BookGroupAnalysisParam; import com.pcloud.book.group.vo.BookGroupAnalysisParam;
import com.pcloud.book.group.vo.BookGroupAnalysisVO; import com.pcloud.book.group.vo.BookGroupAnalysisVO;
import com.pcloud.book.group.vo.ExcelDataVO;
import com.pcloud.book.group.vo.FriendsVO; import com.pcloud.book.group.vo.FriendsVO;
import com.pcloud.book.group.vo.GroupIncomeStaticParamVO; import com.pcloud.book.group.vo.GroupIncomeStaticParamVO;
import com.pcloud.book.group.vo.GroupScanTrendParamVO; import com.pcloud.book.group.vo.GroupScanTrendParamVO;
...@@ -34,25 +31,19 @@ import com.pcloud.book.group.vo.WxGroupStatisticVO; ...@@ -34,25 +31,19 @@ import com.pcloud.book.group.vo.WxGroupStatisticVO;
import com.pcloud.book.keywords.vo.ListKeywordVO; import com.pcloud.book.keywords.vo.ListKeywordVO;
import com.pcloud.common.core.constant.SystemCode; import com.pcloud.common.core.constant.SystemCode;
import com.pcloud.common.dto.ResponseDto; import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.entity.UploadResultInfo;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBean; import com.pcloud.common.page.PageBean;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam; import com.pcloud.common.page.PageParam;
import com.pcloud.common.permission.PermissionException; import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.DateUtils;
import com.pcloud.common.utils.QrcodeUtils;
import com.pcloud.common.utils.SessionUtil; import com.pcloud.common.utils.SessionUtil;
import com.pcloud.common.utils.aliyun.OssUtils;
import com.pcloud.common.utils.cookie.Cookie; import com.pcloud.common.utils.cookie.Cookie;
import com.pcloud.common.utils.httpclient.UrlUtils;
import com.pcloud.common.utils.string.StringUtil; import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.wechatgroup.base.exception.WechatGroupBizException; import com.pcloud.wechatgroup.base.exception.WechatGroupBizException;
import com.pcloud.wechatgroup.message.enums.IsSystem; import com.pcloud.wechatgroup.message.enums.IsSystem;
import org.codehaus.jackson.JsonParseException; import org.codehaus.jackson.JsonParseException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
...@@ -65,14 +56,11 @@ import org.springframework.web.bind.annotation.RequestParam; ...@@ -65,14 +56,11 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
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 cn.hutool.core.util.ZipUtil;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import lombok.SneakyThrows; import lombok.SneakyThrows;
...@@ -152,6 +140,9 @@ public class BookGroupFacadeImpl implements BookGroupFacade { ...@@ -152,6 +140,9 @@ public class BookGroupFacadeImpl implements BookGroupFacade {
if (null == bookId || null == channelId) { if (null == bookId || null == channelId) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "参数有误!"); throw new BookBizException(BookBizException.PARAM_IS_NULL, "参数有误!");
} }
if (bookId.equals(0L)){
return new ResponseDto<>();
}
Long adviserId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID); Long adviserId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
return new ResponseDto<>(bookGroupBiz.getBookGroupInfoByBookId(bookId, channelId, adviserId, addType, sceneId, joinGroupType)); return new ResponseDto<>(bookGroupBiz.getBookGroupInfoByBookId(bookId, channelId, adviserId, addType, sceneId, joinGroupType));
} }
...@@ -1196,4 +1187,32 @@ public class BookGroupFacadeImpl implements BookGroupFacade { ...@@ -1196,4 +1187,32 @@ public class BookGroupFacadeImpl implements BookGroupFacade {
bookGroupBiz.updateBookGroupOpenWeapp(bookGroupId,openWeapp); bookGroupBiz.updateBookGroupOpenWeapp(bookGroupId,openWeapp);
return new ResponseDto<>(); return new ResponseDto<>();
} }
@Override
@PostMapping("createSingleBookGroup")
public ResponseDto<Long> createSingleBookGroup(@RequestHeader("token") String token, @RequestBody @ApiParam BookGroup bookGroup){
Long adviserId = (Long) SessionUtil.getVlaue(token,SessionUtil.PARTY_ID);
return new ResponseDto<>(bookGroupBiz.createSingleBookGroup(bookGroup,adviserId));
}
@Override
@GetMapping("updateRelatedBookGroup")
public ResponseDto<?> updateRelatedBookGroup(@RequestHeader("token") String token,
@RequestParam("bookGroupId") Long bookGroupId, @RequestParam(value = "relatedBookGroupId",required = false) Long relatedBookGroupId) {
SessionUtil.getToken4Redis(token);
bookGroupBiz.updateRelatedBookGroup(bookGroupId, relatedBookGroupId);
return new ResponseDto<>();
}
@Override
@GetMapping("listSingleBookGroup4Adviser")
public ResponseDto<?> listSingleBookGroup4Adviser(@RequestHeader("token") String token,
@RequestParam(value = "name", required = false) String name,
@RequestParam(value = "currentPage", required = true) Integer currentPage,
@RequestParam(value = "numPerPage", required = true) Integer numPerPage)
throws BizException, PermissionException {
Long adviserId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
PageBeanNew<BookGroupDTO> pageBeanNew = bookGroupBiz.listSingleBookGroup4Adviser(name, currentPage, numPerPage, adviserId);
return new ResponseDto<>(pageBeanNew);
}
} }
...@@ -128,4 +128,15 @@ public class BookGroupClassifyServiceImpl implements BookGroupClassifyService { ...@@ -128,4 +128,15 @@ public class BookGroupClassifyServiceImpl implements BookGroupClassifyService {
} }
return ResponseHandleUtil.toResponse(groupQrcode4ClassifyDTO); return ResponseHandleUtil.toResponse(groupQrcode4ClassifyDTO);
} }
@Override
@GetMapping("getGroupQrcodeByClassify")
public ResponseEntity<ResponseDto<GroupQrcode4ClassifyDTO>> getGroupQrcodeByClassify(@RequestParam("wechatUserId") Long wechatUserId,@RequestParam("classifyId") Long classifyId){
GroupQrcode4ClassifyVO groupQrcode4ClassifyVO = bookGroupClassifyBiz.getGroupQrcodeByClassify(classifyId, wechatUserId);
GroupQrcode4ClassifyDTO groupQrcode4ClassifyDTO=new GroupQrcode4ClassifyDTO();
if(null!=groupQrcode4ClassifyVO){
BeanUtils.copyProperties(groupQrcode4ClassifyVO,groupQrcode4ClassifyDTO);
}
return ResponseHandleUtil.toResponse(groupQrcode4ClassifyDTO);
}
} }
...@@ -478,7 +478,7 @@ ...@@ -478,7 +478,7 @@
IF(ISNULL(BF.BOOK_FUND_ID),0,1) IS_FUND_SUPPORT,A.TEMPLET_ID, if(G.ID IS NULL, A.LAST_MODIFIED_DATE, G.UPDATE_TIME) LAST_MODIFIED_DATE, IF(ISNULL(BF.BOOK_FUND_ID),0,1) IS_FUND_SUPPORT,A.TEMPLET_ID, if(G.ID IS NULL, A.LAST_MODIFIED_DATE, G.UPDATE_TIME) LAST_MODIFIED_DATE,
A.BOOK_ADVISER_ID,I.BOOK_STATUS, CONCAT('BK',A.BOOK_ID) uniqueNumber, if(G.ID IS NULL, 0, 1) isBookGroup, A.IS_PRINT isPrint, A.BOOK_ADVISER_ID,I.BOOK_STATUS, CONCAT('BK',A.BOOK_ID) uniqueNumber, if(G.ID IS NULL, 0, 1) isBookGroup, A.IS_PRINT isPrint,
G.id BOOK_GROUP_ID, G.group_qrcode_url groupQrcodeUrl,G.group_qrcode_name groupQrcodeName, G.id BOOK_GROUP_ID, G.group_qrcode_url groupQrcodeUrl,G.group_qrcode_name groupQrcodeName,
G.join_group_type,a.is_open_robot_process G.join_group_type,a.is_open_robot_process,G.single_group singleGroup, G.related_book_group_id relatedBookGroupId
FROM FROM
BOOK_ADVISER A BOOK_ADVISER A
INNER JOIN BOOK B ON A.BOOK_ID = B.BOOK_ID AND A.ADVISER_ID = #{adviserId} AND A.IS_DELETE = 0 AND B.IS_DELETE = 0 INNER JOIN BOOK B ON A.BOOK_ID = B.BOOK_ID AND A.ADVISER_ID = #{adviserId} AND A.IS_DELETE = 0 AND B.IS_DELETE = 0
...@@ -596,7 +596,7 @@ ...@@ -596,7 +596,7 @@
WHEN 2 THEN bgs.id WHEN 2 THEN bgs.id
WHEN 3 THEN srk.id WHEN 3 THEN srk.id
WHEN 4 THEN bgs.id WHEN 4 THEN bgs.id
else null END,0)=0,0,1)as has_serve, A.IS_PRINT isPrint, G.open_weapp openWeapp else null END,0)=0,0,1)as has_serve, A.IS_PRINT isPrint, G.open_weapp openWeapp, G.single_group singleGroup, G.related_book_group_id relatedBookGroupId
FROM FROM
book_group G book_group G
LEFT JOIN BOOK_ADVISER A ON G.BOOK_ID = A.BOOK_ID AND G.CHANNEL_ID = A.CHANNEL_ID AND G.CREATE_USER = A.ADVISER_ID LEFT JOIN BOOK_ADVISER A ON G.BOOK_ID = A.BOOK_ID AND G.CHANNEL_ID = A.CHANNEL_ID AND G.CREATE_USER = A.ADVISER_ID
......
...@@ -81,6 +81,7 @@ ...@@ -81,6 +81,7 @@
book_group_classify book_group_classify
where where
book_group_id = #{_parameter,jdbcType=BIGINT} book_group_id = #{_parameter,jdbcType=BIGINT}
AND is_delete = 0
</select> </select>
...@@ -345,8 +346,11 @@ ...@@ -345,8 +346,11 @@
book_group_classify c book_group_classify c
JOIN book_group_qrcode q ON c.id = q.classify_id JOIN book_group_qrcode q ON c.id = q.classify_id
JOIN book_group g ON c.book_group_id = g.id JOIN book_group g ON c.book_group_id = g.id
JOIN book b ON c.book_id = b.BOOK_ID LEFT JOIN book b ON c.book_id = b.BOOK_ID
WHERE q.weixin_group_id = #{_parameter} WHERE q.weixin_group_id = #{_parameter}
AND c.is_delete = 0
AND g.is_delete = 0
AND q.is_delete = 0
LIMIT 1 LIMIT 1
</select> </select>
...@@ -427,11 +431,10 @@ ...@@ -427,11 +431,10 @@
FROM book_group_classify c FROM book_group_classify c
INNER JOIN book_group_qrcode g ON c.id = g.classify_id INNER JOIN book_group_qrcode g ON c.id = g.classify_id
LEFT JOIN BOOK_GROUP bg on bg.id = c.book_group_id LEFT JOIN BOOK_GROUP bg on bg.id = c.book_group_id
LEFT JOIN book b ON c.book_id = b.book_id LEFT JOIN book b ON c.book_id = b.book_id AND b.is_delete = 0
WHERE c.is_delete = 0 WHERE c.is_delete = 0
AND g.is_delete = 0 AND g.is_delete = 0
AND bg.is_delete = 0 AND bg.is_delete = 0
AND b.is_delete = 0
AND c.create_user = #{adviserId} AND c.create_user = #{adviserId}
<if test="bookIds != null"> <if test="bookIds != null">
AND c.book_id IN AND c.book_id IN
...@@ -443,6 +446,7 @@ ...@@ -443,6 +446,7 @@
AND ( AND (
book_name LIKE CONCAT('%', #{name},'%') book_name LIKE CONCAT('%', #{name},'%')
OR c.classify LIKE CONCAT('%', #{name},'%') OR c.classify LIKE CONCAT('%', #{name},'%')
OR bg.group_qrcode_name LIKE CONCAT('%', #{name},'%')
) )
</if> </if>
<if test="proLabelId!=null"> <if test="proLabelId!=null">
...@@ -474,12 +478,11 @@ ...@@ -474,12 +478,11 @@
FROM book_group_classify c FROM book_group_classify c
INNER JOIN book_group_qrcode g ON c.id = g.classify_id INNER JOIN book_group_qrcode g ON c.id = g.classify_id
LEFT JOIN BOOK_GROUP bg on bg.id = c.book_group_id LEFT JOIN BOOK_GROUP bg on bg.id = c.book_group_id
LEFT JOIN book b ON c.book_id = b.book_id LEFT JOIN book b ON c.book_id = b.book_id AND b.is_delete = 0
LEFT JOIN weixin_clock_group_classify wc ON c.id = wc.book_group_classify_id LEFT JOIN weixin_clock_group_classify wc ON c.id = wc.book_group_classify_id
WHERE c.is_delete = 0 WHERE c.is_delete = 0
AND g.is_delete = 0 AND g.is_delete = 0
AND bg.is_delete = 0 AND bg.is_delete = 0
AND b.is_delete = 0
AND wc.weixin_clock_group_classify_id is null AND wc.weixin_clock_group_classify_id is null
AND c.create_user = #{adviserId} AND c.create_user = #{adviserId}
<if test="bookIds != null"> <if test="bookIds != null">
...@@ -948,10 +951,9 @@ ...@@ -948,10 +951,9 @@
c.has_open_learning_report hasOpenLearningReport c.has_open_learning_report hasOpenLearningReport
FROM book_group_classify c FROM book_group_classify c
LEFT JOIN BOOK_GROUP bg on bg.id = c.book_group_id LEFT JOIN BOOK_GROUP bg on bg.id = c.book_group_id
LEFT JOIN book b ON c.book_id = b.book_id LEFT JOIN book b ON c.book_id = b.book_id AND b.is_delete = 0
WHERE c.is_delete = 0 WHERE c.is_delete = 0
AND bg.is_delete = 0 AND bg.is_delete = 0
AND b.is_delete = 0
AND c.create_user = #{partyId} AND c.create_user = #{partyId}
<if test="keyword != null"> <if test="keyword != null">
AND ( AND (
......
...@@ -31,6 +31,8 @@ ...@@ -31,6 +31,8 @@
<result column="belong_special_agent" property="belongSpecialAgent" jdbcType="BOOLEAN"/> <result column="belong_special_agent" property="belongSpecialAgent" jdbcType="BOOLEAN"/>
<result column="short_book_name" property="shortBookName" jdbcType="VARCHAR"/> <result column="short_book_name" property="shortBookName" jdbcType="VARCHAR"/>
<result column="open_weapp" property="openWeapp" jdbcType="BOOLEAN"/> <result column="open_weapp" property="openWeapp" jdbcType="BOOLEAN"/>
<result column="single_group" property="singleGroup" jdbcType="BOOLEAN"/>
<result column="related_book_group_id" property="relatedBookGroupId" jdbcType="BIGINT"/>
</resultMap> </resultMap>
<resultMap id="BookGroupDTO" type="com.pcloud.book.group.dto.BookGroupDTO"> <resultMap id="BookGroupDTO" type="com.pcloud.book.group.dto.BookGroupDTO">
...@@ -67,6 +69,8 @@ ...@@ -67,6 +69,8 @@
<result column="belong_special_agent" property="belongSpecialAgent" jdbcType="BOOLEAN"/> <result column="belong_special_agent" property="belongSpecialAgent" jdbcType="BOOLEAN"/>
<result column="short_book_name" property="shortBookName" jdbcType="VARCHAR"/> <result column="short_book_name" property="shortBookName" jdbcType="VARCHAR"/>
<result column="open_weapp" property="openWeapp" jdbcType="BOOLEAN"/> <result column="open_weapp" property="openWeapp" jdbcType="BOOLEAN"/>
<result column="single_group" property="singleGroup" jdbcType="BOOLEAN"/>
<result column="related_book_group_id" property="relatedBookGroupId" jdbcType="BIGINT"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
...@@ -75,7 +79,7 @@ ...@@ -75,7 +79,7 @@
create_time, create_time,
update_time, is_delete, is_show_book_name,join_group_type,add_friend_guide,customer_service_name, update_time, is_delete, is_show_book_name,join_group_type,add_friend_guide,customer_service_name,
is_invite_group,book_group_cipher, last_push_update_time, is_some_update, agent_id, belong_special_agent, is_invite_group,book_group_cipher, last_push_update_time, is_some_update, agent_id, belong_special_agent,
short_book_name, open_weapp short_book_name, open_weapp, single_group, related_book_group_id
</sql> </sql>
<select id="getById" resultMap="BaseResultMap" parameterType="java.lang.Long"> <select id="getById" resultMap="BaseResultMap" parameterType="java.lang.Long">
...@@ -312,6 +316,9 @@ ...@@ -312,6 +316,9 @@
<if test="shortBookName != null"> <if test="shortBookName != null">
short_book_name = #{shortBookName}, short_book_name = #{shortBookName},
</if> </if>
<if test="singleGroup !=null">
single_group = #{singleGroup},
</if>
</set> </set>
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</update> </update>
...@@ -984,6 +991,41 @@ ...@@ -984,6 +991,41 @@
and is_delete=0 and is_delete=0
</select> </select>
<update id="updateRelatedBookGroup" parameterType="map">
update book_group
set related_book_group_id = #{relatedBookGroupId}
where id = #{id}
</update>
<select id="mapDTOByIds" resultMap="BookGroupDTO" parameterType="map">
select
<include refid="Base_Column_List"/>
from book_group
where id in
<foreach collection="list" open="(" close=")" item="item" separator=",">
${item}
</foreach>
</select>
<select id="listSingleBookGroup4Adviser" resultType="com.pcloud.book.group.dto.BookGroupDTO" parameterType="map">
SELECT
id,
group_qrcode_name groupQrcodeName,
group_qrcode_url groupQrcodeUrl,
create_time createTime
FROM
book_group
WHERE
is_delete = 0
AND join_group_type = 1
AND single_group = 1
AND create_user = #{adviserId}
<if test="name != null">
AND group_qrcode_name LIKE CONCAT('%', #{name}, '%')
</if>
ORDER BY create_time DESC, id DESC
</select>
<update id="updateBookGroupOpenWeapp" parameterType="map"> <update id="updateBookGroupOpenWeapp" parameterType="map">
UPDATE book_group UPDATE book_group
SET open_weapp = #{openWeapp} SET open_weapp = #{openWeapp}
......
...@@ -591,10 +591,9 @@ ...@@ -591,10 +591,9 @@
book_group_qrcode q book_group_qrcode q
LEFT JOIN book_group_classify c ON q.classify_id = c.id LEFT JOIN book_group_classify c ON q.classify_id = c.id
LEFT JOIN book_group g ON c.book_group_id = g.id LEFT JOIN book_group g ON c.book_group_id = g.id
LEFT JOIN book b ON g.book_id = b.BOOK_ID LEFT JOIN book b ON g.book_id = b.BOOK_ID AND b.IS_DELETE = 0
WHERE WHERE
q.create_user = #{partyId} q.create_user = #{partyId}
AND b.IS_DELETE = 0
AND g.is_delete = 0 AND g.is_delete = 0
AND c.is_delete = 0 AND c.is_delete = 0
AND q.is_delete = 0 AND q.is_delete = 0
...@@ -876,4 +875,36 @@ ...@@ -876,4 +875,36 @@
</if> </if>
</select> </select>
<select id="listClassifyLatestGroupByBookGroup" parameterType="long" resultType="com.pcloud.book.group.dto.GroupQrcodeDTO">
SELECT
r.id id,
r.classify_id classifyId,
r.weixin_group_id weixinGroupId,
r.group_name groupName,
r.user_number userNumber,
f.classify classify,
r.qrcode_url qrcodeUrl,
f.classify_introduce classifyIntroduce,
f.book_group_id bookGroupId
FROM
book_group_qrcode r
LEFT JOIN book_group_classify f ON r.classify_id = f.id
WHERE
r.id IN (
SELECT
MAX(q.id)
FROM
book_group_classify c
LEFT 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
GROUP BY
c.id
)
ORDER BY
f.rank ASC, f.id ASC
</select>
</mapper> </mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment