Merge remote-tracking branch 'origin/test' into test
This commit is contained in:
@@ -8,6 +8,6 @@ import lombok.Data;
|
||||
*/
|
||||
@Data
|
||||
public class BaseQueryParam {
|
||||
private int pageNum = 1;
|
||||
private int pageSize = 10;
|
||||
private int page = 1;
|
||||
private int size = 10;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,109 @@
|
||||
|
||||
package com.czg.market.dto;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
import com.czg.market.entity.SmsPushEventUser;
|
||||
import com.czg.validator.group.InsertGroup;
|
||||
import com.czg.validator.group.UpdateGroup;
|
||||
import com.mybatisflex.annotation.Column;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 营销推送发送记录 实体类。
|
||||
*
|
||||
* @author ww
|
||||
* @since 2025-10-14
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class SmsPushEventDTO implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Long id;
|
||||
|
||||
private Long shopId;
|
||||
|
||||
/**
|
||||
* 推送类型 1 模版推送 2短信推送 无用 暂留
|
||||
*/
|
||||
private Integer pushType;
|
||||
|
||||
/**
|
||||
* 模板ID
|
||||
*/
|
||||
@NotNull(message = "模板ID不能为空", groups = InsertGroup.class)
|
||||
private Long pushEventId;
|
||||
|
||||
/**
|
||||
* 1 全部用户 2范围用户 3 指定用户 指定暂定一个用户
|
||||
*/
|
||||
@NotNull(message = "发送范围不能为空", groups = InsertGroup.class)
|
||||
private Long userType;
|
||||
|
||||
/**
|
||||
* 指定用户时 使用
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 0待发送 1 发送中 2发送成功 -1失败
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 发送内容
|
||||
*/
|
||||
@NotBlank(message = "发送内容不能为空", groups = InsertGroup.class)
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 赠送券信息[{"id":"268700","num":12,"title":"邀新10元优惠券"}]
|
||||
*/
|
||||
private String coupon;
|
||||
|
||||
/**
|
||||
* 发送类型 1 立即发送 2定时发送
|
||||
*/
|
||||
@NotNull(message = "发送类型不能为空", groups = InsertGroup.class)
|
||||
private Integer sendType;
|
||||
|
||||
/**
|
||||
* 发送时间
|
||||
*/
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime sendTime;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
/**
|
||||
* 失败原因
|
||||
*/
|
||||
private String error;
|
||||
|
||||
/**
|
||||
* 发送的用户信息选项
|
||||
* userType为2时 使用
|
||||
*/
|
||||
@Column(ignore = true)
|
||||
private SmsPushEventUser smsPushEventUser;
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
|
||||
package com.czg.market.dto;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
import java.io.Serial;
|
||||
|
||||
import com.czg.validator.group.InsertGroup;
|
||||
import com.czg.validator.group.UpdateGroup;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Null;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 店铺模板表 实体类。
|
||||
*
|
||||
* @author ww
|
||||
* @since 2025-10-14
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Accessors(chain = true)
|
||||
public class SmsShopTemplateDTO implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
@NotNull(message = "模板内容不能为空", groups = { UpdateGroup.class})
|
||||
private Long id;
|
||||
|
||||
private Long shopId;
|
||||
|
||||
/**
|
||||
* 模板内容
|
||||
*/
|
||||
@NotNull(message = "模板内容不能为空", groups = {InsertGroup.class, UpdateGroup.class})
|
||||
private Long content;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
private Integer sort;
|
||||
|
||||
/**
|
||||
* 0 待申请 1 审核中 2 成功 -1失败 -2 重新申请中
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 失败原因
|
||||
*/
|
||||
private String failMsg;
|
||||
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,101 @@
|
||||
package com.czg.market.entity;
|
||||
|
||||
import com.mybatisflex.annotation.Column;
|
||||
import com.mybatisflex.annotation.Id;
|
||||
import com.mybatisflex.annotation.KeyType;
|
||||
import com.mybatisflex.annotation.Table;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 营销推送发送记录 实体类。
|
||||
*
|
||||
* @author ww
|
||||
* @since 2025-10-14
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Table("sms_push_event")
|
||||
public class SmsPushEvent implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Id(keyType = KeyType.Auto)
|
||||
private Long id;
|
||||
|
||||
private Long shopId;
|
||||
|
||||
/**
|
||||
* 推送类型 1 模版推送 2短信推送 无用 暂留
|
||||
*/
|
||||
private Integer pushType;
|
||||
|
||||
/**
|
||||
* 模板ID
|
||||
*/
|
||||
private Long pushEventId;
|
||||
|
||||
/**
|
||||
* 1 全部用户 2范围用户 3 指定用户 指定暂定一个用户
|
||||
*/
|
||||
private Long userType;
|
||||
|
||||
/**
|
||||
* 指定用户时 使用
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 0待发送 1 发送中 2发送成功 -1失败
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 发送内容
|
||||
*/
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 赠送券信息[{"id":"268700","num":12,"title":"邀新10元优惠券"}]
|
||||
*/
|
||||
private String coupon;
|
||||
|
||||
/**
|
||||
* 发送类型 1 立即发送 2定时发送
|
||||
*/
|
||||
private Integer sendType;
|
||||
|
||||
/**
|
||||
* 发送时间
|
||||
*/
|
||||
private LocalDateTime sendTime;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@Column(onInsertValue = "now()")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Column(onInsertValue = "now()", onUpdateValue = "now()")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
/**
|
||||
* 失败原因
|
||||
*/
|
||||
private String error;
|
||||
/**
|
||||
* 是否删除 0 未删除 1 删除
|
||||
*/
|
||||
private Integer isDel;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
package com.czg.market.entity;
|
||||
|
||||
import com.mybatisflex.annotation.Column;
|
||||
import com.mybatisflex.annotation.Id;
|
||||
import com.mybatisflex.annotation.KeyType;
|
||||
import com.mybatisflex.annotation.Table;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 营销推送任务 实体类。
|
||||
*
|
||||
* @author ww
|
||||
* @since 2025-10-14
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Table("sms_push_event_user")
|
||||
public class SmsPushEventUser implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Id(keyType = KeyType.Auto)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* sms_user_push_event的id
|
||||
*/
|
||||
private Long eventId;
|
||||
|
||||
private Long shopId;
|
||||
|
||||
/**
|
||||
* 性别 0未知 1男 2女
|
||||
*/
|
||||
private String gender;
|
||||
|
||||
/**
|
||||
* 下单时间 0:今天 1:昨天 2:两周内 3:两周前
|
||||
*/
|
||||
private String orderTimes;
|
||||
|
||||
/**
|
||||
* 下单时间 0:从未下单 其它数字表示下过几单
|
||||
*/
|
||||
private String orderHistory;
|
||||
|
||||
/**
|
||||
* 充值过 0否 1是
|
||||
*/
|
||||
private String isRecharge;
|
||||
|
||||
/**
|
||||
* 会员 0非会员 1会员
|
||||
*/
|
||||
private String vip;
|
||||
|
||||
/**
|
||||
* 预留 短信推送用 会员等级 0 全部会员 1仅限等级 2以上等级
|
||||
*/
|
||||
private String vipLevel;
|
||||
|
||||
/**
|
||||
* 预留 短信推送用 会员等级ID
|
||||
*/
|
||||
private Long vipLevelId;
|
||||
|
||||
@Column(onInsertValue = "now()")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
package com.czg.market.entity;
|
||||
|
||||
import com.mybatisflex.annotation.Column;
|
||||
import com.mybatisflex.annotation.Id;
|
||||
import com.mybatisflex.annotation.KeyType;
|
||||
import com.mybatisflex.annotation.Table;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 店铺模板表 实体类。
|
||||
*
|
||||
* @author ww
|
||||
* @since 2025-10-14
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Table("sms_shop_template")
|
||||
public class SmsShopTemplate implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Id(keyType = KeyType.Auto)
|
||||
private Long id;
|
||||
|
||||
private Long shopId;
|
||||
/**
|
||||
* 模板名称
|
||||
*/
|
||||
private String title;
|
||||
/**
|
||||
* 模板内容
|
||||
*/
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
private Integer sort;
|
||||
|
||||
/**
|
||||
* 0 待申请 1 审核中 2 成功 -1失败 -2 重新申请中
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 失败原因
|
||||
*/
|
||||
private String failMsg;
|
||||
|
||||
@Column(onInsertValue = "now()")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Column(onInsertValue = "now()", onUpdateValue = "now()")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.czg.market.service;
|
||||
|
||||
import com.czg.BaseQueryParam;
|
||||
import com.czg.market.dto.ShopCouponDTO;
|
||||
import com.czg.market.dto.SmsPushEventDTO;
|
||||
import com.mybatisflex.core.paginate.Page;
|
||||
import com.mybatisflex.core.service.IService;
|
||||
import com.czg.market.entity.SmsPushEvent;
|
||||
|
||||
/**
|
||||
* 营销推送发送记录 服务层。
|
||||
*
|
||||
* @author ww
|
||||
* @since 2025-10-14
|
||||
*/
|
||||
public interface SmsPushEventService extends IService<SmsPushEvent> {
|
||||
|
||||
/**
|
||||
* 分页查询营销推送发送记录列表
|
||||
*/
|
||||
Page<SmsPushEventDTO> getPushEventPage(BaseQueryParam param, Long shopId, Long id);
|
||||
|
||||
/**
|
||||
* 添加营销推送发送任务
|
||||
*/
|
||||
void addPushEvent(SmsPushEventDTO param);
|
||||
|
||||
void deletePushEvent(Long id);
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.czg.market.service;
|
||||
|
||||
import com.czg.market.dto.ShopCouponDTO;
|
||||
import com.czg.market.dto.SmsShopTemplateDTO;
|
||||
import com.mybatisflex.core.paginate.Page;
|
||||
import com.mybatisflex.core.service.IService;
|
||||
import com.czg.market.entity.SmsShopTemplate;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 店铺模板表 服务层。
|
||||
*
|
||||
* @author ww
|
||||
* @since 2025-10-14
|
||||
*/
|
||||
public interface SmsShopTemplateService extends IService<SmsShopTemplate> {
|
||||
/**
|
||||
* 获取店铺短信模板分页列表
|
||||
* @param name 模板名称 模糊
|
||||
* @return 店铺短信模板列表
|
||||
*/
|
||||
List<SmsShopTemplateDTO> getTemplateList(String name, Long shopId);
|
||||
|
||||
void addTemplate(SmsShopTemplateDTO param);
|
||||
void resubmit(SmsShopTemplateDTO param);
|
||||
}
|
||||
Reference in New Issue
Block a user