瀏覽代碼

test: 活动领域的配置与状态

seamew 2 年之前
父節點
當前提交
090a8247cc

+ 6 - 0
lottery-domain/src/main/java/com/seamew/lottery/domain/activity/model/req/PartakeReq.java

@@ -30,4 +30,10 @@ public class PartakeReq {
      * 活动领取时间
      */
     private Date partakeDate;
+
+    public PartakeReq(String uId, Long activityId) {
+        this.uId = uId;
+        this.activityId = activityId;
+        this.partakeDate = new Date();
+    }
 }

+ 6 - 0
lottery-domain/src/main/java/com/seamew/lottery/domain/activity/service/partake/ActivityPartakeSupport.java

@@ -17,6 +17,12 @@ public class ActivityPartakeSupport {
     @Resource
     protected IActivityRepository activityRepository;
 
+    /**
+     * 根据参与活动请求返回用户活动账单
+     *
+     * @param req 参与活动请求
+     * @return 活动账单
+     */
     protected ActivityBillVO queryActivityBill(PartakeReq req) {
         return activityRepository.queryActivityBill(req);
     }

+ 4 - 4
lottery-domain/src/main/java/com/seamew/lottery/domain/activity/service/partake/BaseActivityPartake.java

@@ -18,22 +18,22 @@ public abstract class BaseActivityPartake extends ActivityPartakeSupport impleme
     @Override
     public PartakeResult doPartake(PartakeReq req) {
         // 查询活动账单
-        ActivityBillVO activityBillVO = super.queryActivityBill(req);
+        ActivityBillVO activityBillVO = queryActivityBill(req);
 
         // 活动信息校验处理【活动库存、状态、日期、个人参与次数】
-        Result checkResult = this.checkActivityBill(req, activityBillVO);
+        Result checkResult = checkActivityBill(req, activityBillVO);
         if (!Constants.ResponseCode.SUCCESS.getCode().equals(checkResult.getCode())) {
             return new PartakeResult(checkResult.getCode(), checkResult.getInfo());
         }
 
         // 扣减活动库存【目前为直接对配置库中的 lottery.activity 直接操作表扣减库存,后续优化为Redis扣减】
-        Result subtractionActivityResult = this.subtractionActivityStock(req);
+        Result subtractionActivityResult = subtractionActivityStock(req);
         if (!Constants.ResponseCode.SUCCESS.getCode().equals(subtractionActivityResult.getCode())) {
             return new PartakeResult(subtractionActivityResult.getCode(), subtractionActivityResult.getInfo());
         }
 
         // 领取活动信息【个人用户把活动信息写入到用户表】
-        Result grabResult = this.grabActivity(req, activityBillVO);
+        Result grabResult = grabActivity(req, activityBillVO);
         if (!Constants.ResponseCode.SUCCESS.getCode().equals(grabResult.getCode())) {
             return new PartakeResult(grabResult.getCode(), grabResult.getInfo());
         }

+ 21 - 10
lottery-infrastructure/src/main/java/com/seamew/lottery/infrastructure/po/Award.java

@@ -17,27 +17,38 @@ import java.util.Date;
 @NoArgsConstructor
 @AllArgsConstructor
 public class Award {
-    // 自增ID
+    /**
+     * 自增ID
+     */
     private Long id;
 
-    // 奖品ID
+    /**
+     * 奖品ID
+     */
     private String awardId;
 
-    // 奖品类型(文字描述、兑换码、优惠券、实物奖品暂无)
+    /**
+     * 奖品类型(1:文字描述、2:兑换码、3:优惠券、4:实物奖品)
+     */
     private Integer awardType;
 
-    // 奖品数量
-    private Integer awardCount;
-
-    // 奖品名称
+    /**
+     * 奖品名称
+     */
     private String awardName;
 
-    // 奖品内容「文字描述、Key、码」
+    /**
+     * 奖品内容「描述、奖品码、sku」
+     */
     private String awardContent;
 
-    // 创建时间
+    /**
+     * 创建时间
+     */
     private Date createTime;
 
-    // 修改时间
+    /**
+     * 修改时间
+     */
     private Date updateTime;
 }

+ 28 - 9
lottery-infrastructure/src/main/java/com/seamew/lottery/infrastructure/po/Strategy.java

@@ -18,30 +18,49 @@ import java.util.Date;
 @AllArgsConstructor
 public class Strategy {
 
-    // 自增ID
+
+    /**
+     * 自增ID
+     */
     private Long id;
 
-    // 策略ID
+    /**
+     * 策略ID
+     */
     private Long strategyId;
 
-    // 策略描述
+    /**
+     * 策略描述
+     */
     private String strategyDesc;
 
-    // 策略方式「1:单项概率、2:总体概率」
+    /**
+     * 策略方式「1:单项概率、2:总体概率」
+     */
     private Integer strategyMode;
 
-    // 发放奖品方式「1:即时、2:定时[含活动结束]、3:人工」
+    /**
+     * 发放奖品方式「1:即时、2:定时[含活动结束]、3:人工」
+     */
     private Integer grantType;
 
-    // 发放奖品时间
+    /**
+     * 发放奖品时间
+     */
     private Date grantDate;
 
-    // 扩展信息
+    /**
+     * 扩展信息
+     */
     private String extInfo;
 
-    // 创建时间
+    /**
+     * 创建时间
+     */
     private Date createTime;
 
-    // 修改时间
+    /**
+     * 修改时间
+     */
     private Date updateTime;
 }

+ 4 - 3
lottery-infrastructure/src/main/java/com/seamew/lottery/infrastructure/po/StrategyDetail.java

@@ -5,6 +5,7 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.math.BigDecimal;
+import java.util.Date;
 
 /**
  * @Author: seamew
@@ -20,7 +21,7 @@ public class StrategyDetail {
     /**
      * 自增ID
      */
-    private String id;
+    private Long id;
 
     /**
      * 策略ID
@@ -55,10 +56,10 @@ public class StrategyDetail {
     /**
      * 创建时间
      */
-    private String createTime;
+    private Date createTime;
 
     /**
      * 修改时间
      */
-    private String updateTime;
+    private Date updateTime;
 }

+ 1 - 1
lottery-infrastructure/src/main/java/com/seamew/lottery/infrastructure/repository/ActivityRepository.java

@@ -101,7 +101,7 @@ public class ActivityRepository implements IActivityRepository {
         activityBillVO.setStockSurplusCount(activity.getStockSurplusCount());
         activityBillVO.setStrategyId(activity.getStrategyId());
         activityBillVO.setState(activity.getState());
-        activityBillVO.setUserTakeLeftCount(null == userTakeActivityCount ? null : userTakeActivityCount.getLeftCount());
+        activityBillVO.setUserTakeLeftCount(null == userTakeActivityCount ? activity.getTakeCount() : userTakeActivityCount.getLeftCount());
 
         return activityBillVO;
     }

+ 3 - 1
lottery-interfaces/src/main/resources/application.yaml

@@ -45,4 +45,6 @@ dubbo:
   scan:
     base-packages: com.seamew.lottery.rpc
 
-
+logging:
+  level:
+    root: warn

+ 15 - 4
lottery-interfaces/src/main/resources/mybatis/mapper/Activity_Mapper.xml

@@ -5,15 +5,26 @@
     <insert id="insert" parameterType="com.seamew.lottery.infrastructure.po.Activity">
         INSERT INTO activity
         (activity_id, activity_name, activity_desc, begin_date_time, end_date_time,
-         stock_count, take_count, state, creator, create_time, update_time)
+         stock_count, stock_surplus_count, take_count, strategy_id, state, creator, create_time, update_time)
         VALUES
             (#{activityId}, #{activityName}, #{activityDesc},#{beginDateTime}, #{endDateTime},
-             #{stockCount}, #{takeCount}, #{state}, #{creator}, now(), now())
+             #{stockCount}, #{stockSurplusCount}, #{takeCount}, #{strategyId}, #{state}, #{creator}, now(), now())
     </insert>
 
     <select id="queryActivityById" parameterType="java.lang.Long" resultType="com.seamew.lottery.infrastructure.po.Activity">
-        SELECT activity_id, activity_name, activity_desc, begin_date_time, end_date_time,
-               stock_count, take_count, state, creator, create_time, update_time
+        SELECT activity_id,
+               activity_name,
+               activity_desc,
+               begin_date_time,
+               end_date_time,
+               stock_count,
+               stock_surplus_count,
+               take_count,
+               strategy_id,
+               state,
+               creator,
+               create_time,
+               update_time
         FROM activity
         WHERE activity_id = #{activityId}
     </select>

+ 1 - 2
lottery-interfaces/src/main/resources/mybatis/mapper/Strategy_Mapper.xml

@@ -2,8 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.seamew.lottery.infrastructure.dao.IStrategyDao">
 
-    <select id="queryStrategy" parameterType="java.lang.Long"
-            resultType="com.seamew.lottery.infrastructure.po.Strategy">
+    <select id="queryStrategy" parameterType="java.lang.Long" resultType="com.seamew.lottery.infrastructure.po.Strategy">
         SELECT id,
                strategy_id,
                strategy_desc,

+ 38 - 0
lottery-interfaces/src/test/java/com/seamew/lottery/test/dao/ActivityDaoTest.java

@@ -0,0 +1,38 @@
+package com.seamew.lottery.test.dao;
+
+import com.alibaba.fastjson2.JSON;
+import com.seamew.lottery.domain.activity.model.req.PartakeReq;
+import com.seamew.lottery.domain.activity.model.res.PartakeResult;
+import com.seamew.lottery.domain.activity.service.partake.IActivityPartake;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import javax.annotation.Resource;
+
+/**
+ * @Author: seamew
+ * @Title: ActivityDaoTest
+ * @CreateTime: 2023年02月22日 23:10:00
+ * @Description:
+ * @Version: 1.0
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest
+@Slf4j
+public class ActivityDaoTest {
+
+    @Resource
+    private IActivityPartake activityPartake;
+
+    @Test
+    public void test_activityPartake() {
+        PartakeReq req = new PartakeReq("Uhdgkw766120d", 100001L);
+        PartakeResult res = activityPartake.doPartake(req);
+        log.info("请求参数:{}", JSON.toJSONString(req));
+        log.info("测试结果:{}", JSON.toJSONString(res));
+    }
+
+}