Commit 15ad233c by 徐高华

会员名称

parent 34424e0a
......@@ -27,6 +27,9 @@ public interface GroupChatMapper {
public int update(TabGroupChat chat);
/**
* 更新代开发应用的群ID
*/
public void updateWxChatIdDk(@Param("staffId") String staffId, @Param("name") String name,
@Param("chatAddTime") Date chatAddTime, @Param("wxChatIdDk") String wxChatIdDk);
......
......@@ -28,7 +28,7 @@ public interface GroupChatService {
// 处理企微群事件
public void handChatNotice(String params);
// 定时初始化新建的群
// 定时初始化新建的群,获取代开发的群ID
public void initGroupChatForTimer(String params);
/**
......
......@@ -292,22 +292,43 @@ public class GroupChatServiceImpl implements GroupChatService {
@Override
public void initGroupChatForTimer(String params) {
logger.info("企微群定时,初始化");
String key = "initGroupChatForTimer";
try {
Object o = RedisUtil.getCache(key);
if (null != o) {
return;
}
RedisUtil.setCache(key, "1");
List<TabGroupChat> initList = this.groupChatMapper.listAllNeedInit();
if (CollectionUtils.isNotEmpty(initList)) {
logger.info("待初始化群数={}", initList.size());
logger.info("初始化群,数量={}", initList.size());
for (TabGroupChat item : initList) {
try {
String wxEnterpriseId = item.getWxEnterpriseId();
Long groupChatId = item.getGroupChatId();
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId);
this.updateGroupChatDetail(qwDTO, groupChatId, true);
} catch (Exception e) {
e.printStackTrace();
}
}
}
List<TabGroupChat> list = this.groupChatMapper.listAllNeedInitWxChatIdDk();
logger.info("更新群代开发ID,数量={}", list.size());
for (TabGroupChat item : list) {
try {
String wxEnterpriseId = item.getWxEnterpriseId();
String staffId = item.getStaffId();
this.updateWxChatIdDk(wxEnterpriseId, staffId);
} catch (Exception e) {
e.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
RedisUtil.delCache(key);
}
}
......@@ -808,23 +829,25 @@ public class GroupChatServiceImpl implements GroupChatService {
}
private void updateWxChatIdDk(String wxEnterpriseId, String staffId) {
logger.info("更新代开chatid={},staff={}", wxEnterpriseId, staffId);
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId);
SecretSettingDTO secretSetting = secretSettingService.getSecretSetting(qwDTO.getWxEnterpriseId(),
SecretTypeEnum.CUSTOMIZED_APP.getVal());
if (null == secretSetting) {
logger.info("未配置代开应用");
return;
}
String secret = secretSetting.getSecretVal();
TabHaobanStaff stff = this.staffMapper.selectByPrimaryKey(staffId);
String userid = stff.getWxUserId();
if (qwDTO.needOpenUserIdDk()) {
userid = stff.getWxOpenUseId();
}
this.updateWxChatIdDk(qwDTO, Arrays.asList(userid), null, staffId);
this.updateWxChatIdDk(qwDTO, Arrays.asList(userid), null, staffId, secret);
}
private void updateWxChatIdDk(WxEnterpriseQwDTO qwDTO, List<String> userIdList, String cursor, String staffId) {
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("未配置代开应用");
}
String secret = secretSetting.getSecretVal();
private void updateWxChatIdDk(WxEnterpriseQwDTO qwDTO, List<String> userIdList, String cursor, String staffId,
String secret) {
ServiceResponse<GroupChatListDTO> resp = this.qywxChatApiService.groupchatList(qwDTO.getDkCorpid(), secret,
userIdList, limit, cursor);
if (!resp.isSuccess()) {
......@@ -836,17 +859,18 @@ public class GroupChatServiceImpl implements GroupChatService {
List<GroupChatListItemDTO> list = dto.getGroup_chat_list();
for (GroupChatListItemDTO item : list) {
String wxChatIdDk = item.getChat_id();
// 控制同时刷新
ServiceResponse<GroupChatDetailDTO> detailResp = this.qywxChatApiService
.groupchatDetail(qwDTO.getDkCorpid(), secret, wxChatIdDk, 1);
if (detailResp.isSuccess()) {
GroupChatDetailDTO detail = detailResp.getResult();
Long createTimeLong = detail.getCreate_time() * 1000;
String name = emoji(detail.getName());
logger.info("更新代开chatid,staffid={},time={},wxDkid={}", staffId, createTimeLong, wxChatIdDk);
this.groupChatMapper.updateWxChatIdDk(staffId, name, new Date(createTimeLong), wxChatIdDk);
}
// 从企微拉取下一批数据
}
if (org.apache.commons.lang3.StringUtils.isNotBlank(cursor)) {
this.updateWxChatIdDk(qwDTO, userIdList, cursor, staffId);
this.updateWxChatIdDk(qwDTO, userIdList, cursor, staffId, secret);
}
}
......
......@@ -141,7 +141,7 @@
</update>
<update id="updateWxChatIdDk">
update tab_haoban_group_chat set wx_chat_id_dk=#{wxChatIdDk} where staff_id = #{staffId} and chat_add_time=#{chatAddTime} and name=#{name}
update tab_haoban_group_chat set wx_chat_id_dk=#{wxChatIdDk} where staff_id = #{staffId} and chat_add_time=#{chatAddTime} and name=#{name} and wx_chat_id_dk is null
</update>
<update id="updateChatStatus">
......@@ -219,7 +219,7 @@
</select>
<select id="listAllNeedInit" resultMap="result-map-tabHaobanGroupChat">
select <include refid="Base_Column_List" /> from tab_haoban_group_chat where create_time > DATE_ADD(NOW(),INTERVAL -7 day) and init_flag = 0
select <include refid="Base_Column_List" /> from tab_haoban_group_chat where create_time > DATE_ADD(NOW(),INTERVAL -1 day) and init_flag = 0
</select>
<select id="listAllNeedInitWxChatIdDk" resultMap="result-map-tabHaobanGroupChat">
......
......@@ -42,7 +42,19 @@ public class MemberController {
MemberDTO member = this.memberService.getMember(memberId);
MemberChatVO vo = new MemberChatVO();
if (null != member) {
vo.setMemberName(member.getThirdNickname());
String name = member.getMemberName();
String nick = member.getThirdNickname();
String memberName = "";
if (StringUtils.isNoneEmpty(name, nick)) {
memberName = name + "-" + nick;
} else if (StringUtils.isAllBlank(name, nick)) {
memberName = "--";
} else if (StringUtils.isNotBlank(name)) {
memberName = name;
} else {
memberName = nick;
}
vo.setMemberName(memberName);
vo.setMemberImage(member.getThirdImgUrl());
vo.setPhone(member.getPhoneNumber());
}
......
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