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

Commit 1e31b6cb authored by Administrator's avatar Administrator 🎨

Merge branch 'pre' into 'master'

Pre

See merge request !126
parents 17b80e87 f17acf1e
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地域县';
...@@ -26,6 +26,7 @@ public class AdamRedisConst { ...@@ -26,6 +26,7 @@ public class AdamRedisConst {
*/ */
public static final String INFO_CERTIFICATION_JUNK = PREFIX.concat("info:certification_junk:"); 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_SIMPLE = PREFIX.concat("info:member:simple");
public static final String INFO_MEMBER_CATEGORY = PREFIX.concat("info:member:category:"); public static final String INFO_MEMBER_CATEGORY = PREFIX.concat("info:member:category:");
public static final String INFO_MEMBER_PRICE = PREFIX.concat("info:member:price:"); public static final String INFO_MEMBER_PRICE = PREFIX.concat("info:member:price:");
...@@ -55,6 +56,8 @@ public class AdamRedisConst { ...@@ -55,6 +56,8 @@ public class AdamRedisConst {
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:");
/* ----------------------------------------------------------------- */ /* ----------------------------------------------------------------- */
// public static final String LOCK_KEY_UMEMBER_NO = "adam:lk:member:no"; // public static final String LOCK_KEY_UMEMBER_NO = "adam:lk:member:no";
......
...@@ -23,17 +23,27 @@ public class AdamMemberOrderCodeParam implements Serializable { ...@@ -23,17 +23,27 @@ public class AdamMemberOrderCodeParam implements Serializable {
@Pattern(regexp = LnsRegex.Valid.DATETIME_YMD, message = "生日格式有误") @Pattern(regexp = LnsRegex.Valid.DATETIME_YMD, message = "生日格式有误")
@NotBlank(message = "生日不能为空") @NotBlank(message = "生日不能为空")
private String birthday; private String birthday;
@ApiModelProperty(position = 13, required = true, value = "地区[100]", example = "北京 北京市 朝阳区") // @ApiModelProperty(position = 13, required = true, value = "地区[100]", example = "北京 北京市 朝阳区")
@NotBlank(message = "地区不能为空") // @NotBlank(message = "地区不能为空")
private String area; // private String area;
@ApiModelProperty(position = 14, required = true, value = "收获地址") @ApiModelProperty(position = 13, required = true, value = "收获地址")
@Size(min = 1, max = 64, message = "收获地址长度限制1-64位字符") @Size(min = 1, max = 64, message = "收获地址长度限制1-64位字符")
@NotBlank(message = "收获地址不能为空") @NotBlank(message = "收获地址不能为空")
private String addressId; 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; private String deviceFrom;
@ApiModelProperty(position = 16, required = false, value = "姓名[未实名时必传]") @ApiModelProperty(position = 15, required = false, value = "姓名[未实名时必传]")
private String name; private String name;
@ApiModelProperty(position = 17, required = false, value = "身份证件号[未实名时必传]") @ApiModelProperty(position = 16, required = false, value = "身份证件号[未实名时必传]")
private String idCard; 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;
} }
package com.liquidnet.service.adam.dto.vo; package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.SensitizeUtil; import com.liquidnet.commons.lang.util.SensitizeUtil;
import com.liquidnet.service.adam.entity.AdamAddresses; import com.liquidnet.service.adam.entity.AdamAddresses;
...@@ -12,6 +13,7 @@ import java.time.LocalDateTime; ...@@ -12,6 +13,7 @@ import java.time.LocalDateTime;
@ApiModel(value = "AdamAddressesVo", description = "收获地址") @ApiModel(value = "AdamAddressesVo", description = "收获地址")
@Data @Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdamAddressesVo implements java.io.Serializable, Cloneable { public class AdamAddressesVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = -3096308044365829079L; private static final long serialVersionUID = -3096308044365829079L;
@ApiModelProperty(position = 10, value = "收获地址ID[64]") @ApiModelProperty(position = 10, value = "收获地址ID[64]")
......
package com.liquidnet.service.adam.dto.vo; package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.SensitizeUtil;
import com.liquidnet.service.adam.entity.AdamEnters; import com.liquidnet.service.adam.entity.AdamEnters;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -12,6 +12,7 @@ import java.time.LocalDateTime; ...@@ -12,6 +12,7 @@ import java.time.LocalDateTime;
@ApiModel(value = "AdamEntersVo", description = "入场人") @ApiModel(value = "AdamEntersVo", description = "入场人")
@Data @Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdamEntersVo implements java.io.Serializable, Cloneable { public class AdamEntersVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = -9143065766410946012L; private static final long serialVersionUID = -9143065766410946012L;
@ApiModelProperty(position = 10, value = "入场人ID[64]") @ApiModelProperty(position = 10, value = "入场人ID[64]")
......
package com.liquidnet.service.adam.dto.vo; package com.liquidnet.service.adam.dto.vo;
import com.liquidnet.commons.lang.util.SensitizeUtil;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
@ApiModel(value = "AdamLoginInfoVo", description = "登录成功响应数据") @ApiModel(value = "AdamLoginInfoVo", description = "登录成功响应数据")
public class AdamLoginInfoVo implements Serializable, Cloneable { public class AdamLoginInfoVo implements Serializable, Cloneable {
......
package com.liquidnet.service.adam.dto.vo; package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.adam.entity.AdamMemberCode; import com.liquidnet.service.adam.entity.AdamMemberCode;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
...@@ -12,6 +13,7 @@ import java.time.LocalDateTime; ...@@ -12,6 +13,7 @@ import java.time.LocalDateTime;
@ApiModel(value = "AdamMemberCodeVo", description = "会员兑换码") @ApiModel(value = "AdamMemberCodeVo", description = "会员兑换码")
@Data @Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdamMemberCodeVo implements Serializable, Cloneable { public class AdamMemberCodeVo implements Serializable, Cloneable {
private static final long serialVersionUID = -2822442493419088086L; private static final long serialVersionUID = -2822442493419088086L;
@ApiModelProperty(position = 0, value = "会员码批次号") @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; package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.adam.dto.AdamMemberOrderDto; import com.liquidnet.service.adam.dto.AdamMemberOrderDto;
import com.liquidnet.service.adam.entity.AdamMemberOrder; import com.liquidnet.service.adam.entity.AdamMemberOrder;
...@@ -14,6 +15,7 @@ import java.time.LocalDateTime; ...@@ -14,6 +15,7 @@ import java.time.LocalDateTime;
@ApiModel(value = "AdamMemberOrderVo", description = "订单详情展示") @ApiModel(value = "AdamMemberOrderVo", description = "订单详情展示")
@Data @Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdamMemberOrderVo implements Serializable, Cloneable { public class AdamMemberOrderVo implements Serializable, Cloneable {
private static final long serialVersionUID = -1606153856097622877L; private static final long serialVersionUID = -1606153856097622877L;
@ApiModelProperty(position = 0, value = "订单号") @ApiModelProperty(position = 0, value = "订单号")
......
package com.liquidnet.service.adam.dto.vo; package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -9,6 +10,7 @@ import java.util.List; ...@@ -9,6 +10,7 @@ import java.util.List;
@ApiModel(value = "AdamMemberRightsCouponVo", description = "会员专享特权券") @ApiModel(value = "AdamMemberRightsCouponVo", description = "会员专享特权券")
@Data @Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdamMemberRightsCouponVo implements java.io.Serializable, Cloneable { public class AdamMemberRightsCouponVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = 4099907681723174194L; private static final long serialVersionUID = 4099907681723174194L;
@ApiModelProperty(position = 1, value = "权益ID") @ApiModelProperty(position = 1, value = "权益ID")
...@@ -31,6 +33,8 @@ public class AdamMemberRightsCouponVo implements java.io.Serializable, Cloneable ...@@ -31,6 +33,8 @@ public class AdamMemberRightsCouponVo implements java.io.Serializable, Cloneable
private BigDecimal valOver; private BigDecimal valOver;
@ApiModelProperty(position = 10, value = "满减~减") @ApiModelProperty(position = 10, value = "满减~减")
private BigDecimal valMinus; private BigDecimal valMinus;
@ApiModelProperty(position = 11, value = "折扣[8折即0.8]")
private BigDecimal discount;
/* com.liquidnet.service.adam.dto.vo.AdamMemberRightsCouponRuleVo */ /* com.liquidnet.service.adam.dto.vo.AdamMemberRightsCouponRuleVo */
private List<AdamMemberRightsCouponRuleVo> useRules; private List<AdamMemberRightsCouponRuleVo> useRules;
......
package com.liquidnet.service.adam.dto.vo; package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.service.adam.entity.AdamMemberRights; import com.liquidnet.service.adam.entity.AdamMemberRights;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -7,6 +8,7 @@ import lombok.Data; ...@@ -7,6 +8,7 @@ import lombok.Data;
@ApiModel(value = "AdamMemberRightsVo", description = "会员") @ApiModel(value = "AdamMemberRightsVo", description = "会员")
@Data @Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdamMemberRightsVo implements java.io.Serializable, Cloneable { public class AdamMemberRightsVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = -2407106925001008460L; private static final long serialVersionUID = -2407106925001008460L;
@ApiModelProperty(position = 1, value = "权益ID") @ApiModelProperty(position = 1, value = "权益ID")
......
package com.liquidnet.service.adam.dto.vo; package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.adam.entity.AdamMember; import com.liquidnet.service.adam.entity.AdamMember;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
...@@ -13,6 +14,7 @@ import java.util.List; ...@@ -13,6 +14,7 @@ import java.util.List;
@ApiModel(value = "AdamMemberVo", description = "会员") @ApiModel(value = "AdamMemberVo", description = "会员")
@Data @Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdamMemberVo implements java.io.Serializable, Cloneable { public class AdamMemberVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = -3480288014645762321L; private static final long serialVersionUID = -3480288014645762321L;
@ApiModelProperty(position = 0, value = "会员ID[50]") @ApiModelProperty(position = 0, value = "会员ID[50]")
...@@ -120,13 +122,12 @@ public class AdamMemberVo implements java.io.Serializable, Cloneable { ...@@ -120,13 +122,12 @@ public class AdamMemberVo implements java.io.Serializable, Cloneable {
try { try {
return (AdamMemberVo) obj.clone(); return (AdamMemberVo) obj.clone();
} catch (CloneNotSupportedException e) { } catch (CloneNotSupportedException e) {
e.printStackTrace(); return new AdamMemberVo();
} }
return new AdamMemberVo();
} }
public AdamMemberVo copy(AdamMember source) { public AdamMemberVo copy(AdamMember source) {
if (null == this) return this; if (null == source) return this;
this.setMemberId(source.getMemberId()); this.setMemberId(source.getMemberId());
this.setName(source.getName()); this.setName(source.getName());
this.setTitle(source.getTitle()); this.setTitle(source.getTitle());
......
package com.liquidnet.service.adam.dto.vo; package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.service.adam.entity.AdamRealName; import com.liquidnet.service.adam.entity.AdamRealName;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -9,6 +10,7 @@ import java.io.Serializable; ...@@ -9,6 +10,7 @@ import java.io.Serializable;
@ApiModel(value = "AdamRealInfoVo", description = "实名信息") @ApiModel(value = "AdamRealInfoVo", description = "实名信息")
@Data @Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdamRealInfoVo implements Serializable, Cloneable { public class AdamRealInfoVo implements Serializable, Cloneable {
private static final long serialVersionUID = -3469256375584132928L; private static final long serialVersionUID = -3469256375584132928L;
@ApiModelProperty(position = 10, value = "用户ID[30]") @ApiModelProperty(position = 10, value = "用户ID[30]")
......
package com.liquidnet.service.adam.dto.vo; package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.adam.entity.AdamThirdParty; import com.liquidnet.service.adam.entity.AdamThirdParty;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
...@@ -11,6 +12,7 @@ import java.time.LocalDateTime; ...@@ -11,6 +12,7 @@ import java.time.LocalDateTime;
@ApiModel(value = "ThirdPartInfoVo", description = "用户第三方信息") @ApiModel(value = "ThirdPartInfoVo", description = "用户第三方信息")
@Data @Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdamThirdPartInfoVo implements java.io.Serializable, Cloneable { public class AdamThirdPartInfoVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = -3239086191919676121L; private static final long serialVersionUID = -3239086191919676121L;
@ApiModelProperty(position = 11, value = "用户ID[64]") @ApiModelProperty(position = 11, value = "用户ID[64]")
......
package com.liquidnet.service.adam.dto.vo; package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
...@@ -14,10 +15,10 @@ import org.apache.commons.lang3.StringUtils; ...@@ -14,10 +15,10 @@ import org.apache.commons.lang3.StringUtils;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.regex.Pattern;
@ApiModel(value = "AdamUserInfoVo", description = "用户详情") @ApiModel(value = "AdamUserInfoVo", description = "用户详情")
@Data @Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdamUserInfoVo implements java.io.Serializable, Cloneable { public class AdamUserInfoVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = 8479869354894030303L; private static final long serialVersionUID = 8479869354894030303L;
@ApiModelProperty(position = 10, value = "用户ID[64]") @ApiModelProperty(position = 10, value = "用户ID[64]")
......
...@@ -2,6 +2,7 @@ package com.liquidnet.service.adam.dto.vo; ...@@ -2,6 +2,7 @@ package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.adam.entity.AdamUserMember; import com.liquidnet.service.adam.entity.AdamUserMember;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
...@@ -14,6 +15,7 @@ import java.time.format.DateTimeFormatter; ...@@ -14,6 +15,7 @@ import java.time.format.DateTimeFormatter;
@ApiModel(value = "AdamUserMemberVo", description = "会员用户信息") @ApiModel(value = "AdamUserMemberVo", description = "会员用户信息")
@Data @Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdamUserMemberVo implements Serializable, Cloneable { public class AdamUserMemberVo implements Serializable, Cloneable {
private static final long serialVersionUID = 9027553500608702757L; private static final long serialVersionUID = 9027553500608702757L;
@ApiModelProperty(position = 11, value = "用户ID") @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 { ...@@ -41,7 +41,7 @@ public class CandyMemberCouponBuildParam {
@ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券|101-优先券]", allowableValues = "1,2,101") @ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券|101-优先券]", allowableValues = "1,2,101")
private Integer couType; private Integer couType;
// @NotNull(message = "券领取方式不能为空") // @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; // private Integer bindType;
// @ApiModelProperty(required = false, value = "折扣[8折即0.8]", example = "0.8") // @ApiModelProperty(required = false, value = "折扣[8折即0.8]", example = "0.8")
// private BigDecimal discount; // 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 { ...@@ -25,10 +25,10 @@ public class CandyMgtCouponBuildParam {
@ApiModelProperty(required = true, value = "业务类别[0-全场|1-演出|2-商品|3-优先购]", allowableValues = "0,1,2,3") @ApiModelProperty(required = true, value = "业务类别[0-全场|1-演出|2-商品|3-优先购]", allowableValues = "0,1,2,3")
private Integer busiType; private Integer busiType;
@NotNull(message = "券类型不能为空") @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; private Integer couType;
@NotNull(message = "券领取方式不能为空") @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; private Integer bindType;
@ApiModelProperty(required = false, value = "折扣[8折即0.8]", example = "0.8") @ApiModelProperty(required = false, value = "折扣[8折即0.8]", example = "0.8")
private BigDecimal discount; private BigDecimal discount;
...@@ -72,7 +72,7 @@ public class CandyMgtCouponBuildParam { ...@@ -72,7 +72,7 @@ public class CandyMgtCouponBuildParam {
@Min(value = 1, message = "发放量不能小于1") @Min(value = 1, message = "发放量不能小于1")
@ApiModelProperty(required = true, value = "发放量", example = "1") @ApiModelProperty(required = true, value = "发放量", example = "1")
private Integer eventAmt; 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; private Integer eventType;
@ApiModelProperty(required = false, value = "`发放类型`为2-手机号时发放手机号以,分隔", example = "18510957291,17701223310") @ApiModelProperty(required = false, value = "`发放类型`为2-手机号时发放手机号以,分隔", example = "18510957291,17701223310")
private String eventLimit; 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;
}
}
...@@ -29,7 +29,7 @@ public class CandyCouponVo implements Serializable, Cloneable { ...@@ -29,7 +29,7 @@ public class CandyCouponVo implements Serializable, Cloneable {
private Integer busiType; private Integer busiType;
@ApiModelProperty(value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券 | 101-优先券]",example = "1") @ApiModelProperty(value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券 | 101-优先券]",example = "1")
private Integer couType; private Integer couType;
@ApiModelProperty(value = "[0-用户输入兑换|1-发放至用户]",example = "1") @ApiModelProperty(value = "[0-用户输入兑换|1-发放至用户|2-积分兑换|3-发放需领取|4-会员专属]",example = "1")
private Integer bindType; private Integer bindType;
@ApiModelProperty(value = "折扣 可null",example = "0.5") @ApiModelProperty(value = "折扣 可null",example = "0.5")
private BigDecimal discount; private BigDecimal discount;
......
...@@ -60,6 +60,7 @@ public class KylinRedisConst { ...@@ -60,6 +60,7 @@ public class KylinRedisConst {
public static final String ADMIN_UPUSH_LIST_IOS = "basicServices:upushList:IOS"; 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_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"; public static final String ADMIN_BANNER_LIST = "kylin:bannerList";
} }
...@@ -85,4 +85,28 @@ public class KylinTableStatusConst { ...@@ -85,4 +85,28 @@ public class KylinTableStatusConst {
public static final Integer ORDER_EXPRESS_STATUS8000 = 8000; // 签收结单 public static final Integer ORDER_EXPRESS_STATUS8000 = 8000; // 签收结单
public static final Integer ORDER_EXPRESS_SEND_TYPE1 = 1; // 发货 public static final Integer ORDER_EXPRESS_SEND_TYPE1 = 1; // 发货
public static final Integer ORDER_EXPRESS_SEND_TYPE2 = 2; // 退款 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();
}
}
}
...@@ -76,6 +76,15 @@ public interface IKylinPerformancesAdminService { ...@@ -76,6 +76,15 @@ public interface IKylinPerformancesAdminService {
*/ */
List<PerformanceSimpleAllDao> getListDetailByStatus(String status, String title); 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; ...@@ -11,10 +11,12 @@ import java.time.LocalDateTime;
@ApiModel(value = "StoneItemBuildParam", description = "新建积分物品") @ApiModel(value = "StoneItemBuildParam", description = "新建积分物品")
@Data @Data
public class StoneItemBuildParam { public class StoneItemBuildParam {
@ApiModelProperty(required = false, value = "积分物品id[创建不传]", example = "1") @ApiModelProperty(value = "积分物品id[创建不传]", example = "1")
private String itemId; private String itemId;
@ApiModelProperty(required = true, value = "目标类型[1-券|11-商品维度|21-演出维度]", example = "1")
private Integer type;
@NotBlank(message = "目标物品不能为空") @NotBlank(message = "目标物品不能为空")
@ApiModelProperty(required = true, value = "目标物品id", example = "1") @ApiModelProperty(value = "目标物品id", example = "1")
private String targetId; private String targetId;
@NotBlank(message = "目标物品不能为空") @NotBlank(message = "目标物品不能为空")
@ApiModelProperty(required = true, value = "目标物品标题", example = "测试券1") @ApiModelProperty(required = true, value = "目标物品标题", example = "测试券1")
......
...@@ -46,20 +46,21 @@ public class SweetConstant { ...@@ -46,20 +46,21 @@ public class SweetConstant {
public final static String REDIS_KEY_SWEET_CITY_VOTE = "sweet:cityVote"; 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_USER = ":user:";
public final static String REDIS_KEY_SWEET_CITY_VOTE_STAT_UPDATE_TIME = ":updateTime"; public final static String REDIS_KEY_SWEET_CITY_VOTE_STAT_UPDATE_TIME = ":updateTime";
// 微信用户相关 public final static String REDIS_KEY_SWEET_CITY_VOTE_START = "sweet:cityVote:startTime:";//活动开始时间
public final static String REDIS_KEY_SWEET_WECHAT_USER_INFO = "sweet:wechatUser:zhengzai:unionId:"; public final static String REDIS_KEY_SWEET_CITY_VOTE_END = "sweet:cityVote:endTime:";//活动结束时间
public final static String REDIS_KEY_SWEET_WECHAT_USER_INFO_MODERNSKY = "sweet:wechatUser:modernsky:unionId:"; public final static String REDIS_KEY_SWEET_CITY_VOTE_BANNER = "sweet:cityVote:banner:";//活动banner
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:"; // 2021草莓音乐节海报活动活动
public final static String REDIS_KEY_SWEET_WECHAT_USER_UNIONID_PHONE = "sweet:wechatUser:zhengzai:phone:"; public static final String REDIS_KEY_SWEET_STRAWBERRY_POSTER_CLICK = "sweet:strawberryPoster:click:openId:";
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_WECHAT_USERS_UNIONID = "sweet:user:service:unionId:"; 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_OPENID = "sweet:user:service:openId:";
public final static String REDIS_KEY_SWEET_WECHAT_USERS_TYPE = ":type:"; 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_PHONE = "sweet:user:applet:mobile:";
public final static String REDIS_KEY_SWEET_APPLET_USERS_UNIONID = "sweet:user:applet:unionid:"; 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";
} }
/*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
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;
}
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.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);
}
...@@ -43,6 +43,9 @@ public class SweetCItyVoteStatVo implements Serializable, Cloneable { ...@@ -43,6 +43,9 @@ public class SweetCItyVoteStatVo implements Serializable, Cloneable {
@ApiModelProperty("名次变动状态 1未变化 2上升 3下降") @ApiModelProperty("名次变动状态 1未变化 2上升 3下降")
private Integer rankingUpOrDown; private Integer rankingUpOrDown;
// @ApiModelProperty("状态[0-未开始|1-进行中|2-已结束]")
// private Integer status;
/*@ApiModelProperty("创建时间") /*@ApiModelProperty("创建时间")
private LocalDateTime createdAt; private LocalDateTime createdAt;
...@@ -50,6 +53,7 @@ public class SweetCItyVoteStatVo implements Serializable, Cloneable { ...@@ -50,6 +53,7 @@ public class SweetCItyVoteStatVo implements Serializable, Cloneable {
private LocalDateTime updatedAt;*/ private LocalDateTime updatedAt;*/
private static final SweetCItyVoteStatVo obj = new SweetCItyVoteStatVo(); private static final SweetCItyVoteStatVo obj = new SweetCItyVoteStatVo();
public static SweetCItyVoteStatVo getNew() { public static SweetCItyVoteStatVo getNew() {
try { try {
return (SweetCItyVoteStatVo) obj.clone(); return (SweetCItyVoteStatVo) obj.clone();
......
...@@ -56,10 +56,13 @@ public class BaseController ...@@ -56,10 +56,13 @@ public class BaseController
PageDomain pageDomain = TableSupport.buildPageRequest(); PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum(); Integer pageNum = pageDomain.getPageNum();
Integer pageSize = pageDomain.getPageSize(); Integer pageSize = pageDomain.getPageSize();
String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize))
{ {
String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); // String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
PageHelper.startPage(pageNum, pageSize, orderBy); PageHelper.startPage(pageNum, pageSize, orderBy);
} else {
PageHelper.startPage(1, 10, orderBy);
} }
} }
......
package com.liquidnet.client.admin.web.controller.zhengzai.candy; package com.liquidnet.client.admin.web.controller.zhengzai.candy;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.liquidnet.client.admin.common.core.controller.BaseController; 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.TableDataInfo; import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponAdminService; 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.CandyCouponFilterDto;
import com.liquidnet.service.candy.dto.admin.CandyCouponListParam; import com.liquidnet.service.candy.dto.admin.CandyCouponListParam;
import com.liquidnet.service.candy.dto.admin.CandyCouponTemplateDto;
import com.liquidnet.service.candy.entity.CandyCoupon; import com.liquidnet.service.candy.entity.CandyCoupon;
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.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; 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.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Pattern;
@Api(tags = "我的券包")
@Controller @Controller
@RequestMapping("candy/coupon") @RequestMapping("candy/coupon")
public class CandyCouponAdminController extends BaseController { public class CandyCouponAdminController extends BaseController {
@Autowired @Autowired
ICandyCouponAdminService candyCouponAdminService; 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 = "搜索关键字"),
})
@PostMapping("list") @PostMapping("list")
@ResponseBody @ResponseBody
public TableDataInfo list(CandyCouponListParam listParam) { public TableDataInfo list(CandyCouponListParam listParam) {
LambdaQueryWrapper<CandyCoupon> queryWrapper = Wrappers.lambdaQuery(CandyCoupon.class); LambdaQueryWrapper<CandyCoupon> queryWrapper = Wrappers.lambdaQuery(CandyCoupon.class);
queryWrapper.eq(CandyCoupon::getState, 1);
queryWrapper.select(CandyCoupon::getCouponId, CandyCoupon::getTitle); queryWrapper.select(CandyCoupon::getCouponId, CandyCoupon::getTitle);
queryWrapper.orderByDesc(CandyCoupon::getCreatedAt); queryWrapper.orderByDesc(CandyCoupon::getCreatedAt);
...@@ -38,12 +65,45 @@ public class CandyCouponAdminController extends BaseController { ...@@ -38,12 +65,45 @@ public class CandyCouponAdminController extends BaseController {
if (null != listParam.getCouType()) { if (null != listParam.getCouType()) {
queryWrapper.eq(CandyCoupon::getCouType, listParam.getCouType()); queryWrapper.eq(CandyCoupon::getCouType, listParam.getCouType());
} }
if (null != listParam.getBindType()) { // if (null != listParam.getBindType()) {
queryWrapper.eq(CandyCoupon::getBindType, listParam.getBindType()); // queryWrapper.eq(CandyCoupon::getBindType, listParam.getBindType());
// }
if (null != listParam.getBindType() && Pattern.matches("^[\\d,]*$", listParam.getBindType())) {
String[] bindTypeArr = listParam.getBindType().split(",");
if (bindTypeArr.length > 0) {
queryWrapper.in(CandyCoupon::getBindType, Arrays.stream(bindTypeArr).toArray());
}
} }
} }
startPage(); startPage();
return getDataTable(candyCouponAdminService.list(queryWrapper)); List<CandyCoupon> list = candyCouponAdminService.list(queryWrapper);
TableDataInfo dataTable = getDataTable(list);
List<CandyCouponFilterDto> dtoList = new ArrayList<>();
list.forEach(r -> {
dtoList.add(CandyCouponFilterDto.getNew().copy(r));
});
dataTable.setRows(dtoList);
return dataTable;
}
@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);
couponTemplateDto.setUseRules(couponRuleList);
return AjaxResult.success(couponTemplateDto.copy(coupon));
} }
} }
;(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,7 @@ ...@@ -43,6 +43,7 @@
<script th:src="@{/ruoyi/js/ry-ui.js?v=4.6.1}"></script> <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-performance.js}"></script>
<script th:src="@{/js/remote-search-coupon.js}"></script>
</div> </div>
<!-- ztree树插件 --> <!-- ztree树插件 -->
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
<head> <head>
<th:block th:include="include :: header('会员设置')" /> <th:block th:include="include :: header('会员设置')" />
<th:block th:include="include :: bootstrap-fileinput-css" /> <th:block th:include="include :: bootstrap-fileinput-css" />
<!-- <script src="../../../../static/js/remote-search-coupon.js"></script>-->
</head> </head>
<style> <style>
.avatar_img { .avatar_img {
...@@ -72,6 +73,7 @@ ...@@ -72,6 +73,7 @@
} }
.pop_inner .form-group { .pop_inner .form-group {
float: left; float: left;
width: 100%;
padding-top: 20px; padding-top: 20px;
} }
.pop_inner .form-group .discount { .pop_inner .form-group .discount {
...@@ -123,6 +125,19 @@ ...@@ -123,6 +125,19 @@
margin-left: 5px; margin-left: 5px;
background: #f00; background: #f00;
} }
.radio-box {
float: left;
}
.goods_track {
display: none;
}
.user_rules {
display: none;
}
/*误删 该样式是控制动态添加数据的*/
.remote_search {
padding-left: 0;
}
</style> </style>
<body class="gray-bg" style="font: 14px Helvetica Neue, Helvetica, PingFang SC, 微软雅黑, Tahoma, Arial, sans-serif !important;"> <body class="gray-bg" style="font: 14px Helvetica Neue, Helvetica, PingFang SC, 微软雅黑, Tahoma, Arial, sans-serif !important;">
<section class="section-content"> <section class="section-content">
...@@ -267,7 +282,6 @@ ...@@ -267,7 +282,6 @@
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label">权益描述:</label> <label class="col-sm-2 control-label">权益描述:</label>
</div> </div>
<div th:if="${#lists.isEmpty(memberRightsList)}"> <div th:if="${#lists.isEmpty(memberRightsList)}">
<div class="form-group interests_item"> <div class="form-group interests_item">
<div class="text-center"> <div class="text-center">
...@@ -413,9 +427,10 @@ ...@@ -413,9 +427,10 @@
<div class="pop_inner"> <div class="pop_inner">
<input type="hidden" class="parentsIndex"/> <input type="hidden" class="parentsIndex"/>
<input type="hidden" class="childIndex"/> <input type="hidden" class="childIndex"/>
<div class="col-sm-10"> <input type="hidden" class="pop_oper"/>
<input type="text" id="coupeAdd_title" name="coupeAdd_title" placeholder="券标题"/> <!-- <div class="col-sm-10">-->
</div> <!-- <input type="text" id="coupeAdd_title" name="coupeAdd_title" placeholder="券标题"/>-->
<!-- </div>-->
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label">类别:</label> <label class="col-sm-2 control-label">类别:</label>
<div class="col-sm-10 coupenColumn"> <div class="col-sm-10 coupenColumn">
...@@ -443,7 +458,7 @@ ...@@ -443,7 +458,7 @@
</div> </div>
<div class="form-group alltrack"> <div class="form-group alltrack">
<label class="col-sm-2 control-label">类型:</label> <label class="col-sm-2 control-label">类型:</label>
<div class="col-sm-10"> <div class="col-sm-10 alltrack_radio">
<div class="radio-box"> <div class="radio-box">
<label for="radio1" onclick="coupetType(this)"> <label for="radio1" onclick="coupetType(this)">
<input type="radio" id="coupetypr2" class="coupeAddVal" name="coupe_type" value="2"/>满减券 <input type="radio" id="coupetypr2" class="coupeAddVal" name="coupe_type" value="2"/>满减券
...@@ -454,10 +469,27 @@ ...@@ -454,10 +469,27 @@
<input type="radio" id="coupetypr1" class="coupeAddVal" name="coupe_type" value="1"/>代金券 <input type="radio" id="coupetypr1" class="coupeAddVal" name="coupe_type" value="1"/>代金券
</label> </label>
</div> </div>
<div class="radio-box goods_track">
<label for="radio2" onclick="coupetType(this)">
<input type="radio" id="coupetypr4" class="coupeAddVal" name="coupe_type" value="4"/>折扣券
</label>
</div>
</div> </div>
<!-- <div class="col-sm-10 discount">-->
<!-- <div class="coupetypr_discount">满 ¥ <input type="text" id="valOver"/> 减 ¥ <input type="text" id="valMinus"/></div>-->
<!-- <div class="coupetypr_price" style="display: none;">金额 ¥ <input type="text" id="valFace"/></div>-->
<!-- </div>-->
<div class="col-sm-10 discount"> <div class="col-sm-10 discount">
<div class="coupetypr_discount">满 ¥ <input type="text" id="valOver"/> 减 ¥ <input type="text" id="valMinus"/></div> <div class="coupetypr_search">
<div class="coupetypr_price" style="display: none;">金额 ¥ <input type="text" id="valFace"/></div> <div class="remote_wrapper" style="position: relative;">
<input name="ids" type="hidden">
<input type="text" id="remoteSearch" placeholder="请选择券">
</div>
</div>
</div>
<div class="form-group user_rules">
<label class="col-sm-2 control-label">适用范围:</label>
<div class="col-sm-10 rules_inner"></div>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
...@@ -503,6 +535,9 @@ ...@@ -503,6 +535,9 @@
var typeRadio = ''; var typeRadio = '';
var prefix = ctx + "adam/member"; var prefix = ctx + "adam/member";
var candyfix = ctx + "candy/coupon";
console.log(memberRightsList);
// 弹窗 // 弹窗
$(function () { $(function () {
$("#fileinput-demo-1").fileinput({ $("#fileinput-demo-1").fileinput({
...@@ -542,6 +577,20 @@ ...@@ -542,6 +577,20 @@
}); });
}); });
// 远程搜索券
$('#remoteSearch').remoteSearchPerformance({
ajax:{
url: candyfix + "/list",
type: "post"
},
chose: function(text,val){
window.couponId = val;
$('.user_rules').show();
coupenDetail(val, 1);
// document.getElementsByName("ids")[0].value = val;
}
});
function tabChange (num) { function tabChange (num) {
window.localStorage.setItem('tabActive', num); window.localStorage.setItem('tabActive', num);
} }
...@@ -619,8 +668,11 @@ ...@@ -619,8 +668,11 @@
valFace: valFace ? valFace : 1, valFace: valFace ? valFace : 1,
valOver: valOver ? valOver : 1, valOver: valOver ? valOver : 1,
valMinus: valMinus ? valMinus : 1, valMinus: valMinus ? valMinus : 1,
state: 1 oper: $('.pop_oper').val()
}; };
if ($('.pop_oper').val() == 3) {
MembercoupenData.operCouponId = this.operCouponId;
}
$.operate.saveModalBody(prefix + "/edit_coupon", JSON.stringify(MembercoupenData), function () { $.operate.saveModalBody(prefix + "/edit_coupon", JSON.stringify(MembercoupenData), function () {
$('.coupe_pop').hide(); $('.coupe_pop').hide();
$('.cover_pop').hide(); $('.cover_pop').hide();
...@@ -640,12 +692,20 @@ ...@@ -640,12 +692,20 @@
$(obj).find('input').attr('checked', true); $(obj).find('input').attr('checked', true);
this.typeRadio = typeRadio; this.typeRadio = typeRadio;
$('#remoteSearch').val('');
$('.user_rules').hide();
if (typeRadio == 3) { if (typeRadio == 3) {
$('.alltrack').hide(); $('.alltrack').show();
$('.alltrack_limit').show(); $('.alltrack_limit').show();
$('.alltrack_radio').hide();
} else { } else {
$('.alltrack').show(); $('.alltrack').show();
$('.alltrack_limit').hide(); $('.alltrack_limit').hide();
if (typeRadio == 2) {
$('.goods_track').show();
} else {
$('.goods_track').hide();
}
} }
} }
...@@ -653,6 +713,8 @@ ...@@ -653,6 +713,8 @@
function coupetType (obj) { function coupetType (obj) {
var typeCoupe = $(obj).find('input').val(); var typeCoupe = $(obj).find('input').val();
this.typeCoupe = typeCoupe; this.typeCoupe = typeCoupe;
$('#remoteSearch').val('');
$('.user_rules').hide();
if (typeCoupe == 1) { if (typeCoupe == 1) {
$('.coupetypr_price').show(); $('.coupetypr_price').show();
$('.coupetypr_discount').hide(); $('.coupetypr_discount').hide();
...@@ -662,6 +724,39 @@ ...@@ -662,6 +724,39 @@
} }
} }
// 券详情
function coupenDetail (val, num) {
$.ajax({
url: candyfix + "/info",
async: false,
data: {
couponId: val
},
dataType: 'json',
type: 'get',
success: function (res) {
var coupenData = res.data;
if (coupenData.busiType == 0) {
$('.user_rules .rules_inner').text('全部演出、商品');
} else if (coupenData.busiType == 1 || coupenData.busiType == 2) {
var coupenDataArr = [];
if (coupenData.useRules.length > 0) {
for (var i = 0; i < coupenData.useRules.length; i++ ) {
coupenDataArr.push(coupenData.useRules[i].busiName);
}
coupenDataArr.join("/");
$('.user_rules .rules_inner').text(coupenDataArr.join("/"));
}
} else if (coupenData.busiType == 3) {
$('.user_rules .rules_inner').text('全部演出');
}
if (num == 3) {
$('#remoteSearch').val(coupenData.title);
$('.user_rules').show();
}
}
})
}
// 权益图片上传 // 权益图片上传
function icon (obj, num) { function icon (obj, num) {
$('.coverFunNum').val(num); $('.coverFunNum').val(num);
...@@ -723,7 +818,7 @@ ...@@ -723,7 +818,7 @@
valFace: valFace ? valFace : 1, valFace: valFace ? valFace : 1,
valOver: valOver ? valOver : 1, valOver: valOver ? valOver : 1,
valMinus: valMinus ? valMinus : 1, valMinus: valMinus ? valMinus : 1,
state: 2 oper: 2
}; };
$.operate.saveModalBody(prefix + "/edit_coupon", JSON.stringify(MembercoupenData)); $.operate.saveModalBody(prefix + "/edit_coupon", JSON.stringify(MembercoupenData));
thisVal.remove(); thisVal.remove();
...@@ -732,7 +827,9 @@ ...@@ -732,7 +827,9 @@
// 添加券 // 添加券
function addCoupes (obj) { function addCoupes (obj) {
var addItemIndex = $('.member-coupes').index($(obj)); var addItemIndex = $('.member-coupes').index($(obj));
console.log(addItemIndex)
$('.parentsIndex').val(addItemIndex); $('.parentsIndex').val(addItemIndex);
$('.pop_oper').val(1);
$('.coupe_pop').show(); $('.coupe_pop').show();
} }
...@@ -759,8 +856,15 @@ ...@@ -759,8 +856,15 @@
var valOver = parentObj.find('#mrcvalOver').val(); var valOver = parentObj.find('#mrcvalOver').val();
var valMinus = parentObj.find('#mrcvalMinus').val(); var valMinus = parentObj.find('#mrcvalMinus').val();
if (this.typeCoupe == 4) {
$('#coupetypr4').parent().parent().parent().show();
} else {
$('#coupetypr4').parent().parent().parent().hide();
}
this.mrightsId = mrightsId; this.mrightsId = mrightsId;
this.couponId = couponId; this.couponId = couponId;
this.operCouponId = couponId;
$('#eventAmt').val(eventAmt); $('#eventAmt').val(eventAmt);
$('#valOver').val(valOver); $('#valOver').val(valOver);
...@@ -768,8 +872,9 @@ ...@@ -768,8 +872,9 @@
$('#valFace').val(valFace); $('#valFace').val(valFace);
if (this.typeRadio == 3) { if (this.typeRadio == 3) {
$('.alltrack').hide(); $('.alltrack').show();
$('.alltrack_limit').show(); $('.alltrack_limit').show();
$('.alltrack_radio').hide();
} else { } else {
$('.alltrack').show(); $('.alltrack').show();
$('.alltrack_limit').hide(); $('.alltrack_limit').hide();
...@@ -804,6 +909,8 @@ ...@@ -804,6 +909,8 @@
busiName: '优先购' busiName: '优先购'
}] }]
} }
$('.pop_oper').val(3);
coupenDetail(couponId, 3);
$('.coupe_pop').show(); $('.coupe_pop').show();
} }
......
...@@ -13,7 +13,9 @@ ...@@ -13,7 +13,9 @@
.main_title, .main_type, .money, .scope_application, .sendType,.phoneNumber,.playMethod { .main_title, .main_type, .money, .scope_application, .sendType,.phoneNumber,.playMethod {
margin-bottom: 20px; margin-bottom: 20px;
} }
#searchIpt {
/* display: none; */
}
.phoneNumber,.playMethod { .phoneNumber,.playMethod {
display: none; display: none;
} }
...@@ -153,10 +155,18 @@ ...@@ -153,10 +155,18 @@
<input type="radio" value="3" name="typeOne"><span>优先购</span> <input type="radio" value="3" name="typeOne"><span>优先购</span>
</div> </div>
</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"> <div class="scope_application" id="scope_application">
<span class="labelName"><i class="required">*</i>券名称:</span> <span class="labelName"><i class="required">*</i>券名称:</span>
<div class="search_ipt" style="position: relative;display: inline;"> <div class="search_ipt" style="position: relative;display: inline;">
<input type="text" id="searchIpt" autocomplete="off" class="layui-input" placeholder="全部"> <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> <ul id="dataList" style="position: absolute;"></ul>
</div> </div>
</div> </div>
...@@ -268,6 +278,9 @@ ...@@ -268,6 +278,9 @@
let showPicture = ''; // 展示图片 let showPicture = ''; // 展示图片
let limit = ''; // 限兑次数 let limit = ''; // 限兑次数
let itemId = ''; // let itemId = ''; //
let selectType = '1'
let type = '';
console.log('检测')
$(document).ready(function() { $(document).ready(function() {
var $summernote = $('#summernote').summernote({ var $summernote = $('#summernote').summernote({
height: 300, height: 300,
...@@ -340,6 +353,9 @@ ...@@ -340,6 +353,9 @@
$('#summernote').summernote('code', data.details) $('#summernote').summernote('code', data.details)
$('.summernote').eq(1).summernote('code', data.notice) $('.summernote').eq(1).summernote('code', data.notice)
// $("#attention").val(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) { if (data.limitCount != 0) {
sendType = 1 sendType = 1
$("input[name='sendType'][value='1']").attr("checked", "checked").siblings().removeAttr('checked'); $("input[name='sendType'][value='1']").attr("checked", "checked").siblings().removeAttr('checked');
...@@ -443,6 +459,18 @@ ...@@ -443,6 +459,18 @@
$("input[name=typeOne]").change(function(e){ $("input[name=typeOne]").change(function(e){
typeOne = e.target.value; 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){ $("input[name=sendType]").change(function(e){
sendType = e.target.value; sendType = e.target.value;
if (sendType == 1) { if (sendType == 1) {
...@@ -468,9 +496,18 @@ ...@@ -468,9 +496,18 @@
}); });
function create() { 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('请将必填项输入完整~!'); return layer.msg('请将必填项输入完整~!');
} }
if (selectType == 1) {
if (!$('#searchIpt').val()) {
return layer.msg('请将必填项输入完整~!');
}
} else {
if (!$('#searchIptMall').val()) {
return layer.msg('请将必填项输入完整~!');
}
}
if (sendType == 1) { if (sendType == 1) {
if (!$("#linit").val()) { if (!$("#linit").val()) {
return layer.msg('请填写限兑次数!'); return layer.msg('请填写限兑次数!');
...@@ -502,7 +539,7 @@ ...@@ -502,7 +539,7 @@
startTime: $.common.dateFormat(startTime, 'yyyy-MM-dd HH:mm:ss'), // 上架时间status = 2 必传) startTime: $.common.dateFormat(startTime, 'yyyy-MM-dd HH:mm:ss'), // 上架时间status = 2 必传)
status: Number(shelves), // 上架状态[1-不限|2-定时|7-下线] status: Number(shelves), // 上架状态[1-不限|2-定时|7-下线]
targetId: showId, // 目标物品id targetId: showId, // 目标物品id
targetTitle: $('#searchIpt').val() // 目标物品标题 targetTitle: $('#searchIpt').val() || $("#searchIptMall").val() // 目标物品标题
} }
let type = 'post'; let type = 'post';
if (!itemId) { if (!itemId) {
...@@ -514,6 +551,12 @@ ...@@ -514,6 +551,12 @@
delete data.startTime delete data.startTime
delete data.endTime delete data.endTime
} }
if (selectType == 1) {
// delete data.targetId
data['type'] = 1
} else {
data['type'] = 11
}
promiseMethods(ctx+'stone/item',type,data).then(res=>{ promiseMethods(ctx+'stone/item',type,data).then(res=>{
layer.msg('' + res); layer.msg('' + res);
if (res.code != undefined && res.code != web_status.SUCCESS) { if (res.code != undefined && res.code != web_status.SUCCESS) {
......
...@@ -189,6 +189,7 @@ public class AdminUpushServiceImpl extends ServiceImpl<AdminUpushMapper, AdminUp ...@@ -189,6 +189,7 @@ public class AdminUpushServiceImpl extends ServiceImpl<AdminUpushMapper, AdminUp
AdminUpush updatePush = new AdminUpush(); AdminUpush updatePush = new AdminUpush();
try { try {
AndroidBroadcast broadcast = new AndroidBroadcast(androidAppkey, androidAppMasterSecret); AndroidBroadcast broadcast = new AndroidBroadcast(androidAppkey, androidAppMasterSecret);
broadcast.setBadge(1);
broadcast.setTicker(adminUpush.getPushTitle()); broadcast.setTicker(adminUpush.getPushTitle());
broadcast.setTitle(adminUpush.getPushTitle()); broadcast.setTitle(adminUpush.getPushTitle());
broadcast.setText(adminUpush.getPushContent()); broadcast.setText(adminUpush.getPushContent());
...@@ -257,7 +258,7 @@ public class AdminUpushServiceImpl extends ServiceImpl<AdminUpushMapper, AdminUp ...@@ -257,7 +258,7 @@ public class AdminUpushServiceImpl extends ServiceImpl<AdminUpushMapper, AdminUp
IOSBroadcast broadcast = new IOSBroadcast(iosAppkey, iosAppMasterSecret); IOSBroadcast broadcast = new IOSBroadcast(iosAppkey, iosAppMasterSecret);
//alert的值设置为字典 //alert的值设置为字典
broadcast.setAlert(adminUpush.getPushTitle(), "", adminUpush.getPushContent()); broadcast.setAlert(adminUpush.getPushTitle(), "", adminUpush.getPushContent());
broadcast.setBadge(0); broadcast.setBadge(1);
broadcast.setSound("default"); broadcast.setSound("default");
if (Arrays.asList(LnsEnum.ENV.dev.name(), LnsEnum.ENV.test.name()).contains(environment.getProperty(CurrentUtil.CK_ENV_ACTIVE))) { if (Arrays.asList(LnsEnum.ENV.dev.name(), LnsEnum.ENV.test.name()).contains(environment.getProperty(CurrentUtil.CK_ENV_ACTIVE))) {
broadcast.setTestMode(); broadcast.setTestMode();
......
...@@ -10,9 +10,11 @@ import java.util.List; ...@@ -10,9 +10,11 @@ import java.util.List;
public interface ICandyMgtCouponAdminService extends IService<CandyMgtCoupon> { 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); boolean saveMgtCouponForCouponBuild(CandyMgtCouponBuildParam parameter);
...@@ -20,7 +22,7 @@ public interface ICandyMgtCouponAdminService extends IService<CandyMgtCoupon> { ...@@ -20,7 +22,7 @@ public interface ICandyMgtCouponAdminService extends IService<CandyMgtCoupon> {
boolean saveMgtCouponInfo(CandyCoupon initCoupon, CandyMgtCoupon initMgtCoupon, List<CandyCouponRule> initCouponRuleList); 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); List<CandyMgtCouponInfoDto> listForMgtCouponInfoDto(CandyMgtCouponListParam listParam);
......
...@@ -251,6 +251,20 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma ...@@ -251,6 +251,20 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
return dto2List; 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 @Override
public boolean changeRoadShowId(String performancesId, String roadShowId) { public boolean changeRoadShowId(String performancesId, String roadShowId) {
try { try {
......
...@@ -13,7 +13,7 @@ public abstract class AndroidNotification extends UmengNotification { ...@@ -13,7 +13,7 @@ public abstract class AndroidNotification extends UmengNotification {
// Keys can be set in the body level // Keys can be set in the body level
protected static final HashSet<String> BODY_KEYS = new HashSet<String>(Arrays.asList(new String[]{ 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", "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{ public enum DisplayType{
NOTIFICATION{public String getValue(){return "notification";}},///通知:消息送达到用户设备后,由友盟SDK接管处理并在通知栏上显示通知内容。 NOTIFICATION{public String getValue(){return "notification";}},///通知:消息送达到用户设备后,由友盟SDK接管处理并在通知栏上显示通知内容。
...@@ -81,6 +81,10 @@ public abstract class AndroidNotification extends UmengNotification { ...@@ -81,6 +81,10 @@ public abstract class AndroidNotification extends UmengNotification {
} }
return true; return true;
} }
public void setBadge(Integer badge) throws Exception {
setPredefinedKeyValue("badge", badge);
}
// Set extra key/value for Android notification // Set extra key/value for Android notification
public boolean setExtraField(String key, String value) throws Exception { public boolean setExtraField(String key, String value) throws Exception {
...@@ -102,8 +106,7 @@ public abstract class AndroidNotification extends UmengNotification { ...@@ -102,8 +106,7 @@ public abstract class AndroidNotification extends UmengNotification {
extraJson.put(key, value); extraJson.put(key, value);
return true; return true;
} }
//
public void setDisplayType(DisplayType d) throws Exception { public void setDisplayType(DisplayType d) throws Exception {
setPredefinedKeyValue("display_type", d.getValue()); setPredefinedKeyValue("display_type", d.getValue());
} }
......
...@@ -132,6 +132,13 @@ public class ItemServiceImpl implements IItemService { ...@@ -132,6 +132,13 @@ public class ItemServiceImpl implements IItemService {
if (param.getStatus() == 2 & (param.getStartTime() == null || param.getEndTime() == null)) { if (param.getStatus() == 2 & (param.getStartTime() == null || param.getEndTime() == null)) {
return "时间有误"; return "时间有误";
} }
if (param.getType() == 11) {
param.setTargetId("-999");
} else {
if (param.getType() == 1 && param.getTargetId() == null) {
return "参数异常";
}
}
StoneScoreItems data = BaseData(param); StoneScoreItems data = BaseData(param);
int generalPoor = param.getGeneralTotal() - 0; int generalPoor = param.getGeneralTotal() - 0;
data.setItemId(IDGenerator.nextTimeId2()); data.setItemId(IDGenerator.nextTimeId2());
...@@ -157,6 +164,13 @@ public class ItemServiceImpl implements IItemService { ...@@ -157,6 +164,13 @@ public class ItemServiceImpl implements IItemService {
if (param.getStatus() == 2 & (param.getStartTime() == null || param.getEndTime() == null)) { if (param.getStatus() == 2 & (param.getStartTime() == null || param.getEndTime() == null)) {
return "时间有误"; return "时间有误";
} }
if (param.getType() == 11) {
param.setTargetId("-999");
} else {
if (param.getType() == 1 && param.getTargetId() == null) {
return "参数异常";
}
}
StoneScoreItems data = BaseData(param); StoneScoreItems data = BaseData(param);
StoneScoreItems dataSingle = stoneScoreItemsMapper.selectOne(Wrappers.lambdaQuery(StoneScoreItems.class).eq(StoneScoreItems::getItemId, param.getItemId())); StoneScoreItems dataSingle = stoneScoreItemsMapper.selectOne(Wrappers.lambdaQuery(StoneScoreItems.class).eq(StoneScoreItems::getItemId, param.getItemId()));
int generalPoor = param.getGeneralTotal() - dataSingle.getGeneralTotal(); int generalPoor = param.getGeneralTotal() - dataSingle.getGeneralTotal();
...@@ -187,7 +201,7 @@ public class ItemServiceImpl implements IItemService { ...@@ -187,7 +201,7 @@ public class ItemServiceImpl implements IItemService {
StoneScoreItems data = new StoneScoreItems(); StoneScoreItems data = new StoneScoreItems();
data.setTargetId(param.getTargetId()); data.setTargetId(param.getTargetId());
data.setTargetTitle(param.getTargetTitle()); data.setTargetTitle(param.getTargetTitle());
data.setType(1); data.setType(param.getType());
data.setImg(param.getImg()); data.setImg(param.getImg());
data.setScore(param.getScore()); data.setScore(param.getScore());
data.setPrice(BigDecimal.ZERO); data.setPrice(BigDecimal.ZERO);
...@@ -196,10 +210,10 @@ public class ItemServiceImpl implements IItemService { ...@@ -196,10 +210,10 @@ public class ItemServiceImpl implements IItemService {
data.setDetails(param.getDetails()); data.setDetails(param.getDetails());
data.setNotice(param.getNotice()); data.setNotice(param.getNotice());
data.setStatus(param.getStatus()); 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))); 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))); data.setEndTime(LocalDateTime.parse(param.getEndTime(), DateTimeFormatter.ofPattern(DateUtils.YYYY_MM_DD_HH_MM_SS)));
} }
return data; return data;
......
package com.liquidnet.commons.lang.util;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: IPUtil
* @Package com.liquidnet.commons.lang.util
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/11/24 13:29
*/
public class IPUtil {
/**
* ip地址转成long型数字
* 将IP地址转化成整数的方法如下:
* 1、通过String的split方法按.分隔得到4个长度的数组
* 2、通过左移位操作(<<)给每一段的数字加权,第一段的权为2的24次方,第二段的权为2的16次方,第三段的权为2的8次方,最后一段的权为1
* @param strIp
* @return
*/
public static long ipToLong(String strIp) {
String[]ip = strIp.split("\\.");
return (Long.parseLong(ip[0]) << 24) + (Long.parseLong(ip[1]) << 16) + (Long.parseLong(ip[2]) << 8) + Long.parseLong(ip[3]);
}
/**
* 将十进制整数形式转换成127.0.0.1形式的ip地址
* 将整数形式的IP地址转化成字符串的方法如下:
* 1、将整数值进行右移位操作(>>>),右移24位,右移时高位补0,得到的数字即为第一段IP。
* 2、通过与操作符(&)将整数值的高8位设为0,再右移16位,得到的数字即为第二段IP。
* 3、通过与操作符吧整数值的高16位设为0,再右移8位,得到的数字即为第三段IP。
* 4、通过与操作符吧整数值的高24位设为0,得到的数字即为第四段IP。
* @param longIp
* @return
*/
public static String longToIP(long longIp) {
StringBuffer sb = new StringBuffer("");
// 直接右移24位
sb.append(String.valueOf((longIp >>> 24)));
sb.append(".");
// 将高8位置0,然后右移16位
sb.append(String.valueOf((longIp & 0x00FFFFFF) >>> 16));
sb.append(".");
// 将高16位置0,然后右移8位
sb.append(String.valueOf((longIp & 0x0000FFFF) >>> 8));
sb.append(".");
// 将高24位置0
sb.append(String.valueOf((longIp & 0x000000FF)));
return sb.toString();
}
public static void main(String[] args) {
System.out.println(ipToLong("219.239.110.138"));
System.out.println(longToIP(3689901706l));
}
}
...@@ -85,6 +85,8 @@ public class MQConst { ...@@ -85,6 +85,8 @@ public class MQConst {
SWEET_CITY_VOTE("sweet:stream:rk.cityVote", "group.cityVote", "用户投票记录"), SWEET_CITY_VOTE("sweet:stream:rk.cityVote", "group.cityVote", "用户投票记录"),
SWEET_ANTIGENIC_QUESTION("sweet:stream:rk.antigenicQuestion", "group.antigenicQuestion", "防疫答题"), SWEET_ANTIGENIC_QUESTION("sweet:stream:rk.antigenicQuestion", "group.antigenicQuestion", "防疫答题"),
SWEET_INTEGRAL_ACTIVITY_DRAW("sweet:stream:rk.integralActivityDraw", "group.integralActivityDraw", "积分抽奖"), SWEET_INTEGRAL_ACTIVITY_DRAW("sweet:stream:rk.integralActivityDraw", "group.integralActivityDraw", "积分抽奖"),
SWEET_POSTER("sweet:stream:rk.userLikeMusician", "group.userLikeMusician", "用户喜欢的音乐人"),
; ;
private final String key; private final String key;
......
...@@ -34,31 +34,31 @@ liquidnet: ...@@ -34,31 +34,31 @@ liquidnet:
kylin: kylin:
database: 255 database: 255
dbs: 0,256 dbs: 0,256
host: r-2ze7002ckw5u75fguk.redis.rds.aliyuncs.com host: r-2ze7002ckw5u75fgukpd.redis.rds.aliyuncs.com
port: 6380 port: 6380
password: PO@B!Iud32 password: PO@B!Iud32
dragon: dragon:
database: 255 database: 255
dbs: 0,256 dbs: 0,256
host: r-2ze7002ckw5u75fguk.redis.rds.aliyuncs.com host: r-2ze7002ckw5u75fgukpd.redis.rds.aliyuncs.com
port: 6380 port: 6380
password: PO@B!Iud32 password: PO@B!Iud32
sweet: sweet:
database: 255 database: 255
dbs: 0,256 dbs: 0,256
host: r-2ze7002ckw5u75fguk.redis.rds.aliyuncs.com host: r-2ze7002ckw5u75fgukpd.redis.rds.aliyuncs.com
port: 6380 port: 6380
password: PO@B!Iud32 password: PO@B!Iud32
adam: adam:
database: 255 database: 255
dbs: 0,256 dbs: 0,256
host: r-2ze7002ckw5u75fguk.redis.rds.aliyuncs.com host: r-2ze7002ckw5u75fgukpd.redis.rds.aliyuncs.com
port: 6380 port: 6380
password: PO@B!Iud32 password: PO@B!Iud32
candy: candy:
database: 255 database: 255
dbs: 0,256 dbs: 0,256
host: r-2ze7002ckw5u75fguk.redis.rds.aliyuncs.com host: r-2ze7002ckw5u75fgukpd.redis.rds.aliyuncs.com
port: 6380 port: 6380
password: PO@B!Iud32 password: PO@B!Iud32
mongodb: mongodb:
......
...@@ -101,6 +101,7 @@ global-auth: ...@@ -101,6 +101,7 @@ global-auth:
- ${liquidnet.info.context}/ts - ${liquidnet.info.context}/ts
- ${liquidnet.info.context}/send - ${liquidnet.info.context}/send
- ${liquidnet.info.context}/member/info - ${liquidnet.info.context}/member/info
- ${liquidnet.info.context}/member/joininfo
- ${liquidnet.info.context}/member/info/rights - ${liquidnet.info.context}/member/info/rights
- ${liquidnet.info.context}/member/onsale - ${liquidnet.info.context}/member/onsale
- ${liquidnet.info.context}/member/check/depth - ${liquidnet.info.context}/member/check/depth
...@@ -112,8 +113,10 @@ global-auth: ...@@ -112,8 +113,10 @@ global-auth:
- ${liquidnet.info.context}/wxa/code2session - ${liquidnet.info.context}/wxa/code2session
- ${liquidnet.info.context}/wx/oauth2/access_token - ${liquidnet.info.context}/wx/oauth2/access_token
- ${liquidnet.info.context}/rsc/** - ${liquidnet.info.context}/rsc/**
include-url-pattern: # 模式II(与模式I互斥)
# - ${liquidnet.info.context}/**
oncheck-url-pattern: oncheck-url-pattern:
- ${liquidnet.info.context}/** # - ${liquidnet.info.context}/**
# ----------------------------------------------------------- # -----------------------------------------------------------
# ----------------------------------------------------------- # -----------------------------------------------------------
\ No newline at end of file
...@@ -97,7 +97,7 @@ global-auth: ...@@ -97,7 +97,7 @@ global-auth:
- ${liquidnet.info.context}/candy-coupon/useBack - ${liquidnet.info.context}/candy-coupon/useBack
- ${liquidnet.info.context}/candy-coupon/useBackJxl - ${liquidnet.info.context}/candy-coupon/useBackJxl
oncheck-url-pattern: oncheck-url-pattern:
- ${liquidnet.info.context}/** # - ${liquidnet.info.context}/**
# ----------------------------------------------------------- # -----------------------------------------------------------
# ----------------------------------------------------------- # -----------------------------------------------------------
\ No newline at end of file
...@@ -104,7 +104,7 @@ global-auth: ...@@ -104,7 +104,7 @@ global-auth:
- ${liquidnet.info.context}/user/userDislikeOperation - ${liquidnet.info.context}/user/userDislikeOperation
- ${liquidnet.info.context}/performance/getUserListByCon - ${liquidnet.info.context}/performance/getUserListByCon
oncheck-url-pattern: oncheck-url-pattern:
- ${liquidnet.info.context}/** # - ${liquidnet.info.context}/**
# ----------------------------------------------------------- # -----------------------------------------------------------
# ----------------------------------------------------------- # -----------------------------------------------------------
\ No newline at end of file
...@@ -162,7 +162,7 @@ global-auth: ...@@ -162,7 +162,7 @@ global-auth:
# - ${liquidnet.info.context}/order/orderRefundWithdraw # - ${liquidnet.info.context}/order/orderRefundWithdraw
# - ${liquidnet.info.context}/orderRefund/sendOrderRefunds # - ${liquidnet.info.context}/orderRefund/sendOrderRefunds
# - ${liquidnet.info.context}/orderRefund/orderRefundWithdraw # - ${liquidnet.info.context}/orderRefund/orderRefundWithdraw
- ${liquidnet.info.context}/station/out # - ${liquidnet.info.context}/station/out
# ----------------------------------------------------------- # -----------------------------------------------------------
# ----------------------------------------------------------- # -----------------------------------------------------------
......
...@@ -126,9 +126,7 @@ global-auth: ...@@ -126,9 +126,7 @@ global-auth:
- ${liquidnet.info.context}/user/logs/in2111 - ${liquidnet.info.context}/user/logs/in2111
- ${liquidnet.info.context}/user/logs/de2111 - ${liquidnet.info.context}/user/logs/de2111
oncheck-url-pattern: oncheck-url-pattern:
- ${liquidnet.info.context}/** # - ${liquidnet.info.context}/**
# ----------------------------------------------------------- # -----------------------------------------------------------
# ----------------------------------------------------------- # -----------------------------------------------------------
......
...@@ -117,7 +117,7 @@ global-auth: ...@@ -117,7 +117,7 @@ global-auth:
# 做积分任务 # 做积分任务
- ${liquidnet.info.context}/wechatUsers/doTask - ${liquidnet.info.context}/wechatUsers/doTask
oncheck-url-pattern: oncheck-url-pattern:
- ${liquidnet.info.context}/** # - ${liquidnet.info.context}/**
# ----------------------------------------------------------- # -----------------------------------------------------------
# ----------------------------------------------------------- # -----------------------------------------------------------
\ No newline at end of file
...@@ -19,7 +19,7 @@ public class CandyCommonCouponBasicDto implements Serializable ,Cloneable{ ...@@ -19,7 +19,7 @@ public class CandyCommonCouponBasicDto implements Serializable ,Cloneable{
private String title; private String title;
private String label; private String label;
private String notice; private String notice;
private Integer exclusive; //private Integer exclusive;
private Integer busiType; private Integer busiType;
private Integer couType; private Integer couType;
private Integer bindType; private Integer bindType;
...@@ -44,6 +44,7 @@ public class CandyCommonCouponBasicDto implements Serializable ,Cloneable{ ...@@ -44,6 +44,7 @@ public class CandyCommonCouponBasicDto implements Serializable ,Cloneable{
private String ccouponId; private String ccouponId;
private String mcouponId; private String mcouponId;
//private String couponId; //private String couponId;
private Integer exclusive;
private Integer state; private Integer state;
private Integer ranged; private Integer ranged;
//private String operator; //private String operator;
...@@ -71,7 +72,7 @@ public class CandyCommonCouponBasicDto implements Serializable ,Cloneable{ ...@@ -71,7 +72,7 @@ public class CandyCommonCouponBasicDto implements Serializable ,Cloneable{
this.setTitle(coupon.getTitle()); this.setTitle(coupon.getTitle());
this.setLabel(coupon.getLabel()); this.setLabel(coupon.getLabel());
this.setNotice(coupon.getNotice()); this.setNotice(coupon.getNotice());
this.setExclusive(coupon.getExclusive()); //this.setExclusive(coupon.getExclusive());
this.setBusiType(coupon.getBusiType()); this.setBusiType(coupon.getBusiType());
this.setCouType(coupon.getCouType()); this.setCouType(coupon.getCouType());
this.setBindType(coupon.getBindType()); this.setBindType(coupon.getBindType());
...@@ -90,6 +91,7 @@ public class CandyCommonCouponBasicDto implements Serializable ,Cloneable{ ...@@ -90,6 +91,7 @@ public class CandyCommonCouponBasicDto implements Serializable ,Cloneable{
this.setCcouponId(commonCoupon.getCcouponId()); this.setCcouponId(commonCoupon.getCcouponId());
this.setMcouponId(commonCoupon.getMcouponId()); this.setMcouponId(commonCoupon.getMcouponId());
this.setExclusive(commonCoupon.getExclusive());
this.setState(commonCoupon.getState()); this.setState(commonCoupon.getState());
this.setRanged(commonCoupon.getRanged()); this.setRanged(commonCoupon.getRanged());
this.setCreatedAt(commonCoupon.getCreatedAt()); this.setCreatedAt(commonCoupon.getCreatedAt());
......
...@@ -19,7 +19,7 @@ public class CandyUserCouponBasicDto implements Serializable, Cloneable { ...@@ -19,7 +19,7 @@ public class CandyUserCouponBasicDto implements Serializable, Cloneable {
private String title; private String title;
private String label; private String label;
private String notice; private String notice;
private Integer exclusive; //private Integer exclusive;
private Integer busiType; private Integer busiType;
private Integer couType; private Integer couType;
private Integer bindType; private Integer bindType;
...@@ -45,6 +45,7 @@ public class CandyUserCouponBasicDto implements Serializable, Cloneable { ...@@ -45,6 +45,7 @@ public class CandyUserCouponBasicDto implements Serializable, Cloneable {
private String mcouponId; private String mcouponId;
private String uid; private String uid;
//private String couponId; //private String couponId;
private Integer exclusive;
private Integer state; private Integer state;
private String ccode; private String ccode;
private LocalDateTime bindAt; private LocalDateTime bindAt;
...@@ -77,7 +78,7 @@ public class CandyUserCouponBasicDto implements Serializable, Cloneable { ...@@ -77,7 +78,7 @@ public class CandyUserCouponBasicDto implements Serializable, Cloneable {
this.setTitle(coupon.getTitle()); this.setTitle(coupon.getTitle());
this.setLabel(coupon.getLabel()); this.setLabel(coupon.getLabel());
this.setNotice(coupon.getNotice()); this.setNotice(coupon.getNotice());
this.setExclusive(coupon.getExclusive()); //this.setExclusive(coupon.getExclusive());
this.setBusiType(coupon.getBusiType()); this.setBusiType(coupon.getBusiType());
this.setCouType(coupon.getCouType()); this.setCouType(coupon.getCouType());
this.setBindType(coupon.getBindType()); this.setBindType(coupon.getBindType());
...@@ -95,6 +96,7 @@ public class CandyUserCouponBasicDto implements Serializable, Cloneable { ...@@ -95,6 +96,7 @@ public class CandyUserCouponBasicDto implements Serializable, Cloneable {
this.setUcouponId(userCoupon.getUcouponId()); this.setUcouponId(userCoupon.getUcouponId());
this.setMcouponId(userCoupon.getMcouponId()); this.setMcouponId(userCoupon.getMcouponId());
this.setUid(userCoupon.getUid()); this.setUid(userCoupon.getUid());
this.setExclusive(userCoupon.getExclusive());
this.setState(userCoupon.getState()); this.setState(userCoupon.getState());
this.setCcode(userCoupon.getCcode()); this.setCcode(userCoupon.getCcode());
this.setBindAt(userCoupon.getBindAt()); this.setBindAt(userCoupon.getBindAt());
......
package com.liquidnet.service.candy.dto.admin;
import com.liquidnet.service.candy.entity.CandyCoupon;
import lombok.Data;
import java.io.Serializable;
@Data
public class CandyCouponFilterDto implements Serializable, Cloneable {
private static final long serialVersionUID = -3287018184399499549L;
private String couponId;
private String title;
private static final CandyCouponFilterDto obj = new CandyCouponFilterDto();
public static CandyCouponFilterDto getNew() {
try {
return (CandyCouponFilterDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new CandyCouponFilterDto();
}
}
public CandyCouponFilterDto copy(CandyCoupon source) {
if (null == source) return this;
this.setCouponId(source.getCouponId());
this.setTitle(source.getTitle());
return this;
}
}
...@@ -10,9 +10,12 @@ public class CandyCouponListParam { ...@@ -10,9 +10,12 @@ public class CandyCouponListParam {
*/ */
private String keyword; private String keyword;
/** /**
* 领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换] * 领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换|3-发放需领取|4-会员专属]
* <p>
* 多种方式则以,分隔入参
* </p>
*/ */
private Integer bindType; private String bindType;
/** /**
* 业务类别[0-全场|1-演出|2-商品|3-优先购] * 业务类别[0-全场|1-演出|2-商品|3-优先购]
*/ */
...@@ -34,11 +37,11 @@ public class CandyCouponListParam { ...@@ -34,11 +37,11 @@ public class CandyCouponListParam {
this.keyword = keyword; this.keyword = keyword;
} }
public Integer getBindType() { public String getBindType() {
return bindType; return bindType;
} }
public void setBindType(Integer bindType) { public void setBindType(String bindType) {
this.bindType = bindType; this.bindType = bindType;
} }
......
package com.liquidnet.service.candy.dto.admin;
import com.liquidnet.service.candy.entity.CandyCoupon;
import com.liquidnet.service.candy.entity.CandyCouponRule;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class CandyCouponTemplateDto implements Serializable, Cloneable {
private static final long serialVersionUID = 6278406576442685501L;
/* com.liquidnet.service.candy.entity.CandyCoupon */
private String couponId;
private Integer state;
private String title;
private String label;
private String notice;
private Integer exclusive;
private Integer busiType;
private Integer couType;
private Integer bindType;
private BigDecimal discount;
private BigDecimal valFace;
private BigDecimal valOver;
private BigDecimal valMinus;
private Integer overlay;
private Integer overlayLevel;
private Integer validity;
private Integer redeemValidity;
private LocalDateTime redeemStart;
private LocalDateTime redeemStop;
private LocalDateTime effectAt;
private LocalDateTime expireAt;
//private String operator;
//private LocalDateTime createdAt;
//private LocalDateTime updatedAt;
//private String comment;
/* com.liquidnet.service.candy.entity.CandyCouponRule */
private List<CandyCouponRule> useRules;
private static final CandyCouponTemplateDto obj = new CandyCouponTemplateDto();
public static CandyCouponTemplateDto getNew() {
try {
return (CandyCouponTemplateDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new CandyCouponTemplateDto();
}
}
public CandyCouponTemplateDto copy(CandyCoupon source) {
if (null == source) return this;
this.setCouponId(source.getCouponId());
this.setState(source.getState());
this.setTitle(source.getTitle());
this.setLabel(source.getLabel());
this.setNotice(source.getNotice());
this.setExclusive(source.getExclusive());
this.setBusiType(source.getBusiType());
this.setCouType(source.getCouType());
this.setBindType(source.getBindType());
this.setDiscount(source.getDiscount());
this.setValFace(source.getValFace());
this.setValOver(source.getValOver());
this.setValMinus(source.getValMinus());
this.setOverlay(source.getOverlay());
this.setOverlayLevel(source.getOverlayLevel());
this.setValidity(source.getValidity());
this.setRedeemValidity(source.getRedeemValidity());
this.setRedeemStart(source.getRedeemStart());
this.setRedeemStop(source.getRedeemStop());
this.setEffectAt(source.getEffectAt());
this.setExpireAt(source.getExpireAt());
return this;
}
}
...@@ -12,7 +12,7 @@ public class CandyMgtCouponListParam { ...@@ -12,7 +12,7 @@ public class CandyMgtCouponListParam {
*/ */
private String keyword; private String keyword;
/** /**
* 领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换] * 领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换|3-发放需领取|4-会员专属]
*/ */
private Integer bindType; private Integer bindType;
/** /**
......
...@@ -37,6 +37,18 @@ public class CandyCommonCoupon implements Serializable { ...@@ -37,6 +37,18 @@ public class CandyCommonCoupon implements Serializable {
*/ */
private String couponId; private String couponId;
/**
* 专享标识[0-常规|1-会员专属]
* <p>
* 变更前:`candy_coupon.exclusive`用于根据会员有效期设置券有效期及标识用户端券分类(普通券、会员券等);
* 变更后:
* 原`candy_coupon.exclusive`废除
* 实际发放逻辑中,原标识"是否根据会员有效期设置券有效期"的`candy_coupon.exclusive`字段改为`candy_mgt_coupon.exclusively`
* 在`candy_user_coupon`及`candy_common_coupon`中添加`exclusive`字段,发放时直接由`candy_mgt_coupon.exclusively`赋值该属性
* </p>
*/
private Integer exclusive;
/** /**
* 公有券状态[1-可用|2-无效|3-已过期] * 公有券状态[1-可用|2-无效|3-已过期]
*/ */
......
...@@ -65,7 +65,7 @@ public class CandyCoupon implements Serializable { ...@@ -65,7 +65,7 @@ public class CandyCoupon implements Serializable {
private Integer couType; private Integer couType;
/** /**
* 领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换] * 领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换|3-发放需领取|4-会员专属]
*/ */
private Integer bindType; private Integer bindType;
......
...@@ -2,11 +2,12 @@ package com.liquidnet.service.candy.entity; ...@@ -2,11 +2,12 @@ package com.liquidnet.service.candy.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/** /**
* <p> * <p>
* 券发放管理 * 券发放管理
...@@ -56,6 +57,18 @@ public class CandyMgtCoupon implements Serializable { ...@@ -56,6 +57,18 @@ public class CandyMgtCoupon implements Serializable {
*/ */
private LocalDateTime eventAt; private LocalDateTime eventAt;
/**
* 专享标识[0-常规|1-会员专属]
* <p>
* 变更前:`candy_coupon.exclusive`用于根据会员有效期设置券有效期及标识用户端券分类(普通券、会员券等);
* 变更后:
* 原`candy_coupon.exclusive`废除
* 实际发放逻辑中,原标识"是否根据会员有效期设置券有效期"的`candy_coupon.exclusive`字段改为`candy_mgt_coupon.exclusively`
* 在`candy_user_coupon`及`candy_common_coupon`中添加`exclusive`字段,发放时直接由`candy_mgt_coupon.exclusively`赋值该属性
* </p>
*/
private Integer exclusively;
/** /**
* 操作人 * 操作人
*/ */
......
...@@ -43,6 +43,18 @@ public class CandyUserCoupon implements Serializable,Cloneable { ...@@ -43,6 +43,18 @@ public class CandyUserCoupon implements Serializable,Cloneable {
*/ */
private String couponId; private String couponId;
/**
* 专享标识[0-常规|1-会员专属]
* <p>
* 变更前:`candy_coupon.exclusive`用于根据会员有效期设置券有效期及标识用户端券分类(普通券、会员券等);
* 变更后:
* 原`candy_coupon.exclusive`废除
* 实际发放逻辑中,原标识"是否根据会员有效期设置券有效期"的`candy_coupon.exclusive`字段改为`candy_mgt_coupon.exclusively`
* 在`candy_user_coupon`及`candy_common_coupon`中添加`exclusive`字段,发放时直接由`candy_mgt_coupon.exclusively`赋值该属性
* </p>
*/
private Integer exclusive;
/** /**
* 用户券状态[1-可用|2-无效|3-已过期|5-已使用] * 用户券状态[1-可用|2-无效|3-已过期|5-已使用]
*/ */
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<result column="title" jdbcType="VARCHAR" property="title"/> <result column="title" jdbcType="VARCHAR" property="title"/>
<result column="label" jdbcType="VARCHAR" property="label"/> <result column="label" jdbcType="VARCHAR" property="label"/>
<result column="notice" jdbcType="VARCHAR" property="notice"/> <result column="notice" jdbcType="VARCHAR" property="notice"/>
<result column="exclusive" jdbcType="SMALLINT" property="exclusive"/> <!-- <result column="exclusive" jdbcType="SMALLINT" property="exclusive"/>-->
<result column="busi_type" jdbcType="SMALLINT" property="busiType"/> <result column="busi_type" jdbcType="SMALLINT" property="busiType"/>
<result column="cou_type" jdbcType="SMALLINT" property="couType"/> <result column="cou_type" jdbcType="SMALLINT" property="couType"/>
<result column="bind_type" jdbcType="SMALLINT" property="bindType"/> <result column="bind_type" jdbcType="SMALLINT" property="bindType"/>
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
<result column="ccoupon_id" jdbcType="VARCHAR" property="ccouponId"/> <result column="ccoupon_id" jdbcType="VARCHAR" property="ccouponId"/>
<result column="mcoupon_id" jdbcType="VARCHAR" property="mcouponId"/> <result column="mcoupon_id" jdbcType="VARCHAR" property="mcouponId"/>
<!-- <result column="coupon_id" jdbcType="VARCHAR" property="couponId" />--> <!-- <result column="coupon_id" jdbcType="VARCHAR" property="couponId" />-->
<result column="exclusive" jdbcType="SMALLINT" property="exclusive"/>
<result column="state" jdbcType="TINYINT" property="state"/> <result column="state" jdbcType="TINYINT" property="state"/>
<result column="ranged" jdbcType="TINYINT" property="ranged"/> <result column="ranged" jdbcType="TINYINT" property="ranged"/>
<!-- <result column="operator" jdbcType="VARCHAR" property="operator" />--> <!-- <result column="operator" jdbcType="VARCHAR" property="operator" />-->
...@@ -41,11 +42,11 @@ ...@@ -41,11 +42,11 @@
</resultMap> </resultMap>
<sql id="Rst_CommonCouponBasicDto_Column_List"> <sql id="Rst_CommonCouponBasicDto_Column_List">
cc.coupon_id, cc.title, cc.`label`, cc.notice, cc.`exclusive`, cc.busi_type, cc.cou_type, cc.bind_type, cc.coupon_id, cc.title, cc.`label`, cc.notice, cc.busi_type, cc.cou_type, cc.bind_type,
cc.discount, cc.val_face, cc.val_over, cc.val_minus, cc.`overlay`, cc.overlay_level, cc.discount, cc.val_face, cc.val_over, cc.val_minus, cc.`overlay`, cc.overlay_level,
cc.validity, cc.redeem_validity, cc.redeem_start, cc.redeem_stop, cc.effect_at, cc.expire_at, cc.validity, cc.redeem_validity, cc.redeem_start, cc.redeem_stop, cc.effect_at, cc.expire_at,
ccc.ccoupon_id, ccc.mcoupon_id, ccc.`state`, ccc.ranged, ccc.created_at ccc.ccoupon_id, ccc.mcoupon_id, ccc.`exclusive`, ccc.`state`, ccc.ranged, ccc.created_at
</sql> </sql>
<select id="selectMultiForCommonCouponBasicDto" resultMap="Rst_CommonCouponBasicDto"> <select id="selectMultiForCommonCouponBasicDto" resultMap="Rst_CommonCouponBasicDto">
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<result column="title" jdbcType="VARCHAR" property="title"/> <result column="title" jdbcType="VARCHAR" property="title"/>
<result column="label" jdbcType="VARCHAR" property="label"/> <result column="label" jdbcType="VARCHAR" property="label"/>
<result column="notice" jdbcType="VARCHAR" property="notice"/> <result column="notice" jdbcType="VARCHAR" property="notice"/>
<result column="exclusive" jdbcType="SMALLINT" property="exclusive"/> <!-- <result column="exclusive" jdbcType="SMALLINT" property="exclusive"/>-->
<result column="busi_type" jdbcType="SMALLINT" property="busiType"/> <result column="busi_type" jdbcType="SMALLINT" property="busiType"/>
<result column="cou_type" jdbcType="SMALLINT" property="couType"/> <result column="cou_type" jdbcType="SMALLINT" property="couType"/>
<result column="bind_type" jdbcType="SMALLINT" property="bindType"/> <result column="bind_type" jdbcType="SMALLINT" property="bindType"/>
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
<!-- <result column="mcoupon_id" jdbcType="VARCHAR" property="mcouponId" />--> <!-- <result column="mcoupon_id" jdbcType="VARCHAR" property="mcouponId" />-->
<result column="uid" jdbcType="VARCHAR" property="uid"/> <result column="uid" jdbcType="VARCHAR" property="uid"/>
<!-- <result column="coupon_id" jdbcType="VARCHAR" property="couponId" />--> <!-- <result column="coupon_id" jdbcType="VARCHAR" property="couponId" />-->
<result column="exclusive" jdbcType="SMALLINT" property="exclusive"/>
<result column="state" jdbcType="TINYINT" property="state"/> <result column="state" jdbcType="TINYINT" property="state"/>
<result column="ccode" jdbcType="VARCHAR" property="ccode"/> <result column="ccode" jdbcType="VARCHAR" property="ccode"/>
<result column="bind_at" jdbcType="TIMESTAMP" property="bindAt"/> <result column="bind_at" jdbcType="TIMESTAMP" property="bindAt"/>
...@@ -43,11 +44,11 @@ ...@@ -43,11 +44,11 @@
</resultMap> </resultMap>
<sql id="Rst_UserCouponBasicDto_Column_List"> <sql id="Rst_UserCouponBasicDto_Column_List">
cc.coupon_id, cc.title, cc.`label`, cc.notice, cc.`exclusive`, cc.busi_type, cc.cou_type, cc.bind_type, cc.coupon_id, cc.title, cc.`label`, cc.notice, cc.busi_type, cc.cou_type, cc.bind_type,
cc.discount, cc.val_face, cc.val_over, cc.val_minus, cc.`overlay`, cc.overlay_level, cc.discount, cc.val_face, cc.val_over, cc.val_minus, cc.`overlay`, cc.overlay_level,
cc.validity, cc.redeem_validity, cc.redeem_start, cc.redeem_stop, cc.validity, cc.redeem_validity, cc.redeem_start, cc.redeem_stop,
cuc.ucoupon_id, cuc.mcoupon_id, cuc.`uid`, cuc.`state`, cuc.ccode, cuc.bind_at, cuc.dued_at, cuc.used_at, cuc.used_for cuc.ucoupon_id, cuc.mcoupon_id, cuc.`uid`, cuc.`exclusive`, cuc.`state`, cuc.ccode, cuc.bind_at, cuc.dued_at, cuc.used_at, cuc.used_for
</sql> </sql>
<select id="selectMultiForUserCouponBasicDto" resultMap="Rst_UserCouponBasicDto"> <select id="selectMultiForUserCouponBasicDto" resultMap="Rst_UserCouponBasicDto">
......
...@@ -213,6 +213,26 @@ public class KylinOrderTickets implements Serializable, Cloneable { ...@@ -213,6 +213,26 @@ public class KylinOrderTickets implements Serializable, Cloneable {
*/ */
private String comment; private String comment;
/**
* comment
*/
private String area;
/**
* Province
*/
private String areaProvince;
/**
* City
*/
private String areaCity;
/**
* County
*/
private String areaCounty;
/** /**
* 创建时间 * 创建时间
*/ */
...@@ -228,12 +248,12 @@ public class KylinOrderTickets implements Serializable, Cloneable { ...@@ -228,12 +248,12 @@ public class KylinOrderTickets implements Serializable, Cloneable {
* *
* @return * @return
*/ */
public Object[] getAddObject(String ipAddress) { public Object[] getAddObject(String ipAddress,String area,String areaProvince,String areaCity,String areaCounty) {
return new Object[]{ return new Object[]{
orderTicketsId, userId, userName, userMobile, performanceTitle, orderCode, qrCode, orderType, orderVersion, orderTicketsId, userId, userName, userMobile, performanceTitle, orderCode, qrCode, orderType, orderVersion,
number, price, priceMember, priceTotal, priceVoucher, priceActual, priceExpress, priceRefund, refundNumber, number, price, priceMember, priceTotal, priceVoucher, priceActual, priceExpress, priceRefund, refundNumber,
payType, paymentType, timePay, expressContacts, expressAddress, expressPhone, couponType, getTicketType, payType, paymentType, timePay, expressContacts, expressAddress, expressPhone, couponType, getTicketType,
getTicketDescribe, payCountdownMinute, comment, createdAt, updatedAt, payCode,ipAddress getTicketDescribe, payCountdownMinute, comment, createdAt, updatedAt, payCode,ipAddress,area,areaProvince,areaCity,areaCounty
}; };
} }
......
...@@ -55,4 +55,8 @@ public interface KylinPerformancesMapper extends BaseMapper<KylinPerformances> { ...@@ -55,4 +55,8 @@ public interface KylinPerformancesMapper extends BaseMapper<KylinPerformances> {
List<OrderExportDao> exportOrderByPerformanceIdAll(String performancesId); List<OrderExportDao> exportOrderByPerformanceIdAll(String performancesId);
List<OrderExportDao> exportOrderByPerformanceIdPay(String performancesId); List<OrderExportDao> exportOrderByPerformanceIdPay(String performancesId);
PerformanceSimpleAllDao getPerformanceSimpleByPerformancesId(String performancesId);
PerformanceSimpleAllDao getPerformanceSimpleByTimesId(String timesId);
PerformanceSimpleAllDao getPerformanceSimpleByTicketId(String ticketId);
} }
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
<if test="statusStr == '9'"> <if test="statusStr == '9'">
AND a.status = 9 AND a.status = 9
</if> </if>
<if test="statusStr 1= '1'"> <if test="statusStr != '1'">
AND a.status = 1 AND a.type != 3 AND a.status = 1 AND a.type != 3
</if> </if>
<if test="statusStr != '1' and statusStr != '9'"> <if test="statusStr != '1' and statusStr != '9'">
...@@ -103,7 +103,7 @@ ...@@ -103,7 +103,7 @@
<if test="statusStr == '9'"> <if test="statusStr == '9'">
AND a.status = 9 AND a.status = 9
</if> </if>
<if test="statusStr 1= '1'"> <if test="statusStr != '1'">
AND a.status = 1 AND a.type != 3 AND a.status = 1 AND a.type != 3
</if> </if>
<if test="statusStr != '1' and statusStr != '9'"> <if test="statusStr != '1' and statusStr != '9'">
......
...@@ -587,4 +587,57 @@ WHERE performance_id = #{performancesId} ...@@ -587,4 +587,57 @@ WHERE performance_id = #{performancesId}
AND status IN (1, 3) AND status IN (1, 3)
GROUP BY user_mobile; GROUP BY user_mobile;
</select> </select>
<select id="getPerformanceSimpleByTicketId" resultType="com.liquidnet.service.kylin.dao.PerformanceSimpleAllDao">
<!-- select kp.performances_id as performancesId,-->
<!-- kp.title,-->
<!-- ktt.ticket_times_id as timeId,-->
<!-- ktt.title as timeTitle,-->
<!-- kt.tickets_id as ticketId,-->
<!-- kt.title as ticketTitle-->
<!-- from kylin_performances kp-->
<!-- left join kylin_ticket_time_relation kttr on kttr.performance_id = kp.performances_id-->
<!-- left join kylin_ticket_times ktt on kttr.times_id = ktt.ticket_times_id-->
<!-- left join kylin_ticket_relations ktr on ktr.times_id = kttr.times_id-->
<!-- left join kylin_tickets kt on kt.tickets_id = ktr.ticket_id-->
<!-- <where>-->
<!-- <if test="scope != null and scope == '1'">-->
<!-- kp.performances_id=#{id}-->
<!-- </if>-->
<!-- <if test="scope != null and scope == '2'">-->
<!-- ktr.times_id=#{id}-->
<!-- </if>-->
<!-- <if test="scope != null and scope == '3'">-->
<!-- ktr.ticket_id=#{id}-->
<!-- </if>-->
<!-- </where>-->
<!-- limit 1-->
select kp.performances_id as performancesId,
kp.title,
ktt.ticket_times_id as timeId,
ktt.title as timeTitle,
kt.tickets_id as ticketId,
kt.title as ticketTitle
from kylin_performances kp
left join kylin_ticket_time_relation kttr on kttr.performance_id = kp.performances_id
left join kylin_ticket_times ktt on kttr.times_id = ktt.ticket_times_id
left join kylin_ticket_relations ktr on ktr.times_id = kttr.times_id
left join kylin_tickets kt on kt.tickets_id = ktr.ticket_id
where ktr.ticket_id = #{ticketId}
</select>
<select id="getPerformanceSimpleByTimesId" resultType="com.liquidnet.service.kylin.dao.PerformanceSimpleAllDao">
select kp.performances_id as performancesId,
kp.title,
ktt.ticket_times_id as timeId,
ktt.title as timeTitle
from kylin_performances kp
left join kylin_ticket_time_relation kttr on kttr.performance_id = kp.performances_id
left join kylin_ticket_times ktt on kttr.times_id = ktt.ticket_times_id
where ktt.ticket_times_id = #{timesId}
</select>
<select id="getPerformanceSimpleByPerformancesId" resultType="com.liquidnet.service.kylin.dao.PerformanceSimpleAllDao">
select kp.performances_id as performancesId,
kp.title
from kylin_performances kp
where kp.performances_id = #{performancesId}
</select>
</mapper> </mapper>
...@@ -3,22 +3,21 @@ package com.liquidnet.service.sweet.entity; ...@@ -3,22 +3,21 @@ package com.liquidnet.service.sweet.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable; import java.io.Serializable;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
/** /**
* <p> * <p>
* 小程序登录记录用户解密后信息 * 2021草莓音乐节海报活动
* </p> * </p>
* *
* @author jiangxiulong * @author jiangxiulong
* @since 2021-11-08 * @since 2021-11-25
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class SweetAppletUser implements Serializable { public class SweetStrawberryPoster implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -26,45 +25,33 @@ public class SweetAppletUser implements Serializable { ...@@ -26,45 +25,33 @@ public class SweetAppletUser implements Serializable {
private Long mid; private Long mid;
/** /**
* user_id * poster_id 海报id
*/ */
private String userId; private String posterId;
/** /**
* openId * open_id 微信id
*/ */
@TableField("openId")
private String openId; private String openId;
/** /**
* unionId * union_id 用户id
*/ */
@TableField("unionId")
private String unionId; private String unionId;
/** /**
* 手机号 * 姓名
*/ */
@TableField("getPhoneNumber") private String nickname;
private String getPhoneNumber;
/** /**
* 手机号 * 城市
*/ */
@TableField("getPurePhoneNumber") private String cityName;
private String getPurePhoneNumber;
/**
* 地区码
*/
@TableField("getCountryCode")
private String getCountryCode;
/** /**
* 1草莓 2五百里 3mdsk 4正在 * 城市code
*/ */
private Integer type; private String cityCode;
/** /**
* 创建时间 * 创建时间
*/ */
...@@ -75,5 +62,14 @@ public class SweetAppletUser implements Serializable { ...@@ -75,5 +62,14 @@ public class SweetAppletUser implements Serializable {
*/ */
private LocalDateTime updatedAt; private LocalDateTime updatedAt;
private static final SweetStrawberryPoster obj = new SweetStrawberryPoster();
public static SweetStrawberryPoster getNew() {
try {
return (SweetStrawberryPoster) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetStrawberryPoster();
}
}
} }
package com.liquidnet.service.sweet.entity; package com.liquidnet.service.sweet.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/** /**
* <p> * <p>
* 正在现场服务号关注事件储存用户信息 * 2021草莓音乐节海报活动选择阵容
* </p> * </p>
* *
* @author jiangxiulong * @author jiangxiulong
* @since 2021-08-03 * @since 2021-11-25
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class SweetWechatUser implements Serializable { public class SweetStrawberryPosterLineup implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -27,90 +25,29 @@ public class SweetWechatUser implements Serializable { ...@@ -27,90 +25,29 @@ public class SweetWechatUser implements Serializable {
private Long mid; private Long mid;
/** /**
* user_id * lineup_id
*/
private String userId;
/**
* adam_user_id
*/
private String adamUserId;
/**
* adam_phone
*/
private String adamPhone;
/**
* openId
*/
@TableField("openId")
private String openId;
/**
* unionId
*/
@TableField("unionId")
private String unionId;
/**
* 昵称
*/ */
private String nickname; private String lineupId;
/** /**
* 性别 * poster_id 海报id
*/ */
@TableField("sexDesc") private String posterId;
private String sexDesc;
/** /**
* 性别 男1 * 阵容编号
*/ */
private Integer sex; private String lineupNum;
/** /**
* 头像 * 音乐人id
*/ */
@TableField("headImgUrl") private Integer musicianId;
private String headImgUrl;
/** /**
* zh_CN * 音乐人姓名
*/ */
private String language; private String musicianName;
/**
* 国家
*/
private String country;
/**
* 省
*/
private String province;
/**
* 市
*/
private String city;
/**
* 关注时间
*/
@TableField("subscribeTime")
private LocalDateTime subscribeTime;
/**
* ADD_SCENE_SEARCH 关注方式
*/
@TableField("subscribeScene")
private String subscribeScene;
/**
* 是否取消关注
*/
private Integer isCancel;
/** /**
* 创建时间 * 创建时间
...@@ -122,14 +59,13 @@ public class SweetWechatUser implements Serializable { ...@@ -122,14 +59,13 @@ public class SweetWechatUser implements Serializable {
*/ */
private LocalDateTime updatedAt; private LocalDateTime updatedAt;
private static final SweetWechatUser obj = new SweetWechatUser(); private static final SweetStrawberryPosterLineup obj = new SweetStrawberryPosterLineup();
public static SweetWechatUser getNew() { public static SweetStrawberryPosterLineup getNew() {
try { try {
return (SweetWechatUser) obj.clone(); return (SweetStrawberryPosterLineup) obj.clone();
} catch (CloneNotSupportedException e) { } catch (CloneNotSupportedException e) {
return new SweetWechatUser(); return new SweetStrawberryPosterLineup();
} }
} }
} }
package com.liquidnet.service.sweet.mapper; package com.liquidnet.service.sweet.mapper;
import com.liquidnet.service.sweet.entity.SweetStrawberryPosterLineup;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.sweet.entity.SweetWechatUser;
/** /**
* <p> * <p>
* 正在现场服务号关注事件储存用户信息表 Mapper 接口 * 2021草莓音乐节海报活动选择阵容表 Mapper 接口
* </p> * </p>
* *
* @author jiangxiulong * @author jiangxiulong
* @since 2021-08-03 * @since 2021-11-25
*/ */
public interface SweetWechatUserMapper extends BaseMapper<SweetWechatUser> { public interface SweetStrawberryPosterLineupMapper extends BaseMapper<SweetStrawberryPosterLineup> {
} }
package com.liquidnet.service.sweet.mapper; package com.liquidnet.service.sweet.mapper;
import com.liquidnet.service.sweet.entity.SweetAppletUser; import com.liquidnet.service.sweet.entity.SweetStrawberryPoster;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/** /**
* <p> * <p>
* 小程序登录记录用户解密后信息表 Mapper 接口 * 2021草莓音乐节海报活动表 Mapper 接口
* </p> * </p>
* *
* @author jiangxiulong * @author jiangxiulong
* @since 2021-11-08 * @since 2021-11-25
*/ */
public interface SweetAppletUserMapper extends BaseMapper<SweetAppletUser> { public interface SweetStrawberryPosterMapper extends BaseMapper<SweetStrawberryPoster> {
} }
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liquidnet.service.sweet.mapper.SweetStrawberryPosterLineupMapper">
</mapper>
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liquidnet.service.sweet.mapper.SweetWechatUserMapper"> <mapper namespace="com.liquidnet.service.sweet.mapper.SweetStrawberryPosterMapper">
</mapper> </mapper>
package com.liquidnet.service.feign.adam.rsc;
import feign.hystrix.FallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Component
@FeignClient(name = "liquidnet-service-chime",
contextId = "FeignAdamPlatformClient", path = "platform",
url = "${liquidnet.service.platform.url}",
fallback = FallbackFactory.Default.class)
public interface FeignAdamPlatformClient {
@PostMapping("stone/inner/initScore")
void initScore(@RequestParam(value = "uid") String uid);
}
...@@ -55,6 +55,12 @@ ...@@ -55,6 +55,12 @@
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-api-feign-stone</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency> <dependency>
<groupId>com.liquidnet</groupId> <groupId>com.liquidnet</groupId>
......
...@@ -6,7 +6,11 @@ import com.liquidnet.commons.lang.util.CurrentUtil; ...@@ -6,7 +6,11 @@ import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.service.adam.dto.vo.*; import com.liquidnet.service.adam.dto.vo.*;
import com.liquidnet.service.adam.service.AdamRdmService; import com.liquidnet.service.adam.service.AdamRdmService;
import com.liquidnet.service.adam.service.IAdamUserMemberService; import com.liquidnet.service.adam.service.IAdamUserMemberService;
import com.liquidnet.service.adam.util.QueueUtils;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.feign.adam.rsc.FeignAdamPlatformClient;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -27,10 +31,14 @@ import javax.validation.constraints.NotBlank; ...@@ -27,10 +31,14 @@ import javax.validation.constraints.NotBlank;
@RestController @RestController
@RequestMapping("member") @RequestMapping("member")
public class AdamMemberController { public class AdamMemberController {
@Autowired
QueueUtils queueUtils;
@Autowired @Autowired
AdamRdmService adamRdmService; AdamRdmService adamRdmService;
@Autowired @Autowired
IAdamUserMemberService adamUserMemberService; IAdamUserMemberService adamUserMemberService;
@Autowired
FeignAdamPlatformClient feignAdamPlatformClient;
@ApiOperationSupport(order = 1) @ApiOperationSupport(order = 1)
@ApiOperation(value = "会员信息") @ApiOperation(value = "会员信息")
...@@ -80,7 +88,7 @@ public class AdamMemberController { ...@@ -80,7 +88,7 @@ public class AdamMemberController {
return ResponseDto.success(adamRdmService.getMemberRightsDetailVoByRightsId(memberId, mrightsId)); return ResponseDto.success(adamRdmService.getMemberRightsDetailVoByRightsId(memberId, mrightsId));
} }
@ApiOperationSupport(order = 1) @ApiOperationSupport(order = 4)
@ApiOperation(value = "会员开售状态") @ApiOperation(value = "会员开售状态")
@GetMapping("onsale") @GetMapping("onsale")
public ResponseDto<Integer> onsale() { public ResponseDto<Integer> onsale() {
...@@ -92,6 +100,61 @@ public class AdamMemberController { ...@@ -92,6 +100,61 @@ public class AdamMemberController {
return ResponseDto.success(1); return ResponseDto.success(1);
} }
@ApiOperationSupport(order = 5)
@ApiOperation(value = "会员卡信息")
@GetMapping("joininfo")
public ResponseDto<AdamMemberJoinusVo> joininfo() {
String currentUid = CurrentUtil.getCurrentUid();
AdamUserInfoVo userInfoVo = null;
if (!StringUtils.isEmpty(currentUid)) {
userInfoVo = adamRdmService.getUserInfoVoByUid(currentUid);
}
AdamMemberJoinusVo joinusVo;
if (null == userInfoVo || StringUtils.startsWithIgnoreCase(userInfoVo.getQrCode(), "lN")) {
joinusVo = adamRdmService.getMemberJoinusVo(0);
} else {
AdamUserMemberVo userMemberVo = adamRdmService.getUserMemberVoByUid(currentUid);
joinusVo = adamRdmService.getMemberJoinusVo(null != userMemberVo && userMemberVo.isActive() ? 50 : 10);
joinusVo.setState(1);
joinusVo.setQrCode(userInfoVo.getQrCode());
}
return ResponseDto.success(joinusVo);
}
@ApiOperationSupport(order = 6)
@ApiOperation(value = "领取会员卡")
@GetMapping("joinus")
public ResponseDto<AdamMemberJoinusVo> joinus() {
// AdamMemberJoinusVo joinusVo = adamRdmService.getMemberJoinusVo(10);
String currentUid = CurrentUtil.getCurrentUid();
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(currentUid);
final String oldQrCode = userInfoVo.getQrCode();
if (StringUtils.startsWithIgnoreCase(oldQrCode, "lN")) {// `lN`开头即未领取,这里做领取操作
userInfoVo.setQrCode(adamRdmService.generateMemberUniqueSerialNumber(userInfoVo.getMobile()));
adamRdmService.setUserInfoVoByUid(currentUid, userInfoVo);
log.info("领取会员卡[UID:{},MOBILE:{},QR_CODE:{},OLD_QR_CODE:{}]", currentUid, userInfoVo.getMobile(), userInfoVo.getQrCode(), oldQrCode);
queueUtils.sendMsgByRedis(MQConst.AdamQueue.SQL_UCENTER.getKey(),
SqlMapping.get("adam_user_info.update_qr_code", userInfoVo.getQrCode(), currentUid)
);
}
AdamUserMemberVo userMemberVo = adamRdmService.getUserMemberVoByUid(currentUid);
AdamMemberJoinusVo joinusVo = adamRdmService.getMemberJoinusVo(null != userMemberVo && userMemberVo.isActive() ? 50 : 10);
joinusVo.setState(1);
joinusVo.setQrCode(userInfoVo.getQrCode());
try {
feignAdamPlatformClient.initScore(currentUid);
} catch (Exception e) {
log.error("领取会员卡:积分处理异常[UID:{}]", currentUid, e);
}
return ResponseDto.success(joinusVo);
}
/* ------------------------------------------------------------|@API:RSC */ /* ------------------------------------------------------------|@API:RSC */
@ApiOperationSupport(order = 99) @ApiOperationSupport(order = 99)
......
...@@ -365,22 +365,53 @@ public class AdamUserController { ...@@ -365,22 +365,53 @@ public class AdamUserController {
return ResponseDto.success(adamRdmService.getThirdPartVoListByUid(currentUid)); return ResponseDto.success(adamRdmService.getThirdPartVoListByUid(currentUid));
} }
// @ApiOperationSupport(order = 9)
// @ApiOperation(value = "个人信息")
// @PostMapping(value = {"info"})
// public ResponseDto<Map<String, Object>> info() {
// String currentUid = CurrentUtil.getCurrentUid();
//
// Map<String, Object> map = CollectionUtil.mapStringObject();
// AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(currentUid);
// map.put("realNameInfo", adamRdmService.getRealInfoVoByUid(currentUid));
// map.put("thirdPartInfo", adamRdmService.getThirdPartVoListByUid(currentUid));
// AdamUserMemberVo userMemberVo = adamRdmService.getUserMemberVoByUid(currentUid);
// map.put("userMemberVo", userMemberVo);
// map.put("userInfo", adamRdmService.ratingProvince(userInfoVo).desensitize(reviewUserInfo).rating(userMemberVo));
// map.put("memberVo", adamRdmService.getMemberSimpleVo());
//
// return ResponseDto.success(map);
// }
@ApiOperationSupport(order = 9) @ApiOperationSupport(order = 9)
@ApiOperation(value = "个人信息") @ApiOperation(value = "个人信息")
@PostMapping(value = {"info"}) @PostMapping(value = {"info"})
public ResponseDto<Map<String, Object>> info() { public ResponseDto<AdamUserProfileVo> info() {
String currentUid = CurrentUtil.getCurrentUid(); String currentUid = CurrentUtil.getCurrentUid();
AdamUserProfileVo userProfileVo = AdamUserProfileVo.getNew();
userProfileVo.setRealNameInfo(adamRdmService.getRealInfoVoByUid(currentUid));
userProfileVo.setThirdPartInfo(adamRdmService.getThirdPartVoListByUid(currentUid));
userProfileVo.setMemberVo(adamRdmService.getMemberSimpleVo());
Map<String, Object> map = CollectionUtil.mapStringObject();
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(currentUid);
map.put("realNameInfo", adamRdmService.getRealInfoVoByUid(currentUid));
map.put("thirdPartInfo", adamRdmService.getThirdPartVoListByUid(currentUid));
AdamUserMemberVo userMemberVo = adamRdmService.getUserMemberVoByUid(currentUid); AdamUserMemberVo userMemberVo = adamRdmService.getUserMemberVoByUid(currentUid);
map.put("userMemberVo", userMemberVo); userProfileVo.setUserMemberVo(userMemberVo);
map.put("userInfo", adamRdmService.ratingProvince(userInfoVo).desensitize(reviewUserInfo).rating(userMemberVo));
map.put("memberVo", adamRdmService.getMemberSimpleVo()); AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(currentUid);
userProfileVo.setUserInfo(adamRdmService.ratingProvince(userInfoVo).desensitize(reviewUserInfo).rating(userMemberVo));
AdamMemberJoinusVo memberJoinusVo;
if (org.springframework.util.StringUtils.startsWithIgnoreCase(userInfoVo.getQrCode(), "lN")) {
memberJoinusVo = adamRdmService.getMemberJoinusVo(0);
} else {
memberJoinusVo = adamRdmService.getMemberJoinusVo(null != userMemberVo && userMemberVo.isActive() ? 50 : 10);
memberJoinusVo.setState(1);
memberJoinusVo.setQrCode(userInfoVo.getQrCode());
}
userProfileVo.setMemberJoinusVo(memberJoinusVo);
return ResponseDto.success(map); return ResponseDto.success(userProfileVo);
} }
@ApiOperationSupport(order = 10) @ApiOperationSupport(order = 10)
......
...@@ -17,6 +17,11 @@ import org.springframework.util.CollectionUtils; ...@@ -17,6 +17,11 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.Month;
import java.time.temporal.ChronoField;
import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalAdjusters;
import java.time.temporal.TemporalField;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
...@@ -816,19 +821,58 @@ public class AdamRdmService { ...@@ -816,19 +821,58 @@ public class AdamRdmService {
return vo; return vo;
} }
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | */ /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | */
public String generateMemberUniqueSerialNumber(String mobile) {
LocalDateTime now = LocalDateTime.now();
String snT = String.format("%s%sMS%s", now.getYear(), now.getMonthValue(), mobile.substring(7)).substring(2);
String sn = snT.replace("MS", String.valueOf(now.getLong(ChronoField.MILLI_OF_SECOND)));
Object o = redisUtil.get(AdamRedisConst.SERIAL_NUMBER_MEMBER.concat(sn));
while (null != o) {
String nano = String.valueOf(System.nanoTime());
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | */ sn = snT.replace("MS", nano.substring(nano.length() - 3));
o = redisUtil.get(AdamRedisConst.SERIAL_NUMBER_MEMBER.concat(sn));
}
LocalDateTime lastDayTime = now.with(TemporalAdjusters.lastDayOfMonth()).withHour(23).withMinute(59).withSecond(59);
redisUtil.set(sn, 1, ChronoUnit.SECONDS.between(now, lastDayTime));
return sn;
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | */ /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | */
public AdamMemberJoinusVo getMemberJoinusVo(int type) {
String key = AdamRedisConst.INFO_MEMBER_JOINUS.concat(String.valueOf(type));
long s = System.currentTimeMillis();
AdamMemberJoinusVo vo = (AdamMemberJoinusVo) redisUtil.get(key);
if (null == vo) {
vo = AdamMemberJoinusVo.getNew();
vo.setTitle("摩登天空会员卡");
vo.setSubTitle("摩登天空专属会员卡");
vo.setType(type);
vo.setState(0);
switch (type) {
case 0:
vo.setCardface("https://img.zhengzai.tv/member_card/member1.png");
break;
case 10:
vo.setCardface("https://img.zhengzai.tv/member_card/member1.png");
break;
case 50:
vo.setCardface("https://img.zhengzai.tv/member_card/member2.png");
break;
}
String interestsDetail = type == 50 ? "优先购票&入场:<br />会员享有超过百场演出会员享有优先购票权<br />会员享有超过百场演出会员享有优先入场权<br /><br />商品优享会员价:<br />会员享有本站商城内超过百款周边商品和音像制品的会员优享价<br /><br />专属活动&商品&内容:<br />超过百场演出会员专属通道<br />会员专属的演出以及线上线下活动<br />会员专属的视频音频节目<br />会员享有限定款商品及音像制品的专属购买权利<br /><br />不定期惊喜:<br />免费观演以及免费商品的抽奖权利<br /><br />意想不到的惊喜:<br />我们会时不时制造一些意外的惊喜"
: "摩登天空会员卡权益描述:<br />每人限领1张<br /><br />会员权益:<br />关注「摩登天空服务号」注册即可成为摩登天空会员,享受购票&购物积分<br />积分有效期:历史上购买过商品演出的积分将于2022年1月15日过期;之后过期时间为每年1月1日,保留次年12月份积分<br /><br />使用须知:<br />1.每人限领1张<br />2.积分不能兑换,不可转让<br />3.积分及优惠券,一经使用,概不退换";
vo.setInterestsDetail(interestsDetail);
redisUtil.set(key, vo);
}
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | */ /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | */
......
...@@ -166,7 +166,7 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService { ...@@ -166,7 +166,7 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
adamRdmService.setUserInfoVoByUid(existUserInfoVo.getUid(), existUserInfoVo); adamRdmService.setUserInfoVoByUid(existUserInfoVo.getUid(), existUserInfoVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s); log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
String sexStr = JsonUtils.toJson(existUserInfoVo.getSex()); String sexStr = null == existUserInfoVo.getSex() ? null : JsonUtils.toJson(existUserInfoVo.getSex());
String tagMeStr = JsonUtils.toJson(tagMe); String tagMeStr = JsonUtils.toJson(tagMe);
if (syncChimeFlg || null == beforeSex || (null != parameter.getSex() && !parameter.getSex().getVal().equals(beforeSex.getVal()))) { if (syncChimeFlg || null == beforeSex || (null != parameter.getSex() && !parameter.getSex().getVal().equals(beforeSex.getVal()))) {
ResponseDto<String> chimeRegisterRstFlg = null; ResponseDto<String> chimeRegisterRstFlg = null;
......
...@@ -10,7 +10,7 @@ spring: ...@@ -10,7 +10,7 @@ spring:
cloud: cloud:
config: config:
# uri: http://127.0.0.1:7002/support-config # uri: http://127.0.0.1:7002/support-config
# uri: http://39.106.122.201:7002/support-config # uri: http://39.107.71.112:7002/support-config
profile: ${liquidnet.cloudConfig.profile} profile: ${liquidnet.cloudConfig.profile}
name: ${spring.application.name} #默认为spring.application.name name: ${spring.application.name} #默认为spring.application.name
discovery: discovery:
......
...@@ -8,6 +8,7 @@ adam_user.close=UPDATE adam_user SET `state`=2, updated_at=?, closed_at=? WHERE ...@@ -8,6 +8,7 @@ adam_user.close=UPDATE adam_user SET `state`=2, updated_at=?, closed_at=? WHERE
adam_user_info.add=INSERT INTO adam_user_info (`uid`, nickname, avatar, qr_code) VALUES (?,?,?,?) adam_user_info.add=INSERT INTO adam_user_info (`uid`, nickname, avatar, qr_code) VALUES (?,?,?,?)
adam_user_info.edit=UPDATE adam_user_info SET nickname=?, sex=?, birthday=?, area=?, signature=?, avatar=?, background=?, tag_me=? WHERE uid=? adam_user_info.edit=UPDATE adam_user_info SET nickname=?, sex=?, birthday=?, area=?, signature=?, avatar=?, background=?, tag_me=? WHERE uid=?
adam_user_info.update_by_member=UPDATE adam_user_info SET birthday=?, area=? WHERE uid=? adam_user_info.update_by_member=UPDATE adam_user_info SET birthday=?, area=? WHERE uid=?
adam_user_info.update_qr_code=UPDATE adam_user_info SET qr_code=? WHERE uid=?
# ---------------------------------------------------- # ----------------------------------------------------
adam_real_name.add=INSERT INTO adam_real_name (real_name_id, `uid`, `type`, `name`, id_card, `state`, created_at) VALUES (?,?,?,?,?,?,?) adam_real_name.add=INSERT INTO adam_real_name (real_name_id, `uid`, `type`, `name`, id_card, `state`, created_at) VALUES (?,?,?,?,?,?,?)
...@@ -60,7 +61,8 @@ adam_user_member.update=UPDATE adam_user_member SET `state`=?, expiry_at=?, upda ...@@ -60,7 +61,8 @@ adam_user_member.update=UPDATE adam_user_member SET `state`=?, expiry_at=?, upda
adam_user_member.close=UPDATE adam_user_member SET `state`=2, updated_at=?, comment='close' WHERE `uid`=? adam_user_member.close=UPDATE adam_user_member SET `state`=2, updated_at=?, comment='close' WHERE `uid`=?
# ---------------------------------------------------- # ----------------------------------------------------
candy_mgt_coupon.add_for_member=INSERT INTO candy_mgt_coupon (mcoupon_id, coupon_id, `state`, event_amt, event_type, event_limit, event_at, `operator`, created_at) VALUES (?, ?, 0, ?, 2, ?, ?, ?, ?) #candy_mgt_coupon.add_for_member=INSERT INTO candy_mgt_coupon (mcoupon_id, coupon_id, `state`, event_amt, event_type, event_limit, event_at, `operator`, created_at) VALUES (?, ?, 0, ?, 2, ?, ?, ?, ?)
candy_mgt_coupon.add_for_member=INSERT INTO candy_mgt_coupon (mcoupon_id, coupon_id, `state`, event_amt, event_type, event_limit, event_at, exclusively, `operator`, created_at) VALUES (?, ?, 0, ?, 2, ?, ?, 1, ?, ?)
# ---------------------------------------------------- # ----------------------------------------------------
adam_user_busi_acct.add=INSERT INTO adam_user_busi_acct (`uid`, busi, uuid, `work`, ppwd, `state`, created_at) VALUES (?,?,?,?,?,?,?) adam_user_busi_acct.add=INSERT INTO adam_user_busi_acct (`uid`, busi, uuid, `work`, ppwd, `state`, created_at) VALUES (?,?,?,?,?,?,?)
......
...@@ -13,6 +13,9 @@ public class TestAdam { ...@@ -13,6 +13,9 @@ public class TestAdam {
Scanner scanner = new Scanner(System.in); Scanner scanner = new Scanner(System.in);
int dbs = scanner.nextInt(); int dbs = scanner.nextInt();
String[] keys = { String[] keys = {
"adam:info:member:joinus:0",
"adam:info:member:joinus:10",
"adam:info:member:joinus:50",
"adam:incr:member_no", "adam:incr:member_no",
"adam:ad:info", "adam:ad:info",
"adam:blacklist:member:uid", "adam:blacklist:member:uid",
...@@ -44,6 +47,7 @@ public class TestAdam { ...@@ -44,6 +47,7 @@ public class TestAdam {
"adam:info:morder:331587681810022407979836", "adam:info:morder:331587681810022407979836",
"adam:info:member:simple", "adam:info:member:simple",
"adam:info:member:joinus",
"adam:info:member:category:1", "adam:info:member:category:1",
"adam:info:member:agreement", "adam:info:member:agreement",
"adam:info:member:rights:1", "adam:info:member:rights:1",
......
...@@ -39,7 +39,7 @@ create table candy_coupon ...@@ -39,7 +39,7 @@ create table candy_coupon
exclusive smallint comment '专享标识[0-常规|1-会员礼包]', exclusive smallint comment '专享标识[0-常规|1-会员礼包]',
busi_type smallint comment '业务类别[0-全场|1-演出|2-商品|3-优先购]', busi_type smallint comment '业务类别[0-全场|1-演出|2-商品|3-优先购]',
cou_type smallint comment '券类型[1-代金券|2-满减券|3-兑换券|4-折扣券|101-优先券]', cou_type smallint comment '券类型[1-代金券|2-满减券|3-兑换券|4-折扣券|101-优先券]',
bind_type smallint comment '领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换]', bind_type smallint comment '领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换|3-发放需领取|4-会员专属]',
discount decimal(8, 2) comment '折扣[8折即0.8]', discount decimal(8, 2) comment '折扣[8折即0.8]',
val_face decimal(8, 2) comment '面值', val_face decimal(8, 2) comment '面值',
...@@ -150,7 +150,17 @@ create table candy_common_coupon ...@@ -150,7 +150,17 @@ create table candy_common_coupon
updated_at datetime(3), updated_at datetime(3),
comment varchar(255) comment varchar(255)
) engine = InnoDB comment '公有券信息'; ) engine = InnoDB comment '公有券信息';
-- >>------------------------------------------------------------------------------------ -- >>------------------------------------------------------------------------------------|20211125会员券发放调整
# 专享标识[0-常规|1-会员专属]
# <p>
# 变更前:`candy_coupon.exclusive`用于根据会员有效期设置券有效期及标识用户端券分类(普通券、会员券等);
# 变更后:
# `candy_coupon.exclusive`废除
# 实际发放逻辑中,原标识"是否根据会员有效期设置券有效期"`candy_coupon.exclusive`字段改为`candy_mgt_coupon.exclusively`
# `candy_user_coupon``candy_common_coupon`中添加`exclusive`字段,发放时直接由`candy_mgt_coupon.exclusively`赋值该属性
alter table candy_mgt_coupon add exclusively smallint default 0 null comment '专享标识[0-常规|1-会员专属]' after event_at;
alter table candy_user_coupon add exclusive smallint null comment '专享标识[0-常规|1-会员礼包]' after coupon_id;
alter table candy_common_coupon add exclusive smallint null comment '专享标识[0-常规|1-会员礼包]' after coupon_id;
-- >>------------------------------------------------------------------------------------ -- >>------------------------------------------------------------------------------------
-- >>------------------------------------------------------------------------------------ -- >>------------------------------------------------------------------------------------
......
package com.liquidnet.service.candy.controller;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.candy.dto.CandyCouponInfoDto;
import com.liquidnet.service.candy.util.RedisDataUtils;
import com.liquidnet.service.candy.vo.CandyCouponBasicVo;
import com.liquidnet.service.candy.vo.CandyCouponVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
@Api(tags = "@API:RSC")
@RestController
@Validated
@RequestMapping("rsc")
public class CandyRscController {
@Autowired
private RedisDataUtils redisDataUtils;
@PostMapping("couinfo")
@ApiOperation("券基础详情")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", dataType = "String", name = "couponId", value = "券ID", required = true),
})
public ResponseDto<CandyCouponBasicVo> couponListById(@RequestParam("couponId") @NotNull @NotBlank String couponId) {
CandyCouponBasicVo couponBasicVo = CandyCouponBasicVo.getNew();
CandyCouponInfoDto couponInfoDto = redisDataUtils.getCouponInfo(couponId);
BeanUtils.copyProperties(couponInfoDto, couponBasicVo);
return ResponseDto.success(couponBasicVo);
}
}
package com.liquidnet.service.consumer.sweet.config;
import com.liquidnet.service.consumer.sweet.receiver.ConsumerSweetPosterRdsReceiver;
import lombok.var;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription;
import java.time.Duration;
import static com.liquidnet.service.base.constant.MQConst.SweetQueue.SWEET_POSTER;
@Configuration
public class ConsumerSweetPosterRdsReceiverConfig {
@Autowired
ConsumerSweetPosterRdsReceiver consumerSweetPosterRdsReceiver;
private StreamMessageListenerContainer<String, MapRecord<String, String, String>> buildStreamMessageListenerContainer(RedisConnectionFactory factory) {
var options = StreamMessageListenerContainer
.StreamMessageListenerContainerOptions
.builder()
.pollTimeout(Duration.ofMillis(1))
.build();
return StreamMessageListenerContainer.create(factory, options);
}
/*
*活动海报
* */
private Subscription receiveSqlPoster(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(
Consumer.from(SWEET_POSTER.getGroup(), SWEET_POSTER.name() + t),
StreamOffset.create(SWEET_POSTER.getKey(), ReadOffset.lastConsumed()), consumerSweetPosterRdsReceiver
);
}
@Bean
public Subscription subscriptionSqlPoster(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlPoster(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionSqlPoster2(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlPoster(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionSqlPoster3(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlPoster(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
}
package com.liquidnet.service.consumer.sweet.receiver;
import com.liquidnet.service.base.constant.MQConst;
import org.springframework.stereotype.Component;
@Component
public class ConsumerSweetPosterRdsReceiver extends AbstractSqlRedisReceiver{
@Override
protected String getRedisStreamKey() {
return MQConst.SweetQueue.SWEET_POSTER.getKey();
}
@Override
protected String getRedisStreamGroup() {
return MQConst.SweetQueue.SWEET_POSTER.getGroup();
}
}
...@@ -7,7 +7,6 @@ import com.liquidnet.service.consumer.sweet.config.WechatMpConfigure; ...@@ -7,7 +7,6 @@ import com.liquidnet.service.consumer.sweet.config.WechatMpConfigure;
import com.liquidnet.service.consumer.sweet.utils.RedisDataUtils; import com.liquidnet.service.consumer.sweet.utils.RedisDataUtils;
import com.liquidnet.service.sweet.dto.param.SweetOpenSendMsgParam; import com.liquidnet.service.sweet.dto.param.SweetOpenSendMsgParam;
import com.liquidnet.service.sweet.entity.SweetAppletUsers; import com.liquidnet.service.sweet.entity.SweetAppletUsers;
import com.liquidnet.service.sweet.entity.SweetWechatUser;
import com.liquidnet.service.sweet.mapper.SweetAppletUsersMapper; import com.liquidnet.service.sweet.mapper.SweetAppletUsersMapper;
import com.liquidnet.service.sweet.vo.SweetWechatUsersVo; import com.liquidnet.service.sweet.vo.SweetWechatUsersVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
......
...@@ -2,7 +2,6 @@ package com.liquidnet.service.consumer.sweet.utils; ...@@ -2,7 +2,6 @@ package com.liquidnet.service.consumer.sweet.utils;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.sweet.constant.SweetConstant; import com.liquidnet.service.sweet.constant.SweetConstant;
import com.liquidnet.service.sweet.entity.SweetWechatUser;
import com.liquidnet.service.sweet.vo.SweetWechatUsersVo; import com.liquidnet.service.sweet.vo.SweetWechatUsersVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
......
...@@ -14,6 +14,8 @@ db.createCollection("KylinTicketPartnerVo"); ...@@ -14,6 +14,8 @@ db.createCollection("KylinTicketPartnerVo");
db.createCollection("KylinTicketTimesPartnerVo"); db.createCollection("KylinTicketTimesPartnerVo");
db.createCollection("PerformanceMemberAuditParam"); db.createCollection("PerformanceMemberAuditParam");
db.createCollection("AdminUpushVo"); db.createCollection("AdminUpushVo");
db.createCollection("KylinIpAreaVo");
#创建索引 #创建索引
db.KylinCheckUserPerformanceVo.createIndex({checkUserId:"hashed"}); db.KylinCheckUserPerformanceVo.createIndex({checkUserId:"hashed"});
...@@ -37,6 +39,7 @@ db.KylinTicketTimesPartnerVo.createIndex({performancesId:"hashed"}); ...@@ -37,6 +39,7 @@ db.KylinTicketTimesPartnerVo.createIndex({performancesId:"hashed"});
db.KylinTicketTimesPartnerVo.createIndex({ticketTimesId:"hashed"}); db.KylinTicketTimesPartnerVo.createIndex({ticketTimesId:"hashed"});
db.PerformanceMemberAuditParam.createIndex({performancesId:"hashed"}); db.PerformanceMemberAuditParam.createIndex({performancesId:"hashed"});
db.AdminUpushVo.createIndex({upushId:"hashed"}); db.AdminUpushVo.createIndex({upushId:"hashed"});
db.KylinIpAreaVo.createIndex({mid:"hashed"});
#创建分片 #创建分片
sh.enableSharding("prod_ln_scene"); sh.enableSharding("prod_ln_scene");
...@@ -54,4 +57,5 @@ sh.shardCollection("prod_ln_scene.KylinTicketPartnerVo",{"ticketsId":"hashed"}); ...@@ -54,4 +57,5 @@ sh.shardCollection("prod_ln_scene.KylinTicketPartnerVo",{"ticketsId":"hashed"});
sh.shardCollection("prod_ln_scene.KylinTicketTimesPartnerVo",{"ticketTimesId":"hashed"}); sh.shardCollection("prod_ln_scene.KylinTicketTimesPartnerVo",{"ticketTimesId":"hashed"});
sh.shardCollection("prod_ln_scene.PerformanceMemberAuditParam",{"performancesId":"hashed"}); sh.shardCollection("prod_ln_scene.PerformanceMemberAuditParam",{"performancesId":"hashed"});
sh.shardCollection("prod_ln_scene.AdminUpushVo",{"upushId":"hashed"}); sh.shardCollection("prod_ln_scene.AdminUpushVo",{"upushId":"hashed"});
sh.shardCollection("prod_ln_scene.KylinIpAreaVo",{"mid":"hashed"});
package com.liquidnet.service.kylin.controller;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.adam.dto.vo.admin.AdminUpushVo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.service.impl.KylinUpushServiceImpl;
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.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
/**
* <p>
* 友盟推送 系统消息
* </p>
*
* @author jiangxiulong
* @since 2021-07-15
*/
@Api(tags = "basicServices")
@RestController
@RequestMapping("basicServices/upush")
public class KylinUpushController {
@Autowired
private KylinUpushServiceImpl upushServiceImpl;
@GetMapping("system")
@ApiOperation("系统消息列表")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "Integer", name = "page", value = "页码"),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "size", value = "每页数量"),
})
public ResponseDto<PageInfo<AdminUpushVo>> lists(
HttpServletRequest request,
@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "10") Integer size
) {
PageInfo<AdminUpushVo> result = upushServiceImpl.lists(request, page, size);
return ResponseDto.success(result);
}
@GetMapping("unread")
@ApiOperation("用户未读数量")
public ResponseDto<Integer> unread(HttpServletRequest request) {
Integer num = upushServiceImpl.unread(request);
return ResponseDto.success(num);
}
}
...@@ -14,10 +14,7 @@ import com.liquidnet.service.kylin.constant.KylinTableStatusConst; ...@@ -14,10 +14,7 @@ import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dto.vo.KylinFieldsVo; import com.liquidnet.service.kylin.dto.vo.KylinFieldsVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo; import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo; import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderRefundEntitiesVo; import com.liquidnet.service.kylin.dto.vo.mongo.*;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.kylin.dto.vo.returns.*; import com.liquidnet.service.kylin.dto.vo.returns.*;
import com.liquidnet.service.kylin.entity.*; import com.liquidnet.service.kylin.entity.*;
import com.liquidnet.service.kylin.service.IKylinOrderTicketsService; import com.liquidnet.service.kylin.service.IKylinOrderTicketsService;
...@@ -833,9 +830,10 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService { ...@@ -833,9 +830,10 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
orderTickets.setPayType(orderTicketVo.getPayType()); orderTickets.setPayType(orderTicketVo.getPayType());
orderTickets.setPayCode(orderTicketVo.getPayCode()); orderTickets.setPayCode(orderTicketVo.getPayCode());
KylinIpAreaVo vo = dataUtils.getKylinIpAreaVo(CurrentUtil.getCliIpAddr());
sqls.add(SqlMapping.get("kylin_order_ticket.add")); sqls.add(SqlMapping.get("kylin_order_ticket.add"));
LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr();
sqlsDataA.add(orderTickets.getAddObject(CurrentUtil.getCliIpAddr())); sqlsDataA.add(orderTickets.getAddObject(CurrentUtil.getCliIpAddr(), vo.getArea(), vo.getProvince(), vo.getCity(), vo.getCounty()));
//删除被转赠订单独立redis //删除被转赠订单独立redis
dataUtils.delTransferOrder(uid); dataUtils.delTransferOrder(uid);
// 生成vo // 生成vo
......
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