1
0
mirror of https://github.com/chatopera/cosin.git synced 2025-08-01 16:38:02 +08:00

Fix QuickReplyRepository related class

This commit is contained in:
dengchao@xgtl 2020-04-17 10:51:17 +08:00
parent 226171df3d
commit d6984af676
3 changed files with 156 additions and 171 deletions

View File

@ -22,15 +22,17 @@ import com.chatopera.cc.persistence.es.QuickReplyRepository;
import com.chatopera.cc.util.Menu;
import com.chatopera.cc.util.RestResult;
import com.chatopera.cc.util.RestResultType;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.lang.NonNull;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.server.ResponseStatusException;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
@ -41,22 +43,23 @@ import javax.validation.Valid;
*/
@RestController
@RequestMapping("/api/quickreply")
@RequiredArgsConstructor
public class ApiQuickReplyController extends Handler {
@Autowired
private QuickReplyRepository quickReplyRepository;
@NonNull
private final QuickReplyRepository quickReplyRepository;
/**
* 返回快捷回复列表cate为分类id通过/api/quicktype 获取分类id支持分页分页参数为 p=1&ps=50默认分页尺寸为 20条每页
* @param request
* @param cate 搜索分类id精确搜索通过/api/quicktype 获取分类id
* @return
*
* @param cate 搜索分类id精确搜索通过/api/quicktype 获取分类id
*/
@RequestMapping(method = RequestMethod.GET)
@Menu(type = "apps", subtype = "quickreply", access = true)
public ResponseEntity<RestResult> list(HttpServletRequest request, String id, @Valid String cate, @Valid String q, Integer p, Integer ps) {
if (StringUtils.isNotBlank(id)) {
return new ResponseEntity<>(new RestResult(RestResultType.OK, quickReplyRepository.findOne(id)), HttpStatus.OK);
return new ResponseEntity<>(new RestResult(RestResultType.OK, quickReplyRepository.findById(id)
.orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND, String.format("Quick reply %s not found", id)))), HttpStatus.OK);
}
Page<QuickReply> replyList = quickReplyRepository.getByOrgiAndCate(getOrgi(request), cate, q,
@ -66,9 +69,6 @@ public class ApiQuickReplyController extends Handler {
/**
* 新增或修改快捷回复
* @param request
* @param user
* @return
*/
@RequestMapping(method = RequestMethod.PUT)
@Menu(type = "apps", subtype = "quickreply", access = true)
@ -83,21 +83,13 @@ public class ApiQuickReplyController extends Handler {
/**
* 删除用户只提供 按照用户ID删除
* @param request
* @param id
* @return
*/
@RequestMapping(method = RequestMethod.DELETE)
@Menu(type = "apps", subtype = "quickreply", access = true)
public ResponseEntity<RestResult> delete(HttpServletRequest request, @Valid String id) {
public ResponseEntity<RestResult> delete(@Valid String id) {
RestResult result = new RestResult(RestResultType.OK);
if (!StringUtils.isBlank(id)) {
QuickReply reply = quickReplyRepository.findOne(id);
if (reply != null) {
quickReplyRepository.delete(reply);
} else {
return new ResponseEntity<>(new RestResult(RestResultType.ORGAN_DELETE), HttpStatus.OK);
}
quickReplyRepository.deleteById(id);
}
return new ResponseEntity<>(result, HttpStatus.OK);
}

View File

@ -1,111 +1,105 @@
/*
* Copyright (C) 2017 优客服-多渠道客服系统
* Modifications copyright (C) 2018-2019 Chatopera Inc, <https://www.chatopera.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.chatopera.cc.controller.api;
import com.chatopera.cc.controller.Handler;
import com.chatopera.cc.model.QuickType;
import com.chatopera.cc.persistence.es.QuickReplyRepository;
import com.chatopera.cc.persistence.repository.QuickTypeRepository;
import com.chatopera.cc.util.Menu;
import com.chatopera.cc.util.RestResult;
import com.chatopera.cc.util.RestResultType;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.util.Date;
import java.util.List;
/**
* 快捷回复分类服务
* 快捷回复分类管理功能
*/
@RestController
@RequestMapping("/api/quicktype")
public class ApiQuickTypeController extends Handler {
@Autowired
private QuickTypeRepository quickTypeRepository;
@Autowired
private QuickReplyRepository quickReplyRepository;
/**
* 返回快捷回复分类列表
* @param request
* @param quicktype 搜索pub,pri
* @return
*/
@RequestMapping(method = RequestMethod.GET)
@Menu(type = "apps", subtype = "quicktype", access = true)
public ResponseEntity<RestResult> list(HttpServletRequest request, @Valid String id, @Valid String quicktype) {
if (StringUtils.isNotBlank(id)) {
return new ResponseEntity<>(new RestResult(RestResultType.OK, quickTypeRepository.findOne(id)), HttpStatus.OK);
}
List<QuickType> quickTypeList = quickTypeRepository.findByOrgiAndQuicktype(getOrgi(request), quicktype);
return new ResponseEntity<>(new RestResult(RestResultType.OK, quickTypeList), HttpStatus.OK);
}
/**
* 新增或修改快捷回复分类
* @param request
* @param user
* @return
*/
@RequestMapping(method = RequestMethod.PUT)
@Menu(type = "apps", subtype = "quicktype", access = true)
public ResponseEntity<RestResult> put(HttpServletRequest request, @Valid QuickType quickType) {
if (quickType != null && !StringUtils.isBlank(quickType.getName())) {
quickType.setOrgi(getOrgi(request));
quickType.setCreater(getUser(request).getId());
quickType.setCreatetime(new Date());
if (StringUtils.isNotBlank(quickType.getId())) {
quickType.setUpdatetime(new Date());
}
quickType = quickTypeRepository.save(quickType);
}
return new ResponseEntity<>(new RestResult(RestResultType.OK, quickType), HttpStatus.OK);
}
/**
* 删除分类并且删除分类下的快捷回复
* @param request
* @param id
* @return
*/
@RequestMapping(method = RequestMethod.DELETE)
@Menu(type = "apps", subtype = "reply", access = true)
public ResponseEntity<RestResult> delete(HttpServletRequest request, @Valid String id) {
RestResult result = new RestResult(RestResultType.OK);
if (!StringUtils.isBlank(id)) {
QuickType quickType = quickTypeRepository.findOne(id);
if (quickType != null) {
quickReplyRepository.deleteByCate(quickType.getId(), quickType.getOrgi());
quickTypeRepository.delete(quickType);
} else {
return new ResponseEntity<>(new RestResult(RestResultType.ORGAN_DELETE), HttpStatus.OK);
}
}
return new ResponseEntity<>(result, HttpStatus.OK);
}
}
/*
* Copyright (C) 2017 优客服-多渠道客服系统
* Modifications copyright (C) 2018-2019 Chatopera Inc, <https://www.chatopera.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.chatopera.cc.controller.api;
import com.chatopera.cc.controller.Handler;
import com.chatopera.cc.model.QuickType;
import com.chatopera.cc.persistence.es.QuickReplyRepository;
import com.chatopera.cc.persistence.repository.QuickTypeRepository;
import com.chatopera.cc.util.Menu;
import com.chatopera.cc.util.RestResult;
import com.chatopera.cc.util.RestResultType;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang.StringUtils;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.lang.NonNull;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.server.ResponseStatusException;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.util.Date;
import java.util.List;
/**
* 快捷回复分类服务
* 快捷回复分类管理功能
*/
@RestController
@RequestMapping("/api/quicktype")
@RequiredArgsConstructor
public class ApiQuickTypeController extends Handler {
@NonNull
private final QuickTypeRepository quickTypeRepository;
@NonNull
private final QuickReplyRepository quickReplyRepository;
/**
* 返回快捷回复分类列表
*
* @param quicktype 搜索pub,pri
*/
@RequestMapping(method = RequestMethod.GET)
@Menu(type = "apps", subtype = "quicktype", access = true)
public ResponseEntity<RestResult> list(HttpServletRequest request, @Valid String id, @Valid String quicktype) {
if (StringUtils.isNotBlank(id)) {
return new ResponseEntity<>(new RestResult(RestResultType.OK, quickTypeRepository.findById(id)
.orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND, String.format("Quick type %s not found", id)))), HttpStatus.OK);
}
List<QuickType> quickTypeList = quickTypeRepository.findByOrgiAndQuicktype(getOrgi(request), quicktype);
return new ResponseEntity<>(new RestResult(RestResultType.OK, quickTypeList), HttpStatus.OK);
}
/**
* 新增或修改快捷回复分类
*/
@RequestMapping(method = RequestMethod.PUT)
@Menu(type = "apps", subtype = "quicktype", access = true)
public ResponseEntity<RestResult> put(HttpServletRequest request, @Valid QuickType quickType) {
if (quickType != null && !StringUtils.isBlank(quickType.getName())) {
quickType.setOrgi(getOrgi(request));
quickType.setCreater(getUser(request).getId());
quickType.setCreatetime(new Date());
if (StringUtils.isNotBlank(quickType.getId())) {
quickType.setUpdatetime(new Date());
}
quickType = quickTypeRepository.save(quickType);
}
return new ResponseEntity<>(new RestResult(RestResultType.OK, quickType), HttpStatus.OK);
}
/**
* 删除分类并且删除分类下的快捷回复
*/
@RequestMapping(method = RequestMethod.DELETE)
@Menu(type = "apps", subtype = "reply", access = true)
public ResponseEntity<RestResult> delete(@Valid String id) {
RestResult result = new RestResult(RestResultType.OK);
if (!StringUtils.isBlank(id)) {
quickTypeRepository.findById(id).ifPresent(quickType -> {
quickReplyRepository.deleteByCate(quickType.getId(), quickType.getOrgi());
quickTypeRepository.delete(quickType);
});
}
return new ResponseEntity<>(result, HttpStatus.OK);
}
}

View File

@ -1,40 +1,39 @@
/*
* Copyright (C) 2017 优客服-多渠道客服系统
* Modifications copyright (C) 2018-2019 Chatopera Inc, <https://www.chatopera.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.chatopera.cc.util.dsdata.process;
import com.chatopera.cc.model.QuickReply;
import com.chatopera.cc.persistence.es.QuickReplyRepository;
public class QuickReplyProcess implements JPAProcess{
private QuickReplyRepository quickReplyRes ;
public QuickReplyProcess(QuickReplyRepository quickReplyRes){
this.quickReplyRes = quickReplyRes ;
}
@Override
public void process(Object data) {
quickReplyRes.save((QuickReply)data) ;
}
@Override
public void end() {
}
}
/*
* Copyright (C) 2017 优客服-多渠道客服系统
* Modifications copyright (C) 2018-2019 Chatopera Inc, <https://www.chatopera.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.chatopera.cc.util.dsdata.process;
import com.chatopera.cc.model.QuickReply;
import com.chatopera.cc.persistence.es.QuickReplyRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.lang.NonNull;
@RequiredArgsConstructor
public class QuickReplyProcess implements JPAProcess {
@NonNull
private final QuickReplyRepository quickReplyRes;
@Override
public void process(Object data) {
quickReplyRes.save((QuickReply) data);
}
@Override
public void end() {
}
}