公会-后台-公会信息-查询-开始结束时间

This commit is contained in:
2025-08-15 17:23:11 +08:00
parent c0183887da
commit f0e915783d
3 changed files with 55 additions and 11 deletions

View File

@@ -10,6 +10,7 @@ import com.accompany.business.event.GuildMemberStatusChangeEvent;
import com.accompany.business.event.NewGuildEvent;
import com.accompany.business.message.NewGuildMessage;
import com.accompany.business.model.guild.*;
import com.accompany.business.mybatismapper.guild.GuildMapper;
import com.accompany.business.service.UploadAvatarService;
import com.accompany.business.service.guild.*;
import com.accompany.business.service.user.UsersService;
@@ -51,6 +52,8 @@ public class GuildManageAdminService {
@Autowired
private PartitionInfoService partitionInfoService;
@Autowired
private GuildMapper guildMapper;
@Autowired
private GuildService guildService;
@Autowired
private GuildMemberService guildMemberService;
@@ -284,7 +287,7 @@ public class GuildManageAdminService {
Set<Integer> regionGuildIdSet = new HashSet<>();
if (null != regionId){
List<GuildMember> guildOwnerList =guildMemberService.listGuildOwnerByPartitionIdRegionId(partitionId, regionId);
List<GuildMember> guildOwnerList = guildMemberService.listGuildOwnerByPartitionIdRegionId(partitionId, regionId);
if (CollectionUtils.isEmpty(guildOwnerList)){
return voPage;
}
@@ -303,34 +306,36 @@ public class GuildManageAdminService {
.eq(Guild::getPartitionId, partitionId)
.orderByDesc(Guild::getEnable, Guild::getId);
Long ownerUid = null;
if (null != erbanNo){
Users u = usersService.getUserByErbanNo(erbanNo);
if (null == u || u.getPartitionId() != partitionId){
return voPage;
}
queryWrapper.eq(Guild::getOwnerUid, u.getUid());
ownerUid = u.getUid();
}
Date sTime = null;
if (StringUtils.isNotBlank(startTime)){
Date sTime = DateTimeUtil.convertStrToDate(startTime, DateTimeUtil.DEFAULT_DATETIME_PATTERN);
queryWrapper.ge(Guild::getCreateTime, sTime);
sTime = DateTimeUtil.convertStrToDate(startTime, DateTimeUtil.DEFAULT_DATETIME_PATTERN);
}
Date eTime = null;
if (StringUtils.isNotBlank(endTime)){
Date eTime = DateTimeUtil.convertStrToDate(endTime, DateTimeUtil.DEFAULT_DATETIME_PATTERN);
queryWrapper.le(Guild::getCreateTime, eTime);
eTime = DateTimeUtil.convertStrToDate(endTime, DateTimeUtil.DEFAULT_DATETIME_PATTERN);
}
Long inviteUid = null;
if (null != inviteErbanNo){
Users inviteUser = usersService.getUserByErbanNo(inviteErbanNo);
if (null == inviteUser || inviteUser.getPartitionId() != partitionId){
return voPage;
}
queryWrapper.eq(Guild::getInviteUid, inviteUser.getUid());
inviteUid = inviteUser.getUid();
}
Page<Guild> page = new Page<>(pageNum, pageSize);
guildService.page(page, queryWrapper);
guildMapper.pageGuild(page, regionGuildIdSet.stream().toList(), partitionId, ownerUid, sTime, eTime, inviteUid);
if (page.getRecords().isEmpty()){
return voPage;
}

View File

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
import java.util.Set;
@@ -13,13 +14,21 @@ public interface GuildMapper extends BaseMapper<Guild> {
List<Guild> listVaildGuildByPartitionId(@Param("partitionId") Integer partitionId);
Page<Guild> pageGuildByPartitionId(Page<Guild> page,
@Param("uid") Long uid,
Page<Guild> pageGuild(Page<Guild> page,
@Param("guildIdList") List<Integer> guildIdList,
@Param("partitionId") Integer partitionId,
@Param("guildName") String familyName);
@Param("ownerUid") Long ownerUid,
@Param("startTime") Date startTime,
@Param("endTime") Date endTime,
@Param("inviteUid") Long inviteUid);
List<AgencyOwnerVo> getAgencyOwnerByGuildIds(@Param("guildIds") Set<Integer> guildIds);
List<AgencyOwnerVo> getGuildMemberNumMapByGuildIds(@Param("guildIds") Set<Integer> guildIds);
Page<Guild> pageGuildByPartitionId(Page<Guild> page,
@Param("uid") Long uid,
@Param("partitionId") Integer partitionId,
@Param("guildName") String familyName);
}

View File

@@ -61,4 +61,34 @@
</if>
GROUP BY guild_id
</select>
<select id="pageGuild" resultType="com.accompany.business.model.guild.Guild">
select g.*
from guild g
<if test="startTime != null or endTime != null">
left join (select guild_id, count(*) `member_count` from guild_member gm where gm.enable = 1 group by gm.guild_id) gm on g.id = gm.guild_id
</if>
where 1 = 1
<if test="guildIdList != null and guildIdList.size() > 0">
and g.id in <foreach collection="guildIdList" open="(" close=")" item="id">#{id}</foreach>
</if>
<if test="partitionId != null">
and g.partition_id = #{partitionId}
</if>
<if test="ownerUid != null">
and g.owner_uid = #{ownerUid}
</if>
<if test="startTime != null">
and g.create_time >= #{startTime}
</if>
<if test="endTime != null">
and g.create_time &lt;= #{endTime}
</if>
<if test="startTime != null or endTime != null">
order by gm.member_count desc
</if>
<if test="startTime == null and endTime == null">
order by g.id desc
</if>
</select>
</mapper>