implementation 'org.springframework.boot:spring-boot-starter-web' | implementation 'org.springframework.boot:spring-boot-starter-web' | ||||
implementation 'com.alibaba:druid-spring-boot-starter:1.2.8' | implementation 'com.alibaba:druid-spring-boot-starter:1.2.8' | ||||
implementation group: 'com.alibaba', name: 'fastjson', version: '2.0.4' | implementation group: 'com.alibaba', name: 'fastjson', version: '2.0.4' | ||||
implementation 'com.squareup.okhttp3:okhttp:3.14.9' | |||||
compileOnly 'org.projectlombok:lombok' | compileOnly 'org.projectlombok:lombok' | ||||
testCompileOnly 'org.projectlombok:lombok' | testCompileOnly 'org.projectlombok:lombok' | ||||
annotationProcessor 'org.projectlombok:lombok' | annotationProcessor 'org.projectlombok:lombok' |
package cn.com.taiji.core.entity.dict.issue; | |||||
/*** | |||||
* 卡券状态 | |||||
* @author weicailin | |||||
* @Date 2024/03/13 013 10:01 | |||||
*/ | |||||
public enum CouponStatus { | |||||
//待领取、领取后待激活、已激活待使用、已使用、已过期 | |||||
WAIT_GET("待领取",0), | |||||
WAIT_ACTIVATED("待激活",1), | |||||
WAIT_USE("待使用",2), | |||||
USED("已使用",3), | |||||
EXPIRED("已过期",4), | |||||
; | |||||
private final String value; | |||||
private final int code; | |||||
CouponStatus(String value, int code) { | |||||
this.value = value; | |||||
this.code = code; | |||||
} | |||||
public String getValue() { | |||||
return value; | |||||
} | |||||
public int getCode() { | |||||
return code; | |||||
} | |||||
} |
package cn.com.taiji.core.entity.issue; | |||||
import java.time.LocalDateTime; | |||||
import javax.persistence.*; | |||||
import javax.validation.constraints.NotBlank; | |||||
import javax.validation.constraints.NotNull; | |||||
import javax.validation.constraints.Size; | |||||
import cn.com.taiji.common.entity.StringPropertyUUIDEntity; | |||||
import cn.com.taiji.core.entity.dict.issue.CouponStatus; | |||||
import lombok.Getter; | |||||
import lombok.Setter; | |||||
/** | |||||
* | |||||
* | |||||
*/ | |||||
@Getter | |||||
@Setter | |||||
@Entity | |||||
@Table(name = "ISSUE_COUPON_DETAIL") | |||||
public class IssueCouponDetail extends StringPropertyUUIDEntity { | |||||
@NotBlank | |||||
@Size(max = 32) | |||||
@Column(name = "COUPON_ID") | |||||
private String couponId;//卡券id(属于指定类型卡券) | |||||
@NotBlank | |||||
@Size(max = 100) | |||||
@Column(name = "REDEEM_CODE") | |||||
private String redeemCode;//兑换码 | |||||
@NotNull | |||||
@Column(name = "VALID_START_TIME") | |||||
private LocalDateTime validStartTime;//卡券生效时间 | |||||
@NotNull | |||||
@Column(name = "VALID_EDN_TIME") | |||||
private LocalDateTime validEdnTime;//卡券截止时间 | |||||
@NotNull | |||||
@Column(name = "CODE_CREATE_TIME") | |||||
private LocalDateTime codeCreateTime;//兑换码生成时间 | |||||
@NotBlank | |||||
@Size(max = 50) | |||||
@Enumerated(EnumType.STRING) | |||||
@Column(name = "STATUS") | |||||
private CouponStatus status;//状态(待领取、领取后待激活、已激活待使用、已使用、已过期) | |||||
@NotBlank | |||||
@Size(max = 32) | |||||
@Column(name = "OPERATE_OPEN_ID") | |||||
private String operateOpenId;//操作人openId | |||||
@Size(max = 32) | |||||
@Column(name = "BIND_OPEN_ID") | |||||
private String bindOpenId;//领取卡券的用户openId | |||||
@Column(name = "BIND_TIME") | |||||
private LocalDateTime bindTime;//用户领取卡券时间 | |||||
@Column(name = "ACTIVATED_TIME") | |||||
private LocalDateTime activatedTime;//用户激活卡券时间 | |||||
@Column(name = "USE_TIME") | |||||
private LocalDateTime useTime;//用户使用卡券时间 | |||||
@NotBlank | |||||
@Size(max = 50) | |||||
@Column(name = "COUPON_AGENCY_TYPE") | |||||
private String couponAgencyType;//卡券权益所属渠道 | |||||
@NotNull | |||||
@Column(name = "INSERT_TIME") | |||||
private LocalDateTime insertTime = LocalDateTime.now(); | |||||
} |
package cn.com.taiji.core.entity.issue; | |||||
import java.time.LocalDateTime; | |||||
import javax.persistence.*; | |||||
import javax.validation.constraints.NotBlank; | |||||
import javax.validation.constraints.NotNull; | |||||
import javax.validation.constraints.Size; | |||||
import cn.com.taiji.common.entity.StringPropertyUUIDEntity; | |||||
import lombok.Getter; | |||||
import lombok.Setter; | |||||
/** | |||||
* 卡券 | |||||
* | |||||
*/ | |||||
@Getter | |||||
@Setter | |||||
@Entity | |||||
@Table(name = "ISSUE_COUPON_INFO") | |||||
public class IssueCouponInfo extends StringPropertyUUIDEntity { | |||||
@Size(max = 50) | |||||
@Column(name = "COUPON_AGENCY_TYPE") | |||||
private String couponAgencyType;//卡券权益所属渠道 | |||||
@NotBlank | |||||
@Size(max = 255) | |||||
@Column(name = "COUPON_NAME") | |||||
private String couponName;//卡券权益名称 | |||||
@NotBlank | |||||
@Size(max = 2048) | |||||
@Column(name = "COUPON_DESC") | |||||
private String couponDesc;//卡券权益内容简介 | |||||
@NotNull | |||||
@Column(name = "REMAINING_USEFUL_HOUR") | |||||
private Integer remainingUsefulHour;//剩余使用时长阈值(单位:小时)(卡券剩余使用时长小于等于该时间,则不允许发放) | |||||
@NotNull | |||||
@Column(name = "THRESHOLD_VALUE") | |||||
private Integer thresholdValue;//剩余个数阈值(卡券剩余个数小于等于该阈值,则不允许发放) | |||||
@NotNull | |||||
@Column(name = "STATUS") | |||||
private Integer status;//状态(1:启用 0:停用) | |||||
@NotBlank | |||||
@Size(max = 32) | |||||
@Column(name = "OPERATE_OPEN_ID") | |||||
private String operateOpenId;//操作人员工openid | |||||
@NotNull | |||||
@Column(name = "INSERT_TIME") | |||||
private LocalDateTime insertTime = LocalDateTime.now();//入库时间 | |||||
@NotNull | |||||
@Column(name = "UPDATE_TIME") | |||||
private LocalDateTime updateTime = LocalDateTime.now();//更新时间 | |||||
} |
package cn.com.taiji.userw.tools; | |||||
package cn.com.taiji.core.manager.tools.minio; | |||||
import cn.com.taiji.common.manager.ManagerException; | import cn.com.taiji.common.manager.ManagerException; | ||||
import cn.com.taiji.common.pub.CommonAbstract; | import cn.com.taiji.common.pub.CommonAbstract; | ||||
import java.io.InputStream; | import java.io.InputStream; | ||||
import java.net.URL; | import java.net.URL; | ||||
import java.net.URLEncoder; | import java.net.URLEncoder; | ||||
import java.util.List; | |||||
/** | /** | ||||
* @Author:ChenChao | * @Author:ChenChao |
package cn.com.taiji.core.repo.jpa.issue; | |||||
import cn.com.taiji.common.repo.jpa.AbstractJpaRepo; | |||||
import cn.com.taiji.core.entity.issue.IssueCouponDetail; | |||||
public interface IssueCouponDetailRepo extends AbstractJpaRepo<IssueCouponDetail, String>{ | |||||
IssueCouponDetail findByCouponId(String couponId); | |||||
} |
package cn.com.taiji.core.repo.jpa.issue; | |||||
import cn.com.taiji.common.repo.jpa.AbstractJpaRepo; | |||||
import cn.com.taiji.core.entity.issue.IssueCouponInfo; | |||||
import java.util.List; | |||||
public interface IssueCouponInfoRepo extends AbstractJpaRepo<IssueCouponInfo, String>{ | |||||
List<IssueCouponInfo> findByStatus(Integer status); | |||||
} |
implementation "com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config" | implementation "com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config" | ||||
implementation "org.springframework.cloud:spring-cloud-starter-openfeign" | implementation "org.springframework.cloud:spring-cloud-starter-openfeign" | ||||
implementation 'com.alibaba:easyexcel:3.2.1' | implementation 'com.alibaba:easyexcel:3.2.1' | ||||
implementation 'com.squareup.okhttp3:okhttp:3.14.9' | |||||
implementation(group: 'io.springfox', name: 'springfox-boot-starter', version: '3.0.0') { | implementation(group: 'io.springfox', name: 'springfox-boot-starter', version: '3.0.0') { | ||||
// exclude group: 'net.bytebuddy',module: 'byte-buddy' | // exclude group: 'net.bytebuddy',module: 'byte-buddy' | ||||
} | } |