记得上下班打卡 | git大法好,push需谨慎

Commit aa3bd7e2 authored by 胡佳晨's avatar 胡佳晨

Merge branch 'master' into dev_merchant

# Conflicts:
#	liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/kylin/service/impl/KylinPerformancesAdminServiceImpl.java
#	liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/src/main/java/com/liquidnet/service/adam/service/impl/AdamMemberOrderServiceImpl.java
#	liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/utils/DataUtils.java
#	liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/utils/OrderUtils.java
parents c4ad6ebd b244d600
......@@ -174,7 +174,7 @@ create table candy_mgt_coupon
coupon_id varchar(64) not null comment '~candy_coupon.coupon_id',
state tinyint comment '发放状态[0-未发放|1-已发放|2-无效|3-已取消|9-发放中|10-会员礼包初始模版]',
# bind_type smallint comment '领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换]',
# bind_type smallint comment '领取方式[0-用户输入兑换|1-发放至用户|2-积分商品]',
event_amt int comment '发放量',
event_type tinyint comment '发放类型[0-保留|1-会员|2-手机号|10-全体用户]',
event_limit text comment '`发放类型`为2-手机号时发放手机号以,分隔',
......@@ -203,7 +203,7 @@ create table candy_coupon
exclusive smallint comment '专享标识[0-常规|1-会员礼包]',
busi_type smallint comment '业务类别[0-全场|1-演出|2-商品|3-优先购]',
cou_type smallint comment '券类型[1-代金券|2-满减券|3-兑换券|4-折扣券|101-优先券]',
bind_type smallint comment '领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换]',
bind_type smallint comment '领取方式[0-用户输入兑换|1-发放至用户|2-积分商品]',
discount decimal(8, 2) comment '折扣[8折即0.8]',
val_face decimal(8, 2) comment '面值',
......
drop table if exists bi_ticket_access_records;
create table dev_ln_scene.bi_ticket_access_records
(
mid bigint unsigned auto_increment
primary key,
user_id varchar(64) not null comment '用户id',
access_type varchar(30) null comment '访问类型: 详情页now_tk_detail,票种页now_tk_ticket,下单页now_tk_order,支付操作now_tk_pay',
performance_id varchar(100) null comment '演出id',
order_id varchar(100) null comment '订单id',
order_code varchar(64) null comment '订单编号',
ip_address varchar(100) null comment '操作ip',
area varchar(200) null comment 'ip全名称',
area_province varchar(100) null comment 'ip名称省',
area_city varchar(100) null comment 'ip名称市',
area_county varchar(100) null comment 'ip名称县',
created_at timestamp default CURRENT_TIMESTAMP not null
);
alter table kylin_order_tickets add area varchar(200) null comment 'ip地域全名称';
alter table kylin_order_tickets add area_province varchar(100) null comment 'ip地域省';
alter table kylin_order_tickets add area_city varchar(100) null comment 'ip地域市';
alter table kylin_order_tickets add area_county varchar(100) null comment 'ip地域县';
......@@ -27,6 +27,7 @@ public class AdamRedisConst {
*/
public static final String INFO_CERTIFICATION_JUNK = PREFIX.concat("info:certification_junk:");
public static final String INFO_MEMBER_JOINUS = PREFIX.concat("info:member:joinus:");
public static final String INFO_MEMBER_SIMPLE = PREFIX.concat("info:member:simple");
public static final String INFO_MEMBER_CATEGORY = PREFIX.concat("info:member:category:");
public static final String INFO_MEMBER_PRICE = PREFIX.concat("info:member:price:");
......@@ -54,7 +55,9 @@ public class AdamRedisConst {
public static final String INCR_MEMBER_NO = PREFIX.concat("incr:member_no");
public static final String INCR_MEMBER_LIMITATION = PREFIX.concat("incr:member_limitation");
public static final String SWITCH_BUY_MEMBER = PREFIX.concat("switch:buy:member");
// public static final String SWITCH_BUY_MEMBER = PREFIX.concat("switch:buy:member");
public static final String SERIAL_NUMBER_MEMBER = PREFIX.concat("serial_no:");
/* ----------------------------------------------------------------- */
......
......@@ -23,17 +23,27 @@ public class AdamMemberOrderCodeParam implements Serializable {
@Pattern(regexp = LnsRegex.Valid.DATETIME_YMD, message = "生日格式有误")
@NotBlank(message = "生日不能为空")
private String birthday;
@ApiModelProperty(position = 13, required = true, value = "地区[100]", example = "北京 北京市 朝阳区")
@NotBlank(message = "地区不能为空")
private String area;
@ApiModelProperty(position = 14, required = true, value = "收获地址")
// @ApiModelProperty(position = 13, required = true, value = "地区[100]", example = "北京 北京市 朝阳区")
// @NotBlank(message = "地区不能为空")
// private String area;
@ApiModelProperty(position = 13, required = true, value = "收获地址")
@Size(min = 1, max = 64, message = "收获地址长度限制1-64位字符")
@NotBlank(message = "收获地址不能为空")
private String addressId;
@ApiModelProperty(position = 15, value = "支付终端[app,wap,js,applet]", example = "js")
@ApiModelProperty(position = 14, value = "支付终端[app,wap,js,applet]", example = "js")
private String deviceFrom;
@ApiModelProperty(position = 16, required = false, value = "姓名[未实名时必传]")
@ApiModelProperty(position = 15, required = false, value = "姓名[未实名时必传]")
private String name;
@ApiModelProperty(position = 17, required = false, value = "身份证件号[未实名时必传]")
@ApiModelProperty(position = 16, required = false, value = "身份证件号[未实名时必传]")
private String idCard;
@ApiModelProperty(position = 17, required = true, value = "常住地/省[50] ~ 替换原字段[area]", example = "北京市")
@NotBlank(message = "省份不能为空")
private String province;
@ApiModelProperty(position = 18, required = true, value = "常住地/市[50] ~ 替换原字段[area]", example = "北京")
@NotBlank(message = "城市不能为空")
private String city;
@ApiModelProperty(position = 19, required = true, value = "常住地/区县[50] ~ 替换原字段[area]", example = "朝阳区")
@NotBlank(message = "区县不能为空")
private String county;
}
......@@ -13,6 +13,7 @@ import java.time.LocalDateTime;
@ApiModel(value = "AdamAddressesVo", description = "收获地址")
@JsonIgnoreProperties(value = {"uid", "town", "townId", "fullAddress", "deletedAt"})
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdamAddressesVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = -3096308044365829079L;
@ApiModelProperty(position = 10, value = "收获地址ID[64]")
......
......@@ -13,6 +13,7 @@ import java.time.LocalDateTime;
@ApiModel(value = "AdamEntersVo", description = "入场人")
@JsonIgnoreProperties(value = {"uid", "deletedAt"})
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdamEntersVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = -9143065766410946012L;
@ApiModelProperty(position = 10, value = "入场人ID[64]")
......
package com.liquidnet.service.adam.dto.vo;
import com.liquidnet.commons.lang.util.SensitizeUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.List;
@ApiModel(value = "AdamLoginInfoVo", description = "登录成功响应数据")
public class AdamLoginInfoVo implements Serializable, Cloneable {
......
package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.adam.entity.AdamMemberCode;
import io.swagger.annotations.ApiModel;
......@@ -12,6 +13,7 @@ import java.time.LocalDateTime;
@ApiModel(value = "AdamMemberCodeVo", description = "会员兑换码")
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdamMemberCodeVo implements Serializable, Cloneable {
private static final long serialVersionUID = -2822442493419088086L;
@ApiModelProperty(position = 0, value = "会员码批次号")
......
package com.liquidnet.service.adam.dto.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel(value = "AdamMemberJoinusVo", description = "领取的会员卡详情")
@Data
public class AdamMemberJoinusVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = -2346451755376200201L;
@ApiModelProperty(position = 10, value = "")
private String qrCode;
@ApiModelProperty(position = 11, value = "标题[50]", example = "摩登天空会员卡")
private String title;
@ApiModelProperty(position = 12, value = "副标题[50]", example = "摩登天空专属会员卡")
private String subTitle;
@ApiModelProperty(position = 13, value = "卡面[200]", example = "https://img.zhengzai.tv/member_card/member1.png")
private String cardface;
@ApiModelProperty(position = 14, value = "卡类型[0-非会员|10-普通会员|50-VIP会员]", example = "0")
private Integer type;
@ApiModelProperty(position = 15, value = "卡状态[0-未领取|1-已领取]", example = "0")
private Integer state;
@ApiModelProperty(position = 16, value = "权益详情[200]", example = "加入摩登天空会员您可享受到.....")
private String interestsDetail;
private static final AdamMemberJoinusVo obj = new AdamMemberJoinusVo();
public static AdamMemberJoinusVo getNew() {
try {
return (AdamMemberJoinusVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new AdamMemberJoinusVo();
}
}
}
package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.adam.dto.AdamMemberOrderDto;
import com.liquidnet.service.adam.entity.AdamMemberOrder;
......@@ -14,6 +15,7 @@ import java.time.LocalDateTime;
@ApiModel(value = "AdamMemberOrderVo", description = "订单详情展示")
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdamMemberOrderVo implements Serializable, Cloneable {
private static final long serialVersionUID = -1606153856097622877L;
@ApiModelProperty(position = 0, value = "订单号")
......
package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -9,6 +10,7 @@ import java.util.List;
@ApiModel(value = "AdamMemberRightsCouponVo", description = "会员专享特权券")
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdamMemberRightsCouponVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = 4099907681723174194L;
@ApiModelProperty(position = 1, value = "权益ID")
......@@ -31,6 +33,8 @@ public class AdamMemberRightsCouponVo implements java.io.Serializable, Cloneable
private BigDecimal valOver;
@ApiModelProperty(position = 10, value = "满减~减")
private BigDecimal valMinus;
@ApiModelProperty(position = 11, value = "折扣[8折即0.8]")
private BigDecimal discount;
/* com.liquidnet.service.adam.dto.vo.AdamMemberRightsCouponRuleVo */
private List<AdamMemberRightsCouponRuleVo> useRules;
......
package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.service.adam.entity.AdamMemberRights;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......@@ -7,6 +8,7 @@ import lombok.Data;
@ApiModel(value = "AdamMemberRightsVo", description = "会员")
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdamMemberRightsVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = -2407106925001008460L;
@ApiModelProperty(position = 1, value = "权益ID")
......
package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.adam.entity.AdamMember;
import io.swagger.annotations.ApiModel;
......@@ -13,6 +14,7 @@ import java.util.List;
@ApiModel(value = "AdamMemberVo", description = "会员")
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdamMemberVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = -3480288014645762321L;
@ApiModelProperty(position = 0, value = "会员ID[50]")
......@@ -120,13 +122,12 @@ public class AdamMemberVo implements java.io.Serializable, Cloneable {
try {
return (AdamMemberVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
return new AdamMemberVo();
}
return new AdamMemberVo();
}
public AdamMemberVo copy(AdamMember source) {
if (null == this) return this;
if (null == source) return this;
this.setMemberId(source.getMemberId());
this.setName(source.getName());
this.setTitle(source.getTitle());
......
......@@ -11,6 +11,7 @@ import java.io.Serializable;
@ApiModel(value = "AdamRealInfoVo", description = "实名信息")
@JsonIgnoreProperties(value = {"uid"})
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdamRealInfoVo implements Serializable, Cloneable {
private static final long serialVersionUID = -3469256375584132928L;
@ApiModelProperty(position = 10, value = "用户ID[30]")
......
......@@ -13,6 +13,7 @@ import java.time.LocalDateTime;
@ApiModel(value = "ThirdPartInfoVo", description = "用户第三方信息")
@JsonIgnoreProperties(value = {"uid"})
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdamThirdPartInfoVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = -3239086191919676121L;
@ApiModelProperty(position = 11, value = "用户ID[64]")
......
package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.core.type.TypeReference;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
......@@ -14,10 +15,10 @@ import org.apache.commons.lang3.StringUtils;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Pattern;
@ApiModel(value = "AdamUserInfoVo", description = "用户详情")
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdamUserInfoVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = 8479869354894030303L;
@ApiModelProperty(position = 10, value = "用户ID[64]")
......
......@@ -16,6 +16,7 @@ import java.time.format.DateTimeFormatter;
@ApiModel(value = "AdamUserMemberVo", description = "会员用户信息")
@JsonIgnoreProperties(value = {"uid"})
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdamUserMemberVo implements Serializable, Cloneable {
private static final long serialVersionUID = 9027553500608702757L;
@ApiModelProperty(position = 11, value = "用户ID")
......
package com.liquidnet.service.adam.dto.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@ApiModel(value = "AdamUserProfileVo", description = "个人信息响应数据")
@Data
public class AdamUserProfileVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = 3782062486028972984L;
@ApiModelProperty(position = 11, value = "用户信息")
private AdamUserInfoVo userInfo;
@ApiModelProperty(position = 12, value = "实名信息")
private AdamRealInfoVo realNameInfo;
@ApiModelProperty(position = 13, value = "用户第三方账号信息")
private List<AdamThirdPartInfoVo> thirdPartInfo;
@ApiModelProperty(position = 14, value = "会员信息")
private AdamMemberSimpleVo memberVo;
@ApiModelProperty(position = 15, value = "用户会员信息")
private AdamUserMemberVo userMemberVo;
@ApiModelProperty(position = 16, value = "会员卡信息")
private AdamMemberJoinusVo memberJoinusVo;
private static final AdamUserProfileVo obj = new AdamUserProfileVo();
public static AdamUserProfileVo getNew() {
try {
return (AdamUserProfileVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new AdamUserProfileVo();
}
}
}
......@@ -41,7 +41,7 @@ public class CandyMemberCouponBuildParam {
@ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券|101-优先券]", allowableValues = "1,2,101")
private Integer couType;
// @NotNull(message = "券领取方式不能为空")
// @ApiModelProperty(required = true, value = "领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换]", allowableValues = "0,1")
// @ApiModelProperty(required = true, value = "领取方式[0-用户输入兑换|1-发放至用户|2-积分商品|3-发放需领取|4-会员专属]", allowableValues = "0,1,2,3,4")
// private Integer bindType;
// @ApiModelProperty(required = false, value = "折扣[8折即0.8]", example = "0.8")
// private BigDecimal discount;
......
package com.liquidnet.service.candy.dto.admin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@ApiModel(value = "CandyMemberCouponMatchParam", description = "会员权益券配置入参")
@Data
public class CandyMemberCouponMatchParam {
@ApiModelProperty(required = true, value = "会员类型ID[64]", example = "1")
@NotBlank(message = "会员类型ID不能为空")
private String memberId;
@ApiModelProperty(required = true, value = "权益ID[64]", example = "21269184646476")
@NotBlank(message = "会员权益ID不能为空")
private String mrightsId;
@NotBlank(message = "权益券ID不能为空")
@ApiModelProperty(required = true, value = "券ID", example = "20211111161557612")
private String couponId;
@NotNull(message = "券类别不能为空")
@ApiModelProperty(required = true, value = "业务类别[0-全场|1-演出|2-商品|3-优先购]", allowableValues = "0,1,2,3")
private Integer busiType;
@NotNull(message = "券类型不能为空")
// @ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券|101-优先券]", allowableValues = "1,2,3,4,101")
@ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券|4-折扣券|101-优先券]", allowableValues = "1,2,4,101")
private Integer couType;
@NotNull(message = "券发放量不能为空")
@Max(value = 100, message = "发放量不满足1~100范围")
@Min(value = 1, message = "发放量不满足1~100范围")
@ApiModelProperty(required = true, value = "发放量", example = "1")
private Integer eventAmt;
@ApiModelProperty(required = true, value = "权益券操作类型[1-添加|2-删除|3-编辑]")
@NotNull(message = "操作类型不能为空")
private Integer oper;
@ApiModelProperty(required = false, value = "券ID(仅`state=3-编辑`时必填`)")
private String operCouponId;
}
......@@ -25,10 +25,10 @@ public class CandyMgtCouponBuildParam {
@ApiModelProperty(required = true, value = "业务类别[0-全场|1-演出|2-商品|3-优先购]", allowableValues = "0,1,2,3")
private Integer busiType;
@NotNull(message = "券类型不能为空")
@ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券|101-优先券]", allowableValues = "1,2,3,4,101")
@ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券101-优先券]", allowableValues = "1,2,3,4,101")
private Integer couType;
@NotNull(message = "券领取方式不能为空")
@ApiModelProperty(required = true, value = "领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换]", allowableValues = "0,1,2")
@ApiModelProperty(required = true, value = "领取方式[0-用户输入兑换|1-发放至用户|2-积分商品|3-发送需领取|4-会员专属]", allowableValues = "0,1,2,3,4")
private Integer bindType;
@ApiModelProperty(required = false, value = "折扣[8折即0.8]", example = "0.8")
private BigDecimal discount;
......@@ -72,7 +72,7 @@ public class CandyMgtCouponBuildParam {
@Min(value = 1, message = "发放量不能小于1")
@ApiModelProperty(required = true, value = "发放量", example = "1")
private Integer eventAmt;
@ApiModelProperty(required = false, value = "发放类型[0-保留|1-会员|2-手机号|10-全体用户]", allowableValues = "0,1,2,10")
@ApiModelProperty(required = false, value = "发放类型[0-保留|1-会员|2-手机号10-全体用户]", allowableValues = "0,1,2,10")
private Integer eventType;
@ApiModelProperty(required = false, value = "`发放类型`为2-手机号时发放手机号以,分隔", example = "18510957291,17701223310")
private String eventLimit;
......
package com.liquidnet.service.candy.vo;
import com.liquidnet.service.candy.dto.CandyCouponInfoDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
@Data
@ApiModel
public class CandyCouponBasicVo implements Serializable, Cloneable {
/* --- --- --- CandyCoupon */
@ApiModelProperty(value = "标题")
private String title;
@ApiModelProperty(value = "标注")
private String label;
@ApiModelProperty(value = "须知")
private String notice;
@ApiModelProperty(value = "业务类别[0-全场|1-演出|2-商品|3-优先购]")
private Integer busiType;
@ApiModelProperty(value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券 | 101-优先券]")
private Integer couType;
@ApiModelProperty(value = "[0-用户输入兑换|1-发放至用户|2-积分商品|3-发放需领取|4-会员专属]")
private Integer bindType;
@ApiModelProperty(value = "折扣")
private BigDecimal discount;
@ApiModelProperty(value = "面值")
private BigDecimal valFace;
@ApiModelProperty(value = "满减~满")
private BigDecimal valOver;
@ApiModelProperty(value = "满减~减")
private BigDecimal valMinus;
@ApiModelProperty(value = "过期时间")
private String expireAt;
/* --- --- --- CandyCouponRule */
private List<CandyCouponRulesVo> useRules;
private static final CandyCouponBasicVo obj = new CandyCouponBasicVo();
public static CandyCouponBasicVo getNew() {
try {
return (CandyCouponBasicVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new CandyCouponBasicVo();
}
}
public CandyCouponBasicVo copy(CandyCouponInfoDto source) {
if (null == source) return this;
return this;
}
}
package com.liquidnet.service.candy.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
@Data
@ApiModel
public class CandyCouponPreviewVo implements Serializable, Cloneable {
/* --- --- --- CandyCoupon */
private String couponId;
@ApiModelProperty(value = "标题")
private String title;
@ApiModelProperty(value = "标注")
private String label;
@ApiModelProperty(value = "须知")
private String notice;
@ApiModelProperty(value = "业务类别[0-全场|1-演出|2-商品|3-优先购]")
private Integer busiType;
@ApiModelProperty(value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券 | 101-优先券]")
private Integer couType;
@ApiModelProperty(value = "[0-用户输入兑换|1-发放至用户|2-积分商品|3-发放需领取|4-会员专属]")
private Integer bindType;
@ApiModelProperty(value = "折扣")
private BigDecimal discount;
@ApiModelProperty(value = "面值")
private BigDecimal valFace;
@ApiModelProperty(value = "满减~满")
private BigDecimal valOver;
@ApiModelProperty(value = "满减~减")
private BigDecimal valMinus;
@ApiModelProperty(value = "有效天数")
private Integer validity;
@ApiModelProperty(value = "兑换有效天数")
private Integer redeemValidity;
/* --- --- --- CandyCouponRule */
private List<CandyCouponRulesVo> useRules;
private static final CandyCouponPreviewVo obj = new CandyCouponPreviewVo();
public static CandyCouponPreviewVo getNew() {
try {
return (CandyCouponPreviewVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new CandyCouponPreviewVo();
}
}
}
......@@ -29,7 +29,7 @@ public class CandyCouponVo implements Serializable, Cloneable {
private Integer busiType;
@ApiModelProperty(value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券 | 101-优先券]",example = "1")
private Integer couType;
@ApiModelProperty(value = "[0-用户输入兑换|1-发放至用户]",example = "1")
@ApiModelProperty(value = "[0-用户输入兑换|1-发放至用户|2-积分商品|3-发放需领取|4-会员专属]",example = "1")
private Integer bindType;
@ApiModelProperty(value = "折扣 可null",example = "0.5")
private BigDecimal discount;
......
......@@ -66,6 +66,7 @@ public class KylinRedisConst {
public static final String ADMIN_UPUSH_LIST_IOS = "basicServices:upushList:IOS";
public static final String ADMIN_UPUSH_LIST_ANDROID = "basicServices:upushList:Android";
public static final String ADMIN_UPUSH_LIST_READ_UID = "basicServices:upushList:read:uid";
public static final String ADMIN_BANNER_LIST = "kylin:bannerList";
......
......@@ -85,4 +85,28 @@ public class KylinTableStatusConst {
public static final Integer ORDER_EXPRESS_STATUS8000 = 8000; // 签收结单
public static final Integer ORDER_EXPRESS_SEND_TYPE1 = 1; // 发货
public static final Integer ORDER_EXPRESS_SEND_TYPE2 = 2; // 退款
public enum PvUv {
TK_DETAILS("now_tk_detail", "详情页"),
TK_TICKET("now_tk_ticket", "票种页"),
TK_ORDER("now_tk_order", "预下单页"),
TK_PAY("now_tk_pay", "支付操作");
private final String key;
private final String desc;
PvUv(String key, String desc) {
this.key = key;
this.desc = desc;
}
public String getKey() {
return key;
}
public String getDesc() {
return desc;
}
}
}
package com.liquidnet.service.kylin.dto.vo.mongo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: KylinIpArea
* @Package com.liquidnet.service.kylin.dto.vo.mongo
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/11/24 11:57
*/
@Data
@ApiModel
public class KylinIpAreaVo implements Serializable,Cloneable{
@ApiModelProperty(value = "mid")
private String mid;
@ApiModelProperty(value = "ipBegin")
private String ipBegin;
@ApiModelProperty(value = "ipBegin")
private long ipBeginLong;
@ApiModelProperty(value = "ipEnd")
private String ipEnd;
@ApiModelProperty(value = "ipEnd")
private long ipEndLong;
@ApiModelProperty(value = "area")
private String area;
@ApiModelProperty(value = "province")
private String province;
@ApiModelProperty(value = "city")
private String city;
@ApiModelProperty(value = "county")
private String county;
@ApiModelProperty(value = "address")
private String address;
@ApiModelProperty(value = "createdAt")
private String createdAt;
private static final KylinIpAreaVo obj = new KylinIpAreaVo();
public static KylinIpAreaVo getNew() {
try {
return (KylinIpAreaVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new KylinIpAreaVo();
}
}
}
......@@ -79,6 +79,15 @@ public interface IKylinPerformancesAdminService {
*/
List<PerformanceSimpleAllDao> getListDetailByStatus(String status, String title);
/**
* 根据(演出\场次\票种)ID 查询演出、场次、票种信息
*
* @param scope ID所属字段
* @param id ID值
* @return 1条记录(包括演出名称、场次名称?、票种名称?及对于ID)
*/
PerformanceSimpleAllDao getSimpleDetailByScopeAndId(String scope, String id);
/**
* 修改演出的巡演关联
......
......@@ -11,10 +11,12 @@ import java.time.LocalDateTime;
@ApiModel(value = "StoneItemBuildParam", description = "新建积分物品")
@Data
public class StoneItemBuildParam {
@ApiModelProperty(required = false, value = "积分物品id[创建不传]", example = "1")
@ApiModelProperty(value = "积分物品id[创建不传]", example = "1")
private String itemId;
@ApiModelProperty(required = true, value = "目标类型[1-券|11-商品维度|21-演出维度]", example = "1")
private Integer type;
@NotBlank(message = "目标物品不能为空")
@ApiModelProperty(required = true, value = "目标物品id", example = "1")
@ApiModelProperty(value = "目标物品id", example = "1")
private String targetId;
@NotBlank(message = "目标物品不能为空")
@ApiModelProperty(required = true, value = "目标物品标题", example = "测试券1")
......
......@@ -35,6 +35,11 @@
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-service-candy-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
package com.liquidnet.service.sweet.constant;
/**
* <p>
* sweet表状态常量定义
* </p>
*
* @author jiangxiulong
* @since 2021-12-03
*/
public class StatusConst {
// 积分抽奖 奖品类型 1积分 2优惠券 3实物 4登登登VIP 5优先购买券
public static final Integer PRIZE_TYPE1 = 1;
public static final Integer PRIZE_TYPE2 = 2;
public static final Integer PRIZE_TYPE3 = 3;
public static final Integer PRIZE_TYPE4 = 4;
public static final Integer PRIZE_TYPE5 = 5;
}
......@@ -30,14 +30,15 @@ public class SweetConstant {
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_LIST = "sweet:integralActivity:list";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_INFO = "sweet:integralActivity:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM = "sweet:integralActivity:prizeNum:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_WINNERS_NUM = "sweet:integralActivity:prizeWinnersNum:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_ID = ":prizeId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_ALL_LIST = "sweet:integralActivity:Draw:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_USER = "sweet:integralActivity:Draw:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_IN_USER = "sweet:integralActivity:DrawIn:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_USER_KEY = ":userId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_INFO = "sweet:integralActivity:DrawInfo:drawId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_LOCK = "sweet:integralActivity:lock:userId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_ESTIMATEDNUM = "sweet:integralActivity:estimatedNum:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_TOTAL_PRIZE_NUM = "sweet:integralActivity:totalPrizeNum:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_BLACK = "sweet:integralActivity:drawBlack";
// 答题活动
public final static String REDIS_KEY_SWEET_ANSWER_PHONE = "sweet:answer:phone:";
// 城市投票活动
......@@ -46,20 +47,28 @@ public class SweetConstant {
public final static String REDIS_KEY_SWEET_CITY_VOTE = "sweet:cityVote";
public final static String REDIS_KEY_SWEET_CITY_VOTE_USER = ":user:";
public final static String REDIS_KEY_SWEET_CITY_VOTE_STAT_UPDATE_TIME = ":updateTime";
// 微信用户相关
public final static String REDIS_KEY_SWEET_WECHAT_USER_INFO = "sweet:wechatUser:zhengzai:unionId:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_INFO_MODERNSKY = "sweet:wechatUser:modernsky:unionId:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_UNIONID = "sweet:wechatUser:zhengzai:openId:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_UNIONID_MODERNSKY = "sweet:wechatUser:modernsky:openId:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_UNIONID_PHONE = "sweet:wechatUser:zhengzai:phone:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_UNIONID_PHONE_MODERNSKY = "sweet:wechatUser:modernsky:phone:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_UNIONID_UID = "sweet:wechatUser:zhengzai:uid:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_UNIONID_UID_MODERNSKY = "sweet:wechatUser:modernsky:uid:";
// 微信服务号用户相关 新
public final static String REDIS_KEY_SWEET_CITY_VOTE_START = "sweet:cityVote:startTime:";//活动开始时间
public final static String REDIS_KEY_SWEET_CITY_VOTE_END = "sweet:cityVote:endTime:";//活动结束时间
public final static String REDIS_KEY_SWEET_CITY_VOTE_BANNER = "sweet:cityVote:banner:";//活动banner
// 2021草莓音乐节海报活动活动
public static final String REDIS_KEY_SWEET_STRAWBERRY_POSTER_CLICK = "sweet:strawberryPoster:click:openId:";
// 微信服务号用户相关
public final static String REDIS_KEY_SWEET_WECHAT_USERS_UNIONID = "sweet:user:service:unionId:";
public final static String REDIS_KEY_SWEET_WECHAT_USERS_OPENID = "sweet:user:service:openId:";
public final static String REDIS_KEY_SWEET_WECHAT_USERS_TYPE = ":type:";
// 微信小程序用户相关
// 微信小程序用户相关
public final static String REDIS_KEY_SWEET_APPLET_USERS_PHONE = "sweet:user:applet:mobile:";
public final static String REDIS_KEY_SWEET_APPLET_USERS_UNIONID = "sweet:user:applet:unionid:";
//2022草莓音乐节活动海报相关
public final static String REDIS_KEY_SWEET_STRAWBERRY_POSTER = "sweet:strawberry:poster";
//猫登活动-触发活动
public final static String REDIS_KEY_SWEET_WECHAT_MAODENG_OPEN_POSTER = "sweet:maoDeng:open:openId";
//猫登活动整体
public final static String REDIS_KEY_SWEET_WECHAT_MAODENG_POSTER = "sweet:maoDeng:naneAndImg:openId";
//猫登活动整体
public final static String REDIS_KEY_SWEET_WECHAT_MAODENG_POSTER_TRANSFER = "sweet:maoDeng:naneAndImg:openId:transfer";
}
......@@ -50,6 +50,10 @@ public class SweetIntegralActivityFromParam implements Serializable, Cloneable {
@NotNull(message = "activityNum不能为空")
private Integer activityNum;
@ApiModelProperty(required = true, value = "预估玩此活动的总人数", example = "1")
@NotNull(message = "estimatedNum不能为空")
private Integer estimatedNum;
@ApiModelProperty(required = true, value = "活动时间类型 1长期 2开始结束时间", example = "1")
@NotNull(message = "timeType不能为空") @Min(value = 1, message = "timeType无效") @Max(value = 2, message = "timeType无效")
private Integer timeType;
......@@ -68,6 +72,10 @@ public class SweetIntegralActivityFromParam implements Serializable, Cloneable {
@NotBlank(message = "activityTitle不能为空")
private String activityRules;
@ApiModelProperty(required = true, value = "概率公示", example = "这里是概率公示")
@NotBlank(message = "probabilityPublicity不能为空")
private String probabilityPublicity;
@ApiModelProperty(required = true, value = "是否上线 1未上线 2已上线", example = "2")
@NotNull(message = "isOnline不能为空") @Min(value = 1, message = "isOnline无效") @Max(value = 2, message = "isOnline无效")
private Integer isOnline;
......@@ -95,6 +103,7 @@ public class SweetIntegralActivityFromParam implements Serializable, Cloneable {
sweetIntegralActivity.setActivityImg(source.getActivityImg());
sweetIntegralActivity.setActivityType(source.getActivityType());
sweetIntegralActivity.setActivityNum(source.getActivityNum());
sweetIntegralActivity.setEstimatedNum(source.getEstimatedNum());
sweetIntegralActivity.setTimeType(source.getTimeType());
if (null != source.getStartTime() && !source.getStartTime().isEmpty()) {
LocalDateTime startTime = DateUtil.Formatter.yyyyMMddHHmmss.parse(source.getStartTime());
......@@ -106,6 +115,7 @@ public class SweetIntegralActivityFromParam implements Serializable, Cloneable {
}
sweetIntegralActivity.setExpressFeeType(source.getExpressFeeType());
sweetIntegralActivity.setActivityRules(source.getActivityRules());
sweetIntegralActivity.setProbabilityPublicity(source.getProbabilityPublicity());
sweetIntegralActivity.setIsOnline(source.getIsOnline());
return sweetIntegralActivity;
}
......
......@@ -35,6 +35,9 @@ public class SweetIntegralActivityPrizeFormParam implements Serializable,Cloneab
@NotBlank(message = "prizeTitle不能为空")
private String prizeTitle;
@ApiModelProperty(required = false, value = "奖品描述", example = "奖品描述")
private String prizeDescribe;
@ApiModelProperty(required = true, value = "初始展示奖品图片", example = "test.png")
@NotBlank(message = "prizeImgInit不能为空")
private String prizeImgInit;
......@@ -43,23 +46,20 @@ public class SweetIntegralActivityPrizeFormParam implements Serializable,Cloneab
@NotBlank(message = "prizeImgSelect不能为空")
private String prizeImgSelect;
@ApiModelProperty(required = true, value = "奖品类型 1谢谢惠顾 2积分 3代金券 4满减券 5优先购买券 6实物", example = "1")
@ApiModelProperty(required = true, value = "奖品类型 1积分 2优惠券 3实物 4登登登VIP 5优先购买券", example = "1")
@NotNull(message = "prizeType不能为空")
private Integer prizeType;
@ApiModelProperty(required = false, value = "单次奖励数量如积分 中奖给多少物", example = "1")
private Integer prizeTypeNum;
@ApiModelProperty(value = "关联id 如商品id 券id 选择奖品的时候必传", example = "429803743878963206506461")
private String relationId;
@ApiModelProperty(required = true, value = "奖品数量", example = "100")
@NotNull(message = "prizeNum不能为空")
private Integer prizeNum;
@ApiModelProperty(required = true, value = "限制的中奖人数", example = "10")
@NotNull(message = "winnersNum不能为空")
private Integer winnersNum;
@ApiModelProperty(required = true, value = "是否是无限库存 1有限库存 2无限库存", example = "1")
@NotNull(message = "isInfinite不能为空")
private Integer isInfinite;
@ApiModelProperty(required = true, value = "中奖概率", example = "1")
@NotNull(message = "winningProbability不能为空")
......@@ -81,13 +81,13 @@ public class SweetIntegralActivityPrizeFormParam implements Serializable,Cloneab
sweetIntegralActivityPrize.setIntegralActivityId(source.getIntegralActivityId());
sweetIntegralActivityPrize.setPrizeId(source.getPrizeId());
sweetIntegralActivityPrize.setPrizeTitle(source.getPrizeTitle());
sweetIntegralActivityPrize.setPrizeDescribe(source.getPrizeDescribe());
sweetIntegralActivityPrize.setPrizeImgInit(source.getPrizeImgInit());
sweetIntegralActivityPrize.setPrizeImgSelect(source.getPrizeImgSelect());
sweetIntegralActivityPrize.setPrizeType(source.getPrizeType());
sweetIntegralActivityPrize.setPrizeTypeNum(source.getPrizeTypeNum());
sweetIntegralActivityPrize.setRelationId(source.getRelationId());
sweetIntegralActivityPrize.setPrizeNum(source.getPrizeNum());
sweetIntegralActivityPrize.setWinnersNum(source.getWinnersNum());
sweetIntegralActivityPrize.setIsInfinite(source.getIsInfinite());
sweetIntegralActivityPrize.setWinningProbability(source.getWinningProbability());
return sweetIntegralActivityPrize;
}
......
package com.liquidnet.service.sweet.dto.param.admin;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityPrizeRelation;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* <p>
* SweetIntegralActivityPrizeRelationFormParam
* </p>
*
* @author jiangxiulong
* @since 2021-12-02
*/
@Data
@ApiModel(value = "SweetIntegralActivityPrizeRelationFormParam", description = "积分活动创建奖品入参")
public class SweetIntegralActivityPrizeRelationFormParam implements Serializable, Cloneable {
private static final long serialVersionUID = -4381851476183020667L;
@ApiModelProperty(value = "活动主键id", example = "429803743878963206506461")
@NotBlank(message = "integralActivityId不能为空")
private String integralActivityId;
@ApiModelProperty(value = "奖品主键id", example = "429803743878963206506461")
@NotBlank(message = "prizeId不能为空")
private String prizeId;
@ApiModelProperty(value = "券id", example = "429803743878963206506461")
@NotBlank(message = "couponId不能为空")
private String couponId;
@ApiModelProperty(value = "券名称", example = "优惠券")
@NotBlank(message = "couponTitle不能为空")
private String couponTitle;
private static final SweetIntegralActivityPrizeRelationFormParam obj = new SweetIntegralActivityPrizeRelationFormParam();
public static SweetIntegralActivityPrizeRelationFormParam getNew() {
try {
return (SweetIntegralActivityPrizeRelationFormParam) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetIntegralActivityPrizeRelationFormParam();
}
}
public SweetIntegralActivityPrizeRelation copy(SweetIntegralActivityPrizeRelationFormParam source) {
SweetIntegralActivityPrizeRelation activityPrizeRelation = SweetIntegralActivityPrizeRelation.getNew();
if (null == source) return null;
activityPrizeRelation.setPrizeId(source.getPrizeId());
activityPrizeRelation.setCouponId(source.getCouponId());
activityPrizeRelation.setCouponTitle(source.getCouponTitle());
return activityPrizeRelation;
}
}
\ No newline at end of file
/*package com.liquidnet.service.sweet.dto.param.poster;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
@ApiModel(value = "SweetStrawMusicianParam", description = "音乐人")
@Data
public class SweetStrawListParam implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(position = 10, required = true, value = "lineupNum", example = "lineupNum")
@NotBlank(message = "lineupNum不能为空")
private List<SweetStrawMusicianParam> lineup;
}*/
package com.liquidnet.service.sweet.dto.param.poster;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
@ApiModel(value = "SweetStrawMusicianParam", description = "音乐人")
@Data
public class SweetStrawMusicianParam implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(position = 10, required = true, value = "lineupNum", example = "lineupNum")
@NotBlank(message = "lineupNum不能为空")
private String lineupNum;
@ApiModelProperty(position = 10, required = true, value = "musicianName", example = "musicianName")
@NotBlank(message = "musicianName不能为空")
private String[] musicianName;
}
package com.liquidnet.service.sweet.dto.param.poster;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
@ApiModel(value = "SweetStrawberryParam", description = "海报数据")
@Data
public class SweetStrawberryParam implements Serializable {
private static final long serialVersionUID = 9038992103808199663L;
@ApiModelProperty(position = 10, required = true, value = "openId", example = "openId")
@NotBlank(message = "openId不能为空")
private String openId;
@ApiModelProperty(position = 10, required = true, value = "unionId", example = "unionId")
@NotBlank(message = "unionId不能为空")
private String unionId;
@ApiModelProperty(position = 10, required = true, value = "nickname", example = "nickname")
@NotBlank(message = "nickname不能为空")
private String nickname;
@ApiModelProperty(position = 10, required = true, value = "cityName", example = "cityName")
@NotBlank(message = "cityName不能为空")
private String cityName;
@ApiModelProperty(position = 10, required = true, value = "cityCode", example = "cityCode")
@NotBlank(message = "cityCode不能为空")
private String cityCode;
@ApiModelProperty(position = 10, required = true, value = "customText", example = "customText")
@NotBlank(message = "customText不能为空")
private String customText;
@Valid
@ApiModelProperty(value = "阵容列表", example = "[{\"lineupNum\": \"lineup1\",\"musicianId\": 9999,\"musicianName\": \"歌手1\"},\n" +
" {\"lineupNum\": \"lineup1\",\"musicianId\": 23233,\"musicianName\": \"歌手D\"},\n" +
" {\"lineupNum\": \"lineup2\",\"musicianId\": 1111,\"musicianName\": \"歌手2\"}]")
@NotNull(message = "musicianList")
private List<SweetStrawMusicianParam> musicianList;
private static final SweetStrawberryParam obj = new SweetStrawberryParam();
public static SweetStrawberryParam getNew() {
try {
return (SweetStrawberryParam) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetStrawberryParam();
}
}
}
\ No newline at end of file
......@@ -29,7 +29,7 @@ public class IntegralActivityDrawVo implements Serializable, Cloneable {
@ApiModelProperty(value = "奖品名称")
private String prizeTitle;
@ApiModelProperty(value = "奖品类型 1谢谢惠顾 2积分 3代金券 4满减券 5优先购买券 6实物")
@ApiModelProperty(value = "奖品类型 1积分 2优惠券 3实物 4登登登VIP 5优先购买券惠顾 2积分 3代金券 4满减券 5优先购买券 6实物")
private Integer prizeType;
@ApiModelProperty(value = "关联id 如商品id 券id")
......@@ -65,15 +65,15 @@ public class IntegralActivityDrawVo implements Serializable, Cloneable {
@ApiModelProperty(value = "adam收货人详细地址")
private String receivingAddress;
@ApiModelProperty(value = "发放状态 1未发放 2已发放 3无需发放")
@ApiModelProperty(value = "发放状态 1未发放 2已发放")
private Integer receivingStatus;
@ApiModelProperty(value = "创建时间")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
// @JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime createdAt;
@ApiModelProperty(value = "更新时间")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
// @JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime updatedAt;
@ApiModelProperty(value = "快递费用类型 1包邮 2到付")
......
package com.liquidnet.service.sweet.dto.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class IntegralActivityPrizeApiVo implements Serializable, Cloneable {
private static final long serialVersionUID = -303399210433737206L;
@ApiModelProperty(value = "奖品id")
private String prizeId;
@ApiModelProperty(value = "关联活动id")
private String integralActivityId;
@ApiModelProperty(value = "抽奖id")
private String drawId;
@ApiModelProperty(value = "奖品名称")
private String prizeTitle;
@ApiModelProperty(value = "奖品描述")
private String prizeDescribe;
@ApiModelProperty(value = "初始展示奖品图片")
private String prizeImgInit;
@ApiModelProperty(value = "中奖选中奖品图片")
private String prizeImgSelect;
@ApiModelProperty(value = "奖品类型 1积分 2优惠券 3实物 4登登登VIP 5优先购买券")
private Integer prizeType;
@ApiModelProperty(value = "单次奖励数量如积分 中奖给多少物")
private Integer prizeTypeNum;
private static final IntegralActivityPrizeApiVo obj = new IntegralActivityPrizeApiVo();
public static IntegralActivityPrizeApiVo getNew() {
try {
return (IntegralActivityPrizeApiVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new IntegralActivityPrizeApiVo();
}
}
public IntegralActivityPrizeApiVo copy(IntegralActivityPrizeVo source) {
if (null == this) return this;
this.setIntegralActivityId(source.getIntegralActivityId());
this.setPrizeId(source.getPrizeId());
this.setIntegralActivityId(source.getIntegralActivityId());
this.setPrizeTitle(source.getPrizeTitle());
this.setPrizeDescribe(source.getPrizeDescribe());
this.setPrizeImgInit(source.getPrizeImgInit());
this.setPrizeImgSelect(source.getPrizeImgSelect());
this.setPrizeType(source.getPrizeType());
this.setPrizeTypeNum(source.getPrizeTypeNum());
return this;
}
}
package com.liquidnet.service.sweet.dto.vo;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityPrizeRelation;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
public class IntegralActivityPrizeRelationVo implements Serializable, Cloneable {
private static final long serialVersionUID = -303399210433737206L;
@ApiModelProperty(value = "prize_relation_id")
private String prizeRelationId;
@ApiModelProperty(value = "prize_id")
private String prizeId;
@ApiModelProperty(value = "券id")
private String couponId;
@ApiModelProperty(value = "券名称")
private String couponTitle;
@ApiModelProperty(value = "创建时间")
private LocalDateTime createdAt;
@ApiModelProperty(value = "更新时间")
private LocalDateTime updatedAt;
private static final IntegralActivityPrizeRelationVo obj = new IntegralActivityPrizeRelationVo();
public static IntegralActivityPrizeRelationVo getNew() {
try {
return (IntegralActivityPrizeRelationVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new IntegralActivityPrizeRelationVo();
}
}
public IntegralActivityPrizeRelationVo copy(SweetIntegralActivityPrizeRelation source) {
if (null == this) return this;
this.setPrizeRelationId(source.getPrizeRelationId());
this.setPrizeId(source.getPrizeId());
this.setCouponId(source.getCouponId());
this.setCouponTitle(source.getCouponTitle());
this.setCreatedAt(source.getCreatedAt());
this.setUpdatedAt(source.getUpdatedAt());
return this;
}
}
package com.liquidnet.service.sweet.dto.vo;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityPrize;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class IntegralActivityPrizeVo implements Serializable, Cloneable {
private static final long serialVersionUID = -303399210433737206L;
@ApiModelProperty(value = "奖品id")
private String prizeId;
@ApiModelProperty(value = "关联活动id")
private String integralActivityId;
@ApiModelProperty(value = "奖品名称")
private String prizeTitle;
@ApiModelProperty(value = "奖品描述")
private String prizeDescribe;
@ApiModelProperty(value = "初始展示奖品图片")
private String prizeImgInit;
@ApiModelProperty(value = "中奖选中奖品图片")
private String prizeImgSelect;
@ApiModelProperty(value = "奖品类型 1积分 2优惠券 3实物 4登登登VIP 5优先购买券")
private Integer prizeType;
@ApiModelProperty(value = "单次奖励数量如积分 中奖给多少物")
private Integer prizeTypeNum;
@ApiModelProperty(value = "奖品数量")
private Integer prizeNum;
@ApiModelProperty(value = "是否是无限库存 1有限库存 2无限")
private Integer isInfinite;
@ApiModelProperty(value = "中奖概率")
private BigDecimal winningProbability;
@ApiModelProperty(value = "创建时间")
private LocalDateTime createdAt;
@ApiModelProperty(value = "更新时间")
private LocalDateTime updatedAt;
@ApiModelProperty(value = "券列表")
private List<IntegralActivityPrizeRelationVo> prizeRelationList;
private static final IntegralActivityPrizeVo obj = new IntegralActivityPrizeVo();
public static IntegralActivityPrizeVo getNew() {
try {
return (IntegralActivityPrizeVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new IntegralActivityPrizeVo();
}
}
public IntegralActivityPrizeVo copy(SweetIntegralActivityPrize source) {
if (null == this) return this;
this.setIntegralActivityId(source.getIntegralActivityId());
this.setPrizeId(source.getPrizeId());
this.setIntegralActivityId(source.getIntegralActivityId());
this.setPrizeTitle(source.getPrizeTitle());
this.setPrizeDescribe(source.getPrizeDescribe());
this.setPrizeImgInit(source.getPrizeImgInit());
this.setPrizeImgSelect(source.getPrizeImgSelect());
this.setPrizeType(source.getPrizeType());
this.setPrizeTypeNum(source.getPrizeTypeNum());
this.setPrizeNum(source.getPrizeNum());
this.setIsInfinite(source.getIsInfinite());
this.setWinningProbability(source.getWinningProbability());
this.setCreatedAt(source.getCreatedAt());
this.setUpdatedAt(source.getUpdatedAt());
return this;
}
}
package com.liquidnet.service.sweet.dto.vo;
import com.liquidnet.service.sweet.entity.SweetIntegralActivity;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityPrize;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -29,6 +28,9 @@ public class IntegralActivityVo implements Serializable, Cloneable {
@ApiModelProperty(value = "活动玩一次所需积分")
private Integer activityNum;
@ApiModelProperty(value = "预估玩此活动的总人数")
private Integer estimatedNum;
@ApiModelProperty(value = "活动时间类型 1长期 2开始结束时间")
private Integer timeType;
......@@ -44,6 +46,9 @@ public class IntegralActivityVo implements Serializable, Cloneable {
@ApiModelProperty(value = "活动规则")
private String activityRules;
@ApiModelProperty(value = "概率公示")
private String probabilityPublicity;
@ApiModelProperty(value = "是否上线 1未上线 2已上线")
private Integer isOnline;
......@@ -54,7 +59,13 @@ public class IntegralActivityVo implements Serializable, Cloneable {
private LocalDateTime updatedAt;
@ApiModelProperty(value = "奖品列表")
private List<SweetIntegralActivityPrize> prizeList;
private List<IntegralActivityPrizeVo> prizeList;
@ApiModelProperty(value = "奖品列表 积分、券")
private List<IntegralActivityPrizeVo> prizeList1;
@ApiModelProperty(value = "奖品列表 实物、会员、优先购买券")
private List<IntegralActivityPrizeVo> prizeList2;
private static final IntegralActivityVo obj = new IntegralActivityVo();
public static IntegralActivityVo getNew() {
......@@ -72,11 +83,13 @@ public class IntegralActivityVo implements Serializable, Cloneable {
this.setActivityImg(source.getActivityImg());
this.setActivityType(source.getActivityType());
this.setActivityNum(source.getActivityNum());
this.setEstimatedNum(source.getEstimatedNum());
this.setTimeType(source.getTimeType());
this.setStartTime(source.getStartTime());
this.setEndTime(source.getEndTime());
this.setExpressFeeType(source.getExpressFeeType());
this.setActivityRules(source.getActivityRules());
this.setProbabilityPublicity(source.getProbabilityPublicity());
this.setIsOnline(source.getIsOnline());
this.setCreatedAt(source.getCreatedAt());
this.setUpdatedAt(source.getUpdatedAt());
......
package com.liquidnet.service.sweet.dto.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class TempBannerVo implements Serializable, Cloneable {
private static final long serialVersionUID = -6777064807434774542L;
@ApiModelProperty(value = "banner图片")
private String src;
@ApiModelProperty(value = "banner链接")
private String url;
}
......@@ -35,26 +35,26 @@ public class SweetIntegralActivityPrizeVo implements Serializable, Cloneable {
@ApiModelProperty(value = "奖品名称")
private String prizeTitle;
@ApiModelProperty(value = "奖品描述")
private String prizeDescribe;
@ApiModelProperty(required = true, value = "初始展示奖品图片")
private String prizeImgInit;
@ApiModelProperty(required = true, value = "中奖选中奖品图片")
private String prizeImgSelect;
@ApiModelProperty(value = "奖品类型 1谢谢惠顾 2积分 3代金券 4满减券 5优先购买券 6实物")
@ApiModelProperty(value = "奖品类型 1积分 2优惠券 3实物 4登登登VIP 5优先购买券")
private Integer prizeType;
@ApiModelProperty(value = "单次奖励数量如积分 中奖给多少物")
private Integer prizeTypeNum;
@ApiModelProperty(value = "关联id 如商品id 券id")
private String relationId;
@ApiModelProperty(value = "奖品数量")
private Integer prizeNum;
@ApiModelProperty(value = "限制的中奖人数")
private Integer winnersNum;
@ApiModelProperty(value = "是否是无限库存 1有限库存 2无限")
private Integer isInfinite;
@ApiModelProperty(value = "中奖概率")
private BigDecimal winningProbability;
......@@ -85,13 +85,13 @@ public class SweetIntegralActivityPrizeVo implements Serializable, Cloneable {
this.setPrizeId(source.getPrizeId());
this.setIntegralActivityId(source.getIntegralActivityId());
this.setPrizeTitle(source.getPrizeTitle());
this.setPrizeDescribe(source.getPrizeDescribe());
this.setPrizeImgInit(source.getPrizeImgInit());
this.setPrizeImgSelect(source.getPrizeImgSelect());
this.setPrizeType(source.getPrizeType());
this.setPrizeTypeNum(source.getPrizeTypeNum());
this.setRelationId(source.getRelationId());
this.setPrizeNum(source.getPrizeNum());
this.setWinnersNum(source.getWinnersNum());
this.setIsInfinite(source.getIsInfinite());
this.setWinningProbability(source.getWinningProbability());
this.setCreatedAt(source.getCreatedAt());
this.setUpdatedAt(source.getUpdatedAt());
......
......@@ -41,6 +41,9 @@ public class SweetIntegralActivityVo implements Serializable, Cloneable {
@ApiModelProperty(value = "活动玩一次所需积分")
private Integer activityNum;
@ApiModelProperty(value = "预估玩此活动的总人数")
private Integer estimatedNum;
@ApiModelProperty(value = "活动时间类型 1长期 2开始结束时间")
private Integer timeType;
......@@ -56,6 +59,9 @@ public class SweetIntegralActivityVo implements Serializable, Cloneable {
@ApiModelProperty(value = "活动规则")
private String activityRules;
@ApiModelProperty(value = "概率公示")
private String probabilityPublicity;
@ApiModelProperty(value = "是否上线 1未上线 2已上线")
private Integer isOnline;
......@@ -87,11 +93,13 @@ public class SweetIntegralActivityVo implements Serializable, Cloneable {
this.setActivityImg(source.getActivityImg());
this.setActivityType(source.getActivityType());
this.setActivityNum(source.getActivityNum());
this.setEstimatedNum(source.getEstimatedNum());
this.setTimeType(source.getTimeType());
this.setStartTime(DateUtil.Formatter.yyyyMMddHHmmss.format(source.getStartTime()));
this.setEndTime(DateUtil.Formatter.yyyyMMddHHmmss.format(source.getEndTime()));
this.setExpressFeeType(source.getExpressFeeType());
this.setActivityRules(source.getActivityRules());
this.setProbabilityPublicity(source.getProbabilityPublicity());
this.setIsOnline(source.getIsOnline());
this.setCreatedAt(source.getCreatedAt());
this.setUpdatedAt(source.getUpdatedAt());
......
package com.liquidnet.service.sweet.param;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@ApiModel(value = "SweetStoneIntegralParam", description = "添加减少积分入参")
@Data
public class SweetStoneIntegralParam implements Serializable {
private static final long serialVersionUID = 561985919908406636L;
@ApiModelProperty(required = true, value = "用户id", example = "34657843445")
private String uid;
@ApiModelProperty(required = true, value = "积分数量", example = "100")
private Integer score;
@ApiModelProperty(required = true, value = "描述", example = "抽奖加积分")
private String content;
@ApiModelProperty(required = true, value = "增减积分", example = "1增积分 2减积分")
private Integer type;
private static final SweetStoneIntegralParam obj = new SweetStoneIntegralParam();
public static SweetStoneIntegralParam getNew() {
try {
return (SweetStoneIntegralParam) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetStoneIntegralParam();
}
}
}
package com.liquidnet.service.sweet.param;
import com.liquidnet.service.sweet.dto.vo.TempBannerVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
@ApiModel(value = "SweetCityVoteParam", description = "用户投票记录入参")
@Data
public class TempBannerParam implements Serializable {
@ApiModelProperty(position = 13, required = true, value = "临时banner数据")
@NotBlank(message = "tempBannerVo不能为空")
private List<TempBannerVo> tempBannerVo;
@ApiModelProperty(position = 14, required = true, value = "活动类型 1新裤子 2莫宰羊", example = "1")
@NotNull(message = "type不能为空")
private Integer type;
}
package com.liquidnet.service.sweet.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.candy.vo.CandyCouponPreviewVo;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo;
import com.liquidnet.service.sweet.dto.vo.admin.SweetIntegralActivityPrizeVo;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityPrizeApiVo;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityDraw;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
......@@ -19,13 +20,17 @@ import java.util.List;
*/
public interface ISweetIntegralActivityDrawService extends IService<SweetIntegralActivityDraw> {
ResponseDto<SweetIntegralActivityPrizeVo> create(String integralActivityId);
ResponseDto<IntegralActivityPrizeApiVo> create(String integralActivityId);
ResponseDto<PagedResult<IntegralActivityDrawVo>> drawList(Integer type, String integralActivityId, Integer pageNum);
ResponseDto<PagedResult<IntegralActivityDrawVo>> drawList(String integralActivityId, Integer pageNum);
ResponseDto<List<IntegralActivityDrawVo>> winPrizeUser(String integralActivityId);
ResponseDto perfectAddress(String drawId, String receivingAddressesId);
ResponseDto<IntegralActivityDrawVo> detail(String drawId);
ResponseDto collectCoupon(String couponId, String drawId);
ResponseDto<List<CandyCouponPreviewVo>> couponList(String prizeId, String integralActivityId);
}
......@@ -20,4 +20,8 @@ public interface ISweetIntegralActivityService extends IService<SweetIntegralAct
ResponseDto<List<IntegralActivityVo>> getList();
ResponseDto<IntegralActivityVo> detail(String integralActivityId);
ResponseDto setDrawAllList(String integralActivityId);
ResponseDto drawBlack(String uidS);
}
package com.liquidnet.service.sweet.service;
import com.liquidnet.service.sweet.entity.SweetStrawberryPosterLineup;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 2021草莓音乐节海报活动选择阵容表 服务类
* </p>
*
* @author jiangxiulong
* @since 2021-11-25
*/
public interface ISweetStrawberryPosterLineupService extends IService<SweetStrawberryPosterLineup> {
}
package com.liquidnet.service.sweet.service;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.dto.param.poster.SweetStrawberryParam;
import com.liquidnet.service.sweet.entity.SweetStrawberryPoster;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 2021草莓音乐节海报活动表 服务类
* </p>
*
* @author jiangxiulong
* @since 2021-11-25
*/
public interface ISweetStrawberryPosterService extends IService<SweetStrawberryPoster> {
ResponseDto<Boolean> addUserLikeMusician(SweetStrawberryParam sweetStrawberry);
}
......@@ -2,8 +2,8 @@ package com.liquidnet.service.sweet.utils;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityPrizeVo;
import com.liquidnet.service.sweet.dto.vo.admin.SweetIntegralActivityPrizeVo;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityDraw;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityPrize;
import java.util.ArrayList;
......@@ -11,6 +11,7 @@ import java.util.LinkedList;
public class SweetNewObjectUtil {
private static final ArrayList<SweetIntegralActivityPrizeVo> sweetIntegralActivityPrizeVoArrayList = new ArrayList<>();
private static final ArrayList<IntegralActivityPrizeVo> integralActivityPrizeVoArrayList = new ArrayList<>();
private static final ArrayList<SweetIntegralActivityPrize> sweetIntegralActivityPrizeArrayList = new ArrayList<>();
private static final LinkedList<IntegralActivityDrawVo> sweetIntegralActivityDrawVoLinkedList = new LinkedList<>();
private static final PagedResult<IntegralActivityDrawVo> sweetIntegralActivityDrawVoPagedResult = new PagedResult<>();
......@@ -31,4 +32,8 @@ public class SweetNewObjectUtil {
return (ArrayList<SweetIntegralActivityPrize>) sweetIntegralActivityPrizeArrayList.clone();
}
public static ArrayList<IntegralActivityPrizeVo> getIntegralActivityPrizeVoArrayList() {
return (ArrayList<IntegralActivityPrizeVo>) integralActivityPrizeVoArrayList.clone();
}
}
......@@ -43,6 +43,9 @@ public class SweetCItyVoteStatVo implements Serializable, Cloneable {
@ApiModelProperty("名次变动状态 1未变化 2上升 3下降")
private Integer rankingUpOrDown;
// @ApiModelProperty("状态[0-未开始|1-进行中|2-已结束]")
// private Integer status;
/*@ApiModelProperty("创建时间")
private LocalDateTime createdAt;
......@@ -50,6 +53,7 @@ public class SweetCItyVoteStatVo implements Serializable, Cloneable {
private LocalDateTime updatedAt;*/
private static final SweetCItyVoteStatVo obj = new SweetCItyVoteStatVo();
public static SweetCItyVoteStatVo getNew() {
try {
return (SweetCItyVoteStatVo) obj.clone();
......
package com.liquidnet.service.sweet.vo;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
public class SweetMaoDengVo implements Serializable, Cloneable {
private static final long serialVersionUID = 1L;
/**
* 用户id
*/
private String userId;
/**
* 用户id
*/
private String maoId;
/**
* 消息
*/
private String textMsg;
/**
* 图片url
*/
private String picUrl;
/**
* 生成图url
*/
private String imgUrl;
/**
* 创建时间
*/
private LocalDateTime createdAt;
private static final SweetMaoDengVo obj = new SweetMaoDengVo();
public static SweetMaoDengVo getNew() {
try {
return (SweetMaoDengVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetMaoDengVo();
}
}
}
......@@ -56,9 +56,22 @@ public class BaseController
PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum();
Integer pageSize = pageDomain.getPageSize();
if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize))
{
String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
// if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize))
// {
// String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
// PageHelper.startPage(pageNum, pageSize, orderBy);
// }
String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) {
} else {
pageNum = 1;
pageSize = 10;
}
if (StringUtils.isEmpty(orderBy)) {
PageHelper.startPage(pageNum, pageSize);
} else {
PageHelper.startPage(pageNum, pageSize, orderBy);
}
}
......
package com.liquidnet.client.admin.web.controller.zhengzai.candy;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
import com.liquidnet.client.admin.common.core.controller.BaseController;
import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.core.page.PageDomain;
import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.common.core.page.TableSupport;
import com.liquidnet.client.admin.common.utils.StringUtils;
import com.liquidnet.client.admin.common.utils.sql.SqlUtil;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponAdminService;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponRuleAdminService;
import com.liquidnet.service.candy.dto.admin.CandyCouponListParam;
import com.liquidnet.service.candy.dto.admin.CandyCouponTemplateDto;
import com.liquidnet.service.candy.entity.CandyCoupon;
import org.apache.commons.lang3.StringUtils;
import com.liquidnet.service.candy.entity.CandyCouponRule;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
import java.util.regex.Pattern;
@Api(tags = "我的券包")
@Controller
@RequestMapping("candy/coupon")
public class CandyCouponAdminController extends BaseController {
@Autowired
ICandyCouponAdminService candyCouponAdminService;
@Autowired
ICandyCouponRuleAdminService candyCouponRuleAdminService;
@ApiOperation(value = "券列表")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "busiType", value = "业务类别[0-全场|1-演出|2-商品|3-优先购]"),
@ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "couType", value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券|101-优先券]"),
@ApiImplicitParam(type = "form", required = false, dataType = "String", name = "bindType", value = "领取方式[0-用户输入兑换|1-发放至用户|2-积分商品|3-发放需领取|4-会员专属],多种方式则以,分隔入参"),
@ApiImplicitParam(type = "form", required = false, dataType = "String", name = "keyword", value = "搜索关键字[支持检索标题title、描述notice、适用描述busiName]"),
})
@PostMapping("list")
@ResponseBody
public TableDataInfo list(CandyCouponListParam listParam) {
LambdaQueryWrapper<CandyCoupon> queryWrapper = Wrappers.lambdaQuery(CandyCoupon.class);
queryWrapper.select(CandyCoupon::getCouponId, CandyCoupon::getTitle);
queryWrapper.orderByDesc(CandyCoupon::getCreatedAt);
if (null != listParam) {
if (StringUtils.isNotBlank(listParam.getKeyword())) {
queryWrapper.like(CandyCoupon::getTitle, listParam.getKeyword());
}
if (null != listParam.getBusiType()) {
queryWrapper.eq(CandyCoupon::getBusiType, listParam.getBusiType());
}
if (null != listParam.getCouType()) {
queryWrapper.eq(CandyCoupon::getCouType, listParam.getCouType());
}
if (null != listParam.getBindType()) {
queryWrapper.eq(CandyCoupon::getBindType, listParam.getBindType());
}
String bindType = listParam.getBindType();
if (StringUtils.isNotEmpty(bindType) && !Pattern.matches("^[\\d,]*$", bindType)) {
listParam.setBindType(null);
}
PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum();
Integer pageSize = pageDomain.getPageSize();
String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
if (com.liquidnet.client.admin.common.utils.StringUtils.isNotNull(pageNum) && com.liquidnet.client.admin.common.utils.StringUtils.isNotNull(pageSize)) {
} else {
pageNum = 1;
pageSize = 10;
}
if (StringUtils.isEmpty(orderBy)) {
PageHelper.startPage(pageNum, pageSize, "cc.created_at desc");
} else {
PageHelper.startPage(pageNum, pageSize, orderBy);
}
return getDataTable(candyCouponAdminService.listForCouponFilterDto(listParam));
}
@ApiOperation(value = "券详情")
@GetMapping("info")
@ResponseBody
public AjaxResult info(String couponId) {
CandyCouponTemplateDto couponTemplateDto = CandyCouponTemplateDto.getNew();
LambdaQueryWrapper<CandyCoupon> couponLambdaQueryWrapper = Wrappers.lambdaQuery();
couponLambdaQueryWrapper.eq(CandyCoupon::getCouponId, couponId);
couponLambdaQueryWrapper.eq(CandyCoupon::getState, 1);
CandyCoupon coupon = candyCouponAdminService.getOne(couponLambdaQueryWrapper);
LambdaUpdateWrapper<CandyCouponRule> couponRuleLambdaUpdateWrapper = Wrappers.lambdaUpdate(CandyCouponRule.class);
couponRuleLambdaUpdateWrapper.eq(CandyCouponRule::getCouponId, couponId);
couponRuleLambdaUpdateWrapper.eq(CandyCouponRule::getState, 1);
List<CandyCouponRule> couponRuleList = candyCouponRuleAdminService.list(couponRuleLambdaUpdateWrapper);
startPage();
return getDataTable(candyCouponAdminService.list(queryWrapper));
couponTemplateDto.setUseRules(couponRuleList);
return AjaxResult.success(couponTemplateDto.copy(coupon));
}
}
......@@ -44,7 +44,7 @@ public class SweetIntegralActivityDrawController extends BaseController {
@Autowired
private ISweetIntegralActivityDrawService iSweetIntegralActivityDrawService;
@Log(title = "积分活动奖列表数据", businessType = BusinessType.LIST)
@Log(title = "积分活动奖列表数据", businessType = BusinessType.LIST)
@RequiresPermissions("sweet:integralActivityDraw:list")
@ApiOperation(value = "积分活动中奖列表数据")
@PostMapping("list")
......@@ -54,8 +54,8 @@ public class SweetIntegralActivityDrawController extends BaseController {
return getDataTable(result.getList());
}
@Log(title = "积分活动导出奖列表数据", businessType = BusinessType.EXPORT)
@RequiresPermissions("kylin:integralActivityDraw:exportExcel")
@Log(title = "积分活动导出奖列表数据", businessType = BusinessType.EXPORT)
@RequiresPermissions("sweet:integralActivityDraw:exportExcel")
@PostMapping("/export")
@ResponseBody
public AjaxResult export(@RequestParam("ids") String integralActivityId) {
......
package com.liquidnet.client.admin.web.controller.zhengzai.sweet;
import com.liquidnet.client.admin.common.annotation.Log;
import com.liquidnet.client.admin.common.core.controller.BaseController;
import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.enums.BusinessType;
import com.liquidnet.client.admin.zhengzai.sweet.service.ISweetIntegralActivityPrizeRelationService;
import com.liquidnet.service.sweet.dto.param.admin.SweetIntegralActivityPrizeRelationFormParam;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityPrizeRelation;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
* <p>
* 积分活动表 前端控制器
* </p>
*
* @author jiangxiulong
* @since 2021-10-20
*/
@Api(tags = "积分活动管理")
@Validated
@Controller
@RequestMapping("/sweet/integralActivityPrizeRelation")
public class SweetIntegralActivityPrizeRelationController extends BaseController {
@Autowired
private ISweetIntegralActivityPrizeRelationService activityPrizeRelationService;
@Log(title = "积分活动奖品内部关联券等添加", businessType = BusinessType.INSERT)
@RequiresPermissions("sweet:integralActivityPrizeRelation:create")
@PostMapping("create")
@ApiOperation(value = "积分活动奖品内部关联券等添加")
@ResponseBody
public AjaxResult create(@Valid @RequestBody SweetIntegralActivityPrizeRelationFormParam param) {
Integer result = activityPrizeRelationService.createForm(param);
if (result > 0) {
return success("操作成功");
} else {
return error("操作失败");
}
}
@Log(title = "积分活动奖品内部关联券等删除", businessType = BusinessType.DELETE)
@RequiresPermissions("sweet:integralActivityPrizeRelation:delete")
@PutMapping("delete")
@ApiOperation(value = "积分活动奖品内部关联券等删除")
@ResponseBody
@ApiImplicitParams({
@ApiImplicitParam(type = "form", dataType = "String", name = "prizeRelationId", value = "主键id", required = true),
@ApiImplicitParam(type = "form", dataType = "String", name = "integralActivityId", value = "活动主键id", required = true),
})
public AjaxResult delete(@RequestParam() String prizeRelationId, @RequestParam() String integralActivityId) {
Integer result = activityPrizeRelationService.delete(prizeRelationId, integralActivityId);
if (result > 0) {
return success("操作成功");
} else {
return error("操作失败");
}
}
@Log(title = "积分活动奖品内部关联券等列表", businessType = BusinessType.LIST)
@RequiresPermissions("sweet:integralActivityPrizeRelation:list")
@GetMapping("list")
@ApiOperation(value = "积分活动奖品内部关联券等列表")
@ResponseBody
@ApiImplicitParams({
@ApiImplicitParam(type = "form", dataType = "String", name = "prizeId", value = "奖品主键id", required = true)
})
public List<SweetIntegralActivityPrizeRelation> list(@RequestParam() String prizeId) {
List<SweetIntegralActivityPrizeRelation> result = activityPrizeRelationService.list(prizeId);
return result;
}
}
;(function ($) {
//这里放入插件代码
var RemoteSearchPerformance = function (element, options) {
this.$element = $(element);
this.options = $.extend(true, {}, $.fn.remoteSearchPerformance.defaults, options);
this.id = $(element).attr('id');
this.ulID = '#' + this.id + '_ul';
this.ulFoucus = false;
// Method overrides
this.render = this.options.render || this.render;
this.select = this.options.select || this.select;
this.ajax = $.extend({}, $.fn.remoteSearchPerformance.defaults.ajax, this.options.ajax);
this.listen();
}
RemoteSearchPerformance.prototype = {
listen: function () {
this.$element.on('blur', $.proxy(this.blur, this))
.on('keyup', $.proxy(this.keyup, this));
this.$element.parent('div.remote_wrapper').on('click',this.ulID, $.proxy(this.click, this));
},
blur: function (e) {
var that = this;
e.stopPropagation();
e.preventDefault();
setTimeout(function () {
if (!that.ulFoucus) {
that.$element.val(that.$element.attr('data-name'));
that.hide();
}
}, 150)
},
keyup: function (e) {
e.stopPropagation();
e.preventDefault();
switch (e.keyCode) {
case 40:
// down arrow
case 38:
// up arrow
break;
case 9:
// tab
case 13:
// enter
this.ajaxer();
case 27:
// escape
break;
default:
this.ajaxer();
}
},
hide: function () {
$(this.ulID).remove();
return this;
},
ajaxer: function () {
var that = this,
keyword = that.$element.val();
busiType = window.typeRadio;
couType = window.typeCoupe;
// Query changed
that.keyword = keyword;
// Cancel last timer if set
if (that.ajax.timerId) {
clearTimeout(that.ajax.timerId);
that.ajax.timerId = null;
}
// Query is good to send, set a timer
that.ajax.timerId = setTimeout(function() {
var params = {
keyword : keyword,
busiType: busiType,
couType: couType,
bindType: '1,4'
};
var jAjax = $.post;
jAjax(that.ajax.url, params, function(data){
return that.render(data.rows);
});
that.ajax.timerId = null;
}, that.ajax.timeout);
return that;
},
render: function (data) {
this.ulFoucus = false;
var liList = data || [];
var num = this._getNum();
//添加 ul
if($(this.ulID).length == 0) {
this.$element.after("<ul id='" + this.id + "_ul' class='remote_search remote_search_top'></ul>");
};
//添加li
var str = "";
if(num) {
if(liList.length) {
for(var i = 0; i < liList.length; i++) {
str += "<li data-id='"+liList[i].couponId+"' data-name='"+liList[i].title+"' title='"+liList[i].title+"' value='"+liList[i].couponId+"'>" + liList[i].title + "</li>";
}
} else {
str = "<li data-id='' data-name=''>搜索无数据</li>"
}
} else {
this.$element.attr('data-name',"");
this.$element.attr('data-id',"");
}
$(this.ulID).html(str);
var bodyHeight = $(document.body).height();
var offsetTop = this.$element.offset().top;
var height = $(this.ulID).outerHeight(true);
if(offsetTop + height > bodyHeight){
$(this.ulID).addClass('remote_search_bottom').removeClass('remote_search_top');
}else{
$(this.ulID).addClass('remote_search_top').removeClass('remote_search_bottom');
}
return this;
},
click: function (e) {
e.stopPropagation();
e.preventDefault();
var dataName = $(e.target).attr('data-name');
var dataID = $(e.target).attr('data-id');
this.$element.val(dataName);
this.$element.attr('data-name',dataName);
this.$element.attr('data-id',dataID);
this.options.chose(dataName,dataID);
this.ulFoucus = true;
return this.hide();
},
_getNum: function(){
return this.$element.val().length;
}
}
$.fn.remoteSearchPerformance = function (option) {
return this.each(function () {
var $this = $(this),
data = $this.data('remoteSearchPerformance'),
options = typeof option === 'object' && option;
if (!data) {
$this.data('remoteSearchPerformance', (data = new RemoteSearchPerformance(this, options)));
}
if (typeof option === 'string') {
data[option]();
}
});
}
$.fn.remoteSearchPerformance.defaults = {
hiddenVal: '',
chose: function () { },
ajax: {
url: null,
timeout: 300,
method: 'get',
timerId: null
},
success: function(res){
}
}
$.fn.remoteSearchPerformance.Constructor = RemoteSearchPerformance;
})(jQuery);
\ No newline at end of file
;(function ($) {
//这里放入插件代码
var RemoteSearchPerformance = function (element, options) {
this.$element = $(element);
this.options = $.extend(true, {}, $.fn.remoteSearchPerformance.defaults, options);
this.id = $(element).attr('id');
this.ulID = '#' + this.id + '_ul';
this.ulFoucus = false;
// Method overrides
this.render = this.options.render || this.render;
this.select = this.options.select || this.select;
this.ajax = $.extend({}, $.fn.remoteSearchPerformance.defaults.ajax, this.options.ajax);
this.listen();
}
RemoteSearchPerformance.prototype = {
listen: function () {
this.$element.on('blur', $.proxy(this.blur, this))
.on('keyup', $.proxy(this.keyup, this));
this.$element.parent('div.remote_wrapper').on('click',this.ulID, $.proxy(this.click, this));
},
blur: function (e) {
var that = this;
e.stopPropagation();
e.preventDefault();
setTimeout(function () {
if (!that.ulFoucus) {
that.$element.val(that.$element.attr('data-name'));
that.hide();
}
}, 150)
},
keyup: function (e) {
e.stopPropagation();
e.preventDefault();
switch (e.keyCode) {
case 40:
// down arrow
case 38:
// up arrow
break;
case 9:
// tab
case 13:
// enter
this.ajaxer();
case 27:
// escape
break;
default:
this.ajaxer();
}
},
hide: function () {
$(this.ulID).remove();
return this;
},
ajaxer: function () {
var that = this,
keyword = that.$element.val();
busiType = window.typeRadio;
couType = window.typeCoupe;
// Query changed
that.keyword = keyword;
// Cancel last timer if set
if (that.ajax.timerId) {
clearTimeout(that.ajax.timerId);
that.ajax.timerId = null;
}
// Query is good to send, set a timer
that.ajax.timerId = setTimeout(function() {
var params = {
keyword : keyword,
busiType: busiType,
couType: couType,
bindType: '1,4'
};
var jAjax = $.post;
jAjax(that.ajax.url, params, function(data){
return that.render(data.rows);
});
that.ajax.timerId = null;
}, that.ajax.timeout);
return that;
},
render: function (data) {
this.ulFoucus = false;
var liList = data || [];
var num = this._getNum();
//添加 ul
if($(this.ulID).length == 0) {
this.$element.after("<ul id='" + this.id + "_ul' class='remote_search remote_search_top'></ul>");
};
//添加li
var str = "";
if(num) {
if(liList.length) {
for(var i = 0; i < liList.length; i++) {
str += "<li data-id='"+liList[i].couponId+"' data-name='"+liList[i].title+"' title='"+liList[i].title+"' value='"+liList[i].couponId+"'>" + liList[i].title + "</li>";
}
} else {
str = "<li data-id='' data-name=''>搜索无数据</li>"
}
} else {
this.$element.attr('data-name',"");
this.$element.attr('data-id',"");
}
$(this.ulID).html(str);
var bodyHeight = $(document.body).height();
var offsetTop = this.$element.offset().top;
var height = $(this.ulID).outerHeight(true);
if(offsetTop + height > bodyHeight){
$(this.ulID).addClass('remote_search_bottom').removeClass('remote_search_top');
}else{
$(this.ulID).addClass('remote_search_top').removeClass('remote_search_bottom');
}
return this;
},
click: function (e) {
e.stopPropagation();
e.preventDefault();
var dataName = $(e.target).attr('data-name');
var dataID = $(e.target).attr('data-id');
this.$element.val(dataName);
this.$element.attr('data-name',dataName);
this.$element.attr('data-id',dataID);
this.options.chose(dataName,dataID);
this.ulFoucus = true;
return this.hide();
},
_getNum: function(){
return this.$element.val().length;
}
}
$.fn.remoteSearchPerformance = function (option) {
return this.each(function () {
var $this = $(this),
data = $this.data('remoteSearchPerformance'),
options = typeof option === 'object' && option;
if (!data) {
$this.data('remoteSearchPerformance', (data = new RemoteSearchPerformance(this, options)));
}
if (typeof option === 'string') {
data[option]();
}
});
}
$.fn.remoteSearchPerformance.defaults = {
hiddenVal: '',
chose: function () { },
ajax: {
url: null,
timeout: 300,
method: 'get',
timerId: null
},
success: function(res){
}
}
$.fn.remoteSearchPerformance.Constructor = RemoteSearchPerformance;
})(jQuery);
\ No newline at end of file
......@@ -43,6 +43,9 @@
<script th:src="@{/ruoyi/js/ry-ui.js?v=4.6.1}"></script>
<!--远程搜索下拉框-->
<script th:src="@{/js/remote-search-performance.js}"></script>
<!--远程搜索下拉框:积分抽奖配置使用-->
<script th:src="@{/js/remote-search-coupon-list.js}"></script>
<script th:src="@{/js/remote-search-coupon.js}"></script>
</div>
<!-- ztree树插件 -->
......
......@@ -13,7 +13,9 @@
.main_title, .main_type, .money, .scope_application, .sendType,.phoneNumber,.playMethod {
margin-bottom: 20px;
}
#searchIpt {
/* display: none; */
}
.phoneNumber,.playMethod {
display: none;
}
......@@ -153,10 +155,18 @@
<input type="radio" value="3" name="typeOne"><span>优先购</span>
</div>
</div>
<div id="scoreType" class="main_type">
<span class="labelName"><i class="required">*</i>类别:</span>
<div class="layui-input-block" style="display: flex">
<!-- <input type="radio" value="0" name="selectType" checked><span>商品</span> -->
<input type="radio" value="1" name="selectType" checked><span></span>
</div>
</div>
<div class="scope_application" id="scope_application">
<span class="labelName"><i class="required">*</i>券名称:</span>
<div class="search_ipt" style="position: relative;display: inline;">
<input type="text" id="searchIpt" autocomplete="off" class="layui-input" placeholder="全部">
<!-- <input type="text" id="searchIptMall" autocomplete="off" class="layui-input" placeholder="全部"> -->
<ul id="dataList" style="position: absolute;"></ul>
</div>
</div>
......@@ -268,6 +278,9 @@
let showPicture = ''; // 展示图片
let limit = ''; // 限兑次数
let itemId = ''; //
let selectType = '1'
let type = '';
console.log('检测')
$(document).ready(function() {
var $summernote = $('#summernote').summernote({
height: 300,
......@@ -340,6 +353,9 @@
$('#summernote').summernote('code', data.details)
$('.summernote').eq(1).summernote('code', data.notice)
// $("#attention").val(data.notice);
if (data.type == 1) {
$("input[name='selectType'][value='1']").attr("checked", "checked").siblings().removeAttr('checked');
}
if (data.limitCount != 0) {
sendType = 1
$("input[name='sendType'][value='1']").attr("checked", "checked").siblings().removeAttr('checked');
......@@ -443,6 +459,18 @@
$("input[name=typeOne]").change(function(e){
typeOne = e.target.value;
});
$("input[name=selectType]").change(function(e){
selectType = e.target.value;
if (selectType == 0) {
$("#searchIptMall").show()
$("#searchIpt").hide()
$("#searchIpt").val('')
} else {
$("#searchIptMall").hide()
$("#searchIptMall").val('')
$("#searchIpt").show()
}
});
$("input[name=sendType]").change(function(e){
sendType = e.target.value;
if (sendType == 1) {
......@@ -468,9 +496,18 @@
});
function create() {
if (!$('#searchIpt').val() || !showPicture || !$('#integralNum').val() || !$('#moneyNum').val() || !$('#inventory').val() || !$('#summernote').summernote('code') || !$('.summernote').eq(1).summernote('code')) {
if (!showPicture || !$('#integralNum').val() || !$('#moneyNum').val() || !$('#inventory').val() || !$('#summernote').summernote('code') || !$('.summernote').eq(1).summernote('code')) {
return layer.msg('请将必填项输入完整~!');
}
if (selectType == 1) {
if (!$('#searchIpt').val()) {
return layer.msg('请将必填项输入完整~!');
}
} else {
if (!$('#searchIptMall').val()) {
return layer.msg('请将必填项输入完整~!');
}
}
if (sendType == 1) {
if (!$("#linit").val()) {
return layer.msg('请填写限兑次数!');
......@@ -502,7 +539,7 @@
startTime: $.common.dateFormat(startTime, 'yyyy-MM-dd HH:mm:ss'), // 上架时间status = 2 必传)
status: Number(shelves), // 上架状态[1-不限|2-定时|7-下线]
targetId: showId, // 目标物品id
targetTitle: $('#searchIpt').val() // 目标物品标题
targetTitle: $('#searchIpt').val() || $("#searchIptMall").val() // 目标物品标题
}
let type = 'post';
if (!itemId) {
......@@ -514,6 +551,12 @@
delete data.startTime
delete data.endTime
}
if (selectType == 1) {
// delete data.targetId
data['type'] = 1
} else {
data['type'] = 11
}
promiseMethods(ctx+'stone/item',type,data).then(res=>{
layer.msg('' + res);
if (res.code != undefined && res.code != web_status.SUCCESS) {
......
......@@ -40,7 +40,7 @@
var updateFlag = [[${@permission.hasPermi('sweet:integralActivity:create')}]];
var isOnlineFlag = [[${@permission.hasPermi('sweet:integralActivity:isOnline')}]];
var drawListFlag = [[${@permission.hasPermi('sweet:integralActivityDraw:list')}]];
var exportExcelFlag = [[${@permission.hasPermi('sweet:integralActivityDraw:export')}]];
var exportExcelFlag = [[${@permission.hasPermi('sweet:integralActivityDraw:exportExcel')}]];
var prefix = ctx + "sweet/integralActivity";
......@@ -85,20 +85,31 @@
}
},
{
field: 'prizeNum',
title: '奖品数量'
field: '',
title: '实物数量',
formatter: function (value, row) {
var sureTotalPrizeNum = row.sureTotalPrizeNum;
var sureOutPrizeNum = row.sureOutPrizeNum;
return '实物总库存:'+sureTotalPrizeNum+'<br>'+'实物已发放数量:'+sureOutPrizeNum;
}
},
{
field: 'drawNum',
title: '已发出'
field: '',
title: '非实物数量',
formatter: function (value, row) {
var otherTotalPrizeNum = row.otherTotalPrizeNum;
var otherOutPrizeNum = row.otherOutPrizeNum;
return '非实物总库存:'+otherTotalPrizeNum+'<br>'+'非实物已发放数量:'+otherOutPrizeNum;
}
},
{
field: '',
title: '奖品剩余',
title: '抽奖次数',
formatter: function (value, row) {
var prizeNum = row.prizeNum;
var drawNum = row.drawNum;
return prizeNum - drawNum;
var estimatedNum = row.estimatedNum;
var totalDrawNum = row.totalDrawNum;
var notBlackDrawNum = row.notBlackDrawNum;
return '预计参与人数:'+estimatedNum+'<br>'+'已抽奖次数:'+totalDrawNum+'<br>'+'去除黑名单已抽奖次数:'+notBlackDrawNum;
}
},
{
......
......@@ -38,15 +38,6 @@
<option value="">全部</option>
<option value="1">未发放</option>
<option value="2">已发放</option>
<option value="3">无需发放</option>
</select>
</li>
<li>
<label>是否中奖:</label>
<select name="isWin">
<option value="">全部</option>
<option value="1">未中奖</option>
<option value="2">已中奖</option>
</select>
</li>
<li>
......@@ -129,9 +120,6 @@
case 2:
receivingStatus = "已发放";
break;
case 3:
receivingStatus = "无需发放";
break;
}
return receivingStatus;
}
......
......@@ -189,6 +189,7 @@ public class AdminUpushServiceImpl extends ServiceImpl<AdminUpushMapper, AdminUp
AdminUpush updatePush = new AdminUpush();
try {
AndroidBroadcast broadcast = new AndroidBroadcast(androidAppkey, androidAppMasterSecret);
broadcast.setBadge(1);
broadcast.setTicker(adminUpush.getPushTitle());
broadcast.setTitle(adminUpush.getPushTitle());
broadcast.setText(adminUpush.getPushContent());
......@@ -257,7 +258,7 @@ public class AdminUpushServiceImpl extends ServiceImpl<AdminUpushMapper, AdminUp
IOSBroadcast broadcast = new IOSBroadcast(iosAppkey, iosAppMasterSecret);
//alert的值设置为字典
broadcast.setAlert(adminUpush.getPushTitle(), "", adminUpush.getPushContent());
broadcast.setBadge(0);
broadcast.setBadge(1);
broadcast.setSound("default");
if (Arrays.asList(LnsEnum.ENV.dev.name(), LnsEnum.ENV.test.name()).contains(environment.getProperty(CurrentUtil.CK_ENV_ACTIVE))) {
broadcast.setTestMode();
......
package com.liquidnet.client.admin.zhengzai.candy.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.candy.dto.admin.CandyCouponFilterDto;
import com.liquidnet.service.candy.dto.admin.CandyCouponListParam;
import com.liquidnet.service.candy.entity.CandyCoupon;
import java.util.List;
public interface ICandyCouponAdminService extends IService<CandyCoupon> {
List<CandyCouponFilterDto> listForCouponFilterDto(CandyCouponListParam listParam);
}
......@@ -10,9 +10,11 @@ import java.util.List;
public interface ICandyMgtCouponAdminService extends IService<CandyMgtCoupon> {
boolean saveMgtCouponForMemberRights(CandyMemberCouponBuildParam parameter);
// boolean saveMgtCouponForMemberRights(CandyMemberCouponBuildParam parameter);
boolean editMgtCouponForMemberRights(CandyMemberCouponBuildParam parameter);
// boolean editMgtCouponForMemberRights(CandyMemberCouponBuildParam parameter);
boolean saveUpdateMgtCouponForMemberRights(CandyMemberCouponMatchParam parameter, CandyCoupon coupon);
boolean saveMgtCouponForCouponBuild(CandyMgtCouponBuildParam parameter);
......@@ -20,7 +22,7 @@ public interface ICandyMgtCouponAdminService extends IService<CandyMgtCoupon> {
boolean saveMgtCouponInfo(CandyCoupon initCoupon, CandyMgtCoupon initMgtCoupon, List<CandyCouponRule> initCouponRuleList);
boolean updateMgtCouponInfo(CandyCoupon updateCoupon, CandyMgtCoupon updateMgtCoupon, List<CandyCouponRule> initCouponRuleList);
// boolean updateMgtCouponInfo(CandyCoupon updateCoupon, CandyMgtCoupon updateMgtCoupon, List<CandyCouponRule> initCouponRuleList);
List<CandyMgtCouponInfoDto> listForMgtCouponInfoDto(CandyMgtCouponListParam listParam);
......
......@@ -2,11 +2,22 @@ package com.liquidnet.client.admin.zhengzai.candy.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponAdminService;
import com.liquidnet.service.candy.dto.admin.CandyCouponFilterDto;
import com.liquidnet.service.candy.dto.admin.CandyCouponListParam;
import com.liquidnet.service.candy.entity.CandyCoupon;
import com.liquidnet.service.candy.mapper.CandyCouponMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class CandyCouponAdminServiceImpl extends ServiceImpl<CandyCouponMapper, CandyCoupon> implements ICandyCouponAdminService {
@Autowired
private CandyCouponMapper candyCouponMapper;
@Override
public List<CandyCouponFilterDto> listForCouponFilterDto(CandyCouponListParam listParam) {
return candyCouponMapper.selectMultiForCouponFilterDto(listParam);
}
}
......@@ -277,6 +277,20 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
return dto2List;
}
@Override
public PerformanceSimpleAllDao getSimpleDetailByScopeAndId(String scope, String id) {
switch (scope) {
case "1":
return performancesMapper.getPerformanceSimpleByPerformancesId(id);
case "2":
return performancesMapper.getPerformanceSimpleByTimesId(id);
case "3":
return performancesMapper.getPerformanceSimpleByTicketId(id);
default:
return null;
}
}
@Override
public boolean changeRoadShowId(String performancesId, String roadShowId) {
try {
......
......@@ -13,7 +13,7 @@ public abstract class AndroidNotification extends UmengNotification {
// Keys can be set in the body level
protected static final HashSet<String> BODY_KEYS = new HashSet<String>(Arrays.asList(new String[]{
"ticker", "title", "text", "builder_id", "icon", "largeIcon", "img", "play_vibrate", "play_lights", "play_sound",
"sound", "after_open", "url", "activity", "custom"}));
"sound", "after_open", "url", "activity", "custom", "badge"}));
public enum DisplayType{
NOTIFICATION{public String getValue(){return "notification";}},///通知:消息送达到用户设备后,由友盟SDK接管处理并在通知栏上显示通知内容。
......@@ -81,6 +81,10 @@ public abstract class AndroidNotification extends UmengNotification {
}
return true;
}
public void setBadge(Integer badge) throws Exception {
setPredefinedKeyValue("badge", badge);
}
// Set extra key/value for Android notification
public boolean setExtraField(String key, String value) throws Exception {
......@@ -102,8 +106,7 @@ public abstract class AndroidNotification extends UmengNotification {
extraJson.put(key, value);
return true;
}
//
public void setDisplayType(DisplayType d) throws Exception {
setPredefinedKeyValue("display_type", d.getValue());
}
......
......@@ -132,6 +132,13 @@ public class ItemServiceImpl implements IItemService {
if (param.getStatus() == 2 & (param.getStartTime() == null || param.getEndTime() == null)) {
return "时间有误";
}
if (param.getType() == 11) {
param.setTargetId("-999");
} else {
if (param.getType() == 1 && param.getTargetId() == null) {
return "参数异常";
}
}
StoneScoreItems data = BaseData(param);
int generalPoor = param.getGeneralTotal() - 0;
data.setItemId(IDGenerator.nextTimeId2());
......@@ -157,6 +164,13 @@ public class ItemServiceImpl implements IItemService {
if (param.getStatus() == 2 & (param.getStartTime() == null || param.getEndTime() == null)) {
return "时间有误";
}
if (param.getType() == 11) {
param.setTargetId("-999");
} else {
if (param.getType() == 1 && param.getTargetId() == null) {
return "参数异常";
}
}
StoneScoreItems data = BaseData(param);
StoneScoreItems dataSingle = stoneScoreItemsMapper.selectOne(Wrappers.lambdaQuery(StoneScoreItems.class).eq(StoneScoreItems::getItemId, param.getItemId()));
int generalPoor = param.getGeneralTotal() - dataSingle.getGeneralTotal();
......@@ -187,7 +201,7 @@ public class ItemServiceImpl implements IItemService {
StoneScoreItems data = new StoneScoreItems();
data.setTargetId(param.getTargetId());
data.setTargetTitle(param.getTargetTitle());
data.setType(1);
data.setType(param.getType());
data.setImg(param.getImg());
data.setScore(param.getScore());
data.setPrice(BigDecimal.ZERO);
......@@ -196,10 +210,10 @@ public class ItemServiceImpl implements IItemService {
data.setDetails(param.getDetails());
data.setNotice(param.getNotice());
data.setStatus(param.getStatus());
if(param.getStartTime()!=null) {
if (param.getStartTime() != null) {
data.setStartTime(LocalDateTime.parse(param.getStartTime(), DateTimeFormatter.ofPattern(DateUtils.YYYY_MM_DD_HH_MM_SS)));
}
if(param.getEndTime()!=null) {
if (param.getEndTime() != null) {
data.setEndTime(LocalDateTime.parse(param.getEndTime(), DateTimeFormatter.ofPattern(DateUtils.YYYY_MM_DD_HH_MM_SS)));
}
return data;
......
package com.liquidnet.client.admin.zhengzai.sweet.dto;
import com.liquidnet.client.admin.common.annotation.Excel;
import com.liquidnet.client.admin.common.utils.DictUtils;
import com.liquidnet.service.sweet.dto.SweetActivityDrawListDao;
import lombok.Data;
......@@ -54,31 +55,7 @@ public class SweetActivityDrawExcelListDao implements Serializable, Cloneable {
public SweetActivityDrawExcelListDao copy(SweetActivityDrawListDao source) {
if (null == source) return this;
this.setPrizeTitle(source.getPrizeTitle());
String prizeName = "";
switch (source.getPrizeType()) {
case 1:
prizeName = "谢谢惠顾";
break;
case 2:
prizeName = "积分";
break;
case 3:
prizeName = "代金券";
break;
case 4:
prizeName = "满减券";
break;
case 5:
prizeName = "优先购买券";
break;
case 6:
prizeName = "实物";
break;
default:
prizeName = "-";
break;
}
this.setPrizeName(prizeName);
this.setPrizeName(DictUtils.getDictLabel("zhengzai_sweet_draw_prize_type", String.valueOf(source.getPrizeType())));
this.setPrizeTypeNum(source.getPrizeTypeNum());
this.setNickname(source.getNickname());
this.setReceivingName(source.getReceivingName());
......
package com.liquidnet.client.admin.zhengzai.sweet.service;
import com.liquidnet.service.sweet.dto.param.admin.SweetIntegralActivityPrizeRelationFormParam;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityPrizeRelation;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
* 积分活动奖品里关联多奖品表 服务类
* </p>
*
* @author jiangxiulong
* @since 2021-12-02
*/
public interface ISweetIntegralActivityPrizeRelationService extends IService<SweetIntegralActivityPrizeRelation> {
Integer createForm(SweetIntegralActivityPrizeRelationFormParam param);
Integer delete(String prizeRelationId, String integralActivityId);
List<SweetIntegralActivityPrizeRelation> list(String prizeId);
}
......@@ -103,27 +103,14 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
);
// 更新缓存
List<SweetIntegralActivityDraw> sweetIntegralActivityDrawInList = sweetIntegralActivityDrawMapper.selectList(
Wrappers.lambdaQuery(SweetIntegralActivityDraw.class)
.eq(SweetIntegralActivityDraw::getIntegralActivityId, sweetIntegralActivityDrawNew.getIntegralActivityId())
.eq(SweetIntegralActivityDraw::getUserId, sweetIntegralActivityDrawNew.getUserId())
.gt(SweetIntegralActivityDraw::getPrizeType, 1)
.orderByDesc(SweetIntegralActivityDraw::getMid)
.last(" limit 20 ")
);
LinkedList<IntegralActivityDrawVo> activityDrawArrayList = SweetNewObjectUtil.getSweetIntegralActivityDrawVoLinkedList();
for (SweetIntegralActivityDraw draw : sweetIntegralActivityDrawInList) {
IntegralActivityDrawVo integralActivityDrawVo = IntegralActivityDrawVo.getNew().copy(draw);
activityDrawArrayList.add(integralActivityDrawVo);
}
sweetRedisAdminUtils.setIntegralActivityDraw(activityDrawArrayList, sweetIntegralActivityDrawNew.getIntegralActivityId(), sweetIntegralActivityDrawNew.getUserId());
sweetRedisAdminUtils.delIntegralActivityDrawList(sweetIntegralActivityDrawNew.getIntegralActivityId(), sweetIntegralActivityDrawNew.getUserId());
sweetRedisAdminUtils.setIntegralActivityDrawInfo(drawId);
mongoTemplate.getCollection(IntegralActivityDrawVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("drawId").is(drawId)).getQueryObject(),
new Document("$set", new Document("receivingStatus", 2)
.append("updatedAt", DateUtil.Formatter.yyyyMMddHHmmss.format(LocalDateTime.now())))
.append("updatedAt", LocalDateTime.now()))
);
return update;
......
package com.liquidnet.client.admin.zhengzai.sweet.utils;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityPrizeRelationVo;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityPrizeVo;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityVo;
import java.util.ArrayList;
public class SweetObjectAdminUtil {
private static final ArrayList<IntegralActivityVo> sweetIntegralActivityVoList = new ArrayList<>();
private static final ArrayList<IntegralActivityPrizeVo> sweetIntegralActivityPrizeVoList = new ArrayList<>();
private static final ArrayList<IntegralActivityPrizeVo> sweetIntegralActivityPrizeRelationVoList = new ArrayList<>();
public static ArrayList<IntegralActivityVo> getSweetIntegralActivityVoList() {
return (ArrayList<IntegralActivityVo>)sweetIntegralActivityVoList.clone();
}
public static ArrayList<IntegralActivityPrizeVo> getSweetIntegralActivityPrizeVoList() {
return (ArrayList<IntegralActivityPrizeVo>)sweetIntegralActivityPrizeVoList.clone();
}
public static ArrayList<IntegralActivityPrizeRelationVo> getSweetIntegralActivityPrizeRelationVoList() {
return (ArrayList<IntegralActivityPrizeRelationVo>)sweetIntegralActivityPrizeRelationVoList.clone();
}
}
......@@ -5,7 +5,6 @@ import com.liquidnet.service.sweet.constant.SweetConstant;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Component;
import java.util.LinkedList;
......@@ -14,8 +13,6 @@ import java.util.List;
@Component
public class SweetRedisAdminUtils {
@Autowired
private MongoTemplate mongoTemplate;
@Autowired
private RedisDataSourceUtil redisDataSourceUtil;
......@@ -29,6 +26,9 @@ public class SweetRedisAdminUtils {
boolean set = redisDataSourceUtil.getRedisSweetUtil().set(redisKey, integralActivityVo);
}
/**
* 奖品库存
*/
public void incrIntegralActivityPrizeNum(String integralActivityId, String prizeId, Integer num) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM
.concat(integralActivityId)
......@@ -36,37 +36,46 @@ public class SweetRedisAdminUtils {
.concat(prizeId);
redisDataSourceUtil.getRedisSweetUtil().incr(redisKey, num);
}
public void incrIntegralActivityPrizeWinnersNum(String integralActivityId, String prizeId, Integer num) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_WINNERS_NUM
public void decrIntegralActivityPrizeNum(String integralActivityId, String prizeId, Integer num) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM
.concat(integralActivityId)
.concat(SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_ID)
.concat(prizeId);
redisDataSourceUtil.getRedisSweetUtil().incr(redisKey, num);
redisDataSourceUtil.getRedisSweetUtil().decr(redisKey, num);
}
public void decrIntegralActivityPrizeNum(String integralActivityId, String prizeId, Integer num) {
public void delIntegralActivityPrizeNum(String integralActivityId, String prizeId) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM
.concat(integralActivityId)
.concat(SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_ID)
.concat(prizeId);
redisDataSourceUtil.getRedisSweetUtil().decr(redisKey, num);
redisDataSourceUtil.getRedisSweetUtil().del(redisKey);
}
public void decrIntegralActivityPrizeWinnersNum(String integralActivityId, String prizeId, Integer num) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_WINNERS_NUM
public int getIntegralActivityPrizeNum(String integralActivityId, String prizeId) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM
.concat(integralActivityId)
.concat(SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_ID)
.concat(prizeId);
redisDataSourceUtil.getRedisSweetUtil().decr(redisKey, num);
Object obj = redisDataSourceUtil.getRedisSweetUtil().get(redisKey);
if (null == obj) {
return 0;
} else {
return (int) obj;
}
}
public void setIntegralActivityDraw(LinkedList<IntegralActivityDrawVo> sweetIntegralActivityDraws, String integralActivityId, String userId) {
public void setIntegralActivityTotalPrizeNum(String integralActivityId, int totalPrizeNum) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_TOTAL_PRIZE_NUM
.concat(integralActivityId);
redisDataSourceUtil.getRedisSweetUtil().set(redisKey, totalPrizeNum);
}
public void delIntegralActivityDrawList(String uid, String integralActivityId) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_IN_USER
.concat(integralActivityId)
.concat(":userId:")
.concat(userId);
redisDataSourceUtil.getRedisSweetUtil().set(redisKey, sweetIntegralActivityDraws);
.concat(SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_USER_KEY)
.concat(uid);
redisDataSourceUtil.getRedisSweetUtil().del(redisKey);
}
public void setIntegralActivityDrawInfo(String drawId) {
......@@ -76,4 +85,30 @@ public class SweetRedisAdminUtils {
info.setReceivingStatus(2);
redisDataSourceUtil.getRedisSweetUtil().set(redisKeyDraw, info);
}
/**
* 预估人数
*/
public void incrIntegralActivityEstimatedNum(String integralActivityId, Integer num) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_ESTIMATEDNUM
.concat(integralActivityId);
redisDataSourceUtil.getRedisSweetUtil().incr(redisKey, num);
}
public void decrIntegralActivityEstimatedNum(String integralActivityId, Integer num) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_ESTIMATEDNUM
.concat(integralActivityId);
redisDataSourceUtil.getRedisSweetUtil().decr(redisKey, num);
}
public int getIntegralActivityEstimatedNum(String integralActivityId) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_ESTIMATEDNUM
.concat(integralActivityId);
Object obj = redisDataSourceUtil.getRedisSweetUtil().get(redisKey);
if (null == obj) {
return 0;
} else {
return (int) obj;
}
}
}
......@@ -162,7 +162,7 @@ global-auth:
# - ${liquidnet.info.context}/order/orderRefundWithdraw
# - ${liquidnet.info.context}/orderRefund/sendOrderRefunds
# - ${liquidnet.info.context}/orderRefund/orderRefundWithdraw
- ${liquidnet.info.context}/station/out
# - ${liquidnet.info.context}/station/out
# -----------------------------------------------------------
# -----------------------------------------------------------
......
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment