Browse Source

add:问题点赞和评论

zhongwei
luyie 2 months ago
parent
commit
b53534898a
  1. 63
      hzims-service/gglm-big-model/src/main/java/com/hnac/gglm/bigmodel/maintenance/controller/QuestionAnswerCommentController.java
  2. 47
      hzims-service/gglm-big-model/src/main/java/com/hnac/gglm/bigmodel/maintenance/entity/QuestionAnswerCommentEntity.java
  3. 11
      hzims-service/gglm-big-model/src/main/java/com/hnac/gglm/bigmodel/maintenance/mapper/QuestionAnswerCommentMapper.java
  4. 26
      hzims-service/gglm-big-model/src/main/java/com/hnac/gglm/bigmodel/maintenance/service/QuestionAnswerCommentService.java
  5. 82
      hzims-service/gglm-big-model/src/main/java/com/hnac/gglm/bigmodel/maintenance/service/impl/QuestionAnswerCommentServiceImpl.java
  6. 33
      hzims-service/gglm-big-model/src/main/java/com/hnac/gglm/bigmodel/maintenance/vo/AnswerCommentRequest.java
  7. 20
      hzims-service/gglm-big-model/src/main/java/com/hnac/gglm/bigmodel/maintenance/vo/AnswerPraiseRequest.java

63
hzims-service/gglm-big-model/src/main/java/com/hnac/gglm/bigmodel/maintenance/controller/QuestionAnswerCommentController.java

@ -0,0 +1,63 @@
package com.hnac.gglm.bigmodel.maintenance.controller;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.hnac.gglm.bigmodel.maintenance.entity.QuestionAnswerCommentEntity;
import com.hnac.gglm.bigmodel.maintenance.service.QuestionAnswerCommentService;
import com.hnac.gglm.bigmodel.maintenance.vo.AnswerCommentRequest;
import com.hnac.gglm.bigmodel.maintenance.vo.AnswerPraiseRequest;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @Author: ypj
* @Date: 2024/9/21 13:27
*/
@RestController
@Slf4j
@RequestMapping("/question/")
@AllArgsConstructor
@Api(value = "问题评论管理", tags = "问题评论管理")
public class QuestionAnswerCommentController {
private final QuestionAnswerCommentService questionAnswerCommentService;
@PostMapping("/comment")
@ApiOperation(value = "评论")
@ApiOperationSupport(order = 1)
public R comment(@RequestBody AnswerCommentRequest req) {
return R.status(questionAnswerCommentService.comment(req));
}
@PostMapping("/praise")
@ApiOperation(value = "点赞")
@ApiOperationSupport(order = 2)
public R praise(@RequestBody AnswerPraiseRequest req) {
return R.status(questionAnswerCommentService.praise(req));
}
@PostMapping("/resetPraise")
@ApiOperation(value = "取消点赞")
@ApiOperationSupport(order = 3)
public R<Boolean> resetPraise(@RequestBody AnswerPraiseRequest req) {
return R.status(questionAnswerCommentService.resetPraise(req));
}
@GetMapping("/listByQuestionId")
@ApiOperation(value = "根据问题id获取评论列表")
@ApiOperationSupport(order = 4)
public R<List<QuestionAnswerCommentEntity>> listByQuestionId(String questionId) {
return R.data(questionAnswerCommentService.listByQuestionId(questionId));
}
@GetMapping("/praiseCount")
@ApiOperation(value = "点赞数")
@ApiOperationSupport(order = 5)
public R<Integer> praiseCount(String questionId) {
return R.data(questionAnswerCommentService.praiseCount(questionId));
}
}

47
hzims-service/gglm-big-model/src/main/java/com/hnac/gglm/bigmodel/maintenance/entity/QuestionAnswerCommentEntity.java

@ -0,0 +1,47 @@
package com.hnac.gglm.bigmodel.maintenance.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serializable;
/**
* @Author: ypj
* @Date: 2024/9/21 11:07
*/
@Data
@TableName("question_answer_comment")
@ApiModel
public class QuestionAnswerCommentEntity extends TenantEntity implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("对话id")
@TableField("chat_id")
private String chatId;
@ApiModelProperty("问题id")
@TableField("question_id")
private String questionId;
@ApiModelProperty("用户id")
@TableField("user_id")
private String userId;
@ApiModelProperty("用户名")
@TableLogic
private String userName;
@ApiModelProperty("点赞")
@TableField("praise")
private Integer praise;
@ApiModelProperty("评论内容")
@TableField("content")
private String content;
}

11
hzims-service/gglm-big-model/src/main/java/com/hnac/gglm/bigmodel/maintenance/mapper/QuestionAnswerCommentMapper.java

@ -0,0 +1,11 @@
package com.hnac.gglm.bigmodel.maintenance.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hnac.gglm.bigmodel.maintenance.entity.QuestionAnswerCommentEntity;
/**
* @Author: ypj
* @Date: 2024/9/21 13:31
*/
public interface QuestionAnswerCommentMapper extends BaseMapper<QuestionAnswerCommentEntity> {
}

26
hzims-service/gglm-big-model/src/main/java/com/hnac/gglm/bigmodel/maintenance/service/QuestionAnswerCommentService.java

@ -0,0 +1,26 @@
package com.hnac.gglm.bigmodel.maintenance.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hnac.gglm.bigmodel.maintenance.entity.QuestionAnswerCommentEntity;
import com.hnac.gglm.bigmodel.maintenance.vo.AnswerCommentRequest;
import com.hnac.gglm.bigmodel.maintenance.vo.AnswerPraiseRequest;
import java.util.List;
/**
* @Author: ypj
* @Date: 2024/9/21 13:29
*/
public interface QuestionAnswerCommentService extends IService<QuestionAnswerCommentEntity> {
QuestionAnswerCommentEntity getComment(String userAccount, String questionId);
Boolean comment(AnswerCommentRequest req);
Boolean praise(AnswerPraiseRequest req);
List<QuestionAnswerCommentEntity> listByQuestionId(String questionId);
Long praiseCount(String questionId);
Boolean resetPraise(AnswerPraiseRequest req);
}

82
hzims-service/gglm-big-model/src/main/java/com/hnac/gglm/bigmodel/maintenance/service/impl/QuestionAnswerCommentServiceImpl.java

@ -0,0 +1,82 @@
package com.hnac.gglm.bigmodel.maintenance.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hnac.gglm.bigmodel.maintenance.entity.QuestionAnswerCommentEntity;
import com.hnac.gglm.bigmodel.maintenance.mapper.QuestionAnswerCommentMapper;
import com.hnac.gglm.bigmodel.maintenance.service.QuestionAnswerCommentService;
import com.hnac.gglm.bigmodel.maintenance.vo.AnswerCommentRequest;
import com.hnac.gglm.bigmodel.maintenance.vo.AnswerPraiseRequest;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.ObjectUtil;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @Author: ypj
* @Date: 2024/9/21 13:32
*/
@Service
@Slf4j
@AllArgsConstructor
@DS("hznlm")
public class QuestionAnswerCommentServiceImpl extends ServiceImpl<QuestionAnswerCommentMapper, QuestionAnswerCommentEntity> implements QuestionAnswerCommentService {
@Override
public QuestionAnswerCommentEntity getComment(String userAccount, String questionId) {
LambdaQueryWrapper<QuestionAnswerCommentEntity> queryWrapper = Wrappers.<QuestionAnswerCommentEntity>lambdaQuery()
.eq(QuestionAnswerCommentEntity::getQuestionId, questionId)
.eq(QuestionAnswerCommentEntity::getUserId, userAccount).last("limit 1");
return this.getOne(queryWrapper);
}
@Override
public Boolean comment(AnswerCommentRequest req) {
QuestionAnswerCommentEntity entity = getComment(AuthUtil.getUserAccount(),
req.getQuestionId());
if (ObjectUtil.isEmpty(entity)) {
entity = req.toEntity();
}
return this.saveOrUpdate(entity);
}
@Override
public Boolean praise(AnswerPraiseRequest req) {
QuestionAnswerCommentEntity entity = getComment(AuthUtil.getUserAccount(),
req.getQuestionId());
if (ObjectUtil.isNotEmpty(entity)) {
entity.setPraise(1);
return this.updateById(entity);
}
return Boolean.FALSE;
}
@Override
public List<QuestionAnswerCommentEntity> listByQuestionId(String questionId) {
return this.list(Wrappers.<QuestionAnswerCommentEntity>lambdaQuery()
.eq(QuestionAnswerCommentEntity::getQuestionId, questionId)
.orderByAsc(QuestionAnswerCommentEntity::getCreateTime));
}
@Override
public Long praiseCount(String questionId) {
return this.count(Wrappers.<QuestionAnswerCommentEntity>lambdaQuery()
.eq(QuestionAnswerCommentEntity::getQuestionId, questionId)
.eq(QuestionAnswerCommentEntity::getPraise, 1));
}
@Override
public Boolean resetPraise(AnswerPraiseRequest req) {
QuestionAnswerCommentEntity entity = getComment(AuthUtil.getUserAccount(),
req.getQuestionId());
if (ObjectUtil.isNotEmpty(entity)) {
entity.setPraise(0);
return this.updateById(entity);
}
return Boolean.FALSE;
}
}

33
hzims-service/gglm-big-model/src/main/java/com/hnac/gglm/bigmodel/maintenance/vo/AnswerCommentRequest.java

@ -0,0 +1,33 @@
package com.hnac.gglm.bigmodel.maintenance.vo;
import com.hnac.gglm.bigmodel.maintenance.entity.QuestionAnswerCommentEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springblade.core.secure.utils.AuthUtil;
/**
* @Author: ypj
* @Date: 2024/9/21 13:38
*/
@Data
@ApiModel(value = "评论请求")
public class AnswerCommentRequest {
@ApiModelProperty(value = "对话id")
private String chartId;
@ApiModelProperty(value = "问题id")
private String questionId;
@ApiModelProperty(value = "评论内容")
private String content;
public QuestionAnswerCommentEntity toEntity() {
QuestionAnswerCommentEntity entity = new QuestionAnswerCommentEntity();
entity.setChatId(chartId);
entity.setQuestionId(questionId);
entity.setContent(content);
entity.setUserId(AuthUtil.getUserAccount());
return entity;
}
}

20
hzims-service/gglm-big-model/src/main/java/com/hnac/gglm/bigmodel/maintenance/vo/AnswerPraiseRequest.java

@ -0,0 +1,20 @@
package com.hnac.gglm.bigmodel.maintenance.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author: ypj
* @Date: 2024/9/21 13:49
*/
@Data
@ApiModel(value = "点赞请求")
public class AnswerPraiseRequest {
@ApiModelProperty(value = "对话id")
private String chartId;
@ApiModelProperty(value = "问题id")
private String questionId;
}
Loading…
Cancel
Save