khy-three #131
@ -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.CirclePageReqVO;
|
||||||
import cn.iocoder.yudao.module.promotion.controller.admin.circle.vo.CircleRespVO;
|
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.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.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.circle.CircleDO;
|
||||||
import cn.iocoder.yudao.module.promotion.dal.dataobject.circlelike.CircleLikeDO;
|
import cn.iocoder.yudao.module.promotion.dal.dataobject.circlelike.CircleLikeDO;
|
||||||
import cn.iocoder.yudao.module.promotion.dal.dataobject.circlereview.CircleReviewDO;
|
import cn.iocoder.yudao.module.promotion.dal.dataobject.circlereview.CircleReviewDO;
|
||||||
@ -157,4 +159,12 @@ public class AppCircleController {
|
|||||||
return success(true);
|
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 java.util.*;
|
||||||
import javax.validation.*;
|
import javax.validation.*;
|
||||||
import cn.iocoder.yudao.module.promotion.controller.admin.circlereview.vo.*;
|
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.module.promotion.dal.dataobject.circlereview.CircleReviewDO;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
@ -54,4 +55,5 @@ public interface CircleReviewService {
|
|||||||
*/
|
*/
|
||||||
PageResult<CircleReviewDO> getCircleReviewPage(CircleReviewPageReqVO pageReqVO);
|
PageResult<CircleReviewDO> getCircleReviewPage(CircleReviewPageReqVO pageReqVO);
|
||||||
|
|
||||||
}
|
PageResult<AppCircleReviewRespVO> getAppCircleReviewPage(CircleReviewPageReqVO circleReviewPageReqVO);
|
||||||
|
}
|
||||||
|
@ -1,11 +1,18 @@
|
|||||||
package cn.iocoder.yudao.module.promotion.service.circlereview;
|
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 org.springframework.stereotype.Service;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import cn.iocoder.yudao.module.promotion.controller.admin.circlereview.vo.*;
|
import cn.iocoder.yudao.module.promotion.controller.admin.circlereview.vo.*;
|
||||||
import cn.iocoder.yudao.module.promotion.dal.dataobject.circlereview.CircleReviewDO;
|
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.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 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.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.*;
|
import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -29,6 +37,9 @@ public class CircleReviewServiceImpl implements CircleReviewService {
|
|||||||
@Resource
|
@Resource
|
||||||
private CircleReviewMapper circleReviewMapper;
|
private CircleReviewMapper circleReviewMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private MemberUserApi memberUserApi;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long createCircleReview(CircleReviewSaveReqVO createReqVO) {
|
public Long createCircleReview(CircleReviewSaveReqVO createReqVO) {
|
||||||
// 插入
|
// 插入
|
||||||
@ -76,4 +87,43 @@ public class CircleReviewServiceImpl implements CircleReviewService {
|
|||||||
return circleReviewMapper.selectPage(pageReqVO);
|
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