Commit fb2640ea by erqian

feat: 互动奖章接口新增

parent 8e508e7f
package com.gic.haoban.manage.api.dto.chat;
import java.io.Serializable;
public class GroupChatHmMemberRelationDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 群活码 ID
*/
private Long chatHmId;
/**
* 群活码编码
*/
private String chatHmCode;
/**
* 群活码名称
*/
private String name;
/**
* 群活码 URL
*/
private String wxQrCode;
/**
* 会员是否已加入,1-已加入,0-未加入
*/
private Integer memberIsJoin = 0;
public Long getChatHmId() {
return chatHmId;
}
public void setChatHmId(Long chatHmId) {
this.chatHmId = chatHmId;
}
public String getChatHmCode() {
return chatHmCode;
}
public void setChatHmCode(String chatHmCode) {
this.chatHmCode = chatHmCode;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getWxQrCode() {
return wxQrCode;
}
public void setWxQrCode(String wxQrCode) {
this.wxQrCode = wxQrCode;
}
public Integer getMemberIsJoin() {
return memberIsJoin;
}
public void setMemberIsJoin(Integer memberIsJoin) {
this.memberIsJoin = memberIsJoin;
}
}
...@@ -6,6 +6,7 @@ import com.gic.api.base.commons.BasePageInfo; ...@@ -6,6 +6,7 @@ import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page; import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse; import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.chat.GroupChatHmDTO; import com.gic.haoban.manage.api.dto.chat.GroupChatHmDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatHmMemberRelationDTO;
import com.gic.haoban.manage.api.dto.hm.HmLinkChatDTO; import com.gic.haoban.manage.api.dto.hm.HmLinkChatDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.ChatHmSearchQDTO; import com.gic.haoban.manage.api.dto.qdto.chat.ChatHmSearchQDTO;
import com.gic.haoban.manage.api.dto.qdto.hm.HmLinkChatQDTO; import com.gic.haoban.manage.api.dto.qdto.hm.HmLinkChatQDTO;
...@@ -55,4 +56,20 @@ public interface GroupChatHmApiService { ...@@ -55,4 +56,20 @@ public interface GroupChatHmApiService {
public ServiceResponse<List<Long>> listHmGroupChatId(String wxEnterpriseId, Long chatHmId) ; public ServiceResponse<List<Long>> listHmGroupChatId(String wxEnterpriseId, Long chatHmId) ;
/**
* 社群列表(会员当前企业所在的社群列表)
* @param memberId
* @param enterpriseId
* @param basePageInfo
* @return
*/
ServiceResponse<Page<GroupChatHmMemberRelationDTO>> memberGroupChatHmPage(String memberId, String enterpriseId, BasePageInfo basePageInfo);
/**
* 会员加入社群的数量
* @param memberId
* @param enterpriseId
* @return
*/
ServiceResponse<Integer> memberJoinGroupChatHmCount(String memberId, String enterpriseId);
} }
...@@ -33,4 +33,5 @@ public interface GroupChatHmMapper { ...@@ -33,4 +33,5 @@ public interface GroupChatHmMapper {
public List<TabGroupChatHm> list(ChatHmSearchQDTO qdto); public List<TabGroupChatHm> list(ChatHmSearchQDTO qdto);
List<TabGroupChatHm> listAvailableByEnterpriseId(@Param("enterpriseId") String enterpriseId);
} }
\ No newline at end of file
...@@ -3,6 +3,7 @@ package com.gic.haoban.manage.service.dao.mapper.chat; ...@@ -3,6 +3,7 @@ package com.gic.haoban.manage.service.dao.mapper.chat;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import com.gic.haoban.manage.service.pojo.bo.chat.GroupChatHmMemberRelationBO;
import com.gic.haoban.manage.service.pojo.bo.chat.UserQuitBO; import com.gic.haoban.manage.service.pojo.bo.chat.UserQuitBO;
import com.gic.haoban.manage.service.pojo.qo.chat.GroupChatUserQO; import com.gic.haoban.manage.service.pojo.qo.chat.GroupChatUserQO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -77,4 +78,13 @@ public interface GroupChatUserMapper { ...@@ -77,4 +78,13 @@ public interface GroupChatUserMapper {
List<UserQuitBO> listQuitNum(@Param("wxEnterpriseId") String wxEnterpriseId ,@Param("start") Date start ,@Param("end") Date end) ; List<UserQuitBO> listQuitNum(@Param("wxEnterpriseId") String wxEnterpriseId ,@Param("start") Date start ,@Param("end") Date end) ;
List<TabGroupChatUser> getByMember(@Param("enterpriseId")String enterpriseId, @Param("memberId")String memberId); List<TabGroupChatUser> getByMember(@Param("enterpriseId")String enterpriseId, @Param("memberId")String memberId);
/**
* 会员加入的社群对应的群活码id
* @param chatHmIds
* @param enterpriseId
* @param memberId
* @return
*/
List<GroupChatHmMemberRelationBO> listMemberChatHmIdByChatHmIdsAndMemberId(@Param("chatHmIds")List<Long> chatHmIds, @Param("enterpriseId")String enterpriseId, @Param("memberId")String memberId);
} }
\ No newline at end of file
package com.gic.haoban.manage.service.pojo.bo.chat;
import java.io.Serializable;
public class GroupChatHmMemberRelationBO implements Serializable {
private static final long serialVersionUID = 4821001091073882399L;
private Long chatHmId;
private String memberId;
public Long getChatHmId() {
return chatHmId;
}
public void setChatHmId(Long chatHmId) {
this.chatHmId = chatHmId;
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
}
...@@ -6,6 +6,7 @@ import com.gic.api.base.commons.BasePageInfo; ...@@ -6,6 +6,7 @@ import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page; import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse; import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.chat.GroupChatHmDTO; import com.gic.haoban.manage.api.dto.chat.GroupChatHmDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatHmMemberRelationDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.ChatHmSearchQDTO; import com.gic.haoban.manage.api.dto.qdto.chat.ChatHmSearchQDTO;
import com.gic.haoban.manage.service.pojo.bo.chat.GroupChatHmBO; import com.gic.haoban.manage.service.pojo.bo.chat.GroupChatHmBO;
...@@ -52,4 +53,7 @@ public interface GroupChatHmService { ...@@ -52,4 +53,7 @@ public interface GroupChatHmService {
*/ */
public List<Long> listHmGroupChatId(String wxEnterpriseId, Long chatHmId) ; public List<Long> listHmGroupChatId(String wxEnterpriseId, Long chatHmId) ;
Page<GroupChatHmMemberRelationDTO> memberGroupChatHmPage(String enterpriseId, String memberId, BasePageInfo basePageInfo);
Integer memberJoinGroupChatHmCount(String enterpriseId, String memberId);
} }
\ No newline at end of file
...@@ -10,6 +10,10 @@ import java.util.Map; ...@@ -10,6 +10,10 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.gic.haoban.manage.api.dto.chat.GroupChatHmMemberRelationDTO;
import com.gic.haoban.manage.service.dao.mapper.chat.*;
import com.gic.haoban.manage.service.pojo.bo.chat.GroupChatHmMemberRelationBO;
import com.gic.haoban.manage.service.service.chat.GroupChatUserService;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -32,10 +36,6 @@ import com.gic.haoban.manage.api.dto.chat.GroupChatHmDTO; ...@@ -32,10 +36,6 @@ import com.gic.haoban.manage.api.dto.chat.GroupChatHmDTO;
import com.gic.haoban.manage.api.dto.hm.HmLinkChatDTO; import com.gic.haoban.manage.api.dto.hm.HmLinkChatDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.ChatHmSearchQDTO; import com.gic.haoban.manage.api.dto.qdto.chat.ChatHmSearchQDTO;
import com.gic.haoban.manage.api.enums.SecretTypeEnum; import com.gic.haoban.manage.api.enums.SecretTypeEnum;
import com.gic.haoban.manage.service.dao.mapper.chat.ChatNoticeMapper;
import com.gic.haoban.manage.service.dao.mapper.chat.GroupChatHmMapper;
import com.gic.haoban.manage.service.dao.mapper.chat.GroupChatHmRelationMapper;
import com.gic.haoban.manage.service.dao.mapper.chat.GroupChatMapper;
import com.gic.haoban.manage.service.dao.mapper.hm.HmLinkChatMapper; import com.gic.haoban.manage.service.dao.mapper.hm.HmLinkChatMapper;
import com.gic.haoban.manage.service.dao.mapper.hm.HmLinkMapper; import com.gic.haoban.manage.service.dao.mapper.hm.HmLinkMapper;
import com.gic.haoban.manage.service.entity.chat.TabChatNotice; import com.gic.haoban.manage.service.entity.chat.TabChatNotice;
...@@ -79,6 +79,8 @@ public class GroupChatHmServiceImpl implements GroupChatHmService { ...@@ -79,6 +79,8 @@ public class GroupChatHmServiceImpl implements GroupChatHmService {
private HmLinkChatService hmLinkChatService; private HmLinkChatService hmLinkChatService;
@Autowired @Autowired
private HmLinkMapper hmLinkMapper; private HmLinkMapper hmLinkMapper;
@Autowired
private GroupChatUserMapper groupChatUserMapper;
@Override @Override
public Page<GroupChatHmBO> listPage(ChatHmSearchQDTO qdto, BasePageInfo basePageInfo) { public Page<GroupChatHmBO> listPage(ChatHmSearchQDTO qdto, BasePageInfo basePageInfo) {
...@@ -443,4 +445,28 @@ public class GroupChatHmServiceImpl implements GroupChatHmService { ...@@ -443,4 +445,28 @@ public class GroupChatHmServiceImpl implements GroupChatHmService {
return list.stream().map(dto -> dto.getGroupChatId()).collect(Collectors.toList()); return list.stream().map(dto -> dto.getGroupChatId()).collect(Collectors.toList());
} }
@Override
public Page<GroupChatHmMemberRelationDTO> memberGroupChatHmPage(String enterpriseId, String memberId, BasePageInfo basePageInfo) {
PageHelper.startPage(basePageInfo);
List<TabGroupChatHm> tabGroupChatHmList = groupChatHmMapper.listAvailableByEnterpriseId(enterpriseId);
Page<GroupChatHmMemberRelationDTO> resultPage = PageHelperUtils.changePageHelperToCurrentPage(tabGroupChatHmList, GroupChatHmMemberRelationDTO.class);
if (CollectionUtils.isNotEmpty(resultPage.getResult())) {
List<Long> chatHmIdList = resultPage.getResult().stream().map(GroupChatHmMemberRelationDTO::getChatHmId).distinct().collect(Collectors.toList());
List<Long> memberJoinChatHmIdList = groupChatUserMapper.listMemberChatHmIdByChatHmIdsAndMemberId(chatHmIdList, enterpriseId, memberId)
.stream().map(GroupChatHmMemberRelationBO::getChatHmId).distinct().collect(Collectors.toList());
resultPage.getResult().forEach(dto -> {
if (memberJoinChatHmIdList.contains(dto.getChatHmId())) {
dto.setMemberIsJoin(1);
} else {
dto.setMemberIsJoin(0);
}
});
}
return resultPage;
}
@Override
public Integer memberJoinGroupChatHmCount(String enterpriseId, String memberId) {
return groupChatUserMapper.getByMember(enterpriseId, memberId).size();
}
} }
\ No newline at end of file
...@@ -3,6 +3,7 @@ package com.gic.haoban.manage.service.service.out.impl.chat; ...@@ -3,6 +3,7 @@ package com.gic.haoban.manage.service.service.out.impl.chat;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import com.gic.haoban.manage.api.dto.chat.GroupChatHmMemberRelationDTO;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
...@@ -91,4 +92,26 @@ public class GroupChatHmApiServiceImpl implements GroupChatHmApiService { ...@@ -91,4 +92,26 @@ public class GroupChatHmApiServiceImpl implements GroupChatHmApiService {
return ServiceResponse.success(this.groupChatHmService.listHmGroupChatId(wxEnterpriseId, chatHmId)); return ServiceResponse.success(this.groupChatHmService.listHmGroupChatId(wxEnterpriseId, chatHmId));
} }
/**
* 社群列表(会员当前企业所在的社群列表)
* @param memberId
* @param enterpriseId
* @return
*/
@Override
public ServiceResponse<Page<GroupChatHmMemberRelationDTO>> memberGroupChatHmPage(String memberId, String enterpriseId, BasePageInfo basePageInfo) {
return ServiceResponse.success(this.groupChatHmService.memberGroupChatHmPage(enterpriseId, memberId, basePageInfo));
}
/**
* 会员加入社群的数量
* @param memberId
* @param enterpriseId
* @return
*/
@Override
public ServiceResponse<Integer> memberJoinGroupChatHmCount(String memberId, String enterpriseId) {
return ServiceResponse.success(groupChatHmService.memberJoinGroupChatHmCount(enterpriseId, memberId));
}
} }
...@@ -171,5 +171,15 @@ ...@@ -171,5 +171,15 @@
</if> </if>
order by create_time desc order by create_time desc
</select> </select>
<select id="listAvailableByEnterpriseId"
resultMap="result-map-tabHaobanGroupChatHm">
SELECT
<include refid="Base_Column_List" />
FROM tab_haoban_group_chat_hm
WHERE enterprise_id=#{enterpriseId}
and status_flag = 1
and delete_flag = 0
order by create_time desc
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -320,5 +320,21 @@ ...@@ -320,5 +320,21 @@
select <include refid="Base_Column_List"/> from tab_haoban_group_chat_user where enterprise_id = #{enterpriseId} select <include refid="Base_Column_List"/> from tab_haoban_group_chat_user where enterprise_id = #{enterpriseId}
and member_id = #{memberId} and status_flag = 1 and delete_flag = 0 order by create_time desc and member_id = #{memberId} and status_flag = 1 and delete_flag = 0 order by create_time desc
</select> </select>
<select id="listMemberChatHmIdByChatHmIdsAndMemberId"
resultType="com.gic.haoban.manage.service.pojo.bo.chat.GroupChatHmMemberRelationBO">
select chat_hm_id chatHmId, member_id memberId
from tab_haoban_group_chat_hm_relation t1
inner join tab_haoban_group_chat_user t2 on t1.group_chat_id = t2.group_chat_id
where chat_hm_id in
<foreach collection="chatHmIds" open="(" close=")" index="index" item="chatHmId" separator=",">
#{chatHmId}
</foreach>
and t2.enterprise_id = #{enterpriseId}
and member_id = #{memberId}
and t2.delete_flag = 0
and t1.delete_flag = 0
and t1.status_flag = 1
and t2.status_flag = 1
</select>
</mapper> </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