提交 5f0ef351 编写于 作者: 鲸落和鲨掉's avatar 鲸落和鲨掉

用户积分入栈规则、积分库表设计

上级 d47fb273
......@@ -2,6 +2,8 @@ package cn.bugstack.trigger.api;
import cn.bugstack.trigger.api.dto.ActivityDrawRequestDTO;
import cn.bugstack.trigger.api.dto.ActivityDrawResponseDTO;
import cn.bugstack.trigger.api.dto.UserActivityAccountRequestDTO;
import cn.bugstack.trigger.api.dto.UserActivityAccountResponseDTO;
import cn.bugstack.types.model.Response;
/*
......@@ -30,4 +32,19 @@ public interface IRaffleActivityService {
* @return 签到结果
*/
Response<Boolean> calendarSignRebate(String userId);
/**
* 判断是否完成日历签到返利接口
*
* @param userId 用户ID
* @return 签到结果 true 已签到,false 未签到
*/
Response<Boolean> isCalendarSignRebate(String userId);
/**
* 查询用户活动账户
*
* @param request 请求对象「活动ID、用户ID」
* @return 返回结果「总额度、月额度、日额度」
*/
Response<UserActivityAccountResponseDTO> queryUserActivityAccount(UserActivityAccountRequestDTO request);
}
package cn.bugstack.trigger.api;
import cn.bugstack.trigger.api.dto.RaffleAwardListRequestDTO;
import cn.bugstack.trigger.api.dto.RaffleAwardListResponseDTO;
import cn.bugstack.trigger.api.dto.RaffleRequestDTO;
import cn.bugstack.trigger.api.dto.RaffleResponseDTO;
import cn.bugstack.trigger.api.dto.*;
import cn.bugstack.types.model.Response;
import java.util.List;
/*
* @return
* @author zhaoyongfeng
* @description 抽奖服务接口
*/
public interface IRaffleStrategyService {
......@@ -33,6 +35,13 @@ public interface IRaffleStrategyService {
* @return 抽奖结果
*/
Response<RaffleResponseDTO> randomRaffle(RaffleRequestDTO requestDTO);
/**
* 查询抽奖策略权重规则,给用户展示出抽奖N次后必中奖奖品范围
*
* @param request 请求对象
* @return 权重奖品配置列表「这里会返回全部,前端可按需展示一条已达标的,或者一条要达标的」
*/
Response<List<RaffleStrategyRuleWeightResponseDTO>> queryRaffleStrategyRuleWeight(RaffleStrategyRuleWeightRequestDTO request);
}
package cn.bugstack.trigger.api.dto;
import lombok.Data;
/**
* @ClassName: RaffleStrategyRuleWeightRequestDTO
* @Description: 抽奖策略规则,权重配置,查询N次抽奖可解锁奖品范围,请求对象
* @Author: zhaoyongfeng
* @Date: 2024/12/26 0:14
*/
@Data
public class RaffleStrategyRuleWeightRequestDTO {
// 用户ID
private String userId;
// 抽奖活动ID
private Long activityId;
}
package cn.bugstack.trigger.api.dto;
import lombok.Data;
import java.util.List;
/**
* @ClassName: RaffleStrategyRuleWeightResponseDTO
* @Description:
* @Author: zhaoyongfeng
* @Date: 2024/12/26 0:13
*/
@Data
public class RaffleStrategyRuleWeightResponseDTO {
// 权重规则配置的抽奖次数
private Integer ruleWeightCount;
// 用户在一个活动下完成的总抽奖次数
private Integer userActivityAccountTotalUseCount;
// 当前权重可抽奖范围
private List<StrategyAward> strategyAwards;
@Data
public static class StrategyAward {
// 奖品ID
private Integer awardId;
// 奖品标题
private String awardTitle;
}
}
package cn.bugstack.trigger.api.dto;
import lombok.Data;
/**
* @ClassName: UserActivityAccountRequestDTO
* @Description:
* @Author: zhaoyongfeng
* @Date: 2024/12/25 23:25
*/
@Data
public class UserActivityAccountRequestDTO {
/**
* 用户ID
*/
private String userId;
/**
* 活动ID
*/
private Long activityId;
}
package cn.bugstack.trigger.api.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @ClassName: UserActivityAccountReponseDTO
* @Description:
* @Author: zhaoyongfeng
* @Date: 2024/12/25 23:22
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class UserActivityAccountResponseDTO {
/**
* 总次数
*/
private Integer totalCount;
/**
* 总次数-剩余
*/
private Integer totalCountSurplus;
/**
* 日次数
*/
private Integer dayCount;
/**
* 日次数-剩余
*/
private Integer dayCountSurplus;
/**
* 月次数
*/
private Integer monthCount;
/**
* 月次数-剩余
*/
private Integer monthCountSurplus;
}
......@@ -18,4 +18,12 @@
limit 10
</select>
<select id="queryAwardConfigByAwardId" parameterType="java.lang.Integer" resultType="java.lang.String">
select award_config from award where award_id = #{awardId}
</select>
<select id="queryAwardKeyByAwardId" parameterType="java.lang.Integer" resultType="java.lang.String">
select award_key from award where award_id = #{awardId}
</select>
</mapper>
......@@ -15,9 +15,9 @@
<insert id="insertActivityAccountDay" parameterType="cn.bugstack.infrastructure.persistent.po.RaffleActivityAccountDay">
insert into raffle_activity_account_day(
user_id, activity_id, day, day_count, day_count_surplus, create_time, update_time)
user_id, activity_id, day, day_count, day_count_surplus, create_time, update_time)
values
(#{userId}, #{activityId}, #{day}, #{dayCount}, #{dayCountSurplus}, now(), now())
(#{userId}, #{activityId}, #{day}, #{dayCount}, #{dayCountSurplus}, now(), now())
</insert>
<update id="updateActivityAccountDaySubtractionQuota" parameterType="cn.bugstack.infrastructure.persistent.po.RaffleActivityAccountDay">
......@@ -45,4 +45,5 @@
update_time = now()
where user_id = #{userId} and activity_id = #{activityId} and day = #{day}
</update>
</mapper>
......@@ -31,6 +31,7 @@
set month_count_surplus = month_count_surplus - 1, update_time = now()
where user_id = #{userId} and activity_id = #{activityId} and month = #{month} and month_count_surplus > 0
</update>
<update id="addAccountQuota" parameterType="cn.bugstack.infrastructure.persistent.po.RaffleActivityAccountMonth">
update raffle_activity_account_month
set month_count_surplus = month_count_surplus + #{monthCountSurplus},
......@@ -38,4 +39,5 @@
update_time = now()
where user_id = #{userId} and activity_id = #{activityId} and month = #{month}
</update>
</mapper>
......@@ -3,6 +3,7 @@
<mapper namespace="cn.bugstack.infrastructure.persistent.dao.IRaffleActivitySkuDao">
<resultMap id="dataMap" type="cn.bugstack.infrastructure.persistent.po.RaffleActivitySku">
<id column="id" property="id"/>
<result column="sku" property="sku"/>
<result column="activity_id" property="activityId"/>
<result column="activity_count_id" property="activityCountId"/>
......
......@@ -24,4 +24,9 @@
)
</insert>
<update id="updateAwardRecordCompletedState" parameterType="cn.bugstack.infrastructure.persistent.po.UserAwardRecord">
update user_award_record set award_state = 'completed'
where user_id = #{userId} and order_id = #{orderId} and award_state = 'create'
</update>
</mapper>
......@@ -10,6 +10,7 @@
<result column="rebate_desc" property="rebateDesc"/>
<result column="rebate_type" property="rebateType"/>
<result column="rebate_config" property="rebateConfig"/>
<result column="out_business_no" property="outBusinessNo"/>
<result column="biz_id" property="bizId"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
......@@ -17,10 +18,16 @@
<insert id="insert" parameterType="cn.bugstack.infrastructure.persistent.po.UserBehaviorRebateOrder">
insert into user_behavior_rebate_order(
user_id, order_id, behavior_type, rebate_desc, rebate_type, rebate_config, biz_id, create_time, update_time
user_id, order_id, behavior_type, rebate_desc, rebate_type, rebate_config, out_business_no, biz_id, create_time, update_time
) values(
#{userId}, #{orderId}, #{behaviorType}, #{rebateDesc}, #{rebateType}, #{rebateConfig}, #{bizId}, now(), now()
#{userId}, #{orderId}, #{behaviorType}, #{rebateDesc}, #{rebateType}, #{rebateConfig}, #{outBusinessNo}, #{bizId}, now(), now()
)
</insert>
<select id="queryOrderByOutBusinessNo" parameterType="cn.bugstack.infrastructure.persistent.po.UserBehaviorRebateOrder" resultMap="dataMap">
select user_id, order_id, behavior_type, rebate_desc, rebate_type, rebate_config, out_business_no, biz_id
from user_behavior_rebate_order
where user_id = #{userId} and out_business_no = #{outBusinessNo}
</select>
</mapper>
\ No newline at end of file
<?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="cn.bugstack.infrastructure.persistent.dao.IUserCreditAccountDao">
<resultMap id="dataMap" type="cn.bugstack.infrastructure.persistent.po.UserCreditAccount">
<id column="id" property="id"/>
<result column="user_id" property="userId"/>
<result column="total_amount" property="totalAmount"/>
<result column="available_amount" property="availableAmount"/>
<result column="account_status" property="accountStatus"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
</resultMap>
<update id="updateAddAmount" parameterType="cn.bugstack.infrastructure.persistent.po.UserAwardRecord">
update user_credit_account set
total_amount = total_amount + #{totalAmount},
available_amount = available_amount + #{availableAmount}
where user_id = #{userId}
</update>
<insert id="insert" parameterType="cn.bugstack.infrastructure.persistent.po.UserAwardRecord">
insert into user_credit_account(
user_id, total_amount, available_amount, account_status, create_time, update_time
) values (
#{userId}, #{totalAmount}, #{availableAmount}, #{accountStatus}, now(), now()
)
</insert>
</mapper>
......@@ -51,4 +51,8 @@ public interface IActivityRepository {
List<ActivitySkuEntity> queryActivitySkuListByActivityId(Long activityId);
Integer queryRaffleActivityAccountDayPartakeCount(Long activityId, String userId);
ActivityAccountEntity queryActivityAccountEntity(Long activityId, String userId);
Integer queryRaffleActivityAccountPartakeCount(Long activityId, String userId);
}
package cn.bugstack.domain.activity.service;
import cn.bugstack.domain.activity.model.entity.ActivityAccountEntity;
import cn.bugstack.domain.activity.model.entity.SkuRechargeEntity;
/*
......@@ -26,4 +27,20 @@ public interface IRaffleActivityAccountQuotaService {
* @return 参与次数
*/
Integer queryRaffleActivityAccountDayPartakeCount(Long activityId, String userId);
/**
* 查询活动账户额度「总、月、日」
*
* @param activityId 活动ID
* @param userId 用户ID
* @return 账户实体
*/
ActivityAccountEntity queryActivityAccountEntity(Long activityId, String userId);
/**
* 查询活动账户 - 总,参与次数
*
* @param activityId 活动ID
* @param userId 用户ID
* @return 参与次数
*/
Integer queryRaffleActivityAccountPartakeCount(Long activityId, String userId);
}
......@@ -53,6 +53,7 @@ public abstract class AbstractRaffleActivityAccountQuota extends RaffleActivityA
return createOrderAggregate.getActivityOrderEntity().getOrderId();
}
protected abstract CreateQuotaOrderAggregate buildOrderAggregate(SkuRechargeEntity skuRechargeEntity, ActivitySkuEntity activitySkuEntity, ActivityEntity activityEntity, ActivityCountEntity activityCountEntity);
protected abstract void doSaveOrder(CreateQuotaOrderAggregate createOrderAggregate);
......
......@@ -81,4 +81,14 @@ public class RaffleActivityAccountQuotaService extends AbstractRaffleActivityAcc
public Integer queryRaffleActivityAccountDayPartakeCount(Long activityId, String userId) {
return activityRepository.queryRaffleActivityAccountDayPartakeCount(activityId, userId);
}
@Override
public ActivityAccountEntity queryActivityAccountEntity(Long activityId, String userId) {
return activityRepository.queryActivityAccountEntity(activityId, userId);
}
@Override
public Integer queryRaffleActivityAccountPartakeCount(Long activityId, String userId) {
return activityRepository.queryRaffleActivityAccountPartakeCount(activityId, userId);
}
}
......@@ -45,6 +45,10 @@ public class SendAwardMessageEvent extends BaseEvent<SendAwardMessageEvent.SendA
* 用户ID
*/
private String userId;
/**
* 订单ID
*/
private String orderId;
/**
* 奖品ID
*/
......@@ -53,6 +57,10 @@ public class SendAwardMessageEvent extends BaseEvent<SendAwardMessageEvent.SendA
* 奖品标题(名称)
*/
private String awardTitle;
/**
* 奖品配置信息
*/
private String awardConfig;
}
}
package cn.bugstack.domain.award.model.aggregate;
import cn.bugstack.domain.award.model.entity.UserAwardRecordEntity;
import cn.bugstack.domain.award.model.entity.UserCreditAwardEntity;
import cn.bugstack.domain.award.model.valobj.AwardStateVO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* @author Fuzhengwei bugstack.cn @小傅哥
* @description 发放奖品聚合对象
* @create 2024-05-18 09:26
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class GiveOutPrizesAggregate {
/** 用户ID */
private String userId;
/** 用户发奖记录 */
private UserAwardRecordEntity userAwardRecordEntity;
/** 用户积分奖品 */
private UserCreditAwardEntity userCreditAwardEntity;
public static UserAwardRecordEntity buildDistributeUserAwardRecordEntity(String userId, String orderId, Integer awardId, AwardStateVO awardState) {
UserAwardRecordEntity userAwardRecord = new UserAwardRecordEntity();
userAwardRecord.setUserId(userId);
userAwardRecord.setOrderId(orderId);
userAwardRecord.setAwardId(awardId);
userAwardRecord.setAwardState(awardState);
return userAwardRecord;
}
public static UserCreditAwardEntity buildUserCreditAwardEntity(String userId, BigDecimal creditAmount) {
return UserCreditAwardEntity.builder().userId(userId).creditAmount(creditAmount).build();
}
}
package cn.bugstack.domain.award.model.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author Fuzhengwei bugstack.cn @小傅哥
* @description 分发奖品实体
* @create 2024-05-18 08:34
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DistributeAwardEntity {
/**
* 用户ID
*/
private String userId;
/**
* 订单ID
*/
private String orderId;
/**
* 奖品ID
*/
private Integer awardId;
/**
* 奖品配置信息
*/
private String awardConfig;
}
......@@ -35,4 +35,6 @@ public class UserAwardRecordEntity {
private Date awardTime;
/** 奖品状态;create-创建、completed-发奖完成 */
private AwardStateVO awardState;
/** 奖品配置信息;发奖的时候,可以根据 */
private String awardConfig;
}
package cn.bugstack.domain.award.model.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* @author Fuzhengwei bugstack.cn @小傅哥
* @description 用户积分奖品实体对象
* @create 2024-05-18 09:15
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class UserCreditAwardEntity {
/** 用户ID */
private String userId;
/** 积分值 */
private BigDecimal creditAmount;
}
package cn.bugstack.domain.award.model.valobj;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author Fuzhengwei bugstack.cn @小傅哥
* @description 账户状态枚举
* @create 2024-05-24 22:10
*/
@Getter
@AllArgsConstructor
public enum AccountStatusVO {
open("open", "开启"),
close("close", "冻结"),
;
private final String code;
private final String desc;
}
package cn.bugstack.domain.award.repository;
import cn.bugstack.domain.award.model.aggregate.GiveOutPrizesAggregate;
import cn.bugstack.domain.award.model.aggregate.UserAwardRecordAggregate;
/*
* @return 奖品仓储服务
......@@ -8,4 +9,11 @@ import cn.bugstack.domain.award.model.aggregate.UserAwardRecordAggregate;
*/
public interface IAwardRepository {
void saveUserAwardRecord(UserAwardRecordAggregate userAwardRecordAggregate);
String queryAwardConfig(Integer awardId);
void saveGiveOutPrizesAggregate(GiveOutPrizesAggregate giveOutPrizesAggregate);
String queryAwardKey(Integer awardId);
}
......@@ -2,14 +2,18 @@ package cn.bugstack.domain.award.service;
import cn.bugstack.domain.award.model.aggregate.UserAwardRecordAggregate;
import cn.bugstack.domain.award.event.SendAwardMessageEvent;
import cn.bugstack.domain.award.model.entity.DistributeAwardEntity;
import cn.bugstack.domain.award.model.entity.TaskEntity;
import cn.bugstack.domain.award.model.entity.UserAwardRecordEntity;
import cn.bugstack.domain.award.model.valobj.TaskStateVO;
import cn.bugstack.domain.award.repository.IAwardRepository;
import cn.bugstack.domain.award.service.distribute.IDistributeAward;
import cn.bugstack.types.event.BaseEvent;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Map;
/**
* @ClassName: AwardService
......@@ -18,19 +22,27 @@ import javax.annotation.Resource;
* @Date: 2024/12/9 15:41
*/
@Service
@Slf4j
public class AwardService implements IAwardService{
@Resource
private IAwardRepository awardRepository;
@Resource
private SendAwardMessageEvent sendAwardMessageEvent;
private final IAwardRepository awardRepository;
private final SendAwardMessageEvent sendAwardMessageEvent;
private final Map<String, IDistributeAward> distributeAwardMap;
public AwardService(IAwardRepository awardRepository, SendAwardMessageEvent sendAwardMessageEvent, Map<String, IDistributeAward> distributeAwardMap) {
this.awardRepository = awardRepository;
this.sendAwardMessageEvent = sendAwardMessageEvent;
this.distributeAwardMap = distributeAwardMap;
}
@Override
public void saveUserAwardRecord(UserAwardRecordEntity userAwardRecordEntity) {
// 构建消息对象
SendAwardMessageEvent.SendAwardMessage sendAwardMessage = new SendAwardMessageEvent.SendAwardMessage();
sendAwardMessage.setUserId(userAwardRecordEntity.getUserId());
sendAwardMessage.setOrderId(userAwardRecordEntity.getOrderId());
sendAwardMessage.setAwardId(userAwardRecordEntity.getAwardId());
sendAwardMessage.setAwardTitle(userAwardRecordEntity.getAwardTitle());
sendAwardMessage.setAwardConfig(userAwardRecordEntity.getAwardConfig());
BaseEvent.EventMessage<SendAwardMessageEvent.SendAwardMessage> sendAwardMessageEventMessage = sendAwardMessageEvent.buildEventMessage(sendAwardMessage);
......@@ -41,12 +53,32 @@ public class AwardService implements IAwardService{
taskEntity.setMessageId(sendAwardMessageEventMessage.getId());
taskEntity.setMessage(sendAwardMessageEventMessage);
taskEntity.setState(TaskStateVO.create);
// 构建聚合对象
UserAwardRecordAggregate userAwardRecordAggregate = UserAwardRecordAggregate.builder()
.taskEntity(taskEntity)
.userAwardRecordEntity(userAwardRecordEntity)
.build();
// 存储聚合对象 - 一个事务下,用户的中奖记录
awardRepository.saveUserAwardRecord(userAwardRecordAggregate);
}
@Override
public void distributeAward(DistributeAwardEntity distributeAwardEntity) {
// 奖品Key
String awardKey = awardRepository.queryAwardKey(distributeAwardEntity.getAwardId());
if (null == awardKey) {
log.error("分发奖品,奖品ID不存在。awardKey:{}", awardKey);
return;
}
// 奖品服务
IDistributeAward distributeAward = distributeAwardMap.get(awardKey);
if (null == distributeAward) {
log.error("分发奖品,对应的服务不存在。awardKey:{}", awardKey);
throw new RuntimeException("分发奖品,奖品" + awardKey + "对应的服务不存在");
}
// 发放奖品
distributeAward.giveOutPrizes(distributeAwardEntity);
}
}
package cn.bugstack.domain.award.service;
import cn.bugstack.domain.award.model.entity.DistributeAwardEntity;
import cn.bugstack.domain.award.model.entity.UserAwardRecordEntity;
/*
......@@ -11,4 +12,8 @@ import cn.bugstack.domain.award.model.entity.UserAwardRecordEntity;
*/
public interface IAwardService {
void saveUserAwardRecord(UserAwardRecordEntity userAwardRecordEntity);
/**
* 配送发货奖品
*/
void distributeAward(DistributeAwardEntity distributeAwardEntity);
}
package cn.bugstack.domain.award.service.distribute;
import cn.bugstack.domain.award.model.entity.DistributeAwardEntity;
/*
* @return
* @author zhaoyongfeng
* @description 分发奖品接口
*/
public interface IDistributeAward {
void giveOutPrizes(DistributeAwardEntity distributeAwardEntity);
}
package cn.bugstack.domain.award.service.distribute.impl;
import cn.bugstack.domain.award.model.aggregate.GiveOutPrizesAggregate;
import cn.bugstack.domain.award.model.entity.DistributeAwardEntity;
import cn.bugstack.domain.award.model.entity.UserAwardRecordEntity;
import cn.bugstack.domain.award.model.entity.UserCreditAwardEntity;
import cn.bugstack.domain.award.model.valobj.AwardStateVO;
import cn.bugstack.domain.award.repository.IAwardRepository;
import cn.bugstack.domain.award.service.distribute.IDistributeAward;
import cn.bugstack.types.common.Constants;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.MathContext;
/**
* @ClassName: UserCreditRandomAward
* @Description:
* @Author: zhaoyongfeng
* @Date: 2024/12/28 17:55
*/
@Component("user_credit_random")
public class UserCreditRandomAward implements IDistributeAward {
@Resource
private IAwardRepository repository;
@Override
public void giveOutPrizes(DistributeAwardEntity distributeAwardEntity) {
// 奖品ID
Integer awardId = distributeAwardEntity.getAwardId();
// 查询奖品ID 「优先走透传的随机积分奖品配置」
String awardConfig = distributeAwardEntity.getAwardConfig();
if (StringUtils.isBlank(awardConfig)) {
awardConfig = repository.queryAwardConfig(awardId);
}
String[] creditRange = awardConfig.split(Constants.SPLIT);
if (creditRange.length != 2) {
throw new RuntimeException("award_config 「" + awardConfig + "」配置不是一个范围值,如 1,100");
}
// 生成随机积分值
BigDecimal creditAmount = generateRandom(new BigDecimal(creditRange[0]), new BigDecimal(creditRange[1]));
// 构建聚合对象
UserAwardRecordEntity userAwardRecordEntity = GiveOutPrizesAggregate.buildDistributeUserAwardRecordEntity(
distributeAwardEntity.getUserId(),
distributeAwardEntity.getOrderId(),
distributeAwardEntity.getAwardId(),
AwardStateVO.complete
);
UserCreditAwardEntity userCreditAwardEntity = GiveOutPrizesAggregate.buildUserCreditAwardEntity(distributeAwardEntity.getUserId(), creditAmount);
GiveOutPrizesAggregate giveOutPrizesAggregate = new GiveOutPrizesAggregate();
giveOutPrizesAggregate.setUserId(distributeAwardEntity.getUserId());
giveOutPrizesAggregate.setUserAwardRecordEntity(userAwardRecordEntity);
giveOutPrizesAggregate.setUserCreditAwardEntity(userCreditAwardEntity);
// 存储发奖对象
repository.saveGiveOutPrizesAggregate(giveOutPrizesAggregate);
}
private BigDecimal generateRandom(BigDecimal min, BigDecimal max) {
if (min.equals(max)) return min;
BigDecimal randomBigDecimal = min.add(BigDecimal.valueOf(Math.random()).multiply(max.subtract(min)));
return randomBigDecimal.round(new MathContext(3));
}
}
......@@ -29,6 +29,8 @@ public class BehaviorRebateOrderEntity {
private String rebateType;
/** 返利配置【sku值,积分值】 */
private String rebateConfig;
/** 业务仿重ID - 外部透传,方便查询使用 */
private String outBusinessNo;
/** 业务ID - 拼接的唯一值 */
private String bizId;
}
......@@ -2,6 +2,7 @@ package cn.bugstack.domain.rebate.repository;
import cn.bugstack.domain.rebate.aggregate.BehaviorRebateAggregate;
import cn.bugstack.domain.rebate.model.entity.BehaviorEntity;
import cn.bugstack.domain.rebate.model.entity.BehaviorRebateOrderEntity;
import cn.bugstack.domain.rebate.model.valobj.BehaviorTypeVO;
import cn.bugstack.domain.rebate.model.valobj.DailyBehaviorRebateVO;
......@@ -17,4 +18,6 @@ public interface IBehaviorRebateRepository {
List<DailyBehaviorRebateVO> queryDailyBehaviorRebateConfig (BehaviorTypeVO behaviorTypeVO);
void saveUserRebateRecord(String userId, List<BehaviorRebateAggregate> behaviorRebateAggregates);
List<BehaviorRebateOrderEntity> queryOrderByOutBusinessNo(String userId, String outBusinessNo);
}
......@@ -85,4 +85,9 @@ public class BehaviorRebateService implements IBehaviorRebateService{
// 4. 返回订单ID集合
return orderIds;
}
@Override
public List<BehaviorRebateOrderEntity> queryOrderByOutBusinessNo(String userId, String outBusinessNo) {
return behaviorRebateRepository.queryOrderByOutBusinessNo(userId, outBusinessNo);
}
}
package cn.bugstack.domain.rebate.service;
import cn.bugstack.domain.rebate.model.entity.BehaviorEntity;
import cn.bugstack.domain.rebate.model.entity.BehaviorRebateOrderEntity;
import java.util.List;
/*
......@@ -16,4 +17,12 @@ public interface IBehaviorRebateService {
* @return 订单ID
*/
List<String> createOrder(BehaviorEntity behaviorEntity);
/**
* 根据外部单号查询订单
*
* @param userId 用户ID
* @param outBusinessNo 业务ID;签到则是日期字符串,支付则是外部的业务ID
* @return 返利订单实体
*/
List<BehaviorRebateOrderEntity> queryOrderByOutBusinessNo(String userId, String outBusinessNo);
}
package cn.bugstack.domain.strategy.model.valobj;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @ClassName: RuleWeightVO
* @Description:
* @Author: zhaoyongfeng
* @Date: 2024/12/26 0:18
*/
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class RuleWeightVO {
// 原始规则值配置
private String ruleValue;
// 权重值
private Integer weight;
// 奖品配置
private List<Integer> awardIds;
// 奖品列表
private List<Award> awardList;
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public static class Award {
private Integer awardId;
private String awardTitle;
}
}
......@@ -4,6 +4,7 @@ import cn.bugstack.domain.strategy.model.entity.StrategyAwardEntity;
import cn.bugstack.domain.strategy.model.entity.StrategyEntity;
import cn.bugstack.domain.strategy.model.entity.StrategyRuleEntity;
import cn.bugstack.domain.strategy.model.valobj.RuleTreeVO;
import cn.bugstack.domain.strategy.model.valobj.RuleWeightVO;
import cn.bugstack.domain.strategy.model.valobj.StrategyAwardRuleModelVO;
import cn.bugstack.domain.strategy.model.valobj.StrategyAwardStockKeyVO;
......@@ -120,4 +121,11 @@ public interface IStrategyRepository {
* @return key 规则树,value rule_lock 加锁值
*/
Map<String, Integer> queryAwardRuleLockCount(String... treeIds);
/**
* 查询奖品权重配置
*
* @param strategyId 策略ID
* @return 权重规则
*/
List<RuleWeightVO> queryAwardRuleWeight(Long strategyId);
}
......@@ -52,8 +52,7 @@ public abstract class AbstractRaffleStrategy implements IRaffleStrategy {
DefaultChainFactory.StrategyAwardVO chainStrategyAwardVO = raffleLogicChain(userId, strategyId);
log.info("抽奖策略计算-责任链 {} {} {} {}", userId, strategyId, chainStrategyAwardVO.getAwardId(), chainStrategyAwardVO.getLogicModel());
if (!DefaultChainFactory.LogicModel.RULE_DEFAULT.getCode().equals(chainStrategyAwardVO.getLogicModel())) {
// TODO awardConfig 暂时为空。黑名单指定积分奖品,后续需要在库表中配置上对应的1积分值,并获取到。
return buildRaffleAwardEntity(strategyId, chainStrategyAwardVO.getAwardId(), null);
return buildRaffleAwardEntity(strategyId, chainStrategyAwardVO.getAwardId(), chainStrategyAwardVO.getAwardRuleValue());
}
// 3. 规则树抽奖过滤【奖品ID,会根据抽奖次数判断、库存判断、兜底兜里返回最终的可获得奖品信息】
......
package cn.bugstack.domain.strategy.service;
import cn.bugstack.domain.strategy.model.valobj.RuleWeightVO;
import java.util.List;
import java.util.Map;
/*
......@@ -15,4 +18,18 @@ public interface IRaffleRule {
* @return key 规则树,value rule_lock 加锁值
*/
Map<String, Integer> queryAwardRuleLockCount(String[] treeIds);
/**
* 查询奖品权重配置
*
* @param strategyId 策略ID
* @return 权重规则
*/
List<RuleWeightVO> queryAwardRuleWeight(Long strategyId);
/**
* 查询奖品权重配置
*
* @param activityId 活动ID
* @return 权重规则
*/
List<RuleWeightVO> queryAwardRuleWeightByActivityId(Long activityId);
}
......@@ -2,6 +2,7 @@ package cn.bugstack.domain.strategy.service.raffle;
import cn.bugstack.domain.strategy.model.entity.StrategyAwardEntity;
import cn.bugstack.domain.strategy.model.valobj.RuleTreeVO;
import cn.bugstack.domain.strategy.model.valobj.RuleWeightVO;
import cn.bugstack.domain.strategy.model.valobj.StrategyAwardRuleModelVO;
import cn.bugstack.domain.strategy.model.valobj.StrategyAwardStockKeyVO;
import cn.bugstack.domain.strategy.repository.IStrategyRepository;
......@@ -84,4 +85,13 @@ public class DefaultRaffleStrategy extends AbstractRaffleStrategy implements IRa
public Map<String, Integer> queryAwardRuleLockCount(String[] treeIds) {
return repository.queryAwardRuleLockCount(treeIds);
}
@Override
public List<RuleWeightVO> queryAwardRuleWeight(Long strategyId) {
return repository.queryAwardRuleWeight(strategyId);
}
@Override
public List<RuleWeightVO> queryAwardRuleWeightByActivityId(Long activityId) {
Long strategyId = repository.queryStrategyIdByActivityId(activityId);
return queryAwardRuleWeight(strategyId);
}
}
......@@ -78,9 +78,13 @@ public class DefaultChainFactory {
*/
private Integer awardId;
/**
*
* 抽奖类型;黑名单抽奖、权重规则、默认抽奖
*/
private String logicModel;
/**
* 抽奖奖品规则
*/
private String awardRuleValue;
}
@Getter
......
......@@ -41,6 +41,8 @@ public class BackListLogicChain extends AbstractLogicChain {
return DefaultChainFactory.StrategyAwardVO.builder()
.awardId(awardId)
.logicModel(ruleModel())
// 写入默认配置黑名单奖品值 0.01 ~ 1 积分,也可以配置到数据库表中
.awardRuleValue("0.01,1")
.build();
}
}
......
......@@ -15,4 +15,8 @@ public interface IAwardDao {
List<Award> queryAwardList();
String queryAwardConfigByAwardId(Integer awardId);
String queryAwardKeyByAwardId(Integer awardId);
}
......@@ -23,4 +23,5 @@ public interface IRaffleActivityAccountDayDao {
Integer queryRaffleActivityAccountDayPartakeCount(RaffleActivityAccountDay raffleActivityAccountDay);
void addAccountQuota(RaffleActivityAccountDay raffleActivityAccountDay);
}
......@@ -20,4 +20,5 @@ public interface IRaffleActivityAccountMonthDao {
void insertActivityAccountMonth(RaffleActivityAccountMonth raffleActivityAccountMonth);
void addAccountQuota(RaffleActivityAccountMonth raffleActivityAccountMonth);
}
......@@ -15,4 +15,6 @@ public interface IUserAwardRecordDao {
void insert(UserAwardRecord userAwardRecord);
int updateAwardRecordCompletedState(UserAwardRecord userAwardRecordReq);
}
package cn.bugstack.infrastructure.persistent.dao;
import cn.bugstack.infrastructure.persistent.po.UserBehaviorRebateOrder;
import cn.bugstack.middleware.db.router.annotation.DBRouter;
import cn.bugstack.middleware.db.router.annotation.DBRouterStrategy;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @author Fuzhengwei bugstack.cn @小傅哥
* @description 用户行为返利流水订单表
......@@ -15,4 +18,7 @@ public interface IUserBehaviorRebateOrderDao {
void insert(UserBehaviorRebateOrder userBehaviorRebateOrder);
@DBRouter
List<UserBehaviorRebateOrder> queryOrderByOutBusinessNo(UserBehaviorRebateOrder userBehaviorRebateOrderReq);
}
package cn.bugstack.infrastructure.persistent.dao;
import cn.bugstack.infrastructure.persistent.po.UserCreditAccount;
import org.apache.ibatis.annotations.Mapper;
/**
* @author Fuzhengwei bugstack.cn @小傅哥
* @description 用户积分账户
* @create 2024-05-24 21:11
*/
@Mapper
public interface IUserCreditAccountDao {
void insert(UserCreditAccount userCreditAccountReq);
int updateAddAmount(UserCreditAccount userCreditAccountReq);
}
......@@ -19,12 +19,12 @@ import java.util.Date;
@NoArgsConstructor
public class RaffleActivityAccountDay {
private final SimpleDateFormat dateFormatDay = new SimpleDateFormat("yyyy-MM-dd");
private final static SimpleDateFormat dateFormatDay = new SimpleDateFormat("yyyy-MM-dd");
/**
* 自增ID
*/
private String id;
private Long id;
/**
* 用户ID
*/
......@@ -54,7 +54,7 @@ public class RaffleActivityAccountDay {
*/
private Date updateTime;
public String currentDay() {
public static String currentDay() {
return dateFormatDay.format(new Date());
}
......
......@@ -18,10 +18,11 @@ import java.util.Date;
@AllArgsConstructor
@NoArgsConstructor
public class RaffleActivityAccountMonth {
private final SimpleDateFormat dateFormatMonth = new SimpleDateFormat("yyyy-MM");
private final static SimpleDateFormat dateFormatMonth = new SimpleDateFormat("yyyy-MM");
/** 自增ID */
private String id;
private Long id;
/** 用户ID */
private String userId;
/** 活动ID */
......@@ -36,7 +37,9 @@ public class RaffleActivityAccountMonth {
private Date createTime;
/** 更新时间 */
private Date updateTime;
public String currentMonth() {
public static String currentMonth() {
return dateFormatMonth.format(new Date());
}
}
......@@ -26,6 +26,8 @@ public class UserBehaviorRebateOrder {
private String rebateType;
/** 返利配置【sku值,积分值】 */
private String rebateConfig;
/** 业务仿重ID - 外部透传,方便查询使用 */
private String outBusinessNo;
/** 业务ID - 拼接的唯一值 */
private String bizId;
/** 创建时间 */
......
package cn.bugstack.infrastructure.persistent.po;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author Fuzhengwei bugstack.cn @小傅哥
* @description 用户积分账户
* @create 2024-05-18 09:10
*/
@Data
public class UserCreditAccount {
/** 自增ID */
private Long id;
/** 用户ID */
private String userId;
/** 总积分,显示总账户值,记得一个人获得的总积分 */
private BigDecimal totalAmount;
/** 可用积分,每次扣减的值 */
private BigDecimal availableAmount;
/** 账户状态【open - 可用,close - 冻结】 */
private String accountStatus;
/** 创建时间 */
private Date createTime;
/** 更新时间 */
private Date updateTime;
}
......@@ -476,4 +476,69 @@ public class ActivityRepository implements IActivityRepository {
return null == dayPartakeCount ? 0 : dayPartakeCount;
}
@Override
public ActivityAccountEntity queryActivityAccountEntity(Long activityId, String userId) {
// 1. 查询总账户额度
RaffleActivityAccount raffleActivityAccount = raffleActivityAccountDao.queryActivityAccountByUserId(RaffleActivityAccount.builder()
.activityId(activityId)
.userId(userId)
.build());
if (null == raffleActivityAccount) {
return ActivityAccountEntity.builder()
.activityId(activityId)
.userId(userId)
.totalCount(0)
.totalCountSurplus(0)
.monthCount(0)
.monthCountSurplus(0)
.dayCount(0)
.dayCountSurplus(0)
.build();
}
// 2. 查询月账户额度
RaffleActivityAccountMonth raffleActivityAccountMonth = raffleActivityAccountMonthDao.queryActivityAccountMonthByUserId(RaffleActivityAccountMonth.builder()
.activityId(activityId)
.userId(userId)
.build());
// 3. 查询日账户额度
RaffleActivityAccountDay raffleActivityAccountDay = raffleActivityAccountDayDao.queryActivityAccountDayByUserId(RaffleActivityAccountDay.builder()
.activityId(activityId)
.userId(userId)
.build());
// 组装对象
ActivityAccountEntity activityAccountEntity = new ActivityAccountEntity();
activityAccountEntity.setUserId(userId);
activityAccountEntity.setActivityId(activityId);
activityAccountEntity.setTotalCount(raffleActivityAccount.getTotalCount());
activityAccountEntity.setTotalCountSurplus(raffleActivityAccount.getTotalCountSurplus());
// 如果没有创建日账户,则从总账户中获取日总额度填充。「当新创建日账户时,会获得总账户额度」
if (null == raffleActivityAccountDay) {
activityAccountEntity.setDayCount(raffleActivityAccount.getDayCount());
activityAccountEntity.setDayCountSurplus(raffleActivityAccount.getDayCount());
} else {
activityAccountEntity.setDayCount(raffleActivityAccountDay.getDayCount());
activityAccountEntity.setDayCountSurplus(raffleActivityAccountDay.getDayCountSurplus());
}
// 如果没有创建月账户,则从总账户中获取月总额度填充。「当新创建日账户时,会获得总账户额度」
if (null == raffleActivityAccountMonth) {
activityAccountEntity.setMonthCount(raffleActivityAccount.getMonthCount());
activityAccountEntity.setMonthCountSurplus(raffleActivityAccount.getMonthCount());
} else {
activityAccountEntity.setMonthCount(raffleActivityAccountMonth.getMonthCount());
activityAccountEntity.setMonthCountSurplus(raffleActivityAccountMonth.getMonthCountSurplus());
}
return activityAccountEntity;
}
@Override
public Integer queryRaffleActivityAccountPartakeCount(Long activityId, String userId) {
RaffleActivityAccount raffleActivityAccount = raffleActivityAccountDao.queryActivityAccountByUserId(RaffleActivityAccount.builder()
.activityId(activityId)
.userId(userId)
.build());
return raffleActivityAccount.getTotalCount() - raffleActivityAccount.getTotalCountSurplus();
}
}
package cn.bugstack.infrastructure.persistent.repository;
import cn.bugstack.domain.award.model.aggregate.GiveOutPrizesAggregate;
import cn.bugstack.domain.award.model.aggregate.UserAwardRecordAggregate;
import cn.bugstack.domain.award.model.entity.TaskEntity;
import cn.bugstack.domain.award.model.entity.UserAwardRecordEntity;
import cn.bugstack.domain.award.model.entity.UserCreditAwardEntity;
import cn.bugstack.domain.award.model.valobj.AccountStatusVO;
import cn.bugstack.domain.award.repository.IAwardRepository;
import cn.bugstack.infrastructure.event.EventPublisher;
import cn.bugstack.infrastructure.persistent.dao.ITaskDao;
import cn.bugstack.infrastructure.persistent.dao.IUserAwardRecordDao;
import cn.bugstack.infrastructure.persistent.dao.IUserRaffleOrderDao;
import cn.bugstack.infrastructure.persistent.dao.*;
import cn.bugstack.infrastructure.persistent.po.Task;
import cn.bugstack.infrastructure.persistent.po.UserAwardRecord;
import cn.bugstack.infrastructure.persistent.po.UserCreditAccount;
import cn.bugstack.infrastructure.persistent.po.UserRaffleOrder;
import cn.bugstack.middleware.db.router.strategy.IDBRouterStrategy;
import cn.bugstack.types.enums.ResponseCode;
......@@ -34,8 +36,12 @@ public class AwardRepository implements IAwardRepository {
@Resource
private ITaskDao taskDao;
@Resource
private IAwardDao awardDao;
@Resource
private IUserAwardRecordDao userAwardRecordDao;
@Resource
private IUserCreditAccountDao userCreditAccountDao;
@Resource
private IUserRaffleOrderDao userRaffleOrderDao;
@Resource
private IDBRouterStrategy dbRouter;
......@@ -108,4 +114,58 @@ public class AwardRepository implements IAwardRepository {
}
}
@Override
public String queryAwardConfig(Integer awardId) {
return awardDao.queryAwardConfigByAwardId(awardId);
}
@Override
public void saveGiveOutPrizesAggregate(GiveOutPrizesAggregate giveOutPrizesAggregate) {
String userId = giveOutPrizesAggregate.getUserId();
UserCreditAwardEntity userCreditAwardEntity = giveOutPrizesAggregate.getUserCreditAwardEntity();
UserAwardRecordEntity userAwardRecordEntity = giveOutPrizesAggregate.getUserAwardRecordEntity();
// 更新发奖记录
UserAwardRecord userAwardRecordReq = new UserAwardRecord();
userAwardRecordReq.setUserId(userId);
userAwardRecordReq.setOrderId(userAwardRecordEntity.getOrderId());
userAwardRecordReq.setAwardState(userAwardRecordEntity.getAwardState().getCode());
// 更新用户积分 「首次则插入数据」
UserCreditAccount userCreditAccountReq = new UserCreditAccount();
userCreditAccountReq.setUserId(userCreditAwardEntity.getUserId());
userCreditAccountReq.setTotalAmount(userCreditAwardEntity.getCreditAmount());
userCreditAccountReq.setAvailableAmount(userCreditAwardEntity.getCreditAmount());
userCreditAccountReq.setAccountStatus(AccountStatusVO.open.getCode());
try {
dbRouter.doRouter(giveOutPrizesAggregate.getUserId());
transactionTemplate.execute(status -> {
try {
// 更新积分 || 创建积分账户
int updateAccountCount = userCreditAccountDao.updateAddAmount(userCreditAccountReq);
if (0 == updateAccountCount) {
userCreditAccountDao.insert(userCreditAccountReq);
}
// 更新奖品记录
int updateAwardCount = userAwardRecordDao.updateAwardRecordCompletedState(userAwardRecordReq);
if (0 == updateAwardCount) {
log.warn("更新中奖记录,重复更新拦截 userId:{} giveOutPrizesAggregate:{}", userId, JSON.toJSONString(giveOutPrizesAggregate));
status.setRollbackOnly();
}
return 1;
} catch (DuplicateKeyException e) {
status.setRollbackOnly();
log.error("更新中奖记录,唯一索引冲突 userId: {} ", userId, e);
throw new AppException(ResponseCode.INDEX_DUP.getCode(), e);
}
});
} finally {
dbRouter.clear();
}
}
@Override
public String queryAwardKey(Integer awardId) {
return awardDao.queryAwardKeyByAwardId(awardId);
}
}
......@@ -118,4 +118,29 @@ public class BehaviorRebateRepository implements IBehaviorRebateRepository {
}
}
}
@Override
public List<BehaviorRebateOrderEntity> queryOrderByOutBusinessNo(String userId, String outBusinessNo) {
// 1. 请求对象
UserBehaviorRebateOrder userBehaviorRebateOrderReq = new UserBehaviorRebateOrder();
userBehaviorRebateOrderReq.setUserId(userId);
userBehaviorRebateOrderReq.setOutBusinessNo(outBusinessNo);
// 2. 查询结果
List<UserBehaviorRebateOrder> userBehaviorRebateOrderResList = userBehaviorRebateOrderDao.queryOrderByOutBusinessNo(userBehaviorRebateOrderReq);
List<BehaviorRebateOrderEntity> behaviorRebateOrderEntities = new ArrayList<>(userBehaviorRebateOrderResList.size());
for (UserBehaviorRebateOrder userBehaviorRebateOrder : userBehaviorRebateOrderResList) {
BehaviorRebateOrderEntity behaviorRebateOrderEntity = BehaviorRebateOrderEntity.builder()
.userId(userBehaviorRebateOrder.getUserId())
.orderId(userBehaviorRebateOrder.getOrderId())
.behaviorType(userBehaviorRebateOrder.getBehaviorType())
.rebateDesc(userBehaviorRebateOrder.getRebateDesc())
.rebateType(userBehaviorRebateOrder.getRebateType())
.rebateConfig(userBehaviorRebateOrder.getRebateConfig())
.outBusinessNo(userBehaviorRebateOrder.getOutBusinessNo())
.bizId(userBehaviorRebateOrder.getBizId())
.build();
behaviorRebateOrderEntities.add(behaviorRebateOrderEntity);
}
return behaviorRebateOrderEntities;
}
}
......@@ -5,6 +5,7 @@ import cn.bugstack.domain.strategy.model.entity.StrategyEntity;
import cn.bugstack.domain.strategy.model.entity.StrategyRuleEntity;
import cn.bugstack.domain.strategy.model.valobj.*;
import cn.bugstack.domain.strategy.repository.IStrategyRepository;
import cn.bugstack.domain.strategy.service.rule.chain.factory.DefaultChainFactory;
import cn.bugstack.infrastructure.persistent.dao.*;
import cn.bugstack.infrastructure.persistent.po.*;
import cn.bugstack.infrastructure.persistent.redis.IRedisService;
......@@ -341,4 +342,49 @@ public class StrategyRepository implements IStrategyRepository {
return resultMap;
}
@Override
public List<RuleWeightVO> queryAwardRuleWeight(Long strategyId) {
// 优先从缓存获取
String cacheKey = Constants.RedisKey.STRATEGY_RULE_WEIGHT_KEY + strategyId;
List<RuleWeightVO> ruleWeightVOS = redisService.getValue(cacheKey);
if (null != ruleWeightVOS) return ruleWeightVOS;
ruleWeightVOS = new ArrayList<>();
// 1. 查询权重规则配置
StrategyRule strategyRuleReq = new StrategyRule();
strategyRuleReq.setStrategyId(strategyId);
strategyRuleReq.setRuleModel(DefaultChainFactory.LogicModel.RULE_WEIGHT.getCode());
String ruleValue = strategyRuleDao.queryStrategyRuleValue(strategyRuleReq);
// 2. 借助实体对象转换规则
StrategyRuleEntity strategyRuleEntity = new StrategyRuleEntity();
strategyRuleEntity.setRuleModel(DefaultChainFactory.LogicModel.RULE_WEIGHT.getCode());
strategyRuleEntity.setRuleValue(ruleValue);
Map<String, List<Integer>> ruleWeightValues = strategyRuleEntity.getRuleWeightValues();
// 3. 遍历规则组装奖品配置
Set<String> ruleWeightKeys = ruleWeightValues.keySet();
for (String ruleWeightKey : ruleWeightKeys) {
List<Integer> awardIds = ruleWeightValues.get(ruleWeightKey);
List<RuleWeightVO.Award> awardList = new ArrayList<>();
// 也可以修改为一次从数据库查询
for (Integer awardId : awardIds) {
StrategyAward strategyAwardReq = new StrategyAward();
strategyAwardReq.setStrategyId(strategyId);
strategyAwardReq.setAwardId(awardId);
StrategyAward strategyAward = strategyAwardDao.queryStrategyAward(strategyAwardReq);
awardList.add(RuleWeightVO.Award.builder()
.awardId(strategyAward.getAwardId())
.awardTitle(strategyAward.getAwardTitle())
.build());
}
ruleWeightVOS.add(RuleWeightVO.builder()
.ruleValue(ruleValue)
.weight(Integer.valueOf(ruleWeightKey.split(Constants.COLON)[0]))
.awardIds(awardIds)
.awardList(awardList)
.build());
}
// 设置缓存 - 实际场景中,这类数据,可以在活动下架的时候统一清空缓存。
redisService.setValue(cacheKey, ruleWeightVOS);
return ruleWeightVOS;
}
}
package cn.bugstack.trigger.http;
import cn.bugstack.domain.activity.model.entity.ActivityAccountEntity;
import cn.bugstack.domain.activity.model.entity.UserRaffleOrderEntity;
import cn.bugstack.domain.activity.service.IRaffleActivityAccountQuotaService;
import cn.bugstack.domain.activity.service.IRaffleActivityPartakeService;
import cn.bugstack.domain.activity.service.armory.IActivityArmory;
import cn.bugstack.domain.award.model.entity.UserAwardRecordEntity;
import cn.bugstack.domain.award.model.valobj.AwardStateVO;
import cn.bugstack.domain.award.service.IAwardService;
import cn.bugstack.domain.rebate.model.entity.BehaviorEntity;
import cn.bugstack.domain.rebate.model.entity.BehaviorRebateOrderEntity;
import cn.bugstack.domain.rebate.model.valobj.BehaviorTypeVO;
import cn.bugstack.domain.rebate.service.IBehaviorRebateService;
import cn.bugstack.domain.strategy.model.entity.RaffleAwardEntity;
......@@ -16,6 +19,8 @@ import cn.bugstack.domain.strategy.service.armory.IStrategyArmory;
import cn.bugstack.trigger.api.IRaffleActivityService;
import cn.bugstack.trigger.api.dto.ActivityDrawRequestDTO;
import cn.bugstack.trigger.api.dto.ActivityDrawResponseDTO;
import cn.bugstack.trigger.api.dto.UserActivityAccountRequestDTO;
import cn.bugstack.trigger.api.dto.UserActivityAccountResponseDTO;
import cn.bugstack.types.enums.ResponseCode;
import cn.bugstack.types.exception.AppException;
import cn.bugstack.types.model.Response;
......@@ -44,6 +49,8 @@ public class RaffleActivityController implements IRaffleActivityService {
@Resource
private IRaffleActivityPartakeService raffleActivityPartakeService;
@Resource
private IRaffleActivityAccountQuotaService raffleActivityAccountQuotaService;
@Resource
private IActivityArmory activityArmory;
@Resource
private IStrategyArmory strategyArmory;
......@@ -110,15 +117,17 @@ public class RaffleActivityController implements IRaffleActivityService {
@RequestMapping(value = "draw",method = RequestMethod.POST)
@Override
public Response<ActivityDrawResponseDTO> draw(@RequestBody ActivityDrawRequestDTO request) {
try{
try {
log.info("活动抽奖 userId:{} activityId:{}", request.getUserId(), request.getActivityId());
// 1. 参数校验
if (StringUtils.isBlank(request.getUserId()) || null == request.getActivityId()) {
throw new AppException(ResponseCode.ILLEGAL_PARAMETER.getCode(), ResponseCode.ILLEGAL_PARAMETER.getInfo());
}
// 2. 参与活动 - 创建参与记录订单
UserRaffleOrderEntity orderEntity = raffleActivityPartakeService.createOrder(request.getUserId(), request.getActivityId());
log.info("活动抽奖,创建订单 userId:{} activityId:{} orderId:{}", request.getUserId(), request.getActivityId(), orderEntity.getOrderId());
// 3. 抽奖策略 - 执行抽奖
RaffleAwardEntity raffleAwardEntity = raffleStrategy.performRaffle(RaffleFactorEntity.builder()
.userId(orderEntity.getUserId())
......@@ -136,8 +145,11 @@ public class RaffleActivityController implements IRaffleActivityService {
.awardTitle(raffleAwardEntity.getAwardTitle())
.awardTime(new Date())
.awardState(AwardStateVO.create)
.awardConfig(raffleAwardEntity.getAwardConfig())
.build();
awardService.saveUserAwardRecord(userAwardRecord);
// 5. 返回结果
return Response.<ActivityDrawResponseDTO>builder()
.code(ResponseCode.SUCCESS.getCode())
......@@ -148,13 +160,13 @@ public class RaffleActivityController implements IRaffleActivityService {
.awardIndex(raffleAwardEntity.getSort())
.build())
.build();
}catch(AppException e){
} catch (AppException e) {
log.error("活动抽奖失败 userId:{} activityId:{}", request.getUserId(), request.getActivityId(), e);
return Response.<ActivityDrawResponseDTO>builder()
.code(e.getCode())
.info(e.getInfo())
.build();
}catch (Exception e) {
} catch (Exception e) {
log.error("活动抽奖失败 userId:{} activityId:{}", request.getUserId(), request.getActivityId(), e);
return Response.<ActivityDrawResponseDTO>builder()
.code(ResponseCode.UN_ERROR.getCode())
......@@ -204,4 +216,75 @@ public class RaffleActivityController implements IRaffleActivityService {
.build();
}
}
/**
* 判断是否签到接口
* <p>
* curl -X POST http://localhost:8091/api/v1/raffle/activity/is_calendar_sign_rebate -d "userId=xiaofuge" -H "Content-Type: application/x-www-form-urlencoded"
*/
@RequestMapping(value = "is_calendar_sign_rebate",method = RequestMethod.POST)
@Override
public Response<Boolean> isCalendarSignRebate(String userId) {
try{
log.info("查询用户是否完成日历签到返利开始 userId:{}", userId);
String outBusinessNo = dateFormatDay.format(new Date());
List<BehaviorRebateOrderEntity> behaviorRebateOrderEntities = behaviorRebateService.queryOrderByOutBusinessNo(userId, outBusinessNo);
log.info("查询用户是否完成日历签到返利完成 userId:{} orders.size:{}", userId, behaviorRebateOrderEntities.size());
return Response.<Boolean>builder()
.code(ResponseCode.SUCCESS.getCode())
.info(ResponseCode.SUCCESS.getInfo())
// 只要不为空,则表示已经做了签到
.data(!behaviorRebateOrderEntities.isEmpty())
.build();
}catch (Exception e) {
log.error("查询用户是否完成日历签到返利失败 userId:{}", userId, e);
return Response.<Boolean>builder()
.code(ResponseCode.UN_ERROR.getCode())
.info(ResponseCode.UN_ERROR.getInfo())
.data(false)
.build();
}
}
/**
* 查询账户额度
* <p>
* curl --request POST \
* --url http://localhost:8091/api/v1/raffle/activity/query_user_activity_account \
* --header 'content-type: application/json' \
* --data '{
* "userId":"xiaofuge",
* "activityId": 100301
* }'
*/
@RequestMapping(value = "query_user_activity_account", method = RequestMethod.POST)
@Override
public Response<UserActivityAccountResponseDTO> queryUserActivityAccount(UserActivityAccountRequestDTO request) {
try {
log.info("查询用户活动账户开始 userId:{} activityId:{}", request.getUserId(), request.getActivityId());
// 1. 参数校验
if (StringUtils.isBlank(request.getUserId()) || null == request.getActivityId()) {
throw new AppException(ResponseCode.ILLEGAL_PARAMETER.getCode(), ResponseCode.ILLEGAL_PARAMETER.getInfo());
}
ActivityAccountEntity activityAccountEntity = raffleActivityAccountQuotaService.queryActivityAccountEntity(request.getActivityId(), request.getUserId());
UserActivityAccountResponseDTO userActivityAccountResponseDTO = UserActivityAccountResponseDTO.builder()
.totalCount(activityAccountEntity.getTotalCount())
.totalCountSurplus(activityAccountEntity.getTotalCountSurplus())
.dayCount(activityAccountEntity.getDayCount())
.dayCountSurplus(activityAccountEntity.getDayCountSurplus())
.monthCount(activityAccountEntity.getMonthCount())
.monthCountSurplus(activityAccountEntity.getMonthCountSurplus())
.build();
log.info("查询用户活动账户完成 userId:{} activityId:{} dto:{}", request.getUserId(), request.getActivityId(), JSON.toJSONString(userActivityAccountResponseDTO));
return Response.<UserActivityAccountResponseDTO>builder()
.code(ResponseCode.SUCCESS.getCode())
.info(ResponseCode.SUCCESS.getInfo())
.data(userActivityAccountResponseDTO)
.build();
}catch (Exception e){
log.error("查询用户活动账户失败 userId:{} activityId:{}", request.getUserId(), request.getActivityId(), e);
return Response.<UserActivityAccountResponseDTO>builder()
.code(ResponseCode.UN_ERROR.getCode())
.info(ResponseCode.UN_ERROR.getInfo())
.build();
}
}
}
......@@ -4,15 +4,13 @@ import cn.bugstack.domain.activity.service.IRaffleActivityAccountQuotaService;
import cn.bugstack.domain.strategy.model.entity.RaffleAwardEntity;
import cn.bugstack.domain.strategy.model.entity.RaffleFactorEntity;
import cn.bugstack.domain.strategy.model.entity.StrategyAwardEntity;
import cn.bugstack.domain.strategy.model.valobj.RuleWeightVO;
import cn.bugstack.domain.strategy.service.IRaffleAward;
import cn.bugstack.domain.strategy.service.IRaffleRule;
import cn.bugstack.domain.strategy.service.IRaffleStrategy;
import cn.bugstack.domain.strategy.service.armory.IStrategyArmory;
import cn.bugstack.trigger.api.IRaffleStrategyService;
import cn.bugstack.trigger.api.dto.RaffleAwardListRequestDTO;
import cn.bugstack.trigger.api.dto.RaffleRequestDTO;
import cn.bugstack.trigger.api.dto.RaffleAwardListResponseDTO;
import cn.bugstack.trigger.api.dto.RaffleResponseDTO;
import cn.bugstack.trigger.api.dto.*;
import cn.bugstack.types.enums.ResponseCode;
import cn.bugstack.types.exception.AppException;
import cn.bugstack.types.model.Response;
......@@ -178,5 +176,63 @@ public class RaffleStrategyController implements IRaffleStrategyService {
.build();
}
}
/**
* 查询抽奖策略权重规则,给用户展示出抽奖N次后必中奖奖品范围
* curl --request POST \
* --url http://localhost:8091/api/v1/raffle/strategy/query_raffle_strategy_rule_weight \
* --header 'content-type: application/json' \
* --data '{
* "userId":"xiaofuge",
* "activityId": 100301
* }'
*/
@RequestMapping(value = "query_raffle_strategy_rule_weight", method = RequestMethod.POST)
@Override
public Response<List<RaffleStrategyRuleWeightResponseDTO>> queryRaffleStrategyRuleWeight(RaffleStrategyRuleWeightRequestDTO request) {
try {
log.info("查询抽奖策略权重规则配置开始 userId:{} activityId:{}", request.getUserId(), request.getActivityId());
// 1. 参数校验
if (StringUtils.isBlank(request.getUserId()) || null == request.getActivityId()) {
throw new AppException(ResponseCode.ILLEGAL_PARAMETER.getCode(), ResponseCode.ILLEGAL_PARAMETER.getInfo());
}
// 2. 查询用户抽奖总次数
Integer userActivityAccountTotalUseCount = raffleActivityAccountQuotaService.queryRaffleActivityAccountPartakeCount(request.getActivityId(), request.getUserId());
// 3. 查询规则
List<RaffleStrategyRuleWeightResponseDTO> raffleStrategyRuleWeightList = new ArrayList<>();
List<RuleWeightVO> ruleWeightVOList = raffleRule.queryAwardRuleWeightByActivityId(request.getActivityId());
for (RuleWeightVO ruleWeightVO : ruleWeightVOList) {
// 转换对象
List<RaffleStrategyRuleWeightResponseDTO.StrategyAward> strategyAwards = new ArrayList<>();
List<RuleWeightVO.Award> awardList = ruleWeightVO.getAwardList();
for (RuleWeightVO.Award award : awardList) {
RaffleStrategyRuleWeightResponseDTO.StrategyAward strategyAward = new RaffleStrategyRuleWeightResponseDTO.StrategyAward();
strategyAward.setAwardId(award.getAwardId());
strategyAward.setAwardTitle(award.getAwardTitle());
strategyAwards.add(strategyAward);
}
// 封装对象
RaffleStrategyRuleWeightResponseDTO raffleStrategyRuleWeightResponseDTO = new RaffleStrategyRuleWeightResponseDTO();
raffleStrategyRuleWeightResponseDTO.setRuleWeightCount(ruleWeightVO.getWeight());
raffleStrategyRuleWeightResponseDTO.setStrategyAwards(strategyAwards);
raffleStrategyRuleWeightResponseDTO.setUserActivityAccountTotalUseCount(userActivityAccountTotalUseCount);
raffleStrategyRuleWeightList.add(raffleStrategyRuleWeightResponseDTO);
}
Response<List<RaffleStrategyRuleWeightResponseDTO>> response = Response.<List<RaffleStrategyRuleWeightResponseDTO>>builder()
.code(ResponseCode.SUCCESS.getCode())
.info(ResponseCode.SUCCESS.getInfo())
.data(raffleStrategyRuleWeightList)
.build();
log.info("查询抽奖策略权重规则配置完成 userId:{} activityId:{} response: {}", request.getUserId(), request.getActivityId(), JSON.toJSONString(response));
return response;
}catch (Exception e) {
log.error("查询抽奖策略权重规则配置失败 userId:{} activityId:{}", request.getUserId(), request.getActivityId(), e);
return Response.<List<RaffleStrategyRuleWeightResponseDTO>>builder()
.code(ResponseCode.UN_ERROR.getCode())
.info(ResponseCode.UN_ERROR.getInfo())
.build();
}
}
}
package cn.bugstack.trigger.listener;
import cn.bugstack.domain.award.event.SendAwardMessageEvent;
import cn.bugstack.domain.award.model.entity.DistributeAwardEntity;
import cn.bugstack.domain.award.service.IAwardService;
import cn.bugstack.types.event.BaseEvent;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.TypeReference;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
* @ClassName: SendAwardCustomer
* @Description: 用户奖品记录消息消费者
......@@ -18,11 +26,23 @@ public class SendAwardCustomer {
@Value("${spring.rabbitmq.topic.send_award}")
private String topic;
@Resource
private IAwardService awardService;
@RabbitListener(queuesToDeclare = @Queue(value = "${spring.rabbitmq.topic.send_award}"))
public void listener(String message) {
try {
log.info("监听用户奖品发送消息 topic: {} message: {}", topic, message);
BaseEvent.EventMessage<SendAwardMessageEvent.SendAwardMessage> eventMessage = JSON.parseObject(message, new TypeReference<BaseEvent.EventMessage<SendAwardMessageEvent.SendAwardMessage>>() {
}.getType());
SendAwardMessageEvent.SendAwardMessage sendAwardMessage = eventMessage.getData();
// 发放奖品
DistributeAwardEntity distributeAwardEntity = new DistributeAwardEntity();
distributeAwardEntity.setUserId(sendAwardMessage.getUserId());
distributeAwardEntity.setOrderId(sendAwardMessage.getOrderId());
distributeAwardEntity.setAwardId(sendAwardMessage.getAwardId());
distributeAwardEntity.setAwardConfig(sendAwardMessage.getAwardConfig());
awardService.distributeAward(distributeAwardEntity);
} catch (Exception e) {
log.error("监听用户奖品发送消息,消费失败 topic: {} message: {}", topic, message);
throw e;
......
......@@ -22,8 +22,10 @@ public class Constants {
public static String RULE_TREE_VO_KEY = "rule_tree_vo_key_";
public static String STRATEGY_AWARD_COUNT_KEY = "strategy_award_count_key_";
public static String STRATEGY_AWARD_COUNT_QUERY_KEY = "strategy_award_count_query_key";
public static String STRATEGY_RULE_WEIGHT_KEY = "strategy_rule_weight_key_";
public static String ACTIVITY_SKU_COUNT_QUERY_KEY = "activity_sku_count_query_key";
public static String ACTIVITY_SKU_STOCK_COUNT_KEY = "activity_sku_stock_count_key_";
public static String ACTIVITY_SKU_COUNT_CLEAR_KEY = "activity_sku_count_clear_key_";
}
......
24-12-10.16:08:42.848 [main ] INFO Application - Starting Application using Java 1.8.0_412 on zhaoyongfeng with PID 14364 (C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes started by zhaoyongfeng in C:\Users\31126\Desktop\bigmarket-lite)
24-12-10.16:08:42.851 [main ] INFO Application - The following 1 profile is active: "dev"
24-12-10.16:08:43.928 [main ] INFO RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode
24-12-10.16:08:43.930 [main ] INFO RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
24-12-10.16:08:44.032 [main ] INFO RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 91 ms. Found 0 Redis repository interfaces.
24-12-10.16:08:44.857 [main ] INFO TomcatWebServer - Tomcat initialized with port(s): 8091 (http)
24-12-10.16:08:44.867 [main ] INFO Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8091"]
24-12-10.16:08:44.867 [main ] INFO StandardService - Starting service [Tomcat]
24-12-10.16:08:44.867 [main ] INFO StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.75]
24-12-10.16:08:45.054 [main ] INFO [/] - Initializing Spring embedded WebApplicationContext
24-12-10.16:08:45.054 [main ] INFO ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 2169 ms
24-12-10.16:08:45.503 [main ] WARN AnnotationConfigServletWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'raffleController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'defaultRaffleStrategy' defined in file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-domain\target\classes\cn\bugstack\domain\strategy\service\raffle\DefaultRaffleStrategy.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'strategyRepository': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'IStrategyDao' defined in file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-infrastructure\target\classes\cn\bugstack\infrastructure\persistent\dao\IStrategyDao.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'. Cause: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for cn.bugstack.infrastructure.persistent.dao.IUserAwardRecordDao.insert. please check file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\IAwardRepository.xml] and file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]
24-12-10.16:08:45.506 [main ] INFO StandardService - Stopping service [Tomcat]
24-12-10.16:08:45.519 [main ] INFO ConditionEvaluationReportLoggingListener -
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
24-12-10.16:08:45.544 [main ] ERROR SpringApplication - Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'raffleController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'defaultRaffleStrategy' defined in file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-domain\target\classes\cn\bugstack\domain\strategy\service\raffle\DefaultRaffleStrategy.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'strategyRepository': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'IStrategyDao' defined in file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-infrastructure\target\classes\cn\bugstack\infrastructure\persistent\dao\IStrategyDao.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'. Cause: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for cn.bugstack.infrastructure.persistent.dao.IUserAwardRecordDao.insert. please check file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\IAwardRepository.xml] and file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:332)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:920)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292)
at cn.bugstack.Application.main(Application.java:14)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'defaultRaffleStrategy' defined in file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-domain\target\classes\cn\bugstack\domain\strategy\service\raffle\DefaultRaffleStrategy.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'strategyRepository': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'IStrategyDao' defined in file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-infrastructure\target\classes\cn\bugstack\infrastructure\persistent\dao\IStrategyDao.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'. Cause: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for cn.bugstack.infrastructure.persistent.dao.IUserAwardRecordDao.insert. please check file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\IAwardRepository.xml] and file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:229)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:544)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:520)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:673)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:228)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:329)
... 17 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'strategyRepository': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'IStrategyDao' defined in file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-infrastructure\target\classes\cn\bugstack\infrastructure\persistent\dao\IStrategyDao.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'. Cause: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for cn.bugstack.infrastructure.persistent.dao.IUserAwardRecordDao.insert. please check file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\IAwardRepository.xml] and file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:332)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)
... 35 common frames omitted
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'IStrategyDao' defined in file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-infrastructure\target\classes\cn\bugstack\infrastructure\persistent\dao\IStrategyDao.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'. Cause: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for cn.bugstack.infrastructure.persistent.dao.IUserAwardRecordDao.insert. please check file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\IAwardRepository.xml] and file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1534)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1417)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:544)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:520)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:673)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:228)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:329)
... 47 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'. Cause: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for cn.bugstack.infrastructure.persistent.dao.IUserAwardRecordDao.insert. please check file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\IAwardRepository.xml] and file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:658)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:638)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1519)
... 63 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'. Cause: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for cn.bugstack.infrastructure.persistent.dao.IUserAwardRecordDao.insert. please check file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\IAwardRepository.xml] and file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653)
... 76 common frames omitted
Caused by: org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'. Cause: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for cn.bugstack.infrastructure.persistent.dao.IUserAwardRecordDao.insert. please check file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\IAwardRepository.xml] and file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]
at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:613)
at org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:491)
at org.mybatis.spring.SqlSessionFactoryBean.getObject(SqlSessionFactoryBean.java:633)
at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration.sqlSessionFactory(MybatisAutoConfiguration.java:179)
at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$5d3cff0d.CGLIB$sqlSessionFactory$1(<generated>)
at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$5d3cff0d$$FastClassBySpringCGLIB$$5722c741.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331)
at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$5d3cff0d.sqlSessionFactory(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
... 77 common frames omitted
Caused by: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'. Cause: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for cn.bugstack.infrastructure.persistent.dao.IUserAwardRecordDao.insert. please check file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\IAwardRepository.xml] and file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]
at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:123)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.parse(XMLMapperBuilder.java:95)
at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:611)
... 90 common frames omitted
Caused by: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for cn.bugstack.infrastructure.persistent.dao.IUserAwardRecordDao.insert. please check file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\IAwardRepository.xml] and file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]
at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:1014)
at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:970)
at org.apache.ibatis.session.Configuration.addMappedStatement(Configuration.java:768)
at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:297)
at org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:113)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.buildStatementFromContext(XMLMapperBuilder.java:138)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.buildStatementFromContext(XMLMapperBuilder.java:131)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:121)
... 92 common frames omitted
24-12-10.16:10:51.018 [main ] INFO Application - Starting Application using Java 1.8.0_412 on zhaoyongfeng with PID 20352 (C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes started by zhaoyongfeng in C:\Users\31126\Desktop\bigmarket-lite)
24-12-10.16:10:51.020 [main ] INFO Application - The following 1 profile is active: "dev"
24-12-10.16:10:52.030 [main ] INFO RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode
24-12-10.16:10:52.031 [main ] INFO RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
24-12-10.16:10:52.134 [main ] INFO RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 92 ms. Found 0 Redis repository interfaces.
24-12-10.16:10:52.893 [main ] INFO TomcatWebServer - Tomcat initialized with port(s): 8091 (http)
24-12-10.16:10:52.902 [main ] INFO Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8091"]
24-12-10.16:10:52.903 [main ] INFO StandardService - Starting service [Tomcat]
24-12-10.16:10:52.903 [main ] INFO StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.75]
24-12-10.16:10:53.082 [main ] INFO [/] - Initializing Spring embedded WebApplicationContext
24-12-10.16:10:53.082 [main ] INFO ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 2027 ms
24-12-10.16:10:53.513 [main ] WARN AnnotationConfigServletWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'raffleController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'defaultRaffleStrategy' defined in file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-domain\target\classes\cn\bugstack\domain\strategy\service\raffle\DefaultRaffleStrategy.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'strategyRepository': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'IStrategyDao' defined in file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-infrastructure\target\classes\cn\bugstack\infrastructure\persistent\dao\IStrategyDao.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'. Cause: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for cn.bugstack.infrastructure.persistent.dao.IUserAwardRecordDao.insert. please check file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\IAwardRepository.xml] and file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]
24-12-10.16:10:53.515 [main ] INFO StandardService - Stopping service [Tomcat]
24-12-10.16:10:53.527 [main ] INFO ConditionEvaluationReportLoggingListener -
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
24-12-10.16:10:53.550 [main ] ERROR SpringApplication - Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'raffleController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'defaultRaffleStrategy' defined in file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-domain\target\classes\cn\bugstack\domain\strategy\service\raffle\DefaultRaffleStrategy.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'strategyRepository': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'IStrategyDao' defined in file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-infrastructure\target\classes\cn\bugstack\infrastructure\persistent\dao\IStrategyDao.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'. Cause: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for cn.bugstack.infrastructure.persistent.dao.IUserAwardRecordDao.insert. please check file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\IAwardRepository.xml] and file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:332)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:920)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292)
at cn.bugstack.Application.main(Application.java:14)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'defaultRaffleStrategy' defined in file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-domain\target\classes\cn\bugstack\domain\strategy\service\raffle\DefaultRaffleStrategy.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'strategyRepository': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'IStrategyDao' defined in file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-infrastructure\target\classes\cn\bugstack\infrastructure\persistent\dao\IStrategyDao.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'. Cause: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for cn.bugstack.infrastructure.persistent.dao.IUserAwardRecordDao.insert. please check file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\IAwardRepository.xml] and file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:229)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:544)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:520)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:673)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:228)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:329)
... 17 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'strategyRepository': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'IStrategyDao' defined in file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-infrastructure\target\classes\cn\bugstack\infrastructure\persistent\dao\IStrategyDao.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'. Cause: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for cn.bugstack.infrastructure.persistent.dao.IUserAwardRecordDao.insert. please check file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\IAwardRepository.xml] and file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:332)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)
... 35 common frames omitted
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'IStrategyDao' defined in file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-infrastructure\target\classes\cn\bugstack\infrastructure\persistent\dao\IStrategyDao.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'. Cause: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for cn.bugstack.infrastructure.persistent.dao.IUserAwardRecordDao.insert. please check file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\IAwardRepository.xml] and file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1534)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1417)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:544)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:520)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:673)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:228)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:329)
... 47 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'. Cause: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for cn.bugstack.infrastructure.persistent.dao.IUserAwardRecordDao.insert. please check file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\IAwardRepository.xml] and file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:658)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:638)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1519)
... 63 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'. Cause: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for cn.bugstack.infrastructure.persistent.dao.IUserAwardRecordDao.insert. please check file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\IAwardRepository.xml] and file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653)
... 76 common frames omitted
Caused by: org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'. Cause: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for cn.bugstack.infrastructure.persistent.dao.IUserAwardRecordDao.insert. please check file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\IAwardRepository.xml] and file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]
at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:613)
at org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:491)
at org.mybatis.spring.SqlSessionFactoryBean.getObject(SqlSessionFactoryBean.java:633)
at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration.sqlSessionFactory(MybatisAutoConfiguration.java:179)
at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$5d3cff0d.CGLIB$sqlSessionFactory$0(<generated>)
at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$5d3cff0d$$FastClassBySpringCGLIB$$5722c741.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331)
at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$5d3cff0d.sqlSessionFactory(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
... 77 common frames omitted
Caused by: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]'. Cause: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for cn.bugstack.infrastructure.persistent.dao.IUserAwardRecordDao.insert. please check file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\IAwardRepository.xml] and file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]
at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:123)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.parse(XMLMapperBuilder.java:95)
at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:611)
... 90 common frames omitted
Caused by: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for cn.bugstack.infrastructure.persistent.dao.IUserAwardRecordDao.insert. please check file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\IAwardRepository.xml] and file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]
at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:1014)
at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:970)
at org.apache.ibatis.session.Configuration.addMappedStatement(Configuration.java:768)
at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:297)
at org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:113)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.buildStatementFromContext(XMLMapperBuilder.java:138)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.buildStatementFromContext(XMLMapperBuilder.java:131)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:121)
... 92 common frames omitted
24-12-10.23:33:16.694 [main ] INFO Application - Starting Application using Java 1.8.0_412 on zhaoyongfeng with PID 27296 (C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes started by zhaoyongfeng in C:\Users\31126\Desktop\bigmarket-lite)
24-12-10.23:33:16.697 [main ] INFO Application - The following 1 profile is active: "dev"
24-12-10.23:33:17.956 [main ] INFO RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode
24-12-10.23:33:17.958 [main ] INFO RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
24-12-10.23:33:18.071 [main ] INFO RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 98 ms. Found 0 Redis repository interfaces.
24-12-10.23:33:19.053 [main ] INFO TomcatWebServer - Tomcat initialized with port(s): 8091 (http)
24-12-10.23:33:19.064 [main ] INFO Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8091"]
24-12-10.23:33:19.065 [main ] INFO StandardService - Starting service [Tomcat]
24-12-10.23:33:19.065 [main ] INFO StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.75]
24-12-10.23:33:19.278 [main ] INFO [/] - Initializing Spring embedded WebApplicationContext
24-12-10.23:33:19.278 [main ] INFO ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 2536 ms
24-12-10.23:33:19.608 [main ] INFO Version - Redisson 3.23.4
24-12-10.23:33:21.139 [redisson-netty-2-4] INFO MasterPubSubConnectionPool - 1 connections initialized for 127.0.0.1/127.0.0.1:16379
24-12-10.23:33:21.151 [redisson-netty-2-13] INFO MasterConnectionPool - 5 connections initialized for 127.0.0.1/127.0.0.1:16379
24-12-10.23:33:22.884 [main ] INFO EndpointLinksResolver - Exposing 1 endpoint(s) beneath base path '/actuator'
24-12-10.23:33:22.996 [main ] INFO Http11NioProtocol - Starting ProtocolHandler ["http-nio-8091"]
24-12-10.23:33:23.009 [main ] INFO TomcatWebServer - Tomcat started on port(s): 8091 (http) with context path ''
24-12-10.23:33:23.011 [main ] INFO CachingConnectionFactory - Attempting to connect to: [127.0.0.1:5672]
24-12-10.23:33:23.054 [main ] INFO CachingConnectionFactory - Created new connection: rabbitConnectionFactory#4a642e4b:0/SimpleConnection@7a1ddbf1 [delegate=amqp://admin@127.0.0.1:5672/, localPort= 53546]
24-12-10.23:33:23.128 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#1-1] INFO SendAwardCustomer - 监听用户奖品发送消息 topic: send_award message: {"data":{"awardId":101,"awardTitle":"OpenAI 增加使用次数","userId":"zyf"},"id":"48354898869","timestamp":1733738682238}
24-12-10.23:33:23.133 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#1-1] INFO SendAwardCustomer - 监听用户奖品发送消息 topic: send_award message: {"data":{"awardId":101,"awardTitle":"OpenAI 增加使用次数","userId":"zyf"},"id":"73674658390","timestamp":1733738682768}
24-12-10.23:33:23.135 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#1-1] INFO SendAwardCustomer - 监听用户奖品发送消息 topic: send_award message: "{\"data\":{\"awardId\":101,\"awardTitle\":\"OpenAI 增加使用次数\",\"userId\":\"zyf\"},\"id\":\"35503867910\",\"timestamp\":1733820200225}"
24-12-10.23:33:23.137 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#1-1] INFO SendAwardCustomer - 监听用户奖品发送消息 topic: send_award message: "{\"data\":{\"awardId\":101,\"awardTitle\":\"OpenAI 增加使用次数\",\"userId\":\"zyf\"},\"id\":\"43525440285\",\"timestamp\":1733820201309}"
24-12-10.23:33:23.138 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#1-1] INFO SendAwardCustomer - 监听用户奖品发送消息 topic: send_award message: "{\"data\":{\"awardId\":101,\"awardTitle\":\"OpenAI 增加使用次数\",\"userId\":\"zyf\"},\"id\":\"51756872607\",\"timestamp\":1733820201838}"
24-12-10.23:33:23.140 [main ] INFO Application - Started Application in 7.014 seconds (JVM running for 9.66)
24-12-10.23:33:23.140 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#1-1] INFO SendAwardCustomer - 监听用户奖品发送消息 topic: send_award message: "{\"data\":{\"awardId\":101,\"awardTitle\":\"OpenAI 增加使用次数\",\"userId\":\"zyf\"},\"id\":\"85901971591\",\"timestamp\":1733820202364}"
24-12-10.23:33:23.142 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#1-1] INFO SendAwardCustomer - 监听用户奖品发送消息 topic: send_award message: "{\"data\":{\"awardId\":101,\"awardTitle\":\"OpenAI 增加使用次数\",\"userId\":\"zyf\"},\"id\":\"90742597943\",\"timestamp\":1733820202894}"
24-12-10.23:33:23.145 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#1-1] INFO SendAwardCustomer - 监听用户奖品发送消息 topic: send_award message: "{\"data\":{\"awardId\":101,\"awardTitle\":\"OpenAI 增加使用次数\",\"userId\":\"zyf\"},\"id\":\"57323044809\",\"timestamp\":1733820203422}"
24-12-10.23:33:23.146 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#1-1] INFO SendAwardCustomer - 监听用户奖品发送消息 topic: send_award message: "{\"data\":{\"awardId\":101,\"awardTitle\":\"OpenAI 增加使用次数\",\"userId\":\"zyf\"},\"id\":\"47860237145\",\"timestamp\":1733820249687}"
24-12-10.23:33:23.147 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#1-1] INFO SendAwardCustomer - 监听用户奖品发送消息 topic: send_award message: "{\"data\":{\"awardId\":101,\"awardTitle\":\"OpenAI 增加使用次数\",\"userId\":\"zyf\"},\"id\":\"70272662423\",\"timestamp\":1733820250689}"
24-12-10.23:33:23.149 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#1-1] INFO SendAwardCustomer - 监听用户奖品发送消息 topic: send_award message: "{\"data\":{\"awardId\":101,\"awardTitle\":\"OpenAI 增加使用次数\",\"userId\":\"zyf\"},\"id\":\"84114908769\",\"timestamp\":1733820251216}"
24-12-10.23:33:23.150 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#1-1] INFO SendAwardCustomer - 监听用户奖品发送消息 topic: send_award message: "{\"data\":{\"awardId\":101,\"awardTitle\":\"OpenAI 增加使用次数\",\"userId\":\"zyf\"},\"id\":\"62835040372\",\"timestamp\":1733820251745}"
24-12-10.23:33:23.152 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#1-1] INFO SendAwardCustomer - 监听用户奖品发送消息 topic: send_award message: "{\"data\":{\"awardId\":101,\"awardTitle\":\"OpenAI 增加使用次数\",\"userId\":\"zyf\"},\"id\":\"95777093097\",\"timestamp\":1733820252270}"
24-12-10.23:33:23.153 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#1-1] INFO SendAwardCustomer - 监听用户奖品发送消息 topic: send_award message: "{\"data\":{\"awardId\":101,\"awardTitle\":\"OpenAI 增加使用次数\",\"userId\":\"zyf\"},\"id\":\"08065491491\",\"timestamp\":1733820252800}"
24-12-10.23:33:23.154 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#1-1] INFO SendAwardCustomer - 监听用户奖品发送消息 topic: send_award message: "{\"data\":{\"awardId\":101,\"awardTitle\":\"OpenAI 增加使用次数\",\"userId\":\"zyf\"},\"id\":\"49361527115\",\"timestamp\":1733820253332}"
24-12-10.23:33:23.156 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#1-1] INFO SendAwardCustomer - 监听用户奖品发送消息 topic: send_award message: "{\"data\":{\"awardId\":101,\"awardTitle\":\"OpenAI 增加使用次数\",\"userId\":\"zyf\"},\"id\":\"81111954110\",\"timestamp\":1733820253847}"
24-12-10.23:33:23.158 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#1-1] INFO SendAwardCustomer - 监听用户奖品发送消息 topic: send_award message: "{\"data\":{\"awardId\":101,\"awardTitle\":\"OpenAI 增加使用次数\",\"userId\":\"zyf\"},\"id\":\"38082936034\",\"timestamp\":1733820254375}"
24-12-10.23:33:23.159 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#1-1] INFO SendAwardCustomer - 监听用户奖品发送消息 topic: send_award message: "{\"data\":{\"awardId\":101,\"awardTitle\":\"OpenAI 增加使用次数\",\"userId\":\"zyf\"},\"id\":\"05079462811\",\"timestamp\":1733820254903}"
24-12-10.23:33:23.160 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#1-1] INFO SendAwardCustomer - 监听用户奖品发送消息 topic: send_award message: "{\"data\":{\"awardId\":101,\"awardTitle\":\"OpenAI 增加使用次数\",\"userId\":\"zyf\"},\"id\":\"84105803531\",\"timestamp\":1733820203943}"
24-12-10.23:33:23.718 [RMI TCP Connection(3)-192.168.157.1] INFO HikariDataSource - Retail_HikariCP - Starting...
24-12-10.23:33:23.936 [RMI TCP Connection(3)-192.168.157.1] INFO HikariDataSource - Retail_HikariCP - Start completed.
24-12-10.23:33:23.953 [RMI TCP Connection(3)-192.168.157.1] INFO HikariDataSource - Retail_HikariCP - Starting...
24-12-10.23:33:23.972 [RMI TCP Connection(3)-192.168.157.1] INFO HikariDataSource - Retail_HikariCP - Start completed.
24-12-10.23:33:25.001 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:33:25.016 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:33:26.050 [RMI TCP Connection(5)-192.168.157.1] INFO [/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
24-12-10.23:33:26.050 [RMI TCP Connection(5)-192.168.157.1] INFO DispatcherServlet - Initializing Servlet 'dispatcherServlet'
24-12-10.23:33:26.051 [RMI TCP Connection(5)-192.168.157.1] INFO DispatcherServlet - Completed initialization in 0 ms
24-12-10.23:33:30.010 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:33:30.012 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:33:35.006 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:33:35.008 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:33:40.004 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:33:40.006 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:33:45.005 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:33:45.007 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:33:50.007 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:33:50.009 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:33:55.005 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:33:55.008 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:34:00.002 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:34:00.004 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:34:05.013 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:34:05.015 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:34:10.009 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:34:10.011 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:34:15.004 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:34:15.006 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:34:20.008 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:34:20.009 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:34:25.011 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:34:25.013 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:34:30.002 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:34:30.004 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:34:35.003 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:34:35.005 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:34:40.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:34:40.003 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:34:45.015 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:34:45.017 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:34:50.004 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:34:50.006 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:34:55.004 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:34:55.006 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:35:00.003 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:35:00.005 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:35:05.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:35:05.003 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:35:10.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:35:10.002 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:35:15.014 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:35:15.016 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:35:17.878 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#0-2] INFO SimpleMessageListenerContainer - Waiting for workers to finish.
24-12-10.23:35:17.879 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#1-2] INFO SimpleMessageListenerContainer - Waiting for workers to finish.
24-12-10.23:35:18.220 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#0-2] INFO SimpleMessageListenerContainer - Successfully waited for workers to finish.
24-12-10.23:35:18.221 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#1-2] INFO SimpleMessageListenerContainer - Successfully waited for workers to finish.
24-12-10.23:35:46.202 [main ] INFO Application - Starting Application using Java 1.8.0_412 on zhaoyongfeng with PID 28040 (C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes started by zhaoyongfeng in C:\Users\31126\Desktop\bigmarket-lite)
24-12-10.23:35:46.204 [main ] INFO Application - The following 1 profile is active: "dev"
24-12-10.23:35:47.348 [main ] INFO RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode
24-12-10.23:35:47.349 [main ] INFO RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
24-12-10.23:35:47.464 [main ] INFO RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 99 ms. Found 0 Redis repository interfaces.
24-12-10.23:35:48.529 [main ] INFO TomcatWebServer - Tomcat initialized with port(s): 8091 (http)
24-12-10.23:35:48.540 [main ] INFO Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8091"]
24-12-10.23:35:48.540 [main ] INFO StandardService - Starting service [Tomcat]
24-12-10.23:35:48.540 [main ] INFO StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.75]
24-12-10.23:35:48.742 [main ] INFO [/] - Initializing Spring embedded WebApplicationContext
24-12-10.23:35:48.742 [main ] INFO ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 2502 ms
24-12-10.23:35:49.203 [main ] INFO Version - Redisson 3.23.4
24-12-10.23:35:50.752 [redisson-netty-2-4] INFO MasterPubSubConnectionPool - 1 connections initialized for 127.0.0.1/127.0.0.1:16379
24-12-10.23:35:50.766 [redisson-netty-2-13] INFO MasterConnectionPool - 5 connections initialized for 127.0.0.1/127.0.0.1:16379
24-12-10.23:35:52.825 [main ] INFO EndpointLinksResolver - Exposing 1 endpoint(s) beneath base path '/actuator'
24-12-10.23:35:52.970 [main ] INFO Http11NioProtocol - Starting ProtocolHandler ["http-nio-8091"]
24-12-10.23:35:52.988 [main ] INFO TomcatWebServer - Tomcat started on port(s): 8091 (http) with context path ''
24-12-10.23:35:52.991 [main ] INFO CachingConnectionFactory - Attempting to connect to: [127.0.0.1:5672]
24-12-10.23:35:53.025 [main ] INFO CachingConnectionFactory - Created new connection: rabbitConnectionFactory#4a642e4b:0/SimpleConnection@7a1ddbf1 [delegate=amqp://admin@127.0.0.1:5672/, localPort= 54092]
24-12-10.23:35:53.095 [main ] INFO Application - Started Application in 7.338 seconds (JVM running for 9.414)
24-12-10.23:35:54.734 [RMI TCP Connection(5)-192.168.157.1] INFO [/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
24-12-10.23:35:54.734 [RMI TCP Connection(5)-192.168.157.1] INFO DispatcherServlet - Initializing Servlet 'dispatcherServlet'
24-12-10.23:35:54.735 [RMI TCP Connection(5)-192.168.157.1] INFO DispatcherServlet - Completed initialization in 1 ms
24-12-10.23:35:54.743 [RMI TCP Connection(4)-192.168.157.1] INFO HikariDataSource - Retail_HikariCP - Starting...
24-12-10.23:35:55.029 [RMI TCP Connection(4)-192.168.157.1] INFO HikariDataSource - Retail_HikariCP - Start completed.
24-12-10.23:35:55.047 [RMI TCP Connection(4)-192.168.157.1] INFO HikariDataSource - Retail_HikariCP - Starting...
24-12-10.23:35:55.069 [RMI TCP Connection(4)-192.168.157.1] INFO HikariDataSource - Retail_HikariCP - Start completed.
24-12-10.23:36:00.006 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:36:00.018 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:36:39.599 [http-nio-8091-exec-1] INFO RaffleActivityController - 活动装配,数据预热,开始 activityId:100301
24-12-10.23:36:39.600 [http-nio-8091-exec-1] INFO HikariDataSource - Retail_HikariCP - Starting...
24-12-10.23:36:39.618 [http-nio-8091-exec-1] INFO HikariDataSource - Retail_HikariCP - Start completed.
24-12-10.23:36:39.739 [http-nio-8091-exec-1] INFO RaffleActivityController - 活动装配,数据预热,完成 activityId:100301
24-12-10.23:37:00.015 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:37:00.017 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:38:00.013 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:38:00.015 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:38:40.225 [http-nio-8091-exec-3] INFO RaffleActivityController - 活动抽奖 userId:xiaofuge activityId:100301
24-12-10.23:38:40.356 [http-nio-8091-exec-3] INFO AbstractRaffleActivityPartake - 创建参与活动订单 userId:xiaofuge activityId:100301 userRaffleOrderEntity:{"activityId":100301,"activityName":"测试活动","orderId":"313091076458","orderState":"create","orderTime":1712308231000,"strategyId":100006,"userId":"xiaofuge"}
24-12-10.23:38:40.357 [http-nio-8091-exec-3] INFO RaffleActivityController - 活动抽奖,创建订单 userId:xiaofuge activityId:100301 orderId:313091076458
24-12-10.23:38:40.368 [http-nio-8091-exec-3] INFO DefaultLogicChain - 抽奖责任链-默认处理 userId: xiaofuge strategyId: 100006 ruleModel: rule_default awardId: 107
24-12-10.23:38:40.369 [http-nio-8091-exec-3] INFO AbstractRaffleStrategy - 抽奖策略计算-责任链 xiaofuge 100006 107 rule_default
24-12-10.23:38:40.399 [http-nio-8091-exec-3] INFO RuleLockLogicTreeNode - 规则过滤-次数锁 userId:xiaofuge strategyId:100006 awardId:107
24-12-10.23:38:40.408 [http-nio-8091-exec-3] INFO DecisionTreeEngine - 决策树引擎【规则树】treeId:tree_lock_1 node:rule_lock code:0001
24-12-10.23:38:40.409 [http-nio-8091-exec-3] INFO RuleLuckAwardLogicTreeNode - 规则过滤-兜底奖品 userId:xiaofuge strategyId:100006 awardId:107 ruleValue:101:1,100
24-12-10.23:38:40.409 [http-nio-8091-exec-3] INFO RuleLuckAwardLogicTreeNode - 规则过滤-兜底奖品 userId:xiaofuge strategyId:100006 awardId:101 awardRuleValue:1,100
24-12-10.23:38:40.410 [http-nio-8091-exec-3] INFO DecisionTreeEngine - 决策树引擎【规则树】treeId:tree_lock_1 node:rule_luck_award code:0001
24-12-10.23:38:40.410 [http-nio-8091-exec-3] INFO AbstractRaffleStrategy - 抽奖策略计算-规则树 xiaofuge 100006 101 1,100
24-12-10.23:38:40.504 [http-nio-8091-exec-3] ERROR AwardRepository - 写入中奖记录,唯一索引冲突 userId: xiaofuge activityId: 100301 awardId: 101
org.springframework.dao.DuplicateKeyException:
### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '313091076458' for key 'user_award_record_001.uq_order_id'
### The error may exist in file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]
### The error may involve cn.bugstack.infrastructure.persistent.dao.IUserAwardRecordDao.insert-Inline
### The error occurred while setting parameters
### SQL: insert into user_award_record_001( user_id, activity_id, strategy_id, order_id, award_id, award_title, award_time, award_state, create_time, update_time ) values ( ?,?,?,?,?,?,?,?,now(),now() )
### Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '313091076458' for key 'user_award_record_001.uq_order_id'
; Duplicate entry '313091076458' for key 'user_award_record_001.uq_order_id'; nested exception is java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '313091076458' for key 'user_award_record_001.uq_order_id'
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:247)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)
at com.sun.proxy.$Proxy108.insert(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:62)
at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:152)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:85)
at com.sun.proxy.$Proxy134.insert(Unknown Source)
at cn.bugstack.infrastructure.persistent.repository.AwardRepository.lambda$saveUserAwardRecord$0(AwardRepository.java:80)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
at cn.bugstack.infrastructure.persistent.repository.AwardRepository.saveUserAwardRecord(AwardRepository.java:77)
at cn.bugstack.domain.award.service.AwardService.saveUserAwardRecord(AwardService.java:50)
at cn.bugstack.trigger.http.RaffleActivityController.draw(RaffleActivityController.java:130)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:750)
Caused by: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '313091076458' for key 'user_award_record_001.uq_order_id'
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:117)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)
at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:370)
at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)
at com.sun.proxy.$Proxy181.update(Unknown Source)
at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)
at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)
at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)
at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)
... 65 common frames omitted
24-12-10.23:38:40.510 [http-nio-8091-exec-3] ERROR RaffleActivityController - 活动抽奖失败 userId:xiaofuge activityId:100301
cn.bugstack.types.exception.AppException: null
at cn.bugstack.infrastructure.persistent.repository.AwardRepository.lambda$saveUserAwardRecord$0(AwardRepository.java:94)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
at cn.bugstack.infrastructure.persistent.repository.AwardRepository.saveUserAwardRecord(AwardRepository.java:77)
at cn.bugstack.domain.award.service.AwardService.saveUserAwardRecord(AwardService.java:50)
at cn.bugstack.trigger.http.RaffleActivityController.draw(RaffleActivityController.java:130)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:750)
Caused by: org.springframework.dao.DuplicateKeyException:
### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '313091076458' for key 'user_award_record_001.uq_order_id'
### The error may exist in file [C:\Users\31126\Desktop\bigmarket-lite\bigmarket-app\target\classes\mybatis\mapper\user_award_record_mapper.xml]
### The error may involve cn.bugstack.infrastructure.persistent.dao.IUserAwardRecordDao.insert-Inline
### The error occurred while setting parameters
### SQL: insert into user_award_record_001( user_id, activity_id, strategy_id, order_id, award_id, award_title, award_time, award_state, create_time, update_time ) values ( ?,?,?,?,?,?,?,?,now(),now() )
### Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '313091076458' for key 'user_award_record_001.uq_order_id'
; Duplicate entry '313091076458' for key 'user_award_record_001.uq_order_id'; nested exception is java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '313091076458' for key 'user_award_record_001.uq_order_id'
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:247)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)
at com.sun.proxy.$Proxy108.insert(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:62)
at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:152)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:85)
at com.sun.proxy.$Proxy134.insert(Unknown Source)
at cn.bugstack.infrastructure.persistent.repository.AwardRepository.lambda$saveUserAwardRecord$0(AwardRepository.java:80)
... 58 common frames omitted
Caused by: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '313091076458' for key 'user_award_record_001.uq_order_id'
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:117)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)
at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:370)
at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)
at com.sun.proxy.$Proxy181.update(Unknown Source)
at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)
at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)
at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)
at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)
... 65 common frames omitted
24-12-10.23:39:00.005 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:39:00.007 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:39:28.218 [http-nio-8091-exec-6] INFO RaffleActivityController - 活动抽奖 userId:zyf activityId:100301
24-12-10.23:39:28.230 [http-nio-8091-exec-6] ERROR RaffleActivityController - 活动抽奖失败 userId:zyf activityId:100301
cn.bugstack.types.exception.AppException: null
at cn.bugstack.domain.activity.service.partake.RaffleActivityPartakeService.doFilterAccount(RaffleActivityPartakeService.java:37)
at cn.bugstack.domain.activity.service.partake.AbstractRaffleActivityPartake.createOrder(AbstractRaffleActivityPartake.java:66)
at cn.bugstack.domain.activity.service.partake.AbstractRaffleActivityPartake.createOrder(AbstractRaffleActivityPartake.java:34)
at cn.bugstack.trigger.http.RaffleActivityController.draw(RaffleActivityController.java:111)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:750)
24-12-10.23:40:00.000 [scheduling-1 ] INFO UpdateActivitySkuStockJob - 定时任务,更新活动sku库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:40:00.002 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.23:40:11.468 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#0-2] INFO SimpleMessageListenerContainer - Waiting for workers to finish.
24-12-10.23:40:11.469 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#1-2] INFO SimpleMessageListenerContainer - Waiting for workers to finish.
24-12-10.23:40:12.298 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#1-2] INFO SimpleMessageListenerContainer - Successfully waited for workers to finish.
24-12-10.23:40:12.298 [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#0-2] INFO SimpleMessageListenerContainer - Successfully waited for workers to finish.
24-12-10.23:40:13.510 [SpringApplicationShutdownHook] INFO SimpleMessageListenerContainer - Shutdown ignored - container is already stopped
24-12-10.23:40:13.510 [SpringApplicationShutdownHook] INFO SimpleMessageListenerContainer - Shutdown ignored - container is already stopped
因为 它太大了无法显示 source diff 。你可以改为 查看blob
因为 它太大了无法显示 source diff 。你可以改为 查看blob
24-11-25.00:00:39.761 [http-nio-8091-exec-9] ERROR RaffleController - 随机抽奖失败 strategyId:0
java.lang.NullPointerException: null
at cn.bugstack.infrastructure.persistent.repository.StrategyRepository.queryStrategyEntityByStrategyId(StrategyRepository.java:118)
at cn.bugstack.infrastructure.persistent.repository.StrategyRepository$$FastClassBySpringCGLIB$$1981c8fe.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
at cn.bugstack.infrastructure.persistent.repository.StrategyRepository$$EnhancerBySpringCGLIB$$e97b5f31.queryStrategyEntityByStrategyId(<generated>)
at cn.bugstack.domain.strategy.service.rule.chain.factory.DefaultChainFactory.openLogicChain(DefaultChainFactory.java:35)
at cn.bugstack.domain.strategy.service.raffle.DefaultRaffleStrategy.raffleLogicChain(DefaultRaffleStrategy.java:37)
at cn.bugstack.domain.strategy.AbstractRaffleStrategy.performRaffle(AbstractRaffleStrategy.java:50)
at cn.bugstack.trigger.http.RaffleStrategyController.randomRaffle(RaffleController.java:128)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:750)
24-11-25.00:01:43.229 [scheduling-1 ] ERROR UpdateAwardStockJob - 定时任务,更新奖品消耗库存失败
org.springframework.data.redis.RedisConnectionFailureException: Unable to write command into connection! Increase nettyThreads setting. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@64649481 [redisClient=[addr=redis://redis:6379], channel=[id: 0xa4f5e420, L:0.0.0.0/0.0.0.0:41762], currentCommand=null, usage=1], command: (LPOP), params: [strategy_award_count_query_key] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase nettyThreads setting. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@64649481 [redisClient=[addr=redis://redis:6379], channel=[id: 0xa4f5e420, L:0.0.0.0/0.0.0.0:41762], currentCommand=null, usage=1], command: (LPOP), params: [strategy_award_count_query_key] after 3 retry attempts
at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:40)
at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)
at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)
at org.redisson.spring.data.connection.RedissonConnectionFactory.translateExceptionIfPossible(RedissonConnectionFactory.java:91)
at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
at cn.bugstack.infrastructure.persistent.repository.StrategyRepository$$EnhancerBySpringCGLIB$$e97b5f31.takeQueueValue(<generated>)
at cn.bugstack.domain.strategy.service.raffle.DefaultRaffleStrategy.takeQueueValue(DefaultRaffleStrategy.java:57)
at cn.bugstack.trigger.job.UpdateAwardStockJob.exec(UpdateAwardStockJob.java:28)
at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:95)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)
Caused by: org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase nettyThreads setting. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@64649481 [redisClient=[addr=redis://redis:6379], channel=[id: 0xa4f5e420, L:0.0.0.0/0.0.0.0:41762], currentCommand=null, usage=1], command: (LPOP), params: [strategy_award_count_query_key] after 3 retry attempts
at org.redisson.command.RedisExecutor.checkWriteFuture(RedisExecutor.java:345)
at org.redisson.command.RedisExecutor.lambda$execute$3(RedisExecutor.java:188)
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)
at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure(AbstractChannel.java:999)
at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:860)
at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:877)
at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940)
at io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
... 1 common frames omitted
Caused by: io.netty.channel.StacklessClosedChannelException: null
at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)
24-11-25.18:56:18.315 [scheduling-1 ] ERROR UpdateAwardStockJob - 定时任务,更新奖品消耗库存失败
org.springframework.data.redis.RedisConnectionFailureException: Unable to write command into connection! Increase nettyThreads setting. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1446056248 [redisClient=[addr=redis://redis:6379], channel=[id: 0x1d8867ae, L:0.0.0.0/0.0.0.0:55512], currentCommand=null, usage=1], command: (LPOP), params: [strategy_award_count_query_key] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase nettyThreads setting. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1446056248 [redisClient=[addr=redis://redis:6379], channel=[id: 0x1d8867ae, L:0.0.0.0/0.0.0.0:55512], currentCommand=null, usage=1], command: (LPOP), params: [strategy_award_count_query_key] after 3 retry attempts
at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:40)
at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)
at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)
at org.redisson.spring.data.connection.RedissonConnectionFactory.translateExceptionIfPossible(RedissonConnectionFactory.java:91)
at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
at cn.bugstack.infrastructure.persistent.repository.StrategyRepository$$EnhancerBySpringCGLIB$$e97b5f31.takeQueueValue(<generated>)
at cn.bugstack.domain.strategy.service.raffle.DefaultRaffleStrategy.takeQueueValue(DefaultRaffleStrategy.java:57)
at cn.bugstack.trigger.job.UpdateAwardStockJob.exec(UpdateAwardStockJob.java:28)
at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:95)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)
Caused by: org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase nettyThreads setting. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1446056248 [redisClient=[addr=redis://redis:6379], channel=[id: 0x1d8867ae, L:0.0.0.0/0.0.0.0:55512], currentCommand=null, usage=1], command: (LPOP), params: [strategy_award_count_query_key] after 3 retry attempts
at org.redisson.command.RedisExecutor.checkWriteFuture(RedisExecutor.java:345)
at org.redisson.command.RedisExecutor.lambda$execute$3(RedisExecutor.java:188)
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)
at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure(AbstractChannel.java:999)
at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:860)
at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:877)
at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940)
at io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
... 1 common frames omitted
Caused by: io.netty.channel.StacklessClosedChannelException: null
at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)
24-11-25.18:56:23.287 [scheduling-1 ] ERROR UpdateAwardStockJob - 定时任务,更新奖品消耗库存失败
org.springframework.data.redis.RedisConnectionFailureException: Unable to write command into connection! Increase nettyThreads setting. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1386290523 [redisClient=[addr=redis://redis:6379], channel=[id: 0xe3de3004, L:0.0.0.0/0.0.0.0:55502], currentCommand=null, usage=1], command: (LPOP), params: [strategy_award_count_query_key] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase nettyThreads setting. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1386290523 [redisClient=[addr=redis://redis:6379], channel=[id: 0xe3de3004, L:0.0.0.0/0.0.0.0:55502], currentCommand=null, usage=1], command: (LPOP), params: [strategy_award_count_query_key] after 3 retry attempts
at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:40)
at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)
at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)
at org.redisson.spring.data.connection.RedissonConnectionFactory.translateExceptionIfPossible(RedissonConnectionFactory.java:91)
at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
at cn.bugstack.infrastructure.persistent.repository.StrategyRepository$$EnhancerBySpringCGLIB$$e97b5f31.takeQueueValue(<generated>)
at cn.bugstack.domain.strategy.service.raffle.DefaultRaffleStrategy.takeQueueValue(DefaultRaffleStrategy.java:57)
at cn.bugstack.trigger.job.UpdateAwardStockJob.exec(UpdateAwardStockJob.java:28)
at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:95)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)
Caused by: org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase nettyThreads setting. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1386290523 [redisClient=[addr=redis://redis:6379], channel=[id: 0xe3de3004, L:0.0.0.0/0.0.0.0:55502], currentCommand=null, usage=1], command: (LPOP), params: [strategy_award_count_query_key] after 3 retry attempts
at org.redisson.command.RedisExecutor.checkWriteFuture(RedisExecutor.java:345)
at org.redisson.command.RedisExecutor.lambda$execute$3(RedisExecutor.java:188)
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)
at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure(AbstractChannel.java:999)
at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:860)
at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:877)
at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940)
at io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
... 1 common frames omitted
Caused by: io.netty.channel.StacklessClosedChannelException: null
at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)
24-12-09.15:14:04.611 [main ] INFO Application - Starting Application v1.0-SNAPSHOT using Java 1.8.0_342 on 9b0494bbcd7f with PID 7 (/big-market-app.jar started by root in /)
24-12-09.15:14:04.614 [main ] INFO Application - The following 1 profile is active: "dev"
24-12-09.15:14:06.883 [main ] INFO RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode
24-12-09.15:14:06.890 [main ] INFO RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
24-12-09.15:14:07.007 [main ] INFO RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 55 ms. Found 0 Redis repository interfaces.
24-12-09.15:14:09.163 [main ] INFO TomcatWebServer - Tomcat initialized with port(s): 8091 (http)
24-12-09.15:14:09.194 [main ] INFO Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8091"]
24-12-09.15:14:09.196 [main ] INFO StandardService - Starting service [Tomcat]
24-12-09.15:14:09.197 [main ] INFO StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.75]
24-12-09.15:14:09.357 [main ] INFO [/] - Initializing Spring embedded WebApplicationContext
24-12-09.15:14:09.358 [main ] INFO ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 4605 ms
24-12-09.15:14:11.211 [main ] INFO Version - Redisson 3.23.4
24-12-09.15:14:12.027 [redisson-netty-2-6] INFO MasterPubSubConnectionPool - 1 connections initialized for redis/172.19.0.4:6379
24-12-09.15:14:12.124 [redisson-netty-2-14] INFO MasterConnectionPool - 5 connections initialized for redis/172.19.0.4:6379
24-12-09.15:14:14.186 [main ] INFO EndpointLinksResolver - Exposing 1 endpoint(s) beneath base path '/actuator'
24-12-09.15:14:14.226 [main ] INFO Http11NioProtocol - Starting ProtocolHandler ["http-nio-8091"]
24-12-09.15:14:14.255 [main ] INFO TomcatWebServer - Tomcat started on port(s): 8091 (http) with context path ''
24-12-09.15:14:14.282 [main ] INFO Application - Started Application in 11.292 seconds (JVM running for 13.573)
24-12-09.15:14:15.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:14:20.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:14:25.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:14:30.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:14:35.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:14:40.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:14:45.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:14:50.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:14:55.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:15:00.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:15:05.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:15:10.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:15:15.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:15:20.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:15:25.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:15:30.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:15:35.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:15:40.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:15:45.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:15:50.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:15:54.999 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:16:00.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:16:05.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:16:10.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:16:15.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:16:20.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:16:24.999 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:16:30.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:16:35.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:16:40.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:16:45.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:16:50.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:16:55.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:17:00.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:17:05.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:17:10.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:17:15.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:17:20.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:17:25.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:17:30.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:17:35.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:17:40.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:17:45.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:17:50.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:17:55.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:18:00.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:18:05.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:18:10.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:18:15.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:18:20.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:18:24.999 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:18:30.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:18:35.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:18:40.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:18:45.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:18:50.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:18:54.999 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:19:00.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:19:05.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:19:10.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:19:15.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:19:20.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:19:25.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:19:30.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:19:35.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:19:40.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:19:45.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:19:50.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:19:55.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:20:00.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:20:05.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:20:10.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:20:15.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:20:20.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:20:25.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:20:30.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:20:35.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:20:40.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:20:45.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:20:50.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:20:55.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:21:00.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:21:05.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:21:10.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:21:15.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:21:20.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:21:25.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:21:30.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:21:35.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:21:40.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:21:45.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:21:50.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:21:54.999 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:22:00.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:22:05.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:22:10.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:22:15.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:22:20.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:22:25.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:22:30.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:22:35.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:22:40.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:22:45.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:22:50.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:22:54.999 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:23:00.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:23:05.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:23:10.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:23:15.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:23:20.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.15:23:25.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-09.22:31:45.572 [main ] INFO Application - Starting Application v1.0-SNAPSHOT using Java 1.8.0_342 on 9b0494bbcd7f with PID 7 (/big-market-app.jar started by root in /)
24-12-09.22:31:45.576 [main ] INFO Application - The following 1 profile is active: "dev"
24-12-09.22:31:48.687 [main ] INFO RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode
24-12-09.22:31:48.693 [main ] INFO RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
24-12-09.22:31:48.775 [main ] INFO RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 25 ms. Found 0 Redis repository interfaces.
24-12-09.22:31:50.367 [main ] INFO TomcatWebServer - Tomcat initialized with port(s): 8091 (http)
24-12-09.22:31:50.386 [main ] INFO Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8091"]
24-12-09.22:31:50.389 [main ] INFO StandardService - Starting service [Tomcat]
24-12-09.22:31:50.389 [main ] INFO StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.75]
24-12-09.22:31:50.519 [main ] INFO [/] - Initializing Spring embedded WebApplicationContext
24-12-09.22:31:50.520 [main ] INFO ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 4699 ms
24-12-09.22:31:52.642 [main ] INFO Version - Redisson 3.23.4
24-12-09.22:31:53.389 [redisson-netty-2-5] INFO MasterPubSubConnectionPool - 1 connections initialized for redis/172.19.0.3:6379
24-12-09.22:31:53.505 [redisson-netty-2-14] INFO MasterConnectionPool - 5 connections initialized for redis/172.19.0.3:6379
24-12-10.15:43:56.582 [main ] INFO Application - Starting Application v1.0-SNAPSHOT using Java 1.8.0_342 on 9b0494bbcd7f with PID 7 (/big-market-app.jar started by root in /)
24-12-10.15:43:56.585 [main ] INFO Application - The following 1 profile is active: "dev"
24-12-10.15:43:57.724 [main ] INFO RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode
24-12-10.15:43:57.727 [main ] INFO RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
24-12-10.15:43:57.758 [main ] INFO RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 12 ms. Found 0 Redis repository interfaces.
24-12-10.15:43:58.921 [main ] INFO TomcatWebServer - Tomcat initialized with port(s): 8091 (http)
24-12-10.15:43:58.934 [main ] INFO Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8091"]
24-12-10.15:43:58.936 [main ] INFO StandardService - Starting service [Tomcat]
24-12-10.15:43:58.936 [main ] INFO StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.75]
24-12-10.15:43:59.029 [main ] INFO [/] - Initializing Spring embedded WebApplicationContext
24-12-10.15:43:59.029 [main ] INFO ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 2343 ms
24-12-10.15:43:59.840 [main ] INFO Version - Redisson 3.23.4
24-12-10.15:44:00.337 [redisson-netty-2-5] INFO MasterPubSubConnectionPool - 1 connections initialized for redis/172.19.0.4:6379
24-12-10.15:44:00.422 [redisson-netty-2-14] INFO MasterConnectionPool - 5 connections initialized for redis/172.19.0.4:6379
24-12-10.15:44:01.293 [main ] INFO EndpointLinksResolver - Exposing 1 endpoint(s) beneath base path '/actuator'
24-12-10.15:44:01.443 [main ] INFO Http11NioProtocol - Starting ProtocolHandler ["http-nio-8091"]
24-12-10.15:44:01.462 [main ] INFO TomcatWebServer - Tomcat started on port(s): 8091 (http) with context path ''
24-12-10.15:44:01.479 [main ] INFO Application - Started Application in 5.895 seconds (JVM running for 7.099)
24-12-10.15:44:05.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:44:10.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:44:15.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:44:20.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:44:24.995 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:44:30.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:44:35.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:44:40.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:44:45.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:44:50.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:44:54.995 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:45:00.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:45:05.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:45:10.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:45:15.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:45:20.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:45:24.997 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:45:30.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:45:35.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:45:40.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:45:45.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:45:50.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:45:54.997 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:46:00.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:46:05.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:46:10.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:46:15.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:46:20.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:46:24.998 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:46:30.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:46:35.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:46:40.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.15:46:45.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.22:32:45.666 [main ] INFO Application - Starting Application v1.0-SNAPSHOT using Java 1.8.0_342 on 9b0494bbcd7f with PID 7 (/big-market-app.jar started by root in /)
24-12-10.22:32:45.669 [main ] INFO Application - The following 1 profile is active: "dev"
24-12-10.22:32:46.486 [main ] INFO RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode
24-12-10.22:32:46.488 [main ] INFO RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
24-12-10.22:32:46.514 [main ] INFO RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 10 ms. Found 0 Redis repository interfaces.
24-12-10.22:32:47.461 [main ] INFO TomcatWebServer - Tomcat initialized with port(s): 8091 (http)
24-12-10.22:32:47.471 [main ] INFO Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8091"]
24-12-10.22:32:47.472 [main ] INFO StandardService - Starting service [Tomcat]
24-12-10.22:32:47.472 [main ] INFO StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.75]
24-12-10.22:32:47.549 [main ] INFO [/] - Initializing Spring embedded WebApplicationContext
24-12-10.22:32:47.550 [main ] INFO ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1818 ms
24-12-10.22:32:48.207 [main ] INFO Version - Redisson 3.23.4
24-12-10.22:32:48.672 [redisson-netty-2-5] INFO MasterPubSubConnectionPool - 1 connections initialized for redis/172.19.0.4:6379
24-12-10.22:32:48.722 [redisson-netty-2-14] INFO MasterConnectionPool - 5 connections initialized for redis/172.19.0.4:6379
24-12-10.22:32:49.465 [main ] INFO EndpointLinksResolver - Exposing 1 endpoint(s) beneath base path '/actuator'
24-12-10.22:32:49.613 [main ] INFO Http11NioProtocol - Starting ProtocolHandler ["http-nio-8091"]
24-12-10.22:32:49.634 [main ] INFO TomcatWebServer - Tomcat started on port(s): 8091 (http) with context path ''
24-12-10.22:32:49.653 [main ] INFO Application - Started Application in 4.491 seconds (JVM running for 4.849)
24-12-10.22:32:50.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.22:32:50.930 [http-nio-8091-exec-1] INFO [/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
24-12-10.22:32:50.930 [http-nio-8091-exec-1] INFO DispatcherServlet - Initializing Servlet 'dispatcherServlet'
24-12-10.22:32:50.931 [http-nio-8091-exec-1] INFO DispatcherServlet - Completed initialization in 1 ms
24-12-10.22:32:55.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.22:33:00.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.22:33:05.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-10.22:33:10.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:18:14.182 [main ] INFO Application - Starting Application v1.0-SNAPSHOT using Java 1.8.0_342 on 9b0494bbcd7f with PID 7 (/big-market-app.jar started by root in /)
24-12-11.16:18:14.187 [main ] INFO Application - The following 1 profile is active: "dev"
24-12-11.16:18:15.757 [main ] INFO RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode
24-12-11.16:18:15.774 [main ] INFO RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
24-12-11.16:18:15.882 [main ] INFO RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 38 ms. Found 0 Redis repository interfaces.
24-12-11.16:18:17.392 [main ] INFO TomcatWebServer - Tomcat initialized with port(s): 8091 (http)
24-12-11.16:18:17.407 [main ] INFO Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8091"]
24-12-11.16:18:17.408 [main ] INFO StandardService - Starting service [Tomcat]
24-12-11.16:18:17.408 [main ] INFO StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.75]
24-12-11.16:18:17.509 [main ] INFO [/] - Initializing Spring embedded WebApplicationContext
24-12-11.16:18:17.509 [main ] INFO ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 3214 ms
24-12-11.16:18:18.541 [main ] INFO Version - Redisson 3.23.4
24-12-11.16:18:19.057 [redisson-netty-2-5] INFO MasterPubSubConnectionPool - 1 connections initialized for redis/172.19.0.3:6379
24-12-11.16:18:19.180 [redisson-netty-2-14] INFO MasterConnectionPool - 5 connections initialized for redis/172.19.0.3:6379
24-12-11.16:18:20.168 [main ] INFO EndpointLinksResolver - Exposing 1 endpoint(s) beneath base path '/actuator'
24-12-11.16:18:20.326 [main ] INFO Http11NioProtocol - Starting ProtocolHandler ["http-nio-8091"]
24-12-11.16:18:20.348 [main ] INFO TomcatWebServer - Tomcat started on port(s): 8091 (http) with context path ''
24-12-11.16:18:20.367 [main ] INFO Application - Started Application in 7.199 seconds (JVM running for 9.001)
24-12-11.16:18:25.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:18:30.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:18:35.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:18:40.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:18:45.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:18:50.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:18:55.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:19:00.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:19:05.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:19:10.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:19:15.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:19:20.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:19:25.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:19:30.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:19:34.999 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:19:40.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:19:45.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:19:50.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:19:55.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:20:00.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:20:05.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:20:10.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:20:15.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:20:20.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:20:25.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:20:30.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:20:35.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:20:40.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:20:45.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:20:50.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:20:55.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:21:00.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:21:05.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:21:10.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:21:15.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:21:20.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:21:25.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:21:30.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:21:34.999 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:21:40.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:21:45.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:21:50.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:21:55.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:22:00.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:22:05.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:22:10.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:22:15.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:22:20.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:22:25.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:22:30.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:22:34.999 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:22:40.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:22:45.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:22:50.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-11.16:22:55.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-11-26.12:53:53.296 [scheduling-1 ] ERROR UpdateAwardStockJob - 定时任务,更新奖品消耗库存失败
org.springframework.data.redis.RedisConnectionFailureException: Unable to write command into connection! Increase nettyThreads setting. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1693037281 [redisClient=[addr=redis://redis:6379], channel=[id: 0x6328a656, L:0.0.0.0/0.0.0.0:49448], currentCommand=null, usage=1], command: (LPOP), params: [strategy_award_count_query_key] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase nettyThreads setting. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1693037281 [redisClient=[addr=redis://redis:6379], channel=[id: 0x6328a656, L:0.0.0.0/0.0.0.0:49448], currentCommand=null, usage=1], command: (LPOP), params: [strategy_award_count_query_key] after 3 retry attempts
24-12-26.20:28:28.217 [scheduling-1 ] ERROR UpdateAwardStockJob - 定时任务,更新奖品消耗库存失败
org.springframework.data.redis.RedisConnectionFailureException: Unable to write command into connection! Increase nettyThreads setting. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1261146604 [redisClient=[addr=redis://redis:6379], channel=[id: 0x4ec2c37a, L:0.0.0.0/0.0.0.0:54446], currentCommand=null, usage=1], command: (LPOP), params: [strategy_award_count_query_key] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase nettyThreads setting. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1261146604 [redisClient=[addr=redis://redis:6379], channel=[id: 0x4ec2c37a, L:0.0.0.0/0.0.0.0:54446], currentCommand=null, usage=1], command: (LPOP), params: [strategy_award_count_query_key] after 3 retry attempts
at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:40)
at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)
at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)
......@@ -26,7 +26,7 @@ org.springframework.data.redis.RedisConnectionFailureException: Unable to write
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)
Caused by: org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase nettyThreads setting. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1693037281 [redisClient=[addr=redis://redis:6379], channel=[id: 0x6328a656, L:0.0.0.0/0.0.0.0:49448], currentCommand=null, usage=1], command: (LPOP), params: [strategy_award_count_query_key] after 3 retry attempts
Caused by: org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase nettyThreads setting. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1261146604 [redisClient=[addr=redis://redis:6379], channel=[id: 0x4ec2c37a, L:0.0.0.0/0.0.0.0:54446], currentCommand=null, usage=1], command: (LPOP), params: [strategy_award_count_query_key] after 3 retry attempts
at org.redisson.command.RedisExecutor.checkWriteFuture(RedisExecutor.java:345)
at org.redisson.command.RedisExecutor.lambda$execute$3(RedisExecutor.java:188)
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
......
24-12-24.10:14:26.902 [main ] INFO Application - Starting Application v1.0-SNAPSHOT using Java 1.8.0_342 on 9b0494bbcd7f with PID 7 (/big-market-app.jar started by root in /)
24-12-24.10:14:26.905 [main ] INFO Application - The following 1 profile is active: "dev"
24-12-24.10:14:30.138 [main ] INFO RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode
24-12-24.10:14:30.145 [main ] INFO RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
24-12-24.10:14:30.264 [main ] INFO RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 46 ms. Found 0 Redis repository interfaces.
24-12-24.10:14:32.875 [main ] INFO TomcatWebServer - Tomcat initialized with port(s): 8091 (http)
24-12-24.10:14:32.909 [main ] INFO Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8091"]
24-12-24.10:14:32.911 [main ] INFO StandardService - Starting service [Tomcat]
24-12-24.10:14:32.911 [main ] INFO StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.75]
24-12-24.10:14:33.165 [main ] INFO [/] - Initializing Spring embedded WebApplicationContext
24-12-24.10:14:33.166 [main ] INFO ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 5829 ms
24-12-24.10:14:34.724 [main ] INFO Version - Redisson 3.23.4
24-12-24.10:14:35.843 [redisson-netty-2-5] INFO MasterPubSubConnectionPool - 1 connections initialized for redis/172.19.0.2:6379
24-12-24.10:14:35.968 [redisson-netty-2-14] INFO MasterConnectionPool - 5 connections initialized for redis/172.19.0.2:6379
24-12-24.10:14:37.838 [main ] INFO EndpointLinksResolver - Exposing 1 endpoint(s) beneath base path '/actuator'
24-12-24.10:14:37.883 [main ] INFO Http11NioProtocol - Starting ProtocolHandler ["http-nio-8091"]
24-12-24.10:14:37.921 [main ] INFO TomcatWebServer - Tomcat started on port(s): 8091 (http) with context path ''
24-12-24.10:14:37.952 [main ] INFO Application - Started Application in 13.364 seconds (JVM running for 15.871)
24-12-24.10:14:40.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-24.10:14:45.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-24.10:14:50.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-24.10:14:55.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-24.10:15:00.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-24.10:15:05.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-24.10:15:10.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-24.10:15:15.001 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-27.12:03:18.772 [main ] INFO Application - Starting Application v1.0-SNAPSHOT using Java 1.8.0_342 on 9b0494bbcd7f with PID 7 (/big-market-app.jar started by root in /)
24-12-27.12:03:18.776 [main ] INFO Application - The following 1 profile is active: "dev"
24-12-27.12:03:22.430 [main ] INFO RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode
24-12-27.12:03:22.444 [main ] INFO RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
24-12-27.12:03:22.580 [main ] INFO RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 41 ms. Found 0 Redis repository interfaces.
24-12-27.12:03:25.800 [main ] INFO TomcatWebServer - Tomcat initialized with port(s): 8091 (http)
24-12-27.12:03:25.836 [main ] INFO Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8091"]
24-12-27.12:03:25.838 [main ] INFO StandardService - Starting service [Tomcat]
24-12-27.12:03:25.839 [main ] INFO StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.75]
24-12-27.12:03:26.127 [main ] INFO [/] - Initializing Spring embedded WebApplicationContext
24-12-27.12:03:26.128 [main ] INFO ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 7149 ms
24-12-27.12:03:27.790 [main ] INFO Version - Redisson 3.23.4
24-12-27.12:03:28.556 [redisson-netty-2-6] INFO MasterPubSubConnectionPool - 1 connections initialized for redis/172.19.0.3:6379
24-12-27.12:03:28.681 [redisson-netty-2-14] INFO MasterConnectionPool - 5 connections initialized for redis/172.19.0.3:6379
24-12-27.12:03:30.368 [main ] INFO EndpointLinksResolver - Exposing 1 endpoint(s) beneath base path '/actuator'
24-12-27.12:03:30.401 [main ] INFO Http11NioProtocol - Starting ProtocolHandler ["http-nio-8091"]
24-12-27.12:03:30.426 [main ] INFO TomcatWebServer - Tomcat started on port(s): 8091 (http) with context path ''
24-12-27.12:03:30.450 [main ] INFO Application - Started Application in 14.265 seconds (JVM running for 16.245)
24-12-27.12:03:35.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-27.12:03:39.995 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-27.12:03:45.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
24-12-27.19:33:41.509 [main ] INFO Application - Starting Application v1.0-SNAPSHOT using Java 1.8.0_342 on 9b0494bbcd7f with PID 7 (/big-market-app.jar started by root in /)
24-12-27.19:33:41.513 [main ] INFO Application - The following 1 profile is active: "dev"
24-12-27.19:33:43.129 [main ] INFO RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode
24-12-27.19:33:43.135 [main ] INFO RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
24-12-27.19:33:43.189 [main ] INFO RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 25 ms. Found 0 Redis repository interfaces.
24-12-27.19:33:44.740 [main ] INFO TomcatWebServer - Tomcat initialized with port(s): 8091 (http)
24-12-27.19:33:44.758 [main ] INFO Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8091"]
24-12-27.19:33:44.760 [main ] INFO StandardService - Starting service [Tomcat]
24-12-27.19:33:44.760 [main ] INFO StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.75]
24-12-27.19:33:44.882 [main ] INFO [/] - Initializing Spring embedded WebApplicationContext
24-12-27.19:33:44.882 [main ] INFO ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 3282 ms
24-12-27.19:33:45.952 [main ] INFO Version - Redisson 3.23.4
24-12-27.19:33:46.751 [redisson-netty-2-6] INFO MasterPubSubConnectionPool - 1 connections initialized for redis/172.19.0.3:6379
24-12-27.19:33:46.859 [redisson-netty-2-14] INFO MasterConnectionPool - 5 connections initialized for redis/172.19.0.3:6379
24-12-27.19:33:48.478 [main ] INFO EndpointLinksResolver - Exposing 1 endpoint(s) beneath base path '/actuator'
24-12-27.19:33:48.525 [main ] INFO Http11NioProtocol - Starting ProtocolHandler ["http-nio-8091"]
24-12-27.19:33:48.706 [main ] INFO TomcatWebServer - Tomcat started on port(s): 8091 (http) with context path ''
24-12-27.19:33:48.753 [main ] INFO Application - Started Application in 8.214 seconds (JVM running for 9.024)
24-12-27.19:33:50.000 [scheduling-1 ] INFO UpdateAwardStockJob - 定时任务,更新奖品消耗库存【延迟队列获取,降低对数据库的更新频次,不要产生竞争】
......@@ -7,7 +7,7 @@
#
# 主机: 127.0.0.1 (MySQL 5.6.39)
# 数据库: big_market
# 生成时间: 2024-04-30 10:19:11 +0000
# 生成时间: 2024-05-25 02:56:19 +0000
# ************************************************************
......@@ -35,7 +35,8 @@ CREATE TABLE `award` (
`award_desc` varchar(128) NOT NULL COMMENT '奖品内容描述',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`)
PRIMARY KEY (`id`),
UNIQUE KEY `uq_award_id` (`award_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='奖品表';
LOCK TABLES `award` WRITE;
......@@ -144,7 +145,7 @@ LOCK TABLES `raffle_activity_count` WRITE;
INSERT INTO `raffle_activity_count` (`id`, `activity_count_id`, `total_count`, `day_count`, `month_count`, `create_time`, `update_time`)
VALUES
(1,11101,10000,1000,1000,'2024-03-09 10:15:42','2024-04-27 15:49:37');
(1,11101,100,100,100,'2024-03-09 10:15:42','2024-05-04 13:06:45');
/*!40000 ALTER TABLE `raffle_activity_count` ENABLE KEYS */;
UNLOCK TABLES;
......@@ -174,7 +175,7 @@ LOCK TABLES `raffle_activity_sku` WRITE;
INSERT INTO `raffle_activity_sku` (`id`, `sku`, `activity_id`, `activity_count_id`, `stock_count`, `stock_count_surplus`, `create_time`, `update_time`)
VALUES
(1,9011,100301,11101,100000,100000,'2024-03-16 11:41:09','2024-04-27 15:49:25');
(1,9011,100301,11101,100000,99909,'2024-03-16 11:41:09','2024-05-25 10:53:20');
/*!40000 ALTER TABLE `raffle_activity_sku` ENABLE KEYS */;
UNLOCK TABLES;
......@@ -311,7 +312,7 @@ VALUES
(3,100002,'抽奖策略-非完整1概率',NULL,'2023-12-09 09:37:19','2024-02-03 10:14:17'),
(4,100004,'抽奖策略-随机抽奖',NULL,'2023-12-09 09:37:19','2024-01-20 19:21:03'),
(5,100005,'抽奖策略-测试概率计算',NULL,'2023-12-09 09:37:19','2024-01-21 21:54:58'),
(6,100006,'抽奖策略-规则树',NULL,'2024-02-03 09:53:40','2024-02-03 09:53:40');
(6,100006,'抽奖策略-规则树','rule_blacklist,rule_weight','2024-02-03 09:53:40','2024-05-03 09:02:38');
/*!40000 ALTER TABLE `strategy` ENABLE KEYS */;
UNLOCK TABLES;
......@@ -365,14 +366,14 @@ VALUES
(19,100005,103,'随机积分',NULL,80000,80000,0.0300,'tree_luck_award',1,'2023-12-09 09:38:31','2024-02-15 07:42:50'),
(20,100005,104,'随机积分',NULL,80000,80000,0.0300,'tree_luck_award',1,'2023-12-09 09:38:31','2024-02-15 07:42:51'),
(21,100005,105,'随机积分',NULL,80000,80000,0.0010,'tree_luck_award',1,'2023-12-09 09:38:31','2024-02-15 07:42:52'),
(22,100006,101,'随机积分',NULL,100,61,0.0200,'tree_luck_award',1,'2023-12-09 09:38:31','2024-04-27 13:38:05'),
(23,100006,102,'OpenAI会员卡',NULL,100,19,0.0300,'tree_luck_award',2,'2023-12-09 09:38:31','2024-04-27 15:00:20'),
(24,100006,103,'支付优惠券',NULL,100,43,0.0300,'tree_luck_award',3,'2023-12-09 09:38:31','2024-04-27 13:29:35'),
(25,100006,104,'小米台灯',NULL,100,36,0.0300,'tree_luck_award',4,'2023-12-09 09:38:31','2024-04-27 15:00:30'),
(22,100006,101,'随机积分',NULL,100,57,0.0200,'tree_luck_award',1,'2023-12-09 09:38:31','2024-05-04 15:37:00'),
(23,100006,102,'OpenAI会员卡',NULL,100,17,0.0300,'tree_luck_award',2,'2023-12-09 09:38:31','2024-05-04 13:00:15'),
(24,100006,103,'支付优惠券',NULL,100,40,0.0300,'tree_luck_award',3,'2023-12-09 09:38:31','2024-05-04 15:36:15'),
(25,100006,104,'小米台灯',NULL,100,31,0.0300,'tree_luck_award',4,'2023-12-09 09:38:31','2024-05-04 15:36:45'),
(26,100006,105,'小米su7周体验','抽奖3次后解锁',100,38,0.0300,'tree_lock_3',5,'2023-12-09 09:38:31','2024-04-27 13:08:16'),
(27,100006,106,'轻奢办公椅','抽奖2次后解锁',100,25,0.0300,'tree_lock_2',6,'2023-12-09 09:38:31','2024-04-27 13:30:05'),
(28,100006,107,'小霸王游戏机','抽奖1次后解锁',100,24,0.0300,'tree_lock_1',7,'2023-12-09 09:38:31','2024-04-27 13:36:35'),
(29,100006,108,'暴走玩偶',NULL,100,33,0.0300,'tree_luck_award',8,'2023-12-09 09:38:31','2024-04-27 13:19:45');
(27,100006,106,'轻奢办公椅','抽奖2次后解锁',100,23,0.0300,'tree_lock_2',6,'2023-12-09 09:38:31','2024-05-04 15:31:45'),
(28,100006,107,'小霸王游戏机','抽奖1次后解锁',100,22,0.0300,'tree_lock_1',7,'2023-12-09 09:38:31','2024-05-04 15:31:55'),
(29,100006,108,'暴走玩偶',NULL,100,27,0.0300,'tree_luck_award',8,'2023-12-09 09:38:31','2024-05-04 15:37:05');
/*!40000 ALTER TABLE `strategy_award` ENABLE KEYS */;
UNLOCK TABLES;
......@@ -394,6 +395,7 @@ CREATE TABLE `strategy_rule` (
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uq_strategy_id_rule_model` (`strategy_id`,`rule_model`),
KEY `idx_strategy_id_award_id` (`strategy_id`,`award_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='抽奖策略规则';
......@@ -402,8 +404,10 @@ LOCK TABLES `strategy_rule` WRITE;
INSERT INTO `strategy_rule` (`id`, `strategy_id`, `award_id`, `rule_type`, `rule_model`, `rule_value`, `rule_desc`, `create_time`, `update_time`)
VALUES
(13,100001,NULL,1,'rule_weight','4000:102,103,104,105 5000:102,103,104,105,106,107 6000:102,103,104,105,106,107,108,109','消耗6000分,必中奖范围','2023-12-09 10:30:43','2023-12-31 14:51:50'),
(14,100001,NULL,1,'rule_blacklist','101:user001,user002,user003','黑名单抽奖,积分兜底','2023-12-09 12:59:45','2024-02-14 18:16:20');
(13,100001,NULL,1,'rule_weight','60:102,103,104,105 200:106,107 1000:105','消耗6000分,必中奖范围','2023-12-09 10:30:43','2024-05-04 12:44:47'),
(14,100001,NULL,1,'rule_blacklist','101:user001,user002,user003','黑名单抽奖,积分兜底','2023-12-09 12:59:45','2024-02-14 18:16:20'),
(15,100006,NULL,1,'rule_weight','10:102,103 70:106,107 1000:104,105','消耗6000分,必中奖范围','2023-12-09 10:30:43','2024-05-04 15:41:16'),
(16,100006,NULL,1,'rule_blacklist','101:user001,user002,user003','黑名单抽奖,积分兜底','2023-12-09 12:59:45','2024-02-14 18:16:20');
/*!40000 ALTER TABLE `strategy_rule` ENABLE KEYS */;
UNLOCK TABLES;
......
......@@ -7,7 +7,7 @@
#
# 主机: 127.0.0.1 (MySQL 5.6.39)
# 数据库: big_market_01
# 生成时间: 2024-04-30 10:18:45 +0000
# 生成时间: 2024-05-25 02:56:28 +0000
# ************************************************************
......@@ -48,7 +48,11 @@ LOCK TABLES `raffle_activity_account` WRITE;
INSERT INTO `raffle_activity_account` (`id`, `user_id`, `activity_id`, `total_count`, `total_count_surplus`, `day_count`, `day_count_surplus`, `month_count`, `month_count_surplus`, `create_time`, `update_time`)
VALUES
(3,'xiaofuge',100301,10000,10000,10000,10000,10000,10000,'2024-03-23 16:38:57','2024-04-27 15:49:56');
(3,'xiaofuge',100301,160,67,160,105,160,105,'2024-03-23 16:38:57','2024-05-04 15:29:56'),
(4,'12345',100301,10,10,10,10,10,10,'2024-05-01 15:28:50','2024-05-01 15:28:50'),
(5,'liergou',100301,20,6,20,6,20,6,'2024-05-04 15:30:21','2024-05-04 15:34:10'),
(6,'liergou2',100301,100,86,100,86,100,86,'2024-05-04 15:35:52','2024-05-04 15:37:37'),
(7,'user003',100301,100,98,100,98,100,98,'2024-05-25 10:52:19','2024-05-25 10:54:30');
/*!40000 ALTER TABLE `raffle_activity_account` ENABLE KEYS */;
UNLOCK TABLES;
......@@ -80,7 +84,13 @@ VALUES
(2,'xiaofuge',100301,'2024-04-05',45,44,'2024-04-05 17:10:31','2024-04-05 17:10:31'),
(3,'xiaofuge',100301,'2024-04-08',45,44,'2024-04-08 22:52:47','2024-04-08 22:52:47'),
(4,'xiaofuge',100301,'2024-04-13',45,23,'2024-04-13 11:44:10','2024-04-20 10:51:09'),
(7,'xiaofuge',100301,'2024-04-20',45,13,'2024-04-20 16:50:38','2024-04-20 16:50:38');
(7,'xiaofuge',100301,'2024-04-20',45,13,'2024-04-20 16:50:38','2024-04-20 16:50:38'),
(11,'xiaofuge',100301,'2024-05-01',60,40,'2024-05-01 14:51:45','2024-05-01 17:45:10'),
(12,'xiaofuge',100301,'2024-05-03',90,86,'2024-05-03 09:00:28','2024-05-03 13:28:42'),
(13,'xiaofuge',100301,'2024-05-04',160,131,'2024-05-04 09:32:02','2024-05-04 15:29:56'),
(14,'liergou',100301,'2024-05-04',20,6,'2024-05-04 15:30:36','2024-05-04 15:34:10'),
(15,'liergou2',100301,'2024-05-04',100,86,'2024-05-04 15:35:56','2024-05-04 15:37:37'),
(16,'user003',100301,'2024-05-25',100,98,'2024-05-25 10:53:19','2024-05-25 10:54:30');
/*!40000 ALTER TABLE `raffle_activity_account_day` ENABLE KEYS */;
UNLOCK TABLES;
......@@ -104,6 +114,18 @@ CREATE TABLE `raffle_activity_account_month` (
UNIQUE KEY `uq_user_id_activity_id_month` (`user_id`,`activity_id`,`month`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='抽奖活动账户表-月次数';
LOCK TABLES `raffle_activity_account_month` WRITE;
/*!40000 ALTER TABLE `raffle_activity_account_month` DISABLE KEYS */;
INSERT INTO `raffle_activity_account_month` (`id`, `user_id`, `activity_id`, `month`, `month_count`, `month_count_surplus`, `create_time`, `update_time`)
VALUES
(7,'xiaofuge',100301,'2024-05',140,85,'2024-05-01 14:51:45','2024-05-04 15:29:56'),
(8,'liergou',100301,'2024-05',20,6,'2024-05-04 15:30:36','2024-05-04 15:34:10'),
(9,'liergou2',100301,'2024-05',100,86,'2024-05-04 15:35:56','2024-05-04 15:37:37'),
(10,'user003',100301,'2024-05',100,98,'2024-05-25 10:53:19','2024-05-25 10:54:30');
/*!40000 ALTER TABLE `raffle_activity_account_month` ENABLE KEYS */;
UNLOCK TABLES;
# 转储表 raffle_activity_order_000
......@@ -171,7 +193,17 @@ VALUES
(72,'xiaofuge',9011,100301,'测试活动',100006,'837744050164','2024-04-21 10:40:25',1,1,1,'completed','613036507854','2024-04-21 18:40:25','2024-04-21 18:40:25'),
(73,'xiaofuge',9011,100301,'测试活动',100006,'766742523760','2024-04-21 10:40:25',1,1,1,'completed','649099837249','2024-04-21 18:40:25','2024-04-21 18:40:25'),
(74,'xiaofuge',9011,100301,'测试活动',100006,'856474163547','2024-04-21 10:40:25',1,1,1,'completed','652903372986','2024-04-21 18:40:25','2024-04-21 18:40:25'),
(75,'xiaofuge',9011,100301,'测试活动',100006,'668775949799','2024-04-21 10:40:25',1,1,1,'completed','097066347980','2024-04-21 18:40:25','2024-04-21 18:40:25');
(75,'xiaofuge',9011,100301,'测试活动',100006,'668775949799','2024-04-21 10:40:25',1,1,1,'completed','097066347980','2024-04-21 18:40:25','2024-04-21 18:40:25'),
(76,'xiaofuge',9011,100301,'测试活动',100006,'164452591012','2024-05-01 06:44:26',10,10,10,'completed','xiaofuge_sku_2024042903','2024-05-01 14:44:26','2024-05-01 14:44:26'),
(77,'xiaofuge',9011,100301,'测试活动',100006,'492597085813','2024-05-01 06:51:45',10,10,10,'completed','xiaofuge_sku_2024042904','2024-05-01 14:51:45','2024-05-01 14:51:45'),
(78,'xiaofuge',9011,100301,'测试活动',100006,'031706643902','2024-05-01 06:54:36',10,10,10,'completed','xiaofuge_sku_2024042905','2024-05-01 14:54:36','2024-05-01 14:54:36'),
(79,'xiaofuge',9011,100301,'测试活动',100006,'460855930969','2024-05-01 07:00:12',10,10,10,'completed','xiaofuge_sku_2024042906','2024-05-01 15:00:12','2024-05-01 15:00:12'),
(1096,'xiaofuge',9011,100301,'测试活动',100006,'364757830401','2024-05-01 09:14:43',10,10,10,'completed','xiaofuge_sku_20240501','2024-05-01 17:14:43','2024-05-01 17:14:43'),
(1097,'xiaofuge',9011,100301,'测试活动',100006,'157026402583','2024-05-01 09:39:40',10,10,10,'completed','xiaofuge_sku_20240420','2024-05-01 17:39:40','2024-05-01 17:39:40'),
(1098,'xiaofuge',9011,100301,'测试活动',100006,'481116019750','2024-05-01 09:41:53',10,10,10,'completed','xiaofuge_sku_20240401','2024-05-01 17:41:53','2024-05-01 17:41:53'),
(1099,'xiaofuge',9011,100301,'测试活动',100006,'639151059221','2024-05-01 09:45:10',10,10,10,'completed','xiaofuge_sku_20240402','2024-05-01 17:45:10','2024-05-01 17:45:10'),
(4234,'xiaofuge',9011,100301,'测试活动',100006,'129360973197','2024-05-03 05:28:43',10,10,10,'completed','xiaofuge_sku_20240503','2024-05-03 13:28:42','2024-05-03 13:28:42'),
(4247,'liergou',9011,100301,'测试活动',100006,'151494600661','2024-05-04 07:32:26',10,10,10,'completed','liergou_sku_20240504','2024-05-04 15:32:25','2024-05-04 15:32:25');
/*!40000 ALTER TABLE `raffle_activity_order_001` ENABLE KEYS */;
UNLOCK TABLES;
......@@ -204,6 +236,16 @@ CREATE TABLE `raffle_activity_order_002` (
KEY `idx_user_id_activity_id` (`user_id`,`activity_id`,`state`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='抽奖活动单';
LOCK TABLES `raffle_activity_order_002` WRITE;
/*!40000 ALTER TABLE `raffle_activity_order_002` DISABLE KEYS */;
INSERT INTO `raffle_activity_order_002` (`id`, `user_id`, `sku`, `activity_id`, `activity_name`, `strategy_id`, `order_id`, `order_time`, `total_count`, `day_count`, `month_count`, `state`, `out_business_no`, `create_time`, `update_time`)
VALUES
(1,'liergou2',9011,100301,'测试活动',100006,'987026967898','2024-05-04 07:35:53',100,100,100,'completed','liergou2_sku_20240504','2024-05-04 15:35:52','2024-05-04 15:35:52'),
(2,'user003',9011,100301,'测试活动',100006,'700446814309','2024-05-25 02:52:20',100,100,100,'completed','user003_sku_20240525','2024-05-25 10:52:19','2024-05-25 10:52:19');
/*!40000 ALTER TABLE `raffle_activity_order_002` ENABLE KEYS */;
UNLOCK TABLES;
# 转储表 raffle_activity_order_003
......@@ -344,7 +386,155 @@ VALUES
(82,'xiaofuge','send_award','05612212348','{\"data\":{\"awardId\":104,\"awardTitle\":\"小米台灯\",\"userId\":\"xiaofuge\"},\"id\":\"05612212348\",\"timestamp\":1714201222825}','completed','2024-04-27 15:00:22','2024-04-27 15:00:22'),
(83,'xiaofuge','send_rebate','35170430024','{\"data\":{\"bizId\":\"xiaofuge_sku_20240430\",\"rebateConfig\":\"9011\",\"rebateType\":\"sign\",\"userId\":\"xiaofuge\"},\"id\":\"35170430024\",\"timestamp\":1714471292871}','completed','2024-04-30 18:01:33','2024-04-30 18:01:33'),
(84,'xiaofuge','send_rebate','33541289034','{\"data\":{\"bizId\":\"xiaofuge_sku_20240430\",\"rebateConfig\":\"9011\",\"rebateType\":\"sign\",\"userId\":\"xiaofuge\"},\"id\":\"33541289034\",\"timestamp\":1714471544134}','completed','2024-04-30 18:05:44','2024-04-30 18:05:44'),
(85,'xiaofuge','send_rebate','42019106000','{\"data\":{\"bizId\":\"xiaofuge_integral_20240430\",\"rebateConfig\":\"10\",\"rebateType\":\"sign\",\"userId\":\"xiaofuge\"},\"id\":\"42019106000\",\"timestamp\":1714471544137}','completed','2024-04-30 18:05:44','2024-04-30 18:05:44');
(85,'xiaofuge','send_rebate','42019106000','{\"data\":{\"bizId\":\"xiaofuge_integral_20240430\",\"rebateConfig\":\"10\",\"rebateType\":\"sign\",\"userId\":\"xiaofuge\"},\"id\":\"42019106000\",\"timestamp\":1714471544137}','completed','2024-04-30 18:05:44','2024-04-30 18:05:44'),
(86,'xiaofuge','send_rebate','19381004535','{\"data\":{\"bizId\":\"xiaofuge_sku_20240429\",\"rebateConfig\":\"9011\",\"rebateType\":\"sign\",\"userId\":\"xiaofuge\"},\"id\":\"19381004535\",\"timestamp\":1714472470563}','completed','2024-04-30 18:21:10','2024-04-30 18:21:10'),
(87,'xiaofuge','send_rebate','64076325441','{\"data\":{\"bizId\":\"xiaofuge_integral_20240429\",\"rebateConfig\":\"10\",\"rebateType\":\"sign\",\"userId\":\"xiaofuge\"},\"id\":\"64076325441\",\"timestamp\":1714472470567}','completed','2024-04-30 18:21:10','2024-04-30 18:21:10'),
(88,'xiaofuge','send_rebate','68231201640','{\"data\":{\"bizId\":\"xiaofuge_sku_20240501\",\"rebateConfig\":\"9011\",\"rebateType\":\"sign\",\"userId\":\"xiaofuge\"},\"id\":\"68231201640\",\"timestamp\":1714528145559}','completed','2024-05-01 09:49:06','2024-05-01 09:50:45'),
(89,'xiaofuge','send_rebate','50111005352','{\"data\":{\"bizId\":\"xiaofuge_integral_20240501\",\"rebateConfig\":\"10\",\"rebateType\":\"sign\",\"userId\":\"xiaofuge\"},\"id\":\"50111005352\",\"timestamp\":1714528145563}','completed','2024-05-01 09:49:06','2024-05-01 09:50:45'),
(90,'xiaofuge','send_rebate','75682316589','{\"data\":{\"bizId\":\"xiaofuge_sku_20240502\",\"rebateConfig\":\"9011\",\"rebateType\":\"sign\",\"userId\":\"xiaofuge\"},\"id\":\"75682316589\",\"timestamp\":1714528244315}','completed','2024-05-01 09:50:44','2024-05-01 09:50:44'),
(91,'xiaofuge','send_rebate','15910602537','{\"data\":{\"bizId\":\"xiaofuge_integral_20240502\",\"rebateConfig\":\"10\",\"rebateType\":\"sign\",\"userId\":\"xiaofuge\"},\"id\":\"15910602537\",\"timestamp\":1714528244322}','completed','2024-05-01 09:50:44','2024-05-01 09:50:44'),
(92,'xiaofuge','send_rebate','84186056749','{\"data\":{\"bizId\":\"xiaofuge_sku_2024042901\",\"rebateConfig\":\"9011\",\"rebateType\":\"sign\",\"userId\":\"xiaofuge\"},\"id\":\"84186056749\",\"timestamp\":1714543316732}','completed','2024-05-01 14:01:57','2024-05-01 14:01:57'),
(93,'xiaofuge','send_rebate','96465813570','{\"data\":{\"bizId\":\"xiaofuge_integral_2024042901\",\"rebateConfig\":\"10\",\"rebateType\":\"sign\",\"userId\":\"xiaofuge\"},\"id\":\"96465813570\",\"timestamp\":1714543316735}','completed','2024-05-01 14:01:57','2024-05-01 14:01:57'),
(94,'xiaofuge','send_rebate','52282173291','{\"data\":{\"bizId\":\"xiaofuge_sku_2024042902\",\"rebateConfig\":\"9011\",\"rebateType\":\"sign\",\"userId\":\"xiaofuge\"},\"id\":\"52282173291\",\"timestamp\":1714545280296}','completed','2024-05-01 14:34:40','2024-05-01 14:34:40'),
(95,'xiaofuge','send_rebate','57252028754','{\"data\":{\"bizId\":\"xiaofuge_integral_2024042902\",\"rebateConfig\":\"10\",\"rebateType\":\"sign\",\"userId\":\"xiaofuge\"},\"id\":\"57252028754\",\"timestamp\":1714545280298}','completed','2024-05-01 14:34:40','2024-05-01 14:34:40'),
(96,'xiaofuge','send_rebate','49677315112','{\"data\":{\"bizId\":\"xiaofuge_sku_2024042903\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"xiaofuge\"},\"id\":\"49677315112\",\"timestamp\":1714545434013}','completed','2024-05-01 14:37:14','2024-05-01 14:37:14'),
(97,'xiaofuge','send_rebate','29687183027','{\"data\":{\"bizId\":\"xiaofuge_integral_2024042903\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"xiaofuge\"},\"id\":\"29687183027\",\"timestamp\":1714545434017}','completed','2024-05-01 14:37:14','2024-05-01 14:37:14'),
(98,'xiaofuge','send_rebate','55494780983','{\"data\":{\"bizId\":\"xiaofuge_sku_2024042904\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"xiaofuge\"},\"id\":\"55494780983\",\"timestamp\":1714546304733}','completed','2024-05-01 14:51:45','2024-05-01 14:51:45'),
(99,'xiaofuge','send_rebate','63676464061','{\"data\":{\"bizId\":\"xiaofuge_integral_2024042904\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"xiaofuge\"},\"id\":\"63676464061\",\"timestamp\":1714546304736}','completed','2024-05-01 14:51:45','2024-05-01 14:51:45'),
(100,'xiaofuge','send_rebate','97069945042','{\"data\":{\"bizId\":\"xiaofuge_sku_2024042905\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"xiaofuge\"},\"id\":\"97069945042\",\"timestamp\":1714546475883}','completed','2024-05-01 14:54:36','2024-05-01 14:54:36'),
(101,'xiaofuge','send_rebate','25711583274','{\"data\":{\"bizId\":\"xiaofuge_integral_2024042905\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"xiaofuge\"},\"id\":\"25711583274\",\"timestamp\":1714546475885}','completed','2024-05-01 14:54:36','2024-05-01 14:54:36'),
(102,'xiaofuge','send_award','42156280709','{\"data\":{\"awardId\":108,\"awardTitle\":\"暴走玩偶\",\"userId\":\"xiaofuge\"},\"id\":\"42156280709\",\"timestamp\":1714546659050}','completed','2024-05-01 14:57:39','2024-05-01 14:57:39'),
(103,'xiaofuge','send_award','78085050648','{\"data\":{\"awardId\":101,\"awardTitle\":\"随机积分\",\"userId\":\"xiaofuge\"},\"id\":\"78085050648\",\"timestamp\":1714546688551}','completed','2024-05-01 14:58:08','2024-05-01 14:58:08'),
(104,'xiaofuge','send_award','55842869580','{\"data\":{\"awardId\":107,\"awardTitle\":\"小霸王游戏机\",\"userId\":\"xiaofuge\"},\"id\":\"55842869580\",\"timestamp\":1714546773027}','completed','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(105,'xiaofuge','send_award','86587566543','{\"data\":{\"awardId\":103,\"awardTitle\":\"支付优惠券\",\"userId\":\"xiaofuge\"},\"id\":\"86587566543\",\"timestamp\":1714546773422}','completed','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(106,'xiaofuge','send_award','88267642020','{\"data\":{\"awardId\":101,\"awardTitle\":\"随机积分\",\"userId\":\"xiaofuge\"},\"id\":\"88267642020\",\"timestamp\":1714546773490}','completed','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(107,'xiaofuge','send_award','03348496593','{\"data\":{\"awardId\":106,\"awardTitle\":\"轻奢办公椅\",\"userId\":\"xiaofuge\"},\"id\":\"03348496593\",\"timestamp\":1714546773570}','completed','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(108,'xiaofuge','send_award','20140993483','{\"data\":{\"awardId\":104,\"awardTitle\":\"小米台灯\",\"userId\":\"xiaofuge\"},\"id\":\"20140993483\",\"timestamp\":1714546773661}','completed','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(109,'xiaofuge','send_award','95682596295','{\"data\":{\"awardId\":107,\"awardTitle\":\"小霸王游戏机\",\"userId\":\"xiaofuge\"},\"id\":\"95682596295\",\"timestamp\":1714546773713}','completed','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(110,'xiaofuge','send_award','95939034377','{\"data\":{\"awardId\":107,\"awardTitle\":\"小霸王游戏机\",\"userId\":\"xiaofuge\"},\"id\":\"95939034377\",\"timestamp\":1714546773772}','completed','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(111,'xiaofuge','send_award','28569395651','{\"data\":{\"awardId\":103,\"awardTitle\":\"支付优惠券\",\"userId\":\"xiaofuge\"},\"id\":\"28569395651\",\"timestamp\":1714546773829}','completed','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(112,'xiaofuge','send_award','37713199996','{\"data\":{\"awardId\":108,\"awardTitle\":\"暴走玩偶\",\"userId\":\"xiaofuge\"},\"id\":\"37713199996\",\"timestamp\":1714546773889}','completed','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(113,'xiaofuge','send_award','39729736863','{\"data\":{\"awardId\":108,\"awardTitle\":\"暴走玩偶\",\"userId\":\"xiaofuge\"},\"id\":\"39729736863\",\"timestamp\":1714546773937}','completed','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(114,'xiaofuge','send_award','63571397739','{\"data\":{\"awardId\":108,\"awardTitle\":\"暴走玩偶\",\"userId\":\"xiaofuge\"},\"id\":\"63571397739\",\"timestamp\":1714546774008}','completed','2024-05-01 14:59:34','2024-05-01 14:59:34'),
(115,'xiaofuge','send_award','41779666583','{\"data\":{\"awardId\":107,\"awardTitle\":\"小霸王游戏机\",\"userId\":\"xiaofuge\"},\"id\":\"41779666583\",\"timestamp\":1714546774083}','completed','2024-05-01 14:59:34','2024-05-01 14:59:34'),
(116,'xiaofuge','send_award','35122333142','{\"data\":{\"awardId\":107,\"awardTitle\":\"小霸王游戏机\",\"userId\":\"xiaofuge\"},\"id\":\"35122333142\",\"timestamp\":1714546774144}','completed','2024-05-01 14:59:34','2024-05-01 14:59:34'),
(117,'xiaofuge','send_award','07007092150','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"xiaofuge\"},\"id\":\"07007092150\",\"timestamp\":1714546774211}','completed','2024-05-01 14:59:34','2024-05-01 14:59:34'),
(118,'xiaofuge','send_award','08460963032','{\"data\":{\"awardId\":101,\"awardTitle\":\"随机积分\",\"userId\":\"xiaofuge\"},\"id\":\"08460963032\",\"timestamp\":1714546774278}','completed','2024-05-01 14:59:34','2024-05-01 14:59:34'),
(119,'xiaofuge','send_award','06210115971','{\"data\":{\"awardId\":108,\"awardTitle\":\"暴走玩偶\",\"userId\":\"xiaofuge\"},\"id\":\"06210115971\",\"timestamp\":1714546774344}','completed','2024-05-01 14:59:34','2024-05-01 14:59:34'),
(120,'xiaofuge','send_award','78110342017','{\"data\":{\"awardId\":104,\"awardTitle\":\"小米台灯\",\"userId\":\"xiaofuge\"},\"id\":\"78110342017\",\"timestamp\":1714546774404}','completed','2024-05-01 14:59:34','2024-05-01 14:59:34'),
(121,'xiaofuge','send_award','34349719655','{\"data\":{\"awardId\":101,\"awardTitle\":\"随机积分\",\"userId\":\"xiaofuge\"},\"id\":\"34349719655\",\"timestamp\":1714546774481}','completed','2024-05-01 14:59:34','2024-05-01 14:59:34'),
(122,'xiaofuge','send_award','16795012327','{\"data\":{\"awardId\":108,\"awardTitle\":\"暴走玩偶\",\"userId\":\"xiaofuge\"},\"id\":\"16795012327\",\"timestamp\":1714546774537}','completed','2024-05-01 14:59:34','2024-05-01 14:59:34'),
(123,'xiaofuge','send_rebate','01343683507','{\"data\":{\"bizId\":\"xiaofuge_sku_2024042906\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"xiaofuge\"},\"id\":\"01343683507\",\"timestamp\":1714546811980}','completed','2024-05-01 15:00:12','2024-05-01 15:00:12'),
(124,'xiaofuge','send_rebate','22675851113','{\"data\":{\"bizId\":\"xiaofuge_integral_2024042906\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"xiaofuge\"},\"id\":\"22675851113\",\"timestamp\":1714546811983}','completed','2024-05-01 15:00:12','2024-05-01 15:00:12'),
(125,'xiaofuge','send_rebate','72790041499','{\"data\":{\"bizId\":\"xiaofuge_sku_20240501\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"xiaofuge\"},\"id\":\"72790041499\",\"timestamp\":1714547646310}','completed','2024-05-01 15:14:06','2024-05-01 15:14:06'),
(126,'xiaofuge','send_rebate','07532513295','{\"data\":{\"bizId\":\"xiaofuge_integral_20240501\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"xiaofuge\"},\"id\":\"07532513295\",\"timestamp\":1714547646312}','completed','2024-05-01 15:14:06','2024-05-01 15:14:06'),
(127,'12345','send_rebate','44168301206','{\"data\":{\"bizId\":\"12345_sku_20240501\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"12345\"},\"id\":\"44168301206\",\"timestamp\":1714548524834}','completed','2024-05-01 15:28:45','2024-05-01 15:28:45'),
(128,'12345','send_rebate','77696087444','{\"data\":{\"bizId\":\"12345_integral_20240501\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"12345\"},\"id\":\"77696087444\",\"timestamp\":1714548524845}','completed','2024-05-01 15:28:45','2024-05-01 15:28:45'),
(129,'xiaofuge','send_rebate','53358221321','{\"data\":{\"bizId\":\"xiaofuge_sku_20240501\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"xiaofuge\"},\"id\":\"53358221321\",\"timestamp\":1714554815882}','completed','2024-05-01 17:13:36','2024-05-01 17:13:36'),
(130,'xiaofuge','send_rebate','29895043546','{\"data\":{\"bizId\":\"xiaofuge_integral_20240501\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"xiaofuge\"},\"id\":\"29895043546\",\"timestamp\":1714554815884}','completed','2024-05-01 17:13:36','2024-05-01 17:13:36'),
(131,'xiaofuge','send_rebate','97779206565','{\"data\":{\"bizId\":\"xiaofuge_sku_20240420\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"xiaofuge\"},\"id\":\"97779206565\",\"timestamp\":1714556371985}','completed','2024-05-01 17:39:32','2024-05-01 17:39:35'),
(132,'xiaofuge','send_rebate','63122692373','{\"data\":{\"bizId\":\"xiaofuge_integral_20240420\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"xiaofuge\"},\"id\":\"63122692373\",\"timestamp\":1714556371994}','completed','2024-05-01 17:39:32','2024-05-01 17:39:35'),
(133,'xiaofuge','send_rebate','64655129366','{\"data\":{\"bizId\":\"xiaofuge_sku_20240401\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"xiaofuge\"},\"id\":\"64655129366\",\"timestamp\":1714556504378}','completed','2024-05-01 17:41:45','2024-05-01 17:41:45'),
(134,'xiaofuge','send_rebate','38396244073','{\"data\":{\"bizId\":\"xiaofuge_integral_20240401\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"xiaofuge\"},\"id\":\"38396244073\",\"timestamp\":1714556504389}','completed','2024-05-01 17:41:45','2024-05-01 17:41:45'),
(135,'xiaofuge','send_rebate','08184105296','{\"data\":{\"bizId\":\"xiaofuge_sku_20240402\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"xiaofuge\"},\"id\":\"08184105296\",\"timestamp\":1714556709389}','completed','2024-05-01 17:45:09','2024-05-01 17:45:09'),
(136,'xiaofuge','send_rebate','16417473546','{\"data\":{\"bizId\":\"xiaofuge_integral_20240402\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"xiaofuge\"},\"id\":\"16417473546\",\"timestamp\":1714556709391}','completed','2024-05-01 17:45:09','2024-05-01 17:45:09'),
(137,'xiaofuge','send_rebate','04164162705','{\"data\":{\"bizId\":\"xiaofuge_sku_20240501\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"xiaofuge\"},\"id\":\"04164162705\",\"timestamp\":1714557266867}','completed','2024-05-01 17:54:27','2024-05-01 17:54:27'),
(138,'xiaofuge','send_rebate','79924892493','{\"data\":{\"bizId\":\"xiaofuge_integral_20240501\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"xiaofuge\"},\"id\":\"79924892493\",\"timestamp\":1714557266870}','completed','2024-05-01 17:54:27','2024-05-01 17:54:27'),
(139,'xiaofuge','send_award','90576859616','{\"data\":{\"awardId\":104,\"awardTitle\":\"小米台灯\",\"userId\":\"xiaofuge\"},\"id\":\"90576859616\",\"timestamp\":1714698137578}','completed','2024-05-03 09:02:17','2024-05-03 09:02:17'),
(140,'xiaofuge','send_award','65620335186','{\"data\":{\"awardId\":101,\"awardTitle\":\"随机积分\",\"userId\":\"xiaofuge\"},\"id\":\"65620335186\",\"timestamp\":1714698596791}','completed','2024-05-03 09:09:57','2024-05-03 09:09:57'),
(141,'xiaofuge','send_award','37556739286','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"xiaofuge\"},\"id\":\"37556739286\",\"timestamp\":1714698634894}','completed','2024-05-03 09:10:35','2024-05-03 09:10:35'),
(142,'xiaofuge','send_award','55348135802','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"xiaofuge\"},\"id\":\"55348135802\",\"timestamp\":1714698697948}','completed','2024-05-03 09:11:38','2024-05-03 09:11:38'),
(143,'xiaofuge','send_rebate','72638302928','{\"data\":{\"bizId\":\"xiaofuge_sku_20240503\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"xiaofuge\"},\"id\":\"72638302928\",\"timestamp\":1714714122098}','completed','2024-05-03 13:28:42','2024-05-03 13:28:42'),
(144,'xiaofuge','send_rebate','72714070579','{\"data\":{\"bizId\":\"xiaofuge_integral_20240503\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"xiaofuge\"},\"id\":\"72714070579\",\"timestamp\":1714714122101}','completed','2024-05-03 13:28:42','2024-05-03 13:28:42'),
(145,'xiaofuge','send_award','16274942215','{\"data\":{\"awardId\":107,\"awardTitle\":\"小霸王游戏机\",\"userId\":\"xiaofuge\"},\"id\":\"16274942215\",\"timestamp\":1714786330913}','completed','2024-05-04 09:32:10','2024-05-04 09:32:10'),
(146,'xiaofuge','send_award','11783185223','{\"data\":{\"awardId\":105,\"awardTitle\":\"小米su7周体验\",\"userId\":\"xiaofuge\"},\"id\":\"11783185223\",\"timestamp\":1714786931187}','completed','2024-05-04 09:42:11','2024-05-04 09:42:11'),
(147,'xiaofuge','send_award','34265015511','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"xiaofuge\"},\"id\":\"34265015511\",\"timestamp\":1714788400164}','completed','2024-05-04 10:06:40','2024-05-04 10:06:40'),
(148,'xiaofuge','send_award','11011728809','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"xiaofuge\"},\"id\":\"11011728809\",\"timestamp\":1714788456611}','completed','2024-05-04 10:07:36','2024-05-04 10:07:36'),
(149,'xiaofuge','send_award','53652403098','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"xiaofuge\"},\"id\":\"53652403098\",\"timestamp\":1714788464629}','completed','2024-05-04 10:07:44','2024-05-04 10:07:44'),
(150,'xiaofuge','send_award','51640617337','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"xiaofuge\"},\"id\":\"51640617337\",\"timestamp\":1714788921450}','completed','2024-05-04 10:15:21','2024-05-04 10:15:21'),
(151,'xiaofuge','send_award','32259543619','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"xiaofuge\"},\"id\":\"32259543619\",\"timestamp\":1714788929172}','completed','2024-05-04 10:15:29','2024-05-04 10:15:29'),
(152,'xiaofuge','send_award','00793022201','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"xiaofuge\"},\"id\":\"00793022201\",\"timestamp\":1714789011304}','completed','2024-05-04 10:16:51','2024-05-04 10:16:51'),
(153,'xiaofuge','send_award','99216566028','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"xiaofuge\"},\"id\":\"99216566028\",\"timestamp\":1714789039582}','completed','2024-05-04 10:17:19','2024-05-04 10:17:19'),
(154,'xiaofuge','send_award','04877391204','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"xiaofuge\"},\"id\":\"04877391204\",\"timestamp\":1714789089075}','completed','2024-05-04 10:18:09','2024-05-04 10:18:09'),
(155,'xiaofuge','send_award','91534655048','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"xiaofuge\"},\"id\":\"91534655048\",\"timestamp\":1714789246122}','completed','2024-05-04 10:20:46','2024-05-04 10:20:46'),
(156,'xiaofuge','send_award','60332832674','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"xiaofuge\"},\"id\":\"60332832674\",\"timestamp\":1714789254207}','completed','2024-05-04 10:20:54','2024-05-04 10:20:54'),
(157,'xiaofuge','send_award','40483872758','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"xiaofuge\"},\"id\":\"40483872758\",\"timestamp\":1714790192823}','completed','2024-05-04 10:36:32','2024-05-04 10:36:32'),
(158,'xiaofuge','send_award','11486109864','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"xiaofuge\"},\"id\":\"11486109864\",\"timestamp\":1714790245060}','completed','2024-05-04 10:37:25','2024-05-04 10:37:25'),
(159,'xiaofuge','send_award','76753189160','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"xiaofuge\"},\"id\":\"76753189160\",\"timestamp\":1714790252173}','completed','2024-05-04 10:37:32','2024-05-04 10:37:32'),
(160,'xiaofuge','send_award','58351463446','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"xiaofuge\"},\"id\":\"58351463446\",\"timestamp\":1714790259659}','completed','2024-05-04 10:37:39','2024-05-04 10:37:39'),
(161,'xiaofuge','send_award','23537323373','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"xiaofuge\"},\"id\":\"23537323373\",\"timestamp\":1714790321485}','completed','2024-05-04 10:38:41','2024-05-04 10:38:41'),
(162,'xiaofuge','send_award','94019822881','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"xiaofuge\"},\"id\":\"94019822881\",\"timestamp\":1714790329428}','completed','2024-05-04 10:38:49','2024-05-04 10:38:49'),
(163,'xiaofuge','send_rebate','27195595790','{\"data\":{\"bizId\":\"xiaofuge_sku_20240504\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"xiaofuge\"},\"id\":\"27195595790\",\"timestamp\":1714791759648}','completed','2024-05-04 11:02:39','2024-05-04 11:02:39'),
(164,'xiaofuge','send_rebate','61629814089','{\"data\":{\"bizId\":\"xiaofuge_integral_20240504\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"xiaofuge\"},\"id\":\"61629814089\",\"timestamp\":1714791759660}','completed','2024-05-04 11:02:39','2024-05-04 11:02:39'),
(165,'xiaofuge','send_rebate','11862182444','{\"data\":{\"bizId\":\"xiaofuge_sku_20240504\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"xiaofuge\"},\"id\":\"11862182444\",\"timestamp\":1714792313049}','completed','2024-05-04 11:11:53','2024-05-04 11:11:53'),
(166,'xiaofuge','send_rebate','15679450368','{\"data\":{\"bizId\":\"xiaofuge_integral_20240504\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"xiaofuge\"},\"id\":\"15679450368\",\"timestamp\":1714792313050}','completed','2024-05-04 11:11:53','2024-05-04 11:11:53'),
(167,'xiaofuge','send_rebate','43063729637','{\"data\":{\"bizId\":\"xiaofuge_sku_20240504\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"xiaofuge\"},\"id\":\"43063729637\",\"timestamp\":1714792339076}','completed','2024-05-04 11:12:19','2024-05-04 11:12:19'),
(168,'xiaofuge','send_rebate','98996977753','{\"data\":{\"bizId\":\"xiaofuge_integral_20240504\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"xiaofuge\"},\"id\":\"98996977753\",\"timestamp\":1714792339076}','completed','2024-05-04 11:12:19','2024-05-04 11:12:19'),
(169,'xiaofuge','send_rebate','27475864066','{\"data\":{\"bizId\":\"xiaofuge_sku_20240504\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"xiaofuge\"},\"id\":\"27475864066\",\"timestamp\":1714792521633}','completed','2024-05-04 11:15:21','2024-05-04 11:15:21'),
(170,'xiaofuge','send_rebate','92639713795','{\"data\":{\"bizId\":\"xiaofuge_integral_20240504\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"xiaofuge\"},\"id\":\"92639713795\",\"timestamp\":1714792521636}','completed','2024-05-04 11:15:21','2024-05-04 11:15:21'),
(171,'xiaofuge','send_rebate','99203819313','{\"data\":{\"bizId\":\"xiaofuge_sku_20240504\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"xiaofuge\"},\"id\":\"99203819313\",\"timestamp\":1714792620935}','completed','2024-05-04 11:17:00','2024-05-04 11:17:01'),
(172,'xiaofuge','send_rebate','74660956883','{\"data\":{\"bizId\":\"xiaofuge_integral_20240504\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"xiaofuge\"},\"id\":\"74660956883\",\"timestamp\":1714792620937}','completed','2024-05-04 11:17:00','2024-05-04 11:17:01'),
(173,'xiaofuge','send_rebate','25704016034','{\"data\":{\"bizId\":\"xiaofuge_sku_20240504\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"xiaofuge\"},\"id\":\"25704016034\",\"timestamp\":1714793089441}','completed','2024-05-04 11:24:49','2024-05-04 11:24:49'),
(174,'xiaofuge','send_rebate','22457985518','{\"data\":{\"bizId\":\"xiaofuge_integral_20240504\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"xiaofuge\"},\"id\":\"22457985518\",\"timestamp\":1714793089453}','completed','2024-05-04 11:24:49','2024-05-04 11:24:49'),
(175,'xiaofuge','send_award','47589004216','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"xiaofuge\"},\"id\":\"47589004216\",\"timestamp\":1714793447481}','completed','2024-05-04 11:30:47','2024-05-04 11:30:47'),
(176,'xiaofuge','send_rebate','42725365297','{\"data\":{\"bizId\":\"xiaofuge_sku_20240504\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"xiaofuge\"},\"id\":\"42725365297\",\"timestamp\":1714793669228}','completed','2024-05-04 11:34:29','2024-05-04 11:34:29'),
(177,'xiaofuge','send_rebate','87435787450','{\"data\":{\"bizId\":\"xiaofuge_integral_20240504\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"xiaofuge\"},\"id\":\"87435787450\",\"timestamp\":1714793669228}','completed','2024-05-04 11:34:29','2024-05-04 11:34:29'),
(178,'xiaofuge','send_rebate','49417412468','{\"data\":{\"bizId\":\"xiaofuge_sku_20240504\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"xiaofuge\"},\"id\":\"49417412468\",\"timestamp\":1714793834886}','completed','2024-05-04 11:37:14','2024-05-04 11:37:14'),
(179,'xiaofuge','send_rebate','62113651314','{\"data\":{\"bizId\":\"xiaofuge_integral_20240504\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"xiaofuge\"},\"id\":\"62113651314\",\"timestamp\":1714793834886}','completed','2024-05-04 11:37:14','2024-05-04 11:37:14'),
(180,'xiaofuge','send_rebate','72477008662','{\"data\":{\"bizId\":\"xiaofuge_sku_20240504\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"xiaofuge\"},\"id\":\"72477008662\",\"timestamp\":1714793967664}','completed','2024-05-04 11:39:27','2024-05-04 11:39:27'),
(181,'xiaofuge','send_rebate','21764530878','{\"data\":{\"bizId\":\"xiaofuge_integral_20240504\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"xiaofuge\"},\"id\":\"21764530878\",\"timestamp\":1714793967664}','completed','2024-05-04 11:39:27','2024-05-04 11:39:27'),
(182,'xiaofuge','send_rebate','81400180382','{\"data\":{\"bizId\":\"xiaofuge_sku_20240504\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"xiaofuge\"},\"id\":\"81400180382\",\"timestamp\":1714794000070}','completed','2024-05-04 11:40:00','2024-05-04 11:40:00'),
(183,'xiaofuge','send_rebate','54229506227','{\"data\":{\"bizId\":\"xiaofuge_integral_20240504\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"xiaofuge\"},\"id\":\"54229506227\",\"timestamp\":1714794000070}','completed','2024-05-04 11:40:00','2024-05-04 11:40:00'),
(184,'xiaofuge','send_award','65328722154','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"xiaofuge\"},\"id\":\"65328722154\",\"timestamp\":1714794009904}','completed','2024-05-04 11:40:09','2024-05-04 11:40:09'),
(185,'xiaofuge','send_award','24734850097','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"xiaofuge\"},\"id\":\"24734850097\",\"timestamp\":1714794017003}','completed','2024-05-04 11:40:17','2024-05-04 11:40:17'),
(186,'xiaofuge','send_award','83062798647','{\"data\":{\"awardId\":103,\"awardTitle\":\"支付优惠券\",\"userId\":\"xiaofuge\"},\"id\":\"83062798647\",\"timestamp\":1714798160372}','completed','2024-05-04 12:49:20','2024-05-04 12:49:20'),
(187,'xiaofuge','send_award','17077466970','{\"data\":{\"awardId\":105,\"awardTitle\":\"小米su7周体验\",\"userId\":\"xiaofuge\"},\"id\":\"17077466970\",\"timestamp\":1714798170291}','completed','2024-05-04 12:49:30','2024-05-04 12:49:30'),
(188,'xiaofuge','send_award','96584733524','{\"data\":{\"awardId\":104,\"awardTitle\":\"小米台灯\",\"userId\":\"xiaofuge\"},\"id\":\"96584733524\",\"timestamp\":1714798182051}','completed','2024-05-04 12:49:42','2024-05-04 12:49:42'),
(189,'xiaofuge','send_award','96383900014','{\"data\":{\"awardId\":104,\"awardTitle\":\"小米台灯\",\"userId\":\"xiaofuge\"},\"id\":\"96383900014\",\"timestamp\":1714798235777}','completed','2024-05-04 12:50:35','2024-05-04 12:50:35'),
(190,'xiaofuge','send_award','75247980575','{\"data\":{\"awardId\":104,\"awardTitle\":\"小米台灯\",\"userId\":\"xiaofuge\"},\"id\":\"75247980575\",\"timestamp\":1714798244410}','completed','2024-05-04 12:50:44','2024-05-04 12:50:44'),
(191,'xiaofuge','send_award','83936855188','{\"data\":{\"awardId\":107,\"awardTitle\":\"小霸王游戏机\",\"userId\":\"xiaofuge\"},\"id\":\"83936855188\",\"timestamp\":1714807768291}','completed','2024-05-04 15:29:28','2024-05-04 15:29:28'),
(192,'xiaofuge','send_award','05844230229','{\"data\":{\"awardId\":106,\"awardTitle\":\"轻奢办公椅\",\"userId\":\"xiaofuge\"},\"id\":\"05844230229\",\"timestamp\":1714807775839}','completed','2024-05-04 15:29:35','2024-05-04 15:29:35'),
(193,'xiaofuge','send_award','34200100481','{\"data\":{\"awardId\":107,\"awardTitle\":\"小霸王游戏机\",\"userId\":\"xiaofuge\"},\"id\":\"34200100481\",\"timestamp\":1714807782994}','completed','2024-05-04 15:29:42','2024-05-04 15:29:43'),
(194,'xiaofuge','send_award','51137440950','{\"data\":{\"awardId\":106,\"awardTitle\":\"轻奢办公椅\",\"userId\":\"xiaofuge\"},\"id\":\"51137440950\",\"timestamp\":1714807789760}','completed','2024-05-04 15:29:49','2024-05-04 15:29:49'),
(195,'xiaofuge','send_award','74638782814','{\"data\":{\"awardId\":107,\"awardTitle\":\"小霸王游戏机\",\"userId\":\"xiaofuge\"},\"id\":\"74638782814\",\"timestamp\":1714807796220}','completed','2024-05-04 15:29:56','2024-05-04 15:29:56'),
(196,'liergou','send_rebate','36637930434','{\"data\":{\"bizId\":\"liergou_sku_20240504\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"liergou\"},\"id\":\"36637930434\",\"timestamp\":1714807821210}','completed','2024-05-04 15:30:21','2024-05-04 15:30:21'),
(197,'liergou','send_rebate','34715403057','{\"data\":{\"bizId\":\"liergou_integral_20240504\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"liergou\"},\"id\":\"34715403057\",\"timestamp\":1714807821216}','completed','2024-05-04 15:30:21','2024-05-04 15:30:21'),
(198,'liergou','send_award','41597520105','{\"data\":{\"awardId\":101,\"awardTitle\":\"随机积分\",\"userId\":\"liergou\"},\"id\":\"41597520105\",\"timestamp\":1714807836090}','completed','2024-05-04 15:30:36','2024-05-04 15:30:36'),
(199,'liergou','send_award','58675423754','{\"data\":{\"awardId\":104,\"awardTitle\":\"小米台灯\",\"userId\":\"liergou\"},\"id\":\"58675423754\",\"timestamp\":1714807877112}','completed','2024-05-04 15:31:17','2024-05-04 15:31:17'),
(200,'liergou','send_award','99730641621','{\"data\":{\"awardId\":103,\"awardTitle\":\"支付优惠券\",\"userId\":\"liergou\"},\"id\":\"99730641621\",\"timestamp\":1714807884267}','completed','2024-05-04 15:31:24','2024-05-04 15:31:24'),
(201,'liergou','send_award','92898084117','{\"data\":{\"awardId\":108,\"awardTitle\":\"暴走玩偶\",\"userId\":\"liergou\"},\"id\":\"92898084117\",\"timestamp\":1714807891073}','completed','2024-05-04 15:31:31','2024-05-04 15:31:31'),
(202,'liergou','send_award','86334494433','{\"data\":{\"awardId\":106,\"awardTitle\":\"轻奢办公椅\",\"userId\":\"liergou\"},\"id\":\"86334494433\",\"timestamp\":1714807898099}','completed','2024-05-04 15:31:38','2024-05-04 15:31:38'),
(203,'liergou','send_award','51619066227','{\"data\":{\"awardId\":104,\"awardTitle\":\"小米台灯\",\"userId\":\"liergou\"},\"id\":\"51619066227\",\"timestamp\":1714807905011}','completed','2024-05-04 15:31:45','2024-05-04 15:31:45'),
(204,'liergou','send_award','05800486959','{\"data\":{\"awardId\":107,\"awardTitle\":\"小霸王游戏机\",\"userId\":\"liergou\"},\"id\":\"05800486959\",\"timestamp\":1714807911983}','completed','2024-05-04 15:31:51','2024-05-04 15:31:51'),
(205,'liergou','send_award','94809887830','{\"data\":{\"awardId\":103,\"awardTitle\":\"支付优惠券\",\"userId\":\"liergou\"},\"id\":\"94809887830\",\"timestamp\":1714807919539}','completed','2024-05-04 15:31:59','2024-05-04 15:31:59'),
(206,'liergou','send_award','45867676557','{\"data\":{\"awardId\":101,\"awardTitle\":\"随机积分\",\"userId\":\"liergou\"},\"id\":\"45867676557\",\"timestamp\":1714807926510}','completed','2024-05-04 15:32:06','2024-05-04 15:32:06'),
(207,'liergou','send_award','06153737578','{\"data\":{\"awardId\":103,\"awardTitle\":\"支付优惠券\",\"userId\":\"liergou\"},\"id\":\"06153737578\",\"timestamp\":1714807933146}','completed','2024-05-04 15:32:13','2024-05-04 15:32:13'),
(208,'liergou','send_rebate','70974160126','{\"data\":{\"bizId\":\"liergou_sku_20240504\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"liergou\"},\"id\":\"70974160126\",\"timestamp\":1714807945762}','completed','2024-05-04 15:32:25','2024-05-04 15:32:25'),
(209,'liergou','send_rebate','02138996837','{\"data\":{\"bizId\":\"liergou_integral_20240504\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"liergou\"},\"id\":\"02138996837\",\"timestamp\":1714807945762}','completed','2024-05-04 15:32:25','2024-05-04 15:32:25'),
(210,'liergou','send_award','94421726702','{\"data\":{\"awardId\":103,\"awardTitle\":\"支付优惠券\",\"userId\":\"liergou\"},\"id\":\"94421726702\",\"timestamp\":1714807949401}','completed','2024-05-04 15:32:29','2024-05-04 15:32:29'),
(211,'liergou','send_award','39472863610','{\"data\":{\"awardId\":103,\"awardTitle\":\"支付优惠券\",\"userId\":\"liergou\"},\"id\":\"39472863610\",\"timestamp\":1714807955879}','completed','2024-05-04 15:32:35','2024-05-04 15:32:35'),
(212,'liergou','send_award','87066045962','{\"data\":{\"awardId\":103,\"awardTitle\":\"支付优惠券\",\"userId\":\"liergou\"},\"id\":\"87066045962\",\"timestamp\":1714807962247}','completed','2024-05-04 15:32:42','2024-05-04 15:32:42'),
(213,'liergou','send_award','71295562520','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"liergou\"},\"id\":\"71295562520\",\"timestamp\":1714808050789}','completed','2024-05-04 15:34:10','2024-05-04 15:34:10'),
(214,'liergou2','send_rebate','69657914070','{\"data\":{\"bizId\":\"liergou2_sku_20240504\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"liergou2\"},\"id\":\"69657914070\",\"timestamp\":1714808152671}','completed','2024-05-04 15:35:52','2024-05-04 15:35:52'),
(215,'liergou2','send_rebate','98631727300','{\"data\":{\"bizId\":\"liergou2_integral_20240504\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"liergou2\"},\"id\":\"98631727300\",\"timestamp\":1714808152672}','completed','2024-05-04 15:35:52','2024-05-04 15:35:52'),
(216,'liergou2','send_award','04455448797','{\"data\":{\"awardId\":108,\"awardTitle\":\"暴走玩偶\",\"userId\":\"liergou2\"},\"id\":\"04455448797\",\"timestamp\":1714808156560}','completed','2024-05-04 15:35:56','2024-05-04 15:35:56'),
(217,'liergou2','send_award','70112884978','{\"data\":{\"awardId\":101,\"awardTitle\":\"随机积分\",\"userId\":\"liergou2\"},\"id\":\"70112884978\",\"timestamp\":1714808163337}','completed','2024-05-04 15:36:03','2024-05-04 15:36:03'),
(218,'liergou2','send_award','20013321724','{\"data\":{\"awardId\":103,\"awardTitle\":\"支付优惠券\",\"userId\":\"liergou2\"},\"id\":\"20013321724\",\"timestamp\":1714808170383}','completed','2024-05-04 15:36:10','2024-05-04 15:36:10'),
(219,'liergou2','send_award','69158770194','{\"data\":{\"awardId\":101,\"awardTitle\":\"随机积分\",\"userId\":\"liergou2\"},\"id\":\"69158770194\",\"timestamp\":1714808182013}','completed','2024-05-04 15:36:22','2024-05-04 15:36:22'),
(220,'liergou2','send_award','79778986609','{\"data\":{\"awardId\":101,\"awardTitle\":\"随机积分\",\"userId\":\"liergou2\"},\"id\":\"79778986609\",\"timestamp\":1714808192767}','completed','2024-05-04 15:36:32','2024-05-04 15:36:32'),
(221,'liergou2','send_award','99484906329','{\"data\":{\"awardId\":104,\"awardTitle\":\"小米台灯\",\"userId\":\"liergou2\"},\"id\":\"99484906329\",\"timestamp\":1714808199757}','completed','2024-05-04 15:36:39','2024-05-04 15:36:39'),
(222,'liergou2','send_award','71461913030','{\"data\":{\"awardId\":101,\"awardTitle\":\"随机积分\",\"userId\":\"liergou2\"},\"id\":\"71461913030\",\"timestamp\":1714808206546}','completed','2024-05-04 15:36:46','2024-05-04 15:36:46'),
(223,'liergou2','send_award','65660637245','{\"data\":{\"awardId\":101,\"awardTitle\":\"随机积分\",\"userId\":\"liergou2\"},\"id\":\"65660637245\",\"timestamp\":1714808213101}','completed','2024-05-04 15:36:53','2024-05-04 15:36:53'),
(224,'liergou2','send_award','65599834779','{\"data\":{\"awardId\":108,\"awardTitle\":\"暴走玩偶\",\"userId\":\"liergou2\"},\"id\":\"65599834779\",\"timestamp\":1714808219849}','completed','2024-05-04 15:36:59','2024-05-04 15:36:59'),
(225,'liergou2','send_award','56578189655','{\"data\":{\"awardId\":103,\"awardTitle\":\"支付优惠券\",\"userId\":\"liergou2\"},\"id\":\"56578189655\",\"timestamp\":1714808226524}','completed','2024-05-04 15:37:06','2024-05-04 15:37:06'),
(226,'liergou2','send_award','93238638633','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"liergou2\"},\"id\":\"93238638633\",\"timestamp\":1714808233335}','completed','2024-05-04 15:37:13','2024-05-04 15:37:13'),
(227,'liergou2','send_award','08920326769','{\"data\":{\"awardId\":103,\"awardTitle\":\"支付优惠券\",\"userId\":\"liergou2\"},\"id\":\"08920326769\",\"timestamp\":1714808240830}','completed','2024-05-04 15:37:20','2024-05-04 15:37:20'),
(228,'liergou2','send_award','23064270642','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"liergou2\"},\"id\":\"23064270642\",\"timestamp\":1714808248052}','completed','2024-05-04 15:37:28','2024-05-04 15:37:28'),
(229,'liergou2','send_award','25530792328','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"liergou2\"},\"id\":\"25530792328\",\"timestamp\":1714808257717}','completed','2024-05-04 15:37:37','2024-05-04 15:37:37'),
(230,'user003','send_rebate','76631988985','{\"data\":{\"bizId\":\"user003_sku_20240525\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"user003\"},\"id\":\"76631988985\",\"timestamp\":1716605538812}','completed','2024-05-25 10:52:19','2024-05-25 10:52:19'),
(231,'user003','send_rebate','97630347951','{\"data\":{\"bizId\":\"user003_integral_20240525\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"user003\"},\"id\":\"97630347951\",\"timestamp\":1716605538817}','completed','2024-05-25 10:52:19','2024-05-25 10:52:19'),
(232,'user003','send_award','22110596663','{\"data\":{\"awardConfig\":\"0.01,1\",\"awardId\":101,\"awardTitle\":\"随机积分\",\"orderId\":\"248641902208\",\"userId\":\"user003\"},\"id\":\"22110596663\",\"timestamp\":1716605600148}','completed','2024-05-25 10:53:20','2024-05-25 10:53:20'),
(233,'user003','send_award','55709995622','{\"data\":{\"awardConfig\":\"0.01,1\",\"awardId\":101,\"awardTitle\":\"随机积分\",\"orderId\":\"020196190863\",\"userId\":\"user003\"},\"id\":\"55709995622\",\"timestamp\":1716605670613}','completed','2024-05-25 10:54:31','2024-05-25 10:54:31');
/*!40000 ALTER TABLE `task` ENABLE KEYS */;
UNLOCK TABLES;
......@@ -486,7 +676,77 @@ VALUES
(82,'xiaofuge',100301,100006,'410701479648',101,'随机积分','2024-04-27 05:39:18','create','2024-04-27 13:39:18','2024-04-27 13:39:18'),
(83,'xiaofuge',100301,100006,'521226371540',101,'随机积分','2024-04-27 06:59:56','create','2024-04-27 14:59:56','2024-04-27 14:59:56'),
(84,'xiaofuge',100301,100006,'167000751553',102,'OpenAI会员卡','2024-04-27 07:00:14','create','2024-04-27 15:00:14','2024-04-27 15:00:14'),
(85,'xiaofuge',100301,100006,'685179511666',104,'小米台灯','2024-04-27 07:00:23','create','2024-04-27 15:00:22','2024-04-27 15:00:22');
(85,'xiaofuge',100301,100006,'685179511666',104,'小米台灯','2024-04-27 07:00:23','create','2024-04-27 15:00:22','2024-04-27 15:00:22'),
(86,'xiaofuge',100301,100006,'308424817839',108,'暴走玩偶','2024-05-01 06:57:39','create','2024-05-01 14:57:39','2024-05-01 14:57:39'),
(87,'xiaofuge',100301,100006,'116865823300',101,'随机积分','2024-05-01 06:58:09','create','2024-05-01 14:58:08','2024-05-01 14:58:08'),
(88,'xiaofuge',100301,100006,'272157347851',107,'小霸王游戏机','2024-05-01 06:59:33','create','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(89,'xiaofuge',100301,100006,'400772556300',103,'支付优惠券','2024-05-01 06:59:33','create','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(90,'xiaofuge',100301,100006,'494705137752',101,'随机积分','2024-05-01 06:59:33','create','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(91,'xiaofuge',100301,100006,'728609897262',106,'轻奢办公椅','2024-05-01 06:59:34','create','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(92,'xiaofuge',100301,100006,'085750418120',104,'小米台灯','2024-05-01 06:59:34','create','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(93,'xiaofuge',100301,100006,'884615410376',107,'小霸王游戏机','2024-05-01 06:59:34','create','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(94,'xiaofuge',100301,100006,'380693771158',107,'小霸王游戏机','2024-05-01 06:59:34','create','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(95,'xiaofuge',100301,100006,'801793933954',103,'支付优惠券','2024-05-01 06:59:34','create','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(96,'xiaofuge',100301,100006,'153569048026',108,'暴走玩偶','2024-05-01 06:59:34','create','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(97,'xiaofuge',100301,100006,'239541957386',108,'暴走玩偶','2024-05-01 06:59:34','create','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(98,'xiaofuge',100301,100006,'417247136950',108,'暴走玩偶','2024-05-01 06:59:34','create','2024-05-01 14:59:34','2024-05-01 14:59:34'),
(99,'xiaofuge',100301,100006,'556248667355',107,'小霸王游戏机','2024-05-01 06:59:34','create','2024-05-01 14:59:34','2024-05-01 14:59:34'),
(100,'xiaofuge',100301,100006,'828955445464',107,'小霸王游戏机','2024-05-01 06:59:34','create','2024-05-01 14:59:34','2024-05-01 14:59:34'),
(101,'xiaofuge',100301,100006,'756110942449',102,'OpenAI会员卡','2024-05-01 06:59:34','create','2024-05-01 14:59:34','2024-05-01 14:59:34'),
(102,'xiaofuge',100301,100006,'440069371435',101,'随机积分','2024-05-01 06:59:34','completed','2024-05-01 14:59:34','2024-05-24 22:11:59'),
(103,'xiaofuge',100301,100006,'421594084633',108,'暴走玩偶','2024-05-01 06:59:34','create','2024-05-01 14:59:34','2024-05-01 14:59:34'),
(104,'xiaofuge',100301,100006,'500905040429',104,'小米台灯','2024-05-01 06:59:34','create','2024-05-01 14:59:34','2024-05-01 14:59:34'),
(105,'xiaofuge',100301,100006,'712386571628',101,'随机积分','2024-05-01 06:59:34','create','2024-05-01 14:59:34','2024-05-01 14:59:34'),
(106,'xiaofuge',100301,100006,'095923542021',108,'暴走玩偶','2024-05-01 06:59:35','create','2024-05-01 14:59:34','2024-05-01 14:59:34'),
(107,'xiaofuge',100301,100006,'306233708878',104,'小米台灯','2024-05-03 01:02:18','create','2024-05-03 09:02:17','2024-05-03 09:02:17'),
(108,'xiaofuge',100301,100006,'690124733440',101,'随机积分','2024-05-03 01:09:57','completed','2024-05-03 09:09:57','2024-05-24 22:14:22'),
(109,'xiaofuge',100301,100006,'190487161872',102,'OpenAI会员卡','2024-05-03 01:10:35','create','2024-05-03 09:10:35','2024-05-03 09:10:35'),
(110,'xiaofuge',100301,100006,'693117324295',102,'OpenAI会员卡','2024-05-03 01:11:38','create','2024-05-03 09:11:38','2024-05-03 09:11:38'),
(111,'xiaofuge',100301,100006,'216557006872',107,'小霸王游戏机','2024-05-04 01:32:11','create','2024-05-04 09:32:10','2024-05-04 09:32:10'),
(112,'xiaofuge',100301,100006,'769208157430',105,'小米su7周体验','2024-05-04 01:42:11','create','2024-05-04 09:42:11','2024-05-04 09:42:11'),
(113,'xiaofuge',100301,100006,'122549611053',102,'OpenAI会员卡','2024-05-04 02:06:40','create','2024-05-04 10:06:40','2024-05-04 10:06:40'),
(114,'xiaofuge',100301,100006,'098077770962',102,'OpenAI会员卡','2024-05-04 02:07:37','create','2024-05-04 10:07:36','2024-05-04 10:07:36'),
(115,'xiaofuge',100301,100006,'783440464441',102,'OpenAI会员卡','2024-05-04 02:07:45','create','2024-05-04 10:07:44','2024-05-04 10:07:44'),
(116,'xiaofuge',100301,100006,'311741760661',102,'OpenAI会员卡','2024-05-04 02:15:21','create','2024-05-04 10:15:21','2024-05-04 10:15:21'),
(117,'xiaofuge',100301,100006,'882852499238',102,'OpenAI会员卡','2024-05-04 02:15:29','create','2024-05-04 10:15:29','2024-05-04 10:15:29'),
(118,'xiaofuge',100301,100006,'815259576049',102,'OpenAI会员卡','2024-05-04 02:16:51','create','2024-05-04 10:16:51','2024-05-04 10:16:51'),
(119,'xiaofuge',100301,100006,'398933081979',102,'OpenAI会员卡','2024-05-04 02:17:20','create','2024-05-04 10:17:19','2024-05-04 10:17:19'),
(120,'xiaofuge',100301,100006,'724477812186',102,'OpenAI会员卡','2024-05-04 02:18:09','create','2024-05-04 10:18:09','2024-05-04 10:18:09'),
(121,'xiaofuge',100301,100006,'963415104251',102,'OpenAI会员卡','2024-05-04 02:20:46','create','2024-05-04 10:20:46','2024-05-04 10:20:46'),
(122,'xiaofuge',100301,100006,'406832687477',102,'OpenAI会员卡','2024-05-04 02:20:54','create','2024-05-04 10:20:54','2024-05-04 10:20:54'),
(123,'xiaofuge',100301,100006,'683420026858',102,'OpenAI会员卡','2024-05-04 02:36:33','create','2024-05-04 10:36:32','2024-05-04 10:36:32'),
(124,'xiaofuge',100301,100006,'022379743786',102,'OpenAI会员卡','2024-05-04 02:37:25','create','2024-05-04 10:37:25','2024-05-04 10:37:25'),
(125,'xiaofuge',100301,100006,'005727284053',102,'OpenAI会员卡','2024-05-04 02:37:32','create','2024-05-04 10:37:32','2024-05-04 10:37:32'),
(126,'xiaofuge',100301,100006,'157097996505',102,'OpenAI会员卡','2024-05-04 02:37:40','create','2024-05-04 10:37:39','2024-05-04 10:37:39'),
(127,'xiaofuge',100301,100006,'286115274205',102,'OpenAI会员卡','2024-05-04 02:38:41','create','2024-05-04 10:38:41','2024-05-04 10:38:41'),
(128,'xiaofuge',100301,100006,'714442509117',102,'OpenAI会员卡','2024-05-04 02:38:49','create','2024-05-04 10:38:49','2024-05-04 10:38:49'),
(129,'xiaofuge',100301,100006,'124268508437',102,'OpenAI会员卡','2024-05-04 03:30:47','create','2024-05-04 11:30:47','2024-05-04 11:30:47'),
(130,'xiaofuge',100301,100006,'024028065395',102,'OpenAI会员卡','2024-05-04 03:40:10','create','2024-05-04 11:40:09','2024-05-04 11:40:09'),
(131,'xiaofuge',100301,100006,'011132554981',102,'OpenAI会员卡','2024-05-04 03:40:17','create','2024-05-04 11:40:17','2024-05-04 11:40:17'),
(132,'xiaofuge',100301,100006,'748409799526',103,'支付优惠券','2024-05-04 04:49:20','create','2024-05-04 12:49:20','2024-05-04 12:49:20'),
(133,'xiaofuge',100301,100006,'514483431161',105,'小米su7周体验','2024-05-04 04:49:30','create','2024-05-04 12:49:30','2024-05-04 12:49:30'),
(134,'xiaofuge',100301,100006,'401352928023',104,'小米台灯','2024-05-04 04:49:42','create','2024-05-04 12:49:42','2024-05-04 12:49:42'),
(135,'xiaofuge',100301,100006,'569764837195',104,'小米台灯','2024-05-04 04:50:36','create','2024-05-04 12:50:35','2024-05-04 12:50:35'),
(136,'xiaofuge',100301,100006,'653239020479',104,'小米台灯','2024-05-04 04:50:44','create','2024-05-04 12:50:44','2024-05-04 12:50:44'),
(137,'xiaofuge',100301,100006,'407172497549',107,'小霸王游戏机','2024-05-04 07:29:28','create','2024-05-04 15:29:28','2024-05-04 15:29:28'),
(138,'xiaofuge',100301,100006,'799188603085',106,'轻奢办公椅','2024-05-04 07:29:36','create','2024-05-04 15:29:35','2024-05-04 15:29:35'),
(139,'xiaofuge',100301,100006,'528987104958',107,'小霸王游戏机','2024-05-04 07:29:43','create','2024-05-04 15:29:42','2024-05-04 15:29:42'),
(140,'xiaofuge',100301,100006,'966648280772',106,'轻奢办公椅','2024-05-04 07:29:50','create','2024-05-04 15:29:49','2024-05-04 15:29:49'),
(141,'xiaofuge',100301,100006,'087190703146',107,'小霸王游戏机','2024-05-04 07:29:56','create','2024-05-04 15:29:56','2024-05-04 15:29:56'),
(142,'liergou',100301,100006,'844440368058',101,'随机积分','2024-05-04 07:30:36','create','2024-05-04 15:30:36','2024-05-04 15:30:36'),
(143,'liergou',100301,100006,'390787212758',104,'小米台灯','2024-05-04 07:31:17','create','2024-05-04 15:31:17','2024-05-04 15:31:17'),
(144,'liergou',100301,100006,'640363472357',103,'支付优惠券','2024-05-04 07:31:24','create','2024-05-04 15:31:24','2024-05-04 15:31:24'),
(145,'liergou',100301,100006,'974075965572',108,'暴走玩偶','2024-05-04 07:31:31','create','2024-05-04 15:31:31','2024-05-04 15:31:31'),
(146,'liergou',100301,100006,'682189502378',106,'轻奢办公椅','2024-05-04 07:31:38','create','2024-05-04 15:31:38','2024-05-04 15:31:38'),
(147,'liergou',100301,100006,'267171522488',104,'小米台灯','2024-05-04 07:31:45','create','2024-05-04 15:31:45','2024-05-04 15:31:45'),
(148,'liergou',100301,100006,'840617006609',107,'小霸王游戏机','2024-05-04 07:31:52','create','2024-05-04 15:31:51','2024-05-04 15:31:51'),
(149,'liergou',100301,100006,'412882808007',103,'支付优惠券','2024-05-04 07:32:00','create','2024-05-04 15:31:59','2024-05-04 15:31:59'),
(150,'liergou',100301,100006,'909193532035',101,'随机积分','2024-05-04 07:32:07','create','2024-05-04 15:32:06','2024-05-04 15:32:06'),
(151,'liergou',100301,100006,'941421834903',103,'支付优惠券','2024-05-04 07:32:13','create','2024-05-04 15:32:13','2024-05-04 15:32:13'),
(152,'liergou',100301,100006,'502088692031',103,'支付优惠券','2024-05-04 07:32:29','create','2024-05-04 15:32:29','2024-05-04 15:32:29'),
(153,'liergou',100301,100006,'983938339728',103,'支付优惠券','2024-05-04 07:32:36','create','2024-05-04 15:32:35','2024-05-04 15:32:35'),
(154,'liergou',100301,100006,'300359343610',103,'支付优惠券','2024-05-04 07:32:42','create','2024-05-04 15:32:42','2024-05-04 15:32:42'),
(155,'liergou',100301,100006,'205701271412',102,'OpenAI会员卡','2024-05-04 07:34:11','create','2024-05-04 15:34:10','2024-05-04 15:34:10');
/*!40000 ALTER TABLE `user_award_record_001` ENABLE KEYS */;
UNLOCK TABLES;
......@@ -516,6 +776,30 @@ CREATE TABLE `user_award_record_002` (
KEY `idx_award_id` (`strategy_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户中奖记录表';
LOCK TABLES `user_award_record_002` WRITE;
/*!40000 ALTER TABLE `user_award_record_002` DISABLE KEYS */;
INSERT INTO `user_award_record_002` (`id`, `user_id`, `activity_id`, `strategy_id`, `order_id`, `award_id`, `award_title`, `award_time`, `award_state`, `create_time`, `update_time`)
VALUES
(1,'liergou2',100301,100006,'319771078666',108,'暴走玩偶','2024-05-04 07:35:57','create','2024-05-04 15:35:56','2024-05-04 15:35:56'),
(2,'liergou2',100301,100006,'953580004772',101,'随机积分','2024-05-04 07:36:03','create','2024-05-04 15:36:03','2024-05-04 15:36:03'),
(3,'liergou2',100301,100006,'002033127656',103,'支付优惠券','2024-05-04 07:36:10','create','2024-05-04 15:36:10','2024-05-04 15:36:10'),
(4,'liergou2',100301,100006,'786106818681',101,'随机积分','2024-05-04 07:36:22','create','2024-05-04 15:36:22','2024-05-04 15:36:22'),
(5,'liergou2',100301,100006,'903521978453',101,'随机积分','2024-05-04 07:36:33','create','2024-05-04 15:36:32','2024-05-04 15:36:32'),
(6,'liergou2',100301,100006,'599563157264',104,'小米台灯','2024-05-04 07:36:40','create','2024-05-04 15:36:39','2024-05-04 15:36:39'),
(7,'liergou2',100301,100006,'236230739530',101,'随机积分','2024-05-04 07:36:47','create','2024-05-04 15:36:46','2024-05-04 15:36:46'),
(8,'liergou2',100301,100006,'284065292342',101,'随机积分','2024-05-04 07:36:53','create','2024-05-04 15:36:53','2024-05-04 15:36:53'),
(9,'liergou2',100301,100006,'667428166119',108,'暴走玩偶','2024-05-04 07:37:00','create','2024-05-04 15:36:59','2024-05-04 15:36:59'),
(10,'liergou2',100301,100006,'320484285041',103,'支付优惠券','2024-05-04 07:37:07','create','2024-05-04 15:37:06','2024-05-04 15:37:06'),
(11,'liergou2',100301,100006,'048048925549',102,'OpenAI会员卡','2024-05-04 07:37:13','create','2024-05-04 15:37:13','2024-05-04 15:37:13'),
(12,'liergou2',100301,100006,'536732336372',103,'支付优惠券','2024-05-04 07:37:21','create','2024-05-04 15:37:20','2024-05-04 15:37:20'),
(13,'liergou2',100301,100006,'378120929272',102,'OpenAI会员卡','2024-05-04 07:37:28','create','2024-05-04 15:37:28','2024-05-04 15:37:28'),
(14,'liergou2',100301,100006,'368599869327',102,'OpenAI会员卡','2024-05-04 07:37:38','create','2024-05-04 15:37:37','2024-05-04 15:37:37'),
(15,'user003',100301,100006,'248641902208',101,'随机积分','2024-05-25 02:53:20','completed','2024-05-25 10:53:20','2024-05-25 10:53:20'),
(16,'user003',100301,100006,'020196190863',101,'随机积分','2024-05-25 02:54:31','completed','2024-05-25 10:54:31','2024-05-25 10:54:31');
/*!40000 ALTER TABLE `user_award_record_002` ENABLE KEYS */;
UNLOCK TABLES;
# 转储表 user_award_record_003
......@@ -557,7 +841,8 @@ CREATE TABLE `user_behavior_rebate_order_000` (
`rebate_desc` varchar(128) NOT NULL COMMENT '返利描述',
`rebate_type` varchar(16) NOT NULL COMMENT '返利类型(sku 活动库存充值商品、integral 用户活动积分)',
`rebate_config` varchar(32) NOT NULL COMMENT '返利配置【sku值,积分值】',
`biz_id` varchar(64) NOT NULL COMMENT '业务ID - 拼接的唯一值',
`out_business_no` varchar(64) NOT NULL COMMENT '业务仿重ID - 外部透传,方便查询使用',
`biz_id` varchar(128) NOT NULL COMMENT '业务ID - 拼接的唯一值。拼接 out_business_no + 自身枚举',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
......@@ -581,7 +866,8 @@ CREATE TABLE `user_behavior_rebate_order_001` (
`rebate_desc` varchar(128) NOT NULL COMMENT '返利描述',
`rebate_type` varchar(16) NOT NULL COMMENT '返利类型(sku 活动库存充值商品、integral 用户活动积分)',
`rebate_config` varchar(32) NOT NULL COMMENT '返利配置【sku值,积分值】',
`biz_id` varchar(64) NOT NULL COMMENT '业务ID - 拼接的唯一值',
`out_business_no` varchar(64) NOT NULL COMMENT '业务仿重ID - 外部透传,方便查询使用',
`biz_id` varchar(128) NOT NULL COMMENT '业务ID - 拼接的唯一值。拼接 out_business_no + 自身枚举',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
......@@ -593,10 +879,12 @@ CREATE TABLE `user_behavior_rebate_order_001` (
LOCK TABLES `user_behavior_rebate_order_001` WRITE;
/*!40000 ALTER TABLE `user_behavior_rebate_order_001` DISABLE KEYS */;
INSERT INTO `user_behavior_rebate_order_001` (`id`, `user_id`, `order_id`, `behavior_type`, `rebate_desc`, `rebate_type`, `rebate_config`, `biz_id`, `create_time`, `update_time`)
INSERT INTO `user_behavior_rebate_order_001` (`id`, `user_id`, `order_id`, `behavior_type`, `rebate_desc`, `rebate_type`, `rebate_config`, `out_business_no`, `biz_id`, `create_time`, `update_time`)
VALUES
(1,'xiaofuge','833814327101','sign','签到返利','sku','9011','xiaofuge_sku_20240430','2024-04-30 18:01:32','2024-04-30 18:01:32'),
(3,'xiaofuge','509399206701','sign','签到返利-积分','integral','10','xiaofuge_integral_20240430','2024-04-30 18:05:44','2024-04-30 18:05:44');
(5,'xiaofuge','630841674684','sign','签到返利-sku额度','sku','9011','20240503','xiaofuge_sku_20240503','2024-05-03 13:28:42','2024-05-03 13:28:42'),
(6,'xiaofuge','552413408368','sign','签到返利-积分','integral','10','20240503','xiaofuge_integral_20240503','2024-05-03 13:28:42','2024-05-03 13:28:42'),
(33,'liergou','658660043956','sign','签到返利-sku额度','sku','9011','20240504','liergou_sku_20240504','2024-05-04 15:32:25','2024-05-04 15:32:25'),
(34,'liergou','659440313972','sign','签到返利-积分','integral','10','20240504','liergou_integral_20240504','2024-05-04 15:32:25','2024-05-04 15:32:25');
/*!40000 ALTER TABLE `user_behavior_rebate_order_001` ENABLE KEYS */;
UNLOCK TABLES;
......@@ -615,7 +903,8 @@ CREATE TABLE `user_behavior_rebate_order_002` (
`rebate_desc` varchar(128) NOT NULL COMMENT '返利描述',
`rebate_type` varchar(16) NOT NULL COMMENT '返利类型(sku 活动库存充值商品、integral 用户活动积分)',
`rebate_config` varchar(32) NOT NULL COMMENT '返利配置【sku值,积分值】',
`biz_id` varchar(64) NOT NULL COMMENT '业务ID - 拼接的唯一值',
`out_business_no` varchar(64) NOT NULL COMMENT '业务仿重ID - 外部透传,方便查询使用',
`biz_id` varchar(128) NOT NULL COMMENT '业务ID - 拼接的唯一值。拼接 out_business_no + 自身枚举',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
......@@ -624,6 +913,18 @@ CREATE TABLE `user_behavior_rebate_order_002` (
KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户行为返利流水订单表';
LOCK TABLES `user_behavior_rebate_order_002` WRITE;
/*!40000 ALTER TABLE `user_behavior_rebate_order_002` DISABLE KEYS */;
INSERT INTO `user_behavior_rebate_order_002` (`id`, `user_id`, `order_id`, `behavior_type`, `rebate_desc`, `rebate_type`, `rebate_config`, `out_business_no`, `biz_id`, `create_time`, `update_time`)
VALUES
(5,'liergou2','274252392446','sign','签到返利-sku额度','sku','9011','20240504','liergou2_sku_20240504','2024-05-04 15:35:52','2024-05-04 15:35:52'),
(6,'liergou2','687741770429','sign','签到返利-积分','integral','10','20240504','liergou2_integral_20240504','2024-05-04 15:35:52','2024-05-04 15:35:52'),
(7,'user003','317965139211','sign','签到返利-sku额度','sku','9011','20240525','user003_sku_20240525','2024-05-25 10:52:18','2024-05-25 10:52:18'),
(8,'user003','429627541291','sign','签到返利-积分','integral','10','20240525','user003_integral_20240525','2024-05-25 10:52:19','2024-05-25 10:52:19');
/*!40000 ALTER TABLE `user_behavior_rebate_order_002` ENABLE KEYS */;
UNLOCK TABLES;
# 转储表 user_behavior_rebate_order_003
......@@ -639,7 +940,8 @@ CREATE TABLE `user_behavior_rebate_order_003` (
`rebate_desc` varchar(128) NOT NULL COMMENT '返利描述',
`rebate_type` varchar(16) NOT NULL COMMENT '返利类型(sku 活动库存充值商品、integral 用户活动积分)',
`rebate_config` varchar(32) NOT NULL COMMENT '返利配置【sku值,积分值】',
`biz_id` varchar(64) NOT NULL COMMENT '业务ID - 拼接的唯一值',
`out_business_no` varchar(64) NOT NULL COMMENT '业务仿重ID - 外部透传,方便查询使用',
`biz_id` varchar(128) NOT NULL COMMENT '业务ID - 拼接的唯一值。拼接 out_business_no + 自身枚举',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
......@@ -650,6 +952,34 @@ CREATE TABLE `user_behavior_rebate_order_003` (
# 转储表 user_credit_account
# ------------------------------------------------------------
DROP TABLE IF EXISTS `user_credit_account`;
CREATE TABLE `user_credit_account` (
`id` bigint(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID',
`user_id` varchar(32) NOT NULL COMMENT '用户ID',
`total_amount` decimal(10,2) NOT NULL COMMENT '总积分,显示总账户值,记得一个人获得的总积分',
`available_amount` decimal(10,2) NOT NULL COMMENT '可用积分,每次扣减的值',
`account_status` varchar(8) NOT NULL COMMENT '账户状态【open - 可用,close - 冻结】',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户积分账户';
LOCK TABLES `user_credit_account` WRITE;
/*!40000 ALTER TABLE `user_credit_account` DISABLE KEYS */;
INSERT INTO `user_credit_account` (`id`, `user_id`, `total_amount`, `available_amount`, `account_status`, `create_time`, `update_time`)
VALUES
(1,'xiaofuge',52.19,52.19,'open','2024-05-24 22:11:59','2024-05-24 22:14:22'),
(2,'user003',0.96,0.96,'open','2024-05-25 10:53:20','2024-05-25 10:54:31');
/*!40000 ALTER TABLE `user_credit_account` ENABLE KEYS */;
UNLOCK TABLES;
# 转储表 user_raffle_order_000
# ------------------------------------------------------------
......@@ -745,7 +1075,77 @@ VALUES
(48,'xiaofuge',100301,'测试活动',100006,'410701479648','2024-04-27 05:39:18','used','2024-04-27 13:39:18','2024-04-27 13:39:18'),
(49,'xiaofuge',100301,'测试活动',100006,'521226371540','2024-04-27 06:59:56','used','2024-04-27 14:59:56','2024-04-27 14:59:56'),
(50,'xiaofuge',100301,'测试活动',100006,'167000751553','2024-04-27 07:00:14','used','2024-04-27 15:00:14','2024-04-27 15:00:14'),
(51,'xiaofuge',100301,'测试活动',100006,'685179511666','2024-04-27 07:00:23','used','2024-04-27 15:00:22','2024-04-27 15:00:22');
(51,'xiaofuge',100301,'测试活动',100006,'685179511666','2024-04-27 07:00:23','used','2024-04-27 15:00:22','2024-04-27 15:00:22'),
(52,'xiaofuge',100301,'测试活动',100006,'308424817839','2024-05-01 06:33:42','used','2024-05-01 14:33:43','2024-05-01 14:57:39'),
(53,'xiaofuge',100301,'测试活动',100006,'116865823300','2024-05-01 06:58:08','used','2024-05-01 14:58:08','2024-05-01 14:58:08'),
(54,'xiaofuge',100301,'测试活动',100006,'272157347851','2024-05-01 06:59:32','used','2024-05-01 14:59:32','2024-05-01 14:59:33'),
(55,'xiaofuge',100301,'测试活动',100006,'400772556300','2024-05-01 06:59:33','used','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(56,'xiaofuge',100301,'测试活动',100006,'494705137752','2024-05-01 06:59:33','used','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(57,'xiaofuge',100301,'测试活动',100006,'728609897262','2024-05-01 06:59:34','used','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(58,'xiaofuge',100301,'测试活动',100006,'085750418120','2024-05-01 06:59:34','used','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(59,'xiaofuge',100301,'测试活动',100006,'884615410376','2024-05-01 06:59:34','used','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(60,'xiaofuge',100301,'测试活动',100006,'380693771158','2024-05-01 06:59:34','used','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(61,'xiaofuge',100301,'测试活动',100006,'801793933954','2024-05-01 06:59:34','used','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(62,'xiaofuge',100301,'测试活动',100006,'153569048026','2024-05-01 06:59:34','used','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(63,'xiaofuge',100301,'测试活动',100006,'239541957386','2024-05-01 06:59:34','used','2024-05-01 14:59:33','2024-05-01 14:59:33'),
(64,'xiaofuge',100301,'测试活动',100006,'417247136950','2024-05-01 06:59:34','used','2024-05-01 14:59:33','2024-05-01 14:59:34'),
(65,'xiaofuge',100301,'测试活动',100006,'556248667355','2024-05-01 06:59:34','used','2024-05-01 14:59:34','2024-05-01 14:59:34'),
(66,'xiaofuge',100301,'测试活动',100006,'828955445464','2024-05-01 06:59:34','used','2024-05-01 14:59:34','2024-05-01 14:59:34'),
(67,'xiaofuge',100301,'测试活动',100006,'756110942449','2024-05-01 06:59:34','used','2024-05-01 14:59:34','2024-05-01 14:59:34'),
(68,'xiaofuge',100301,'测试活动',100006,'440069371435','2024-05-01 06:59:34','used','2024-05-01 14:59:34','2024-05-01 14:59:34'),
(69,'xiaofuge',100301,'测试活动',100006,'421594084633','2024-05-01 06:59:34','used','2024-05-01 14:59:34','2024-05-01 14:59:34'),
(70,'xiaofuge',100301,'测试活动',100006,'500905040429','2024-05-01 06:59:34','used','2024-05-01 14:59:34','2024-05-01 14:59:34'),
(71,'xiaofuge',100301,'测试活动',100006,'712386571628','2024-05-01 06:59:34','used','2024-05-01 14:59:34','2024-05-01 14:59:34'),
(72,'xiaofuge',100301,'测试活动',100006,'095923542021','2024-05-01 06:59:34','used','2024-05-01 14:59:34','2024-05-01 14:59:34'),
(73,'xiaofuge',100301,'测试活动',100006,'306233708878','2024-05-03 01:00:27','used','2024-05-03 09:00:28','2024-05-03 09:02:17'),
(74,'xiaofuge',100301,'测试活动',100006,'690124733440','2024-05-03 01:09:42','used','2024-05-03 09:09:42','2024-05-03 09:09:57'),
(75,'xiaofuge',100301,'测试活动',100006,'190487161872','2024-05-03 01:10:28','used','2024-05-03 09:10:28','2024-05-03 09:10:35'),
(76,'xiaofuge',100301,'测试活动',100006,'693117324295','2024-05-03 01:11:32','used','2024-05-03 09:11:32','2024-05-03 09:11:38'),
(77,'xiaofuge',100301,'测试活动',100006,'216557006872','2024-05-04 01:32:02','used','2024-05-04 09:32:02','2024-05-04 09:32:10'),
(78,'xiaofuge',100301,'测试活动',100006,'769208157430','2024-05-04 01:42:11','used','2024-05-04 09:42:11','2024-05-04 09:42:11'),
(79,'xiaofuge',100301,'测试活动',100006,'122549611053','2024-05-04 02:06:40','used','2024-05-04 10:06:40','2024-05-04 10:06:40'),
(80,'xiaofuge',100301,'测试活动',100006,'098077770962','2024-05-04 02:07:37','used','2024-05-04 10:07:36','2024-05-04 10:07:36'),
(81,'xiaofuge',100301,'测试活动',100006,'783440464441','2024-05-04 02:07:45','used','2024-05-04 10:07:44','2024-05-04 10:07:44'),
(82,'xiaofuge',100301,'测试活动',100006,'311741760661','2024-05-04 02:15:21','used','2024-05-04 10:15:21','2024-05-04 10:15:21'),
(83,'xiaofuge',100301,'测试活动',100006,'882852499238','2024-05-04 02:15:29','used','2024-05-04 10:15:29','2024-05-04 10:15:29'),
(84,'xiaofuge',100301,'测试活动',100006,'815259576049','2024-05-04 02:16:51','used','2024-05-04 10:16:51','2024-05-04 10:16:51'),
(85,'xiaofuge',100301,'测试活动',100006,'398933081979','2024-05-04 02:17:20','used','2024-05-04 10:17:19','2024-05-04 10:17:19'),
(86,'xiaofuge',100301,'测试活动',100006,'724477812186','2024-05-04 02:18:09','used','2024-05-04 10:18:09','2024-05-04 10:18:09'),
(87,'xiaofuge',100301,'测试活动',100006,'963415104251','2024-05-04 02:20:46','used','2024-05-04 10:20:46','2024-05-04 10:20:46'),
(88,'xiaofuge',100301,'测试活动',100006,'406832687477','2024-05-04 02:20:54','used','2024-05-04 10:20:54','2024-05-04 10:20:54'),
(89,'xiaofuge',100301,'测试活动',100006,'683420026858','2024-05-04 02:36:33','used','2024-05-04 10:36:32','2024-05-04 10:36:32'),
(90,'xiaofuge',100301,'测试活动',100006,'022379743786','2024-05-04 02:37:25','used','2024-05-04 10:37:25','2024-05-04 10:37:25'),
(91,'xiaofuge',100301,'测试活动',100006,'005727284053','2024-05-04 02:37:32','used','2024-05-04 10:37:32','2024-05-04 10:37:32'),
(92,'xiaofuge',100301,'测试活动',100006,'157097996505','2024-05-04 02:37:40','used','2024-05-04 10:37:39','2024-05-04 10:37:39'),
(93,'xiaofuge',100301,'测试活动',100006,'286115274205','2024-05-04 02:38:41','used','2024-05-04 10:38:41','2024-05-04 10:38:41'),
(94,'xiaofuge',100301,'测试活动',100006,'714442509117','2024-05-04 02:38:49','used','2024-05-04 10:38:49','2024-05-04 10:38:49'),
(95,'xiaofuge',100301,'测试活动',100006,'124268508437','2024-05-04 03:30:47','used','2024-05-04 11:30:47','2024-05-04 11:30:47'),
(96,'xiaofuge',100301,'测试活动',100006,'024028065395','2024-05-04 03:40:10','used','2024-05-04 11:40:09','2024-05-04 11:40:09'),
(97,'xiaofuge',100301,'测试活动',100006,'011132554981','2024-05-04 03:40:17','used','2024-05-04 11:40:16','2024-05-04 11:40:17'),
(98,'xiaofuge',100301,'测试活动',100006,'748409799526','2024-05-04 04:49:12','used','2024-05-04 12:49:11','2024-05-04 12:49:20'),
(99,'xiaofuge',100301,'测试活动',100006,'514483431161','2024-05-04 04:49:30','used','2024-05-04 12:49:30','2024-05-04 12:49:30'),
(100,'xiaofuge',100301,'测试活动',100006,'401352928023','2024-05-04 04:49:42','used','2024-05-04 12:49:42','2024-05-04 12:49:42'),
(101,'xiaofuge',100301,'测试活动',100006,'569764837195','2024-05-04 04:50:36','used','2024-05-04 12:50:35','2024-05-04 12:50:35'),
(102,'xiaofuge',100301,'测试活动',100006,'653239020479','2024-05-04 04:50:44','used','2024-05-04 12:50:44','2024-05-04 12:50:44'),
(103,'xiaofuge',100301,'测试活动',100006,'407172497549','2024-05-04 07:29:28','used','2024-05-04 15:29:28','2024-05-04 15:29:28'),
(104,'xiaofuge',100301,'测试活动',100006,'799188603085','2024-05-04 07:29:36','used','2024-05-04 15:29:35','2024-05-04 15:29:35'),
(105,'xiaofuge',100301,'测试活动',100006,'528987104958','2024-05-04 07:29:43','used','2024-05-04 15:29:42','2024-05-04 15:29:43'),
(106,'xiaofuge',100301,'测试活动',100006,'966648280772','2024-05-04 07:29:50','used','2024-05-04 15:29:49','2024-05-04 15:29:49'),
(107,'xiaofuge',100301,'测试活动',100006,'087190703146','2024-05-04 07:29:56','used','2024-05-04 15:29:56','2024-05-04 15:29:56'),
(108,'liergou',100301,'测试活动',100006,'844440368058','2024-05-04 07:30:36','used','2024-05-04 15:30:36','2024-05-04 15:30:36'),
(109,'liergou',100301,'测试活动',100006,'390787212758','2024-05-04 07:31:17','used','2024-05-04 15:31:17','2024-05-04 15:31:17'),
(110,'liergou',100301,'测试活动',100006,'640363472357','2024-05-04 07:31:24','used','2024-05-04 15:31:24','2024-05-04 15:31:24'),
(111,'liergou',100301,'测试活动',100006,'974075965572','2024-05-04 07:31:31','used','2024-05-04 15:31:31','2024-05-04 15:31:31'),
(112,'liergou',100301,'测试活动',100006,'682189502378','2024-05-04 07:31:38','used','2024-05-04 15:31:38','2024-05-04 15:31:38'),
(113,'liergou',100301,'测试活动',100006,'267171522488','2024-05-04 07:31:45','used','2024-05-04 15:31:44','2024-05-04 15:31:45'),
(114,'liergou',100301,'测试活动',100006,'840617006609','2024-05-04 07:31:52','used','2024-05-04 15:31:51','2024-05-04 15:31:51'),
(115,'liergou',100301,'测试活动',100006,'412882808007','2024-05-04 07:31:59','used','2024-05-04 15:31:59','2024-05-04 15:31:59'),
(116,'liergou',100301,'测试活动',100006,'909193532035','2024-05-04 07:32:06','used','2024-05-04 15:32:06','2024-05-04 15:32:06'),
(117,'liergou',100301,'测试活动',100006,'941421834903','2024-05-04 07:32:13','used','2024-05-04 15:32:13','2024-05-04 15:32:13'),
(118,'liergou',100301,'测试活动',100006,'502088692031','2024-05-04 07:32:29','used','2024-05-04 15:32:29','2024-05-04 15:32:29'),
(119,'liergou',100301,'测试活动',100006,'983938339728','2024-05-04 07:32:36','used','2024-05-04 15:32:35','2024-05-04 15:32:35'),
(120,'liergou',100301,'测试活动',100006,'300359343610','2024-05-04 07:32:42','used','2024-05-04 15:32:42','2024-05-04 15:32:42'),
(121,'liergou',100301,'测试活动',100006,'205701271412','2024-05-04 07:34:11','used','2024-05-04 15:34:10','2024-05-04 15:34:10');
/*!40000 ALTER TABLE `user_raffle_order_001` ENABLE KEYS */;
UNLOCK TABLES;
......@@ -772,6 +1172,30 @@ CREATE TABLE `user_raffle_order_002` (
KEY `idx_user_id_activity_id` (`user_id`,`activity_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户抽奖订单表';
LOCK TABLES `user_raffle_order_002` WRITE;
/*!40000 ALTER TABLE `user_raffle_order_002` DISABLE KEYS */;
INSERT INTO `user_raffle_order_002` (`id`, `user_id`, `activity_id`, `activity_name`, `strategy_id`, `order_id`, `order_time`, `order_state`, `create_time`, `update_time`)
VALUES
(1,'liergou2',100301,'测试活动',100006,'319771078666','2024-05-04 07:35:56','used','2024-05-04 15:35:56','2024-05-04 15:35:56'),
(2,'liergou2',100301,'测试活动',100006,'953580004772','2024-05-04 07:36:03','used','2024-05-04 15:36:03','2024-05-04 15:36:03'),
(3,'liergou2',100301,'测试活动',100006,'002033127656','2024-05-04 07:36:10','used','2024-05-04 15:36:10','2024-05-04 15:36:10'),
(4,'liergou2',100301,'测试活动',100006,'786106818681','2024-05-04 07:36:22','used','2024-05-04 15:36:21','2024-05-04 15:36:22'),
(5,'liergou2',100301,'测试活动',100006,'903521978453','2024-05-04 07:36:33','used','2024-05-04 15:36:32','2024-05-04 15:36:32'),
(6,'liergou2',100301,'测试活动',100006,'599563157264','2024-05-04 07:36:40','used','2024-05-04 15:36:39','2024-05-04 15:36:39'),
(7,'liergou2',100301,'测试活动',100006,'236230739530','2024-05-04 07:36:47','used','2024-05-04 15:36:46','2024-05-04 15:36:46'),
(8,'liergou2',100301,'测试活动',100006,'284065292342','2024-05-04 07:36:53','used','2024-05-04 15:36:53','2024-05-04 15:36:53'),
(9,'liergou2',100301,'测试活动',100006,'667428166119','2024-05-04 07:37:00','used','2024-05-04 15:36:59','2024-05-04 15:36:59'),
(10,'liergou2',100301,'测试活动',100006,'320484285041','2024-05-04 07:37:06','used','2024-05-04 15:37:06','2024-05-04 15:37:06'),
(11,'liergou2',100301,'测试活动',100006,'048048925549','2024-05-04 07:37:13','used','2024-05-04 15:37:13','2024-05-04 15:37:13'),
(12,'liergou2',100301,'测试活动',100006,'536732336372','2024-05-04 07:37:21','used','2024-05-04 15:37:20','2024-05-04 15:37:20'),
(13,'liergou2',100301,'测试活动',100006,'378120929272','2024-05-04 07:37:28','used','2024-05-04 15:37:28','2024-05-04 15:37:28'),
(14,'liergou2',100301,'测试活动',100006,'368599869327','2024-05-04 07:37:38','used','2024-05-04 15:37:37','2024-05-04 15:37:37'),
(15,'user003',100301,'测试活动',100006,'248641902208','2024-05-25 02:53:19','used','2024-05-25 10:53:19','2024-05-25 10:53:20'),
(16,'user003',100301,'测试活动',100006,'020196190863','2024-05-25 02:54:30','used','2024-05-25 10:54:30','2024-05-25 10:54:31');
/*!40000 ALTER TABLE `user_raffle_order_002` ENABLE KEYS */;
UNLOCK TABLES;
# 转储表 user_raffle_order_003
......
......@@ -7,7 +7,7 @@
#
# 主机: 127.0.0.1 (MySQL 5.6.39)
# 数据库: big_market_02
# 生成时间: 2024-04-30 10:18:59 +0000
# 生成时间: 2024-05-25 02:56:37 +0000
# ************************************************************
......@@ -48,7 +48,11 @@ LOCK TABLES `raffle_activity_account` WRITE;
INSERT INTO `raffle_activity_account` (`id`, `user_id`, `activity_id`, `total_count`, `total_count_surplus`, `day_count`, `day_count_surplus`, `month_count`, `month_count_surplus`, `create_time`, `update_time`)
VALUES
(2,'xiaofuge',100301,4,3,4,3,4,3,'2024-03-23 12:40:56','2024-03-23 13:16:40');
(2,'xiaofuge',100301,4,3,4,3,4,3,'2024-03-23 12:40:56','2024-03-23 13:16:40'),
(3,'xiaofuge1',100301,10,9,10,9,10,9,'2024-05-03 16:01:44','2024-05-04 12:51:32'),
(4,'xiaofuge2',100301,20,5,20,5,20,5,'2024-05-04 12:52:58','2024-05-04 13:57:32'),
(5,'user001',100301,100,96,100,96,100,96,'2024-05-24 22:30:54','2024-05-24 22:34:37'),
(6,'user002',100301,100,100,100,100,100,100,'2024-05-24 22:30:54','2024-05-24 22:30:54');
/*!40000 ALTER TABLE `raffle_activity_account` ENABLE KEYS */;
UNLOCK TABLES;
......@@ -72,6 +76,17 @@ CREATE TABLE `raffle_activity_account_day` (
UNIQUE KEY `uq_user_id_activity_id_day` (`user_id`,`activity_id`,`day`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='抽奖活动账户表-日次数';
LOCK TABLES `raffle_activity_account_day` WRITE;
/*!40000 ALTER TABLE `raffle_activity_account_day` DISABLE KEYS */;
INSERT INTO `raffle_activity_account_day` (`id`, `user_id`, `activity_id`, `day`, `day_count`, `day_count_surplus`, `create_time`, `update_time`)
VALUES
(1,'xiaofuge1',100301,'2024-05-04',10,9,'2024-05-04 12:51:32','2024-05-04 12:51:32'),
(2,'xiaofuge2',100301,'2024-05-04',20,5,'2024-05-04 12:53:01','2024-05-04 13:57:32'),
(3,'user001',100301,'2024-05-24',100,96,'2024-05-24 22:31:47','2024-05-24 22:34:37');
/*!40000 ALTER TABLE `raffle_activity_account_day` ENABLE KEYS */;
UNLOCK TABLES;
# 转储表 raffle_activity_account_month
......@@ -92,6 +107,17 @@ CREATE TABLE `raffle_activity_account_month` (
UNIQUE KEY `uq_user_id_activity_id_month` (`user_id`,`activity_id`,`month`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='抽奖活动账户表-月次数';
LOCK TABLES `raffle_activity_account_month` WRITE;
/*!40000 ALTER TABLE `raffle_activity_account_month` DISABLE KEYS */;
INSERT INTO `raffle_activity_account_month` (`id`, `user_id`, `activity_id`, `month`, `month_count`, `month_count_surplus`, `create_time`, `update_time`)
VALUES
(1,'xiaofuge1',100301,'2024-05',10,9,'2024-05-04 12:51:32','2024-05-04 12:51:32'),
(2,'xiaofuge2',100301,'2024-05',20,5,'2024-05-04 12:53:01','2024-05-04 13:57:32'),
(3,'user001',100301,'2024-05',100,96,'2024-05-24 22:31:47','2024-05-24 22:34:37');
/*!40000 ALTER TABLE `raffle_activity_account_month` ENABLE KEYS */;
UNLOCK TABLES;
# 转储表 raffle_activity_order_000
......@@ -121,6 +147,16 @@ CREATE TABLE `raffle_activity_order_000` (
KEY `idx_user_id_activity_id` (`user_id`,`activity_id`,`state`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='抽奖活动单';
LOCK TABLES `raffle_activity_order_000` WRITE;
/*!40000 ALTER TABLE `raffle_activity_order_000` DISABLE KEYS */;
INSERT INTO `raffle_activity_order_000` (`id`, `user_id`, `sku`, `activity_id`, `activity_name`, `strategy_id`, `order_id`, `order_time`, `total_count`, `day_count`, `month_count`, `state`, `out_business_no`, `create_time`, `update_time`)
VALUES
(1,'xiaofuge1',9011,100301,'测试活动',100006,'831917125310','2024-05-03 08:01:44',10,10,10,'completed','xiaofuge1_sku_20240503','2024-05-03 16:01:44','2024-05-03 16:01:44'),
(2,'user001',9011,100301,'测试活动',100006,'923549663927','2024-05-24 14:30:55',100,100,100,'completed','user001_sku_20240524','2024-05-24 22:30:54','2024-05-24 22:30:54');
/*!40000 ALTER TABLE `raffle_activity_order_000` ENABLE KEYS */;
UNLOCK TABLES;
# 转储表 raffle_activity_order_001
......@@ -155,7 +191,8 @@ LOCK TABLES `raffle_activity_order_001` WRITE;
INSERT INTO `raffle_activity_order_001` (`id`, `user_id`, `sku`, `activity_id`, `activity_name`, `strategy_id`, `order_id`, `order_time`, `total_count`, `day_count`, `month_count`, `state`, `out_business_no`, `create_time`, `update_time`)
VALUES
(3,'xiaofuge',9011,100301,'测试活动',100006,'383240888158','2024-03-23 04:38:23',1,1,1,'completed','700091009111','2024-03-23 12:38:23','2024-03-23 12:38:23');
(3,'xiaofuge',9011,100301,'测试活动',100006,'383240888158','2024-03-23 04:38:23',1,1,1,'completed','700091009111','2024-03-23 12:38:23','2024-03-23 12:38:23'),
(4,'user002',9011,100301,'测试活动',100006,'165083654323','2024-05-24 14:30:55',100,100,100,'completed','user002_sku_20240524','2024-05-24 22:30:54','2024-05-24 22:30:54');
/*!40000 ALTER TABLE `raffle_activity_order_001` ENABLE KEYS */;
UNLOCK TABLES;
......@@ -217,6 +254,15 @@ CREATE TABLE `raffle_activity_order_003` (
KEY `idx_user_id_activity_id` (`user_id`,`activity_id`,`state`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='抽奖活动单';
LOCK TABLES `raffle_activity_order_003` WRITE;
/*!40000 ALTER TABLE `raffle_activity_order_003` DISABLE KEYS */;
INSERT INTO `raffle_activity_order_003` (`id`, `user_id`, `sku`, `activity_id`, `activity_name`, `strategy_id`, `order_id`, `order_time`, `total_count`, `day_count`, `month_count`, `state`, `out_business_no`, `create_time`, `update_time`)
VALUES
(2,'xiaofuge2',9011,100301,'测试活动',100006,'942458887115','2024-05-04 05:07:53',10,10,10,'completed','xiaofuge2_sku_20240504','2024-05-04 13:07:53','2024-05-04 13:07:53');
/*!40000 ALTER TABLE `raffle_activity_order_003` ENABLE KEYS */;
UNLOCK TABLES;
# 转储表 task
......@@ -239,6 +285,44 @@ CREATE TABLE `task` (
KEY `idx_create_time` (`update_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='任务表,发送MQ';
LOCK TABLES `task` WRITE;
/*!40000 ALTER TABLE `task` DISABLE KEYS */;
INSERT INTO `task` (`id`, `user_id`, `topic`, `message_id`, `message`, `state`, `create_time`, `update_time`)
VALUES
(1,'xiaofuge1','send_rebate','54825531405','{\"data\":{\"bizId\":\"xiaofuge1_sku_20240503\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"xiaofuge1\"},\"id\":\"54825531405\",\"timestamp\":1714723302543}','completed','2024-05-03 16:01:43','2024-05-03 16:01:43'),
(2,'xiaofuge1','send_rebate','43189560552','{\"data\":{\"bizId\":\"xiaofuge1_integral_20240503\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"xiaofuge1\"},\"id\":\"43189560552\",\"timestamp\":1714723302551}','completed','2024-05-03 16:01:43','2024-05-03 16:01:43'),
(3,'xiaofuge1','send_award','68594836687','{\"data\":{\"awardId\":104,\"awardTitle\":\"小米台灯\",\"userId\":\"xiaofuge1\"},\"id\":\"68594836687\",\"timestamp\":1714798292665}','completed','2024-05-04 12:51:32','2024-05-04 12:51:32'),
(4,'xiaofuge2','send_rebate','99573670989','{\"data\":{\"bizId\":\"xiaofuge2_sku_20240504\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"xiaofuge2\"},\"id\":\"99573670989\",\"timestamp\":1714798377892}','completed','2024-05-04 12:52:57','2024-05-04 12:52:57'),
(5,'xiaofuge2','send_rebate','86991437226','{\"data\":{\"bizId\":\"xiaofuge2_integral_20240504\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"xiaofuge2\"},\"id\":\"86991437226\",\"timestamp\":1714798377895}','completed','2024-05-04 12:52:57','2024-05-04 12:52:57'),
(6,'xiaofuge2','send_award','81688408328','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"xiaofuge2\"},\"id\":\"81688408328\",\"timestamp\":1714798382103}','completed','2024-05-04 12:53:02','2024-05-04 12:53:02'),
(7,'xiaofuge2','send_award','42907626790','{\"data\":{\"awardId\":104,\"awardTitle\":\"小米台灯\",\"userId\":\"xiaofuge2\"},\"id\":\"42907626790\",\"timestamp\":1714798722679}','completed','2024-05-04 12:58:42','2024-05-04 12:58:42'),
(8,'xiaofuge2','send_award','85155176747','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"xiaofuge2\"},\"id\":\"85155176747\",\"timestamp\":1714798808373}','completed','2024-05-04 13:00:08','2024-05-04 13:00:08'),
(9,'xiaofuge2','send_award','76843118145','{\"data\":{\"awardId\":101,\"awardTitle\":\"随机积分\",\"userId\":\"xiaofuge2\"},\"id\":\"76843118145\",\"timestamp\":1714799138341}','completed','2024-05-04 13:05:38','2024-05-04 13:05:38'),
(10,'xiaofuge2','send_award','60195171213','{\"data\":{\"awardId\":101,\"awardTitle\":\"随机积分\",\"userId\":\"xiaofuge2\"},\"id\":\"60195171213\",\"timestamp\":1714799145979}','completed','2024-05-04 13:05:45','2024-05-04 13:05:45'),
(11,'xiaofuge2','send_award','94121994871','{\"data\":{\"awardId\":106,\"awardTitle\":\"轻奢办公椅\",\"userId\":\"xiaofuge2\"},\"id\":\"94121994871\",\"timestamp\":1714799152785}','completed','2024-05-04 13:05:52','2024-05-04 13:05:52'),
(12,'xiaofuge2','send_award','84058820142','{\"data\":{\"awardId\":108,\"awardTitle\":\"暴走玩偶\",\"userId\":\"xiaofuge2\"},\"id\":\"84058820142\",\"timestamp\":1714799159912}','completed','2024-05-04 13:05:59','2024-05-04 13:05:59'),
(13,'xiaofuge2','send_award','43171330176','{\"data\":{\"awardId\":107,\"awardTitle\":\"小霸王游戏机\",\"userId\":\"xiaofuge2\"},\"id\":\"43171330176\",\"timestamp\":1714799166780}','completed','2024-05-04 13:06:06','2024-05-04 13:06:06'),
(14,'xiaofuge2','send_award','84240245488','{\"data\":{\"awardId\":108,\"awardTitle\":\"暴走玩偶\",\"userId\":\"xiaofuge2\"},\"id\":\"84240245488\",\"timestamp\":1714799177736}','completed','2024-05-04 13:06:17','2024-05-04 13:06:17'),
(15,'xiaofuge2','send_award','95184575016','{\"data\":{\"awardId\":103,\"awardTitle\":\"支付优惠券\",\"userId\":\"xiaofuge2\"},\"id\":\"95184575016\",\"timestamp\":1714799184841}','completed','2024-05-04 13:06:24','2024-05-04 13:06:24'),
(16,'xiaofuge2','send_rebate','18731063175','{\"data\":{\"bizId\":\"xiaofuge2_sku_20240504\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"xiaofuge2\"},\"id\":\"18731063175\",\"timestamp\":1714799273317}','completed','2024-05-04 13:07:53','2024-05-04 13:07:53'),
(17,'xiaofuge2','send_rebate','55910936496','{\"data\":{\"bizId\":\"xiaofuge2_integral_20240504\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"xiaofuge2\"},\"id\":\"55910936496\",\"timestamp\":1714799273318}','completed','2024-05-04 13:07:53','2024-05-04 13:07:53'),
(18,'xiaofuge2','send_award','62395221004','{\"data\":{\"awardId\":103,\"awardTitle\":\"支付优惠券\",\"userId\":\"xiaofuge2\"},\"id\":\"62395221004\",\"timestamp\":1714799286429}','completed','2024-05-04 13:08:06','2024-05-04 13:08:06'),
(19,'xiaofuge2','send_award','82372459539','{\"data\":{\"awardId\":103,\"awardTitle\":\"支付优惠券\",\"userId\":\"xiaofuge2\"},\"id\":\"82372459539\",\"timestamp\":1714802223761}','completed','2024-05-04 13:57:03','2024-05-04 13:57:03'),
(20,'xiaofuge2','send_award','56572252891','{\"data\":{\"awardId\":103,\"awardTitle\":\"支付优惠券\",\"userId\":\"xiaofuge2\"},\"id\":\"56572252891\",\"timestamp\":1714802231616}','completed','2024-05-04 13:57:11','2024-05-04 13:57:11'),
(21,'xiaofuge2','send_award','40606839519','{\"data\":{\"awardId\":103,\"awardTitle\":\"支付优惠券\",\"userId\":\"xiaofuge2\"},\"id\":\"40606839519\",\"timestamp\":1714802240195}','completed','2024-05-04 13:57:20','2024-05-04 13:57:20'),
(22,'xiaofuge2','send_award','99508680162','{\"data\":{\"awardId\":102,\"awardTitle\":\"OpenAI会员卡\",\"userId\":\"xiaofuge2\"},\"id\":\"99508680162\",\"timestamp\":1714802252287}','completed','2024-05-04 13:57:32','2024-05-04 13:57:32'),
(23,'user001','send_rebate','73773124323','{\"data\":{\"bizId\":\"user001_sku_20240524\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"user001\"},\"id\":\"73773124323\",\"timestamp\":1716560709722}','completed','2024-05-24 22:25:09','2024-05-24 22:25:10'),
(24,'user001','send_rebate','02391103632','{\"data\":{\"bizId\":\"user001_integral_20240524\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"user001\"},\"id\":\"02391103632\",\"timestamp\":1716560709725}','completed','2024-05-24 22:25:09','2024-05-24 22:25:10'),
(25,'user002','send_rebate','49594929112','{\"data\":{\"bizId\":\"user002_sku_20240524\",\"rebateConfig\":\"9011\",\"rebateType\":\"sku\",\"userId\":\"user002\"},\"id\":\"49594929112\",\"timestamp\":1716560951288}','completed','2024-05-24 22:29:11','2024-05-24 22:29:11'),
(26,'user002','send_rebate','57121773264','{\"data\":{\"bizId\":\"user002_integral_20240524\",\"rebateConfig\":\"10\",\"rebateType\":\"integral\",\"userId\":\"user002\"},\"id\":\"57121773264\",\"timestamp\":1716560951292}','completed','2024-05-24 22:29:11','2024-05-24 22:29:11'),
(27,'user001','send_award','97971125221','{\"data\":{\"awardConfig\":\"0.01,1\",\"awardId\":101,\"awardTitle\":\"随机积分\",\"orderId\":\"391668886086\",\"userId\":\"user001\"},\"id\":\"97971125221\",\"timestamp\":1716561114657}','completed','2024-05-24 22:31:55','2024-05-24 22:31:55'),
(28,'user001','send_award','89552334625','{\"data\":{\"awardConfig\":\"0.01,1\",\"awardId\":101,\"awardTitle\":\"随机积分\",\"orderId\":\"179191128326\",\"userId\":\"user001\"},\"id\":\"89552334625\",\"timestamp\":1716561182606}','completed','2024-05-24 22:33:02','2024-05-24 22:33:02'),
(29,'user001','send_award','12743392424','{\"data\":{\"awardConfig\":\"0.01,1\",\"awardId\":101,\"awardTitle\":\"随机积分\",\"orderId\":\"320625987421\",\"userId\":\"user001\"},\"id\":\"12743392424\",\"timestamp\":1716561244275}','completed','2024-05-24 22:34:04','2024-05-24 22:34:04'),
(30,'user001','send_award','50175032521','{\"data\":{\"awardConfig\":\"0.01,1\",\"awardId\":101,\"awardTitle\":\"随机积分\",\"orderId\":\"290879207548\",\"userId\":\"user001\"},\"id\":\"50175032521\",\"timestamp\":1716561277990}','completed','2024-05-24 22:34:38','2024-05-24 22:34:38');
/*!40000 ALTER TABLE `task` ENABLE KEYS */;
UNLOCK TABLES;
# 转储表 user_award_record_000
......@@ -265,6 +349,19 @@ CREATE TABLE `user_award_record_000` (
KEY `idx_award_id` (`strategy_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户中奖记录表';
LOCK TABLES `user_award_record_000` WRITE;
/*!40000 ALTER TABLE `user_award_record_000` DISABLE KEYS */;
INSERT INTO `user_award_record_000` (`id`, `user_id`, `activity_id`, `strategy_id`, `order_id`, `award_id`, `award_title`, `award_time`, `award_state`, `create_time`, `update_time`)
VALUES
(1,'xiaofuge1',100301,100006,'386938913572',104,'小米台灯','2024-05-04 04:51:33','create','2024-05-04 12:51:32','2024-05-04 12:51:32'),
(2,'user001',100301,100006,'391668886086',101,'随机积分','2024-05-24 14:31:47','create','2024-05-24 22:31:55','2024-05-24 22:31:55'),
(3,'user001',100301,100006,'179191128326',101,'随机积分','2024-05-24 14:33:03','create','2024-05-24 22:33:02','2024-05-24 22:33:02'),
(4,'user001',100301,100006,'320625987421',101,'随机积分','2024-05-24 14:34:02','completed','2024-05-24 22:34:04','2024-05-24 22:34:19'),
(5,'user001',100301,100006,'290879207548',101,'随机积分','2024-05-24 14:34:38','completed','2024-05-24 22:34:38','2024-05-24 22:34:38');
/*!40000 ALTER TABLE `user_award_record_000` ENABLE KEYS */;
UNLOCK TABLES;
# 转储表 user_award_record_001
......@@ -343,14 +440,37 @@ CREATE TABLE `user_award_record_003` (
KEY `idx_award_id` (`strategy_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户中奖记录表';
LOCK TABLES `user_award_record_003` WRITE;
/*!40000 ALTER TABLE `user_award_record_003` DISABLE KEYS */;
INSERT INTO `user_award_record_003` (`id`, `user_id`, `activity_id`, `strategy_id`, `order_id`, `award_id`, `award_title`, `award_time`, `award_state`, `create_time`, `update_time`)
VALUES
(1,'xiaofuge2',100301,100006,'809920093949',102,'OpenAI会员卡','2024-05-04 04:53:02','create','2024-05-04 12:53:02','2024-05-04 12:53:02'),
(2,'xiaofuge2',100301,100006,'613575974630',104,'小米台灯','2024-05-04 04:58:43','create','2024-05-04 12:58:42','2024-05-04 12:58:42'),
(3,'xiaofuge2',100301,100006,'632802870481',102,'OpenAI会员卡','2024-05-04 05:00:08','create','2024-05-04 13:00:08','2024-05-04 13:00:08'),
(4,'xiaofuge2',100301,100006,'972433161890',101,'随机积分','2024-05-04 05:05:38','create','2024-05-04 13:05:38','2024-05-04 13:05:38'),
(5,'xiaofuge2',100301,100006,'877507315775',101,'随机积分','2024-05-04 05:05:46','create','2024-05-04 13:05:45','2024-05-04 13:05:45'),
(6,'xiaofuge2',100301,100006,'517301751417',106,'轻奢办公椅','2024-05-04 05:05:53','create','2024-05-04 13:05:52','2024-05-04 13:05:52'),
(7,'xiaofuge2',100301,100006,'261932434171',108,'暴走玩偶','2024-05-04 05:06:00','create','2024-05-04 13:05:59','2024-05-04 13:05:59'),
(8,'xiaofuge2',100301,100006,'700573379547',107,'小霸王游戏机','2024-05-04 05:06:07','create','2024-05-04 13:06:06','2024-05-04 13:06:06'),
(9,'xiaofuge2',100301,100006,'105697168349',108,'暴走玩偶','2024-05-04 05:06:18','create','2024-05-04 13:06:17','2024-05-04 13:06:17'),
(10,'xiaofuge2',100301,100006,'959233180689',103,'支付优惠券','2024-05-04 05:06:25','create','2024-05-04 13:06:24','2024-05-04 13:06:24'),
(11,'xiaofuge2',100301,100006,'958431976534',103,'支付优惠券','2024-05-04 05:08:06','create','2024-05-04 13:08:06','2024-05-04 13:08:06'),
(12,'xiaofuge2',100301,100006,'014341440837',103,'支付优惠券','2024-05-04 05:57:04','create','2024-05-04 13:57:03','2024-05-04 13:57:03'),
(13,'xiaofuge2',100301,100006,'104619821752',103,'支付优惠券','2024-05-04 05:57:12','create','2024-05-04 13:57:11','2024-05-04 13:57:11'),
(14,'xiaofuge2',100301,100006,'932807566378',103,'支付优惠券','2024-05-04 05:57:20','create','2024-05-04 13:57:20','2024-05-04 13:57:20'),
(15,'xiaofuge2',100301,100006,'623497872684',102,'OpenAI会员卡','2024-05-04 05:57:32','create','2024-05-04 13:57:32','2024-05-04 13:57:32');
/*!40000 ALTER TABLE `user_award_record_003` ENABLE KEYS */;
UNLOCK TABLES;
# 转储表 user_behavior_rebate_order_001
# 转储表 user_behavior_rebate_order_000
# ------------------------------------------------------------
DROP TABLE IF EXISTS `user_behavior_rebate_order_001`;
DROP TABLE IF EXISTS `user_behavior_rebate_order_000`;
CREATE TABLE `user_behavior_rebate_order_001` (
CREATE TABLE `user_behavior_rebate_order_000` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID',
`user_id` varchar(32) NOT NULL COMMENT '用户ID',
`order_id` varchar(12) NOT NULL COMMENT '订单ID',
......@@ -358,7 +478,8 @@ CREATE TABLE `user_behavior_rebate_order_001` (
`rebate_desc` varchar(128) NOT NULL COMMENT '返利描述',
`rebate_type` varchar(16) NOT NULL COMMENT '返利类型(sku 活动库存充值商品、integral 用户活动积分)',
`rebate_config` varchar(32) NOT NULL COMMENT '返利配置【sku值,积分值】',
`biz_id` varchar(64) NOT NULL COMMENT '业务ID - 拼接的唯一值',
`out_business_no` varchar(64) NOT NULL COMMENT '业务仿重ID - 外部透传,方便查询使用',
`biz_id` varchar(128) NOT NULL COMMENT '业务ID - 拼接的唯一值。拼接 out_business_no + 自身枚举',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
......@@ -367,14 +488,26 @@ CREATE TABLE `user_behavior_rebate_order_001` (
KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户行为返利流水订单表';
LOCK TABLES `user_behavior_rebate_order_000` WRITE;
/*!40000 ALTER TABLE `user_behavior_rebate_order_000` DISABLE KEYS */;
INSERT INTO `user_behavior_rebate_order_000` (`id`, `user_id`, `order_id`, `behavior_type`, `rebate_desc`, `rebate_type`, `rebate_config`, `out_business_no`, `biz_id`, `create_time`, `update_time`)
VALUES
(5,'xiaofuge1','883971522401','sign','签到返利-sku额度','sku','9011','20240503','xiaofuge1_sku_20240503','2024-05-03 16:01:42','2024-05-03 16:01:42'),
(6,'xiaofuge1','995944930386','sign','签到返利-积分','integral','10','20240503','xiaofuge1_integral_20240503','2024-05-03 16:01:43','2024-05-03 16:01:43'),
(7,'user001','153309768984','sign','签到返利-sku额度','sku','9011','20240524','user001_sku_20240524','2024-05-24 22:25:09','2024-05-24 22:25:09'),
(8,'user001','922397055482','sign','签到返利-积分','integral','10','20240524','user001_integral_20240524','2024-05-24 22:25:09','2024-05-24 22:25:09');
# 转储表 user_behavior_rebate_order_002
/*!40000 ALTER TABLE `user_behavior_rebate_order_000` ENABLE KEYS */;
UNLOCK TABLES;
# 转储表 user_behavior_rebate_order_001
# ------------------------------------------------------------
DROP TABLE IF EXISTS `user_behavior_rebate_order_002`;
DROP TABLE IF EXISTS `user_behavior_rebate_order_001`;
CREATE TABLE `user_behavior_rebate_order_002` (
CREATE TABLE `user_behavior_rebate_order_001` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID',
`user_id` varchar(32) NOT NULL COMMENT '用户ID',
`order_id` varchar(12) NOT NULL COMMENT '订单ID',
......@@ -382,7 +515,8 @@ CREATE TABLE `user_behavior_rebate_order_002` (
`rebate_desc` varchar(128) NOT NULL COMMENT '返利描述',
`rebate_type` varchar(16) NOT NULL COMMENT '返利类型(sku 活动库存充值商品、integral 用户活动积分)',
`rebate_config` varchar(32) NOT NULL COMMENT '返利配置【sku值,积分值】',
`biz_id` varchar(64) NOT NULL COMMENT '业务ID - 拼接的唯一值',
`out_business_no` varchar(64) NOT NULL COMMENT '业务仿重ID - 外部透传,方便查询使用',
`biz_id` varchar(128) NOT NULL COMMENT '业务ID - 拼接的唯一值。拼接 out_business_no + 自身枚举',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
......@@ -391,14 +525,24 @@ CREATE TABLE `user_behavior_rebate_order_002` (
KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户行为返利流水订单表';
LOCK TABLES `user_behavior_rebate_order_001` WRITE;
/*!40000 ALTER TABLE `user_behavior_rebate_order_001` DISABLE KEYS */;
INSERT INTO `user_behavior_rebate_order_001` (`id`, `user_id`, `order_id`, `behavior_type`, `rebate_desc`, `rebate_type`, `rebate_config`, `out_business_no`, `biz_id`, `create_time`, `update_time`)
VALUES
(1,'user002','791847185524','sign','签到返利-sku额度','sku','9011','20240524','user002_sku_20240524','2024-05-24 22:29:11','2024-05-24 22:29:11'),
(2,'user002','119018837248','sign','签到返利-积分','integral','10','20240524','user002_integral_20240524','2024-05-24 22:29:11','2024-05-24 22:29:11');
# 转储表 user_behavior_rebate_order_003
/*!40000 ALTER TABLE `user_behavior_rebate_order_001` ENABLE KEYS */;
UNLOCK TABLES;
# 转储表 user_behavior_rebate_order_002
# ------------------------------------------------------------
DROP TABLE IF EXISTS `user_behavior_rebate_order_003`;
DROP TABLE IF EXISTS `user_behavior_rebate_order_002`;
CREATE TABLE `user_behavior_rebate_order_003` (
CREATE TABLE `user_behavior_rebate_order_002` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID',
`user_id` varchar(32) NOT NULL COMMENT '用户ID',
`order_id` varchar(12) NOT NULL COMMENT '订单ID',
......@@ -406,7 +550,8 @@ CREATE TABLE `user_behavior_rebate_order_003` (
`rebate_desc` varchar(128) NOT NULL COMMENT '返利描述',
`rebate_type` varchar(16) NOT NULL COMMENT '返利类型(sku 活动库存充值商品、integral 用户活动积分)',
`rebate_config` varchar(32) NOT NULL COMMENT '返利配置【sku值,积分值】',
`biz_id` varchar(64) NOT NULL COMMENT '业务ID - 拼接的唯一值',
`out_business_no` varchar(64) NOT NULL COMMENT '业务仿重ID - 外部透传,方便查询使用',
`biz_id` varchar(128) NOT NULL COMMENT '业务ID - 拼接的唯一值。拼接 out_business_no + 自身枚举',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
......@@ -417,12 +562,12 @@ CREATE TABLE `user_behavior_rebate_order_003` (
# 转储表 user_behavior_rebate_order_004
# 转储表 user_behavior_rebate_order_003
# ------------------------------------------------------------
DROP TABLE IF EXISTS `user_behavior_rebate_order_004`;
DROP TABLE IF EXISTS `user_behavior_rebate_order_003`;
CREATE TABLE `user_behavior_rebate_order_004` (
CREATE TABLE `user_behavior_rebate_order_003` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID',
`user_id` varchar(32) NOT NULL COMMENT '用户ID',
`order_id` varchar(12) NOT NULL COMMENT '订单ID',
......@@ -430,7 +575,8 @@ CREATE TABLE `user_behavior_rebate_order_004` (
`rebate_desc` varchar(128) NOT NULL COMMENT '返利描述',
`rebate_type` varchar(16) NOT NULL COMMENT '返利类型(sku 活动库存充值商品、integral 用户活动积分)',
`rebate_config` varchar(32) NOT NULL COMMENT '返利配置【sku值,积分值】',
`biz_id` varchar(64) NOT NULL COMMENT '业务ID - 拼接的唯一值',
`out_business_no` varchar(64) NOT NULL COMMENT '业务仿重ID - 外部透传,方便查询使用',
`biz_id` varchar(128) NOT NULL COMMENT '业务ID - 拼接的唯一值。拼接 out_business_no + 自身枚举',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
......@@ -439,6 +585,43 @@ CREATE TABLE `user_behavior_rebate_order_004` (
KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户行为返利流水订单表';
LOCK TABLES `user_behavior_rebate_order_003` WRITE;
/*!40000 ALTER TABLE `user_behavior_rebate_order_003` DISABLE KEYS */;
INSERT INTO `user_behavior_rebate_order_003` (`id`, `user_id`, `order_id`, `behavior_type`, `rebate_desc`, `rebate_type`, `rebate_config`, `out_business_no`, `biz_id`, `create_time`, `update_time`)
VALUES
(7,'xiaofuge2','298513989210','sign','签到返利-sku额度','sku','9011','20240504','xiaofuge2_sku_20240504','2024-05-04 13:07:53','2024-05-04 13:07:53'),
(8,'xiaofuge2','352651244433','sign','签到返利-积分','integral','10','20240504','xiaofuge2_integral_20240504','2024-05-04 13:07:53','2024-05-04 13:07:53');
/*!40000 ALTER TABLE `user_behavior_rebate_order_003` ENABLE KEYS */;
UNLOCK TABLES;
# 转储表 user_credit_account
# ------------------------------------------------------------
DROP TABLE IF EXISTS `user_credit_account`;
CREATE TABLE `user_credit_account` (
`id` bigint(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID',
`user_id` varchar(32) NOT NULL COMMENT '用户ID',
`total_amount` decimal(10,2) NOT NULL COMMENT '总积分,显示总账户值,记得一个人获得的总积分',
`available_amount` decimal(10,2) NOT NULL COMMENT '可用积分,每次扣减的值',
`account_status` varchar(8) NOT NULL COMMENT '账户状态【open - 可用,close - 冻结】',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户积分账户';
LOCK TABLES `user_credit_account` WRITE;
/*!40000 ALTER TABLE `user_credit_account` DISABLE KEYS */;
INSERT INTO `user_credit_account` (`id`, `user_id`, `total_amount`, `available_amount`, `account_status`, `create_time`, `update_time`)
VALUES
(2,'user001',0.71,0.71,'open','2024-05-24 22:34:19','2024-05-24 22:34:38');
/*!40000 ALTER TABLE `user_credit_account` ENABLE KEYS */;
UNLOCK TABLES;
# 转储表 user_raffle_order_000
......@@ -462,6 +645,19 @@ CREATE TABLE `user_raffle_order_000` (
KEY `idx_user_id_activity_id` (`user_id`,`activity_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户抽奖订单表';
LOCK TABLES `user_raffle_order_000` WRITE;
/*!40000 ALTER TABLE `user_raffle_order_000` DISABLE KEYS */;
INSERT INTO `user_raffle_order_000` (`id`, `user_id`, `activity_id`, `activity_name`, `strategy_id`, `order_id`, `order_time`, `order_state`, `create_time`, `update_time`)
VALUES
(1,'xiaofuge1',100301,'测试活动',100006,'386938913572','2024-05-04 04:51:32','used','2024-05-04 12:51:32','2024-05-04 12:51:32'),
(2,'user001',100301,'测试活动',100006,'391668886086','2024-05-24 14:31:46','used','2024-05-24 22:31:47','2024-05-24 22:31:55'),
(3,'user001',100301,'测试活动',100006,'179191128326','2024-05-24 14:33:02','used','2024-05-24 22:33:02','2024-05-24 22:33:02'),
(4,'user001',100301,'测试活动',100006,'320625987421','2024-05-24 14:34:01','used','2024-05-24 22:34:01','2024-05-24 22:34:04'),
(5,'user001',100301,'测试活动',100006,'290879207548','2024-05-24 14:34:37','used','2024-05-24 22:34:37','2024-05-24 22:34:38');
/*!40000 ALTER TABLE `user_raffle_order_000` ENABLE KEYS */;
UNLOCK TABLES;
# 转储表 user_raffle_order_001
......@@ -531,6 +727,29 @@ CREATE TABLE `user_raffle_order_003` (
KEY `idx_user_id_activity_id` (`user_id`,`activity_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户抽奖订单表';
LOCK TABLES `user_raffle_order_003` WRITE;
/*!40000 ALTER TABLE `user_raffle_order_003` DISABLE KEYS */;
INSERT INTO `user_raffle_order_003` (`id`, `user_id`, `activity_id`, `activity_name`, `strategy_id`, `order_id`, `order_time`, `order_state`, `create_time`, `update_time`)
VALUES
(1,'xiaofuge2',100301,'测试活动',100006,'809920093949','2024-05-04 04:53:02','used','2024-05-04 12:53:02','2024-05-04 12:53:02'),
(2,'xiaofuge2',100301,'测试活动',100006,'613575974630','2024-05-04 04:58:43','used','2024-05-04 12:58:42','2024-05-04 12:58:42'),
(3,'xiaofuge2',100301,'测试活动',100006,'632802870481','2024-05-04 05:00:08','used','2024-05-04 13:00:08','2024-05-04 13:00:08'),
(4,'xiaofuge2',100301,'测试活动',100006,'972433161890','2024-05-04 05:04:33','used','2024-05-04 13:04:32','2024-05-04 13:05:38'),
(5,'xiaofuge2',100301,'测试活动',100006,'877507315775','2024-05-04 05:05:46','used','2024-05-04 13:05:45','2024-05-04 13:05:45'),
(6,'xiaofuge2',100301,'测试活动',100006,'517301751417','2024-05-04 05:05:53','used','2024-05-04 13:05:52','2024-05-04 13:05:52'),
(7,'xiaofuge2',100301,'测试活动',100006,'261932434171','2024-05-04 05:06:00','used','2024-05-04 13:05:59','2024-05-04 13:05:59'),
(8,'xiaofuge2',100301,'测试活动',100006,'700573379547','2024-05-04 05:06:07','used','2024-05-04 13:06:06','2024-05-04 13:06:06'),
(9,'xiaofuge2',100301,'测试活动',100006,'105697168349','2024-05-04 05:06:18','used','2024-05-04 13:06:17','2024-05-04 13:06:17'),
(10,'xiaofuge2',100301,'测试活动',100006,'959233180689','2024-05-04 05:06:25','used','2024-05-04 13:06:24','2024-05-04 13:06:24'),
(11,'xiaofuge2',100301,'测试活动',100006,'958431976534','2024-05-04 05:08:06','used','2024-05-04 13:08:06','2024-05-04 13:08:06'),
(12,'xiaofuge2',100301,'测试活动',100006,'014341440837','2024-05-04 05:57:04','used','2024-05-04 13:57:03','2024-05-04 13:57:03'),
(13,'xiaofuge2',100301,'测试活动',100006,'104619821752','2024-05-04 05:57:12','used','2024-05-04 13:57:11','2024-05-04 13:57:11'),
(14,'xiaofuge2',100301,'测试活动',100006,'932807566378','2024-05-04 05:57:20','used','2024-05-04 13:57:20','2024-05-04 13:57:20'),
(15,'xiaofuge2',100301,'测试活动',100006,'623497872684','2024-05-04 05:57:32','used','2024-05-04 13:57:32','2024-05-04 13:57:32');
/*!40000 ALTER TABLE `user_raffle_order_003` ENABLE KEYS */;
UNLOCK TABLES;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册