You need to sign in or sign up before continuing.
Commit 2a2f747c by guojuxing

工单提交/查询/关闭

parent 0cb2b416
......@@ -6,18 +6,21 @@ import java.util.List;
import java.util.Map;
public enum UdeskStatusEnum {
OPEN("open", "开启"),
SOLVING("solving", "解决中"),
RESOLVED("resolved", "已解决"),
CLOSED("closed", "已关闭");
OPEN("open", "开启", 1),
SOLVING("solving", "解决中", 4),
RESOLVED("resolved", "已解决", 2),
CLOSED("closed", "已关闭", 3);
private String code;
private String message;
private UdeskStatusEnum(String code, String message) {
private int value;
private UdeskStatusEnum(String code, String message, int value) {
this.code = code;
this.message = message;
this.value = value;
}
public static List<Map<String, Object>> list() {
......@@ -46,4 +49,12 @@ public enum UdeskStatusEnum {
public void setMessage(String message) {
this.message = message;
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
......@@ -32,6 +32,16 @@ public class GicTicketDTO implements Serializable{
private String status;
/**
* 工单模板id
*/
private Integer template_id;
/**
* 自定义字段的json字符串接收
*/
private String ticketFieldJsonStr;
/**
* 自定义字段
*/
private Map<String, String> ticket_field;
......@@ -75,4 +85,20 @@ public class GicTicketDTO implements Serializable{
public void setBusinessModuleType(Integer businessModuleType) {
this.businessModuleType = businessModuleType;
}
public Integer getTemplate_id() {
return template_id;
}
public void setTemplate_id(Integer template_id) {
this.template_id = template_id;
}
public String getTicketFieldJsonStr() {
return ticketFieldJsonStr;
}
public void setTicketFieldJsonStr(String ticketFieldJsonStr) {
this.ticketFieldJsonStr = ticketFieldJsonStr;
}
}
......@@ -47,4 +47,14 @@ public interface GicTicketApiService {
* @return com.gic.api.base.commons.ServiceResponse<com.gic.udesk.dto.gic.TicketRepliesDTO>


 */
ServiceResponse<TicketRepliesDTO> getTicketReplies(Integer ticketId, Integer currentPage, Integer pageSize);
/**
* 关闭工单
* @Title: closeTicket

* @Description:

 * @author guojuxing
* @param ticketId

* @return com.gic.api.base.commons.ServiceResponse<java.lang.String>


 */
ServiceResponse<String> closeTicket(Integer ticketId);
}
......@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page;
import com.gic.commons.util.PageHelperUtils;
import com.gic.enterprise.error.ErrorCode;
import com.gic.udesk.constant.UdeskStatusEnum;
import com.gic.udesk.dto.UdeskTicketDetailDTO;
import com.gic.udesk.dto.customfield.UdeskCustomFieldOptionDTO;
import com.gic.udesk.dto.gic.TicketRepliesDTO;
......@@ -43,6 +44,11 @@ public class GicTicketApiServiceImpl implements GicTicketApiService{
* udesk工单接口 (创建)
*/
private static final String UDESK_CREATE_TICKET = "/tickets/";
/**
* udesk工单接口 (更新)
*/
private static final String UDESK_UPDATE_TICKET = "/tickets/";
/**
* udesk工单详情接口路径
*/
......@@ -55,11 +61,20 @@ public class GicTicketApiServiceImpl implements GicTicketApiService{
if (isNotRightBusinessModuleType) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "模块类型错误,数值非法");
}
String params = JSON.toJSONString(gicTicketDTO);
//设置模板ID
if (businessModuleType.intValue() == 1) {
gicTicketDTO.setTemplate_id(UdeskConstant.GIC_BASE_MODULE_TEMPLATE_ID);
} else {
gicTicketDTO.setTemplate_id(UdeskConstant.APP_MODULE_TEMPLATE_ID);
}
Map<String, Object> paramMap = new HashMap<>(4);
paramMap.put("ticket", gicTicketDTO);
String params = JSON.toJSONString(paramMap);
LOGGER.info("gic新建udesk工单,内容为:{}", params);
String respStr = UdeskHttpClientUtil
.putUdeskJsonFromJson(UDESK_CREATE_TICKET, params);
LOGGER.info("更新udesk工单,工单返回为:{}", respStr);
.postUdeskJsonFromJson(UDESK_CREATE_TICKET, params);
LOGGER.info("gic新建udesk工单,工单返回为:{}", respStr);
TicketCreateResDTO createResDTO = JSON.parseObject(respStr, TicketCreateResDTO.class);
if (createResDTO != null && createResDTO.getCode() == UdeskConstant.UDESK_SUCCESS_CODE) {
Integer ticketId = createResDTO.getTicket_id();
......@@ -118,6 +133,23 @@ public class GicTicketApiServiceImpl implements GicTicketApiService{
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), "无数据");
}
@Override
public ServiceResponse<String> closeTicket(Integer ticketId) {
JSONObject param = new JSONObject();
JSONObject updateJson = new JSONObject();
updateJson.put("status_id", UdeskStatusEnum.CLOSED.getValue());
param.put("ticket", updateJson);
LOGGER.info("更新udesk工单,工单Id:{},更新内容为:{}", ticketId, param.toJSONString());
String updateTicketRespStr = UdeskHttpClientUtil
.putUdeskJsonFromJson(UDESK_UPDATE_TICKET + ticketId, param.toJSONString());
LOGGER.info("更新udesk工单,工单返回为:{}", updateTicketRespStr);
UdeskTicketDetailDTO updateDetail = JSON.parseObject(updateTicketRespStr, UdeskTicketDetailDTO.class);
if (updateDetail != null && updateDetail.getCode() == UdeskConstant.UDESK_SUCCESS_CODE) {
return ServiceResponse.success(updateDetail.getMessage());
}
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), updateDetail.getMessage());
}
/**
* udesk工单详情接口
* @param id
......
......@@ -136,9 +136,18 @@ public class UdeskConstant {
public static final String GIC_BASE_MODULE_SELECT = "SelectField_56661";
/**
* GIC后台对应的基础模块 模板ID
*/
public static final Integer GIC_BASE_MODULE_TEMPLATE_ID = 97811;
/**
* GIC应用模块工单 应用模块名称
*/
public static final String APP_MODULE_NAME = "TextField_101931";
/**
* GIC应用模块工单 模板ID
*/
public static Integer APP_MODULE_TEMPLATE_ID = 99311;
/**
* udesk来源的类型异常
......
package com.gic.udesk.web.controller;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import com.gic.udesk.qo.TicketListQO;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
......@@ -17,11 +18,10 @@ import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.enterprise.ano.IgnoreLogin;
import com.gic.enterprise.error.ErrorCode;
import com.gic.enterprise.utils.ResultControllerUtils;
import com.gic.udesk.constant.AgentPermissionEnum;
import com.gic.udesk.constant.CalculateResultTypeEnum;
import com.gic.udesk.constant.CustomFieldContentTypeEnum;
import com.gic.udesk.constant.CustomerPermissionEnum;
import com.gic.udesk.constant.*;
import com.gic.udesk.dto.gic.GicTicketDTO;
import com.gic.udesk.dto.uploadfile.UploadFileDTO;
import com.gic.udesk.qo.TicketListQO;
import com.gic.udesk.service.GicTicketApiService;
import com.gic.udesk.service.UdeskBaseApiService;
import com.gic.udesk.web.utils.UdeskHttpClientUtil;
......@@ -65,12 +65,25 @@ public class GicTicketController {
return ResultControllerUtils.commonResult(gicTicketApiService.getTicketReplies(ticketId, currentPage, pageSize));
}
@RequestMapping("/add-ticket")
@IgnoreLogin
public RestResponse addTicket(GicTicketDTO dto) {
dto.setTicket_field(JSON.parseObject(dto.getTicketFieldJsonStr(), Map.class));
return ResultControllerUtils.commonResult(gicTicketApiService.saveTicket(dto));
}
@RequestMapping("/list-ticket")
@IgnoreLogin
public RestResponse page(TicketListQO params) {
return ResultControllerUtils.commonResult(gicTicketApiService.page(params));
}
@RequestMapping("/close-ticket")
@IgnoreLogin
public RestResponse closeTicket(Integer ticketId) {
return ResultControllerUtils.commonResult(gicTicketApiService.closeTicket(ticketId));
}
@RequestMapping("/ticket-upload-file")
@IgnoreLogin
public RestResponse getCustomFieldFromUdeskTemplates(HttpServletRequest request) throws Exception {
......@@ -114,6 +127,12 @@ public class GicTicketController {
return RestResponse.success(CalculateResultTypeEnum.list());
}
@RequestMapping("/ticket-status-enum")
@IgnoreLogin
public RestResponse ticketStatusEnum() {
return RestResponse.success(UdeskStatusEnum.list());
}
/**
* udesk自定义字段 客户权限
* @return
......
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