独联体-添加公会信息

This commit is contained in:
2025-09-24 17:29:53 +08:00
parent 23836f8dc3
commit c8315fcfa7
6 changed files with 100 additions and 52 deletions

View File

@@ -1,5 +1,7 @@
package com.accompany.admin.service.guildsoviet;
import com.accompany.business.model.guild.Guild;
import com.accompany.business.service.guild.GuildService;
import com.accompany.business.service.guildsoviet.GuildExtraDiamondDayService;
import com.accompany.business.service.guildsoviet.RoomExtraDiamondDayService;
import com.accompany.business.service.user.UsersService;
@@ -10,9 +12,15 @@ import com.accompany.common.result.PageResult;
import com.accompany.core.exception.AdminServiceException;
import com.accompany.core.model.Users;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@Service
public class GuildSovietAdminService {
@Autowired
@@ -21,6 +29,8 @@ public class GuildSovietAdminService {
private RoomExtraDiamondDayService roomExtraDiamondDayService;
@Autowired
private UsersService usersService;
@Autowired
private GuildService guildService;
public PageResult<GuildSovietAdminVo> listGuildSovietAdminVo(Integer partitionId, Integer guildId, Long erbanNo,
Integer regionId, String startDate, String endDate,
@@ -39,7 +49,9 @@ public class GuildSovietAdminService {
}
public PageResult<GuildMemberSovietAdminVo> listGuildMemberSovietAdminVo(Integer partitionId, Byte ebable, Long erbanNo, Integer regionId,
public PageResult<GuildMemberSovietAdminVo> listGuildMemberSovietAdminVo(Integer partitionId, Byte ebable,
Long ownerErbanNo, Integer guildId,
Long erbanNo, Integer regionId,
String startDate, String endDate,
Integer pageNo, Integer pageSize) {
Long uid = null;
@@ -50,8 +62,27 @@ public class GuildSovietAdminService {
}
uid = user.getUid();
}
Set<Integer> guildIdSet = new HashSet<>();
if (guildId != null) {
guildIdSet.add(guildId);
}
if (ownerErbanNo != null) {
Users ownUser = usersService.getUserByErbanNo(ownerErbanNo);
if (ownUser == null) {
throw new AdminServiceException("公会长ID不存在");
}
List<Guild> guildByOwnerUid = guildService.getGuildByOwnerUid(ownUser.getUid());
if (CollectionUtils.isEmpty(guildByOwnerUid)) {
throw new AdminServiceException("公会长ID不存在公会");
}
List<Integer> guilIds = guildByOwnerUid.stream().map(Guild::getId).collect(Collectors.toList());
if (guildId != null && !guilIds.contains(guildId)) {
throw new AdminServiceException("公会ID与公会ID所在公会不一致");
}
guildIdSet.addAll(guilIds);
}
Page<GuildMemberSovietAdminVo> guildSovietAdminVoPage =
guildExtraDiamondDayService.pageGuildMemberSovietAdminVo(new Page<>(pageNo, pageSize), partitionId, uid, regionId, ebable, startDate, endDate);
guildExtraDiamondDayService.pageGuildMemberSovietAdminVo(new Page<>(pageNo, pageSize), guildIdSet, partitionId, uid, regionId, ebable, startDate, endDate);
return new PageResult<>(guildSovietAdminVoPage);
}

View File

@@ -26,7 +26,7 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Api(tags = "CIS公会/主播" , value = "CIS公会/主播")
@Api(tags = "CIS公会/主播", value = "CIS公会/主播")
@RestController
@RequestMapping(value = "/admin/soviet")
public class GuildSovietAdminController {
@@ -34,23 +34,23 @@ public class GuildSovietAdminController {
@Autowired
private GuildSovietAdminService guildSovietAdminService;
@ApiOperation(value = "CIS公会钻石" , httpMethod = "GET")
@ApiOperation(value = "CIS公会钻石", httpMethod = "GET")
@ApiImplicitParams({
@ApiImplicitParam(name = "guildId" , value = "公会id" , required = true, dataType = "Byte"),
@ApiImplicitParam(name = "erbanNo" , value = "公会长ID" , required = true, dataType = "Long"),
@ApiImplicitParam(name = "regionId" , value = "公会国家" , required = true, dataType = "Integer"),
@ApiImplicitParam(name = "startDate" , value = "开始时间" , required = true, dataType = "String"),
@ApiImplicitParam(name = "endDate" , value = "结束时间" , required = true, dataType = "String"),
@ApiImplicitParam(name = "pageNo" , value = "页码" , required = true, dataType = "Integer"),
@ApiImplicitParam(name = "pageSize" , value = "每页条数" , required = true, dataType = "Integer")
@ApiImplicitParam(name = "guildId", value = "公会id", required = true, dataType = "Byte"),
@ApiImplicitParam(name = "erbanNo", value = "公会长ID", required = true, dataType = "Long"),
@ApiImplicitParam(name = "regionId", value = "公会国家", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "startDate", value = "开始时间", required = true, dataType = "String"),
@ApiImplicitParam(name = "endDate", value = "结束时间", required = true, dataType = "String"),
@ApiImplicitParam(name = "pageNo", value = "页码", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "pageSize", value = "每页条数", required = true, dataType = "Integer")
})
@GetMapping("/list")
public BusiResult<PageResult<GuildSovietAdminVo>> listGuildSovietAdminVo(@RequestParam(defaultValue = "32") Integer partitionId, Integer guildId, Long erbanNo, Integer regionId,
String startDate, String endDate, Integer pageNo, Integer pageSize) {
String startDate, String endDate, Integer pageNo, Integer pageSize) {
return BusiResult.success(guildSovietAdminService.listGuildSovietAdminVo(partitionId, guildId, erbanNo, regionId, startDate, endDate, pageNo, pageSize));
}
@ApiOperation(value = "CIS公会钻石-导出" , httpMethod = "POST")
@ApiOperation(value = "CIS公会钻石-导出", httpMethod = "POST")
@PostMapping("/export")
public void exportGuildSovietAdminVo(HttpServletResponse response, @RequestParam(defaultValue = "32") Integer partitionId,
Integer guildId, Long erbanNo, Integer regionId, String startDate, String endDate) throws IOException {
@@ -61,53 +61,56 @@ public class GuildSovietAdminController {
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文乱码
String excelName = URLEncoder.encode("CIS公会钻石" , StandardCharsets.UTF_8);
response.setHeader("Content-disposition" , "attachment;filename=" + excelName + ExcelTypeEnum.XLSX.getValue());
String excelName = URLEncoder.encode("CIS公会钻石", StandardCharsets.UTF_8);
response.setHeader("Content-disposition", "attachment;filename=" + excelName + ExcelTypeEnum.XLSX.getValue());
EasyExcel.write(response.getOutputStream(), GuildSovietAdminVo.class).sheet("CIS公会钻石").doWrite(pageResult.getRows());
}
@ApiOperation(value = "CIS公会成员钻石" , httpMethod = "GET")
@ApiOperation(value = "CIS公会成员钻石", httpMethod = "GET")
@ApiImplicitParams({
@ApiImplicitParam(name = "erbanNo" , value = "用户ID" , required = true, dataType = "Long"),
@ApiImplicitParam(name = "regionId" , value = "用户国家" , required = true, dataType = "Integer"),
@ApiImplicitParam(name = "startDate" , value = "开始时间" , required = true, dataType = "String"),
@ApiImplicitParam(name = "endDate" , value = "结束时间" , required = true, dataType = "String"),
@ApiImplicitParam(name = "enable" , value = "0-无效1-有效" , required = true, dataType = "Byte"),
@ApiImplicitParam(name = "pageNo" , value = "页码" , required = true, dataType = "Integer"),
@ApiImplicitParam(name = "pageSize" , value = "每页条数" , required = true, dataType = "Integer")
@ApiImplicitParam(name = "erbanNo", value = "用户ID", required = true, dataType = "Long"),
@ApiImplicitParam(name = "regionId", value = "用户国家", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "guildId", value = "公会ID", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "ownerErbanNo", value = "公会长ID", required = true, dataType = "Long"),
@ApiImplicitParam(name = "startDate", value = "开始时间", required = true, dataType = "String"),
@ApiImplicitParam(name = "endDate", value = "结束时间", required = true, dataType = "String"),
@ApiImplicitParam(name = "enable", value = "0-无效1-有效", required = true, dataType = "Byte"),
@ApiImplicitParam(name = "pageNo", value = "页码", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "pageSize", value = "每页条数", required = true, dataType = "Integer")
})
@GetMapping("/memberList")
public BusiResult<PageResult<GuildMemberSovietAdminVo>> listGuildMemberSovietAdminVo(@RequestParam(defaultValue = "32") Integer partitionId, Byte enable, Long erbanNo, Integer regionId,
String startDate, String endDate, Integer pageNo, Integer pageSize) {
return BusiResult.success(guildSovietAdminService.listGuildMemberSovietAdminVo(partitionId, enable, erbanNo, regionId, startDate, endDate, pageNo, pageSize));
public BusiResult<PageResult<GuildMemberSovietAdminVo>> listGuildMemberSovietAdminVo(@RequestParam(defaultValue = "32") Integer partitionId,
Integer guildId, Long ownerErbanNo, Byte enable, Long erbanNo, Integer regionId,
String startDate, String endDate, Integer pageNo, Integer pageSize) {
return BusiResult.success(guildSovietAdminService.listGuildMemberSovietAdminVo(partitionId, enable, ownerErbanNo, guildId, erbanNo, regionId, startDate, endDate, pageNo, pageSize));
}
@ApiOperation(value = "CIS公会钻石-导出" , httpMethod = "POST")
@ApiOperation(value = "CIS公会钻石-导出", httpMethod = "POST")
@PostMapping("/memberExport")
public void exportGuildMemberSovietAdminVo(HttpServletResponse response, @RequestParam(defaultValue = "32") Integer partitionId, Byte enable,
public void exportGuildMemberSovietAdminVo(HttpServletResponse response, @RequestParam(defaultValue = "32") Integer partitionId,
Integer guildId, Long ownerErbanNo, Byte enable,
Long erbanNo, Integer regionId, String startDate, String endDate) throws IOException {
Integer pageNo = -1;
Integer pageSize = -1;
PageResult<GuildMemberSovietAdminVo> pageResult = guildSovietAdminService.listGuildMemberSovietAdminVo(partitionId, enable, erbanNo, regionId, startDate, endDate, pageNo, pageSize);
PageResult<GuildMemberSovietAdminVo> pageResult = guildSovietAdminService.listGuildMemberSovietAdminVo(partitionId, enable, ownerErbanNo, guildId, erbanNo, regionId, startDate, endDate, pageNo, pageSize);
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文乱码
String excelName = URLEncoder.encode("CIS公会成员钻石" , StandardCharsets.UTF_8);
response.setHeader("Content-disposition" , "attachment;filename=" + excelName + ExcelTypeEnum.XLSX.getValue());
String excelName = URLEncoder.encode("CIS公会成员钻石", StandardCharsets.UTF_8);
response.setHeader("Content-disposition", "attachment;filename=" + excelName + ExcelTypeEnum.XLSX.getValue());
EasyExcel.write(response.getOutputStream(), GuildMemberSovietAdminVo.class).sheet("CIS公会成员钻石").doWrite(pageResult.getRows());
}
@ApiOperation(value = "CIS房主钻石-周期" , httpMethod = "GET")
@ApiOperation(value = "CIS房主钻石-周期", httpMethod = "GET")
@ApiImplicitParams({
@ApiImplicitParam(name = "erbanNo" , value = "用户ID" , required = true, dataType = "Long"),
@ApiImplicitParam(name = "regionId" , value = "用户国家" , required = true, dataType = "Integer"),
@ApiImplicitParam(name = "cycleDate" , value = "周期" , required = true, dataType = "String"),
@ApiImplicitParam(name = "pageNo" , value = "页码" , required = true, dataType = "Integer"),
@ApiImplicitParam(name = "pageSize" , value = "每页条数" , required = true, dataType = "Integer")
@ApiImplicitParam(name = "erbanNo", value = "用户ID", required = true, dataType = "Long"),
@ApiImplicitParam(name = "regionId", value = "用户国家", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "cycleDate", value = "周期", required = true, dataType = "String"),
@ApiImplicitParam(name = "pageNo", value = "页码", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "pageSize", value = "每页条数", required = true, dataType = "Integer")
})
@GetMapping("/roomCycleDateList")
public List<CycleDateVo> roomCycleDateList() {
@@ -120,7 +123,7 @@ public class GuildSovietAdminController {
CycleDateVo cycleDateVo = new CycleDateVo();
cycleDateVo.setCycleDate(DateUtil.format(beginOfWeek, DateTimeUtil.dateFormatter));
cycleDateVo.setIntervalFormatter(DateUtil.format(beginOfWeek, DateTimeUtil.dateFormatter)
+ "~" + DateUtil.format(endOfWeek , DateTimeUtil.dateFormatter));
+ "~" + DateUtil.format(endOfWeek, DateTimeUtil.dateFormatter));
cycleDateVo.setStartDate(cycleDateVo.getCycleDate());
cycleDateVo.setEndDate(DateUtil.format(endOfWeek, DateTimeUtil.dateFormatter));
beginOfWeek = DateUtil.offsetWeek(beginOfWeek, -1);
@@ -130,22 +133,22 @@ public class GuildSovietAdminController {
return cycleDateVoList;
}
@ApiOperation(value = "CIS房主钻石" , httpMethod = "GET")
@ApiOperation(value = "CIS房主钻石", httpMethod = "GET")
@ApiImplicitParams({
@ApiImplicitParam(name = "erbanNo" , value = "用户ID" , required = true, dataType = "Long"),
@ApiImplicitParam(name = "regionId" , value = "用户国家" , required = true, dataType = "Integer"),
@ApiImplicitParam(name = "cycleDate" , value = "周期" , required = true, dataType = "String"),
@ApiImplicitParam(name = "pageNo" , value = "页码" , required = true, dataType = "Integer"),
@ApiImplicitParam(name = "pageSize" , value = "每页条数" , required = true, dataType = "Integer")
@ApiImplicitParam(name = "erbanNo", value = "用户ID", required = true, dataType = "Long"),
@ApiImplicitParam(name = "regionId", value = "用户国家", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "cycleDate", value = "周期", required = true, dataType = "String"),
@ApiImplicitParam(name = "pageNo", value = "页码", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "pageSize", value = "每页条数", required = true, dataType = "Integer")
})
@GetMapping("/roomList")
public BusiResult<PageResult<RoomSovietAdminVo>> listRoomSovietAdminVo(@RequestParam(defaultValue = "32") Integer partitionId, Long erbanNo, Integer regionId,
String cycleDate, Integer pageNo, Integer pageSize) {
String cycleDate, Integer pageNo, Integer pageSize) {
return BusiResult.success(guildSovietAdminService.listRoomSovietAdminVo(partitionId, erbanNo, regionId, cycleDate, pageNo, pageSize));
}
@ApiOperation(value = "CIS房主钻石-导出" , httpMethod = "POST")
@ApiOperation(value = "CIS房主钻石-导出", httpMethod = "POST")
@PostMapping("/roomExport")
public void exportRoomSovietAdminVo(HttpServletResponse response, @RequestParam(defaultValue = "32") Integer partitionId,
Long erbanNo, Integer regionId, String cycleDate) throws IOException {
@@ -156,8 +159,8 @@ public class GuildSovietAdminController {
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文乱码
String excelName = URLEncoder.encode("CIS房主钻石" , StandardCharsets.UTF_8);
response.setHeader("Content-disposition" , "attachment;filename=" + excelName + ExcelTypeEnum.XLSX.getValue());
String excelName = URLEncoder.encode("CIS房主钻石", StandardCharsets.UTF_8);
response.setHeader("Content-disposition", "attachment;filename=" + excelName + ExcelTypeEnum.XLSX.getValue());
EasyExcel.write(response.getOutputStream(), RoomSovietAdminVo.class).sheet("CIS房主钻石").doWrite(pageResult.getRows());
}
}

View File

@@ -27,6 +27,10 @@ public class GuildMemberSovietAdminVo {
@ApiModelProperty("用户ID")
private Long erbanNo;
@ExcelProperty("公会长ID")
@ApiModelProperty("公会长ID")
private Long ownerErbanNo;
@ExcelProperty("用户UID")
@ApiModelProperty("用户UID")
private Long uid;

View File

@@ -11,6 +11,7 @@ import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Set;
/**
* 公会钻石流水额外收入记录 Mapper 接口
@@ -42,7 +43,7 @@ public interface GuildExtraDiamondDayMapper extends BaseMapper<GuildExtraDiamond
Page<GuildSovietAdminVo> pageGuildSovietAdminVo(@Param("page") Page<GuildSovietAdminVo> page, @Param("partitionId") Integer partitionId, @Param("guildId") Integer guildId,
@Param("uid") Long uid, @Param("regionId") Integer regionId, @Param("startDate") String startDate, @Param("endDate") String endDate);
Page<GuildMemberSovietAdminVo> pageGuildMemberSovietAdminVo(@Param("page") Page<GuildSovietAdminVo> page, @Param("partitionId") Integer partitionId,
Page<GuildMemberSovietAdminVo> pageGuildMemberSovietAdminVo(@Param("page") Page<GuildSovietAdminVo> page, @Param("guildIdSet") Set<Integer> guildIdSet, @Param("partitionId") Integer partitionId,
@Param("uid") Long uid, @Param("regionId") Integer regionId, @Param("enable") Byte enable,
@Param("startDate") String startDate, @Param("endDate") String endDate);
}

View File

@@ -14,6 +14,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Set;
/**
* 公会钻石流水额外收入记录 服务实现类
@@ -74,8 +75,8 @@ public class GuildExtraDiamondDayService extends ServiceImpl<GuildExtraDiamondDa
return baseMapper.pageGuildSovietAdminVo(page, partitionId, guildId, uid, regionId, beginDate, endDate);
}
public Page<GuildMemberSovietAdminVo> pageGuildMemberSovietAdminVo(Page<GuildSovietAdminVo> page, Integer partitionId, Long uid,
public Page<GuildMemberSovietAdminVo> pageGuildMemberSovietAdminVo(Page<GuildSovietAdminVo> page, Set<Integer> guildIdSet, Integer partitionId, Long uid,
Integer regionId, Byte enable, String beginDate, String endDate) {
return baseMapper.pageGuildMemberSovietAdminVo(page, partitionId, uid, regionId, enable, beginDate, endDate);
return baseMapper.pageGuildMemberSovietAdminVo(page, guildIdSet, partitionId, uid, regionId, enable, beginDate, endDate);
}
}

View File

@@ -129,6 +129,7 @@
ge.stat_date statDate,
gm.guild_id guildId,
u.erban_no erbanNo,
gu.erban_no ownerErbanNo,
u.uid uid,
u.nick nick,
r.`name` regionName,
@@ -140,6 +141,8 @@
sum(owner_extra_num + owner_extra_lucky_num) guildExtraDiamondNum
from guild_extra_diamond_day ge
left join guild_member gm on ge.guild_member_id = gm.id
left join guild g on ge.guild_id = g.id
left join users gu on g.owner_uid = gu.uid
left join users u on ge.uid = u.uid
left join region_info r on u.region_id = r.id
where
@@ -159,6 +162,11 @@
<if test="endDate != null and endDate != ''">
and ge.stat_date &lt;= #{endDate}
</if>
<if test="guildIdSet != null and guildIdSet.size() > 0">
<foreach item="item" index="index" collection="guildIdSet" open="and ge.guild_id in(" separator="," close=")">
#{item}
</foreach>
</if>
group by ge.partition_id,ge.stat_date, ge.guild_member_id
order by statDate desc
</select>