Browse Source

抽奖奖品活动

master
张彭杰 1 year ago
parent
commit
87a3d6e14b
9 changed files with 210 additions and 0 deletions
  1. 3
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/rpaw/entity/RafflePrizeActivityWinning.java
  2. 27
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/rpaw/user/RafflePrizeActivityWinningUserQueryController.java
  3. 17
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/rpaw/user/request/UserPageRafflePrizeActivityWinningQueryParams.java
  4. 66
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/rpaw/user/response/UserPageRafflePrizeActivityWinningVo.java
  5. 1
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/rpa/RafflePrizeActivityEventHandler.java
  6. 10
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/rpaw/RafflePrizeActivityWinningDao.java
  7. 8
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/rpaw/RafflePrizeActivityWinningQueryService.java
  8. 17
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/rpaw/impl/RafflePrizeActivityWinningQueryServiceImpl.java
  9. 61
      dating-agency-mall-server/src/main/resources/mapper/rpaw/RafflePrizeActivityWinningMapper.xml

3
dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/rpaw/entity/RafflePrizeActivityWinning.java

@ -30,6 +30,9 @@ public class RafflePrizeActivityWinning extends Entity<RafflePrizeActivityWinnin
@ApiModelProperty("中奖人")
private Long userId;
@ApiModelProperty("中奖人名称")
private String name;
@ApiModelProperty("中奖人手机")
private String phone;

27
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/rpaw/user/RafflePrizeActivityWinningUserQueryController.java

@ -1,8 +1,12 @@
package com.qniao.dam.api.query.rpaw.user;
import com.qniao.dam.api.query.rpaw.user.request.UserPageRafflePrizeActivityWinningQueryParams;
import com.qniao.dam.api.query.rpaw.user.response.UserGetRafflePrizeActivityDrawCountVo;
import com.qniao.dam.api.query.rpaw.user.response.UserGetRafflePrizeActivityLatestDrawInfoVo;
import com.qniao.dam.api.query.rpaw.user.response.UserPageRafflePrizeActivityWinningVo;
import com.qniao.dam.query.rpaw.RafflePrizeActivityWinningQueryService;
import com.qniao.domain.QnPage;
import com.qniao.framework.utils.PageUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
@ -33,4 +37,27 @@ public class RafflePrizeActivityWinningUserQueryController {
@RequestParam("userId") Long userId) {
return rafflePrizeActivityWinningQueryService.getLatestDrawInfo(rafflePrizeActivityId, userId);
}
@GetMapping("page/raffle-prize-activity-winning/by/operator")
@ApiOperation("运营端获取抽奖活动中奖名单分页")
public QnPage<UserPageRafflePrizeActivityWinningVo> userPageRafflePrizeActivityWinningByOperator(PageUtil pageUtil,
UserPageRafflePrizeActivityWinningQueryParams queryParams) {
return PageUtil.convert(rafflePrizeActivityWinningQueryService.page(queryParams, pageUtil), UserPageRafflePrizeActivityWinningVo.class);
}
@GetMapping("page/raffle-prize-activity-winning/by/customer")
@ApiOperation("客户获取抽奖活动中奖名单分页")
public QnPage<UserPageRafflePrizeActivityWinningVo> userPageRafflePrizeActivityWinningByCustomer(PageUtil pageUtil,
UserPageRafflePrizeActivityWinningQueryParams queryParams,
@RequestParam("userId") Long userId) {
queryParams.setQueryUserId(userId);
queryParams.setIsDraw(true);
return PageUtil.convert(rafflePrizeActivityWinningQueryService.page(queryParams, pageUtil), UserPageRafflePrizeActivityWinningVo.class);
}
@GetMapping("page/raffle-prize-activity-winning/lamp")
@ApiOperation("用户获取抽奖活动中奖名单跑马灯分页")
public QnPage<UserPageRafflePrizeActivityWinningVo> userPageRafflePrizeActivityWinningByCustomer(PageUtil pageUtil) {
return PageUtil.convert(rafflePrizeActivityWinningQueryService.lamp(pageUtil), UserPageRafflePrizeActivityWinningVo.class);
}
}

17
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/rpaw/user/request/UserPageRafflePrizeActivityWinningQueryParams.java

@ -0,0 +1,17 @@
package com.qniao.dam.api.query.rpaw.user.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class UserPageRafflePrizeActivityWinningQueryParams {
@ApiModelProperty("抽奖奖品活动标识")
private Long rafflePrizeActivityId;
@ApiModelProperty("中奖用户标识")
private Long queryUserId;
@ApiModelProperty("是否抽奖")
private Boolean isDraw;
}

66
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/rpaw/user/response/UserPageRafflePrizeActivityWinningVo.java

@ -0,0 +1,66 @@
package com.qniao.dam.api.query.rpaw.user.response;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qniao.dam.domian.aggregate.rpa.constant.RafflePrizeActivityConditionEnum;
import com.qniao.dam.domian.aggregate.rpc.constant.PrizeCategoryEnum;
import com.qniao.dam.domian.aggregate.rpc.constant.PrizeTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class UserPageRafflePrizeActivityWinningVo {
@ApiModelProperty("唯一标识")
@JsonSerialize(using = ToStringSerializer.class)
private Long rafflePrizeActivityWinningId;
@ApiModelProperty("抽奖奖品活动标识")
@JsonSerialize(using = ToStringSerializer.class)
private Long rafflePrizeActivityId;
@ApiModelProperty("抽奖奖品活动名称")
private String rafflePrizeActivityName;
@ApiModelProperty("参加条件")
private RafflePrizeActivityConditionEnum rafflePrizeActivityCondition;
@ApiModelProperty("中奖人")
@JsonSerialize(using = ToStringSerializer.class)
private Long userId;
@ApiModelProperty("中奖人名称")
private String name;
@ApiModelProperty("中奖人手机")
private String phone;
@ApiModelProperty("奖品类型")
private PrizeTypeEnum prizeType;
@ApiModelProperty("奖品分类")
private PrizeCategoryEnum prizeCategory;
@ApiModelProperty("中奖产品")
private String rafflePrizeConfigName;
@ApiModelProperty("是否抽奖")
private Boolean isDraw;
@ApiModelProperty("抽奖时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime drawTime;
@ApiModelProperty("最高奖励")
private String maxReward;
@ApiModelProperty("奖励值")
private String rewardValue;
@ApiModelProperty("备注")
private String remark;
}

1
dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/rpa/RafflePrizeActivityEventHandler.java

@ -43,6 +43,7 @@ public class RafflePrizeActivityEventHandler extends BaseApplicationService {
winning.setRafflePrizeActivityId(rafflePrizeActivity.getId());
winning.setRafflePrizeActivityCondition(rafflePrizeActivity.getActivityCondition());
winning.setUserId(matchmaker.getUserId());
winning.setName(matchmaker.getName());
winning.setPhone(matchmaker.getPhone());
winning.setIsDraw(false);
winning.setMaxReward(event.getStayFranchiseFee().stripTrailingZeros().toPlainString());

10
dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/rpaw/RafflePrizeActivityWinningDao.java

@ -1,7 +1,12 @@
package com.qniao.dam.infrastructure.persistent.dao.rpaw;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qniao.dam.api.query.rpaw.user.request.UserPageRafflePrizeActivityWinningQueryParams;
import com.qniao.dam.api.query.rpaw.user.response.UserPageRafflePrizeActivityWinningVo;
import com.qniao.dam.domain.aggregate.rpaw.entity.RafflePrizeActivityWinning;
import org.apache.ibatis.annotations.Param;
/**
* 抽奖活动中奖信息
@ -9,4 +14,9 @@ import com.qniao.dam.domain.aggregate.rpaw.entity.RafflePrizeActivityWinning;
* @date 2025/01/14
*/
public interface RafflePrizeActivityWinningDao extends BaseMapper<RafflePrizeActivityWinning> {
IPage<UserPageRafflePrizeActivityWinningVo> page(Page<Object> pageWithoutOrders,
@Param("queryParams") UserPageRafflePrizeActivityWinningQueryParams queryParams);
IPage<UserPageRafflePrizeActivityWinningVo> lamp(Page<Object> pageWithoutOrders);
}

8
dating-agency-mall-server/src/main/java/com/qniao/dam/query/rpaw/RafflePrizeActivityWinningQueryService.java

@ -1,11 +1,19 @@
package com.qniao.dam.query.rpaw;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.qniao.dam.api.query.rpaw.user.request.UserPageRafflePrizeActivityWinningQueryParams;
import com.qniao.dam.api.query.rpaw.user.response.UserGetRafflePrizeActivityDrawCountVo;
import com.qniao.dam.api.query.rpaw.user.response.UserGetRafflePrizeActivityLatestDrawInfoVo;
import com.qniao.dam.api.query.rpaw.user.response.UserPageRafflePrizeActivityWinningVo;
import com.qniao.framework.utils.PageUtil;
public interface RafflePrizeActivityWinningQueryService {
UserGetRafflePrizeActivityDrawCountVo getDrawCount(Long rafflePrizeActivityId, Long userId);
UserGetRafflePrizeActivityLatestDrawInfoVo getLatestDrawInfo(Long rafflePrizeActivityId, Long userId);
IPage<UserPageRafflePrizeActivityWinningVo> page(UserPageRafflePrizeActivityWinningQueryParams queryParams, PageUtil pageUtil);
IPage<UserPageRafflePrizeActivityWinningVo> lamp(PageUtil pageUtil);
}

17
dating-agency-mall-server/src/main/java/com/qniao/dam/query/rpaw/impl/RafflePrizeActivityWinningQueryServiceImpl.java

@ -1,11 +1,15 @@
package com.qniao.dam.query.rpaw.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.qniao.dam.api.query.rpaw.user.request.UserPageRafflePrizeActivityWinningQueryParams;
import com.qniao.dam.api.query.rpaw.user.response.UserGetRafflePrizeActivityDrawCountVo;
import com.qniao.dam.api.query.rpaw.user.response.UserGetRafflePrizeActivityLatestDrawInfoVo;
import com.qniao.dam.api.query.rpaw.user.response.UserPageRafflePrizeActivityWinningVo;
import com.qniao.dam.domain.aggregate.rpaw.entity.RafflePrizeActivityWinning;
import com.qniao.dam.infrastructure.persistent.dao.rpaw.RafflePrizeActivityWinningDao;
import com.qniao.dam.query.rpaw.RafflePrizeActivityWinningQueryService;
import com.qniao.framework.utils.PageUtil;
import com.qniao.framework.utils.TypeConvertUtils;
import org.springframework.stereotype.Service;
@ -43,4 +47,17 @@ public class RafflePrizeActivityWinningQueryServiceImpl implements RafflePrizeAc
}
return latestDrawInfoVo;
}
@Override
public IPage<UserPageRafflePrizeActivityWinningVo> page(UserPageRafflePrizeActivityWinningQueryParams queryParams,
PageUtil pageUtil) {
return rafflePrizeActivityWinningDao.page(pageUtil.toPageWithoutOrders(), queryParams);
}
@Override
public IPage<UserPageRafflePrizeActivityWinningVo> lamp(PageUtil pageUtil) {
return rafflePrizeActivityWinningDao.lamp(pageUtil.toPageWithoutOrders());
}
}

61
dating-agency-mall-server/src/main/resources/mapper/rpaw/RafflePrizeActivityWinningMapper.xml

@ -0,0 +1,61 @@
<?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.qniao.dam.infrastructure.persistent.dao.rpaw.RafflePrizeActivityWinningDao">
<select id="page"
resultType="com.qniao.dam.api.query.rpaw.user.response.UserPageRafflePrizeActivityWinningVo">
SELECT
darpaw.id as rafflePrizeActivityWinningId,
darpaw.raffle_prize_activity_id,
darpa.`name` as rafflePrizeActivityName,
darpaw.raffle_prize_activity_condition,
darpaw.user_id,
darpaw.`name`,
darpaw.phone,
darpaw.prize_type,
darpaw.prize_category,
darpaw.raffle_prize_config_name,
darpaw.is_draw,
darpaw.draw_time,
darpaw.max_reward,
darpaw.reward_value,
darpaw.remark
from da_raffle_prize_activity_winning as darpaw
LEFT JOIN da_raffle_prize_activity as darpa on darpaw.raffle_prize_activity_id=darpa.id
where darpaw.is_delete=0
<if test="queryParams.rafflePrizeActivityId != null">
AND darpaw.raffle_prize_activity_id = #{queryParams.rafflePrizeActivityId}
</if>
<if test="queryParams.queryUserId != null">
AND darpaw.user_id = #{queryParams.queryUserId}
</if>
<if test="queryParams.isDraw != null">
AND darpaw.is_draw = #{queryParams.isDraw}
</if>
ORDER BY darpaw.create_time desc
</select>
<select id="lamp" resultType="com.qniao.dam.api.query.rpaw.user.response.UserPageRafflePrizeActivityWinningVo">
SELECT darpaw.id as rafflePrizeActivityWinningId,
darpaw.raffle_prize_activity_id,
darpa.`name` as rafflePrizeActivityName,
darpaw.raffle_prize_activity_condition,
darpaw.user_id,
darpaw.`name`,
darpaw.phone,
darpaw.prize_type,
darpaw.prize_category,
darpaw.raffle_prize_config_name,
darpaw.is_draw,
darpaw.draw_time,
darpaw.max_reward,
darpaw.reward_value,
darpaw.remark
from da_raffle_prize_activity_winning as darpaw
LEFT JOIN da_raffle_prize_activity as darpa on darpaw.raffle_prize_activity_id = darpa.id
where darpaw.is_delete = 0
AND darpaw.is_draw = true
ORDER BY darpaw.draw_time desc
</select>
</mapper>
Loading…
Cancel
Save