Commit 877b9b11 by 王祖波

Merge branch 'feature-content4-3' into test_branch

# Conflicts:
#	haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/content/ContentMaterialController.java
parents 5b0ca954 5b3a35ab
......@@ -9,20 +9,22 @@ package com.gic.haoban.manage.api.enums;
**/
public enum HaobanClerkTypeEnum {
;
CLERK(0, "导购/店员"),
STORE_MANAGER(1, "店长"),
AREA_MANAGER(2, "区经");
HaobanClerkTypeEnum(Integer type, String desc){
this.code = type;
this.desc = desc;
}
private int code;
private Integer code;
private String desc;
public int getCode() {
public Integer getCode() {
return code;
}
public void setCode(int code) {
public void setCode(Integer code) {
this.code = code;
}
......
......@@ -91,7 +91,11 @@ public class MaterialDataAdaptor {
if (result.get("data") == null) {
return null;
}
JSONObject jsonObject = DataApiUtils.getPageOne(result);
List<JSONObject> dataList = DataApiUtils.getDataList(result);
if (CollectionUtils.isEmpty(dataList)) {
return null;
}
JSONObject jsonObject = dataList.get(0);
if (jsonObject.isEmpty()) {
return null;
}
......@@ -136,7 +140,11 @@ public class MaterialDataAdaptor {
if (result.get("data") == null) {
return null;
}
JSONObject jsonObject = DataApiUtils.getPageOne(result);
List<JSONObject> dataList = DataApiUtils.getDataList(result);
if (CollectionUtils.isEmpty(dataList)) {
return null;
}
JSONObject jsonObject = dataList.get(0);
if (jsonObject.isEmpty()) {
return null;
}
......
......@@ -304,6 +304,10 @@ public class AppOrderApiServiceImpl implements AppOrderApiService {
appOrderEndTime = now;
}
logger.info("已购买付费应用的到期时间:{},合同到期时间:{}",DateUtil.dateToStr(appOrderEndTime,DateUtil.FORMAT_DATETIME_19),DateUtil.dateToStr(endTime,DateUtil.FORMAT_DATETIME_19));
//如果过期时间小于当前时间,取当前时间
if (now.after(appOrderEndTime)){
appOrderEndTime = now;
}
int i = DateUtil.daysBetween(appOrderEndTime, endTime);
if(i< 0){
i = 0;
......
......@@ -526,19 +526,17 @@ public class HaobanRoleApiServiceImpl implements HaobanRoleApiService {
// 查询企微下 导购、店长、区经 的role_id
String wxEnterpriseId = wxEnterpris.getWxEnterpriseId();
// 处理商户权限
handlerMaterchant(contentMaterialROleInitQDTO, wxEnterpriseId);
handlerMerchant(contentMaterialROleInitQDTO, wxEnterpriseId);
}
return ServiceResponse.success();
}
private void handlerMaterchant(ContentMaterialROleInitQDTO contentMaterialROleInitQDTO, String wxEnterpriseId) {
private void handlerMerchant(ContentMaterialROleInitQDTO contentMaterialROleInitQDTO, String wxEnterpriseId) {
// 运维 + 好办后台
List<HaobanRoleBO> haobanRoleBOS = haobanRoleService.getListByWxEnterpriseId(wxEnterpriseId, null);
if (CollectionUtils.isEmpty(haobanRoleBOS)) {
logger.info("企业{} 企微 {} 下没有角色 ", contentMaterialROleInitQDTO.getEnterpriseId(), wxEnterpriseId);
return;
}
// 为role 添加菜单
List<TabHaobanRoleMenu> haobanRoleMenus = new ArrayList<>();
for (HaobanRoleBO haobanRoleBO : haobanRoleBOS) {
List<String> menuCodes = menuCodeMap.get(haobanRoleBO.getClerkType() + "" + contentMaterialROleInitQDTO.getVersion());
......@@ -567,6 +565,28 @@ public class HaobanRoleApiServiceImpl implements HaobanRoleApiService {
.collect(Collectors.toList());
logger.info("企微:{} roleId:{} 新增权限code: {}", wxEnterpriseId, haobanRoleBO.getRoleId(), JSON.toJSONString(tabHaobanRoleMenus));
haobanRoleMenus.addAll(tabHaobanRoleMenus);
if (haobanRoleBO.getSystemFlag() == 0) {
// 处理只加运维权限逻辑
if (CollectionUtils.isNotEmpty(superManagementMenuCode)) {
List<TabHaobanRoleMenu> roleMenus = superManagementMenuCode
.stream()
.filter(item -> StringUtils.isNotBlank(item) && !excludeMenuCodes.contains(item))
.map(item -> {
TabHaobanRoleMenu temp = new TabHaobanRoleMenu();
temp.setRoleMenuId(UniqueIdUtils.uniqueLong());
temp.setRoleId(haobanRoleBO.getRoleId());
temp.setWxEnterpriseId(wxEnterpriseId);
temp.setStatusFlag(1);
temp.setMenuCode(item);
temp.setCreateTime(new Date());
temp.setUpdateTime(new Date());
return temp;
})
.collect(Collectors.toList());
haobanRoleMenus.addAll(roleMenus);
}
}
}
logger.info("企微:{} 新增权限code: {}", wxEnterpriseId, JSON.toJSONString(haobanRoleMenus));
if (CollectionUtils.isNotEmpty(haobanRoleMenus)) {
......@@ -575,6 +595,7 @@ public class HaobanRoleApiServiceImpl implements HaobanRoleApiService {
}
private static final Map<String, List<String> > menuCodeMap = new HashMap<>();
private static final List<String> superManagementMenuCode = new ArrayList<>();
static {
// 导购
......@@ -591,6 +612,7 @@ public class HaobanRoleApiServiceImpl implements HaobanRoleApiService {
menuCodeMap.put("2" + ContentMaterialROleInitQDTO.Version.LOW.getCode(), Arrays.asList("materialMain", "commodityCenter", "commodityCenterTab", "materialCenterTab", "goodsDetail_material", "goodsCenter_Count", "materialManage"));
menuCodeMap.put("2" + ContentMaterialROleInitQDTO.Version.HIGH.getCode(), Arrays.asList("materialMain", "commodityCenter", "commodityCenterTab", "materialCenterTab",
"goodsDetail_material", "goodsCenter_Count", "materialManage", "publishMaterial", "userCenter_createCenter"));
// superManagementMenuCode.add("");
}
......@@ -605,7 +627,7 @@ public class HaobanRoleApiServiceImpl implements HaobanRoleApiService {
logger.info("flushRightOneTime 刷新企业内容权限:{}", params);
// 获取所有开通内容高级版的企业
List<String> enterpriseIds = materialEnterpriseAdaptor.queryHasRightEnterpriseIds(MaterialEnterpriseAdaptor.MaterialLevel.HIGH.getCode());
List<String> enterpriseIds = materialEnterpriseAdaptor.queryHasRightEnterpriseIds(MaterialEnterpriseAdaptor.MaterialLevel.LOW.getCode());
// 执行刷新权限
String enterpriseId = "";
if (StringUtils.isNotBlank(params) && !StringUtils.equals("-1", params)) {
......@@ -621,14 +643,11 @@ public class HaobanRoleApiServiceImpl implements HaobanRoleApiService {
logger.info("【flushRightOneTime】当前企业:{} 不是目标企业:{}, 忽略", tempId, enterpriseId);
continue;
}
ContentMaterialROleInitQDTO contentMaterialROleInitQDTO = new ContentMaterialROleInitQDTO();
contentMaterialROleInitQDTO.setEnterpriseId(tempId);
contentMaterialROleInitQDTO.setVersion(MaterialEnterpriseAdaptor.MaterialLevel.HIGH.getCode());
logger.info("【flushRightOneTime】添加企业素材纬度权限: {}", JSON.toJSONString(contentMaterialROleInitQDTO));
logger.info("【flushRightOneTime】添加企业素材纬度权限: {}", tempId);
// 查询企业下所有的微信企业id
List<TabHaobanWxEnterprise> tabHaobanWxEnterprises = wxEnterpriseRelatedService.listByEnterpriseId(contentMaterialROleInitQDTO.getEnterpriseId());
List<TabHaobanWxEnterprise> tabHaobanWxEnterprises = wxEnterpriseRelatedService.listByEnterpriseId(tempId);
if (CollectionUtils.isEmpty(tabHaobanWxEnterprises)) {
logger.info("【flushRightOneTime】企业 {} 未关联企微 ", contentMaterialROleInitQDTO.getEnterpriseId());
logger.info("【flushRightOneTime】企业 {} 未关联企微 ", tempId);
continue;
}
......@@ -636,10 +655,10 @@ public class HaobanRoleApiServiceImpl implements HaobanRoleApiService {
// 查询企微下 导购、店长、区经 的role_id
String wxEnterpriseId = wxEnterpris.getWxEnterpriseId();
// 处理商户权限
// 运维 + 好办后台
List<HaobanRoleBO> haobanRoleBOS = haobanRoleService.getListByWxEnterpriseId(wxEnterpriseId, null);
// 运维
List<HaobanRoleBO> haobanRoleBOS = haobanRoleService.getListByWxEnterpriseId(wxEnterpriseId, 0);
if (CollectionUtils.isEmpty(haobanRoleBOS)) {
logger.info("【flushRightOneTime】企业{} 企微 {} 下没有角色 ", contentMaterialROleInitQDTO.getEnterpriseId(), wxEnterpriseId);
logger.info("【flushRightOneTime】企业{} 企微 {} 下没有角色 ", tempId, wxEnterpriseId);
continue;
}
logger.info("【flushRightOneTime】企业 {} 企微 {} 下角色个数: {}", enterpriseId, wxEnterpriseId, haobanRoleBOS.size());
......
package com.gic.haoban.manage.web.controller.content;
import cn.hutool.core.util.ObjectUtil;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.PageHelperUtils;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.content.api.dto.comment.ListCommentDTO;
import com.gic.content.api.dto.comment.ListSonCommentDTO;
import com.gic.content.api.dto.comment.SonCommentInfoDTO;
import com.gic.content.api.enums.MaterialPurposeEnum;
import com.gic.content.api.enums.UserTypeEnum;
import com.gic.content.api.qdto.comment.ListMobileCommentQDTO;
import com.gic.content.api.qdto.comment.SaveCommentQDTO;
import com.gic.content.api.service.ContentMaterialCommentApiService;
import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
import com.gic.haoban.manage.api.enums.HaobanClerkTypeEnum;
import com.gic.haoban.manage.api.service.StaffClerkRelationApiService;
import com.gic.haoban.manage.web.qo.content.comment.CommentCountQO;
import com.gic.haoban.manage.web.qo.content.comment.CommentInfoVO;
import com.gic.haoban.manage.web.qo.content.comment.SaveCommentQO;
import com.gic.haoban.manage.web.qo.content.comment.SonCommentInfoVO;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* 好办-知识库-评论
* @Author MUSI
* @Date 2023/9/19 3:16 PM
* @Description
* @Version
**/
@RestController
@RequestMapping(path = "/comment")
public class CommentController {
@Autowired
private ContentMaterialCommentApiService contentMaterialCommentApiService;
@Autowired
private StaffClerkRelationApiService staffClerkRelationApiService;
/**
* 评论总数(包含子评论)
* @return
*/
@RequestMapping(path = "/count-comment")
public RestResponse<Integer> countContentComment(CommentCountQO commentCountQO) {
ListMobileCommentQDTO mobileCommentQDTO = new ListMobileCommentQDTO();
mobileCommentQDTO.setEnterpriseId(commentCountQO.getEnterpriseId());
mobileCommentQDTO.setContentMaterialId(commentCountQO.getContentMaterialId());
mobileCommentQDTO.setMemberId(commentCountQO.getClerkId());
mobileCommentQDTO.setMaterialPurpose(3);
ServiceResponse<Integer> serviceResponse = contentMaterialCommentApiService.countCommentForWechat(mobileCommentQDTO);
return RestResponse.successResult(serviceResponse.getResult());
}
/**
* 评论列表
* @param commentCountQO
* @return
*/
@RequestMapping(path = "/list-comment")
public RestResponse<Page<CommentInfoVO>> listCommentInfoVo(CommentCountQO commentCountQO) {
ListMobileCommentQDTO mobileCommentQDTO = new ListMobileCommentQDTO();
mobileCommentQDTO.setEnterpriseId(commentCountQO.getEnterpriseId());
mobileCommentQDTO.setContentMaterialId(commentCountQO.getContentMaterialId());
mobileCommentQDTO.setMemberId(commentCountQO.getClerkId());
mobileCommentQDTO.setMaterialPurpose(MaterialPurposeEnum.KNOWLEDGE.code);
ServiceResponse<Page<ListCommentDTO>> serviceResponse = contentMaterialCommentApiService.listComment(mobileCommentQDTO);
if (!serviceResponse.isSuccess()) {
return RestResponse.failure(serviceResponse.getCode(), serviceResponse.getMessage());
}
if (CollectionUtils.isEmpty(serviceResponse.getResult().getResult())) {
return RestResponse.successResult();
}
List<Long> contentMaterialCommentIds = serviceResponse.getResult().getResult().stream().map(ListCommentDTO::getContentMaterialCommentId).collect(Collectors.toList());
//获取子评论信息
ServiceResponse<Map<Long, SonCommentInfoDTO>> filterAuditStatusByContentMaterialCommentIds = contentMaterialCommentApiService.getFilterAuditStatusByContentMaterialCommentIds(mobileCommentQDTO, contentMaterialCommentIds);
Map<Long, SonCommentInfoDTO> sonCommentInfoDTOMap = filterAuditStatusByContentMaterialCommentIds.getResult();
serviceResponse.getResult().getResult().forEach(comment -> {
if (sonCommentInfoDTOMap.containsKey(comment.getContentMaterialCommentId())) {
SonCommentInfoDTO sonCommentInfoDTO = sonCommentInfoDTOMap.get(comment.getContentMaterialCommentId());
comment.setSonComments(ObjectUtil.isNotNull(sonCommentInfoDTO.getListSonCommentDTO()) ? Collections.singletonList(sonCommentInfoDTO.getListSonCommentDTO()) : new ArrayList<>());
comment.setSonCommentNum(sonCommentInfoDTO.getTotal());
}
});
Page<CommentInfoVO> commentInfoVOPage = PageHelperUtils.changePageToCurrentPage(serviceResponse.getResult(), CommentInfoVO.class);
return RestResponse.successResult(commentInfoVOPage);
}
/**
* 子评论列表
* @return
*/
@RequestMapping(path = "/list-son-comment")
public RestResponse<Page<SonCommentInfoVO>> listSonComment(CommentCountQO commentCountQO) {
if (ObjectUtil.isEmpty(commentCountQO.getNextContentMaterialCommentId())){
commentCountQO.setNextContentMaterialCommentId(0L);
}
ListMobileCommentQDTO listMobileCommentQDTO = EntityUtil.changeEntityByJSON(ListMobileCommentQDTO.class, commentCountQO);
listMobileCommentQDTO.setMemberId(commentCountQO.getClerkId());
listMobileCommentQDTO.setMaterialPurpose(MaterialPurposeEnum.KNOWLEDGE.code);
ServiceResponse<Page<ListSonCommentDTO>> serviceResponse = contentMaterialCommentApiService.listSonCommentForWechat(listMobileCommentQDTO);
if (!serviceResponse.isSuccess()) {
return RestResponse.failure(serviceResponse.getCode(), serviceResponse.getMessage());
}
Page<SonCommentInfoVO> commentInfoVOPage = PageHelperUtils.changePageToCurrentPage(serviceResponse.getResult(), SonCommentInfoVO.class);
return RestResponse.successResult(commentInfoVOPage);
}
/**
* 添加评论
* @param saveCommentQO
* @return
*/
@RequestMapping(path = "/save-comment")
public RestResponse<SonCommentInfoVO> saveComment(@RequestBody SaveCommentQO saveCommentQO) {
SaveCommentQDTO saveCommentQDTO = EntityUtil.changeEntityByJSON(SaveCommentQDTO.class, saveCommentQO);
saveCommentQDTO.setMemberId(saveCommentQO.getClerkId());
saveCommentQDTO.setReplyMemberId(saveCommentQO.getReplyClerkId());
List<String> clerkIds = new ArrayList<>();
clerkIds.add(saveCommentQO.getClerkId());
if (StringUtils.isNotBlank(saveCommentQO.getReplyClerkId())) {
clerkIds.add(saveCommentQO.getReplyClerkId());
}
Map<String, StaffClerkRelationDTO> clerkInfoMap = this.getClerkInfoMap(saveCommentQO.getWxEnterpriseId(), clerkIds);
StaffClerkRelationDTO staffClerkRelationDTO = clerkInfoMap.get(saveCommentQO.getClerkId());
if (staffClerkRelationDTO != null) {
saveCommentQDTO.setUserCode(staffClerkRelationDTO.getClerkCode());
if (HaobanClerkTypeEnum.AREA_MANAGER.getCode().equals(staffClerkRelationDTO.getClerkType())) {
saveCommentQDTO.setUserType(UserTypeEnum.AREA_MANAGER.value);
}else {
saveCommentQDTO.setUserType(UserTypeEnum.CLERK.value);
}
}
staffClerkRelationDTO = clerkInfoMap.get(saveCommentQO.getReplyClerkId());
if (staffClerkRelationDTO != null) {
saveCommentQDTO.setReplyUserCode(staffClerkRelationDTO.getClerkCode());
if (HaobanClerkTypeEnum.AREA_MANAGER.getCode().equals(staffClerkRelationDTO.getClerkType())) {
saveCommentQDTO.setReplyUserType(UserTypeEnum.AREA_MANAGER.value);
}else {
saveCommentQDTO.setReplyUserType(UserTypeEnum.CLERK.value);
}
}
saveCommentQDTO.setAuditStatus(2);
saveCommentQDTO.setMaterialPurpose(MaterialPurposeEnum.KNOWLEDGE.code);
saveCommentQDTO.setShowFlag(1);
ServiceResponse<ListSonCommentDTO> serviceResponse = contentMaterialCommentApiService.saveComment(saveCommentQDTO);
SonCommentInfoVO sonCommentInfoVO = EntityUtil.changeEntityByJSON(SonCommentInfoVO.class, serviceResponse.getResult());
return RestResponse.successResult(sonCommentInfoVO);
}
public Map<String, StaffClerkRelationDTO> getClerkInfoMap(String wxEnterpriseId, List<String> clerkIds) {
List<StaffClerkRelationDTO> staffClerkRelations = staffClerkRelationApiService.listByClerkIdsWxEnterpriseId(clerkIds, wxEnterpriseId);
if (CollectionUtils.isEmpty(staffClerkRelations)) {
return Collections.emptyMap();
}
return staffClerkRelations
.stream()
.collect(Collectors.toMap(StaffClerkRelationDTO::getClerkId, Function.identity(), (v1, v2) -> v1));
}
}
......@@ -16,10 +16,7 @@ import com.gic.haoban.manage.web.qo.content.statistics.MaterialReportQO;
import com.gic.haoban.manage.web.qo.content.statistics.MaterialStoreAnalyzeDataQO;
import com.gic.haoban.manage.web.qo.content.statistics.MaterialStoreReportQO;
import com.gic.haoban.manage.web.vo.content.creative.ContentMaterialConvsVO;
import com.gic.haoban.manage.web.vo.content.statistics.MaterialAreaUsedDataVO;
import com.gic.haoban.manage.web.vo.content.statistics.MaterialClerkUsedDataVO;
import com.gic.haoban.manage.web.vo.content.statistics.MaterialDataOverviewVO;
import com.gic.haoban.manage.web.vo.content.statistics.MaterialStoreUsedDataVO;
import com.gic.haoban.manage.web.vo.content.statistics.*;
import com.gic.haoban.manage.web.vo.content.statistics.bo.MaterialTodayDataBO;
import com.gic.haoban.manage.web.vo.content.statistics.bo.MemberVisitMaterialBO;
import com.gic.haoban.manage.web.vo.content.statistics.report.MaterialPersonalUsedDataVO;
......@@ -29,11 +26,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.*;
import java.util.stream.Collectors;
/**
......@@ -105,6 +98,10 @@ public class MaterialDataAdaptor {
*/
private static final String MATERIAL_CREATIVE_CONVS_TOTAL_DATA = "data_cms_matl_examine_convs_total";
/**
* 知识库素材列表数据
*/
private static final String MATERIAL_KNOWL_DATA = "data_cms_matl_knowl_list";
@Autowired
private EnterpriseService enterpriseService;
......@@ -521,4 +518,36 @@ public class MaterialDataAdaptor {
}
return new ContentMaterialConvsVO();
}
/**
* 知识库列表数据
* @param enterpriseId 企业id
* @param materialIdList 素材id列表
* @return
*/
public List<ContentMaterialKnowVO> queryKnowData(String enterpriseId, List<Long> materialIdList) {
Map<String, Object> inlineParams = new HashMap<>();
if (CollectionUtils.isEmpty(materialIdList)) {
return new ArrayList<>();
}
inlineParams.put("enterpriseId", enterpriseId);
inlineParams.put("contentMaterialId", StringUtils.join(materialIdList, ","));
//只查询公开的评论
inlineParams.put("showFlag", 1);
inlineParams.put("pageNum", 1);
inlineParams.put("pageSize", materialIdList.size());
Map<String, Object> result = null;
try {
result = DataApiUtils.http(JSON.toJSONString(inlineParams), MATERIAL_KNOWL_DATA);
} catch (Exception e) {
log.error("获取知识库数据异常",e);
return new ArrayList<>();
}
List<ContentMaterialKnowVO> list = DataApiUtils.parsePageDataList(result, ContentMaterialKnowVO.class);
if (CollectionUtils.isNotEmpty(list)) {
return list;
}
return new ArrayList<>();
}
}
package com.gic.haoban.manage.web.qo.content;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import java.util.List;
@JsonSerialize(using= ToStringSerializer.class)
public class ContentMaterialClerkQO {
/**
* 企业ID
*/
private String enterpriseId;
/**
* 素材id列表
*/
private List<Long> contentMaterialIdList;
/**
* 导购id
*/
private String clerkId;
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public List<Long> getContentMaterialIdList() {
return contentMaterialIdList;
}
public void setContentMaterialIdList(List<Long> contentMaterialIdList) {
this.contentMaterialIdList = contentMaterialIdList;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
}
......@@ -36,7 +36,7 @@ public class ContentMaterialListQO extends PageQo {
private String materialSearch;
/**
* 素材类型1图文2纯文字3纯图片4视频
* 素材类型1图文2纯文字3纯图片4视频5图文/视频6文件7富文本
*/
private Integer materialType;
......
package com.gic.haoban.manage.web.qo.content;
import com.gic.commons.web.qo.PageQo;
import com.gic.content.api.enums.MaterialSearchSceneEnum;
/**
* @Author MUSI
......@@ -10,7 +11,11 @@ import com.gic.commons.web.qo.PageQo;
**/
public class ContentMaterialQO extends PageQo {
/**
* 查询场景 1:gic后台营销素材 2:好办营销素材 3:gic后台社区素材 4:gic后台审核素材 5:好办审核素材 6:小程序社区素材 7:gic后台知识库 8:好办知识库
* @see com.gic.content.api.enums.MaterialSearchSceneEnum
*/
private Integer queryScene = MaterialSearchSceneEnum.HAOBAN_MARKETING.value;
/**
* 企业id
*/
......@@ -37,7 +42,7 @@ public class ContentMaterialQO extends PageQo {
private Integer sortType;
/**
* 素材类型1图文2纯文字3纯图片4视频
* 素材类型1图文2纯文字3纯图片4视频5图文/视频6文件7富文本
*/
private Integer materialType;
......@@ -58,6 +63,13 @@ public class ContentMaterialQO extends PageQo {
*/
private Integer searchType;
public Integer getQueryScene() {
return queryScene;
}
public void setQueryScene(Integer queryScene) {
this.queryScene = queryScene;
}
public Integer getSortType() {
return sortType;
......
package com.gic.haoban.manage.web.qo.content.comment;
import com.gic.api.base.commons.BasePageInfo;
import lombok.Data;
/**
* @Author MUSI
* @Date 2023/9/19 3:25 PM
* @Description
* @Version
**/
@Data
public class CommentCountQO extends BasePageInfo {
private static final long serialVersionUID = -4989542424690624006L;
/**
* 企业ID
*/
private String enterpriseId;
/**
* 素材ID
*/
private Long contentMaterialId;
/**
* 导购id
*/
private String clerkId;
/**
* 评论ID (查询子评论使用)取parentContentMaterialCommentId字段,如果有就传,没有就取contentMaterialCommentId
*/
private String contentMaterialCommentId;
/**
* 滚动查询,评论ID
*/
private Long nextContentMaterialCommentId;
}
package com.gic.haoban.manage.web.qo.content.comment;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @Author MUSI
* @Date 2023/9/19 4:41 PM
* @Description
* @Version
**/
@Data
public class CommentInfoVO implements Serializable {
private static final long serialVersionUID = -8820263048755899343L;
/**
* 素材评论id
*/
private Long contentMaterialCommentId;
/**
* 素材id
*/
private Long contentMaterialId;
/**
* 评论内容
*/
private String commentContent;
/**
* 审核状态0未审核1未通过2已通过
*/
private Integer auditStatus;
/**
* 是否置顶0不置顶1置顶
*/
private Integer topFlag;
/**
* 是否公开展示0隐藏1公开
*/
private Integer showFlag;
/**
* 会员ID
*/
private String memberId;
/**
* 会员昵称
*/
private String memberNick;
/**
* 会员头像
*/
private String memberHeadImage;
/**
* 会员删除标记 0:未删除 1:已删除
*/
private Integer memberDeleteFlag = 0;
/**
* 子评论
*/
private List<SonCommentInfoVO> sonComments;
/**
* 子评论数量(已经减去了展示的子评论)
*/
private Integer sonCommentNum;
/**
* 创建时间
*/
private Date createTime;
}
package com.gic.haoban.manage.web.qo.content.comment;
import lombok.Data;
import java.io.Serializable;
/**
* @Author MUSI
* @Date 2023/9/19 5:00 PM
* @Description
* @Version
**/
@Data
public class SaveCommentQO implements Serializable {
private static final long serialVersionUID = -1584226631161349430L;
/**
* 微信信息
*/
private String wxEnterpriseId;
/**
* 父级素材评论id
*/
private Long parentContentMaterialCommentId;
/**
* 素材id
*/
private Long contentMaterialId;
/**
* 评论内容
*/
private String commentContent;
/**
* 回复的导购ID
*/
private String replyClerkId;
/**
* 导购ID
*/
private String clerkId;
/**
* 企业ID
*/
private String enterpriseId;
}
package com.gic.haoban.manage.web.qo.content.comment;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @Author MUSI
* @Date 2023/9/19 4:42 PM
* @Description
* @Version
**/
@Data
public class SonCommentInfoVO implements Serializable {
private static final long serialVersionUID = 2419520239887917983L;
/**
* 素材评论id
*/
private Long contentMaterialCommentId;
/**
* 父级素材评论id
*/
private Long parentContentMaterialCommentId;
/**
* 素材id
*/
private Long contentMaterialId;
/**
* 评论内容
*/
private String commentContent;
/**
* 审核状态0未审核1未通过2已通过
*/
private Integer auditStatus;
/**
* 是否置顶0不置顶1置顶
*/
private Integer topFlag;
/**
* 是否公开展示0隐藏1公开
*/
private Integer showFlag;
/**
* 会员ID
*/
private String memberId;
/**
* 会员昵称
*/
private String memberNick;
/**
* 会员删除标记 0:未删除 1:已删除
*/
private Integer memberDeleteFlag = 0;
/**
* 会员头像
*/
private String memberHeadImage;
/**
* 回复的会员ID
*/
private String replyMemberId;
/**
* 回复的会员昵称
*/
private String replyMemberNick;
/**
* 回复的会员头像
*/
private String replyMemberHeadImage;
/**
* 会员删除标记 0:未删除 1:已删除
*/
private Integer replyMemberDeleteFlag = 0;
private Boolean isMainComment = false;
/**
* 创建时间
*/
private Date createTime;
}
package com.gic.haoban.manage.web.qo.content.like;
import java.io.Serializable;
/**
* Created by wangzubo on 2023/9/22.
*/
public class ContentMaterialLikeQO implements Serializable {
private static final long serialVersionUID = -1L;
/**
* 企业id
*/
private String enterpriseId;
/**
* 用户id(导购id)
*/
private String memberId;
/**
* 用户类型0会员1导购2区经
*/
private Integer userType;
/**
* 用户code
*/
private String userCode;
/**
* 素材id
*/
private Long contentMaterialId;
public ContentMaterialLikeQO() {
}
public ContentMaterialLikeQO(String enterpriseId, String memberId, Integer userType, String userCode, Long contentMaterialId) {
this.enterpriseId = enterpriseId;
this.memberId = memberId;
this.userType = userType;
this.userCode = userCode;
this.contentMaterialId = contentMaterialId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public Integer getUserType() {
return userType;
}
public void setUserType(Integer userType) {
this.userType = userType;
}
public String getUserCode() {
return userCode;
}
public void setUserCode(String userCode) {
this.userCode = userCode;
}
public Long getContentMaterialId() {
return contentMaterialId;
}
public void setContentMaterialId(Long contentMaterialId) {
this.contentMaterialId = contentMaterialId;
}
}
package com.gic.haoban.manage.web.vo.content;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import java.io.Serializable;
public class ContentMaterialDataVO implements Serializable {
/**
* 素材id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long contentMaterialId;
/**
* 点赞数
*/
private Integer likeCount = 0;
/**
* 是否已点赞 1是0否
*/
private Integer likeFlag = 0;
/**
* 评论次数
*/
private Integer cmtCnt = 0;
/**
* 阅读次数
*/
private Integer readCnt = 0;
public Long getContentMaterialId() {
return contentMaterialId;
}
public void setContentMaterialId(Long contentMaterialId) {
this.contentMaterialId = contentMaterialId;
}
public Integer getLikeCount() {
return likeCount;
}
public void setLikeCount(Integer likeCount) {
this.likeCount = likeCount;
}
public Integer getLikeFlag() {
return likeFlag;
}
public void setLikeFlag(Integer likeFlag) {
this.likeFlag = likeFlag;
}
public Integer getCmtCnt() {
return cmtCnt;
}
public void setCmtCnt(Integer cmtCnt) {
this.cmtCnt = cmtCnt;
}
public Integer getReadCnt() {
return readCnt;
}
public void setReadCnt(Integer readCnt) {
this.readCnt = readCnt;
}
public void setDataVO(ContentMaterialDataVO dataVO) {
if (dataVO == null) {
this.setLikeCount(0);
this.setCmtCnt(0);
this.setReadCnt(0);
return;
}
this.setLikeCount(dataVO.getLikeCount());
this.setCmtCnt(dataVO.getCmtCnt());
this.setReadCnt(dataVO.getReadCnt());
}
}
......@@ -2,10 +2,13 @@ package com.gic.haoban.manage.web.vo.content;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import org.apache.commons.lang3.StringUtils;
import java.io.Serializable;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Author MUSI
......@@ -33,11 +36,16 @@ public class ContentMaterialInfoVO implements Serializable {
private String materialContent;
/**
* 素材类型1图文2纯文字3纯图片4视频
* 素材类型1图文2纯文字3纯图片4视频5图文/视频6文件7富文本
*/
private Integer materialType;
/**
* 是否置顶0不置顶1置顶
*/
private Integer topFlag = 0;
/**
* 发布时间
*/
private Date publishTime;
......@@ -84,6 +92,23 @@ public class ContentMaterialInfoVO implements Serializable {
private String materialVideoFirstImageInfo;
/**
* 素材首图url
*/
private String materialFirstImageUrl;
/**
* 素材首图信息{width:px,height:px,size:Bytes}
*/
private String materialFirstImageInfo;
/**
* 素材文件url
*/
private String materialFileUrl;
/**
* 素材文件信息{size:Bytes,name:String}
*/
private String materialFileInfo;
/**
* 分享次数
*/
private Long shareCount;
......@@ -121,6 +146,16 @@ public class ContentMaterialInfoVO implements Serializable {
*/
private Integer sourceType;
/**
* 点赞数
*/
private Long likeCount;
/**
* 是否已点赞 1是0否
*/
private Integer likeFlag;
public Long getContentMaterialId() {
return contentMaterialId;
......@@ -154,6 +189,14 @@ public class ContentMaterialInfoVO implements Serializable {
this.materialType = materialType;
}
public Integer getTopFlag() {
return topFlag;
}
public void setTopFlag(Integer topFlag) {
this.topFlag = topFlag;
}
public Date getPublishTime() {
return publishTime;
}
......@@ -194,6 +237,38 @@ public class ContentMaterialInfoVO implements Serializable {
this.materialVideoFirstImageUrl = materialVideoFirstImageUrl;
}
public String getMaterialFirstImageUrl() {
return materialFirstImageUrl;
}
public void setMaterialFirstImageUrl(String materialFirstImageUrl) {
this.materialFirstImageUrl = materialFirstImageUrl;
}
public String getMaterialFirstImageInfo() {
return materialFirstImageInfo;
}
public void setMaterialFirstImageInfo(String materialFirstImageInfo) {
this.materialFirstImageInfo = materialFirstImageInfo;
}
public String getMaterialFileUrl() {
return materialFileUrl;
}
public void setMaterialFileUrl(String materialFileUrl) {
this.materialFileUrl = materialFileUrl;
}
public String getMaterialFileInfo() {
return materialFileInfo;
}
public void setMaterialFileInfo(String materialFileInfo) {
this.materialFileInfo = materialFileInfo;
}
public Long getShareCount() {
return shareCount;
}
......@@ -289,4 +364,34 @@ public class ContentMaterialInfoVO implements Serializable {
public void setMaterialVideoFirstImageInfo(String materialVideoFirstImageInfo) {
this.materialVideoFirstImageInfo = materialVideoFirstImageInfo;
}
public Long getLikeCount() {
return likeCount;
}
public void setLikeCount(Long likeCount) {
this.likeCount = likeCount;
}
public Integer getLikeFlag() {
return likeFlag;
}
public void setLikeFlag(Integer likeFlag) {
this.likeFlag = likeFlag;
}
public void convertMaterialImages(String materialImageUrls, String materialThumbnailImageUrls) {
if (StringUtils.isNotBlank(materialImageUrls)) {
String[] split = StringUtils.split(materialImageUrls, ",");
List<String> imageUrls = Arrays.stream(split).collect(Collectors.toList());
this.setMaterialImageUrls(imageUrls);
}
if (StringUtils.isNotBlank(materialThumbnailImageUrls)) {
String[] split = StringUtils.split(materialThumbnailImageUrls, ",");
List<String> imageUrls = Arrays.stream(split).collect(Collectors.toList());
this.setMaterialThumbnailImageUrls(imageUrls);
}
}
}
package com.gic.haoban.manage.web.vo.content.statistics;
import java.io.Serializable;
public class ContentMaterialKnowVO implements Serializable {
/**
* 素材id
*/
private Long contentMaterialId;
/**
* 评论人数
*/
private Integer cmtNum;
/**
* 评论次数
*/
private Integer cmtCnt;
/**
* 阅读人数
*/
private Integer readNum;
/**
* 阅读次数
*/
private Integer readCnt;
/**
* 点赞人数
*/
private Integer likeNum;
/**
* 点赞次数
*/
private Integer likeCnt;
public ContentMaterialKnowVO() {
}
public ContentMaterialKnowVO(Integer cmtNum, Integer cmtCnt, Integer readNum, Integer readCnt, Integer likeNum, Integer likeCnt) {
this.cmtNum = cmtNum;
this.cmtCnt = cmtCnt;
this.readNum = readNum;
this.readCnt = readCnt;
this.likeNum = likeNum;
this.likeCnt = likeCnt;
}
public void setKnow(ContentMaterialKnowVO know) {
if (know == null) {
this.setCmtNum(0);
this.setCmtCnt(0);
this.setReadCnt(0);
this.setReadNum(0);
this.setLikeCnt(0);
this.setLikeNum(0);
return;
}
this.setCmtNum(know.getCmtNum());
this.setCmtCnt(know.getCmtCnt());
this.setReadCnt(know.getReadCnt());
this.setReadNum(know.getReadNum());
this.setLikeCnt(know.getLikeCnt());
this.setLikeNum(know.getLikeNum());
}
public Long getContentMaterialId() {
return contentMaterialId;
}
public void setContentMaterialId(Long contentMaterialId) {
this.contentMaterialId = contentMaterialId;
}
public Integer getCmtNum() {
return cmtNum;
}
public void setCmtNum(Integer cmtNum) {
this.cmtNum = cmtNum;
}
public Integer getCmtCnt() {
return cmtCnt;
}
public void setCmtCnt(Integer cmtCnt) {
this.cmtCnt = cmtCnt;
}
public Integer getReadNum() {
return readNum;
}
public void setReadNum(Integer readNum) {
this.readNum = readNum;
}
public Integer getReadCnt() {
return readCnt;
}
public void setReadCnt(Integer readCnt) {
this.readCnt = readCnt;
}
public Integer getLikeNum() {
return likeNum;
}
public void setLikeNum(Integer likeNum) {
this.likeNum = likeNum;
}
public Integer getLikeCnt() {
return likeCnt;
}
public void setLikeCnt(Integer likeCnt) {
this.likeCnt = likeCnt;
}
}
......@@ -150,5 +150,7 @@
id="goodsCenterApiService" timeout="10000" retries="0" check="false" />
<dubbo:reference interface="com.gic.haoban.commission.api.service.local.CommissionSettleDetailApiService"
id="commissionSettleDetailApiService" timeout="10000" retries="0" check="false" />
<dubbo:reference interface="com.gic.content.api.service.ContentMaterialCommentApiService"
id="contentMaterialCommentApiService" timeout="10000" retries="0" check="false" />
</beans>
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