Commit b031640c by guojuxing

创建udesk客户

parent 3beb65b7
......@@ -17,6 +17,15 @@ public class GicTicketDTO implements Serializable{
* 1:gic基础服务 2:应用服务
*/
private Integer businessModuleType;
/**
* 查找客户时使用的类型
*/
private String type;
/**
* 与类型type对应的值
*/
private String type_content;
/**
* 标题 必填
......@@ -46,6 +55,14 @@ public class GicTicketDTO implements Serializable{
*/
private Map<String, String> ticket_field;
private Integer gicEnterpriseId;
private Integer gicUserId;
private String gicUserName;
private String gicEnterpriseName;
public String getSubject() {
return subject;
}
......@@ -101,4 +118,52 @@ public class GicTicketDTO implements Serializable{
public void setTicketFieldJsonStr(String ticketFieldJsonStr) {
this.ticketFieldJsonStr = ticketFieldJsonStr;
}
public Integer getGicEnterpriseId() {
return gicEnterpriseId;
}
public void setGicEnterpriseId(Integer gicEnterpriseId) {
this.gicEnterpriseId = gicEnterpriseId;
}
public Integer getGicUserId() {
return gicUserId;
}
public void setGicUserId(Integer gicUserId) {
this.gicUserId = gicUserId;
}
public String getGicUserName() {
return gicUserName;
}
public void setGicUserName(String gicUserName) {
this.gicUserName = gicUserName;
}
public String getGicEnterpriseName() {
return gicEnterpriseName;
}
public void setGicEnterpriseName(String gicEnterpriseName) {
this.gicEnterpriseName = gicEnterpriseName;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getType_content() {
return type_content;
}
public void setType_content(String type_content) {
this.type_content = type_content;
}
}
package com.gic.udesk.dao.mapper;
import com.gic.udesk.entity.TabUdeskCustomers;
import org.apache.ibatis.annotations.Param;
public interface TabUdeskCustomersMapper {
/**
* 根据主键删除
*
* @param id 主键
* @return 更新条目数
*/
int deleteByPrimaryKey(Integer id);
/**
* 插入一条记录
*
* @param record 实体对象
* @return 更新条目数
*/
int insert(TabUdeskCustomers record);
/**
* 动态插入一条记录
*
* @param record 实体对象
* @return 更新条目数
*/
int insertSelective(TabUdeskCustomers record);
/**
* 根据主键查询
*
* @param id 主键
* @return 实体对象
*/
TabUdeskCustomers selectByPrimaryKey(Integer id);
/**
* 根据主键动态更新记录
*
* @param record 实体对象
* @return 更新条目数
*/
int updateByPrimaryKeySelective(TabUdeskCustomers record);
/**
* 根据主键更新记录
*
* @param record 实体对象
* @return 更新条目数
*/
int updateByPrimaryKey(TabUdeskCustomers record);
TabUdeskCustomers countCustomerId(@Param("enterpriseId") Integer enterpriseId, @Param("userId") Integer userId);
}
\ No newline at end of file
package com.gic.udesk.entity;
import java.util.Date;
/**
* tab_udesk_customers
*/
public class TabUdeskCustomers {
/**
* 主键id
*/
private Integer id;
/**
* 商户ID
*/
private Integer enterpriseId;
/**
* gic用户id
*/
private Integer userId;
/**
* udesk客户ID
*/
private Integer customerId;
/**
*
*/
private Date createTime;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(Integer enterpriseId) {
this.enterpriseId = enterpriseId;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public Integer getCustomerId() {
return customerId;
}
public void setCustomerId(Integer customerId) {
this.customerId = customerId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
}
\ No newline at end of file
package com.gic.udesk.service;
import com.gic.udesk.entity.TabUdeskCustomers;
public interface UdeskCustomersService {
int save(Integer enterpriseId, Integer customerId, Integer userId);
TabUdeskCustomers hasCustomerId(Integer enterpriseId, Integer userId);
}
package com.gic.udesk.service.impl;
import com.gic.udesk.dao.mapper.TabUdeskCustomersMapper;
import com.gic.udesk.entity.TabUdeskCustomers;
import com.gic.udesk.service.UdeskCustomersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
@Service("udeskCustomersService")
public class UdeskCustomersServiceImpl implements UdeskCustomersService{
@Autowired
private TabUdeskCustomersMapper tabUdeskCustomersMapper;
@Override
public int save(Integer enterpriseId, Integer customerId, Integer userId) {
TabUdeskCustomers record = new TabUdeskCustomers();
record.setCreateTime(new Date());
record.setCustomerId(customerId);
record.setUserId(userId);
record.setEnterpriseId(enterpriseId);
return tabUdeskCustomersMapper.insert(record);
}
@Override
public TabUdeskCustomers hasCustomerId(Integer enterpriseId, Integer userId) {
TabUdeskCustomers obj = tabUdeskCustomersMapper.countCustomerId(enterpriseId, userId);
return obj;
}
}
......@@ -9,8 +9,10 @@ import com.gic.udesk.dto.UdeskTicketDetailDTO;
import com.gic.udesk.dto.customfield.UdeskCustomFieldOptionDTO;
import com.gic.udesk.dto.gic.TicketRepliesDTO;
import com.gic.udesk.dto.gic.UdeskEnterpriseDTO;
import com.gic.udesk.entity.TabUdeskCustomers;
import com.gic.udesk.entity.TabUdeskEnterprise;
import com.gic.udesk.qo.TicketListQO;
import com.gic.udesk.service.UdeskCustomersService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
......@@ -39,6 +41,8 @@ public class GicTicketApiServiceImpl implements GicTicketApiService{
private UdeskBaseApiService udeskBaseApiService;
@Autowired
private UdeskEnterpriseService udeskEnterpriseService;
@Autowired
private UdeskCustomersService udeskCustomersService;
/**
* udesk工单接口 (创建)
......@@ -54,6 +58,11 @@ public class GicTicketApiServiceImpl implements GicTicketApiService{
*/
private static final String TICKET_DETAIL = "/tickets/detail";
/**
* 客户
*/
private static final String CUSTOMERS = "/customers";
@Override
public ServiceResponse<Integer> saveTicket(GicTicketDTO gicTicketDTO) {
Integer businessModuleType = gicTicketDTO.getBusinessModuleType();
......@@ -68,6 +77,44 @@ public class GicTicketApiServiceImpl implements GicTicketApiService{
gicTicketDTO.setTemplate_id(UdeskConstant.APP_MODULE_TEMPLATE_ID);
}
//查询有无客户ID
Integer gicEnterpriseId = gicTicketDTO.getGicEnterpriseId();
Integer gicUserId = gicTicketDTO.getGicUserId();
String gicUserName = gicTicketDTO.getGicUserName();
TabUdeskCustomers obj = udeskCustomersService.hasCustomerId(gicEnterpriseId, gicUserId);
if (obj != null) {
gicTicketDTO.setType("customer_id");
gicTicketDTO.setType_content(obj.getCustomerId().toString());
} else {
//创建客户
JSONObject customer = new JSONObject();
JSONObject customerSub = new JSONObject();
//客户名称
customerSub.put("nick_name", gicUserName);
customer.put("customer", customerSub);
LOGGER.info("gic新建udesk客户,内容为:{}", customer.toJSONString());
String customerStr = UdeskHttpClientUtil
.postUdeskJsonFromJson(CUSTOMERS, customer.toJSONString());
LOGGER.info("gic新建udesk客户,返回为:{}", customerStr);
JSONObject customerRes = JSONObject.parseObject(customerStr);
if (customerRes != null) {
int code = customerRes.getIntValue("code");
JSONObject customerObj = customerRes.getJSONObject("customer");
if (code == UdeskConstant.UDESK_SUCCESS_CODE) {
int customerId = customerObj.getIntValue("id");
gicTicketDTO.setType("customer_id");
gicTicketDTO.setType_content(obj.getCustomerId().toString());
//保存到
udeskCustomersService.save(gicEnterpriseId, customerId, gicUserId);
} else {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), customerRes.getString("message"));
}
}
}
Map<String, Object> paramMap = new HashMap<>(4);
paramMap.put("ticket", gicTicketDTO);
String params = JSON.toJSONString(paramMap);
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gic.udesk.dao.mapper.TabUdeskCustomersMapper">
<resultMap id="BaseResultMap" type="com.gic.udesk.entity.TabUdeskCustomers">
<id column="id" jdbcType="INTEGER" property="id" />
<result column="enterprise_id" jdbcType="INTEGER" property="enterpriseId" />
<result column="user_id" jdbcType="INTEGER" property="userId" />
<result column="customer_id" jdbcType="INTEGER" property="customerId" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
</resultMap>
<sql id="Base_Column_List">
id, enterprise_id, user_id, customer_id, create_time
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tab_udesk_customers
where id = #{id,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from tab_udesk_customers
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.gic.udesk.entity.TabUdeskCustomers">
insert into tab_udesk_customers (id, enterprise_id, user_id,
customer_id, create_time)
values (#{id,jdbcType=INTEGER}, #{enterpriseId,jdbcType=INTEGER}, #{userId,jdbcType=INTEGER},
#{customerId,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" parameterType="com.gic.udesk.entity.TabUdeskCustomers">
insert into tab_udesk_customers
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="enterpriseId != null">
enterprise_id,
</if>
<if test="userId != null">
user_id,
</if>
<if test="customerId != null">
customer_id,
</if>
<if test="createTime != null">
create_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=INTEGER},
</if>
<if test="enterpriseId != null">
#{enterpriseId,jdbcType=INTEGER},
</if>
<if test="userId != null">
#{userId,jdbcType=INTEGER},
</if>
<if test="customerId != null">
#{customerId,jdbcType=INTEGER},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.gic.udesk.entity.TabUdeskCustomers">
update tab_udesk_customers
<set>
<if test="enterpriseId != null">
enterprise_id = #{enterpriseId,jdbcType=INTEGER},
</if>
<if test="userId != null">
user_id = #{userId,jdbcType=INTEGER},
</if>
<if test="customerId != null">
customer_id = #{customerId,jdbcType=INTEGER},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.gic.udesk.entity.TabUdeskCustomers">
update tab_udesk_customers
set enterprise_id = #{enterpriseId,jdbcType=INTEGER},
user_id = #{userId,jdbcType=INTEGER},
customer_id = #{customerId,jdbcType=INTEGER},
create_time = #{createTime,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=INTEGER}
</update>
<select id="countCustomerId" resultMap="BaseResultMap">
select <include refid="Base_Column_List"></include>
from tab_udesk_customers
where enterprise_id = #{enterpriseId}
and user_id = #{userId}
</select>
</mapper>
\ No newline at end of file
......@@ -4,6 +4,7 @@ import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import com.gic.enterprise.utils.UserDetailUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
......@@ -75,6 +76,10 @@ public class GicTicketController {
@IgnoreLogin
public RestResponse addTicket(GicTicketDTO dto) {
dto.setTicket_field(JSON.parseObject(dto.getTicketFieldJsonStr(), Map.class));
dto.setGicEnterpriseId(UserDetailUtils.getUserDetail().getEnterpriseId());
dto.setGicUserId(UserDetailUtils.getUserDetail().getUserId());
dto.setGicUserName(UserDetailUtils.getUserDetail().getUserInfo().getUserName());
dto.setGicEnterpriseName(UserDetailUtils.getUserDetail().getEnterpriseInfo().getEnterpriseName());
return ResultControllerUtils.commonResult(gicTicketApiService.saveTicket(dto));
}
......
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