Commit ad147fb5 authored by 邓吉芬's avatar 邓吉芬

1.多活动支持

parent dabe3aab
......@@ -58,7 +58,7 @@ public class DrawController {
@ApiOperation(value = "用户点击活抽奖")
@PostMapping(value = "draw/click")
public RestResult<DrawClickResponse> drawClick(@RequestBody @Valid DrawClickRequest request) throws InterruptedException {
DrawModel drawModel = drawManager.drawClick(request.getPhone());
DrawModel drawModel = drawManager.drawClick(request.getPhone(),request.getActivityId());
BeanCopier<DrawClickResponse> beanCopier = BeanCopier.create(drawModel, DrawClickResponse.builder().build(), CopyOptions.create());
DrawClickResponse response = beanCopier.copy();
return RestResultUtil.createSuccessResult(response);
......@@ -68,7 +68,7 @@ public class DrawController {
@ApiOperation(value = "获得我的奖品")
@PostMapping(value = "gain/mine/prize")
public RestResult<List<MinePrizeGainResponse>> gainMinePrize(@RequestBody @Valid MinePrizeGainRequest request) {
List<DrawModel> drawModelList = drawManager.listMinePrizeList(request.getPhone());
List<DrawModel> drawModelList = drawManager.listMinePrizeList(request);
List<MinePrizeGainResponse> minePrizeGainResponseList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(drawModelList)) {
minePrizeGainResponseList = drawModelList.stream().map(drawModel -> {
......@@ -94,7 +94,7 @@ public class DrawController {
@ApiOperation(value = "整体中奖情况")
@PostMapping(value = "prize/draw/list")
public RestResult<List<PrizeDrawListResponse>> prizeDrawList(@RequestBody @Valid PrizeDrawListRequest request) {
List<DrawModel> drawModelList = drawManager.listAllWinningInfo(request.getSize());
List<DrawModel> drawModelList = drawManager.listAllWinningInfo(request);
drawModelList.forEach(x->
{
if(StringUtils.isNotBlank(x.getAccountName())){
......
package com.miya.draw.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......@@ -73,5 +74,8 @@ public class AccountPrize implements Serializable {
@ApiModelProperty(value = "更新时间")
private LocalDateTime updateTime;
@TableField(exist = false)
private Integer count;
}
......@@ -19,16 +19,16 @@ import java.time.LocalDateTime;
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="activity_config对象", description="")
@TableName("activity_config")
public class ActivityConfig implements Serializable {
@ApiModel(value="activity对象", description="")
@TableName("activity")
public class Activity implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ApiModelProperty(value = "活动Id")
private Long activityId;
@ApiModelProperty(value = "活动名称")
private String name;
@ApiModelProperty(value = "抽奖方式 1满额抽奖 2足量抽奖")
private Integer raffle;
......@@ -54,11 +54,11 @@ public class ActivityConfig implements Serializable {
@ApiModelProperty(value = "0 不限制门店 1限制门店")
private Integer activityStoreStatus;
@ApiModelProperty(value = "活动是否有效 0无效 1有效")
private Integer validStatus;
@ApiModelProperty(value = "开始时间")
private LocalDateTime startTime;
@ApiModelProperty(value = "单个用户限制奖品Id,多个用逗号隔开")
private Long prizeId;
@ApiModelProperty(value = "结束时间")
private LocalDateTime endTime;
@ApiModelProperty(value = "创建时间")
private LocalDateTime createTime;
......
......@@ -53,6 +53,9 @@ public class Prize implements Serializable {
@ApiModelProperty(value = "活动id")
private Long activityId;
@ApiModelProperty(value = "限抽 0表示不限")
private Integer astrict;
@ApiModelProperty(value = "是否有效 0无效 1有效")
private Integer validStatus;
......
......@@ -2,6 +2,8 @@ package com.miya.draw.manager;
import com.miya.draw.model.DrawModel;
import com.miya.draw.request.DrawUserInfoGainRequest;
import com.miya.draw.request.MinePrizeGainRequest;
import com.miya.draw.request.PrizeDrawListRequest;
import java.util.List;
......@@ -24,7 +26,7 @@ public interface IDrawManager {
* @param phone
* @return
*/
List<DrawModel> listMinePrizeList(String phone);
List<DrawModel> listMinePrizeList(MinePrizeGainRequest request);
/**
* 修改我的奖品的地址信息
......@@ -44,12 +46,12 @@ public interface IDrawManager {
* @param phone
* @return
*/
DrawModel drawClick(String phone) throws InterruptedException;
DrawModel drawClick(String phone, Long activityId) throws InterruptedException;
/**
* 获得所有的中奖信息
* @param size
* @param request
* @return
*/
List<DrawModel> listAllWinningInfo(Integer size);
List<DrawModel> listAllWinningInfo(PrizeDrawListRequest request);
}
package com.miya.draw.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.miya.draw.entity.Account;
import com.miya.draw.entity.ActivityConfig;
import com.miya.draw.entity.Activity;
import org.apache.ibatis.annotations.Mapper;
/**
......@@ -11,7 +10,7 @@ import org.apache.ibatis.annotations.Mapper;
* @description:活动配置
*/
@Mapper
public interface ActivityConfigMapper extends BaseMapper<ActivityConfig> {
public interface ActivityMapper extends BaseMapper<Activity> {
}
......@@ -6,6 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* 用户点击抽奖请求模型
......@@ -20,4 +21,8 @@ public class DrawClickRequest extends BaseRequest {
@NotBlank(message = "手机号不能为空")
@ApiModelProperty(value = "手机号")
private String phone;
@NotNull(message = "活动Id不能为空")
@ApiModelProperty(value = "手机号", required = true)
private Long activityId;
}
......@@ -6,6 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* 获取抽奖用户信息请求模型
......@@ -17,6 +18,10 @@ import javax.validation.constraints.NotBlank;
@EqualsAndHashCode(callSuper = true)
public class DrawUserInfoGainRequest extends BaseRequest {
@NotNull(message = "活动Id不能为空")
@ApiModelProperty(value = "手机号", required = true)
private Long activityId;
@ApiModelProperty(value = "用户名")
private String userName;
......
......@@ -6,6 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* 获得我的奖品
......@@ -17,7 +18,12 @@ import javax.validation.constraints.NotBlank;
@Data
public class MinePrizeGainRequest extends BaseRequest {
@NotNull(message = "活动Id不能为空")
@ApiModelProperty(value = "手机号", required = true)
private Long activityId;
@NotBlank(message = "手机号不能为空")
@ApiModelProperty(value = "手机号", required = true)
private String phone;
}
......@@ -5,6 +5,9 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* 所有的中奖信息请求
*
......@@ -15,6 +18,10 @@ import lombok.EqualsAndHashCode;
@ApiModel(value = "获取所有的中奖信息请求")
public class PrizeDrawListRequest extends BaseRequest {
@NotNull(message = "活动Id不能为空")
@ApiModelProperty(value = "手机号", required = true)
private Long activityId;
@ApiModelProperty(value = "一次请求多少条 默认30")
private Integer size = 30;
}
package com.miya.draw.service;
import com.miya.draw.entity.AccountPrize;
import com.baomidou.mybatisplus.extension.service.IService;
import com.miya.draw.entity.AccountPrize;
import java.time.LocalDateTime;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author jack
* @since 2021-05-05
* @author :djf
* @date :2022-11-10
* @description:
*/
public interface IAccountPrizeService extends IService<AccountPrize> {
/**
* 获得用户的抽奖次数
*
......@@ -24,16 +22,16 @@ public interface IAccountPrizeService extends IService<AccountPrize> {
* @param end 结束时间
* @return 已抽奖次数
*/
Integer gainAlreadyDrawCount(String phone,Long activityId, LocalDateTime start, LocalDateTime end);
Integer gainAlreadyDrawCount(String phone, Long activityId, LocalDateTime start, LocalDateTime end);
/**
* 获取用户手机号抽中指定奖品的次数
* @param phone
* @param activityId
* @param prizeId
* @param prizeIds
* @return
*/
Integer gainAlreadyDrawCountByPrize(String phone,Long activityId,Long prizeId);
List<AccountPrize> gainAlreadyDrawCountByPrize(String phone,Long activityId,List<Long> prizeIds);
/**
* 获得我的奖品列表
......@@ -41,7 +39,7 @@ public interface IAccountPrizeService extends IService<AccountPrize> {
* @param phone
* @return
*/
List<AccountPrize> listMinePrize(String phone,Long activityId);
List<AccountPrize> listMinePrize(String phone, Long activityId);
/**
* 获得所有的中奖信息
......
package com.miya.draw.service;
import com.miya.draw.entity.ActivityConfig;
import com.miya.draw.entity.Activity;
/**
* @author :djf
* @date :2022-10-25
* @description:活动配置
*/
public interface IActivityConfigService {
public interface IActivityService {
ActivityConfig getConfig();
/**
* 根据Id获取活动信息
* @param id
* @return
*/
Activity getById(Long id);
}
......@@ -12,12 +12,9 @@ import com.miya.draw.enums.ErrorEnum;
import com.miya.draw.enums.PrizeTypeEnum;
import com.miya.draw.mapper.AccountPrizeMapper;
import com.miya.draw.mapper.PrizeMapper;
import com.miya.draw.service.IAccountPrizeService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import com.miya.draw.service.IAccountPrizeService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
......@@ -41,10 +38,6 @@ public class AccountPrizeServiceImpl extends ServiceImpl<AccountPrizeMapper, Acc
@Resource
private AccountPrizeMapper accountPrizeMapper;
@Resource
private PrizeMapper prizeMapper;
@Override
......@@ -85,12 +78,14 @@ public class AccountPrizeServiceImpl extends ServiceImpl<AccountPrizeMapper, Acc
}
@Override
public Integer gainAlreadyDrawCountByPrize(String phone, Long activityId, Long prizeId) {
LambdaQueryWrapper<AccountPrize> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(AccountPrize::getActivityId,activityId);
wrapper.eq(AccountPrize::getPrizeId, prizeId);
wrapper.eq(AccountPrize::getAccountPhone,phone);
return accountPrizeMapper.selectCount(wrapper);
public List<AccountPrize> gainAlreadyDrawCountByPrize(String phone, Long activityId, List<Long> prizeIds) {
QueryWrapper<AccountPrize> wrapper = new QueryWrapper<>();
wrapper.select("count(id) as count,prize_id ")
.eq("activity_id",activityId)
.eq("account_phone",phone)
.in("prize_id", prizeIds)
.last("group by prize_id");
return accountPrizeMapper.selectList(wrapper);
}
/**
......
......@@ -2,13 +2,12 @@ package com.miya.draw.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.miya.draw.entity.ActivityConfig;
import com.miya.draw.mapper.ActivityConfigMapper;
import com.miya.draw.service.IActivityConfigService;
import com.miya.draw.entity.Activity;
import com.miya.draw.mapper.ActivityMapper;
import com.miya.draw.service.IActivityService;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
/**
......@@ -17,19 +16,11 @@ import java.util.List;
* @description:
*/
@Service
public class ActivityConfigServiceImpl extends ServiceImpl<ActivityConfigMapper, ActivityConfig> implements IActivityConfigService {
public class ActivityServiceImpl extends ServiceImpl<ActivityMapper, Activity> implements IActivityService {
@Override
public ActivityConfig getConfig() {
LambdaQueryWrapper<ActivityConfig> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ActivityConfig::getValidStatus,1);
wrapper.last("order by create_time desc ");
List<ActivityConfig> list = baseMapper.selectList(wrapper);
if(!CollectionUtils.isEmpty(list)){
return list.get(0);
}
return null;
public Activity getById(Long id) {
return baseMapper.selectById(id);
}
}
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