Commit 15ad233c by 徐高华

会员名称

parent 34424e0a
...@@ -26,7 +26,10 @@ public interface GroupChatMapper { ...@@ -26,7 +26,10 @@ public interface GroupChatMapper {
public int insert(TabGroupChat chat); public int insert(TabGroupChat chat);
public int update(TabGroupChat chat); public int update(TabGroupChat chat);
/**
* 更新代开发应用的群ID
*/
public void updateWxChatIdDk(@Param("staffId") String staffId, @Param("name") String name, public void updateWxChatIdDk(@Param("staffId") String staffId, @Param("name") String name,
@Param("chatAddTime") Date chatAddTime, @Param("wxChatIdDk") String wxChatIdDk); @Param("chatAddTime") Date chatAddTime, @Param("wxChatIdDk") String wxChatIdDk);
......
...@@ -28,7 +28,7 @@ public interface GroupChatService { ...@@ -28,7 +28,7 @@ public interface GroupChatService {
// 处理企微群事件 // 处理企微群事件
public void handChatNotice(String params); public void handChatNotice(String params);
// 定时初始化新建的群 // 定时初始化新建的群,获取代开发的群ID
public void initGroupChatForTimer(String params); public void initGroupChatForTimer(String params);
/** /**
......
...@@ -292,22 +292,43 @@ public class GroupChatServiceImpl implements GroupChatService { ...@@ -292,22 +292,43 @@ public class GroupChatServiceImpl implements GroupChatService {
@Override @Override
public void initGroupChatForTimer(String params) { public void initGroupChatForTimer(String params) {
List<TabGroupChat> initList = this.groupChatMapper.listAllNeedInit(); logger.info("企微群定时,初始化");
if (CollectionUtils.isNotEmpty(initList)) { String key = "initGroupChatForTimer";
logger.info("待初始化群数={}", initList.size()); try {
for (TabGroupChat item : initList) { Object o = RedisUtil.getCache(key);
String wxEnterpriseId = item.getWxEnterpriseId(); if (null != o) {
Long groupChatId = item.getGroupChatId(); return;
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId);
this.updateGroupChatDetail(qwDTO, groupChatId, true);
} }
} RedisUtil.setCache(key, "1");
List<TabGroupChat> initList = this.groupChatMapper.listAllNeedInit();
List<TabGroupChat> list = this.groupChatMapper.listAllNeedInitWxChatIdDk(); if (CollectionUtils.isNotEmpty(initList)) {
for (TabGroupChat item : list) { logger.info("初始化群,数量={}", initList.size());
String wxEnterpriseId = item.getWxEnterpriseId(); for (TabGroupChat item : initList) {
String staffId = item.getStaffId(); try {
this.updateWxChatIdDk(wxEnterpriseId, staffId); 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 { ...@@ -808,23 +829,25 @@ public class GroupChatServiceImpl implements GroupChatService {
} }
private void updateWxChatIdDk(String wxEnterpriseId, String staffId) { private void updateWxChatIdDk(String wxEnterpriseId, String staffId) {
logger.info("更新代开chatid={},staff={}", wxEnterpriseId, staffId);
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId); 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); TabHaobanStaff stff = this.staffMapper.selectByPrimaryKey(staffId);
String userid = stff.getWxUserId(); String userid = stff.getWxUserId();
if (qwDTO.needOpenUserIdDk()) { if (qwDTO.needOpenUserIdDk()) {
userid = stff.getWxOpenUseId(); 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) { private void updateWxChatIdDk(WxEnterpriseQwDTO qwDTO, List<String> userIdList, String cursor, String staffId,
logger.info("qwDTO={},idlist={},cursor={}", JSON.toJSONString(qwDTO), JSON.toJSONString(userIdList), cursor); String secret) {
SecretSettingDTO secretSetting = secretSettingService.getSecretSetting(qwDTO.getWxEnterpriseId(),
SecretTypeEnum.CUSTOMIZED_APP.getVal());
if (null == secretSetting) {
logger.info("未配置代开应用");
}
String secret = secretSetting.getSecretVal();
ServiceResponse<GroupChatListDTO> resp = this.qywxChatApiService.groupchatList(qwDTO.getDkCorpid(), secret, ServiceResponse<GroupChatListDTO> resp = this.qywxChatApiService.groupchatList(qwDTO.getDkCorpid(), secret,
userIdList, limit, cursor); userIdList, limit, cursor);
if (!resp.isSuccess()) { if (!resp.isSuccess()) {
...@@ -836,17 +859,18 @@ public class GroupChatServiceImpl implements GroupChatService { ...@@ -836,17 +859,18 @@ public class GroupChatServiceImpl implements GroupChatService {
List<GroupChatListItemDTO> list = dto.getGroup_chat_list(); List<GroupChatListItemDTO> list = dto.getGroup_chat_list();
for (GroupChatListItemDTO item : list) { for (GroupChatListItemDTO item : list) {
String wxChatIdDk = item.getChat_id(); String wxChatIdDk = item.getChat_id();
// 控制同时刷新
ServiceResponse<GroupChatDetailDTO> detailResp = this.qywxChatApiService ServiceResponse<GroupChatDetailDTO> detailResp = this.qywxChatApiService
.groupchatDetail(qwDTO.getDkCorpid(), secret, wxChatIdDk, 1); .groupchatDetail(qwDTO.getDkCorpid(), secret, wxChatIdDk, 1);
GroupChatDetailDTO detail = detailResp.getResult(); if (detailResp.isSuccess()) {
Long createTimeLong = detail.getCreate_time() * 1000; GroupChatDetailDTO detail = detailResp.getResult();
String name = emoji(detail.getName()); Long createTimeLong = detail.getCreate_time() * 1000;
this.groupChatMapper.updateWxChatIdDk(staffId, name, new Date(createTimeLong), wxChatIdDk); 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)) { 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 @@ ...@@ -141,7 +141,7 @@
</update> </update>
<update id="updateWxChatIdDk"> <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>
<update id="updateChatStatus"> <update id="updateChatStatus">
...@@ -219,7 +219,7 @@ ...@@ -219,7 +219,7 @@
</select> </select>
<select id="listAllNeedInit" resultMap="result-map-tabHaobanGroupChat"> <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>
<select id="listAllNeedInitWxChatIdDk" resultMap="result-map-tabHaobanGroupChat"> <select id="listAllNeedInitWxChatIdDk" resultMap="result-map-tabHaobanGroupChat">
......
...@@ -42,7 +42,19 @@ public class MemberController { ...@@ -42,7 +42,19 @@ public class MemberController {
MemberDTO member = this.memberService.getMember(memberId); MemberDTO member = this.memberService.getMember(memberId);
MemberChatVO vo = new MemberChatVO(); MemberChatVO vo = new MemberChatVO();
if (null != member) { 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.setMemberImage(member.getThirdImgUrl());
vo.setPhone(member.getPhoneNumber()); 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