Commit 4bff9deb by 徐高华

sql

parent 67950e11
......@@ -51,7 +51,7 @@ public class GroupChatDTO implements Serializable{
/**gic企业ID*/
private String enterpriseId;
/**gic侧状态1可用,2不可用*/
private Integer statusFlag;
private Integer gicFlag;
public void setGroupChatId(Long groupChatId){
this.groupChatId = groupChatId;
......@@ -186,11 +186,12 @@ public class GroupChatDTO implements Serializable{
public String getEnterpriseId(){
return enterpriseId;
}
public void setStatusFlag(Integer statusFlag){
this.statusFlag = statusFlag;
}
public Integer getStatusFlag(){
return statusFlag;
}
public Integer getGicFlag() {
return gicFlag;
}
public void setGicFlag(Integer gicFlag) {
this.gicFlag = gicFlag;
}
}
\ No newline at end of file
......@@ -2,6 +2,7 @@ package com.gic.haoban.manage.api.dto.qdto.chat;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
public class GroupChatSearchQDTO implements Serializable {
......@@ -12,7 +13,36 @@ public class GroupChatSearchQDTO implements Serializable {
private String wxEnterpriseId;
private String enterpriseId;
private String searchParams;
// 群状态 0跟进人正常1跟进人离职2离职继承中 4已解散
private Integer status;
private Date dismissStartDate;
private Date dismissEndDate;
// 群主列表
private List<String> staffIdList;
public Date getDismissStartDate() {
return dismissStartDate;
}
public Date getDismissEndDate() {
return dismissEndDate;
}
public List<String> getStaffIdList() {
return staffIdList;
}
public void setDismissStartDate(Date dismissStartDate) {
this.dismissStartDate = dismissStartDate;
}
public void setDismissEndDate(Date dismissEndDate) {
this.dismissEndDate = dismissEndDate;
}
public void setStaffIdList(List<String> staffIdList) {
this.staffIdList = staffIdList;
}
public Date getStartDate() {
return startDate;
......@@ -34,10 +64,6 @@ public class GroupChatSearchQDTO implements Serializable {
return searchParams;
}
public Integer getStatus() {
return status;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
......@@ -58,7 +84,12 @@ public class GroupChatSearchQDTO implements Serializable {
this.searchParams = searchParams;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
}
......@@ -50,7 +50,7 @@ public class TabGroupChat implements Serializable{
private Integer quitMemberCount;
/**gic企业ID*/
private String enterpriseId;
private Integer statusFlag;
private Integer gicFlag;
private Integer initFlag ;
private String wxChatId3th;
......@@ -203,11 +203,12 @@ public class TabGroupChat implements Serializable{
public String getEnterpriseId(){
return enterpriseId;
}
public void setStatusFlag(Integer statusFlag){
this.statusFlag = statusFlag;
}
public Integer getStatusFlag(){
return statusFlag;
}
public Integer getGicFlag() {
return gicFlag;
}
public void setGicFlag(Integer gicFlag) {
this.gicFlag = gicFlag;
}
}
\ No newline at end of file
......@@ -96,7 +96,7 @@ public class GroupChatServiceImpl implements GroupChatService {
return;
}
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId);
this.insertGroupChat(qwDTO, wxChatId, 0, false);
this.addGroupChat(qwDTO, wxChatId, 0, false);
}
@Override
......@@ -254,7 +254,7 @@ public class GroupChatServiceImpl implements GroupChatService {
if (qwDTO.needOpenUserIdDk()) {
userId = staff.getWxOpenUseId();
}
this.syncGroupChat(qwDTO, Arrays.asList(userId), null, false);
this.syncGroupChatList(qwDTO, Arrays.asList(userId), null, false);
}
/**
......@@ -284,26 +284,26 @@ public class GroupChatServiceImpl implements GroupChatService {
.map(dto -> dto.getWxUserId()).collect(Collectors.toList());
}
if (CollectionUtils.isNotEmpty(userIdList)) {
this.syncGroupChat(qwDTO, userIdList, null, true);
this.syncGroupChatList(qwDTO, userIdList, null, true);
}
pageNum++;
}
}
// 同步成员的群
private void syncGroupChat(WxEnterpriseQwDTO qwDTO, List<String> userIdList, String cursor,
// 同步群列表
private void syncGroupChatList(WxEnterpriseQwDTO qwDTO, List<String> userIdList, String cursor,
boolean syncDetailFlag) {
logger.info("qwDTO={},idlist={},cursor={}", JSON.toJSONString(qwDTO), JSON.toJSONString(userIdList), cursor);
SecretSettingDTO secretSetting = secretSettingService.getSecretSetting(qwDTO.getWxEnterpriseId(),
SecretTypeEnum.CUSTOMIZED_APP.getVal());
if (null == secretSetting) {
logger.info("没有配置代开应用");
logger.info("配置代开应用");
}
String secret = secretSetting.getSecretVal();
ServiceResponse<GroupChatListDTO> resp = this.qywxChatApiService.groupchatList(qwDTO.getDkCorpid(), secret,
userIdList, limit, cursor);
if (!resp.isSuccess()) {
logger.info("拉取群异常={}", JSON.toJSON(resp));
logger.info("拉取群列表异常={}", JSON.toJSON(resp));
return;
}
GroupChatListDTO dto = resp.getResult();
......@@ -312,39 +312,45 @@ public class GroupChatServiceImpl implements GroupChatService {
for (GroupChatListItemDTO item : list) {
String wxChatId = item.getChat_id();
int chatStatus = item.getStatus();
this.insertGroupChat(qwDTO, wxChatId, chatStatus, syncDetailFlag);
this.addGroupChat(qwDTO, wxChatId, chatStatus, syncDetailFlag);
}
// 从企微拉取下一批数据
if (org.apache.commons.lang3.StringUtils.isNotBlank(cursor)) {
this.syncGroupChat(qwDTO, userIdList, cursor, syncDetailFlag);
if (StringUtils.isNotBlank(cursor)) {
this.syncGroupChatList(qwDTO, userIdList, cursor, syncDetailFlag);
}
}
/**
* 新增群记录, 如果是更新,只更新群状态,新增只记录群id和群状态,其他数据都在详情修改维护
*/
private void insertGroupChat(WxEnterpriseQwDTO qwDTO, String wxChatId, int chatStatus, boolean syncDetailFlag) {
TabGroupChat groupChat = this.groupChatMapper.selectByWxChatId(qwDTO.getWxEnterpriseId(), wxChatId);
private void addGroupChat(WxEnterpriseQwDTO qwDTO, String wxChatId, int chatStatus, boolean syncDetailFlag) {
String wxEnterpriseId = qwDTO.getWxEnterpriseId();
TabGroupChat groupChat = this.groupChatMapper.selectByWxChatId(wxEnterpriseId, wxChatId);
Long groupChatId = null;
if (null != groupChat) {
groupChatId = groupChat.getGroupChatId();
logger.info("群已存在,chatid={},groupChatId={}", wxChatId, groupChatId);
this.groupChatMapper.updateChatStatus(groupChatId, chatStatus);
logger.info("更新群状态,wxchatid={},groupChatId={},新老状态={}", wxChatId, groupChatId, chatStatus,
groupChat.getChatStatus());
if (groupChat.getChatStatus() != chatStatus) {
this.groupChatMapper.updateChatStatus(groupChatId, chatStatus);
}
} else {
groupChatId = UniqueIdUtils.uniqueLong();
TabGroupChat chat = new TabGroupChat();
chat.setGroupChatId(groupChatId);
chat.setWxEnterpriseId(qwDTO.getWxEnterpriseId());
chat.setWxEnterpriseId(wxEnterpriseId);
chat.setWxChatId(wxChatId);
chat.setChatStatus(chatStatus);
chat.setCreateTime(new Date());
chat.setUpdateTime(new Date());
chat.setStatusFlag(0);
chat.setGicFlag(0);
chat.setDeleteFlag(0);
chat.setTotalCount(0);
if (syncDetailFlag) {
// 标识初始化中,会在查询群详情处理
chat.setInitFlag(2);
} else {
// 标识未初始化,由于异步,需要异步获取群详情
chat.setInitFlag(0);
}
chat.setTotalMemberCount(0);
......@@ -387,8 +393,7 @@ public class GroupChatServiceImpl implements GroupChatService {
} else {
logger.info("群主未关联好办,不同步群成员,userid={}", owner);
}
int statusFlag = chat.getStatusFlag();
if (StringUtils.isBlank(enterpriseId) && statusFlag == 0) {
if (StringUtils.isBlank(enterpriseId) && null != staff) {
logger.info("开始匹配群的gic商户id,staffid={}", staff.getStaffId());
List<StaffClerkRelationDTO> clerkList = this.staffClerkRelationService.listByStaffId(wxEnterpriseId,
staff.getStaffId());
......@@ -403,8 +408,8 @@ public class GroupChatServiceImpl implements GroupChatService {
}
}
logger.info("更新群信息={}", JSON.toJSONString(chat));
if (statusFlag == 0 && StringUtils.isNotEmpty(chat.getEnterpriseId())) {
chat.setStatusFlag(1);
if (StringUtils.isNotEmpty(chat.getEnterpriseId())) {
chat.setGicFlag(1);
}
this.groupChatMapper.update(chat);
if (null == staff) {
......
......@@ -22,7 +22,7 @@
<result column="quit_count" property="quitCount" />
<result column="quit_member_count" property="quitMemberCount" />
<result column="enterprise_id" property="enterpriseId" />
<result column="status_flag" property="statusFlag" />
<result column="gic_flag" property="gicFlag" />
<result column="init_flag" property="initFlag" />
<result column="wx_chat_id_3th" property="wxChatId3th" />
</resultMap>
......@@ -46,7 +46,7 @@
quit_count,
quit_member_count,
enterprise_id,
status_flag , init_flag , wx_chat_id_3th
gic_flag , init_flag , wx_chat_id_3th
</sql>
<!-- ===================== 新增 ======================== -->
<insert id="insert"
......@@ -72,7 +72,7 @@
quit_count,
quit_member_count,
enterprise_id,
status_flag , init_flag
gic_flag , init_flag
)VALUES(
#{groupChatId},
#{wxEnterpriseId},
......@@ -93,7 +93,7 @@
#{quitCount},
#{quitMemberCount},
#{enterpriseId},
#{statusFlag} , #{initFlag}
#{gicFlag} , #{initFlag}
)
]]>
</insert>
......@@ -119,7 +119,7 @@
chat_notice=#{chatNotice},
chat_status=#{chatStatus},
update_time=now(),
status_flag=#{statusFlag},
gic_flag=#{gicFlag},
init_flag = 1
where group_chat_id = #{groupChatId}
]]>
......@@ -187,7 +187,7 @@
</select>
<select id="list" resultMap="result-map-tabHaobanGroupChat">
select <include refid="Base_Column_List" /> from ta_haoban_group_chat where wx_enterprise_id=#{wxEnterpriseId} and delete_flag = 0
select <include refid="Base_Column_List" /> from tab_haoban_group_chat where wx_enterprise_id=#{wxEnterpriseId} and delete_flag = 0
</select>
<update id="updateChatEnterpriseId">
......
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