Commit 9b736699 by guojuxing

pmd

parent 55971329
...@@ -13,8 +13,17 @@ import java.util.Map; ...@@ -13,8 +13,17 @@ import java.util.Map;
* @date 2019/12/25 2:36 PM
 * @date 2019/12/25 2:36 PM

*/ */
public enum AgentPermissionEnum { public enum AgentPermissionEnum {
/**
* 客服可见,但不可编辑
*/
READONLY("readonly", "客服可见,但不可编辑"), READONLY("readonly", "客服可见,但不可编辑"),
/**
* 客服可编辑
*/
READWRITE("readwrite", "客服可编辑"), READWRITE("readwrite", "客服可编辑"),
/**
* 客服必填
*/
MUST("must", "客服必填"); MUST("must", "客服必填");
private String code; private String code;
......
...@@ -13,8 +13,17 @@ import java.util.Map; ...@@ -13,8 +13,17 @@ import java.util.Map;
* @date 2019/12/25 2:36 PM
 * @date 2019/12/25 2:36 PM

*/ */
public enum CalculateResultTypeEnum { public enum CalculateResultTypeEnum {
/**
* 数字
*/
NUMERIC("numeric", "数字"), NUMERIC("numeric", "数字"),
/**
* 时长
*/
DURATION("duration", "时长"), DURATION("duration", "时长"),
/**
* 百分比
*/
PERCENTAGE("percentage", "百分比"); PERCENTAGE("percentage", "百分比");
private String code; private String code;
......
...@@ -13,19 +13,61 @@ import java.util.Map; ...@@ -13,19 +13,61 @@ import java.util.Map;
* @date 2019/12/25 2:34 PM
 * @date 2019/12/25 2:34 PM

*/ */
public enum CustomFieldContentTypeEnum { public enum CustomFieldContentTypeEnum {
/**
* 单行文本
*/
TEXT("text", "单行文本"), TEXT("text", "单行文本"),
/**
* 多行文本
*/
AREA_TEXT("area_text", "多行文本"), AREA_TEXT("area_text", "多行文本"),
/**
* 日期
*/
DATE("date", "日期"), DATE("date", "日期"),
/**
* 时间
*/
TIME("time", "时间"), TIME("time", "时间"),
/**
* 日期时间
*/
DATE_TIME("datetime", "日期时间"), DATE_TIME("datetime", "日期时间"),
/**
* 超链接
*/
LINK("link", "超链接"), LINK("link", "超链接"),
/**
* 地理位置
*/
LOCATION("location", "地理位置"), LOCATION("location", "地理位置"),
/**
* 正整数
*/
NUMBER("number", "正整数"), NUMBER("number", "正整数"),
/**
* 数值
*/
NUMERIC("numeric", "数值"), NUMERIC("numeric", "数值"),
/**
* 下拉列表
*/
DROPLIST("droplist", "下拉列表"), DROPLIST("droplist", "下拉列表"),
/**
* 单选
*/
RADIO("radio", "单选"), RADIO("radio", "单选"),
/**
* 多选
*/
CHECKBOX("checkbox", "多选"), CHECKBOX("checkbox", "多选"),
/**
* 级联
*/
CHAINED_DROPLIST("chained_droplist", "级联"), CHAINED_DROPLIST("chained_droplist", "级联"),
/**
* 计算字段
*/
CALCULATE("calculate", "计算字段"); CALCULATE("calculate", "计算字段");
private String code; private String code;
......
...@@ -13,9 +13,21 @@ import java.util.Map; ...@@ -13,9 +13,21 @@ import java.util.Map;
* @date 2019/12/25 2:36 PM
 * @date 2019/12/25 2:36 PM

*/ */
public enum CustomerPermissionEnum { public enum CustomerPermissionEnum {
/**
* 客户不可见
*/
NONE("none", "客户不可见"), NONE("none", "客户不可见"),
/**
* 客户可见,但不可编辑
*/
READONLY("readonly", "客户可见,但不可编辑"), READONLY("readonly", "客户可见,但不可编辑"),
/**
* 客户可编辑
*/
READWRITE("readwrite", "客户可编辑"), READWRITE("readwrite", "客户可编辑"),
/**
* 客户必填
*/
MUST("must", "客户必填"); MUST("must", "客户必填");
private String code; private String code;
......
...@@ -4,11 +4,29 @@ import java.util.ArrayList; ...@@ -4,11 +4,29 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
/**
* udesk的客服工单状态
* @ClassName: UdeskStatusEnum

* @Description: 

* @author guojuxing

* @date 2020/9/18 9:51 AM

*/
public enum UdeskStatusEnum { public enum UdeskStatusEnum {
/**
* 开启
*/
OPEN("open", "开启", 1), OPEN("open", "开启", 1),
/**
* 解决中
*/
SOLVING("solving", "解决中", 4), SOLVING("solving", "解决中", 4),
/**
* 已解决
*/
RESOLVED("resolved", "已解决", 2), RESOLVED("resolved", "已解决", 2),
/**
* 已关闭
*/
CLOSED("closed", "已关闭", 3); CLOSED("closed", "已关闭", 3);
private String code; private String code;
......
package com.gic.udesk.dto; package com.gic.udesk.dto;
import java.io.Serializable; import java.io.Serializable;
import com.gic.commons.annotation.SkipNamingCheck;
/** /**
* 附件 * 附件
* @ClassName: AttachmentDTO
 * @ClassName: AttachmentDTO

...@@ -8,6 +10,7 @@ import java.io.Serializable; ...@@ -8,6 +10,7 @@ import java.io.Serializable;
* @author guojuxing
 * @author guojuxing

* @date 2019/12/23 3:05 PM
 * @date 2019/12/23 3:05 PM

*/ */
@SkipNamingCheck
public class AttachmentDTO implements Serializable{ public class AttachmentDTO implements Serializable{
private static final long serialVersionUID = 6369929530568254062L; private static final long serialVersionUID = 6369929530568254062L;
...@@ -36,4 +39,12 @@ public class AttachmentDTO implements Serializable{ ...@@ -36,4 +39,12 @@ public class AttachmentDTO implements Serializable{
public void setUrl(String url) { public void setUrl(String url) {
this.url = url; this.url = url;
} }
@Override
public String toString() {
return "AttachmentDTO{" +
"file_name='" + file_name + '\'' +
", url='" + url + '\'' +
'}';
}
} }
package com.gic.udesk.dto; package com.gic.udesk.dto;
import com.gic.commons.annotation.SkipNamingCheck;
import java.io.Serializable; import java.io.Serializable;
/** /**
* 关注者 * 关注者
...@@ -8,6 +10,7 @@ import java.io.Serializable; ...@@ -8,6 +10,7 @@ import java.io.Serializable;
* @author guojuxing
 * @author guojuxing

* @date 2019/12/23 3:06 PM
 * @date 2019/12/23 3:06 PM

*/ */
@SkipNamingCheck
public class FollowerDTO implements Serializable{ public class FollowerDTO implements Serializable{
private static final long serialVersionUID = -6806790410409455090L; private static final long serialVersionUID = -6806790410409455090L;
...@@ -36,4 +39,12 @@ public class FollowerDTO implements Serializable{ ...@@ -36,4 +39,12 @@ public class FollowerDTO implements Serializable{
public void setNick_name(String nick_name) { public void setNick_name(String nick_name) {
this.nick_name = nick_name; this.nick_name = nick_name;
} }
@Override
public String toString() {
return "FollowerDTO{" +
"id=" + id +
", nick_name='" + nick_name + '\'' +
'}';
}
} }
package com.gic.udesk.dto; package com.gic.udesk.dto;
import com.gic.commons.annotation.SkipNamingCheck;
import java.io.Serializable; import java.io.Serializable;
import java.util.Map; import java.util.Map;
...@@ -10,6 +12,7 @@ import java.util.Map; ...@@ -10,6 +12,7 @@ import java.util.Map;
* @author guojuxing
 * @author guojuxing

* @date 2019/12/23 3:07 PM
 * @date 2019/12/23 3:07 PM

*/ */
@SkipNamingCheck
public class OrganizationDTO implements Serializable{ public class OrganizationDTO implements Serializable{
private static final long serialVersionUID = -3042952127522207394L; private static final long serialVersionUID = -3042952127522207394L;
...@@ -90,4 +93,16 @@ public class OrganizationDTO implements Serializable{ ...@@ -90,4 +93,16 @@ public class OrganizationDTO implements Serializable{
public void setCustom_fields(Map<String, String> custom_fields) { public void setCustom_fields(Map<String, String> custom_fields) {
this.custom_fields = custom_fields; this.custom_fields = custom_fields;
} }
@Override
public String toString() {
return "OrganizationDTO{" +
"id=" + id +
", name='" + name + '\'' +
", domains='" + domains + '\'' +
", description='" + description + '\'' +
", token='" + token + '\'' +
", custom_fields=" + custom_fields +
'}';
}
} }
package com.gic.udesk.dto; package com.gic.udesk.dto;
import com.gic.commons.annotation.SkipNamingCheck;
import java.io.Serializable; import java.io.Serializable;
/** /**
* 缺陷基类 * 缺陷基类
...@@ -8,6 +10,7 @@ import java.io.Serializable; ...@@ -8,6 +10,7 @@ import java.io.Serializable;
* @author guojuxing
 * @author guojuxing

* @date 2019/12/23 3:08 PM
 * @date 2019/12/23 3:08 PM

*/ */
@SkipNamingCheck
public class TapdBugBaseDTO implements Serializable{ public class TapdBugBaseDTO implements Serializable{
private static final long serialVersionUID = 996019256030454386L; private static final long serialVersionUID = 996019256030454386L;
...@@ -261,4 +264,33 @@ public class TapdBugBaseDTO implements Serializable{ ...@@ -261,4 +264,33 @@ public class TapdBugBaseDTO implements Serializable{
public void setWorkspace_id(String workspace_id) { public void setWorkspace_id(String workspace_id) {
this.workspace_id = workspace_id; this.workspace_id = workspace_id;
} }
@Override
public String toString() {
return "TapdBugBaseDTO{" +
"id='" + id + '\'' +
", title='" + title + '\'' +
", description='" + description + '\'' +
", priority='" + priority + '\'' +
", severity='" + severity + '\'' +
", status='" + status + '\'' +
", reporter='" + reporter + '\'' +
", bugtype='" + bugtype + '\'' +
", current_owner='" + current_owner + '\'' +
", originphase='" + originphase + '\'' +
", testtype='" + testtype + '\'' +
", frequency='" + frequency + '\'' +
", custom_field_one='" + custom_field_one + '\'' +
", custom_field_two='" + custom_field_two + '\'' +
", custom_field_three='" + custom_field_three + '\'' +
", custom_field_four='" + custom_field_four + '\'' +
", custom_field_five='" + custom_field_five + '\'' +
", custom_field_6='" + custom_field_6 + '\'' +
", custom_field_7='" + custom_field_7 + '\'' +
", custom_field_8='" + custom_field_8 + '\'' +
", custom_field_9='" + custom_field_9 + '\'' +
", custom_field_10='" + custom_field_10 + '\'' +
", workspace_id='" + workspace_id + '\'' +
'}';
}
} }
package com.gic.udesk.dto; package com.gic.udesk.dto;
import com.gic.commons.annotation.SkipNamingCheck;
import java.io.Serializable; import java.io.Serializable;
/** /**
...@@ -9,6 +11,7 @@ import java.io.Serializable; ...@@ -9,6 +11,7 @@ import java.io.Serializable;
* @author guojuxing
 * @author guojuxing

* @date 2019/12/23 3:09 PM
 * @date 2019/12/23 3:09 PM

*/ */
@SkipNamingCheck
public class TapdBugDTO extends TapdBugBaseDTO implements Serializable{ public class TapdBugDTO extends TapdBugBaseDTO implements Serializable{
private static final long serialVersionUID = 1194893729619773267L; private static final long serialVersionUID = 1194893729619773267L;
...@@ -501,4 +504,60 @@ public class TapdBugDTO extends TapdBugBaseDTO implements Serializable{ ...@@ -501,4 +504,60 @@ public class TapdBugDTO extends TapdBugBaseDTO implements Serializable{
public void setCustom_field_15(String custom_field_15) { public void setCustom_field_15(String custom_field_15) {
this.custom_field_15 = custom_field_15; this.custom_field_15 = custom_field_15;
} }
@Override
public String toString() {
return "TapdBugDTO{" +
"module='" + module + '\'' +
", deadline='" + deadline + '\'' +
", created='" + created + '\'' +
", resolved='" + resolved + '\'' +
", closed='" + closed + '\'' +
", modified='" + modified + '\'' +
", lastmodify='" + lastmodify + '\'' +
", auditer='" + auditer + '\'' +
", de='" + de + '\'' +
", version_test='" + version_test + '\'' +
", version_report='" + version_report + '\'' +
", version_close='" + version_close + '\'' +
", version_fix='" + version_fix + '\'' +
", baseline_find='" + baseline_find + '\'' +
", baseline_join='" + baseline_join + '\'' +
", baseline_close='" + baseline_close + '\'' +
", baseline_test='" + baseline_test + '\'' +
", sourcephase='" + sourcephase + '\'' +
", te='" + te + '\'' +
", iteration_id='" + iteration_id + '\'' +
", resolution='" + resolution + '\'' +
", source='" + source + '\'' +
", confirmer='" + confirmer + '\'' +
", milestone='" + milestone + '\'' +
", participator='" + participator + '\'' +
", closer='" + closer + '\'' +
", platform='" + platform + '\'' +
", os='" + os + '\'' +
", testphase='" + testphase + '\'' +
", cc='" + cc + '\'' +
", regression_number='" + regression_number + '\'' +
", flows='" + flows + '\'' +
", feature='" + feature + '\'' +
", testmode='" + testmode + '\'' +
", estimate='" + estimate + '\'' +
", issue_id='" + issue_id + '\'' +
", created_from='" + created_from + '\'' +
", in_progress_time='" + in_progress_time + '\'' +
", verify_time='" + verify_time + '\'' +
", reject_time='" + reject_time + '\'' +
", reopen_time='" + reopen_time + '\'' +
", audit_time='" + audit_time + '\'' +
", suspend_time='" + suspend_time + '\'' +
", due='" + due + '\'' +
", begin='" + begin + '\'' +
", custom_field_11='" + custom_field_11 + '\'' +
", custom_field_12='" + custom_field_12 + '\'' +
", custom_field_13='" + custom_field_13 + '\'' +
", custom_field_14='" + custom_field_14 + '\'' +
", custom_field_15='" + custom_field_15 + '\'' +
'}';
}
} }
package com.gic.udesk.dto; package com.gic.udesk.dto;
import com.gic.commons.annotation.SkipNamingCheck;
import java.io.Serializable; import java.io.Serializable;
/** /**
* @ClassName: TapdBugUpdateDTO
 * @ClassName: TapdBugUpdateDTO

...@@ -7,6 +9,7 @@ import java.io.Serializable; ...@@ -7,6 +9,7 @@ import java.io.Serializable;
* @author guojuxing
 * @author guojuxing

* @date 2019/12/23 3:11 PM
 * @date 2019/12/23 3:11 PM

*/ */
@SkipNamingCheck
public class TapdBugUpdateDTO extends TapdBugBaseDTO implements Serializable{ public class TapdBugUpdateDTO extends TapdBugBaseDTO implements Serializable{
private static final long serialVersionUID = 2954842604288372658L; private static final long serialVersionUID = 2954842604288372658L;
...@@ -35,4 +38,12 @@ public class TapdBugUpdateDTO extends TapdBugBaseDTO implements Serializable{ ...@@ -35,4 +38,12 @@ public class TapdBugUpdateDTO extends TapdBugBaseDTO implements Serializable{
public void setCurrent_user(String current_user) { public void setCurrent_user(String current_user) {
this.current_user = current_user; this.current_user = current_user;
} }
@Override
public String toString() {
return "TapdBugUpdateDTO{" +
"project_id=" + project_id +
", current_user='" + current_user + '\'' +
'}';
}
} }
package com.gic.udesk.dto; package com.gic.udesk.dto;
import com.gic.commons.annotation.SkipNamingCheck;
import java.io.Serializable; import java.io.Serializable;
/** /**
* tapd自定义字段 * tapd自定义字段
...@@ -8,6 +10,7 @@ import java.io.Serializable; ...@@ -8,6 +10,7 @@ import java.io.Serializable;
* @author guojuxing
 * @author guojuxing

* @date 2019/12/23 3:12 PM
 * @date 2019/12/23 3:12 PM

*/ */
@SkipNamingCheck
public class TapdCustomFieldConfig implements Serializable{ public class TapdCustomFieldConfig implements Serializable{
private static final long serialVersionUID = -6242431131348000720L; private static final long serialVersionUID = -6242431131348000720L;
......
package com.gic.udesk.dto; package com.gic.udesk.dto;
import com.gic.commons.annotation.SkipNamingCheck;
import java.io.Serializable; import java.io.Serializable;
/** /**
* tapd监听发送的消息参数 * tapd监听发送的消息参数
...@@ -8,6 +10,7 @@ import java.io.Serializable; ...@@ -8,6 +10,7 @@ import java.io.Serializable;
* @author guojuxing
 * @author guojuxing

* @date 2019/12/23 3:13 PM
 * @date 2019/12/23 3:13 PM

*/ */
@SkipNamingCheck
public class TapdMessageDTO implements Serializable{ public class TapdMessageDTO implements Serializable{
private static final long serialVersionUID = 1782405175563991216L; private static final long serialVersionUID = 1782405175563991216L;
...@@ -132,4 +135,20 @@ public class TapdMessageDTO implements Serializable{ ...@@ -132,4 +135,20 @@ public class TapdMessageDTO implements Serializable{
public void setOld_title(String old_title) { public void setOld_title(String old_title) {
this.old_title = old_title; this.old_title = old_title;
} }
@Override
public String toString() {
return "TapdMessageDTO{" +
"udeskId='" + udeskId + '\'' +
", id='" + id + '\'' +
", event='" + event + '\'' +
", created='" + created + '\'' +
", event_from='" + event_from + '\'' +
", event_id='" + event_id + '\'' +
", current_user='" + current_user + '\'' +
", workspace_id='" + workspace_id + '\'' +
", change_fields='" + change_fields + '\'' +
", old_title='" + old_title + '\'' +
'}';
}
} }
...@@ -40,4 +40,13 @@ public class TapdRespBugDTO implements Serializable{ ...@@ -40,4 +40,13 @@ public class TapdRespBugDTO implements Serializable{
public void setData(TapdRespBugDataDTO data) { public void setData(TapdRespBugDataDTO data) {
this.data = data; this.data = data;
} }
@Override
public String toString() {
return "TapdRespBugDTO{" +
"status=" + status +
", info='" + info + '\'' +
", data=" + data +
'}';
}
} }
package com.gic.udesk.dto; package com.gic.udesk.dto;
import com.gic.commons.annotation.SkipNamingCheck;
import java.io.Serializable; import java.io.Serializable;
/** /**
* 接收新增TAPD的bug返回data * 接收新增TAPD的bug返回data
...@@ -8,6 +10,7 @@ import java.io.Serializable; ...@@ -8,6 +10,7 @@ import java.io.Serializable;
* @author guojuxing
 * @author guojuxing

* @date 2019/12/23 3:28 PM
 * @date 2019/12/23 3:28 PM

*/ */
@SkipNamingCheck
public class TapdRespBugDataDTO implements Serializable{ public class TapdRespBugDataDTO implements Serializable{
private static final long serialVersionUID = 9113924195626824396L; private static final long serialVersionUID = 9113924195626824396L;
...@@ -20,4 +23,11 @@ public class TapdRespBugDataDTO implements Serializable{ ...@@ -20,4 +23,11 @@ public class TapdRespBugDataDTO implements Serializable{
public void setBug(TapdBugDTO bug) { public void setBug(TapdBugDTO bug) {
Bug = bug; Bug = bug;
} }
@Override
public String toString() {
return "TapdRespBugDataDTO{" +
"Bug=" + Bug +
'}';
}
} }
...@@ -42,4 +42,13 @@ public class TapdRespCustomFieldDTO implements Serializable{ ...@@ -42,4 +42,13 @@ public class TapdRespCustomFieldDTO implements Serializable{
public void setData(List<TapdRespCustomFieldDataDTO> data) { public void setData(List<TapdRespCustomFieldDataDTO> data) {
this.data = data; this.data = data;
} }
@Override
public String toString() {
return "TapdRespCustomFieldDTO{" +
"status=" + status +
", info='" + info + '\'' +
", data=" + data +
'}';
}
} }
package com.gic.udesk.dto; package com.gic.udesk.dto;
import com.gic.commons.annotation.SkipNamingCheck;
import java.io.Serializable; import java.io.Serializable;
/** /**
* TAPD自定义字段返回data * TAPD自定义字段返回data
...@@ -8,6 +10,7 @@ import java.io.Serializable; ...@@ -8,6 +10,7 @@ import java.io.Serializable;
* @author guojuxing
 * @author guojuxing

* @date 2019/12/23 3:29 PM
 * @date 2019/12/23 3:29 PM

*/ */
@SkipNamingCheck
public class TapdRespCustomFieldDataDTO implements Serializable{ public class TapdRespCustomFieldDataDTO implements Serializable{
private static final long serialVersionUID = 6070115012514102123L; private static final long serialVersionUID = 6070115012514102123L;
...@@ -20,4 +23,11 @@ public class TapdRespCustomFieldDataDTO implements Serializable{ ...@@ -20,4 +23,11 @@ public class TapdRespCustomFieldDataDTO implements Serializable{
public void setCustomFieldConfig(TapdCustomFieldConfig customFieldConfig) { public void setCustomFieldConfig(TapdCustomFieldConfig customFieldConfig) {
CustomFieldConfig = customFieldConfig; CustomFieldConfig = customFieldConfig;
} }
@Override
public String toString() {
return "TapdRespCustomFieldDataDTO{" +
"CustomFieldConfig=" + CustomFieldConfig +
'}';
}
} }
package com.gic.udesk.dto; package com.gic.udesk.dto;
import com.gic.commons.annotation.SkipNamingCheck;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -11,6 +13,7 @@ import java.util.Map; ...@@ -11,6 +13,7 @@ import java.util.Map;
* @author guojuxing
 * @author guojuxing

* @date 2019/12/23 3:32 PM
 * @date 2019/12/23 3:32 PM

*/ */
@SkipNamingCheck
public class TicketDTO implements Serializable{ public class TicketDTO implements Serializable{
private static final long serialVersionUID = 1316075989331518774L; private static final long serialVersionUID = 1316075989331518774L;
...@@ -494,4 +497,47 @@ public class TicketDTO implements Serializable{ ...@@ -494,4 +497,47 @@ public class TicketDTO implements Serializable{
public void setIm_sub_session_id(Integer im_sub_session_id) { public void setIm_sub_session_id(Integer im_sub_session_id) {
this.im_sub_session_id = im_sub_session_id; this.im_sub_session_id = im_sub_session_id;
} }
@Override
public String toString() {
return "TicketDTO{" +
"id=" + id +
", field_num='" + field_num + '\'' +
", subject='" + subject + '\'' +
", content='" + content + '\'' +
", content_type='" + content_type + '\'' +
", user_id=" + user_id +
", user_name='" + user_name + '\'' +
", user_email='" + user_email + '\'' +
", user_cellphone='" + user_cellphone + '\'' +
", organization_id=" + organization_id +
", assignee_id=" + assignee_id +
", assignee_name='" + assignee_name + '\'' +
", assignee_avatar='" + assignee_avatar + '\'' +
", user_group_id=" + user_group_id +
", user_group_name='" + user_group_name + '\'' +
", template_id=" + template_id +
", priority='" + priority + '\'' +
", status='" + status + '\'' +
", status_en='" + status_en + '\'' +
", platform='" + platform + '\'' +
", satisfaction='" + satisfaction + '\'' +
", custom_fields=" + custom_fields +
", tags='" + tags + '\'' +
", followers=" + followers +
", creator_id=" + creator_id +
", created_at='" + created_at + '\'' +
", updated_at='" + updated_at + '\'' +
", solving_at='" + solving_at + '\'' +
", resolved_at='" + resolved_at + '\'' +
", closed_at='" + closed_at + '\'' +
", solved_deadline='" + solved_deadline + '\'' +
", replied_at='" + replied_at + '\'' +
", agent_replied_at='" + agent_replied_at + '\'' +
", customer_replied_at='" + customer_replied_at + '\'' +
", replied_by='" + replied_by + '\'' +
", attachments=" + attachments +
", im_sub_session_id=" + im_sub_session_id +
'}';
}
} }
package com.gic.udesk.dto; package com.gic.udesk.dto;
import com.gic.commons.annotation.SkipNamingCheck;
import java.io.Serializable; import java.io.Serializable;
/** /**
* udesk客户回复 * udesk客户回复
...@@ -8,6 +10,7 @@ import java.io.Serializable; ...@@ -8,6 +10,7 @@ import java.io.Serializable;
* @author guojuxing
 * @author guojuxing

* @date 2019/12/23 3:34 PM
 * @date 2019/12/23 3:34 PM

*/ */
@SkipNamingCheck
public class UdeskAgentReplyDTO implements Serializable{ public class UdeskAgentReplyDTO implements Serializable{
private static final long serialVersionUID = -4964133303321416857L; private static final long serialVersionUID = -4964133303321416857L;
...@@ -75,4 +78,15 @@ public class UdeskAgentReplyDTO implements Serializable{ ...@@ -75,4 +78,15 @@ public class UdeskAgentReplyDTO implements Serializable{
public void setNew_reply(String new_reply) { public void setNew_reply(String new_reply) {
this.new_reply = new_reply; this.new_reply = new_reply;
} }
@Override
public String toString() {
return "UdeskAgentReplyDTO{" +
"id=" + id +
", num='" + num + '\'' +
", agent_id=" + agent_id +
", function_type='" + function_type + '\'' +
", new_reply='" + new_reply + '\'' +
'}';
}
} }
...@@ -36,4 +36,12 @@ public class UdeskCompanyDTO implements Serializable{ ...@@ -36,4 +36,12 @@ public class UdeskCompanyDTO implements Serializable{
public void setOrganization(OrganizationDTO organization) { public void setOrganization(OrganizationDTO organization) {
this.organization = organization; this.organization = organization;
} }
@Override
public String toString() {
return "UdeskCompanyDTO{" +
"code=" + code +
", organization=" + organization +
'}';
}
} }
...@@ -36,4 +36,12 @@ public class UdeskRespReplyDTO implements Serializable{ ...@@ -36,4 +36,12 @@ public class UdeskRespReplyDTO implements Serializable{
public void setData(Object data) { public void setData(Object data) {
this.data = data; this.data = data;
} }
@Override
public String toString() {
return "UdeskRespReplyDTO{" +
"code=" + code +
", data=" + data +
'}';
}
} }
...@@ -49,4 +49,13 @@ public class UdeskTicketDetailDTO implements Serializable{ ...@@ -49,4 +49,13 @@ public class UdeskTicketDetailDTO implements Serializable{
public void setTicket(TicketDTO ticket) { public void setTicket(TicketDTO ticket) {
this.ticket = ticket; this.ticket = ticket;
} }
@Override
public String toString() {
return "UdeskTicketDetailDTO{" +
"code=" + code +
", message='" + message + '\'' +
", ticket=" + ticket +
'}';
}
} }
...@@ -42,4 +42,13 @@ public class UdeskCustomFieldOptionDTO implements Serializable{ ...@@ -42,4 +42,13 @@ public class UdeskCustomFieldOptionDTO implements Serializable{
public void setSubs(List<UdeskCustomFieldOptionDTO> subs) { public void setSubs(List<UdeskCustomFieldOptionDTO> subs) {
this.subs = subs; this.subs = subs;
} }
@Override
public String toString() {
return "UdeskCustomFieldOptionDTO{" +
"title='" + title + '\'' +
", value='" + value + '\'' +
", subs=" + subs +
'}';
}
} }
...@@ -35,4 +35,12 @@ public class UdeskResCustomFieldDTO implements Serializable{ ...@@ -35,4 +35,12 @@ public class UdeskResCustomFieldDTO implements Serializable{
public void setFields(List<UdeskResCustomFieldDataDTO> fields) { public void setFields(List<UdeskResCustomFieldDataDTO> fields) {
this.fields = fields; this.fields = fields;
} }
@Override
public String toString() {
return "UdeskResCustomFieldDTO{" +
"code=" + code +
", fields=" + fields +
'}';
}
} }
package com.gic.udesk.dto.customfield; package com.gic.udesk.dto.customfield;
import com.gic.commons.annotation.SkipNamingCheck;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
...@@ -10,6 +12,7 @@ import java.util.List; ...@@ -10,6 +12,7 @@ import java.util.List;
* @author guojuxing
 * @author guojuxing

* @date 2019/12/25 10:11 AM
 * @date 2019/12/25 10:11 AM

*/ */
@SkipNamingCheck
public class UdeskResCustomFieldDataDTO implements Serializable{ public class UdeskResCustomFieldDataDTO implements Serializable{
private static final long serialVersionUID = -831985526535468454L; private static final long serialVersionUID = -831985526535468454L;
...@@ -121,4 +124,19 @@ public class UdeskResCustomFieldDataDTO implements Serializable{ ...@@ -121,4 +124,19 @@ public class UdeskResCustomFieldDataDTO implements Serializable{
public void setCalculate_result_type(String calculate_result_type) { public void setCalculate_result_type(String calculate_result_type) {
this.calculate_result_type = calculate_result_type; this.calculate_result_type = calculate_result_type;
} }
@Override
public String toString() {
return "UdeskResCustomFieldDataDTO{" +
"id=" + id +
", field_name='" + field_name + '\'' +
", field_label='" + field_label + '\'' +
", content_type='" + content_type + '\'' +
", comment='" + comment + '\'' +
", options=" + options +
", customer_permission='" + customer_permission + '\'' +
", agent_permission='" + agent_permission + '\'' +
", calculate_result_type='" + calculate_result_type + '\'' +
'}';
}
} }
package com.gic.udesk.dto.gic; package com.gic.udesk.dto.gic;
import com.gic.commons.annotation.SkipNamingCheck;
import java.io.Serializable; import java.io.Serializable;
import java.util.Map; import java.util.Map;
...@@ -10,6 +12,7 @@ import java.util.Map; ...@@ -10,6 +12,7 @@ import java.util.Map;
* @author guojuxing
 * @author guojuxing

* @date 2019/12/26 4:11 PM
 * @date 2019/12/26 4:11 PM

*/ */
@SkipNamingCheck
public class GicTicketDTO implements Serializable{ public class GicTicketDTO implements Serializable{
private static final long serialVersionUID = -478265380664580136L; private static final long serialVersionUID = -478265380664580136L;
...@@ -166,4 +169,23 @@ public class GicTicketDTO implements Serializable{ ...@@ -166,4 +169,23 @@ public class GicTicketDTO implements Serializable{
public void setType_content(String type_content) { public void setType_content(String type_content) {
this.type_content = type_content; this.type_content = type_content;
} }
@Override
public String toString() {
return "GicTicketDTO{" +
"businessModuleType=" + businessModuleType +
", type='" + type + '\'' +
", type_content='" + type_content + '\'' +
", subject='" + subject + '\'' +
", content='" + content + '\'' +
", status='" + status + '\'' +
", template_id=" + template_id +
", ticketFieldJsonStr='" + ticketFieldJsonStr + '\'' +
", ticket_field=" + ticket_field +
", gicEnterpriseId=" + gicEnterpriseId +
", gicUserId=" + gicUserId +
", gicUserName='" + gicUserName + '\'' +
", gicEnterpriseName='" + gicEnterpriseName + '\'' +
'}';
}
} }
package com.gic.udesk.dto.gic; package com.gic.udesk.dto.gic;
import com.gic.commons.annotation.SkipNamingCheck;
import java.io.Serializable; import java.io.Serializable;
/** /**
* 工单创建返回信息 * 工单创建返回信息
...@@ -8,6 +10,7 @@ import java.io.Serializable; ...@@ -8,6 +10,7 @@ import java.io.Serializable;
* @author guojuxing
 * @author guojuxing

* @date 2019/12/26 4:48 PM
 * @date 2019/12/26 4:48 PM

*/ */
@SkipNamingCheck
public class TicketCreateResDTO implements Serializable{ public class TicketCreateResDTO implements Serializable{
private static final long serialVersionUID = 5033595896326990325L; private static final long serialVersionUID = 5033595896326990325L;
...@@ -49,4 +52,13 @@ public class TicketCreateResDTO implements Serializable{ ...@@ -49,4 +52,13 @@ public class TicketCreateResDTO implements Serializable{
public void setTicket_id(Integer ticket_id) { public void setTicket_id(Integer ticket_id) {
this.ticket_id = ticket_id; this.ticket_id = ticket_id;
} }
@Override
public String toString() {
return "TicketCreateResDTO{" +
"code=" + code +
", message='" + message + '\'' +
", ticket_id=" + ticket_id +
'}';
}
} }
package com.gic.udesk.dto.gic; package com.gic.udesk.dto.gic;
import com.gic.commons.annotation.SkipNamingCheck;
import java.io.Serializable; import java.io.Serializable;
/** /**
* 附件相关内容 * 附件相关内容
...@@ -8,6 +10,7 @@ import java.io.Serializable; ...@@ -8,6 +10,7 @@ import java.io.Serializable;
* @author guojuxing
 * @author guojuxing

* @date 2019/12/26 5:55 PM
 * @date 2019/12/26 5:55 PM

*/ */
@SkipNamingCheck
public class TicketRepliesAttachmentsDTO implements Serializable{ public class TicketRepliesAttachmentsDTO implements Serializable{
private static final long serialVersionUID = 3349387219138928011L; private static final long serialVersionUID = 3349387219138928011L;
...@@ -47,4 +50,13 @@ public class TicketRepliesAttachmentsDTO implements Serializable{ ...@@ -47,4 +50,13 @@ public class TicketRepliesAttachmentsDTO implements Serializable{
public void setFile_size(Integer file_size) { public void setFile_size(Integer file_size) {
this.file_size = file_size; this.file_size = file_size;
} }
@Override
public String toString() {
return "TicketRepliesAttachmentsDTO{" +
"url='" + url + '\'' +
", file_name='" + file_name + '\'' +
", file_size=" + file_size +
'}';
}
} }
package com.gic.udesk.dto.gic; package com.gic.udesk.dto.gic;
import com.gic.commons.annotation.SkipNamingCheck;
import java.io.Serializable; import java.io.Serializable;
/** /**
* 回复者信息 * 回复者信息
...@@ -8,6 +10,7 @@ import java.io.Serializable; ...@@ -8,6 +10,7 @@ import java.io.Serializable;
* @author guojuxing
 * @author guojuxing

* @date 2019/12/26 5:57 PM
 * @date 2019/12/26 5:57 PM

*/ */
@SkipNamingCheck
public class TicketRepliesAuthorDTO implements Serializable{ public class TicketRepliesAuthorDTO implements Serializable{
private static final long serialVersionUID = 6306676280816731296L; private static final long serialVersionUID = 6306676280816731296L;
...@@ -71,4 +74,15 @@ public class TicketRepliesAuthorDTO implements Serializable{ ...@@ -71,4 +74,15 @@ public class TicketRepliesAuthorDTO implements Serializable{
public void setNick_name(String nick_name) { public void setNick_name(String nick_name) {
this.nick_name = nick_name; this.nick_name = nick_name;
} }
@Override
public String toString() {
return "TicketRepliesAuthorDTO{" +
"id=" + id +
", user_type='" + user_type + '\'' +
", email='" + email + '\'' +
", avatar='" + avatar + '\'' +
", nick_name='" + nick_name + '\'' +
'}';
}
} }
...@@ -49,4 +49,13 @@ public class TicketRepliesDTO implements Serializable{ ...@@ -49,4 +49,13 @@ public class TicketRepliesDTO implements Serializable{
public void setReplies(List<TicketRepliesDataDTO> replies) { public void setReplies(List<TicketRepliesDataDTO> replies) {
this.replies = replies; this.replies = replies;
} }
@Override
public String toString() {
return "TicketRepliesDTO{" +
"code=" + code +
", meta=" + meta +
", replies=" + replies +
'}';
}
} }
package com.gic.udesk.dto.gic; package com.gic.udesk.dto.gic;
import com.gic.commons.annotation.SkipNamingCheck;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
...@@ -11,6 +13,7 @@ import java.util.List; ...@@ -11,6 +13,7 @@ import java.util.List;
* @author guojuxing
 * @author guojuxing

* @date 2019/12/26 5:52 PM
 * @date 2019/12/26 5:52 PM

*/ */
@SkipNamingCheck
public class TicketRepliesDataDTO implements Serializable{ public class TicketRepliesDataDTO implements Serializable{
private static final long serialVersionUID = -4610262435451102033L; private static final long serialVersionUID = -4610262435451102033L;
...@@ -114,4 +117,18 @@ public class TicketRepliesDataDTO implements Serializable{ ...@@ -114,4 +117,18 @@ public class TicketRepliesDataDTO implements Serializable{
public void setAuthor(TicketRepliesAuthorDTO author) { public void setAuthor(TicketRepliesAuthorDTO author) {
this.author = author; this.author = author;
} }
@Override
public String toString() {
return "TicketRepliesDataDTO{" +
"id=" + id +
", content='" + content + '\'' +
", content_format='" + content_format + '\'' +
", created_at=" + created_at +
", function_type='" + function_type + '\'' +
", cc='" + cc + '\'' +
", attachments=" + attachments +
", author=" + author +
'}';
}
} }
...@@ -2,7 +2,13 @@ package com.gic.udesk.dto.gic; ...@@ -2,7 +2,13 @@ package com.gic.udesk.dto.gic;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
/**
* gic提交工单
* @ClassName: UdeskEnterpriseDTO

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:06 AM

*/
public class UdeskEnterpriseDTO implements Serializable{ public class UdeskEnterpriseDTO implements Serializable{
private static final long serialVersionUID = -727703112120773752L; private static final long serialVersionUID = -727703112120773752L;
...@@ -136,4 +142,20 @@ public class UdeskEnterpriseDTO implements Serializable{ ...@@ -136,4 +142,20 @@ public class UdeskEnterpriseDTO implements Serializable{
public void setUpdateTime(Date updateTime) { public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime; this.updateTime = updateTime;
} }
@Override
public String toString() {
return "UdeskEnterpriseDTO{" +
"id=" + id +
", businessModule='" + businessModule + '\'' +
", businessModuleName='" + businessModuleName + '\'' +
", businessType=" + businessType +
", ticketId=" + ticketId +
", ticketNum='" + ticketNum + '\'' +
", ticketTitle='" + ticketTitle + '\'' +
", ticketStatus='" + ticketStatus + '\'' +
", createTime=" + createTime +
", updateTime=" + updateTime +
'}';
}
} }
...@@ -63,4 +63,14 @@ public class UdeskResTemplatesDTO implements Serializable{ ...@@ -63,4 +63,14 @@ public class UdeskResTemplatesDTO implements Serializable{
public void setTemplates(List<UdeskResTemplatesDataDTO> templates) { public void setTemplates(List<UdeskResTemplatesDataDTO> templates) {
this.templates = templates; this.templates = templates;
} }
@Override
public String toString() {
return "UdeskResTemplatesDTO{" +
"code=" + code +
", message='" + message + '\'' +
", count=" + count +
", templates=" + templates +
'}';
}
} }
package com.gic.udesk.dto.templates; package com.gic.udesk.dto.templates;
import com.gic.commons.annotation.SkipNamingCheck;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
...@@ -10,6 +12,7 @@ import java.util.List; ...@@ -10,6 +12,7 @@ import java.util.List;
* @author guojuxing
 * @author guojuxing

* @date 2019/12/24 5:56 PM
 * @date 2019/12/24 5:56 PM

*/ */
@SkipNamingCheck
public class UdeskResTemplatesDataDTO implements Serializable{ public class UdeskResTemplatesDataDTO implements Serializable{
private static final long serialVersionUID = 9123464445959278485L; private static final long serialVersionUID = 9123464445959278485L;
...@@ -63,4 +66,14 @@ public class UdeskResTemplatesDataDTO implements Serializable{ ...@@ -63,4 +66,14 @@ public class UdeskResTemplatesDataDTO implements Serializable{
public void setCustom_fields(List<UdeskTemplatesCustomFieldDTO> custom_fields) { public void setCustom_fields(List<UdeskTemplatesCustomFieldDTO> custom_fields) {
this.custom_fields = custom_fields; this.custom_fields = custom_fields;
} }
@Override
public String toString() {
return "UdeskResTemplatesDataDTO{" +
"id=" + id +
", name='" + name + '\'' +
", description='" + description + '\'' +
", custom_fields=" + custom_fields +
'}';
}
} }
package com.gic.udesk.dto.templates; package com.gic.udesk.dto.templates;
import com.gic.commons.annotation.SkipNamingCheck;
import java.io.Serializable; import java.io.Serializable;
/** /**
* 工单模板中的自定义字段 * 工单模板中的自定义字段
...@@ -8,6 +10,7 @@ import java.io.Serializable; ...@@ -8,6 +10,7 @@ import java.io.Serializable;
* @author guojuxing
 * @author guojuxing

* @date 2019/12/24 5:58 PM
 * @date 2019/12/24 5:58 PM

*/ */
@SkipNamingCheck
public class UdeskTemplatesCustomFieldDTO implements Serializable{ public class UdeskTemplatesCustomFieldDTO implements Serializable{
private static final long serialVersionUID = -7814797970459011762L; private static final long serialVersionUID = -7814797970459011762L;
/** /**
...@@ -72,4 +75,15 @@ public class UdeskTemplatesCustomFieldDTO implements Serializable{ ...@@ -72,4 +75,15 @@ public class UdeskTemplatesCustomFieldDTO implements Serializable{
public void setField_comment(String field_comment) { public void setField_comment(String field_comment) {
this.field_comment = field_comment; this.field_comment = field_comment;
} }
@Override
public String toString() {
return "UdeskTemplatesCustomFieldDTO{" +
"field_id='" + field_id + '\'' +
", field_name='" + field_name + '\'' +
", field_title='" + field_title + '\'' +
", field_type='" + field_type + '\'' +
", field_comment='" + field_comment + '\'' +
'}';
}
} }
...@@ -34,4 +34,12 @@ public class UploadFileDTO implements Serializable{ ...@@ -34,4 +34,12 @@ public class UploadFileDTO implements Serializable{
public void setMessage(String message) { public void setMessage(String message) {
this.message = message; this.message = message;
} }
@Override
public String toString() {
return "UploadFileDTO{" +
"code=" + code +
", message='" + message + '\'' +
'}';
}
} }
package com.gic.udesk.service; package com.gic.udesk.service;
import com.gic.api.base.commons.ServiceResponse; import com.gic.api.base.commons.ServiceResponse;
/**
* 监听tapd消息
* @ClassName: TapdMessageApiService

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:01 AM

*/
public interface TapdMessageApiService { public interface TapdMessageApiService {
/** /**
* tapd监听消息处理 * tapd监听消息处理
......
...@@ -8,7 +8,13 @@ import com.gic.udesk.dto.customfield.UdeskCustomFieldOptionDTO; ...@@ -8,7 +8,13 @@ import com.gic.udesk.dto.customfield.UdeskCustomFieldOptionDTO;
import com.gic.udesk.dto.customfield.UdeskResCustomFieldDataDTO; import com.gic.udesk.dto.customfield.UdeskResCustomFieldDataDTO;
import com.gic.udesk.dto.templates.UdeskResTemplatesDTO; import com.gic.udesk.dto.templates.UdeskResTemplatesDTO;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
/**
* 异常接口
* @ClassName: UdeskBaseApiService

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:07 AM

*/
public interface UdeskBaseApiService { public interface UdeskBaseApiService {
/** /**
......
...@@ -2,7 +2,13 @@ package com.gic.udesk.service; ...@@ -2,7 +2,13 @@ package com.gic.udesk.service;
import com.gic.api.base.commons.ServiceResponse; import com.gic.api.base.commons.ServiceResponse;
import com.gic.udesk.dto.UdeskMessageDTO; import com.gic.udesk.dto.UdeskMessageDTO;
/**
* 监听udesk消息
* @ClassName: UdeskMessageApiService

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:00 AM

*/
public interface UdeskMessageApiService { public interface UdeskMessageApiService {
/** /**
...@@ -15,5 +21,13 @@ public interface UdeskMessageApiService { ...@@ -15,5 +21,13 @@ public interface UdeskMessageApiService {

 */ 
 */
ServiceResponse<String> saveUdeskMessage(UdeskMessageDTO messageDTO); ServiceResponse<String> saveUdeskMessage(UdeskMessageDTO messageDTO);
/**
* 监听处理udesk消息(不同步到tapd)
* @Title: saveUdeskMessageNoTapd

* @Description:

* @author guojuxing
* @param messageDTO

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


*/
ServiceResponse<String> saveUdeskMessageNoTapd(UdeskMessageDTO messageDTO); ServiceResponse<String> saveUdeskMessageNoTapd(UdeskMessageDTO messageDTO);
} }
...@@ -2,7 +2,13 @@ package com.gic.udesk.dao.mapper; ...@@ -2,7 +2,13 @@ package com.gic.udesk.dao.mapper;
import com.gic.udesk.entity.TabUdeskCustomers; import com.gic.udesk.entity.TabUdeskCustomers;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
/**
* gic客户工单
* @ClassName: TabUdeskCustomersMapper

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:25 AM

*/
public interface TabUdeskCustomersMapper { public interface TabUdeskCustomersMapper {
/** /**
* 根据主键删除 * 根据主键删除
...@@ -52,5 +58,11 @@ public interface TabUdeskCustomersMapper { ...@@ -52,5 +58,11 @@ public interface TabUdeskCustomersMapper {
*/ */
int updateByPrimaryKey(TabUdeskCustomers record); int updateByPrimaryKey(TabUdeskCustomers record);
/**
* countCustomerId
* @param enterpriseId
* @param userId
* @return
*/
TabUdeskCustomers countCustomerId(@Param("enterpriseId") Integer enterpriseId, @Param("userId") Integer userId); TabUdeskCustomers countCustomerId(@Param("enterpriseId") Integer enterpriseId, @Param("userId") Integer userId);
} }
\ No newline at end of file
...@@ -5,7 +5,13 @@ import com.gic.udesk.qo.TicketListQO; ...@@ -5,7 +5,13 @@ import com.gic.udesk.qo.TicketListQO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
/**
* gic客户工单
* @ClassName: TabUdeskEnterpriseMapper

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:28 AM

*/
public interface TabUdeskEnterpriseMapper { public interface TabUdeskEnterpriseMapper {
/** /**
* 根据主键删除 * 根据主键删除
...@@ -31,6 +37,12 @@ public interface TabUdeskEnterpriseMapper { ...@@ -31,6 +37,12 @@ public interface TabUdeskEnterpriseMapper {
*/ */
int insertSelective(TabUdeskEnterprise record); int insertSelective(TabUdeskEnterprise record);
/**
* 更新udesk工单状态
* @param ticketId
* @param status
* @return
*/
int updateStatus(@Param("ticketId") Integer ticketId, @Param("status") String status); int updateStatus(@Param("ticketId") Integer ticketId, @Param("status") String status);
/** /**
......
package com.gic.udesk.dao.mapper; package com.gic.udesk.dao.mapper;
import com.gic.udesk.entity.TabUdeskException; import com.gic.udesk.entity.TabUdeskException;
/**
* 客服工单异常消息
* @ClassName: TabUdeskExceptionMapper

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:28 AM

*/
public interface TabUdeskExceptionMapper { public interface TabUdeskExceptionMapper {
/** /**
* 根据主键删除 * 根据主键删除
......
package com.gic.udesk.dao.mapper; package com.gic.udesk.dao.mapper;
import com.gic.udesk.entity.TabUdeskMessage; import com.gic.udesk.entity.TabUdeskMessage;
/**
* udesk消息
* @ClassName: TabUdeskMessageMapper

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:28 AM

*/
public interface TabUdeskMessageMapper { public interface TabUdeskMessageMapper {
/** /**
* 根据主键删除 * 根据主键删除
......
...@@ -4,7 +4,13 @@ import com.gic.udesk.entity.TabUdeskTapdRel; ...@@ -4,7 +4,13 @@ import com.gic.udesk.entity.TabUdeskTapdRel;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
/**
* udesk和tapd关联字段接口
* @ClassName: TabUdeskTapdRelMapper

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:12 AM

*/
public interface TabUdeskTapdRelMapper { public interface TabUdeskTapdRelMapper {
/** /**
* 根据主键删除 * 根据主键删除
...@@ -64,5 +70,14 @@ public interface TabUdeskTapdRelMapper { ...@@ -64,5 +70,14 @@ public interface TabUdeskTapdRelMapper {

 */ 
 */
List<TabUdeskTapdRel> list(TabUdeskTapdRel record); List<TabUdeskTapdRel> list(TabUdeskTapdRel record);
int deleteByWorkspaceId(@Param("relType") int relType, @Param("workspace_id") String workspace_id); /**
* 根据项目删除
* @Title: deleteByWorkspaceId

* @Description:

* @author guojuxing
* @param relType
* @param workspaceId

* @return int


*/
int deleteByWorkspaceId(@Param("relType") int relType, @Param("workspace_id") String workspaceId);
} }
\ No newline at end of file
...@@ -3,7 +3,13 @@ package com.gic.udesk.dao.mapper; ...@@ -3,7 +3,13 @@ package com.gic.udesk.dao.mapper;
import com.gic.udesk.entity.TabUdeskTicket; import com.gic.udesk.entity.TabUdeskTicket;
import java.util.List; import java.util.List;
/**
* 客服工单
* @ClassName: TabUdeskTicketMapper

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:28 AM

*/
public interface TabUdeskTicketMapper { public interface TabUdeskTicketMapper {
/** /**
* 根据主键删除 * 根据主键删除
...@@ -53,5 +59,10 @@ public interface TabUdeskTicketMapper { ...@@ -53,5 +59,10 @@ public interface TabUdeskTicketMapper {
*/ */
int updateByPrimaryKey(TabUdeskTicket record); int updateByPrimaryKey(TabUdeskTicket record);
/**
* 查询客服工单
* @param params
* @return
*/
List<TabUdeskTicket> list(TabUdeskTicket params); List<TabUdeskTicket> list(TabUdeskTicket params);
} }
\ No newline at end of file
...@@ -3,7 +3,11 @@ package com.gic.udesk.entity; ...@@ -3,7 +3,11 @@ package com.gic.udesk.entity;
import java.util.Date; import java.util.Date;
/** /**
* tab_udesk_customers * gic客户工单
* @ClassName: TabUdeskCustomers

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:35 AM

*/ */
public class TabUdeskCustomers { public class TabUdeskCustomers {
/** /**
......
...@@ -3,7 +3,11 @@ package com.gic.udesk.entity; ...@@ -3,7 +3,11 @@ package com.gic.udesk.entity;
import java.util.Date; import java.util.Date;
/** /**
* tab_udesk_enterprise * gic客户工单
* @ClassName: TabUdeskEnterprise

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:29 AM

*/ */
public class TabUdeskEnterprise { public class TabUdeskEnterprise {
/** /**
......
...@@ -3,7 +3,11 @@ package com.gic.udesk.entity; ...@@ -3,7 +3,11 @@ package com.gic.udesk.entity;
import java.util.Date; import java.util.Date;
/** /**
* tab_udesk_exception * udesk接口异常信息
* @ClassName: TabUdeskException

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:29 AM

*/ */
public class TabUdeskException { public class TabUdeskException {
/** /**
......
...@@ -3,7 +3,11 @@ package com.gic.udesk.entity; ...@@ -3,7 +3,11 @@ package com.gic.udesk.entity;
import java.util.Date; import java.util.Date;
/** /**
* tab_udesk_message * udesk消息
* @ClassName: TabUdeskMessage

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:34 AM

*/ */
public class TabUdeskMessage { public class TabUdeskMessage {
/** /**
......
...@@ -5,7 +5,11 @@ import com.gic.udesk.utils.UdeskConstant; ...@@ -5,7 +5,11 @@ import com.gic.udesk.utils.UdeskConstant;
import java.util.Date; import java.util.Date;
/** /**
* tab_udesk_tapd_rel * udesk和tapd关联字典
* @ClassName: TabUdeskTapdRel

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:33 AM

*/ */
public class TabUdeskTapdRel { public class TabUdeskTapdRel {
/** /**
......
...@@ -3,7 +3,11 @@ package com.gic.udesk.entity; ...@@ -3,7 +3,11 @@ package com.gic.udesk.entity;
import java.util.Date; import java.util.Date;
/** /**
* tab_udesk_ticket * 客服工单
* @ClassName: TabUdeskTicket

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:29 AM

*/ */
public class TabUdeskTicket { public class TabUdeskTicket {
/** /**
......
package com.gic.udesk.service; package com.gic.udesk.service;
import com.gic.udesk.entity.TabUdeskCustomers; import com.gic.udesk.entity.TabUdeskCustomers;
/**
*
* @ClassName: UdeskCustomersService

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:21 AM

*/
public interface UdeskCustomersService { public interface UdeskCustomersService {
/**
* save
* @Title: save

* @Description:

* @author guojuxing
* @param enterpriseId
* @param customerId
* @param userId

* @return int


*/
int save(Integer enterpriseId, Integer customerId, Integer userId); int save(Integer enterpriseId, Integer customerId, Integer userId);
/**
* hasCustomerId
* @Title: hasCustomerId

* @Description:

* @author guojuxing
* @param enterpriseId
* @param userId

* @return com.gic.udesk.entity.TabUdeskCustomers


*/
TabUdeskCustomers hasCustomerId(Integer enterpriseId, Integer userId); TabUdeskCustomers hasCustomerId(Integer enterpriseId, Integer userId);
} }
...@@ -3,7 +3,13 @@ package com.gic.udesk.service; ...@@ -3,7 +3,13 @@ package com.gic.udesk.service;
import com.gic.udesk.entity.TabUdeskEnterprise; import com.gic.udesk.entity.TabUdeskEnterprise;
import com.gic.udesk.qo.TicketListQO; import com.gic.udesk.qo.TicketListQO;
import com.github.pagehelper.Page; import com.github.pagehelper.Page;
/**
* gic客户工单
* @ClassName: UdeskEnterpriseService

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:26 AM

*/
public interface UdeskEnterpriseService { public interface UdeskEnterpriseService {
/** /**
...@@ -26,7 +32,12 @@ public interface UdeskEnterpriseService { ...@@ -26,7 +32,12 @@ public interface UdeskEnterpriseService {

*/ 
*/
int close(Integer ticketId); int close(Integer ticketId);
/**
* 更新gic客户工单状态
* @param ticketId
* @param status
* @return
*/
int updateStatus(Integer ticketId, String status); int updateStatus(Integer ticketId, String status);
/** /**
......
package com.gic.udesk.service; package com.gic.udesk.service;
import com.gic.udesk.entity.TabUdeskException; import com.gic.udesk.entity.TabUdeskException;
/**
* 客服工单异常信息
* @ClassName: UdeskExceptionService

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:29 AM

*/
public interface UdeskExceptionService { public interface UdeskExceptionService {
/** /**
......
package com.gic.udesk.service; package com.gic.udesk.service;
import com.gic.udesk.entity.TabUdeskMessage; import com.gic.udesk.entity.TabUdeskMessage;
/**
* udesk消息
* @ClassName: UdeskMessageService

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:30 AM

*/
public interface UdeskMessageService { public interface UdeskMessageService {
/** /**
* 新增消息 * 新增消息
...@@ -13,5 +19,10 @@ public interface UdeskMessageService { ...@@ -13,5 +19,10 @@ public interface UdeskMessageService {

 */ 
 */
int save(TabUdeskMessage record); int save(TabUdeskMessage record);
/**
* 更新消息
* @param record
* @return
*/
int update(TabUdeskMessage record); int update(TabUdeskMessage record);
} }
...@@ -3,7 +3,13 @@ package com.gic.udesk.service; ...@@ -3,7 +3,13 @@ package com.gic.udesk.service;
import com.gic.udesk.entity.TabUdeskTapdRel; import com.gic.udesk.entity.TabUdeskTapdRel;
import java.util.List; import java.util.List;
/**
* udesk和tapd关联字典
* @ClassName: UdeskTapdRelService

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:17 AM

*/
public interface UdeskTapdRelService { public interface UdeskTapdRelService {
/** /**
...@@ -11,6 +17,7 @@ public interface UdeskTapdRelService { ...@@ -11,6 +17,7 @@ public interface UdeskTapdRelService {
* @Title: list
 * @Title: list

* @Description: * @Description:

 * @author guojuxing 
 
 * @author guojuxing 

* @param record
* @return java.util.List<com.gic.udesk.entity.TabUdeskTapdRel>
 * @return java.util.List<com.gic.udesk.entity.TabUdeskTapdRel>


 */ 
 */
List<TabUdeskTapdRel> list(TabUdeskTapdRel record); List<TabUdeskTapdRel> list(TabUdeskTapdRel record);
...@@ -31,8 +38,8 @@ public interface UdeskTapdRelService { ...@@ -31,8 +38,8 @@ public interface UdeskTapdRelService {
* @Description: * @Description:

 * @author guojuxing 
 * @author guojuxing
* @param relType 关联类型 * @param relType 关联类型
* @param workspace_id
 tapd项目id * @param workspaceId
 tapd项目id
* @return int
 * @return int


 */ 
 */
int deleteByWorkspaceId(int relType, String workspace_id); int deleteByWorkspaceId(int relType, String workspaceId);
} }
...@@ -3,10 +3,32 @@ package com.gic.udesk.service; ...@@ -3,10 +3,32 @@ package com.gic.udesk.service;
import com.gic.udesk.entity.TabUdeskTicket; import com.gic.udesk.entity.TabUdeskTicket;
import java.util.List; import java.util.List;
/**
* 客服工单接口
* @ClassName: UdeskTicketService

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:19 AM

*/
public interface UdeskTicketService { public interface UdeskTicketService {
/**
* save

* @Title: save

* @Description:

* @author guojuxing
* @param record

* @return int


*/
int save(TabUdeskTicket record); int save(TabUdeskTicket record);
/**
* update
* @Title: update

* @Description:

* @author guojuxing
* @param record

* @return int


*/
int update(TabUdeskTicket record); int update(TabUdeskTicket record);
/** /**
...@@ -18,6 +40,13 @@ public interface UdeskTicketService { ...@@ -18,6 +40,13 @@ public interface UdeskTicketService {
* @return com.gic.udesk.entity.TabUdeskTicket
 * @return com.gic.udesk.entity.TabUdeskTicket


 */ 
 */
TabUdeskTicket getById(Integer id); TabUdeskTicket getById(Integer id);
/**
* list

* @Title: list

* @Description:

* @author guojuxing
* @param params

* @return java.util.List<com.gic.udesk.entity.TabUdeskTicket>


*/
List<TabUdeskTicket> list(TabUdeskTicket params); List<TabUdeskTicket> list(TabUdeskTicket params);
} }
...@@ -7,7 +7,13 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -7,7 +7,13 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Date; import java.util.Date;
/**
* gic客户工单
* @ClassName: UdeskCustomersServiceImpl

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:35 AM

*/
@Service("udeskCustomersService") @Service("udeskCustomersService")
public class UdeskCustomersServiceImpl implements UdeskCustomersService{ public class UdeskCustomersServiceImpl implements UdeskCustomersService{
@Autowired @Autowired
......
...@@ -12,7 +12,13 @@ import org.springframework.stereotype.Service; ...@@ -12,7 +12,13 @@ import org.springframework.stereotype.Service;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
/**
* gic工单
* @ClassName: UdeskEnterpriseServiceImpl

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:36 AM

*/
@Service("udeskEnterpriseService") @Service("udeskEnterpriseService")
public class UdeskEnterpriseServiceImpl implements UdeskEnterpriseService{ public class UdeskEnterpriseServiceImpl implements UdeskEnterpriseService{
@Autowired @Autowired
......
...@@ -7,7 +7,13 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -7,7 +7,13 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Date; import java.util.Date;
/**
* 客服工单异常信息
* @ClassName: UdeskExceptionServiceImpl

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:30 AM

*/
@Service("udeskExceptionService") @Service("udeskExceptionService")
public class UdeskExceptionServiceImpl implements UdeskExceptionService{ public class UdeskExceptionServiceImpl implements UdeskExceptionService{
@Autowired @Autowired
......
...@@ -7,7 +7,13 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -7,7 +7,13 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Date; import java.util.Date;
/**
* udesk消息
* @ClassName: UdeskMessageServiceImpl

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:30 AM

*/
@Service("udeskMessageService") @Service("udeskMessageService")
public class UdeskMessageServiceImpl implements UdeskMessageService{ public class UdeskMessageServiceImpl implements UdeskMessageService{
@Autowired @Autowired
......
...@@ -8,7 +8,13 @@ import org.springframework.stereotype.Service; ...@@ -8,7 +8,13 @@ import org.springframework.stereotype.Service;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
/**
* udesk和tapd关联字典
* @ClassName: UdeskTapdRelServiceImpl

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:35 AM

*/
@Service("udeskTapdRelService") @Service("udeskTapdRelService")
public class UdeskTapdRelServiceImpl implements UdeskTapdRelService{ public class UdeskTapdRelServiceImpl implements UdeskTapdRelService{
@Autowired @Autowired
...@@ -28,7 +34,7 @@ public class UdeskTapdRelServiceImpl implements UdeskTapdRelService{ ...@@ -28,7 +34,7 @@ public class UdeskTapdRelServiceImpl implements UdeskTapdRelService{
} }
@Override @Override
public int deleteByWorkspaceId(int relType, String workspace_id) { public int deleteByWorkspaceId(int relType, String workspaceId) {
return tabUdeskTapdRelMapper.deleteByWorkspaceId(relType, workspace_id); return tabUdeskTapdRelMapper.deleteByWorkspaceId(relType, workspaceId);
} }
} }
...@@ -8,7 +8,13 @@ import org.springframework.stereotype.Service; ...@@ -8,7 +8,13 @@ import org.springframework.stereotype.Service;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
/**
* 客服工单
* @ClassName: UdeskTicketServiceImpl

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:35 AM

*/
@Service("udeskTicketService") @Service("udeskTicketService")
public class UdeskTicketServiceImpl implements UdeskTicketService{ public class UdeskTicketServiceImpl implements UdeskTicketService{
@Autowired @Autowired
......
...@@ -30,7 +30,13 @@ import java.util.ArrayList; ...@@ -30,7 +30,13 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
/**
* gic工单
* @ClassName: GicTicketApiServiceImpl

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:41 AM

*/
@Service("gicTicketApiService") @Service("gicTicketApiService")
public class GicTicketApiServiceImpl implements GicTicketApiService{ public class GicTicketApiServiceImpl implements GicTicketApiService{
private static final Logger LOGGER = LogManager.getLogger(GicTicketApiServiceImpl.class); private static final Logger LOGGER = LogManager.getLogger(GicTicketApiServiceImpl.class);
...@@ -74,7 +80,6 @@ public class GicTicketApiServiceImpl implements GicTicketApiService{ ...@@ -74,7 +80,6 @@ public class GicTicketApiServiceImpl implements GicTicketApiService{
} else { } else {
gicTicketDTO.setTemplate_id(UdeskConstant.APP_MODULE_TEMPLATE_ID); gicTicketDTO.setTemplate_id(UdeskConstant.APP_MODULE_TEMPLATE_ID);
} }
//查询有无客户ID //查询有无客户ID
Integer gicEnterpriseId = gicTicketDTO.getGicEnterpriseId(); Integer gicEnterpriseId = gicTicketDTO.getGicEnterpriseId();
Integer gicUserId = gicTicketDTO.getGicUserId(); Integer gicUserId = gicTicketDTO.getGicUserId();
...@@ -92,8 +97,7 @@ public class GicTicketApiServiceImpl implements GicTicketApiService{ ...@@ -92,8 +97,7 @@ public class GicTicketApiServiceImpl implements GicTicketApiService{
customerSub.put("nick_name", gicUserName); customerSub.put("nick_name", gicUserName);
customer.put("customer", customerSub); customer.put("customer", customerSub);
LOGGER.info("gic新建udesk客户,内容为:{}", customer.toJSONString()); LOGGER.info("gic新建udesk客户,内容为:{}", customer.toJSONString());
String customerStr = UdeskHttpClientUtil String customerStr = UdeskHttpClientUtil.postUdeskJsonFromJson(CUSTOMERS, customer.toJSONString());
.postUdeskJsonFromJson(CUSTOMERS, customer.toJSONString());
LOGGER.info("gic新建udesk客户,返回为:{}", customerStr); LOGGER.info("gic新建udesk客户,返回为:{}", customerStr);
JSONObject customerRes = JSONObject.parseObject(customerStr); JSONObject customerRes = JSONObject.parseObject(customerStr);
if (customerRes != null) { if (customerRes != null) {
...@@ -101,10 +105,8 @@ public class GicTicketApiServiceImpl implements GicTicketApiService{ ...@@ -101,10 +105,8 @@ public class GicTicketApiServiceImpl implements GicTicketApiService{
JSONObject customerObj = customerRes.getJSONObject("customer"); JSONObject customerObj = customerRes.getJSONObject("customer");
if (code == UdeskConstant.UDESK_SUCCESS_CODE) { if (code == UdeskConstant.UDESK_SUCCESS_CODE) {
int customerId = customerObj.getIntValue("id"); int customerId = customerObj.getIntValue("id");
gicTicketDTO.setType("customer_id"); gicTicketDTO.setType("customer_id");
gicTicketDTO.setType_content(customerId + ""); gicTicketDTO.setType_content(customerId + "");
//保存到 //保存到
udeskCustomersService.save(gicEnterpriseId, customerId, gicUserId); udeskCustomersService.save(gicEnterpriseId, customerId, gicUserId);
} else { } else {
...@@ -112,13 +114,11 @@ public class GicTicketApiServiceImpl implements GicTicketApiService{ ...@@ -112,13 +114,11 @@ public class GicTicketApiServiceImpl implements GicTicketApiService{
} }
} }
} }
Map<String, Object> paramMap = new HashMap<>(4); Map<String, Object> paramMap = new HashMap<>(4);
paramMap.put("ticket", gicTicketDTO); paramMap.put("ticket", gicTicketDTO);
String params = JSON.toJSONString(paramMap); String params = JSON.toJSONString(paramMap);
LOGGER.info("gic新建udesk工单,内容为:{}", params); LOGGER.info("gic新建udesk工单,内容为:{}", params);
String respStr = UdeskHttpClientUtil String respStr = UdeskHttpClientUtil.postUdeskJsonFromJson(UDESK_CREATE_TICKET, params);
.postUdeskJsonFromJson(UDESK_CREATE_TICKET, params);
LOGGER.info("gic新建udesk工单,工单返回为:{}", respStr); LOGGER.info("gic新建udesk工单,工单返回为:{}", respStr);
TicketCreateResDTO createResDTO = JSON.parseObject(respStr, TicketCreateResDTO.class); TicketCreateResDTO createResDTO = JSON.parseObject(respStr, TicketCreateResDTO.class);
if (createResDTO != null && createResDTO.getCode() == UdeskConstant.UDESK_SUCCESS_CODE) { if (createResDTO != null && createResDTO.getCode() == UdeskConstant.UDESK_SUCCESS_CODE) {
...@@ -127,26 +127,7 @@ public class GicTicketApiServiceImpl implements GicTicketApiService{ ...@@ -127,26 +127,7 @@ public class GicTicketApiServiceImpl implements GicTicketApiService{
String detailStr = this.getUdeskTicketDetail(ticketId.toString()); String detailStr = this.getUdeskTicketDetail(ticketId.toString());
UdeskTicketDetailDTO detail = JSON.parseObject(detailStr, UdeskTicketDetailDTO.class); UdeskTicketDetailDTO detail = JSON.parseObject(detailStr, UdeskTicketDetailDTO.class);
if (detail.getCode() == UdeskConstant.UDESK_SUCCESS_CODE) { if (detail.getCode() == UdeskConstant.UDESK_SUCCESS_CODE) {
TabUdeskEnterprise record = new TabUdeskEnterprise(); udeskEnterpriseService.save(setUdeskEnterprise(ticketId, gicEnterpriseId, detail, gicTicketDTO));
//工单ID
record.setTicketId(ticketId);
record.setEnterpriseId(gicEnterpriseId);
//工单编号
record.setTicketNum(detail.getTicket().getField_num());
//工单标题
record.setTicketTitle(gicTicketDTO.getSubject());
//业务模块类型 1:基础模块 2:应用模块
record.setBusinessType(gicTicketDTO.getBusinessModuleType());
//业务模块ID
if (businessModuleType.intValue() == 1) {
String businessModuleValue = gicTicketDTO.getTicket_field().get(UdeskConstant.GIC_BASE_MODULE_SELECT);
record.setBusinessModule(businessModuleValue);
record.setBusinessModuleName(getBusinessModuleName(businessModuleValue));
} else {
record.setBusinessModule(gicTicketDTO.getTicket_field().get(UdeskConstant.APP_MODULE_NAME));
record.setBusinessModuleName(gicTicketDTO.getTicket_field().get(UdeskConstant.APP_MODULE_NAME));
}
udeskEnterpriseService.save(record);
return ServiceResponse.success(ticketId); return ServiceResponse.success(ticketId);
} else { } else {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), detail.getMessage()); return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), detail.getMessage());
...@@ -156,6 +137,30 @@ public class GicTicketApiServiceImpl implements GicTicketApiService{ ...@@ -156,6 +137,30 @@ public class GicTicketApiServiceImpl implements GicTicketApiService{
} }
} }
private TabUdeskEnterprise setUdeskEnterprise(Integer ticketId, Integer gicEnterpriseId, UdeskTicketDetailDTO detail, GicTicketDTO gicTicketDTO) {
Integer businessModuleType = gicTicketDTO.getBusinessModuleType();
TabUdeskEnterprise record = new TabUdeskEnterprise();
//工单ID
record.setTicketId(ticketId);
record.setEnterpriseId(gicEnterpriseId);
//工单编号
record.setTicketNum(detail.getTicket().getField_num());
//工单标题
record.setTicketTitle(gicTicketDTO.getSubject());
//业务模块类型 1:基础模块 2:应用模块
record.setBusinessType(gicTicketDTO.getBusinessModuleType());
//业务模块ID
if (businessModuleType.intValue() == 1) {
String businessModuleValue = gicTicketDTO.getTicket_field().get(UdeskConstant.GIC_BASE_MODULE_SELECT);
record.setBusinessModule(businessModuleValue);
record.setBusinessModuleName(getBusinessModuleName(businessModuleValue));
} else {
record.setBusinessModule(gicTicketDTO.getTicket_field().get(UdeskConstant.APP_MODULE_NAME));
record.setBusinessModuleName(gicTicketDTO.getTicket_field().get(UdeskConstant.APP_MODULE_NAME));
}
return record;
}
@Override @Override
public ServiceResponse<Page<UdeskEnterpriseDTO>> page(TicketListQO params) { public ServiceResponse<Page<UdeskEnterpriseDTO>> page(TicketListQO params) {
com.github.pagehelper.Page<TabUdeskEnterprise> page = udeskEnterpriseService.page(params); com.github.pagehelper.Page<TabUdeskEnterprise> page = udeskEnterpriseService.page(params);
...@@ -245,20 +250,20 @@ public class GicTicketApiServiceImpl implements GicTicketApiService{ ...@@ -245,20 +250,20 @@ public class GicTicketApiServiceImpl implements GicTicketApiService{
private String getBusinessModuleName(String businessModule) { private String getBusinessModuleName(String businessModule) {
String[] arr = businessModule.split(","); String[] arr = businessModule.split(",");
//第一层级 //第一层级
String name1 = ""; String nameOfFirstMenu = "";
//第二层级 //第二层级
String name2 = ""; String nameOfSecondMenu = "";
ServiceResponse<List<UdeskCustomFieldOptionDTO>> result = udeskBaseApiService.getGicServiceSelect(); ServiceResponse<List<UdeskCustomFieldOptionDTO>> result = udeskBaseApiService.getGicServiceSelect();
if (result.isSuccess()) { if (result.isSuccess()) {
List<UdeskCustomFieldOptionDTO> list = result.getResult(); List<UdeskCustomFieldOptionDTO> list = result.getResult();
if (CollectionUtils.isNotEmpty(list)) { if (CollectionUtils.isNotEmpty(list)) {
for (UdeskCustomFieldOptionDTO optionDTO : list) { for (UdeskCustomFieldOptionDTO optionDTO : list) {
if (optionDTO.getValue().equals(arr[0])) { if (optionDTO.getValue().equals(arr[0])) {
name1 = optionDTO.getTitle(); nameOfFirstMenu = optionDTO.getTitle();
if (CollectionUtils.isNotEmpty(optionDTO.getSubs())) { if (CollectionUtils.isNotEmpty(optionDTO.getSubs())) {
for (UdeskCustomFieldOptionDTO subDTO : optionDTO.getSubs()) { for (UdeskCustomFieldOptionDTO subDTO : optionDTO.getSubs()) {
if (subDTO.getValue().equals(arr[1])) { if (subDTO.getValue().equals(arr[1])) {
name2 = subDTO.getTitle(); nameOfSecondMenu = subDTO.getTitle();
break; break;
} }
} }
...@@ -266,7 +271,7 @@ public class GicTicketApiServiceImpl implements GicTicketApiService{ ...@@ -266,7 +271,7 @@ public class GicTicketApiServiceImpl implements GicTicketApiService{
break; break;
} }
} }
return name1 + "/" + name2; return nameOfFirstMenu + "/" + nameOfSecondMenu;
} }
} }
return null; return null;
......
...@@ -20,7 +20,13 @@ import org.springframework.stereotype.Service; ...@@ -20,7 +20,13 @@ import org.springframework.stereotype.Service;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
/**
* tapd字典
* @ClassName: TapdConfigApiServiceImpl

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:34 AM

*/
@Service("tapdConfigApiService") @Service("tapdConfigApiService")
public class TapdConfigApiServiceImpl implements TapdConfigApiService { public class TapdConfigApiServiceImpl implements TapdConfigApiService {
private static Logger logger = LogManager.getLogger(TapdConfigApiServiceImpl.class); private static Logger logger = LogManager.getLogger(TapdConfigApiServiceImpl.class);
...@@ -52,29 +58,29 @@ public class TapdConfigApiServiceImpl implements TapdConfigApiService { ...@@ -52,29 +58,29 @@ public class TapdConfigApiServiceImpl implements TapdConfigApiService {
for (TapdRespCustomFieldDataDTO customField : customFieldData) { for (TapdRespCustomFieldDataDTO customField : customFieldData) {
TapdCustomFieldConfig customFieldConfig = customField.getCustomFieldConfig(); TapdCustomFieldConfig customFieldConfig = customField.getCustomFieldConfig();
String name = customFieldConfig.getName(); String name = customFieldConfig.getName();
String custom_field = customFieldConfig.getCustom_field(); String customFieldToCapture = customFieldConfig.getCustom_field();
TabUdeskTapdRel tabUdeskTapdRel = null; TabUdeskTapdRel tabUdeskTapdRel = null;
//tapd返回的自定义字段数据,没有不变化的ID,所以用名称来匹配 //tapd返回的自定义字段数据,没有不变化的ID,所以用名称来匹配
//tapd不同项目建立如录入客服这个自定义字段的时候,对应的key是不确定的,所以用名称来匹配,且用反射来获取值 //tapd不同项目建立如录入客服这个自定义字段的时候,对应的key是不确定的,所以用名称来匹配,且用反射来获取值
switch (name) { switch (name) {
case "提报人": case "提报人":
tabUdeskTapdRel = new TabUdeskTapdRel(workspaceId, 9, "getUserName", "客户姓名", tabUdeskTapdRel = new TabUdeskTapdRel(workspaceId, 9, "getUserName", "客户姓名",
"set" + captureName(custom_field), "提报人"); "set" + captureName(customFieldToCapture), "提报人");
break; break;
case "录入客服": case "录入客服":
tabUdeskTapdRel = new TabUdeskTapdRel(workspaceId, 9, "getServiceStaff", "录入客服", tabUdeskTapdRel = new TabUdeskTapdRel(workspaceId, 9, "getServiceStaff", "录入客服",
"set" + captureName(custom_field), "录入客服"); "set" + captureName(customFieldToCapture), "录入客服");
break; break;
case "UDESK工单编号": case "UDESK工单编号":
tabUdeskTapdRel = new TabUdeskTapdRel(workspaceId, 9, "getFieldNum", "UDESK工单编号", tabUdeskTapdRel = new TabUdeskTapdRel(workspaceId, 9, "getFieldNum", "UDESK工单编号",
"set" + captureName(custom_field), "UDESK工单编号"); "set" + captureName(customFieldToCapture), "UDESK工单编号");
break; break;
case "公司信息": case "公司信息":
tabUdeskTapdRel = new TabUdeskTapdRel(workspaceId, 9, "getOrganizationName", "公司", tabUdeskTapdRel = new TabUdeskTapdRel(workspaceId, 9, "getOrganizationName", "公司",
"set" + captureName(custom_field), "公司信息"); "set" + captureName(customFieldToCapture), "公司信息");
break; break;
case "是否客服内部已审核": case "是否客服内部已审核":
tabUdeskTapdRel = new TabUdeskTapdRel(workspaceId, 9, UdeskConstant.UDESK_SERVICE_AUDIT, "是否客服内部已审核", "set" + captureName(custom_field), "是否客服内部已审核"); tabUdeskTapdRel = new TabUdeskTapdRel(workspaceId, 9, UdeskConstant.UDESK_SERVICE_AUDIT, "是否客服内部已审核", "set" + captureName(customFieldToCapture), "是否客服内部已审核");
break; break;
default: default:
break; break;
......
...@@ -21,7 +21,13 @@ import org.springframework.stereotype.Service; ...@@ -21,7 +21,13 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.*; import java.util.*;
/**
* tapd消息监听
* @ClassName: TapdMessageApiServiceImpl

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:42 AM

*/
@Service("tapdMessageApiService") @Service("tapdMessageApiService")
public class TapdMessageApiServiceImpl implements TapdMessageApiService { public class TapdMessageApiServiceImpl implements TapdMessageApiService {
private static Logger logger = LogManager.getLogger(TapdMessageApiServiceImpl.class); private static Logger logger = LogManager.getLogger(TapdMessageApiServiceImpl.class);
...@@ -95,30 +101,30 @@ public class TapdMessageApiServiceImpl implements TapdMessageApiService { ...@@ -95,30 +101,30 @@ public class TapdMessageApiServiceImpl implements TapdMessageApiService {
Integer msgId = udeskMessageService.save(tabTapdMessage); Integer msgId = udeskMessageService.save(tabTapdMessage);
logger.info("消息{}保存成功", tabTapdMessage); logger.info("消息{}保存成功", tabTapdMessage);
// 获取缺陷最新的内容 // 获取缺陷最新的内容
TapdBugDTO latestBugFromTAPD = this.getLatestBugFromTAPD(tapdMessage); TapdBugDTO latestBugFromTapd = this.getLatestBugFromTapd(tapdMessage);
if (latestBugFromTAPD == null) { if (latestBugFromTapd == null) {
return msgId.toString(); return msgId.toString();
} }
// 数据转换一下. priorityEN,取值: "",high-高 .. // 数据转换一下. priorityEN,取值: "",high-高 ..
String priorityEN = this.ensureFieldValueIsEn(latestBugFromTAPD.getPriority(), TAPD_FIELD_NAME_PRIORITY, String priorityEn = this.ensureFieldValueIsEn(latestBugFromTapd.getPriority(), TAPD_FIELD_NAME_PRIORITY,
tapdMessage); tapdMessage);
if (priorityEN == null) { if (priorityEn == null) {
return msgId.toString(); return msgId.toString();
} }
String priorityCN = udeskTapdRelMap.get(priorityEN + UdeskConstant.MAP_UDESK_NAME_SUFFIX); String priorityCn = udeskTapdRelMap.get(priorityEn + UdeskConstant.MAP_UDESK_NAME_SUFFIX);
// severityEN,取值: "",advice-建议 // severityEN,取值: "",advice-建议
String severityEN = this.ensureFieldValueIsEn(latestBugFromTAPD.getSeverity(), TAPD_FIELD_NAME_SEVERITY, String severityEn = this.ensureFieldValueIsEn(latestBugFromTapd.getSeverity(), TAPD_FIELD_NAME_SEVERITY,
tapdMessage); tapdMessage);
if (severityEN == null) { if (severityEn == null) {
return msgId.toString(); return msgId.toString();
} }
String severityCN = udeskTapdRelMap.get(severityEN + UdeskConstant.MAP_UDESK_NAME_SUFFIX); String severityCn = udeskTapdRelMap.get(severityEn + UdeskConstant.MAP_UDESK_NAME_SUFFIX);
// 是否要更新中间件的数据库. 根据数据库表设计,数据库中ticket的status不会为null,priority、severity可能为null. // 是否要更新中间件的数据库. 根据数据库表设计,数据库中ticket的status不会为null,priority、severity可能为null.
if ((dataBaseTicket.getStatusTapd().equals(latestBugFromTAPD.getStatus())) if ((dataBaseTicket.getStatusTapd().equals(latestBugFromTapd.getStatus()))
&& ((dataBaseTicket.getPriority() == null ? "" : dataBaseTicket.getPriority()) && ((dataBaseTicket.getPriority() == null ? "" : dataBaseTicket.getPriority())
.equals(priorityCN == null ? "" : priorityCN)) .equals(priorityCn == null ? "" : priorityCn))
&& ((dataBaseTicket.getSeverity() == null ? "" : dataBaseTicket.getSeverity()) && ((dataBaseTicket.getSeverity() == null ? "" : dataBaseTicket.getSeverity())
.equals((severityCN == null ? "" : severityCN)))) { .equals((severityCn == null ? "" : severityCn)))) {
// 如果tapd最新的数据和数据库中的数据相同就不操作了,再完成消息处理 // 如果tapd最新的数据和数据库中的数据相同就不操作了,再完成消息处理
tabTapdMessage.setStatus(UdeskConstant.DELETED); tabTapdMessage.setStatus(UdeskConstant.DELETED);
udeskMessageService.update(tabTapdMessage); udeskMessageService.update(tabTapdMessage);
...@@ -128,20 +134,13 @@ public class TapdMessageApiServiceImpl implements TapdMessageApiService { ...@@ -128,20 +134,13 @@ public class TapdMessageApiServiceImpl implements TapdMessageApiService {
JSONObject updateTicketRequestBody = new JSONObject(); JSONObject updateTicketRequestBody = new JSONObject();
JSONObject udeskTicketUpdate = new JSONObject(); JSONObject udeskTicketUpdate = new JSONObject();
JSONObject customFields = new JSONObject(); JSONObject customFields = new JSONObject();
// //suspended:跟踪 PM_audited:pm审核 变成已处理状态
// boolean needToBeResolved = "suspended".equals(latestBugFromTAPD.getStatus()) || "PM_audited".equals(latestBugFromTAPD.getStatus());
// if (needToBeResolved) {
// udeskTicketUpdate.put("status_id", udeskTapdRelMap.get("resolved" + UdeskConstant.MAP_UDESK_ID_VALUE_SUFFIX));
// } else {
// udeskTicketUpdate.put("status_id", udeskTapdRelMap.get(latestBugFromTAPD.getStatus() + UdeskConstant.MAP_UDESK_ID_VALUE_SUFFIX));
// }
udeskTicketUpdate.put("status_id", udeskTapdRelMap.get(getUdeskStatusEnByTapdStatus(latestBugFromTAPD.getStatus()) + UdeskConstant.MAP_UDESK_ID_VALUE_SUFFIX)); udeskTicketUpdate.put("status_id", udeskTapdRelMap.get(getUdeskStatusEnByTapdStatus(latestBugFromTapd.getStatus()) + UdeskConstant.MAP_UDESK_ID_VALUE_SUFFIX));
udeskTicketUpdate.put("priority_id", udeskTapdRelMap.get(priorityEN + UdeskConstant.MAP_UDESK_ID_VALUE_SUFFIX)); udeskTicketUpdate.put("priority_id", udeskTapdRelMap.get(priorityEn + UdeskConstant.MAP_UDESK_ID_VALUE_SUFFIX));
// key:value,value为null的话,不会被序列化. 为了防止误操作,如果TAPD的缺陷的严重程度为空,并不会去更新udesk中的严重程度. // key:value,value为null的话,不会被序列化. 为了防止误操作,如果TAPD的缺陷的严重程度为空,并不会去更新udesk中的严重程度.
customFields.put(UdeskConstant.UDESK_FIELD_SEVERITY, customFields.put(UdeskConstant.UDESK_FIELD_SEVERITY,
udeskTapdRelMap.get(severityEN + UdeskConstant.MAP_UDESK_ID_VALUE_SUFFIX)); udeskTapdRelMap.get(severityEn + UdeskConstant.MAP_UDESK_ID_VALUE_SUFFIX));
udeskTicketUpdate.put("custom_fields", customFields); udeskTicketUpdate.put("custom_fields", customFields);
updateTicketRequestBody.put("ticket", udeskTicketUpdate); updateTicketRequestBody.put("ticket", udeskTicketUpdate);
// 更新udesk的工单 // 更新udesk的工单
...@@ -150,23 +149,16 @@ public class TapdMessageApiServiceImpl implements TapdMessageApiService { ...@@ -150,23 +149,16 @@ public class TapdMessageApiServiceImpl implements TapdMessageApiService {
return msgId.toString(); return msgId.toString();
} }
//同步到gic工单状态 //同步到gic工单状态
String statusEn = udeskTapdRelMap.get(latestBugFromTAPD.getStatus() + UdeskConstant.MAP_UDESK_NAME_SUFFIX); String statusEn = udeskTapdRelMap.get(latestBugFromTapd.getStatus() + UdeskConstant.MAP_UDESK_NAME_SUFFIX);
if (!UdeskStatusEnum.CLOSED.getCode().equals(statusEn)) { if (!UdeskStatusEnum.CLOSED.getCode().equals(statusEn)) {
udeskEnterpriseService.updateStatus(dataBaseTicket.getId(), statusEn); udeskEnterpriseService.updateStatus(dataBaseTicket.getId(), statusEn);
} }
// 更新数据库中的数据 注: 放在udesk操作完成之后
// if (needToBeResolved) {
// dataBaseTicket.setStatusEn(udeskTapdRelMap.get("resolved" + UdeskConstant.MAP_UDESK_NAME_SUFFIX));
// } else {
// dataBaseTicket
// .setStatusEn(udeskTapdRelMap.get(latestBugFromTAPD.getStatus() + UdeskConstant.MAP_UDESK_NAME_SUFFIX));
// }
dataBaseTicket.setStatusEn(udeskTapdRelMap.get(getUdeskStatusEnByTapdStatus(latestBugFromTAPD.getStatus()) + UdeskConstant.MAP_UDESK_NAME_SUFFIX)); dataBaseTicket.setStatusEn(udeskTapdRelMap.get(getUdeskStatusEnByTapdStatus(latestBugFromTapd.getStatus()) + UdeskConstant.MAP_UDESK_NAME_SUFFIX));
dataBaseTicket.setPriority(priorityCN); dataBaseTicket.setPriority(priorityCn);
dataBaseTicket.setSeverity(severityCN); dataBaseTicket.setSeverity(severityCn);
dataBaseTicket.setStatusTapd(latestBugFromTAPD.getStatus()); dataBaseTicket.setStatusTapd(latestBugFromTapd.getStatus());
udeskTicketService.update(dataBaseTicket); udeskTicketService.update(dataBaseTicket);
//消息处理完成 //消息处理完成
tabTapdMessage.setStatus(UdeskConstant.DELETED); tabTapdMessage.setStatus(UdeskConstant.DELETED);
...@@ -271,7 +263,7 @@ public class TapdMessageApiServiceImpl implements TapdMessageApiService { ...@@ -271,7 +263,7 @@ public class TapdMessageApiServiceImpl implements TapdMessageApiService {
* @param tapdMessage tapd的消息 * @param tapdMessage tapd的消息
* @return TapdBugDTO * @return TapdBugDTO
*/ */
private TapdBugDTO getLatestBugFromTAPD(TapdMessageDTO tapdMessage) { private TapdBugDTO getLatestBugFromTapd(TapdMessageDTO tapdMessage) {
Map<String, Object> queryBugParamsMap = new HashMap<>(4); Map<String, Object> queryBugParamsMap = new HashMap<>(4);
queryBugParamsMap.put("id", tapdMessage.getId()); queryBugParamsMap.put("id", tapdMessage.getId());
queryBugParamsMap.put("workspace_id", tapdMessage.getWorkspace_id()); queryBugParamsMap.put("workspace_id", tapdMessage.getWorkspace_id());
......
...@@ -31,7 +31,13 @@ import com.gic.udesk.service.UdeskExceptionService; ...@@ -31,7 +31,13 @@ import com.gic.udesk.service.UdeskExceptionService;
import com.gic.udesk.service.UdeskTapdRelService; import com.gic.udesk.service.UdeskTapdRelService;
import com.gic.udesk.utils.UdeskConstant; import com.gic.udesk.utils.UdeskConstant;
import com.gic.udesk.utils.UdeskHttpClientUtil; import com.gic.udesk.utils.UdeskHttpClientUtil;
/**
* 工单
* @ClassName: UdeskBaseApiServiceImpl

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:34 AM

*/
@Service("udeskBaseApiService") @Service("udeskBaseApiService")
public class UdeskBaseApiServiceImpl implements UdeskBaseApiService { public class UdeskBaseApiServiceImpl implements UdeskBaseApiService {
private static Logger logger = LogManager.getLogger(UdeskBaseApiServiceImpl.class); private static Logger logger = LogManager.getLogger(UdeskBaseApiServiceImpl.class);
......
...@@ -28,7 +28,13 @@ import com.gic.udesk.entity.TabUdeskMessage; ...@@ -28,7 +28,13 @@ import com.gic.udesk.entity.TabUdeskMessage;
import com.gic.udesk.entity.TabUdeskTicket; import com.gic.udesk.entity.TabUdeskTicket;
import com.gic.udesk.utils.UdeskConstant; import com.gic.udesk.utils.UdeskConstant;
import com.gic.udesk.utils.UdeskHttpClientUtil; import com.gic.udesk.utils.UdeskHttpClientUtil;
/**
* udesk消息监听
* @ClassName: UdeskMessageApiServiceImpl

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:43 AM

*/
@Service("udeskMessageApiService") @Service("udeskMessageApiService")
public class UdeskMessageApiServiceImpl implements UdeskMessageApiService { public class UdeskMessageApiServiceImpl implements UdeskMessageApiService {
private static Logger logger = LogManager.getLogger(UdeskMessageApiServiceImpl.class); private static Logger logger = LogManager.getLogger(UdeskMessageApiServiceImpl.class);
...@@ -84,245 +90,274 @@ public class UdeskMessageApiServiceImpl implements UdeskMessageApiService { ...@@ -84,245 +90,274 @@ public class UdeskMessageApiServiceImpl implements UdeskMessageApiService {
logger.info("消息为{}已经保存成功", messageDTO); logger.info("消息为{}已经保存成功", messageDTO);
//创建工单消息 //创建工单消息
if (UdeskConstant.TICKET_CREATE.equals(messageDTO.getEvent())) { if (UdeskConstant.TICKET_CREATE.equals(messageDTO.getEvent())) {
//udesk工单ID ServiceResponse<String> udeskMessageOfCreateResult = udeskMessageOfCreate(messageDTO, tabUdeskMessage);
String id = messageDTO.getMsgBody(); if (udeskMessageOfCreateResult != null) {
//udesk工单详情接口 return udeskMessageOfCreateResult;
String detailStr = this.getUdeskTicketDetail(id);
UdeskTicketDetailDTO detail = JSON.parseObject(detailStr, UdeskTicketDetailDTO.class);
if (detail.getCode() == UdeskConstant.UDESK_SUCCESS_CODE) {
//usesk工单信息
TicketDTO ticket = detail.getTicket();
//udesk自定义字段信息
Map<String, String> customFields = ticket.getCustom_fields();
//udesk工单表实体
TabUdeskTicket tabUdeskTicket = new TabUdeskTicket();
TapdBugDTO tapdBug = new TapdBugDTO();
if (customFields != null) {
//udesk客服名称--tapd创建人
String staffValue = customFields.get(UdeskConstant.UDESK_FIELD_STAFF);
tabUdeskTicket
.setServiceStaff(udeskTapdRelMap.get(UdeskConstant.UDESK_FIELD_STAFF + ":" + staffValue));
//tapd项目ID
String workspaceValue = customFields.get(UdeskConstant.UDESK_FIELD_WORKSPACE);
tabUdeskTicket.setWorkspaceId(
udeskTapdRelMap.get(UdeskConstant.UDESK_FIELD_WORKSPACE + ":" + workspaceValue));
//TPAD当前处理人
tabUdeskTicket.setCurrentOwner(getCurrentOwner(customFields));
//发现版本添加
String versionReportCode = customFields.get(UdeskConstant.UDESK_FIELD_VERSION_3);
tapdBug.setVersion_report(VersionReport3Enum.getMessage(versionReportCode));
//填充部分自定义字段值
this.setUdeskCostomFields(tabUdeskTicket, tapdBug, customFields);
}
//受理客服id
tabUdeskTicket.setAssigneeId(ticket.getAssignee_id());
//受理客服姓名
tabUdeskTicket.setAssigneeName(ticket.getAssignee_name());
//创建人id
tabUdeskTicket.setCreatorId(ticket.getCreator_id());
//工单编号
tabUdeskTicket.setFieldNum(ticket.getField_num());
//工单id
tabUdeskTicket.setId(ticket.getId());
//客户所属公司id
Integer organizationId = ticket.getOrganization_id();
if (organizationId != null) {
this.setOrganizationIdAndName(tabUdeskTicket, organizationId);
}
//填充工单优先级中文名称
this.setPriority(ticket, tabUdeskTicket, tapdBug);
tabUdeskTicket.setStatus(UdeskConstant.UNDELETED);
//状态英文名称
tabUdeskTicket.setStatusEn(ticket.getStatus_en());
//tapd状态值
tabUdeskTicket.setStatusTapd(udeskTapdRelMap.get(ticket.getStatus_en()));
//标题
tabUdeskTicket.setSubject(ticket.getSubject());
//客户id
tabUdeskTicket.setUserId(ticket.getUser_id());
//客户姓名
tabUdeskTicket.setUserName(ticket.getUser_name());
try {
udeskTicketService.save(tabUdeskTicket);
updateGicTicketStatus(Integer.parseInt(id), ticket.getStatus_en());
logger.info("工单id为{}已经保存成功", ticket.getId());
} catch (DataIntegrityViolationException | ConstraintViolationException e) {
logger.info("工单id为{}已经保存失败,重复插入", ticket.getId(), e);
return null;
}
tapdBug.setTitle(ticket.getSubject());
tapdBug.setCurrent_owner(tabUdeskTicket.getCurrentOwner());
tapdBug.setReporter(UdeskConstant.TPAD_REPORTER);
String workspaceId = tabUdeskTicket.getWorkspaceId();
tapdBug.setWorkspace_id(workspaceId);
this.setTapdCustomField(workspaceId, tapdBug, tabUdeskTicket, customFields);
tapdBug.setStatus(tabUdeskTicket.getStatusTapd());
this.setDescription(ticket, tapdBug);
//udesk创建到tapd的缺陷,发现阶段值写死
tapdBug.setOriginphase("生产环境");
String bugStr = JSON.toJSONString(tapdBug);
logger.info("添加TAPDbug入参为{}", bugStr);
String bugReturnStr = UdeskHttpClientUtil.postTapdJsonFromJson(TAPD_BUGS, bugStr);
logger.info("添加TAPDbug返回为{}", bugReturnStr);
TapdRespBugDTO tapdRespBug = JSON.parseObject(bugReturnStr, TapdRespBugDTO.class);
if (tapdRespBug.getStatus() == UdeskConstant.TAPD_RESP_SUCCESS_STATUS) {
//tapd缺陷ID
String bugId = tapdRespBug.getData().getBug().getId();
tabUdeskTicket.setBugId(bugId);
udeskTicketService.update(tabUdeskTicket);
String bugUrl = UdeskConstant.TAPD_HOST + workspaceId + TAPD_BUGS_URL_PART + bugId;
//客服回复对象
UdeskAgentReplyDTO reply = new UdeskAgentReplyDTO();
//客服id
reply.setAgent_id(Integer.valueOf(udeskTapdRelMap.get(UdeskConstant.UDESK_DEFAULT_AGENT)));
//回复类型,"internal"内部备注/"external"外部评论
reply.setFunction_type(UdeskConstant.INTERNAL);
//工单ID
reply.setId(ticket.getId());
//回复内容
reply.setNew_reply("TAPD的bug链接为:<a href=\""+ bugUrl +"\" target=\"_blank\">" + bugUrl + "</a>");
//客服回复对象转为接口入参数
String replyStr = JSON.toJSONString(reply);
logger.info("回复udesk工单bug链接入参为{}", replyStr);
String replyRespStr = UdeskHttpClientUtil.postUdeskJsonFromJson(AGENT_REPLY, replyStr);
logger.info("回复udesk工单bug链接返回为{}", replyRespStr);
UdeskRespReplyDTO replyDetail = JSON.parseObject(replyRespStr, UdeskRespReplyDTO.class);
if (replyDetail.getCode() != UdeskConstant.UDESK_SUCCESS_CODE) {
String exceptionRecord = "工单id为" + id + "回复udesk工单bug链接失败,返回为" + replyRespStr;
logger.info(exceptionRecord);
udeskBaseApiService.saveUdeskException(exceptionRecord);
} else {
//消息删除status = 0
this.updateTabUdeskMessage(tabUdeskMessage, id, bugId);
}
if(!"new".equals(tapdBug.getStatus())){
this.reSetTapdStatus(id, ticket, tapdBug, workspaceId, bugId);
}
return ServiceResponse.success(bugId);
} else {
String exceptionRecord = "工单id为" + id + "创建TAPDbug失败,返回为" + bugReturnStr;
logger.info(exceptionRecord);
udeskBaseApiService.saveTapdException(exceptionRecord);
}
} else {
String exceptionRecord = "工单id为" + id + "请求udesk工单详情异常,返回为" + detailStr;
logger.info(exceptionRecord);
udeskBaseApiService.saveUdeskException(exceptionRecord);
} }
} else if (UdeskConstant.TICKET_UPDATE.equals(messageDTO.getEvent())) { } else if (UdeskConstant.TICKET_UPDATE.equals(messageDTO.getEvent())) {
//更新消息 ServiceResponse<String> udeskMessageOfUpdateResult = udeskMessageOfUpdate(messageDTO, tabUdeskMessage);
String id = messageDTO.getMsgBody(); if (udeskMessageOfUpdateResult != null) {
String detailStr = this.getUdeskTicketDetail(id); return udeskMessageOfUpdateResult;
UdeskTicketDetailDTO detail = JSON.parseObject(detailStr, UdeskTicketDetailDTO.class); }
logger.info("工单详情{}", detail != null ? JSON.toJSONString(detail) : null); }
if (detail.getCode() == UdeskConstant.UDESK_SUCCESS_CODE) { logger.info("udesk同步数据到tapd所花时间:{}", System.currentTimeMillis() - starTime);
//udesk接口查询的工单信息 return null;
TicketDTO ticket = detail.getTicket(); }
//数据库查询的工单记录信息
TabUdeskTicket tabUdeskTicket = udeskTicketService.getById(Integer.parseInt(id));
if (tabUdeskTicket == null) {
UdeskMessageDTO createMessage = new UdeskMessageDTO();
//事件类型 创建/更新
createMessage.setEvent(UdeskConstant.TICKET_CREATE);
//工单ID
createMessage.setMsgBody(id);
createMessage.setSource(UdeskConstant.UDESK_UPDATE_CREATE);
//消息主题
createMessage.setTopic(UdeskConstant.UDESK_TICKET_TOPIC);
ServiceResponse<String> saveResult = this.saveUdeskMessage(createMessage);
String bugId = saveResult.getResult();
//删除消息status = 0
this.updateTabUdeskMessage(tabUdeskMessage, id, bugId);
return ServiceResponse.success(bugId);
}
TapdBugUpdateDTO tapdBug = new TapdBugUpdateDTO();
//防止创建工单误触发更新
String bugId = tabUdeskTicket.getBugId();
if (StringUtils.isBlank(bugId)) {
return null;
}
tapdBug.setId(bugId);
tapdBug.setTitle(ticket.getSubject());
tapdBug.setCurrent_user(UdeskConstant.TPAD_REPORTER);
this.setDescription(ticket, tapdBug);
//tapd项目ID
String workspaceId = tabUdeskTicket.getWorkspaceId();
tapdBug.setProject_id(Integer.valueOf(workspaceId));
tapdBug.setWorkspace_id(workspaceId);
tapdBug.setReporter(UdeskConstant.TPAD_REPORTER);
//工单状态英文名称
String statusEn = ticket.getStatus_en();
//同步到gic工单状态 private ServiceResponse<String> udeskMessageOfCreate(UdeskMessageDTO messageDTO, TabUdeskMessage tabUdeskMessage) {
logger.info("同步gic工单状态,ID:{}, 状态:{}", Integer.parseInt(id), statusEn); //udesk工单ID
updateGicTicketStatus(Integer.parseInt(id), statusEn); String id = messageDTO.getMsgBody();
//如果udesk工单状态不等于本地数据库对应的工单状态 //udesk工单详情接口
if (StringUtils.isNotBlank(statusEn) && !statusEn.equals(tabUdeskTicket.getStatusEn())) { String detailStr = this.getUdeskTicketDetail(id);
if (UdeskConstant.CLOSED.equals(tabUdeskTicket.getStatusEn())) { UdeskTicketDetailDTO detail = JSON.parseObject(detailStr, UdeskTicketDetailDTO.class);
//本地工单状态如果是关闭状态,设置tapd缺陷 更新人(操作人) if (detail.getCode() == UdeskConstant.UDESK_SUCCESS_CODE) {
tapdBug.setCurrent_owner(tabUdeskTicket.getCurrentOwner()); //usesk工单信息
} TicketDTO ticket = detail.getTicket();
//获取字典的状态值 //udesk工单表实体
String tapdStatus = udeskTapdRelMap.get(statusEn); TabUdeskTicket tabUdeskTicket = new TabUdeskTicket();
tabUdeskTicket.setStatusEn(statusEn); TapdBugDTO tapdBug = new TapdBugDTO();
tabUdeskTicket.setStatusTapd(tapdStatus);
//同步tapd缺陷状态 setTicket(ticket, tabUdeskTicket, tapdBug, id);
tapdBug.setStatus(tapdStatus); try {
} udeskTicketService.save(tabUdeskTicket);
tabUdeskTicket.setSubject(ticket.getSubject());
this.setPriority(ticket, tabUdeskTicket, tapdBug); updateGicTicketStatus(Integer.parseInt(id), ticket.getStatus_en());
Integer organizationId = ticket.getOrganization_id(); logger.info("工单id为{}已经保存成功", ticket.getId());
if(organizationId != null && !organizationId.equals(tabUdeskTicket.getOrganizationId())){ } catch (DataIntegrityViolationException | ConstraintViolationException e) {
this.setOrganizationIdAndName(tabUdeskTicket, organizationId); logger.info("工单id为{}已经保存失败,重复插入", ticket.getId(), e);
return null;
}
String workspaceId = tabUdeskTicket.getWorkspaceId();
setTabBug(ticket, tabUdeskTicket, tapdBug);
String bugStr = JSON.toJSONString(tapdBug);
logger.info("添加TAPDbug入参为{}", bugStr);
String bugReturnStr = UdeskHttpClientUtil.postTapdJsonFromJson(TAPD_BUGS, bugStr);
logger.info("添加TAPDbug返回为{}", bugReturnStr);
TapdRespBugDTO tapdRespBug = JSON.parseObject(bugReturnStr, TapdRespBugDTO.class);
if (tapdRespBug.getStatus() == UdeskConstant.TAPD_RESP_SUCCESS_STATUS) {
//tapd缺陷ID
String bugId = tapdRespBug.getData().getBug().getId();
tabUdeskTicket.setBugId(bugId);
udeskTicketService.update(tabUdeskTicket);
String bugUrl = UdeskConstant.TAPD_HOST + workspaceId + TAPD_BUGS_URL_PART + bugId;
//客服回复对象
UdeskAgentReplyDTO reply = new UdeskAgentReplyDTO();
//客服id
reply.setAgent_id(Integer.valueOf(udeskTapdRelMap.get(UdeskConstant.UDESK_DEFAULT_AGENT)));
//回复类型,"internal"内部备注/"external"外部评论
reply.setFunction_type(UdeskConstant.INTERNAL);
//工单ID
reply.setId(ticket.getId());
//回复内容
reply.setNew_reply("TAPD的bug链接为:<a href=\""+ bugUrl +"\" target=\"_blank\">" + bugUrl + "</a>");
//客服回复对象转为接口入参数
String replyStr = JSON.toJSONString(reply);
logger.info("回复udesk工单bug链接入参为{}", replyStr);
String replyRespStr = UdeskHttpClientUtil.postUdeskJsonFromJson(AGENT_REPLY, replyStr);
logger.info("回复udesk工单bug链接返回为{}", replyRespStr);
UdeskRespReplyDTO replyDetail = JSON.parseObject(replyRespStr, UdeskRespReplyDTO.class);
if (replyDetail.getCode() != UdeskConstant.UDESK_SUCCESS_CODE) {
String exceptionRecord = "工单id为" + id + "回复udesk工单bug链接失败,返回为" + replyRespStr;
logger.info(exceptionRecord);
udeskBaseApiService.saveUdeskException(exceptionRecord);
} else {
//消息删除status = 0
this.updateTabUdeskMessage(tabUdeskMessage, id, bugId);
} }
boolean isNotNewTapdBug = !"new".equals(tapdBug.getStatus());
Map<String, String> customFields = ticket.getCustom_fields(); if(isNotNewTapdBug){
if(customFields != null){ this.reSetTapdStatus(id, ticket, tapdBug, workspaceId, bugId);
this.setUdeskCostomFields(tabUdeskTicket, tapdBug, customFields);
} }
tabUdeskTicket.setUserName(ticket.getUser_name()); return ServiceResponse.success(bugId);
this.setTapdCustomField(workspaceId, tapdBug, tabUdeskTicket, customFields); } else {
String exceptionRecord = "工单id为" + id + "创建TAPDbug失败,返回为" + bugReturnStr;
logger.info(exceptionRecord);
udeskBaseApiService.saveTapdException(exceptionRecord);
}
} else {
String exceptionRecord = "工单id为" + id + "请求udesk工单详情异常,返回为" + detailStr;
logger.info(exceptionRecord);
udeskBaseApiService.saveUdeskException(exceptionRecord);
}
return null;
}
udeskTicketService.update(tabUdeskTicket); private void setTicket(TicketDTO ticket, TabUdeskTicket tabUdeskTicket, TapdBugDTO tapdBug, String id) {
//udesk自定义字段信息
Map<String, String> customFields = ticket.getCustom_fields();
if (customFields != null) {
//udesk客服名称--tapd创建人
String staffValue = customFields.get(UdeskConstant.UDESK_FIELD_STAFF);
tabUdeskTicket
.setServiceStaff(udeskTapdRelMap.get(UdeskConstant.UDESK_FIELD_STAFF + ":" + staffValue));
//tapd项目ID
String workspaceValue = customFields.get(UdeskConstant.UDESK_FIELD_WORKSPACE);
tabUdeskTicket.setWorkspaceId(
udeskTapdRelMap.get(UdeskConstant.UDESK_FIELD_WORKSPACE + ":" + workspaceValue));
//TPAD当前处理人
tabUdeskTicket.setCurrentOwner(getCurrentOwner(customFields));
//发现版本添加
String versionReportCode = customFields.get(UdeskConstant.UDESK_FIELD_VERSION_3);
tapdBug.setVersion_report(VersionReport3Enum.getMessage(versionReportCode));
//填充部分自定义字段值
this.setUdeskCostomFields(tabUdeskTicket, tapdBug, customFields);
}
//受理客服id
tabUdeskTicket.setAssigneeId(ticket.getAssignee_id());
//受理客服姓名
tabUdeskTicket.setAssigneeName(ticket.getAssignee_name());
//创建人id
tabUdeskTicket.setCreatorId(ticket.getCreator_id());
//工单编号
tabUdeskTicket.setFieldNum(ticket.getField_num());
//工单id
tabUdeskTicket.setId(ticket.getId());
//客户所属公司id
Integer organizationId = ticket.getOrganization_id();
if (organizationId != null) {
this.setOrganizationIdAndName(tabUdeskTicket, organizationId);
}
//填充工单优先级中文名称
this.setPriority(ticket, tabUdeskTicket, tapdBug);
tabUdeskTicket.setStatus(UdeskConstant.UNDELETED);
//状态英文名称
tabUdeskTicket.setStatusEn(ticket.getStatus_en());
//tapd状态值
tabUdeskTicket.setStatusTapd(udeskTapdRelMap.get(ticket.getStatus_en()));
//标题
tabUdeskTicket.setSubject(ticket.getSubject());
//客户id
tabUdeskTicket.setUserId(ticket.getUser_id());
//客户姓名
tabUdeskTicket.setUserName(ticket.getUser_name());
}
JSONObject bugJson = (JSONObject) JSONObject.toJSON(tapdBug); private void setTabBug(TicketDTO ticket, TabUdeskTicket tabUdeskTicket, TapdBugDTO tapdBug) {
if (customFields != null) { //udesk自定义字段信息
//发现版本添加 Map<String, String> customFields = ticket.getCustom_fields();
String versionReportCode = customFields.get(UdeskConstant.UDESK_FIELD_VERSION_3); String workspaceId = tabUdeskTicket.getWorkspaceId();
bugJson.put("version_report", VersionReport3Enum.getMessage(versionReportCode));
} tapdBug.setTitle(ticket.getSubject());
tapdBug.setCurrent_owner(tabUdeskTicket.getCurrentOwner());
tapdBug.setReporter(UdeskConstant.TPAD_REPORTER);
tapdBug.setWorkspace_id(workspaceId);
this.setTapdCustomField(workspaceId, tapdBug, tabUdeskTicket, customFields);
tapdBug.setStatus(tabUdeskTicket.getStatusTapd());
this.setDescription(ticket, tapdBug);
//udesk创建到tapd的缺陷,发现阶段值写死
tapdBug.setOriginphase("生产环境");
}
String bugStr = bugJson.toJSONString(); private ServiceResponse<String> udeskMessageOfUpdate(UdeskMessageDTO messageDTO, TabUdeskMessage tabUdeskMessage) {
logger.info("更新TAPDbug入参为{}", bugStr); String id = messageDTO.getMsgBody();
String bugReturnStr = UdeskHttpClientUtil.postTapdJsonFromJson(TAPD_BUGS, bugStr); String detailStr = this.getUdeskTicketDetail(id);
logger.info("更新TAPDbug返回为{}", bugReturnStr); UdeskTicketDetailDTO detail = JSON.parseObject(detailStr, UdeskTicketDetailDTO.class);
TapdRespBugDTO tapdRespBug = JSON.parseObject(bugReturnStr, TapdRespBugDTO.class); logger.info("工单详情{}", detail != null ? JSON.toJSONString(detail) : null);
if (tapdRespBug.getStatus() == UdeskConstant.TAPD_RESP_SUCCESS_STATUS) { if (detail.getCode() == UdeskConstant.UDESK_SUCCESS_CODE) {
this.updateTabUdeskMessage(tabUdeskMessage, id, bugId); TicketDTO ticket = detail.getTicket();
return ServiceResponse.success(bugId); //数据库查询的工单记录信息
} else { TabUdeskTicket tabUdeskTicket = udeskTicketService.getById(Integer.parseInt(id));
String exceptionRecord = "工单id为" + id + "更新TAPDbug失败,返回为" + bugReturnStr; ServiceResponse<String> whenTicketIsNullResult = whenTicketIsNull(id, tabUdeskTicket, tabUdeskMessage);
logger.info(exceptionRecord); if (whenTicketIsNullResult != null) {
udeskBaseApiService.saveTapdException(exceptionRecord); return whenTicketIsNullResult;
}
TapdBugUpdateDTO tapdBug = new TapdBugUpdateDTO();
//防止创建工单误触发更新
String bugId = tabUdeskTicket.getBugId();
if (StringUtils.isBlank(bugId)) {
return null;
}
tapdBug.setId(bugId);
tapdBug.setTitle(ticket.getSubject());
tapdBug.setCurrent_user(UdeskConstant.TPAD_REPORTER);
this.setDescription(ticket, tapdBug);
//tapd项目ID
String workspaceId = tabUdeskTicket.getWorkspaceId();
tapdBug.setProject_id(Integer.valueOf(workspaceId));
tapdBug.setWorkspace_id(workspaceId);
tapdBug.setReporter(UdeskConstant.TPAD_REPORTER);
//工单状态英文名称
String statusEn = ticket.getStatus_en();
//同步到gic工单状态
logger.info("同步gic工单状态,ID:{}, 状态:{}", Integer.parseInt(id), statusEn);
updateGicTicketStatus(Integer.parseInt(id), statusEn);
//如果udesk工单状态不等于本地数据库对应的工单状态
if (StringUtils.isNotBlank(statusEn) && !statusEn.equals(tabUdeskTicket.getStatusEn())) {
if (UdeskConstant.CLOSED.equals(tabUdeskTicket.getStatusEn())) {
//本地工单状态如果是关闭状态,设置tapd缺陷 更新人(操作人)
tapdBug.setCurrent_owner(tabUdeskTicket.getCurrentOwner());
} }
//获取字典的状态值
String tapdStatus = udeskTapdRelMap.get(statusEn);
tabUdeskTicket.setStatusEn(statusEn);
tabUdeskTicket.setStatusTapd(tapdStatus);
//同步tapd缺陷状态
tapdBug.setStatus(tapdStatus);
}
tabUdeskTicket.setSubject(ticket.getSubject());
this.setPriority(ticket, tabUdeskTicket, tapdBug);
Integer organizationId = ticket.getOrganization_id();
if(organizationId != null && !organizationId.equals(tabUdeskTicket.getOrganizationId())){
this.setOrganizationIdAndName(tabUdeskTicket, organizationId);
}
Map<String, String> customFields = ticket.getCustom_fields();
if(customFields != null){
this.setUdeskCostomFields(tabUdeskTicket, tapdBug, customFields);
}
tabUdeskTicket.setUserName(ticket.getUser_name());
this.setTapdCustomField(workspaceId, tapdBug, tabUdeskTicket, customFields);
udeskTicketService.update(tabUdeskTicket);
JSONObject bugJson = (JSONObject) JSONObject.toJSON(tapdBug);
if (customFields != null) {
//发现版本添加
String versionReportCode = customFields.get(UdeskConstant.UDESK_FIELD_VERSION_3);
bugJson.put("version_report", VersionReport3Enum.getMessage(versionReportCode));
}
String bugStr = bugJson.toJSONString();
logger.info("更新TAPDbug入参为{}", bugStr);
String bugReturnStr = UdeskHttpClientUtil.postTapdJsonFromJson(TAPD_BUGS, bugStr);
logger.info("更新TAPDbug返回为{}", bugReturnStr);
TapdRespBugDTO tapdRespBug = JSON.parseObject(bugReturnStr, TapdRespBugDTO.class);
if (tapdRespBug.getStatus() == UdeskConstant.TAPD_RESP_SUCCESS_STATUS) {
this.updateTabUdeskMessage(tabUdeskMessage, id, bugId);
return ServiceResponse.success(bugId);
} else { } else {
String exceptionRecord = "工单id为" + id + "更新工单请求udesk工单详情异常,返回为" + detailStr; saveException("工单id为" + id + "更新TAPDbug失败,返回为" + bugReturnStr);
logger.info(exceptionRecord);
udeskBaseApiService.saveUdeskException(exceptionRecord);
} }
} else {
saveException("工单id为" + id + "更新工单请求udesk工单详情异常,返回为" + detailStr);
}
return null;
}
private ServiceResponse<String> whenTicketIsNull(String id, TabUdeskTicket tabUdeskTicket, TabUdeskMessage tabUdeskMessage) {
if (tabUdeskTicket == null) {
UdeskMessageDTO createMessage = new UdeskMessageDTO();
//事件类型 创建/更新
createMessage.setEvent(UdeskConstant.TICKET_CREATE);
//工单ID
createMessage.setMsgBody(id);
createMessage.setSource(UdeskConstant.UDESK_UPDATE_CREATE);
//消息主题
createMessage.setTopic(UdeskConstant.UDESK_TICKET_TOPIC);
ServiceResponse<String> saveResult = this.saveUdeskMessage(createMessage);
String bugId = saveResult.getResult();
//删除消息status = 0
this.updateTabUdeskMessage(tabUdeskMessage, id, bugId);
return ServiceResponse.success(bugId);
} }
logger.info("udesk同步数据到tapd所花时间:{}", System.currentTimeMillis() - starTime);
return null; return null;
} }
private void saveException(String exceptionMessage) {
logger.info(exceptionMessage);
udeskBaseApiService.saveTapdException(exceptionMessage);
}
@Override @Override
public ServiceResponse<String> saveUdeskMessageNoTapd(UdeskMessageDTO messageDTO) { public ServiceResponse<String> saveUdeskMessageNoTapd(UdeskMessageDTO messageDTO) {
//创建工单消息 //创建工单消息
......
...@@ -31,7 +31,13 @@ import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; ...@@ -31,7 +31,13 @@ import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.util.EntityUtils; import org.apache.http.util.EntityUtils;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
/**
* udesk http链接工具
* @ClassName: UdeskHttpClientUtil

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:40 AM

*/
public class UdeskHttpClientUtil { public class UdeskHttpClientUtil {
private static final Logger logger = LogManager.getLogger(UdeskHttpClientUtil.class); private static final Logger logger = LogManager.getLogger(UdeskHttpClientUtil.class);
...@@ -65,7 +71,7 @@ public class UdeskHttpClientUtil { ...@@ -65,7 +71,7 @@ public class UdeskHttpClientUtil {
param.put("email", UdeskConstant.EMAIL); param.put("email", UdeskConstant.EMAIL);
param.put("timestamp", timeStamp); param.put("timestamp", timeStamp);
param.put("sign", UdeskUtils.getSign(timeStamp)); param.put("sign", UdeskUtils.getSign(timeStamp));
url = UdeskConstant.UDESK_URI + getURL(url, param); url = UdeskConstant.UDESK_URI + getUrl(url, param);
logger.info(url); logger.info(url);
CloseableHttpResponse response = null; CloseableHttpResponse response = null;
try { try {
...@@ -158,7 +164,7 @@ public class UdeskHttpClientUtil { ...@@ -158,7 +164,7 @@ public class UdeskHttpClientUtil {
param.put("email", UdeskConstant.EMAIL); param.put("email", UdeskConstant.EMAIL);
param.put("timestamp", timeStamp); param.put("timestamp", timeStamp);
param.put("sign", UdeskUtils.getSign(timeStamp)); param.put("sign", UdeskUtils.getSign(timeStamp));
url = UdeskConstant.UDESK_URI + getURL(url, param); url = UdeskConstant.UDESK_URI + getUrl(url, param);
logger.info(url); logger.info(url);
CloseableHttpResponse response = null; CloseableHttpResponse response = null;
try { try {
...@@ -179,7 +185,7 @@ public class UdeskHttpClientUtil { ...@@ -179,7 +185,7 @@ public class UdeskHttpClientUtil {
public static String getTapdJsonFromParam(String url, Map<String, Object> param) { public static String getTapdJsonFromParam(String url, Map<String, Object> param) {
CloseableHttpResponse response = null; CloseableHttpResponse response = null;
try { try {
url = UdeskConstant.TAPD_URI +getURIBuilder(url, param); url = UdeskConstant.TAPD_URI +getUriBuilder(url, param);
logger.info(url); logger.info(url);
HttpGet httpGet = new HttpGet(url); HttpGet httpGet = new HttpGet(url);
httpGet.setHeader("Authorization", UdeskConstant.TAPD_AUTH); httpGet.setHeader("Authorization", UdeskConstant.TAPD_AUTH);
...@@ -220,7 +226,7 @@ public class UdeskHttpClientUtil { ...@@ -220,7 +226,7 @@ public class UdeskHttpClientUtil {
* @return String * @return String
* @throws URISyntaxException * @throws URISyntaxException
*/ */
private static String getURIBuilder(String uri, Map<String, Object> requestParams) throws URISyntaxException { private static String getUriBuilder(String uri, Map<String, Object> requestParams) throws URISyntaxException {
URIBuilder uriBuilder = new URIBuilder( uri); URIBuilder uriBuilder = new URIBuilder( uri);
if (requestParams != null && requestParams.size() > 0) { if (requestParams != null && requestParams.size() > 0) {
for (Map.Entry<String, Object> entry : requestParams.entrySet()) { for (Map.Entry<String, Object> entry : requestParams.entrySet()) {
...@@ -236,21 +242,21 @@ public class UdeskHttpClientUtil { ...@@ -236,21 +242,21 @@ public class UdeskHttpClientUtil {
/** /**
* 拼接URL * 拼接URL
*/ */
private static String getURL(String url, Map<String, Object> param) { private static String getUrl(String url, Map<String, Object> param) {
if (param != null && param.size() > 0) { if (param != null && param.size() > 0) {
StringBuilder urlSB = new StringBuilder(url); StringBuilder urlStringBuilder = new StringBuilder(url);
Set<Map.Entry<String, Object>> paramSet = param.entrySet(); Set<Map.Entry<String, Object>> paramSet = param.entrySet();
boolean isFirst = true; boolean isFirst = true;
for (Map.Entry<String, Object> entry : paramSet) { for (Map.Entry<String, Object> entry : paramSet) {
if (isFirst) { if (isFirst) {
urlSB.append("?"); urlStringBuilder.append("?");
isFirst = false; isFirst = false;
} else { } else {
urlSB.append("&"); urlStringBuilder.append("&");
} }
urlSB.append(entry.getKey()).append("=").append(entry.getValue()); urlStringBuilder.append(entry.getKey()).append("=").append(entry.getValue());
} }
return urlSB.toString(); return urlStringBuilder.toString();
} }
return url; return url;
} }
...@@ -302,7 +308,6 @@ public class UdeskHttpClientUtil { ...@@ -302,7 +308,6 @@ public class UdeskHttpClientUtil {
multipartEntityBuilder.addTextBody("file_name", fileName); multipartEntityBuilder.addTextBody("file_name", fileName);
HttpEntity httpEntity = multipartEntityBuilder.build(); HttpEntity httpEntity = multipartEntityBuilder.build();
httpPost.setEntity(httpEntity); httpPost.setEntity(httpEntity);
// httpPost.setHeader("Content-Type", "application/octet-stream");
response = httpClient.execute(httpPost); response = httpClient.execute(httpPost);
return response; return response;
} }
......
package com.gic.udesk.utils; package com.gic.udesk.utils;
import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.codec.digest.DigestUtils;
/**
* udesk密钥
* @ClassName: UdeskUtils

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:34 AM

*/
public class UdeskUtils { public class UdeskUtils {
public static String getSign(long timeStamp){ public static String getSign(long timeStamp){
return DigestUtils.sha1Hex(UdeskConstant.EMAIL + "&" + UdeskConstant.API_TOKEN + "&" +timeStamp); return DigestUtils.sha1Hex(UdeskConstant.EMAIL + "&" + UdeskConstant.API_TOKEN + "&" +timeStamp);
......
...@@ -7,14 +7,41 @@ package com.gic.udesk.utils.field; ...@@ -7,14 +7,41 @@ package com.gic.udesk.utils.field;
* @date 2020/5/21 10:23 AM
 * @date 2020/5/21 10:23 AM

*/ */
public enum VersionReport3Enum { public enum VersionReport3Enum {
/**
* 0_生产_会员
*/
MEMBER_3("0", "3.0_生产_会员"), MEMBER_3("0", "3.0_生产_会员"),
/**
* 0_生产_企业
*/
ENTERPRISE_3("1", "3.0_生产_企业"), ENTERPRISE_3("1", "3.0_生产_企业"),
/**
* 0_生产_商品
*/
GOODS_3("7", "3.0_生产_商品"), GOODS_3("7", "3.0_生产_商品"),
/**
* 0_生产_营销
*/
MARKETING_E("3", "3.0_生产_营销"), MARKETING_E("3", "3.0_生产_营销"),
/**
* 0_生产_商城
*/
MALL_3("2", "3.0_生产_商城"), MALL_3("2", "3.0_生产_商城"),
/**
* 0_生产_运维
*/
OPERATION_3("4", "3.0_生产_运维"), OPERATION_3("4", "3.0_生产_运维"),
/**
* 0_生产_数据
*/
DATA_3("5", "3.0_生产_数据"), DATA_3("5", "3.0_生产_数据"),
/**
* 0_生产_移动
*/
MOBILE_3("6", "3.0_生产_移动"), MOBILE_3("6", "3.0_生产_移动"),
/**
* 0_生产_微盟商城
*/
WM_MALL_3("8", "3.0_生产_微盟商城"); WM_MALL_3("8", "3.0_生产_微盟商城");
private String code; private String code;
......
...@@ -8,15 +8,45 @@ package com.gic.udesk.utils.field; ...@@ -8,15 +8,45 @@ package com.gic.udesk.utils.field;
* @date 2020/5/21 10:21 AM
 * @date 2020/5/21 10:21 AM

*/ */
public enum VersionReportEnum { public enum VersionReportEnum {
/**
* 4.0_测试_商品
*/
TEST_GOODS_4("0", "4.0_测试_商品"), TEST_GOODS_4("0", "4.0_测试_商品"),
/**
* 4.0_生产_商品
*/
GOODS_4("1", "4.0_生产_商品"), GOODS_4("1", "4.0_生产_商品"),
/**
* 0_生产_会员
*/
MEMBER_4("2", "4.0_生产_会员"), MEMBER_4("2", "4.0_生产_会员"),
/**
* 0_测试_会员
*/
TEST_MEMBER_3("3", "3.0_测试_会员"), TEST_MEMBER_3("3", "3.0_测试_会员"),
/**
* 0_生产_会员
*/
MEMBER_3("4", "3.0_生产_会员"), MEMBER_3("4", "3.0_生产_会员"),
/**
* 0_测试_会员
*/
TEST_MEMBER_4("5", "4.0_测试_会员"), TEST_MEMBER_4("5", "4.0_测试_会员"),
/**
* 0_测试_企业
*/
TEST_ENTERPRISE_4("6", "4.0_测试_企业"), TEST_ENTERPRISE_4("6", "4.0_测试_企业"),
/**
* 0_生产_企
*/
ENTERPRISE_4("7", "4.0_生产_企"), ENTERPRISE_4("7", "4.0_生产_企"),
/**
* 0_测试_企业
*/
TEST_ENTERPRISE_3("8", "3.0_测试_企业"), TEST_ENTERPRISE_3("8", "3.0_测试_企业"),
/**
* 0_生产_企业
*/
ENTERPRISE_3("9", "3.0_生产_企业"); ENTERPRISE_3("9", "3.0_生产_企业");
private String code; private String code;
......
...@@ -27,7 +27,13 @@ import com.gic.udesk.qo.TicketListQO; ...@@ -27,7 +27,13 @@ import com.gic.udesk.qo.TicketListQO;
import com.gic.udesk.service.GicTicketApiService; import com.gic.udesk.service.GicTicketApiService;
import com.gic.udesk.service.UdeskBaseApiService; import com.gic.udesk.service.UdeskBaseApiService;
import com.gic.udesk.web.utils.UdeskHttpClientUtil; import com.gic.udesk.web.utils.UdeskHttpClientUtil;
/**
* gic工单
* @ClassName: GicTicketController

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:39 AM

*/
@RestController @RestController
public class GicTicketController { public class GicTicketController {
private static final Logger LOGGER = LogManager.getLogger(GicTicketController.class); private static final Logger LOGGER = LogManager.getLogger(GicTicketController.class);
...@@ -37,6 +43,11 @@ public class GicTicketController { ...@@ -37,6 +43,11 @@ public class GicTicketController {
@Autowired @Autowired
private GicTicketApiService gicTicketApiService; private GicTicketApiService gicTicketApiService;
/**
* udesk请求返回正确码
*/
public static final int UDESK_SUCCESS_CODE = 1000;
@RequestMapping("/get-gic-service-select") @RequestMapping("/get-gic-service-select")
@IgnoreLogin @IgnoreLogin
public RestResponse getGicServiceSelect() { public RestResponse getGicServiceSelect() {
...@@ -113,7 +124,7 @@ public class GicTicketController { ...@@ -113,7 +124,7 @@ public class GicTicketController {
String replyRespStr = UdeskHttpClientUtil.postUdeskJsonFromJsonForFile("/tickets/upload_file", Integer.parseInt(ticketId), file); String replyRespStr = UdeskHttpClientUtil.postUdeskJsonFromJsonForFile("/tickets/upload_file", Integer.parseInt(ticketId), file);
LOGGER.info("desk工单上传附件返回为{}", replyRespStr); LOGGER.info("desk工单上传附件返回为{}", replyRespStr);
UploadFileDTO result = JSON.parseObject(replyRespStr, UploadFileDTO.class); UploadFileDTO result = JSON.parseObject(replyRespStr, UploadFileDTO.class);
if (result.getCode() == 1000) { if (result.getCode() == UDESK_SUCCESS_CODE) {
return RestResponse.success(); return RestResponse.success();
} }
return RestResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), result.getMessage()); return RestResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), result.getMessage());
......
...@@ -15,7 +15,13 @@ import com.gic.udesk.constant.UdeskSharedConstant; ...@@ -15,7 +15,13 @@ import com.gic.udesk.constant.UdeskSharedConstant;
import com.gic.udesk.dto.UdeskMessageDTO; import com.gic.udesk.dto.UdeskMessageDTO;
import com.gic.udesk.service.TapdMessageApiService; import com.gic.udesk.service.TapdMessageApiService;
import com.gic.udesk.service.UdeskMessageApiService; import com.gic.udesk.service.UdeskMessageApiService;
/**
* 监听消息
* @ClassName: MessageController

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:38 AM

*/
@RestController @RestController
public class MessageController { public class MessageController {
private static final Logger logger = LogManager.getLogger(MessageController.class); private static final Logger logger = LogManager.getLogger(MessageController.class);
......
...@@ -11,7 +11,13 @@ import com.gic.commons.webapi.reponse.RestResponse; ...@@ -11,7 +11,13 @@ import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.enterprise.ano.IgnoreLogin; import com.gic.enterprise.ano.IgnoreLogin;
import com.gic.enterprise.utils.ResultControllerUtils; import com.gic.enterprise.utils.ResultControllerUtils;
import com.gic.udesk.service.TapdConfigApiService; import com.gic.udesk.service.TapdConfigApiService;
/**
* tapd字典
* @ClassName: TapdConfigController

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:38 AM

*/
@RestController @RestController
public class TapdConfigController { public class TapdConfigController {
......
...@@ -32,7 +32,13 @@ import org.apache.http.util.EntityUtils; ...@@ -32,7 +32,13 @@ import org.apache.http.util.EntityUtils;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
/**
* 链接工具
* @ClassName: UdeskHttpClientUtil

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:39 AM

*/
public class UdeskHttpClientUtil { public class UdeskHttpClientUtil {
private static final Logger logger = LogManager.getLogger(UdeskHttpClientUtil.class); private static final Logger logger = LogManager.getLogger(UdeskHttpClientUtil.class);
...@@ -87,7 +93,7 @@ public class UdeskHttpClientUtil { ...@@ -87,7 +93,7 @@ public class UdeskHttpClientUtil {
* @return String * @return String
* @throws URISyntaxException * @throws URISyntaxException
*/ */
private static String getURIBuilder(String uri, Map<String, Object> requestParams) throws URISyntaxException { private static String getUriBuilder(String uri, Map<String, Object> requestParams) throws URISyntaxException {
URIBuilder uriBuilder = new URIBuilder( uri); URIBuilder uriBuilder = new URIBuilder( uri);
if (requestParams != null && requestParams.size() > 0) { if (requestParams != null && requestParams.size() > 0) {
for (Map.Entry<String, Object> entry : requestParams.entrySet()) { for (Map.Entry<String, Object> entry : requestParams.entrySet()) {
...@@ -103,21 +109,21 @@ public class UdeskHttpClientUtil { ...@@ -103,21 +109,21 @@ public class UdeskHttpClientUtil {
/** /**
* 拼接URL * 拼接URL
*/ */
private static String getURL(String url, Map<String, Object> param) { private static String getUrl(String url, Map<String, Object> param) {
if (param != null && param.size() > 0) { if (param != null && param.size() > 0) {
StringBuilder urlSB = new StringBuilder(url); StringBuilder urlStringBuilder = new StringBuilder(url);
Set<Map.Entry<String, Object>> paramSet = param.entrySet(); Set<Map.Entry<String, Object>> paramSet = param.entrySet();
boolean isFirst = true; boolean isFirst = true;
for (Map.Entry<String, Object> entry : paramSet) { for (Map.Entry<String, Object> entry : paramSet) {
if (isFirst) { if (isFirst) {
urlSB.append("?"); urlStringBuilder.append("?");
isFirst = false; isFirst = false;
} else { } else {
urlSB.append("&"); urlStringBuilder.append("&");
} }
urlSB.append(entry.getKey()).append("=").append(entry.getValue()); urlStringBuilder.append(entry.getKey()).append("=").append(entry.getValue());
} }
return urlSB.toString(); return urlStringBuilder.toString();
} }
return url; return url;
} }
......
package com.gic.udesk.web.utils; package com.gic.udesk.web.utils;
import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.codec.digest.DigestUtils;
/**
* udesk密钥
* @ClassName: UdeskUtils

* @Description: 

* @author guojuxing

* @date 2020/9/18 10:39 AM

*/
public class UdeskUtils { public class UdeskUtils {
public static String getSign(long timeStamp){ public static String getSign(long timeStamp){
return DigestUtils.sha1Hex("jingjiawei@demogic.com&2a83c020-2309-4064-b4eb-af1367425c99&" +timeStamp); return DigestUtils.sha1Hex("jingjiawei@demogic.com&2a83c020-2309-4064-b4eb-af1367425c99&" +timeStamp);
......
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