jinshihui 18 часов назад
Родитель
Сommit
15701f5a26

+ 10 - 3
nightFragrance-admin/src/main/java/com/ylx/web/controller/point/PointActivityController.java

@@ -15,6 +15,7 @@ import com.ylx.point.domain.vo.*;
 import com.ylx.point.service.IPointActivityService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
@@ -31,6 +32,7 @@ import java.util.List;
 @RestController
 @RequestMapping("/point/activity")
 @Api(tags = {"积分规则配置"})
+@Slf4j
 public class PointActivityController extends BaseController {
 
     @Autowired
@@ -59,15 +61,20 @@ public class PointActivityController extends BaseController {
     }
 
     /**
-     * 新增积分活动
+     * 新增积分活动
      */
     @PreAuthorize("@ss.hasPermi('point:activity:add')")
     @ApiOperation("新增积分活动")
     @Log(title = "积分活动添加", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@Validated @RequestBody PointActivityDTO dto) {
-        this.pointActivityService.add(dto);
-        return success();
+        try {
+            this.pointActivityService.add(dto);
+            return success();
+        } catch (Exception e) {
+            log.error("新增积分活动失败", e);
+            throw new RuntimeException(e);
+        }
     }
 
     /**

+ 65 - 0
nightFragrance-massage/src/main/java/com/ylx/point/domain/PointDeductDetail.java

@@ -0,0 +1,65 @@
+package com.ylx.point.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 积分扣减明细对象 point_deduct_detail
+ *
+ * @author wzj
+ * @date 2026-04-17
+ */
+@Data
+@TableName("point_deduct_detail")
+public class PointDeductDetail implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 消耗/过期流水ID (point_user_log.id, op_type=2or3)
+     */
+    @TableField("deduct_log_id")
+    private Long deductLogId;
+
+    /**
+     * 被扣减的获得流水ID (point_user_log.id, op_type=1)
+     */
+    @TableField("earn_log_id")
+    private Long earnLogId;
+
+    /**
+     * 本次从该批次扣减的积分数(正整数)
+     */
+    @TableField("deduct_points")
+    private Integer deductPoints;
+
+    /**
+     * 用户openID(冗余,便于分区查询)
+     */
+    @TableField("open_id")
+    private String openId;
+
+    /**
+     * 年月YYYYMM(与主表保持一致,分表用)
+     */
+    @TableField("month")
+    private String month;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+}

+ 15 - 0
nightFragrance-massage/src/main/java/com/ylx/point/domain/dto/PointActivityDTO.java

@@ -19,11 +19,17 @@ public class PointActivityDTO {
     @ApiModelProperty("活动主键id")
     private Long id;
 
+    /**
+     * 活动名称
+     */
     @ApiModelProperty("活动名称")
     @NotBlank(message = "活动名称不能为空")
     @Size(min = 2, max = 18, message = "活动名称长度必须在2-18个字符之间")
     private String name;
 
+    /**
+     * 活动简述
+     */
     @ApiModelProperty("活动简述")
     @NotBlank(message = "活动简述不能为空")
     @Size(min = 2, max = 30, message = "活动简述长度必须在2-30个字符之间")
@@ -33,6 +39,9 @@ public class PointActivityDTO {
     @NotBlank(message = "活动城市不能为空")
     private String cityCode;
 
+    /**
+     * 活动类型:0(签到活动), 1(新手活动), 2(每日活动), 3(每月活动)
+     */
     @ApiModelProperty("活动类型")
     @NotNull(message = "活动类型不能为空")
     private Integer activityType;
@@ -47,10 +56,16 @@ public class PointActivityDTO {
     @ApiModelProperty("签到活动奖励配置")
     private PointSignTaskDTO signTaskDTO;
 
+    /**
+     * 状态:草稿=3, 发布=4
+     */
     @ApiModelProperty("状态:草稿=3, 发布=4")
     @NotNull(message = "状态不能为空")
     private Integer status;
 
+    /**
+     * 活动时间配置
+     */
     @Data
     public static class ActivityTimeConfig {