Commit c0265a68 by 田超

Merge branch 'feature/1003095' into 'master'

feat: [1003095] 社群共读模板支持第三方群分类接入

See merge request rays/pcloud-book!788
parents 2e032e52 775e5765
......@@ -78,11 +78,13 @@ public class AppletGroupManageBizImpl implements AppletGroupManageBiz {
// 平台端共读模板创建修改为选择群分类自更新群 群变更为群分类 需要补充信息
for (AppletGroupManageDTO appletGroupManageDTO : recordList.getRecordList()) {
Long classifyId = appletGroupManageDTO.getClassifyId();
String groupQrCode = groupQrcodeBiz.getChangeGroupQrCode(classifyId);
ClassifyQrcodeVO groupQrcodeInfo = groupQrcodeBiz.getGroupQrcodeInfo(groupQrCode, classifyId);
appletGroupManageDTO.setUserNumber(groupQrcodeInfo.getUserNumber());
appletGroupManageDTO.setBookGroupQrcodeId(groupQrcodeInfo.getId());
appletGroupManageDTO.setGroupPic(groupQrCode);
if (classifyId!=null && classifyId !=0 ) {
String groupQrCode = groupQrcodeBiz.getChangeGroupQrCode(classifyId);
ClassifyQrcodeVO groupQrcodeInfo = groupQrcodeBiz.getGroupQrcodeInfo(groupQrCode, classifyId);
appletGroupManageDTO.setUserNumber(groupQrcodeInfo.getUserNumber());
appletGroupManageDTO.setBookGroupQrcodeId(groupQrcodeInfo.getId());
appletGroupManageDTO.setGroupPic(groupQrCode);
}
}
// 组装标签名称
......
......@@ -19,6 +19,9 @@ public class AppletGroupManageDTO extends BaseEntity {
private Long id;
@ApiModelProperty("群类型 1:第三方群")
private Long groupType;
@ApiModelProperty("共读活动id")
private Long groupActivityId;
......@@ -94,4 +97,6 @@ public class AppletGroupManageDTO extends BaseEntity {
@ApiModelProperty("关联")
private Long relatedBookGroupId;
@ApiModelProperty("第三方群链接")
private String groupLink;
}
\ No newline at end of file
......@@ -1376,7 +1376,7 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz {
}
PageParam pageParam = new PageParam(currentPage, numPerPage);
final Map<String, Object> map = Maps.newHashMap();
map.put("list",ids);
map.put("list", ids);
map.put("name", StringUtil.isEmpty(name) ? null : name);
map.put("proLabelId", proLabelId);
map.put("depLabelId", depLabelId);
......
......@@ -850,6 +850,17 @@ public class RightsSettingBizImpl implements RightsSettingBiz {
private void fillGroupActivityHead(List<GroupActivity4AppletDTO> groupActivity4AppletList) {
if (!ListUtils.isEmpty(groupActivity4AppletList)) {
for (GroupActivity4AppletDTO groupActivity4AppletDTO : groupActivity4AppletList) {
//第三方群获取头像 end add by Pansy
Integer integer = 1;
if(null != groupActivity4AppletDTO.getGroupType() && groupActivity4AppletDTO.getGroupType().intValue() == integer.intValue()){
//头像列表从缓存里取
List<String> headUrlList = appletGroupSearchRecordBiz
.getHeadUrlList(3, 3l);
groupActivity4AppletDTO.setHeadUrlList(headUrlList);
}
//第三方群获取头像 end
String filterStr = StringUtilParent.replaceHtml(groupActivity4AppletDTO.getDesc());
String subStr = filterStr.length() > 60 ? filterStr.substring(0, 60) + "..." : filterStr;
groupActivity4AppletDTO.setCutDesc(subStr);
......@@ -1104,6 +1115,9 @@ public class RightsSettingBizImpl implements RightsSettingBiz {
}
if (item.getServeId() != null && RightsServeTypeEnum.GROUP.name().equals(item.getServeType())
&& !groupIds.contains(item.getServeId())) {
// if (item.getGroup){
//
// }
groupIds.add(item.getServeId());
}
if (item.getServeId() != null && RightsServeTypeEnum.NEWS.name().equals(item.getServeType())
......
......@@ -9,6 +9,7 @@ import com.pcloud.book.applet.dto.AppletGroupManageDTO;
import com.pcloud.book.applet.dto.AppletGroupStatementDTO;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.book.biz.BookBiz;
import com.pcloud.book.book.dao.BookDao;
import com.pcloud.book.book.dao.BookLabelDao;
import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.entity.BookLabel;
......@@ -37,10 +38,13 @@ import com.pcloud.book.skill.dto.UpdateActivityShowStateDTO;
import com.pcloud.book.skill.entity.PcloudGroupActivity;
import com.pcloud.book.skill.entity.PcloudSkill;
import com.pcloud.book.skill.enums.SkillTypeEnum;
import com.pcloud.book.skill.facade.request.GroupActivityClassifyVO;
import com.pcloud.book.skill.facade.request.GroupActivityShowStateVO;
import com.pcloud.book.skill.facade.request.SaveGroupActivityRequestVO;
import com.pcloud.book.skill.facade.request.UpdateGroupActivityRequestVO;
import com.pcloud.book.skill.facade.response.QueryGroupActivityResponseVO;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam;
import com.pcloud.common.utils.ListUtils;
......@@ -55,6 +59,7 @@ import com.sdk.wxgroup.SendPicMessageVO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
......@@ -73,7 +78,6 @@ import java.util.UUID;
@Service
public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz {
@Resource
private PcloudSkillDao pcloudSkillDao;
@Resource
......@@ -115,6 +119,12 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz {
@ParamLog("保存共读活动")
@Override
public void saveGroupActivity(SaveGroupActivityRequestVO vo) {
//校验编号是否重复
Integer count = pcloudGroupActivityDao.getCountByNumber(vo.getNumber());
if (count>0){
throw new BookBizException(BookBizException.PARAM_IS_ERROR,"参数有误,编号已存在!");
}
vo.checkParam();
PcloudGroupActivity entity = vo.getEntity();
Date now = new Date();
......@@ -131,10 +141,17 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz {
@Override
public void updateGroupActivity(UpdateGroupActivityRequestVO vo) {
vo.checkParam();
PcloudGroupActivity activity = pcloudGroupActivityDao.getById(vo.getId());
if (null == activity) {
throw new BookBizException(BookBizException.ID_NOT_EXIST, "共读活动不存在");
}
//校验编号是否重复
Integer count = pcloudGroupActivityDao.getCountByNumber(vo.getNumber());
if (count>0 && (!vo.getNumber().equals(activity.getNumber()))){
throw new BookBizException(BookBizException.PARAM_IS_ERROR,"参数有误,编号已存在!");
}
PcloudGroupActivity entity = vo.getEntity();
Date now = new Date();
entity.setUpdateUser(vo.getUserId());
......@@ -206,6 +223,7 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz {
Long secondClassify,
Long gradeLabelId,
Long subjectLabelId, Integer numPerPage, Integer currentPage) {
PageParam pageParam = new PageParam(currentPage, numPerPage);
BaseTempletClassify baseTempletClassify =new BaseTempletClassify();
baseTempletClassify.setFirstClassify(firstClassify);
......@@ -348,13 +366,17 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz {
@Override
public Map<Long, GroupActivity4AppletDTO> getByIds(List<Long> ids) {
if(ListUtils.isEmpty(ids)){
if (ListUtils.isEmpty(ids)) {
return new HashMap<>();
}
List<Long> activityGroupIds = new ArrayList<>();
List<Long> adviserGroupIds = rightsSettingItemDetailDao.getAdviserGroupIds(ids);
List<Long> activityGroupIds = rightsSettingItemDetailDao.getActivityGroupIds(ids);
if (!ListUtils.isEmpty(adviserGroupIds)) {
ids.removeAll(adviserGroupIds);
}
activityGroupIds = ids;
// 合并
return getGroupMap(adviserGroupIds, activityGroupIds);
return getGroupMap(adviserGroupIds, activityGroupIds);
}
private Map<Long, GroupActivity4AppletDTO> getGroupMap(List<Long> adviserGroupIds, List<Long> activityGroupIds) {
......@@ -420,12 +442,25 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz {
// 通过 classifyId 获取群二维码链接
String groupQrCode = groupQrcodeBiz.getChangeGroupQrCode(activity4AppletDTO.getClassifyId());
// 通过群二维码链接反查群ID
ClassifyQrcodeVO groupQrcodeInfo = groupQrcodeBiz.getGroupQrcodeInfo(groupQrCode, activity4AppletDTO.getClassifyId());
//头像、对话
List<String> headUrlList = appletGroupSearchRecordBiz.getHeadUrlList(groupQrcodeInfo.getUserNumber(), groupQrcodeInfo.getId());
activity4AppletDTO.setHeadUrlList(headUrlList);
List<AppletGroupStatementDTO> statementDTOS = appletGroupSearchRecordBiz.getStatementList(groupQrcodeInfo.getUserNumber(), headUrlList, groupQrcodeInfo.getId());
activity4AppletDTO.setStatementDTOList(statementDTOS);
if (activity4AppletDTO.getClassifyId() != null && activity4AppletDTO.getClassifyId() != 0){
ClassifyQrcodeVO groupQrcodeInfo = groupQrcodeBiz
.getGroupQrcodeInfo(groupQrCode, activity4AppletDTO.getClassifyId());
//头像、对话
List<String> headUrlList = appletGroupSearchRecordBiz
.getHeadUrlList(groupQrcodeInfo.getUserNumber(), groupQrcodeInfo.getId());
activity4AppletDTO.setHeadUrlList(headUrlList);
List<AppletGroupStatementDTO> statementDTOS = appletGroupSearchRecordBiz
.getStatementList(groupQrcodeInfo.getUserNumber(), headUrlList, groupQrcodeInfo.getId());
activity4AppletDTO.setStatementDTOList(statementDTOS);
}else{
//头像、对话
List<String> headUrlList = appletGroupSearchRecordBiz
.getHeadUrlList(3, 3L);
activity4AppletDTO.setHeadUrlList(headUrlList);
}
}
return list;
}
......@@ -466,9 +501,13 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz {
if(ListUtils.isEmpty(ids)){
return new HashMap<>();
}
List<Long> adviserIds = rightsNowItemDao.getAdviserGroupIds(ids);
List<Long> activityGroupIds = rightsNowItemDao.getActivityGroupIds(ids);
return getGroupMap(adviserIds, activityGroupIds);
List<Long> adviserGroupIds = rightsNowItemDao.getAdviserGroupIds(ids);
List<Long> activityGroupIds = new ArrayList<>();
if (!ListUtils.isEmpty(adviserGroupIds)) {
ids.removeAll(adviserGroupIds);
}
activityGroupIds = ids;
return getGroupMap(adviserGroupIds, activityGroupIds);
}
@Override
......
......@@ -3,12 +3,23 @@ package com.pcloud.book.skill.dao;
import com.pcloud.book.rightsSetting.entity.BaseTempletClassify;
import com.pcloud.book.skill.dto.GroupActivity4AppletDTO;
import com.pcloud.book.skill.entity.PcloudGroupActivity;
import com.pcloud.book.skill.facade.request.GroupActivityClassifyVO;
import com.pcloud.book.skill.facade.request.GroupActivityShowStateVO;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
import java.util.Map;
public interface PcloudGroupActivityDao extends BaseDao<PcloudGroupActivity> {
Integer getCountByNumber(String number);
void batchUpdateShowState(GroupActivityClassifyVO groupActivityClassifyVO);
void batchUpdateShowState(GroupActivityShowStateVO appletNewsShowStateVO);
void deleteByIds(List<Long> ids);
Map<Long, PcloudGroupActivity> mayByIds(List<Long> ids);
void updateByPrimaryKeySelective(PcloudGroupActivity entity);
......
......@@ -4,6 +4,8 @@ import com.pcloud.book.rightsSetting.entity.BaseTempletClassify;
import com.pcloud.book.skill.dao.PcloudGroupActivityDao;
import com.pcloud.book.skill.dto.GroupActivity4AppletDTO;
import com.pcloud.book.skill.entity.PcloudGroupActivity;
import com.pcloud.book.skill.facade.request.GroupActivityClassifyVO;
import com.pcloud.book.skill.facade.request.GroupActivityShowStateVO;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
......@@ -16,6 +18,35 @@ import java.util.Map;
public class PcloudGroupActivityDaoImpl extends BaseDaoImpl<PcloudGroupActivity> implements PcloudGroupActivityDao {
@Override
public Integer getCountByNumber(String number){
return getSessionTemplate().selectOne(getStatement("getCountByNumber"), number);
}
@Override
public void batchUpdateShowState(GroupActivityClassifyVO groupActivityClassifyVO) {
Map<String,Object> map = new HashMap<>();
map.put("ids", groupActivityClassifyVO.getIds());
map.put("firstClassify", groupActivityClassifyVO.getFirstClassify());
map.put("secondClassify", groupActivityClassifyVO.getSecondClassify());
map.put("gradeLabelId", groupActivityClassifyVO.getGradeLabelId());
map.put("subjectLabelId", groupActivityClassifyVO.getSubjectLabelId());
getSessionTemplate().update(getStatement("batchUpdateClassify"), map);
}
@Override
public void batchUpdateShowState(GroupActivityShowStateVO groupActivityShowStateVO){
Map<String,Object> map = new HashMap<>();
map.put("ids", groupActivityShowStateVO.getIds());
map.put("showState", groupActivityShowStateVO.getShowState());
getSessionTemplate().update(getStatement("batchUpdateShowState"), map);
}
@Override
public void deleteByIds(List<Long> ids){
getSessionTemplate().update(getStatement("deleteByIds"), ids);
}
@Override
public Map<Long, PcloudGroupActivity> mayByIds(List<Long> ids) {
return super.getSqlSession().selectMap(getStatement("mayByIds"), ids,"id");
}
......
......@@ -19,6 +19,9 @@ import lombok.Data;
@JsonInclude(Include.NON_NULL)
public class GroupActivity4AppletDTO implements Serializable {
@ApiModelProperty("群类型 1:第三方群")
private Integer groupType;
private Long id;
private Boolean openStatus;
......@@ -77,6 +80,6 @@ public class GroupActivity4AppletDTO implements Serializable {
@ApiModelProperty("关联社群书ID")
private Long relatedBookGroupId;
@ApiModelProperty("群类型")
private Integer groupType;
@ApiModelProperty("群链接")
private String groupLink;
}
......@@ -4,6 +4,13 @@ import com.pcloud.book.rightsSetting.entity.BaseTempletClassify;
public class PcloudGroupActivity extends BaseTempletClassify {
private static final long serialVersionUID = -2579070770051745966L;
private String number;
private String groupExtLink;
private Integer groupType;
private String name;
private String desc;
......@@ -133,4 +140,28 @@ public class PcloudGroupActivity extends BaseTempletClassify {
public void setIsDelete(Integer isDelete) {
this.isDelete = isDelete;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getGroupExtLink() {
return groupExtLink;
}
public void setGroupExtLink(String groupExtLink) {
this.groupExtLink = groupExtLink;
}
public Integer getGroupType() {
return groupType;
}
public void setGroupType(Integer groupType) {
this.groupType = groupType;
}
}
\ No newline at end of file
......@@ -2,6 +2,8 @@ package com.pcloud.book.skill.facade;
import com.pcloud.book.skill.biz.PcloudGroupActivityBiz;
import com.pcloud.book.skill.dto.UpdateActivityShowStateDTO;
import com.pcloud.book.skill.facade.request.GroupActivityClassifyVO;
import com.pcloud.book.skill.facade.request.GroupActivityShowStateVO;
import com.pcloud.book.skill.facade.request.SaveGroupActivityRequestVO;
import com.pcloud.book.skill.facade.request.UpdateGroupActivityRequestVO;
import com.pcloud.book.skill.facade.response.QueryGroupActivityResponseVO;
......@@ -9,6 +11,7 @@ import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.SessionUtil;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
......@@ -18,6 +21,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
@RestController
......@@ -67,7 +71,7 @@ public class PcloudGroupActivityFacade {
@PostMapping("updateActivityShowState")
public ResponseDto<Void> updateActivityShowState(@RequestHeader("token") String token, @RequestBody UpdateActivityShowStateDTO showStateDTO) throws PermissionException {
SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
pcloudGroupActivityBiz.updateActivityShowState(showStateDTO);
return new ResponseDto<>();
}
......
package com.pcloud.book.skill.facade.request;
import com.pcloud.book.rightsSetting.entity.BaseTempletClassify;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @ClassName com.pcloud.book.applet.vo.AppletNewsShowStateVO
* @Author ZhengYongQiang
* @Description 批量上下架
* @Date 2020/4/27 20:27
* @Version 1.0
**/
@Data
public class GroupActivityClassifyVO extends BaseTempletClassify {
@ApiModelProperty("修改的数据id")
private List<Long> ids;
}
package com.pcloud.book.skill.facade.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @ClassName com.pcloud.book.applet.vo.AppletNewsShowStateVO
* @Author ZhengYongQiang
* @Description 批量上下架
* @Date 2020/4/27 20:27
* @Version 1.0
**/
@Data
public class GroupActivityShowStateVO implements Serializable {
@ApiModelProperty("修改的数据id")
private List<Long> ids;
@ApiModelProperty("是否展示")
private Boolean showState;
}
......@@ -22,6 +22,15 @@ public class SaveGroupActivityRequestVO extends BaseTempletClassify {
private static final long serialVersionUID = -5370056714391879364L;
@ApiModelProperty("编号")
private String number;
@ApiModelProperty("第三方入群链接")
private String groupExtLink;
@ApiModelProperty("群类型 0官方群 1第三方入群指引")
private Integer groupType;
@ApiModelProperty("共度名称")
private String name;
......@@ -49,10 +58,17 @@ public class SaveGroupActivityRequestVO extends BaseTempletClassify {
public void checkParam() {
if (StringUtil.isBlank(this.getName())
|| null == this.getProLabelId() || null == this.getDepLabelId()
|| null == this.getJoinType() || null == this.getPurLabelId()
|| null == this.getBookGroupClassifyId()) {
|| null == this.getPurLabelId()
|| null == this.getGroupType()
|| null == this.getNumber()) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "请求参数缺失");
}
if("0".equals(this.getGroupType())){
if (null == this.getJoinType()
|| null == this.getBookGroupClassifyId()) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "请求参数缺失");
}
}
}
/**
......
......@@ -22,6 +22,15 @@ public class UpdateGroupActivityRequestVO extends BaseTempletClassify {
private static final long serialVersionUID = 3642060073527485455L;
@ApiModelProperty("编号")
private String number;
@ApiModelProperty("第三方入群链接")
private String groupExtLink;
@ApiModelProperty("群类型 0官方群 1第三方入群指引")
private Integer groupType;
@ApiModelProperty("主键")
private Long id;
......@@ -55,8 +64,10 @@ public class UpdateGroupActivityRequestVO extends BaseTempletClassify {
public void checkParam() {
if (null == id || StringUtil.isBlank(this.getName())
|| null == this.getProLabelId() || null == this.getDepLabelId()
|| null == this.getJoinType() || null == this.getPurLabelId()
|| null == this.getBookGroupClassifyId()) {
|| null == this.getPurLabelId()
|| null == this.getBookGroupClassifyId()
|| null == this.getJoinType()
|| null == this.getNumber()) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "请求参数缺失");
}
}
......
......@@ -6,6 +6,14 @@ import lombok.Data;
@Data
public class QueryGroupActivityResponseVO {
@ApiModelProperty("编号")
private String number;
@ApiModelProperty("群链接")
private String groupExtLink;
@ApiModelProperty("群类型")
private Integer groupType;
@ApiModelProperty("主键")
private Integer id;
......
......@@ -62,19 +62,23 @@
b.book_group_classify_id AS classifyId,
c.book_group_id bookGroupId,
c.price,
g.related_book_group_id relatedBookGroupId
g.related_book_group_id relatedBookGroupId,
b.group_type as groupType,
b.group_extLink as groupLink
FROM
applet_group_manage a
LEFT JOIN pcloud_group_activity b ON a.group_activity_id = b.id AND b.is_delete = 0
LEFT JOIN book_group_classify c ON b.book_group_classify_id = c.id AND c.is_delete = 0
left JOIN pcloud_group_activity b ON a.group_activity_id = b.id
left JOIN book_group_classify c ON b.book_group_classify_id = c.id
LEFT JOIN book_group g ON g.id = c.book_group_id
WHERE a.enable=1
<if test="recommend!=null">
AND a.recommend=#{recommend}
</if>
<if test="name!=null">
AND b.name like concat('%',#{name},'%')
</if>
AND b.is_delete = 0
AND (c.is_delete = 0 or c.is_delete is NULL)
<if test="recommend!=null">
AND a.recommend=#{recommend}
</if>
<if test="name!=null">
AND b.name like concat('%',#{name},'%')
</if>
ORDER BY a.id DESC
</select>
......
package test;
import com.pcloud.book.BookApplication;
import com.pcloud.book.adnews.biz.AdNewsBiz;
import com.pcloud.book.book.biz.BookKeywordWarehouseBiz;
import com.pcloud.book.book.constant.BookConstant;
import com.pcloud.book.book.vo.BookKeywordDetailVO;
......
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