房间日奖励-后台
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
public interface RoomDaySendRankRewardAdminMapper extends BaseMapper<RoomDaySendRankRoomRecord> {
|
||||
|
||||
IPage<RoomDaySendRankRewardRecordAdminVo> pageRecord(IPage<RoomDaySendRankRewardRecordAdminVo> iPage,
|
||||
@Param("partitionId") Integer partitionId,
|
||||
@Param("regionId") Integer regionId,
|
||||
@Param("roomUid") Long roomUid,
|
||||
@Param("dateCycle") String dateCycle,
|
||||
@Param("status") Integer status,
|
||||
@Param("guildId") Integer guildId);
|
||||
|
||||
IPage<RoomDaySendRankRewardRecordAdminVo> pageRoomFlow(IPage<RoomDaySendRankRewardRecordAdminVo> iPage,
|
||||
@Param("partitionId") Integer partitionId,
|
||||
@Param("regionId") Integer regionId,
|
||||
@Param("roomUid") Long roomUid,
|
||||
@Param("startDate") String startDate,
|
||||
@Param("endDate") String endDate,
|
||||
@Param("status") Integer status);
|
||||
|
||||
IPage<RoomDaySendRankRewardRecordAdminVo> pageRoomContribution(IPage<RoomDaySendRankRewardRecordAdminVo> iPage,
|
||||
@Param("partitionId") Integer partitionId,
|
||||
@Param("roomUid") Long roomUid,
|
||||
@Param("dateCycle") String dateCycle);
|
||||
}
|
@@ -0,0 +1,115 @@
|
||||
@Slf4j
|
||||
@Service
|
||||
public class RoomDaySendRankRewardAdminService extends ServiceImpl<RoomDaySendRankRewardAdminMapper, RoomDaySendRankRoomRecord> {
|
||||
|
||||
// ... existing methods ...
|
||||
|
||||
/**
|
||||
* 查询房间流水记录
|
||||
*/
|
||||
public PageResult<RoomDaySendRankRewardRecordAdminVo> pageRoomFlow(Integer partitionId, Integer regionId, Long roomUid,
|
||||
String startDate, String endDate, Integer status,
|
||||
Integer pageNo, Integer pageSize) {
|
||||
if (partitionId == null) {
|
||||
throw new AdminServiceException("分区不能为空");
|
||||
}
|
||||
|
||||
PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(partitionId);
|
||||
if (!partitionEnum.equals(PartitionEnum.ARAB)){
|
||||
throw new AdminServiceException("该政策只在阿拉伯语区");
|
||||
}
|
||||
|
||||
IPage<RoomDaySendRankRewardRecordAdminVo> iPage = new Page<>(pageNo, pageSize);
|
||||
baseMapper.pageRoomFlow(iPage, partitionId, regionId, roomUid, startDate, endDate, status);
|
||||
|
||||
PageResult<RoomDaySendRankRewardRecordAdminVo> pageResult = new PageResult<>(iPage);
|
||||
List<RoomDaySendRankRewardRecordAdminVo> rows = pageResult.getRows();
|
||||
if (CollectionUtils.isEmpty(rows)) {
|
||||
return pageResult;
|
||||
}
|
||||
|
||||
Map<Long, RoomDaySendRankReward> rewardMap = new HashMap<>();
|
||||
List<Long> rewardIds = rows.stream()
|
||||
.filter(r -> r.getRewardId() != null)
|
||||
.map(RoomDaySendRankRewardRecordAdminVo::getRewardId)
|
||||
.toList();
|
||||
|
||||
if (!rewardIds.isEmpty()) {
|
||||
List<RoomDaySendRankReward> rewardList = roomDaySendRankRewardService.lambdaQuery()
|
||||
.in(RoomDaySendRankReward::getId, rewardIds)
|
||||
.list();
|
||||
rewardMap.putAll(rewardList.stream().collect(
|
||||
java.util.stream.Collectors.toMap(RoomDaySendRankReward::getId, r -> r)));
|
||||
}
|
||||
|
||||
for (RoomDaySendRankRewardRecordAdminVo row : rows) {
|
||||
if (row.getCreateTime() != null) {
|
||||
row.setSendTime(DateUtil.formatDateTime(row.getCreateTime()));
|
||||
}
|
||||
|
||||
if (row.getRewardId() != null) {
|
||||
RoomDaySendRankReward reward = rewardMap.get(row.getRewardId());
|
||||
if (reward != null) {
|
||||
row.setLevelId(reward.getId());
|
||||
row.setLevelName(reward.getName());
|
||||
row.setRewardGold(reward.getRoomOwnerReward().doubleValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
return pageResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询房间贡献明细
|
||||
*/
|
||||
public PageResult<RoomDaySendRankRewardRecordAdminVo> pageRoomContribution(Integer partitionId, Long roomUid,
|
||||
String dateCycle, Integer pageNo, Integer pageSize) {
|
||||
if (partitionId == null) {
|
||||
throw new AdminServiceException("分区不能为空");
|
||||
}
|
||||
|
||||
PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(partitionId);
|
||||
if (!partitionEnum.equals(PartitionEnum.ARAB)){
|
||||
throw new AdminServiceException("该政策只在阿拉伯语区");
|
||||
}
|
||||
|
||||
IPage<RoomDaySendRankRewardRecordAdminVo> iPage = new Page<>(pageNo, pageSize);
|
||||
baseMapper.pageRoomContribution(iPage, partitionId, roomUid, dateCycle);
|
||||
|
||||
PageResult<RoomDaySendRankRewardRecordAdminVo> pageResult = new PageResult<>(iPage);
|
||||
List<RoomDaySendRankRewardRecordAdminVo> rows = pageResult.getRows();
|
||||
if (CollectionUtils.isEmpty(rows)) {
|
||||
return pageResult;
|
||||
}
|
||||
|
||||
Map<Long, RoomDaySendRankReward> rewardMap = new HashMap<>();
|
||||
List<Long> rewardIds = rows.stream()
|
||||
.filter(r -> r.getRewardId() != null)
|
||||
.map(RoomDaySendRankRewardRecordAdminVo::getRewardId)
|
||||
.toList();
|
||||
|
||||
if (!rewardIds.isEmpty()) {
|
||||
List<RoomDaySendRankReward> rewardList = roomDaySendRankRewardService.lambdaQuery()
|
||||
.in(RoomDaySendRankReward::getId, rewardIds)
|
||||
.list();
|
||||
rewardMap.putAll(rewardList.stream().collect(
|
||||
java.util.stream.Collectors.toMap(RoomDaySendRankReward::getId, r -> r)));
|
||||
}
|
||||
|
||||
for (RoomDaySendRankRewardRecordAdminVo row : rows) {
|
||||
if (row.getCreateTime() != null) {
|
||||
row.setSendTime(DateUtil.formatDateTime(row.getCreateTime()));
|
||||
}
|
||||
|
||||
if (row.getRewardId() != null) {
|
||||
RoomDaySendRankReward reward = rewardMap.get(row.getRewardId());
|
||||
if (reward != null) {
|
||||
row.setLevelId(reward.getId());
|
||||
row.setLevelName(reward.getName());
|
||||
row.setRewardGold(reward.getRoomOwnerReward().doubleValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
return pageResult;
|
||||
}
|
||||
}
|
@@ -0,0 +1,96 @@
|
||||
<!-- ... existing code ... -->
|
||||
<mapper namespace="com.accompany.admin.mapper.room.RoomDaySendRankRewardAdminMapper">
|
||||
|
||||
<!-- ... existing select statement ... -->
|
||||
|
||||
<select id="pageRoomFlow" resultType="com.accompany.admin.vo.room.RoomDaySendRankRewardRecordAdminVo">
|
||||
SELECT
|
||||
gm.guild_id guildId,
|
||||
owner.erban_no ownerErbanNo,
|
||||
rn.room_uid roomUid,
|
||||
rn.stat_date statDate,
|
||||
rn.partition_id partitionId,
|
||||
u.erban_no erbanNo,
|
||||
rn.serial_value serialValue,
|
||||
rn.reward_id rewardId,
|
||||
rm.`title` roomName,
|
||||
ri.`name` regionName,
|
||||
rn.owner_receive_reward ownerReceiveReward,
|
||||
au.username operator,
|
||||
pi.`desc` partitionIdDesc,
|
||||
(case when rn.owner_receive_reward is null or rn.owner_receive_reward = 0 then 1 else 2 end) `status`,
|
||||
rn.receive_time createTime
|
||||
FROM
|
||||
room_day_send_rank_room_record rn
|
||||
LEFT JOIN room rm on rn.room_uid = rm.uid
|
||||
LEFT JOIN users u on u.uid = rn.room_uid
|
||||
LEFT JOIN region_info ri on u.region_id = ri.id
|
||||
left join guild_member gm on gm.uid = rn.room_uid and gm.`enable` = 1
|
||||
left join guild g on g.id = gm.guild_id and g.`enable` = 1
|
||||
left join users owner on owner.uid = g.owner_uid
|
||||
left join admin_user au on au.id = rn.update_id
|
||||
left join partition_info pi on rn.partition_id = pi.id
|
||||
<where>
|
||||
<if test="partitionId != null and partitionId != 0">
|
||||
and rn.partition_id = #{partitionId}
|
||||
</if>
|
||||
<if test="regionId != null and regionId != 0">
|
||||
and u.region_id = #{regionId}
|
||||
</if>
|
||||
<if test="roomUid != null">
|
||||
and rn.room_uid = #{roomUid}
|
||||
</if>
|
||||
<if test="startDate != null and startDate != ''">
|
||||
and rn.stat_date >= #{startDate}
|
||||
</if>
|
||||
<if test="endDate != null and endDate != ''">
|
||||
and rn.stat_date <= #{endDate}
|
||||
</if>
|
||||
<choose>
|
||||
<when test="status != null and status == 1">
|
||||
and (rn.owner_receive_reward is null or rn.owner_receive_reward = 0)
|
||||
</when>
|
||||
<when test="status != null and status == 2">
|
||||
and rn.owner_receive_reward > 0
|
||||
</when>
|
||||
</choose>
|
||||
</where>
|
||||
order by rn.stat_date desc, rn.serial_value desc, `status` asc
|
||||
</select>
|
||||
|
||||
<select id="pageRoomContribution" resultType="com.accompany.admin.vo.room.RoomDaySendRankRewardRecordAdminVo">
|
||||
SELECT
|
||||
u.erban_no erbanNo,
|
||||
u.nick nick,
|
||||
u.avatar avatar,
|
||||
u.region_id regionId,
|
||||
ri.`name` regionName,
|
||||
u.partition_id partitionId,
|
||||
pi.`desc` partitionIdDesc,
|
||||
rn.user_serial_value userSerialValue,
|
||||
rn.user_reward_ratio userRewardRatio,
|
||||
rn.user_reward userReward,
|
||||
rn.user_receive_reward userReceiveReward,
|
||||
rn.receive_time receiveTime,
|
||||
rn.rank rank,
|
||||
rn.type type,
|
||||
rn.create_time createTime
|
||||
FROM
|
||||
room_day_send_rank_user_record rn
|
||||
LEFT JOIN users u on u.uid = rn.uid
|
||||
LEFT JOIN region_info ri on u.region_id = ri.id
|
||||
LEFT JOIN partition_info pi on u.partition_id = pi.id
|
||||
<where>
|
||||
<if test="partitionId != null and partitionId != 0">
|
||||
and rn.partition_id = #{partitionId}
|
||||
</if>
|
||||
<if test="roomUid != null">
|
||||
and rn.room_uid = #{roomUid}
|
||||
</if>
|
||||
<if test="dateCycle != null and dateCycle != ''">
|
||||
and rn.stat_date = #{dateCycle}
|
||||
</if>
|
||||
</where>
|
||||
order by rn.user_serial_value desc, rn.rank asc
|
||||
</select>
|
||||
</mapper>
|
@@ -0,0 +1,56 @@
|
||||
@RestController
|
||||
@RequestMapping("/admin/roomDaySendRankReward")
|
||||
@Api(tags = "房间日流水奖励管理", description = "房间日流水奖励相关接口")
|
||||
public class RoomDaySendRankRewardAdminController extends BaseController {
|
||||
|
||||
// ... existing fields ...
|
||||
|
||||
@ApiOperation(value = "每日流水奖励列表", httpMethod = "GET")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "partitionId", value = "分区id", required = true, dataType = "int"),
|
||||
@ApiImplicitParam(name = "regionId", value = "国家id", required = false, dataType = "int"),
|
||||
@ApiImplicitParam(name = "erbanNo", value = "用户id", required = false, dataType = "long"),
|
||||
@ApiImplicitParam(name = "ownerErbanNo", value = "公会长ID", required = false, dataType = "long"),
|
||||
@ApiImplicitParam(name = "guildId", value = "公会id", required = false, dataType = "int"),
|
||||
@ApiImplicitParam(name = "dateCycle", value = "周期", required = false, dataType = "string"),
|
||||
@ApiImplicitParam(name = "status", value = "发放状态:-1:全部,1:未发放,2已经发放", required = false, dataType = "int"),
|
||||
})
|
||||
@GetMapping("/page")
|
||||
public BusiResult<PageResult<RoomDaySendRankRewardRecordAdminVo>> page(Long erbanNo, Long ownerErbanNo, Integer guildId, String dateCycle, Integer status, BasePageParams pageParams) {
|
||||
|
||||
PageResult<RoomDaySendRankRewardRecordAdminVo> pageResult = roomDaySendRankRewardAdminService.pageRecord(pageParams.getPartitionId(), pageParams.getRegionId(), erbanNo, ownerErbanNo, guildId, dateCycle,
|
||||
status, pageParams.getPageNo(), pageParams.getPageSize());
|
||||
return BusiResult.success(pageResult);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "房间流水记录查询", httpMethod = "GET")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "partitionId", value = "分区id", required = true, dataType = "int"),
|
||||
@ApiImplicitParam(name = "regionId", value = "国家id", required = false, dataType = "int"),
|
||||
@ApiImplicitParam(name = "roomUid", value = "房间UID", required = false, dataType = "long"),
|
||||
@ApiImplicitParam(name = "startDate", value = "开始时间", required = false, dataType = "string"),
|
||||
@ApiImplicitParam(name = "endDate", value = "结束时间", required = false, dataType = "string"),
|
||||
@ApiImplicitParam(name = "status", value = "发放状态:1:未发放,2已经发放", required = false, dataType = "int"),
|
||||
})
|
||||
@GetMapping("/roomFlow/page")
|
||||
public BusiResult<PageResult<RoomDaySendRankRewardRecordAdminVo>> roomFlowPage(Integer regionId, Long roomUid, String startDate, String endDate, Integer status, BasePageParams pageParams) {
|
||||
PageResult<RoomDaySendRankRewardRecordAdminVo> pageResult = roomDaySendRankRewardAdminService.pageRoomFlow(pageParams.getPartitionId(), regionId, roomUid, startDate, endDate, status,
|
||||
pageParams.getPageNo(), pageParams.getPageSize());
|
||||
return BusiResult.success(pageResult);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "房间贡献明细查询", httpMethod = "GET")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "partitionId", value = "分区id", required = true, dataType = "int"),
|
||||
@ApiImplicitParam(name = "roomUid", value = "房间UID", required = true, dataType = "long"),
|
||||
@ApiImplicitParam(name = "dateCycle", value = "统计日期", required = true, dataType = "string"),
|
||||
})
|
||||
@GetMapping("/roomContribution/page")
|
||||
public BusiResult<PageResult<RoomDaySendRankRewardRecordAdminVo>> roomContributionPage(Long roomUid, String dateCycle, BasePageParams pageParams) {
|
||||
PageResult<RoomDaySendRankRewardRecordAdminVo> pageResult = roomDaySendRankRewardAdminService.pageRoomContribution(pageParams.getPartitionId(), roomUid, dateCycle,
|
||||
pageParams.getPageNo(), pageParams.getPageSize());
|
||||
return BusiResult.success(pageResult);
|
||||
}
|
||||
|
||||
// ... existing methods ...
|
||||
}
|
@@ -0,0 +1,55 @@
|
||||
package com.accompany.admin.vo.room;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@ApiModel("房间日流水奖励记录")
|
||||
public class RoomDaySendRankRewardRecordAdminVo {
|
||||
|
||||
@ApiModelProperty("统计日期")
|
||||
private String statDate;
|
||||
|
||||
@ApiModelProperty("分区ID")
|
||||
private Integer partitionId;
|
||||
|
||||
@ApiModelProperty("分区描述")
|
||||
private String partitionIdDesc;
|
||||
|
||||
@ApiModelProperty("房主erbanNo")
|
||||
private Long erbanNo;
|
||||
|
||||
@ApiModelProperty("房间UID")
|
||||
private Long roomUid;
|
||||
|
||||
@ApiModelProperty("房间流水金额")
|
||||
private BigDecimal serialValue;
|
||||
|
||||
@ApiModelProperty("奖励档位ID")
|
||||
private Long rewardId;
|
||||
|
||||
@ApiModelProperty("等级名称")
|
||||
private String levelName;
|
||||
|
||||
@ApiModelProperty("目标获得金币")
|
||||
private Long ownerReceiveReward;
|
||||
|
||||
@ApiModelProperty("用户贡献比例")
|
||||
private BigDecimal rewardRatio;
|
||||
|
||||
@ApiModelProperty("已获得金币")
|
||||
private Long userReceiveReward;
|
||||
|
||||
@ApiModelProperty("房间标题")
|
||||
private String roomTitle;
|
||||
|
||||
@ApiModelProperty("地区名称")
|
||||
private String regionName;
|
||||
|
||||
@ApiModelProperty("领取时间")
|
||||
private Date receiveTime;
|
||||
}
|
@@ -0,0 +1,41 @@
|
||||
package com.accompany.admin.vo.room;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@ApiModel("房间日流水奖励用户贡献记录")
|
||||
public class RoomDaySendRankRewardUserRecordAdminVo {
|
||||
|
||||
@ApiModelProperty("统计日期")
|
||||
private String statDate;
|
||||
|
||||
@ApiModelProperty("用户erbanNo")
|
||||
private Long erbanNo;
|
||||
|
||||
@ApiModelProperty("用户昵称")
|
||||
private String nick;
|
||||
|
||||
@ApiModelProperty("用户贡献值")
|
||||
private BigDecimal userSerialValue;
|
||||
|
||||
@ApiModelProperty("用户贡献比例")
|
||||
private BigDecimal rewardRatio;
|
||||
|
||||
@ApiModelProperty("用户奖励金币")
|
||||
private Long userReward;
|
||||
|
||||
@ApiModelProperty("用户已领取奖励")
|
||||
private Long userReceiveReward;
|
||||
|
||||
@ApiModelProperty("排名")
|
||||
private Integer rank;
|
||||
|
||||
@ApiModelProperty("领取时间")
|
||||
private Date receiveTime;
|
||||
|
||||
}
|
@@ -0,0 +1,31 @@
|
||||
package com.accompany.admin.mapper.room;
|
||||
|
||||
import com.accompany.business.model.room.RoomDaySendRankRoomRecord;
|
||||
import com.accompany.admin.vo.room.RoomDaySendRankRewardRecordAdminVo;
|
||||
import com.accompany.admin.vo.room.RoomDaySendRankRewardUserRecordAdminVo;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 房间日流水奖励金币发放 Mapper 接口
|
||||
*
|
||||
* @author
|
||||
* @since 2025-09-17
|
||||
*/
|
||||
public interface RoomDaySendRankRewardAdminMapper extends BaseMapper<RoomDaySendRankRoomRecord> {
|
||||
|
||||
IPage<RoomDaySendRankRewardRecordAdminVo> pageRecordWithDateRange(IPage<RoomDaySendRankRewardRecordAdminVo> iPage,
|
||||
@Param("partitionId") Integer partitionId,
|
||||
@Param("regionId") Integer regionId,
|
||||
@Param("roomUid") Long roomUid,
|
||||
@Param("status") Integer status,
|
||||
@Param("startDate") String startDate,
|
||||
@Param("endDate") String endDate);
|
||||
|
||||
List<RoomDaySendRankRewardUserRecordAdminVo> listContributionDetail(@Param("roomUid") Long roomUid,
|
||||
@Param("statDate") String statDate,
|
||||
@Param("partitionId") Integer partitionId);
|
||||
}
|
@@ -0,0 +1,94 @@
|
||||
package com.accompany.admin.service.room;
|
||||
|
||||
import com.accompany.admin.vo.room.RoomDaySendRankRewardRecordAdminVo;
|
||||
import com.accompany.admin.vo.room.RoomDaySendRankRewardUserRecordAdminVo;
|
||||
import com.accompany.business.model.room.RoomDaySendRankRoomRecord;
|
||||
import com.accompany.admin.mapper.room.RoomDaySendRankRewardAdminMapper;
|
||||
import com.accompany.business.service.room.RoomDaySendRankRoomRecordService;
|
||||
import com.accompany.business.service.room.RoomDaySendRankUserRecordService;
|
||||
import com.accompany.business.service.user.UsersService;
|
||||
import com.accompany.core.enumeration.PartitionEnum;
|
||||
import com.accompany.core.exception.AdminServiceException;
|
||||
import com.accompany.core.model.Users;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 房间日流水奖励金币发放 Admin服务类
|
||||
*
|
||||
* @author
|
||||
* @since 2025-09-17
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class RoomDaySendRankRewardAdminService extends ServiceImpl<RoomDaySendRankRewardAdminMapper, RoomDaySendRankRoomRecord> {
|
||||
|
||||
@Autowired
|
||||
private UsersService usersService;
|
||||
@Autowired
|
||||
private RoomDaySendRankRoomRecordService roomDaySendRankRoomRecordService;
|
||||
@Autowired
|
||||
private RoomDaySendRankUserRecordService roomDaySendRankUserRecordService;
|
||||
|
||||
public Page<RoomDaySendRankRewardRecordAdminVo> pageRecord(Integer partitionId, Integer regionId, Long erbanNo,
|
||||
Integer status, String startDate, String endDate,
|
||||
Integer pageNo, Integer pageSize) {
|
||||
if (partitionId == null) {
|
||||
throw new AdminServiceException("分区不能为空");
|
||||
}
|
||||
|
||||
PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(partitionId);
|
||||
if (!partitionEnum.equals(PartitionEnum.ARAB)){
|
||||
throw new AdminServiceException("该政策只在阿拉伯语区");
|
||||
}
|
||||
|
||||
Long roomUid = null;
|
||||
|
||||
if (erbanNo != null) {
|
||||
Users user = usersService.getUserByErbanNo(erbanNo);
|
||||
if (user == null) {
|
||||
throw new AdminServiceException("用户不存在");
|
||||
}
|
||||
roomUid = user.getUid();
|
||||
}
|
||||
|
||||
Page<RoomDaySendRankRewardRecordAdminVo> iPage = new Page<>(pageNo, pageSize);
|
||||
baseMapper.pageRecordWithDateRange(iPage, partitionId, regionId, roomUid, status, startDate, endDate);
|
||||
|
||||
List<RoomDaySendRankRewardRecordAdminVo> rows = iPage.getRecords();
|
||||
if (CollectionUtils.isEmpty(rows)) {
|
||||
return iPage;
|
||||
}
|
||||
|
||||
return iPage;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询房间贡献明细列表
|
||||
*
|
||||
* @param roomUid 房间UID
|
||||
* @param statDate 统计日期
|
||||
* @param partitionId 分区ID
|
||||
* @return 明细列表
|
||||
*/
|
||||
public List<RoomDaySendRankRewardUserRecordAdminVo> listContributionDetail(Long roomUid, String statDate, Integer partitionId) {
|
||||
if (partitionId == null) {
|
||||
throw new AdminServiceException("分区不能为空");
|
||||
}
|
||||
|
||||
PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(partitionId);
|
||||
if (!partitionEnum.equals(PartitionEnum.ARAB)){
|
||||
throw new AdminServiceException("该政策只在阿拉伯语区");
|
||||
}
|
||||
|
||||
List<RoomDaySendRankRewardUserRecordAdminVo> list = baseMapper.listContributionDetail(roomUid, statDate, partitionId);
|
||||
|
||||
return list;
|
||||
}
|
||||
}
|
@@ -0,0 +1,66 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.accompany.admin.mapper.room.RoomDaySendRankRewardAdminMapper">
|
||||
|
||||
<select id="pageRecordWithDateRange" resultType="com.accompany.admin.vo.room.RoomDaySendRankRewardRecordAdminVo">
|
||||
SELECT
|
||||
rn.stat_date statDate,
|
||||
rn.partition_id partitionId,
|
||||
u.erban_no erbanNo,
|
||||
rn.room_uid roomUid,
|
||||
rm.`title` roomTitle,
|
||||
rn.serial_value serialValue,
|
||||
rn.reward_id rewardId,
|
||||
rr.name levelName,
|
||||
ri.`name` regionName,
|
||||
rn.owner_receive_reward ownerReceiveReward,
|
||||
rn.receive_time receiveTime,
|
||||
pi.`desc` partitionIdDesc
|
||||
FROM
|
||||
room_day_send_rank_room_record rn
|
||||
LEFT JOIN room rm on rn.room_uid = rm.uid
|
||||
LEFT JOIN users u on u.uid = rn.room_uid
|
||||
LEFT JOIN region_info ri on u.region_id = ri.id
|
||||
left join partition_info pi on rn.partition_id = pi.id
|
||||
left join room_day_send_rank_reward rr on rn.reward_id = rr.id
|
||||
<where>
|
||||
<if test="partitionId != null and partitionId != 0">
|
||||
and rn.partition_id = #{partitionId}
|
||||
</if>
|
||||
<if test="regionId != null and regionId != 0">
|
||||
and u.region_id = #{regionId}
|
||||
</if>
|
||||
<if test="roomUid != null">
|
||||
and rn.room_uid = #{roomUid}
|
||||
</if>
|
||||
<if test="startDate != null and startDate != ''">
|
||||
and rn.stat_date >= #{startDate}
|
||||
</if>
|
||||
<if test="endDate != null and endDate != ''">
|
||||
and rn.stat_date <= #{endDate}
|
||||
</if>
|
||||
</where>
|
||||
order by rn.stat_date desc, rn.serial_value desc
|
||||
</select>
|
||||
|
||||
<select id="listContributionDetail" resultType="com.accompany.admin.vo.room.RoomDaySendRankRewardUserRecordAdminVo">
|
||||
SELECT
|
||||
rd.stat_date statDate,
|
||||
u.erban_no erbanNo,
|
||||
u.nick nick,
|
||||
rd.user_serial_value userSerialValue,
|
||||
rd.user_reward_ratio rewardRatio,
|
||||
rd.user_reward userReward,
|
||||
rd.user_receive_reward userReceiveReward,
|
||||
rd.rank rank,
|
||||
rd.receive_time receiveTime
|
||||
FROM room_day_send_rank_user_record rd
|
||||
LEFT JOIN users u ON rd.uid = u.uid
|
||||
WHERE rd.room_uid = #{roomUid}
|
||||
AND rd.stat_date = #{statDate}
|
||||
AND rd.partition_id = #{partitionId}
|
||||
AND rd.type = 1
|
||||
ORDER BY rd.user_serial_value DESC
|
||||
</select>
|
||||
|
||||
</mapper>
|
@@ -0,0 +1,94 @@
|
||||
package com.accompany.admin.controller.room;
|
||||
|
||||
import com.accompany.admin.controller.BaseController;
|
||||
import com.accompany.admin.service.room.RoomDaySendRankRewardAdminService;
|
||||
import com.accompany.admin.vo.room.RoomDaySendRankRewardRecordAdminVo;
|
||||
import com.accompany.admin.vo.room.RoomDaySendRankRewardUserRecordAdminVo;
|
||||
import com.accompany.business.param.BasePageParams;
|
||||
import com.accompany.common.result.BusiResult;
|
||||
import com.accompany.common.result.PageResult;
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.alibaba.excel.support.ExcelTypeEnum;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.net.URLEncoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/admin/roomSendRank/dayReward")
|
||||
@Api(tags = "房间日流水奖励管理", description = "房间日流水奖励相关接口")
|
||||
public class RoomDaySendRankRewardAdminController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private RoomDaySendRankRewardAdminService roomDaySendRankRewardAdminService;
|
||||
|
||||
@ApiOperation(value = "分页查询房间流水", httpMethod = "GET")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "partitionId", value = "分区id", required = true, dataType = "int"),
|
||||
@ApiImplicitParam(name = "regionId", value = "国家id", required = false, dataType = "int"),
|
||||
@ApiImplicitParam(name = "erbanNo", value = "用户id", required = false, dataType = "long"),
|
||||
@ApiImplicitParam(name = "status", value = "发放状态:-1:全部,1:未发放,2已经发放", required = false, dataType = "int"),
|
||||
@ApiImplicitParam(name = "startDate", value = "开始时间", required = false, dataType = "string"),
|
||||
@ApiImplicitParam(name = "endDate", value = "结束时间", required = false, dataType = "string"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "页码", required = false, dataType = "int", defaultValue = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "每页数量", required = false, dataType = "int", defaultValue = "20")
|
||||
})
|
||||
@GetMapping("/page")
|
||||
public BusiResult<PageResult<RoomDaySendRankRewardRecordAdminVo>> pageRoomSerial(Long erbanNo, Integer status, String startDate, String endDate, BasePageParams pageParams) {
|
||||
|
||||
Page<RoomDaySendRankRewardRecordAdminVo> page = roomDaySendRankRewardAdminService.pageRecord(pageParams.getPartitionId(), pageParams.getRegionId(), erbanNo, status, startDate, endDate,
|
||||
pageParams.getPageNo(), pageParams.getPageSize());
|
||||
PageResult<RoomDaySendRankRewardRecordAdminVo> pageResult = new PageResult<>(page);
|
||||
return BusiResult.success(pageResult);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "导出房间流水查询结果", httpMethod = "GET")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "partitionId", value = "分区id", required = true, dataType = "int"),
|
||||
@ApiImplicitParam(name = "regionId", value = "国家id", required = false, dataType = "int"),
|
||||
@ApiImplicitParam(name = "erbanNo", value = "用户id", required = false, dataType = "long"),
|
||||
@ApiImplicitParam(name = "status", value = "发放状态:-1:全部,1:未发放,2已经发放", required = false, dataType = "int"),
|
||||
@ApiImplicitParam(name = "startDate", value = "开始时间", required = false, dataType = "string"),
|
||||
@ApiImplicitParam(name = "endDate", value = "结束时间", required = false, dataType = "string"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "页码", required = false, dataType = "int", defaultValue = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "每页数量", required = false, dataType = "int", defaultValue = "20")
|
||||
})
|
||||
@GetMapping("/export")
|
||||
public void exportRoomSerial(HttpServletResponse response, Long erbanNo, Integer status, String startDate, String endDate, BasePageParams pageParams) throws IOException {
|
||||
pageParams.setPageNo(0);
|
||||
pageParams.setPageSize(-1);
|
||||
Page<RoomDaySendRankRewardRecordAdminVo> page = roomDaySendRankRewardAdminService.pageRecord(pageParams.getPartitionId(), pageParams.getRegionId(), erbanNo, status, startDate, endDate,
|
||||
pageParams.getPageNo(), pageParams.getPageSize());
|
||||
PageResult<RoomDaySendRankRewardRecordAdminVo> pageResult = new PageResult<>(page);
|
||||
response.setContentType("application/vnd.ms-excel");
|
||||
response.setCharacterEncoding("utf-8");
|
||||
// 这里URLEncoder.encode可以防止中文乱码
|
||||
String excelName = URLEncoder.encode("房间流水查询结果", StandardCharsets.UTF_8);
|
||||
response.setHeader("Content-disposition", "attachment;filename=" + excelName + ExcelTypeEnum.XLSX.getValue());
|
||||
EasyExcel.write(response.getOutputStream(), RoomDaySendRankRewardRecordAdminVo.class).sheet("房间流水查询结果").doWrite(pageResult.getRows());
|
||||
}
|
||||
|
||||
@ApiOperation(value = "房间贡献明细", httpMethod = "GET")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "roomUid", value = "房间ID", required = true, dataType = "long"),
|
||||
@ApiImplicitParam(name = "statDate", value = "统计日期", required = true, dataType = "string"),
|
||||
@ApiImplicitParam(name = "partitionId", value = "分区ID", required = true, dataType = "int")
|
||||
})
|
||||
@GetMapping("/listDetail")
|
||||
public BusiResult<List<RoomDaySendRankRewardUserRecordAdminVo>> listDetail(Long roomUid, String statDate, Integer partitionId) {
|
||||
List<RoomDaySendRankRewardUserRecordAdminVo> list = roomDaySendRankRewardAdminService.listContributionDetail(roomUid, statDate, partitionId);
|
||||
return BusiResult.success(list);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user