Commit 7f779cd3 authored by jay's avatar jay

im规则调整

parent 6bd1e119
package com.house365.beans.entity;
import com.house365.beans.system.DomainObject;
import java.util.Date;
/**
* im接口日志表
*
* @author Created by 365 on 2021/2/4.
*/
public class ImInfoLogEntity extends DomainObject {
private static final long serialVersionUID = 1L;
private String tfId;
private String city;
private String accId;
private Date createTime;
public String getTfId() {
return tfId;
}
public void setTfId(String tfId) {
this.tfId = tfId;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getAccId() {
return accId;
}
public void setAccId(String accId) {
this.accId = accId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
}
package com.house365.ws.dao.mapper;
import com.house365.beans.entity.ImInfoLogEntity;
import org.springframework.stereotype.Repository;
/**
* @author Created by 365 on 2021/2/4.
*/
@Repository
public interface ImInfoLogMapper {
void save(ImInfoLogEntity entity);
}
package com.house365.ws.interfaces.rest;
import com.google.common.base.Strings;
import com.house365.beans.entity.ImInfoLogEntity;
import com.house365.beans.entity.UserEntity;
import com.house365.beans.entity.UserMessageEntity;
import com.house365.rest.context.Parameter;
import com.house365.rest.exception.ServiceRunException;
import com.house365.rest.parameter.House365RestObject;
import com.house365.rest.parameter.House365RestResponse;
import com.house365.ws.dao.mapper.ImInfoLogMapper;
import com.house365.ws.dao.mapper.UserMapper;
import com.house365.ws.dao.mapper.UserMessageMapper;
import com.house365.ws.system.ReturnAppResult;
......@@ -18,10 +20,9 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* im直销组 上线人员信息表
......@@ -37,6 +38,8 @@ public class GetNewUserInfoImpl implements IGetNewUserInfo {
private UserMapper userMapper;
@Autowired
private UserMessageMapper messageMapper;
@Autowired
private ImInfoLogMapper logMapper;
/**
* 对于纯新咨询的客户,随机分配给一位在线IM房博士; 
......@@ -72,7 +75,9 @@ public class GetNewUserInfoImpl implements IGetNewUserInfo {
//查询在线客服list
Map<String, Object> queryMap = new HashMap<>(5);
//测试临时新加部门,上线需要调整
queryMap.put("deptUrlPath", "/1/2/69/70/567/568");
// queryMap.put("deptId", 568);
queryMap.put("deptId", 557);
queryMap.put("onlineStatus", 1);
List<UserEntity> userList = userMapper.queryByConditions(queryMap);
......@@ -116,6 +121,44 @@ public class GetNewUserInfoImpl implements IGetNewUserInfo {
response.setData(data);
response.setResult(ReturnAppResult.APP_SUCCESS.getResultCode());
response.setMsg("查询成功");
//todo 1、查询成功同时添加日志(请求url返回result) 2、聊天机制废除,查询的同时触发新增信息接口
ExecutorService executor = Executors.newCachedThreadPool();
executor.execute(new Runnable() {
@Override
public void run() {
try {
Date now = new Date();
if (!"qlt_527".equals(accId)) {
Map<String, Object> mesMap = new HashMap<>(5);
mesMap.put("sender", tfId);
mesMap.put("receiver", accId);
List<UserMessageEntity> list = messageMapper.queryByConditions(mesMap);
//判断如果存在聊天,则更新时间,不存在则新增一条记录
if (CollectionUtils.isNotEmpty(list)) {
UserMessageEntity oldEntity = list.get(0);
oldEntity.setUpdateTime(now);
messageMapper.update(oldEntity);
} else {
UserMessageEntity entity = new UserMessageEntity();
entity.setSender(tfId);
entity.setReceiver(accId);
entity.setCreateTime(now);
entity.setUpdateTime(now);
messageMapper.save(entity);
}
}
ImInfoLogEntity logEntity = new ImInfoLogEntity();
logEntity.setTfId(tfId);
logEntity.setCity(city);
logEntity.setAccId(accId);
logEntity.setCreateTime(now);
logMapper.save(logEntity);
} catch (Exception e) {
logger.error("同步IM信息失败", e);
}
}
});
} catch (Exception e) {
e.printStackTrace();
logger.error("查询用户信息失败", e);
......
......@@ -53,35 +53,35 @@ public class SaveNewMessage implements ISaveNewMessage {
return JSONObject.fromObject(response).toString();
}
//过滤不是IM咨询组的人信息
if (receiver.startsWith("qlt_") && sender.startsWith("tf_")) {
Date now = new Date();
Map<String, Object> queryMap = new HashMap<>(5);
//测试临时新加部门,上线需要调整
queryMap.put("deptUrlPath", "/1/2/69/70/567/568");
queryMap.put("accId", receiver);
List<UserEntity> userList = userMapper.queryByConditions(queryMap);
if (CollectionUtils.isNotEmpty(userList)) {
Map<String, Object> searchMap = new HashMap<>(5);
searchMap.put("sender", sender);
searchMap.put("receiver", receiver);
List<UserMessageEntity> list = messageMapper.queryByConditions(searchMap);
//判断如果存在聊天,则更新时间,不存在则新增一条记录
if (CollectionUtils.isNotEmpty(list)) {
UserMessageEntity oldEntity = list.get(0);
oldEntity.setUpdateTime(now);
messageMapper.update(oldEntity);
} else {
UserMessageEntity entity = new UserMessageEntity();
entity.setSender(sender);
entity.setReceiver(receiver);
entity.setCreateTime(now);
entity.setUpdateTime(now);
messageMapper.save(entity);
}
response.setResult(ReturnAppResult.APP_SUCCESS.getResultCode());
response.setMsg("同步message成功");
}
}
// if (receiver.startsWith("qlt_") && sender.startsWith("tf_")) {
// Date now = new Date();
// Map<String, Object> queryMap = new HashMap<>(5);
// //测试临时新加部门,上线需要调整
// queryMap.put("deptUrlPath", "/1/2/69/70/567/568");
// queryMap.put("accId", receiver);
// List<UserEntity> userList = userMapper.queryByConditions(queryMap);
// if (CollectionUtils.isNotEmpty(userList)) {
// Map<String, Object> searchMap = new HashMap<>(5);
// searchMap.put("sender", sender);
// searchMap.put("receiver", receiver);
// List<UserMessageEntity> list = messageMapper.queryByConditions(searchMap);
// //判断如果存在聊天,则更新时间,不存在则新增一条记录
// if (CollectionUtils.isNotEmpty(list)) {
// UserMessageEntity oldEntity = list.get(0);
// oldEntity.setUpdateTime(now);
// messageMapper.update(oldEntity);
// } else {
// UserMessageEntity entity = new UserMessageEntity();
// entity.setSender(sender);
// entity.setReceiver(receiver);
// entity.setCreateTime(now);
// entity.setUpdateTime(now);
// messageMapper.save(entity);
// }
// response.setResult(ReturnAppResult.APP_SUCCESS.getResultCode());
// response.setMsg("同步message成功");
// }
// }
} else {
response.setResult(ReturnAppResult.APP_FAIL.getResultCode());
response.setMsg("data参数不能为空");
......
<?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.house365.ws.dao.mapper.ImInfoLogMapper">
<resultMap id="infoMap" type="com.house365.beans.entity.ImInfoLogEntity">
<result property="id" column="id"/>
<result property="tfId" column="tf_id"/>
<result property="city" column="city"/>
<result property="accId" column="acc_id"/>
<result property="createTime" column="create_time"/>
</resultMap>
<insert id="save" parameterType="com.house365.beans.entity.ImInfoLogEntity">
insert into im_info_log (tf_id,city,acc_id,create_time)
values
( #{tfId},#{city},#{accId},#{createTime} )
</insert>
</mapper>
\ No newline at end of file
<?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.house365.ws.dao.mapper.ImInfoLogMapper">
<resultMap id="infoMap" type="com.house365.beans.entity.ImInfoLogEntity">
<result property="id" column="id"/>
<result property="tfId" column="tf_id"/>
<result property="city" column="city"/>
<result property="accId" column="acc_id"/>
<result property="createTime" column="create_time"/>
</resultMap>
<insert id="save" parameterType="com.house365.beans.entity.ImInfoLogEntity">
insert into im_info_log (tf_id,city,acc_id,create_time)
values
( #{tfId},#{city},#{accId},#{createTime} )
</insert>
</mapper>
\ No newline at end of file
<?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.house365.ws.dao.mapper.ImInfoLogMapper">
<resultMap id="infoMap" type="com.house365.beans.entity.ImInfoLogEntity">
<result property="id" column="id"/>
<result property="tfId" column="tf_id"/>
<result property="city" column="city"/>
<result property="accId" column="acc_id"/>
<result property="createTime" column="create_time"/>
</resultMap>
<insert id="save" parameterType="com.house365.beans.entity.ImInfoLogEntity">
insert into im_info_log (tf_id,city,acc_id,create_time)
values
( #{tfId},#{city},#{accId},#{createTime} )
</insert>
</mapper>
\ No newline at end of file
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