mirror of
https://github.com/chatopera/cosin.git
synced 2025-08-01 16:38:02 +08:00
Merge branch 'develop' of github.com:chatopera/cosin into develop
This commit is contained in:
commit
0f724d83df
@ -23,6 +23,8 @@ import org.springframework.data.domain.Pageable;
|
|||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
import com.chatopera.cc.webim.web.model.Tag;
|
import com.chatopera.cc.webim.web.model.Tag;
|
||||||
|
import org.springframework.data.jpa.repository.Query;
|
||||||
|
import org.springframework.data.repository.query.Param;
|
||||||
|
|
||||||
public abstract interface TagRepository extends JpaRepository<Tag, String>
|
public abstract interface TagRepository extends JpaRepository<Tag, String>
|
||||||
{
|
{
|
||||||
@ -30,8 +32,10 @@ public abstract interface TagRepository extends JpaRepository<Tag, String>
|
|||||||
public abstract Tag findByOrgiAndTag(String orgi , String tag);
|
public abstract Tag findByOrgiAndTag(String orgi , String tag);
|
||||||
|
|
||||||
public abstract Tag findByOrgiAndId(String orgi , String id);
|
public abstract Tag findByOrgiAndId(String orgi , String id);
|
||||||
|
|
||||||
public abstract Page<Tag> findByOrgiAndTagtype(String orgi , String tagtype ,Pageable paramPageable);
|
@Query(value = "select t from Tag t where (:tagtype is null or t.tagtype = :tagtype) " +
|
||||||
|
"and t.orgi = :orgi")
|
||||||
|
public Page<Tag> findByOrgiAndTagtype(@Param("orgi") String orgi , @Param("tagtype") String tagtype , Pageable paramPageable);
|
||||||
|
|
||||||
public abstract List<Tag> findByOrgi(String orgi);
|
public abstract List<Tag> findByOrgi(String orgi);
|
||||||
|
|
||||||
|
@ -1,60 +1,125 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2017 优客服-多渠道客服系统
|
* Copyright (C) 2018 Chatopera Inc, <https://www.chatopera.com>
|
||||||
* Modifications copyright (C) 2018 Chatopera Inc, <https://www.chatopera.com>
|
*
|
||||||
*
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* you may not use this file except in compliance with the License.
|
||||||
* you may not use this file except in compliance with the License.
|
* You may obtain a copy of the License at
|
||||||
* You may obtain a copy of the License at
|
*
|
||||||
*
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
*
|
||||||
*
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* See the License for the specific language governing permissions and
|
||||||
* See the License for the specific language governing permissions and
|
* limitations under the License.
|
||||||
* limitations under the License.
|
*/
|
||||||
*/
|
|
||||||
package com.chatopera.cc.webim.web.handler.api.rest;
|
package com.chatopera.cc.webim.web.handler.api.rest;
|
||||||
|
|
||||||
import com.chatopera.cc.core.UKDataContext;
|
import com.chatopera.cc.util.Menu;
|
||||||
import com.chatopera.cc.util.Menu;
|
import com.chatopera.cc.util.exception.CSKefuRestException;
|
||||||
import com.chatopera.cc.webim.service.repository.TagRepository;
|
import com.chatopera.cc.util.json.GsonTools;
|
||||||
import com.chatopera.cc.webim.util.RestResult;
|
import com.chatopera.cc.webim.service.repository.TagRepository;
|
||||||
import com.chatopera.cc.webim.web.handler.Handler;
|
import com.chatopera.cc.webim.web.handler.Handler;
|
||||||
import io.swagger.annotations.Api;
|
import com.chatopera.cc.webim.web.handler.api.request.RestUtils;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import com.chatopera.cc.webim.web.model.Tag;
|
||||||
|
import com.google.gson.JsonArray;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import com.google.gson.JsonObject;
|
||||||
import javax.validation.Valid;
|
import com.google.gson.JsonParser;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.slf4j.Logger;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.data.domain.PageRequest;
|
||||||
|
import org.springframework.data.domain.Sort;
|
||||||
import com.chatopera.cc.webim.util.RestResultType;
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
@RestController
|
import org.springframework.http.ResponseEntity;
|
||||||
@RequestMapping("/api/tags")
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
@Api(value = "标签功能" , description = "获取分类标签")
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
public class ApiTagsController extends Handler {
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
@Autowired
|
|
||||||
private TagRepository tagRes;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
/**
|
@RestController
|
||||||
* 按照分类获取标签列表
|
@RequestMapping("/api/repo/tags")
|
||||||
* @param request
|
@Api(value = "标签", description = "管理标签")
|
||||||
* @param type 类型
|
public class ApiTagsController extends Handler {
|
||||||
* @return
|
private static final Logger logger = LoggerFactory.getLogger(ApiTagsController.class);
|
||||||
*/
|
|
||||||
@RequestMapping( method = RequestMethod.GET)
|
@Autowired
|
||||||
@Menu(type = "apps" , subtype = "tags" , access = true)
|
private TagRepository tagRes;
|
||||||
@ApiOperation("按照分类获取标签列表,Type 参数类型来自于 枚举,可选值目前有三个 : user workorders summary")
|
|
||||||
public ResponseEntity<RestResult> list(HttpServletRequest request , @Valid String type) {
|
/**
|
||||||
return new ResponseEntity<>(new RestResult(RestResultType.OK, tagRes.findByOrgiAndTagtype(super.getOrgi(request) , !StringUtils.isBlank(type) ? type : UKDataContext.ModelType.USER.toString())), HttpStatus.OK);
|
* 获取标签
|
||||||
}
|
*
|
||||||
}
|
* @param j
|
||||||
|
* @param request
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private JsonObject fetch(final JsonObject j, final HttpServletRequest request) {
|
||||||
|
JsonObject resp = new JsonObject();
|
||||||
|
String tagType = null;
|
||||||
|
|
||||||
|
if (j.has("tagtype"))
|
||||||
|
tagType = j.get("tagtype").getAsString();
|
||||||
|
|
||||||
|
Page<Tag> records = tagRes.findByOrgiAndTagtype(j.get("orgi").getAsString(), tagType,
|
||||||
|
new PageRequest(super.getP(request), super.getPs(request), Sort.Direction.DESC, new String[]{"createtime"}));
|
||||||
|
|
||||||
|
JsonArray ja = new JsonArray();
|
||||||
|
|
||||||
|
for(Tag t: records){
|
||||||
|
JsonObject o = new JsonObject();
|
||||||
|
o.addProperty("id", t.getId());
|
||||||
|
o.addProperty("name", t.getTag());
|
||||||
|
o.addProperty("type", t.getTagtype());
|
||||||
|
o.addProperty("icon", t.getIcon());
|
||||||
|
o.addProperty("color", t.getColor());
|
||||||
|
ja.add(o);
|
||||||
|
}
|
||||||
|
|
||||||
|
resp.add("data", ja);
|
||||||
|
resp.addProperty("size", records.getSize()); // 每页条数
|
||||||
|
resp.addProperty("number", records.getNumber()); // 当前页
|
||||||
|
resp.addProperty("totalPage", records.getTotalPages()); // 所有页
|
||||||
|
resp.addProperty("totalElements", records.getTotalElements()); // 所有检索结果数量
|
||||||
|
resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_SUCC);
|
||||||
|
|
||||||
|
return resp;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@RequestMapping(method = RequestMethod.POST)
|
||||||
|
@Menu(type = "apps", subtype = "tags", access = true)
|
||||||
|
@ApiOperation("联系人标签")
|
||||||
|
public ResponseEntity<String> operations(HttpServletRequest request, @RequestBody final String body) throws CSKefuRestException, GsonTools.JsonObjectExtensionConflictException {
|
||||||
|
final JsonObject j = (new JsonParser()).parse(body).getAsJsonObject();
|
||||||
|
logger.info("[contact tags] operations payload {}", j.toString());
|
||||||
|
JsonObject json = new JsonObject();
|
||||||
|
HttpHeaders headers = RestUtils.header();
|
||||||
|
j.addProperty("creater", super.getUser(request).getId());
|
||||||
|
j.addProperty("orgi", super.getUser(request).getOrgi());
|
||||||
|
|
||||||
|
if (!j.has("ops")) {
|
||||||
|
json.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_FAIL_1);
|
||||||
|
json.addProperty(RestUtils.RESP_KEY_ERROR, "不合法的请求参数。");
|
||||||
|
} else {
|
||||||
|
switch (StringUtils.lowerCase(j.get("ops").getAsString())) {
|
||||||
|
case "fetch":
|
||||||
|
json = fetch(j, request);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
json.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_FAIL_3);
|
||||||
|
json.addProperty(RestUtils.RESP_KEY_ERROR, "不支持的操作。");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return new ResponseEntity<String>(json.toString(), headers, HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -0,0 +1,60 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2017 优客服-多渠道客服系统
|
||||||
|
* Modifications copyright (C) 2018 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.webim.web.handler.api.rest;
|
||||||
|
|
||||||
|
import com.chatopera.cc.core.UKDataContext;
|
||||||
|
import com.chatopera.cc.util.Menu;
|
||||||
|
import com.chatopera.cc.webim.service.repository.TagRepository;
|
||||||
|
import com.chatopera.cc.webim.util.RestResult;
|
||||||
|
import com.chatopera.cc.webim.web.handler.Handler;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.validation.Valid;
|
||||||
|
|
||||||
|
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 com.chatopera.cc.webim.util.RestResultType;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/api/tags")
|
||||||
|
@Api(value = "标签功能" , description = "获取分类标签")
|
||||||
|
public class UkefuApiTagsController extends Handler {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private TagRepository tagRes;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按照分类获取标签列表
|
||||||
|
* @param request
|
||||||
|
* @param type 类型
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@RequestMapping( method = RequestMethod.GET)
|
||||||
|
@Menu(type = "apps" , subtype = "tags" , access = true)
|
||||||
|
@ApiOperation("按照分类获取标签列表,Type 参数类型来自于 枚举,可选值目前有三个 : user workorders summary")
|
||||||
|
public ResponseEntity<RestResult> list(HttpServletRequest request , @Valid String type) {
|
||||||
|
return new ResponseEntity<>(new RestResult(RestResultType.OK, tagRes.findByOrgiAndTagtype(super.getOrgi(request) , !StringUtils.isBlank(type) ? type : UKDataContext.ModelType.USER.toString())), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user