种草评论列表,修改客服在线状态
This commit is contained in:
parent
1b4196ceef
commit
fa6a37cb6f
@ -8,7 +8,9 @@ import cn.iocoder.yudao.module.member.api.user.MemberUserApi;
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.circle.vo.CirclePageReqVO;
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.circle.vo.CircleRespVO;
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.circle.vo.CircleSaveReqVO;
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.circlereview.vo.CircleReviewPageReqVO;
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.circlereview.vo.CircleReviewSaveReqVO;
|
||||
import cn.iocoder.yudao.module.promotion.controller.app.circle.vo.AppCircleReviewRespVO;
|
||||
import cn.iocoder.yudao.module.promotion.dal.dataobject.circle.CircleDO;
|
||||
import cn.iocoder.yudao.module.promotion.dal.dataobject.circlelike.CircleLikeDO;
|
||||
import cn.iocoder.yudao.module.promotion.dal.dataobject.circlereview.CircleReviewDO;
|
||||
@ -157,4 +159,12 @@ public class AppCircleController {
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/getCircleReviewList")
|
||||
@Operation(summary = "获得动态评论列表")
|
||||
@PreAuthenticated
|
||||
public CommonResult<PageResult<AppCircleReviewRespVO>> getCircleReviewList(@Valid CircleReviewPageReqVO circleReviewPageReqVO) {
|
||||
PageResult<AppCircleReviewRespVO> pageResult = circleReviewService.getAppCircleReviewPage(circleReviewPageReqVO);
|
||||
return success(pageResult);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,75 @@
|
||||
package cn.iocoder.yudao.module.promotion.controller.app.circle.vo;
|
||||
|
||||
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
||||
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 动态的评论 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class AppCircleReviewRespVO {
|
||||
|
||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "12446")
|
||||
@ExcelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "用户id", example = "10725")
|
||||
@ExcelProperty("用户id")
|
||||
private Long userId;
|
||||
|
||||
@Schema(description = "动态id", example = "17391")
|
||||
@ExcelProperty("动态id")
|
||||
private Long circleId;
|
||||
|
||||
@Schema(description = "评论类型", example = "2")
|
||||
@ExcelProperty(value = "评论类型", converter = DictConvert.class)
|
||||
@DictFormat("circle_review_type") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
|
||||
private Integer type;
|
||||
|
||||
@Schema(description = "评论内容")
|
||||
@ExcelProperty("评论内容")
|
||||
private String content;
|
||||
|
||||
@Schema(description = "图片地址", example = "https://www.iocoder.cn")
|
||||
@ExcelProperty("图片地址")
|
||||
private String picUrl;
|
||||
|
||||
@Schema(description = "点赞量", example = "10166")
|
||||
@ExcelProperty("点赞量")
|
||||
private Long likeCount;
|
||||
|
||||
@Schema(description = "被回复的评论ID", example = "8913")
|
||||
@ExcelProperty("被回复的评论ID")
|
||||
private Long replyId;
|
||||
|
||||
@Schema(description = "被回复的用户ID", example = "32646")
|
||||
@ExcelProperty("被回复的用户ID")
|
||||
private Long replyUserId;
|
||||
|
||||
@Schema(description = "版本号")
|
||||
@ExcelProperty("版本号")
|
||||
private Integer version;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "备注")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "子评论")
|
||||
private List<AppCircleReviewRespVO> children;
|
||||
|
||||
@Schema(description = "用户昵称")
|
||||
private String nickname;
|
||||
|
||||
@Schema(description = "用户头像")
|
||||
private String avatar;
|
||||
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
package cn.iocoder.yudao.module.promotion.controller.app.supportstaff;
|
||||
|
||||
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated;
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.supportstaff.vo.SupportStaffPageReqVO;
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.supportstaff.vo.SupportStaffRespVO;
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.supportstaff.vo.SupportStaffSaveReqVO;
|
||||
import cn.iocoder.yudao.module.promotion.dal.dataobject.supportstaff.SupportStaffDO;
|
||||
import cn.iocoder.yudao.module.promotion.service.supportstaff.SupportStaffService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
|
||||
|
||||
@Tag(name = "app - 客服人员")
|
||||
@RestController
|
||||
@RequestMapping("/promotion/support-staff")
|
||||
@Validated
|
||||
public class AppSupportStaffController {
|
||||
|
||||
@Resource
|
||||
private SupportStaffService supportStaffService;
|
||||
@GetMapping("/updateLineStatus")
|
||||
@PreAuthenticated
|
||||
public CommonResult<Boolean> updateLineStatus (Integer lineStatus){
|
||||
SupportStaffDO supportStaffDO = supportStaffService.getSupportStaffByUserId(getLoginUserId());
|
||||
if (supportStaffDO != null){
|
||||
supportStaffService.updateLineStatus(String.valueOf(supportStaffDO.getId()), lineStatus);
|
||||
}
|
||||
return success(true);
|
||||
}
|
||||
}
|
@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.promotion.service.circlereview;
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.circlereview.vo.*;
|
||||
import cn.iocoder.yudao.module.promotion.controller.app.circle.vo.AppCircleReviewRespVO;
|
||||
import cn.iocoder.yudao.module.promotion.dal.dataobject.circlereview.CircleReviewDO;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
@ -54,4 +55,5 @@ public interface CircleReviewService {
|
||||
*/
|
||||
PageResult<CircleReviewDO> getCircleReviewPage(CircleReviewPageReqVO pageReqVO);
|
||||
|
||||
PageResult<AppCircleReviewRespVO> getAppCircleReviewPage(CircleReviewPageReqVO circleReviewPageReqVO);
|
||||
}
|
@ -1,11 +1,18 @@
|
||||
package cn.iocoder.yudao.module.promotion.service.circlereview;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.iocoder.yudao.module.member.api.user.MemberUserApi;
|
||||
import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO;
|
||||
import cn.iocoder.yudao.module.promotion.controller.app.circle.vo.AppCircleReviewRespVO;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.circlereview.vo.*;
|
||||
import cn.iocoder.yudao.module.promotion.dal.dataobject.circlereview.CircleReviewDO;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
@ -15,6 +22,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.module.promotion.dal.mysql.circlereview.CircleReviewMapper;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.USER_NOT_EXISTS;
|
||||
import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
@ -29,6 +37,9 @@ public class CircleReviewServiceImpl implements CircleReviewService {
|
||||
@Resource
|
||||
private CircleReviewMapper circleReviewMapper;
|
||||
|
||||
@Resource
|
||||
private MemberUserApi memberUserApi;
|
||||
|
||||
@Override
|
||||
public Long createCircleReview(CircleReviewSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
@ -76,4 +87,43 @@ public class CircleReviewServiceImpl implements CircleReviewService {
|
||||
return circleReviewMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<AppCircleReviewRespVO> getAppCircleReviewPage(CircleReviewPageReqVO circleReviewPageReqVO) {
|
||||
circleReviewPageReqVO.setType(0);
|
||||
PageResult<CircleReviewDO> page = circleReviewMapper.selectPage(circleReviewPageReqVO);
|
||||
List<CircleReviewDO> list = page.getList();
|
||||
if (list.isEmpty()){
|
||||
return PageResult.empty();
|
||||
}
|
||||
List<AppCircleReviewRespVO> result = list.stream().map(item -> {
|
||||
AppCircleReviewRespVO appCircleReviewRespVO = new AppCircleReviewRespVO();
|
||||
BeanUtils.copyProperties(item, appCircleReviewRespVO);
|
||||
MemberUserRespDTO member = memberUserApi.getUser(item.getUserId());
|
||||
if (member == null) {
|
||||
throw exception(USER_NOT_EXISTS);
|
||||
}
|
||||
appCircleReviewRespVO.setNickname(member.getNickname());
|
||||
appCircleReviewRespVO.setAvatar(member.getAvatar());
|
||||
List<CircleReviewDO> children = circleReviewMapper.selectList("reply_id", item.getId());
|
||||
if (CollUtil.isNotEmpty(children)){
|
||||
List<AppCircleReviewRespVO> childs = children.stream().map(child -> {
|
||||
AppCircleReviewRespVO appCircleReviewRespVOChild = new AppCircleReviewRespVO();
|
||||
BeanUtils.copyProperties(child, appCircleReviewRespVOChild);
|
||||
|
||||
MemberUserRespDTO memberUserRespDTO = memberUserApi.getUser(child.getUserId());
|
||||
if (memberUserRespDTO == null) {
|
||||
throw exception(USER_NOT_EXISTS);
|
||||
}
|
||||
appCircleReviewRespVOChild.setNickname(memberUserRespDTO.getNickname());
|
||||
appCircleReviewRespVOChild.setAvatar(memberUserRespDTO.getAvatar());
|
||||
return appCircleReviewRespVOChild;
|
||||
}).collect(Collectors.toList());
|
||||
appCircleReviewRespVO.setChildren(childs);
|
||||
}
|
||||
return appCircleReviewRespVO;
|
||||
}).collect(Collectors.toList());
|
||||
PageResult<AppCircleReviewRespVO> appPage = new PageResult<>(result, page.getTotal());
|
||||
return appPage;
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user