Commit 2f6846ab authored by 韩桐桐's avatar 韩桐桐

feat:反馈建议

parent f6cab0c1
package com.yeejoin.amos.boot.module.common.api.entity;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
......@@ -113,4 +114,10 @@ public class FeedbackSuggestions extends BaseEntity {
@TableField("files")
private String files;
/**
* 附件
*/
@TableField(value = "files" ,exist = false)
private JSONArray filesArr;
}
......@@ -5,19 +5,23 @@ import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.common.api.entity.FeedbackReplies;
import com.yeejoin.amos.boot.module.common.api.entity.FeedbackSuggestions;
import com.yeejoin.amos.boot.module.common.biz.service.impl.FeedbackRepliesServiceImpl;
import com.yeejoin.amos.boot.module.common.biz.service.impl.FeedbackSuggestionsServiceImpl;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
......@@ -32,6 +36,8 @@ public class FeedbackRepliesController extends BaseController {
@Autowired
FeedbackRepliesServiceImpl feedbackRepliesServiceImpl;
@Autowired
FeedbackSuggestionsServiceImpl feedbackSuggestionsService;
/**
* 根据suggestion seq查询
......@@ -72,6 +78,10 @@ public class FeedbackRepliesController extends BaseController {
feedbackReplies.setReplyCompanyCode(company.getCompanyCode());
feedbackReplies.setReplyCompanyName(company.getCompanyName());
feedbackReplies = feedbackRepliesServiceImpl.createWithModel(feedbackReplies);
feedbackSuggestionsService.lambdaUpdate()
.eq(FeedbackSuggestions::getSequenceNbr,feedbackReplies.getSuggestionsSeq())
.set(FeedbackSuggestions::getStatus,"1")
.update();
return ResponseHelper.buildResponse(feedbackReplies);
}
......@@ -99,7 +109,31 @@ public class FeedbackRepliesController extends BaseController {
@DeleteMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除", notes = "根据sequenceNbr删除")
public ResponseModel<Boolean> deleteBySequenceNbr(HttpServletRequest request, @PathVariable(value = "sequenceNbr") Long sequenceNbr) {
return ResponseHelper.buildResponse(feedbackRepliesServiceImpl.removeById(sequenceNbr));
FeedbackReplies replies = feedbackRepliesServiceImpl.lambdaQuery()
.eq(FeedbackReplies::getSequenceNbr, sequenceNbr)
.one();
String userId = getSelectedOrgInfo().getUserModel().getUserId();
if (!ValidationUtil.isEmpty(replies) && !userId.equals(replies.getReplyUserId())) {
throw new BadRequest("无法删除其他人的回复!");
}
return ResponseHelper.buildResponse(feedbackRepliesServiceImpl.deleteBySeq(sequenceNbr));
}
/**
* 已读回复
*
* @param sequenceNbrs 回复数据seqs
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/read")
@ApiOperation(httpMethod = "GET", value = "已读回复", notes = "已读回复")
public ResponseModel<Boolean> selectOne(@RequestParam("sequenceNbrs") String sequenceNbrs) {
feedbackRepliesServiceImpl.lambdaUpdate()
.in(FeedbackReplies::getSequenceNbr, Arrays.asList(sequenceNbrs.split(",")))
.set(FeedbackReplies::getReadStatus, "1")
.update();
return ResponseHelper.buildResponse(Boolean.TRUE);
}
/**
......
......@@ -69,7 +69,9 @@ public class FeedbackSuggestionsController extends BaseController {
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET", value = "分页查询", notes = "分页查询")
public ResponseModel<IPage<FeedbackSuggestions>> queryForPage(@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size) {
return ResponseHelper.buildResponse(feedbackSuggestionsServiceImpl.queryForFeedbackSuggestionsPage(current, size));
@RequestParam(value = "size") int size,
@RequestParam(value = "status", required = false) String status
) {
return ResponseHelper.buildResponse(feedbackSuggestionsServiceImpl.queryForFeedbackSuggestionsPage(current, size, status));
}
}
......@@ -16,6 +16,7 @@ import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.util.Date;
......@@ -79,7 +80,7 @@ public class FeedbackSuggestionsServiceImpl extends BaseService<FeedbackSuggesti
/**
* 分页查询
*/
public IPage<FeedbackSuggestions> queryForFeedbackSuggestionsPage(int current, int size) {
public IPage<FeedbackSuggestions> queryForFeedbackSuggestionsPage(int current, int size, String status) {
CompanyBo company = this.getSelectedOrgInfo().getCompany();
String companyType = company.getCompanyType();
......@@ -91,6 +92,7 @@ public class FeedbackSuggestionsServiceImpl extends BaseService<FeedbackSuggesti
if (!companyType.equals("监管机构")) {
result = this.lambdaQuery()
.eq(FeedbackSuggestions::getCompanyCode, company.getCompanyCode())
.eq(!ValidationUtil.isEmpty(status), FeedbackSuggestions::getStatus, status)
.orderByDesc(FeedbackSuggestions::getCreateDate)
.page(page);
}
......@@ -98,12 +100,14 @@ public class FeedbackSuggestionsServiceImpl extends BaseService<FeedbackSuggesti
if (companyType.equals("监管机构")) {
result = this.lambdaQuery()
.likeRight(FeedbackSuggestions::getSuperviseOrgCode, company.getOrgCode())
.eq(!ValidationUtil.isEmpty(status), FeedbackSuggestions::getStatus, status)
.orderByDesc(FeedbackSuggestions::getCreateDate)
.page(page);
}
result.getRecords().forEach(suggestions -> {
suggestions.setProblemType(ProblemTypeEnum.getById(Integer.parseInt(suggestions.getProblemType())).getDescription());
suggestions.setStatus("1".equals(suggestions.getStatus()) ? "已回复" : "待回复");
suggestions.setFilesArr(JSONObject.parseArray(suggestions.getFiles()));
});
return result;
}
......
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