Răsfoiți Sursa

新增运营活动报名表

zc 2 luni în urmă
părinte
comite
5de9a4132f

+ 4 - 0
alien-entity/src/main/java/shop/alien/entity/store/StoreImg.java

@@ -84,4 +84,8 @@ public class StoreImg extends Model<StoreImg> {
     @ApiModelProperty(value = "相册名称")
     @TableField(exist = false)
     private String albumName;
+
+    @ApiModelProperty(value = "活动类型:COMMENT-评论有礼,MARKETING-营销活动")
+    @TableField(exist = false)
+    private String activityType;
 }

+ 84 - 0
alien-entity/src/main/java/shop/alien/entity/storePlatform/StoreOperationalActivitySignup.java

@@ -0,0 +1,84 @@
+package shop.alien.entity.storePlatform;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 运营活动报名表
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("store_operational_activity_signup")
+@ApiModel(value = "StoreOperationalActivitySignup对象", description = "运营活动报名表")
+public class StoreOperationalActivitySignup {
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "活动ID")
+    @TableField("activity_id")
+    private Integer activityId;
+
+    @ApiModelProperty(value = "商户ID")
+    @TableField("store_id")
+    private Integer storeId;
+
+    @ApiModelProperty(value = "用户ID")
+    @TableField("user_id")
+    private Integer userId;
+
+    @ApiModelProperty(value = "报名人姓名")
+    @TableField("user_name")
+    private String userName;
+
+    @ApiModelProperty(value = "手机号")
+    @TableField("phone")
+    private String phone;
+
+    @ApiModelProperty(value = "报名状态:0-已报名,1-已取消")
+    @TableField("status")
+    private Integer status;
+
+    @ApiModelProperty(value = "报名时间")
+    @TableField("signup_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date signupTime;
+
+    @ApiModelProperty(value = "删除标记, 0:未删除, 1:已删除")
+    @TableField("delete_flag")
+    @TableLogic
+    private Integer deleteFlag;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(value = "created_time", fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdTime;
+
+    @ApiModelProperty(value = "创建人ID")
+    @TableField("created_user_id")
+    private Integer createdUserId;
+
+    @ApiModelProperty(value = "修改时间")
+    @TableField(value = "updated_time", fill = FieldFill.UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updatedTime;
+
+    @ApiModelProperty(value = "修改人ID")
+    @TableField("updated_user_id")
+    private Integer updatedUserId;
+}

+ 26 - 0
alien-entity/src/main/java/shop/alien/mapper/storePlantform/StoreOperationalActivitySignupMapper.java

@@ -0,0 +1,26 @@
+package shop.alien.mapper.storePlantform;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import shop.alien.entity.storePlatform.StoreOperationalActivitySignup;
+
+import java.util.List;
+
+/**
+ * 运营活动报名 Mapper 接口
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Mapper
+public interface StoreOperationalActivitySignupMapper extends BaseMapper<StoreOperationalActivitySignup> {
+
+    /**
+     * 根据活动ID查询报名列表(仅未删除)。
+     *
+     * @param activityId 活动ID
+     * @return 报名列表
+     */
+    List<StoreOperationalActivitySignup> selectByActivityId(@Param("activityId") Integer activityId);
+}

+ 36 - 0
alien-entity/src/main/resources/mapper/storePlatform/StoreOperationalActivitySignupMapper.xml

@@ -0,0 +1,36 @@
+<?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="shop.alien.mapper.storePlantform.StoreOperationalActivitySignupMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="shop.alien.entity.storePlatform.StoreOperationalActivitySignup">
+        <id column="id" property="id" />
+        <result column="activity_id" property="activityId" />
+        <result column="store_id" property="storeId" />
+        <result column="user_id" property="userId" />
+        <result column="user_name" property="userName" />
+        <result column="phone" property="phone" />
+        <result column="status" property="status" />
+        <result column="signup_time" property="signupTime" />
+        <result column="delete_flag" property="deleteFlag" />
+        <result column="created_time" property="createdTime" />
+        <result column="created_user_id" property="createdUserId" />
+        <result column="updated_time" property="updatedTime" />
+        <result column="updated_user_id" property="updatedUserId" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, activity_id, store_id, user_id, user_name, phone, status, signup_time,
+        delete_flag, created_time, created_user_id, updated_time, updated_user_id
+    </sql>
+
+    <select id="selectByActivityId" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List" />
+        FROM store_operational_activity_signup
+        WHERE activity_id = #{activityId}
+          AND delete_flag = 0
+        ORDER BY signup_time DESC
+    </select>
+</mapper>

+ 15 - 1
alien-store/src/main/java/shop/alien/store/service/impl/StoreInfoServiceImpl.java

@@ -3464,7 +3464,21 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
                 .eq(StoreImg::getImgType, 26)
                 .eq(StoreImg::getDeleteFlag, 0)
                 .in(StoreImg::getBusinessId, activityIds);
-        return storeImgMapper.selectList(queryWrapper);
+        List<StoreImg> storeImgs = storeImgMapper.selectList(queryWrapper);
+        if (CollectionUtils.isEmpty(storeImgs)) {
+            return storeImgs;
+        }
+
+        // 活动类型映射到图片返回值
+        Map<Integer, String> activityTypeMap = activities.stream()
+                .collect(Collectors.toMap(StoreOperationalActivity::getId, StoreOperationalActivity::getActivityType, (a, b) -> a));
+        for (StoreImg storeImg : storeImgs) {
+            if (storeImg == null || storeImg.getBusinessId() == null) {
+                continue;
+            }
+            storeImg.setActivityType(activityTypeMap.get(storeImg.getBusinessId()));
+        }
+        return storeImgs;
     }