diff --git a/lottery-system/.idea/uiDesigner.xml b/lottery-system/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/lottery-system/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lottery-system/lottery-common/src/main/java/com/lottery/context/RequestContext.java b/lottery-system/lottery-common/src/main/java/com/lottery/context/RequestContext.java new file mode 100644 index 0000000..9299d3c --- /dev/null +++ b/lottery-system/lottery-common/src/main/java/com/lottery/context/RequestContext.java @@ -0,0 +1,28 @@ +package com.lottery.context; + +/** + * @program: lottery-system + * @ClassName RequestContext + * @description: 获取上下文 + * @author: wwl + * @create: 2025-07-11 10:39 + * @Version 1.0 + **/ +public class RequestContext { + + public static ThreadLocal threadLocal = new ThreadLocal<>(); + + public static void setCurrentId(Long id) { + threadLocal.set(id); + } + + public static Long getCurrentId() { + return threadLocal.get(); + } + + public static void removeCurrentId() { + threadLocal.remove(); + } + + } + diff --git a/lottery-system/lottery-common/src/main/java/com/lottery/utils/Result.java b/lottery-system/lottery-common/src/main/java/com/lottery/result/Result.java similarity index 98% rename from lottery-system/lottery-common/src/main/java/com/lottery/utils/Result.java rename to lottery-system/lottery-common/src/main/java/com/lottery/result/Result.java index c80ebca..fe85236 100644 --- a/lottery-system/lottery-common/src/main/java/com/lottery/utils/Result.java +++ b/lottery-system/lottery-common/src/main/java/com/lottery/result/Result.java @@ -1,4 +1,4 @@ -package com.lottery.utils; +package com.lottery.result; /** * @program: lottery-system diff --git a/lottery-system/lottery-common/src/main/java/com/lottery/utils/ConvertBeanUtil.java b/lottery-system/lottery-common/src/main/java/com/lottery/utils/ConvertBeanUtil.java new file mode 100644 index 0000000..6b4d5bb --- /dev/null +++ b/lottery-system/lottery-common/src/main/java/com/lottery/utils/ConvertBeanUtil.java @@ -0,0 +1,63 @@ +package com.lottery.utils; + +import org.springframework.beans.BeanInstantiationException; +import org.springframework.beans.BeanUtils; + +import java.util.ArrayList; +import java.util.List; + +/** + * @program: lottery-system + * @ClassName ConvertBeanUtil + * @description: Bean转换工具 + * @author: wwl + * @create: 2025-07-11 10:01 + * @Version 1.0 + **/ +public class ConvertBeanUtil { + + /** + * 将一个对象转成目标对象 + * + * @param source + * @param targetClass + * @param + * @return + */ + public static T convert(Object source, Class targetClass) { + if (source == null) { + return null; + } + T t = newInstance(targetClass); + BeanUtils.copyProperties(source, t); + return t; + } + + + /** + * 将List对象转换成目标对象,注意实现是ArrayList + * + * @param targetClass + * @param + * @param + * @return + */ + public static List convertList(List sourceList, Class targetClass) { + if (sourceList == null) { + return null; + } + List targetList = new ArrayList((int) (sourceList.size() / 0.75) + 1); + for (K source : sourceList) { + targetList.add(convert(source, targetClass)); + } + return targetList; + } + + private static T newInstance(Class targetClass) { + try { + return targetClass.newInstance(); + } catch (Exception e) { + throw new BeanInstantiationException(targetClass, "instantiation error", e); + } + } +} diff --git a/lottery-system/lottery-pojo/src/main/java/com/lottery/dto/Prize.java b/lottery-system/lottery-pojo/src/main/java/com/lottery/dto/Prize.java index 24cf833..ea0a26e 100644 --- a/lottery-system/lottery-pojo/src/main/java/com/lottery/dto/Prize.java +++ b/lottery-system/lottery-pojo/src/main/java/com/lottery/dto/Prize.java @@ -8,6 +8,7 @@ package com.lottery.dto; * @create: 2025−07-10 15:20 * @Version 1.0 **/ +import com.baomidou.mybatisplus.annotation.TableName; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/lottery-system/lottery-pojo/src/main/java/com/lottery/entity/LotteryRound.java b/lottery-system/lottery-pojo/src/main/java/com/lottery/entity/LotteryRound.java new file mode 100644 index 0000000..70ae841 --- /dev/null +++ b/lottery-system/lottery-pojo/src/main/java/com/lottery/entity/LotteryRound.java @@ -0,0 +1,52 @@ +package com.lottery.entity; + +/** + * @program: lottery-system + * @ClassName + * @description: + * @author: wwl + * @create: 2025-07-11 10:01 + * @Version 1.0 + **/ + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + + +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName("lottery_round") +public class LotteryRound { + + @TableId(type = IdType.AUTO) + private Long id; // 主键ID(表中未显示但通常需要) + + + private String name; // 活动名称 + + + private Date startTime; // 开始时间 + + + private Date endTime; // 结束时间 + + + private String description; // 描述 + + + private Integer status; // 状态 + + + private Date createTime; // 创建时间 + + + private Date updateTime; // 更新时间 + +} diff --git a/lottery-system/lottery-pojo/src/main/java/com/lottery/entity/Prize.java b/lottery-system/lottery-pojo/src/main/java/com/lottery/entity/Prize.java new file mode 100644 index 0000000..0be6e22 --- /dev/null +++ b/lottery-system/lottery-pojo/src/main/java/com/lottery/entity/Prize.java @@ -0,0 +1,55 @@ +package com.lottery.entity; + +/** + * @program: lottery-system + * @ClassName Gift + * @description: + * @author:jihaipeng + * @create: 2025−07-10 15:20 + * @Version 1.0 + **/ +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.Date; +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName("prize") +public class Prize { + // 主键ID + @TableId(type = IdType.AUTO) + private Long id; + + // 名称 + private String name; + + // 描述 + private String description; + + // 图片URL + private String imageUrl; + + // 库存数量 + private Integer stock; + + // 中奖概率 + private BigDecimal probability; + + // 奖品类型 + private Integer prizeType; + + // 状态 + private Integer status; + + // 创建时间 + private Date createTime; + + // 更新时间 + private Date updateTime; +} \ No newline at end of file diff --git a/lottery-system/lottery-pojo/src/main/java/com/lottery/entity/User.java b/lottery-system/lottery-pojo/src/main/java/com/lottery/entity/User.java new file mode 100644 index 0000000..39e99ea --- /dev/null +++ b/lottery-system/lottery-pojo/src/main/java/com/lottery/entity/User.java @@ -0,0 +1,45 @@ +package com.lottery.entity; + +/** + * @program: lottery-system + * @ClassName + * @description: + * @author: wwl + * @create: 2025-07-11 10:01 + * @Version 1.0 + **/ + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + + +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName("user") +public class User { + + @TableId(type = IdType.AUTO) + private Long id; // 主键ID(表中未显示但建议添加) + + + private String username; // 用户名 + + + private String phone; // 手机号 + + + private Integer status; // 状态(tinyint对应Integer) + + + private Date createTime; // 创建时间 + + + private Date updateTime; // 更新时间 +} diff --git a/lottery-system/lottery-pojo/src/main/java/com/lottery/entity/WinnerRecord.java b/lottery-system/lottery-pojo/src/main/java/com/lottery/entity/WinnerRecord.java new file mode 100644 index 0000000..6e95e09 --- /dev/null +++ b/lottery-system/lottery-pojo/src/main/java/com/lottery/entity/WinnerRecord.java @@ -0,0 +1,40 @@ +package com.lottery.entity; + +/** + * @program: lottery-system + * @ClassName + * @description: + * @author: wwl + * @create: 2025-07-11 10:01 + * @Version 1.0 + **/ +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@AllArgsConstructor +@NoArgsConstructor +@Data +@TableName("winner_record") +public class WinnerRecord { + + @TableId(type = IdType.AUTO) + private Long id; // 主键ID + + private Long userId; // 用户ID + + private Long prizeId; // 奖品ID + + private Long roundId; // 轮次ID + + private Date winTime; // 中奖时间 + + private Boolean isClaimed; // 是否已领取(tinyint映射为Boolean) + + private Date claimTime; // 领取时间 +} diff --git a/lottery-system/lottery-service/src/main/java/com/lottery/service/Impl/PrizeServiceImpl.java b/lottery-system/lottery-service/src/main/java/com/lottery/service/Impl/PrizeServiceImpl.java index 87dc597..912f15b 100644 --- a/lottery-system/lottery-service/src/main/java/com/lottery/service/Impl/PrizeServiceImpl.java +++ b/lottery-system/lottery-service/src/main/java/com/lottery/service/Impl/PrizeServiceImpl.java @@ -32,6 +32,8 @@ public class PrizeServiceImpl implements IPrizeService { prize.setProbability(new BigDecimal(0.1)); prize.setPrizeType(1); prize.setStatus(1); + prize.setCreateTime(new Date()); + prize.setUpdateTime(new Date()); return prizeMapper.add(prize); diff --git a/lottery-system/lottery-service/src/main/resources/application.yml b/lottery-system/lottery-service/src/main/resources/application.yml index 4ae1511..adcf8b6 100644 --- a/lottery-system/lottery-service/src/main/resources/application.yml +++ b/lottery-system/lottery-service/src/main/resources/application.yml @@ -6,7 +6,7 @@ spring: datasource: url: jdbc:mysql://localhost:3306/lottery_system?useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai username: root - password: root + password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver hikari: pool-name: LotteryHikariCP diff --git a/lottery-system/pom.xml b/lottery-system/pom.xml index a22a12e..1bfd4b5 100644 --- a/lottery-system/pom.xml +++ b/lottery-system/pom.xml @@ -73,6 +73,12 @@ test + + com.baomidou + mybatis-plus-boot-starter + 3.5.3 + + org.apache.commons