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

Commit 3580e7ad authored by jiangxiulong's avatar jiangxiulong

Merge remote-tracking branch 'origin/master' into jxl_city_active

parents ba7947ff 3d010053
This diff is collapsed.
drop table if exists kylin_order_import;
create table kylin_order_import
(
mid bigint unsigned auto_increment primary key,
import_id varchar(64) default '' comment 'id',
performance_id varchar(64) default '' comment '演出id',
title varchar(64) default '' comment '文件名称',
status int(3) default 0 comment '状态[0-处理中|1处理完成|2处理失败]',
error_count int default 0 comment '失败条数',
success_count int default 0 comment '成功条数',
all_count int default 0 comment '总条数',
created_at datetime ,
updated_at datetime ,
comment text
) engine = InnoDB comment '订单导入表';
\ No newline at end of file
package com.liquidnet.service.adam.constant;
public class AdamRedisConst {
public static final String ADAM = "adam:";
public static final String PREFIX = "adam:";
public static final String VALID = ADAM.concat("valid:");
public static final String VALID_SMS_CODE_MOBILE = PREFIX.concat("valid:sms:code:mobile");
public static final String VALID_SMS_CODE_MOBILE = VALID.concat("sms:code:mobile");
public static final String IDENTITY_MOBILE = PREFIX.concat("identity:mobile:");
public static final String IDENTITY_THIRD_PARTY = PREFIX.concat("identity:third_party:");
public static final String IDENTITY = ADAM.concat("identity:");
public static final String INFO_TAGS_SEX = PREFIX.concat("info:tags:sex");
public static final String INFO_TAGS_MUSIC = PREFIX.concat("info:tags:music");
public static final String IDENTITY_MOBILE = IDENTITY.concat("mobile:");
public static final String IDENTITY_THIRD_PARTY = IDENTITY.concat("third_party:");
public static final String INFO_USER = PREFIX.concat("info:user:");
public static final String INFO_USER_MEMBER = PREFIX.concat("info:umember:");
public static final String INFO_REAL_NAME = PREFIX.concat("info:real_name:");
public static final String INFO_THIRD_PARTY = PREFIX.concat("info:third_party:");
public static final String INFO_ENTERS = PREFIX.concat("info:enters:");
public static final String INFO_ADDRESSES = PREFIX.concat("info:addresses:");
public static final String INFO = ADAM.concat("info:");
public static final String INFO_TAGS_SEX = INFO.concat("tags:sex");
public static final String INFO_TAGS_MUSIC = INFO.concat("tags:music");
public static final String INFO_USER = INFO.concat("user:");
public static final String INFO_USER_MEMBER = INFO.concat("umember:");
public static final String INFO_REAL_NAME = INFO.concat("real_name:");
public static final String INFO_THIRD_PARTY = INFO.concat("third_party:");
public static final String INFO_ENTERS = INFO.concat("enters:");
public static final String INFO_ADDRESSES = INFO.concat("addresses:");
public static final String INFO_CERTIFICATION = INFO.concat("certification:");
public static final String INFO_CERTIFICATION = PREFIX.concat("info:certification:");
/**
* 认证失败标记
*/
public static final String INFO_CERTIFICATION_JUNK = INFO.concat("certification_junk:");
public static final String INFO_CERTIFICATION_JUNK = PREFIX.concat("info:certification_junk:");
public static final String INFO_MEMBER_SIMPLE = PREFIX.concat("info:member:simple");
public static final String INFO_MEMBER_CATEGORY = PREFIX.concat("info:member:category:");
public static final String INFO_MEMBER_PRICE = PREFIX.concat("info:member:price:");
/**
* 默认会员权益
*/
public static final String INFO_MEMBER_RIGHTS = PREFIX.concat("info:member:rights:");
/**
* 老会员权益
*/
public static final String INFO_MEMBER_RIGHTS_V = PREFIX.concat("info:member:rights:v:");
public static final String INFO_MEMBER_RIGHTS_COUPON = PREFIX.concat("info:member:rights_coupon:");
public static final String INFO_MEMBER_AGREEMENT = PREFIX.concat("info:member:agreement");
public static final String INFO_MEMBER_SIMPLE = INFO.concat("member:simple");
public static final String INFO_MEMBER_CATEGORY = INFO.concat("member:category:");
public static final String INFO_MEMBER_PRICE = INFO.concat("member:price:");
public static final String INFO_MEMBER_RIGHTS = INFO.concat("member:rights:");
public static final String INFO_MEMBER_AGREEMENT = INFO.concat("member:agreement");
public static final String INFO_MEMBER_CODE = INFO.concat("member:code:");
public static final String INFO_MEMBER_ORDER = INFO.concat("morder:");
public static final String INFO_BUY_MEMBER_ORDER_CODE = INFO.concat("mordercode:");
public static final String INFO_MEMBER_CODE = PREFIX.concat("info:member:code:");
public static final String INFO_MEMBER_ORDER = PREFIX.concat("info:morder:");
public static final String INFO_MEMBER_ORDER_BUY_CODE = PREFIX.concat("info:mordercode:");
// public static final String INFO_LIBRARY_NKNAME = INFO.concat("library:nkname");
// public static final String INFO_LIBRARY_NKNAME = PREFIX.concat("info:library:nkname");
public static final String BLACK_LIST = ADAM.concat("blacklist:");
public static final String BLK_LIST_MEMBER_UID = BLACK_LIST.concat("member:uid");
public static final String BLK_LIST_MEMBER_UID = PREFIX.concat("blacklist:member:uid");
public static final String SHOT_MEMBER_ORDER = ADAM.concat("morder:");
public static final String SHOT_MEMBER_ORDER = PREFIX.concat("morder:");
public static final String INCR = ADAM.concat("incr:");
public static final String INCR_MEMBER_NO = INCR.concat("member_no");
public static final String INCR_MEMBER_NO = PREFIX.concat("incr:member_no");
public static final String INCR_MEMBER_LIMITATION = PREFIX.concat("incr:member_limitation");
public static final String SWITCH = ADAM.concat("switch:");
public static final String SWITCH_BUY_MEMBER = SWITCH.concat("buy:member");
public static final String SWITCH_BUY_MEMBER = PREFIX.concat("switch:buy:member");
/* ----------------------------------------------------------------- */
......
......@@ -23,10 +23,17 @@ public class AdamMemberOrderCodeParam implements Serializable {
@Pattern(regexp = LnsRegex.Valid.DATETIME_YMD, message = "生日格式有误")
@NotBlank(message = "生日不能为空")
private String birthday;
@ApiModelProperty(position = 12, value = "支付终端[app,wap,js,applet]", example = "js")
@ApiModelProperty(position = 13, required = true, value = "地区[100]", example = "北京 北京市 朝阳区")
@NotBlank(message = "地区不能为空")
private String area;
@ApiModelProperty(position = 14, required = true, value = "收获地址")
@Size(min = 1, max = 64, message = "收获地址长度限制1-64位字符")
@NotBlank(message = "收获地址不能为空")
private String addressId;
@ApiModelProperty(position = 15, value = "支付终端[app,wap,js,applet]", example = "js")
private String deviceFrom;
@ApiModelProperty(position = 13, required = false, value = "姓名[未实名时必传]")
@ApiModelProperty(position = 16, required = false, value = "姓名[未实名时必传]")
private String name;
@ApiModelProperty(position = 14, required = false, value = "身份证件号[未实名时必传]")
@ApiModelProperty(position = 17, required = false, value = "身份证件号[未实名时必传]")
private String idCard;
}
......@@ -33,6 +33,9 @@ public class AdamMemberOrderParam implements Serializable {
@Pattern(regexp = LnsRegex.Valid.DATETIME_YMD, message = "生日格式有误")
@NotBlank(message = "生日不能为空")
private String birthday;
@ApiModelProperty(position = 16, required = true, value = "地区[100]", example = "北京 北京市 朝阳区")
@NotBlank(message = "地区不能为空")
private String area;
@ApiModelProperty(position = 16, required = true, value = "收获地址")
@Size(min = 1, max = 64, message = "收获地址长度限制1-64位字符")
@NotBlank(message = "收获地址不能为空")
......
package com.liquidnet.service.adam.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@ApiModel(value = "AdamMemberParam", description = "添加会员入参")
@Data
public class AdamMemberParam implements Serializable {
private static final long serialVersionUID = -7411934614249221021L;
@ApiModelProperty(position = 0, required = false, value = "会员ID[50]")
private String memberId;
@ApiModelProperty(position = 1, required = true, value = "会员名称[50]", example = "摩登天空会员卡")
private String name;
@ApiModelProperty(position = 2, required = true, value = "会员标题[50]", example = "摩登天空会员卡")
private String title;
@ApiModelProperty(position = 3, required = true, value = "会员副标题[50]", example = "摩登天空会员卡副标题")
private String subTitle;
@ApiModelProperty(position = 4, required = true, value = "icon图标[200]", example = "https://img.zhengzai.tv/files/2020/08/28/5f490418d30b4.png")
private String icon;
@ApiModelProperty(position = 5, required = true, value = "会员头像[200]", example = "https://img.zhengzai.tv/files/2020/08/31/5f4c75095e9bc.png")
private String avatar;
@ApiModelProperty(position = 6, required = true, value = "权益详情[200]", example = "加入摩登天空会员您可享受到.....")
private String interestsDetail;
@ApiModelProperty(position = 7, required = true, value = "注意事项[200]", example = "摩登天空会员需注意以下事项.....")
private String notes;
@ApiModelProperty(position = 8, required = true, value = "是否展示须知[[0-否,1-是]]", allowableValues = "0,1")
private Integer isNotice;
@ApiModelProperty(position = 9, required = true, value = "会员须知内容[200]", example = "会员须知细则1.xxxx\n2.xxxx")
private String noticeInfo;
@ApiModelProperty(position = 10, required = true, value = "会员须知标题[200]", example = "摩登天空会员须知")
private String noticeTitle;
@ApiModelProperty(position = 11, required = true, value = "是否需要答题[0-否,1-是]", allowableValues = "0,1")
private Integer needQuestion;
@ApiModelProperty(position = 12, required = true, value = "是否展示协议[0-否,1-是]", allowableValues = "0,1")
private Integer displayAgreement;
@ApiModelProperty(position = 13, required = true, value = "状态[1-NORMAL,2-INVALID]", example = "1")
private Integer state;
@ApiModelProperty(position = 14, required = true, value = "限购数量,0不限购[200]", example = "0")
private Integer limitation;
}
package com.liquidnet.service.adam.dto.admin;
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;
@ApiModel(value = "AdamMemberBuildParam", description = "编辑会员入参")
@Data
public class AdamMemberBuildParam implements Serializable {
private static final long serialVersionUID = -7411934614249221021L;
@ApiModelProperty(required = false, value = "会员ID[64]")
private String memberId;
@ApiModelProperty(required = true, value = "会员名称[80]", example = "摩登天空会员卡")
@NotBlank(message = "会员名称不能为空")
private String name;
@ApiModelProperty(required = true, value = "会员标题[100]", example = "摩登天空会员卡")
@NotBlank(message = "会员标题不能为空")
private String title;
@ApiModelProperty(required = true, value = "会员副标题[255]", example = "摩登天空会员卡副标题")
@NotBlank(message = "会员副标题不能为空")
private String subTitle;
@ApiModelProperty(required = true, value = "icon图标[255]", example = "https://img.zhengzai.tv/files/2020/08/28/5f490418d30b4.png")
@NotBlank(message = "icon图标不能为空")
private String icon;
@ApiModelProperty(required = true, value = "会员头像[255]", example = "https://img.zhengzai.tv/files/2020/08/31/5f4c75095e9bc.png")
@NotBlank(message = "会员头像不能为空")
private String avatar;
@ApiModelProperty(required = true, value = "弹窗文案[200]", example = "加入摩登天空会员您可享受到.....")
@NotBlank(message = "弹窗文案不能为空")
private String interestsDetail;
@ApiModelProperty(required = true, value = "注意事项[200]", example = "摩登天空会员需注意以下事项.....")
@NotBlank(message = "注意事项不能为空")
private String notes;
@ApiModelProperty(required = true, value = "是否开售:1-开售|2-停售")
@NotNull(message = "是否开售不能为空")
private Integer onsale;
@ApiModelProperty(required = false, value = "限购数量,0不限购[200]", example = "0")
private Integer limitation;
@ApiModelProperty(required = false, value = "限购开始时间[yyyy-MM-dd]")
private String limitbAt;
@ApiModelProperty(required = false, value = "限购结束时间[yyyy-MM-dd]")
private String limiteAt;
}
package com.liquidnet.service.adam.dto.admin;
import lombok.Data;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Data
public class AdamMemberCodeGenParam implements Serializable {
private static final long serialVersionUID = 7212595876649709617L;
@NotBlank(message = "会员类型ID不能为空")
private String memberId;
@NotBlank(message = "会员价格ID不能为空")
private String memberPriceId;
@NotNull(message = "生成数量不能为空")
@Min(1)
@Max(100)
private Integer genNum;
@NotBlank(message = "备注描述不能为空")
private String detail;
}
package com.liquidnet.service.adam.dto.admin;
import lombok.Data;
import java.io.Serializable;
//@ApiModel(value = "AdamMemberCodeListParam", description = "会员码列表入参")
@Data
public class AdamMemberCodeListParam implements Serializable {
private static final long serialVersionUID = -8454342033562304457L;
// @ApiModelProperty(required = false, value = "会员码批次号[64]")
private String batchNo;
// @ApiModelProperty(required = false, value = "状态[0-可用|1-已用|2-无效|3-过期|4-失效|5-退回]")
private Integer state;
}
package com.liquidnet.service.adam.dto.admin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
@ApiModel(value = "AdamMemberOrderRefundParam", description = "会员订单退款入参")
@Data
public class AdamMemberOrderRefundParam implements Serializable {
private static final long serialVersionUID = 3811495229630522458L;
@NotBlank(message = "订单号不能为空")
@ApiModelProperty(required = true, value = "订单号")
private String orderNo;
@NotNull(message = "退款金额不能为空")
@DecimalMin(value = "0.01", message = "退款金额不能小于0.01")
@ApiModelProperty(required = true, value = "退款金额")
private BigDecimal refundAmt;
@NotNull(message = "请选择是否能继续购买会员")
@ApiModelProperty(required = true, value = "是否能继续购买会员[1-是|2-否]")
private Integer renewable;
@NotBlank(message = "请输入退款原因")
@ApiModelProperty(required = true, value = "退款原因")
private String reason;
}
package com.liquidnet.service.adam.dto.admin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.math.BigDecimal;
@ApiModel(value = "AdamMemberPriceBuildParam", description = "编辑价格入参")
@Data
public class AdamMemberPriceBuildParam implements Serializable {
private static final long serialVersionUID = -7331274160877946420L;
@ApiModelProperty(required = true, value = "会员类型ID")
@NotBlank(message = "会员类型ID不能为空")
private String memberId;
@ApiModelProperty(required = false, value = "会员价格ID")
private String memberPriceId;
@ApiModelProperty(required = true, value = "原价")
@DecimalMin(value = "0.01", message = "原价不能小于0.01")
private BigDecimal price;
@ApiModelProperty(required = true, value = "折扣价")
@DecimalMin(value = "0.01", message = "折扣价不能小于0.01")
private BigDecimal priceFixed;
@ApiModelProperty(required = true, value = "特价:首次、首年优惠价")
@DecimalMin(value = "0.01", message = "首年优惠价不能小于0.01")
private BigDecimal priceSpecial;
@ApiModelProperty(required = true, value = "有效天数")
@Min(value = 1, message = "有效天数不得小于1")
private Integer days;
@ApiModelProperty(required = false, value = "双倍积分[1-关闭,2-开启]")
private BigDecimal integralRate;
}
package com.liquidnet.service.adam.dto.admin;
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;
@ApiModel(value = "AdamMemberRightsBuildParam", description = "编辑权益入参")
@Data
public class AdamMemberRightsBuildParam implements Serializable {
private static final long serialVersionUID = -7331274160877946420L;
@ApiModelProperty(required = true, value = "会员卡ID")
@NotBlank(message = "会员类型ID不能为空")
private String memberId;
@ApiModelProperty(required = false, value = "权益ID[64]")
private String mrightsId;
@ApiModelProperty(required = true, value = "权益状态[1-有效|2-无效]")
@NotNull(message = "会员权益状态不能为空")
private Integer state;
@ApiModelProperty(required = true, value = "权益标题[50]")
@NotBlank(message = "会员权益标题不能为空")
private String title;
@ApiModelProperty(required = true, value = "权益副标题[200]")
@NotNull(message = "会员权益副标题不能为空")
private String subTitle;
@ApiModelProperty(required = false, value = "标注[50]")
private String label;
@ApiModelProperty(required = true, value = "权益封面图片[255]")
@NotNull(message = "会员权益封面图片不能为空")
private String cover;
@ApiModelProperty(required = false, value = "详情内容")
private String detail;
@ApiModelProperty(required = false, value = "展示顺序")
private Integer seqNo;
}
package com.liquidnet.service.adam.dto.rsc;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@ApiModel(value = "AdamChimeUinfoResp", description = "社交用户信息查询响应")
@Data
public class AdamChimeUinfoDto implements Serializable, Cloneable {
private static final long serialVersionUID = -2948770525358677081L;
@ApiModelProperty(position = 1, value = "用户ID[64]")
private String userId;
@ApiModelProperty(position = 2, value = "用户昵称")
private String nickName;
@ApiModelProperty(position = 3, value = "头像")
private String avatar;
@ApiModelProperty(position = 4, value = "封面")
private String userCover;
@ApiModelProperty(position = 5, value = "生日")
private String birthday;
@ApiModelProperty(position = 6, value = "签名")
private String signature;
@ApiModelProperty(position = 7, value = "常住地/区域")
private String area;
private static final AdamChimeUinfoDto obj = new AdamChimeUinfoDto();
public static AdamChimeUinfoDto getNew() {
try {
return (AdamChimeUinfoDto) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new AdamChimeUinfoDto();
}
public AdamChimeUinfoDto copy(AdamUserInfoVo source) {
if (null == source) return this;
this.setUserId(source.getUid());
this.setNickName(source.getNickname());
this.setAvatar(source.getAvatar());
this.setUserCover(source.getBackground());
this.setBirthday(source.getBirthday());
this.setSignature(source.getSignature());
this.setArea(source.getArea());
return this;
}
}
package com.liquidnet.service.adam.dto.rsc;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@ApiModel(value = "AdamChimeUinfoReq", description = "社交用户信息查询入参")
@Data
public class AdamChimeUinfoReq implements Serializable, Cloneable {
private static final long serialVersionUID = 4531386163909042965L;
private List<String> uidList;
}
......@@ -14,12 +14,12 @@ public class AdamLoginInfoVo implements Serializable, Cloneable {
private String token;
@ApiModelProperty(position = 12, value = "用户信息")
private AdamUserInfoVo userInfo;
@ApiModelProperty(position = 13, value = "实名信息")
private AdamRealInfoVo realNameInfo;
@ApiModelProperty(position = 14, value = "用户第三方账号信息")
private List<AdamThirdPartInfoVo> thirdPartInfo;
@ApiModelProperty(position = 15, value = "会员信息")
private AdamMemberSimpleVo memberVo;
// @ApiModelProperty(position = 13, value = "实名信息")
// private AdamRealInfoVo realNameInfo;
// @ApiModelProperty(position = 14, value = "用户第三方账号信息")
// private List<AdamThirdPartInfoVo> thirdPartInfo;
// @ApiModelProperty(position = 15, value = "会员信息")
// private AdamMemberSimpleVo memberVo;
@ApiModelProperty(position = 16, value = "用户会员信息")
private AdamUserMemberVo userMemberVo;
......@@ -44,29 +44,29 @@ public class AdamLoginInfoVo implements Serializable, Cloneable {
this.userInfo = userInfo;
}
public AdamRealInfoVo getRealNameInfo() {
return realNameInfo;
}
public void setRealNameInfo(AdamRealInfoVo realNameInfo) {
this.realNameInfo = realNameInfo;
}
public List<AdamThirdPartInfoVo> getThirdPartInfo() {
return thirdPartInfo;
}
public void setThirdPartInfo(List<AdamThirdPartInfoVo> thirdPartInfo) {
this.thirdPartInfo = thirdPartInfo;
}
public AdamMemberSimpleVo getMemberVo() {
return memberVo;
}
public void setMemberVo(AdamMemberSimpleVo memberVo) {
this.memberVo = memberVo;
}
// public AdamRealInfoVo getRealNameInfo() {
// return realNameInfo;
// }
//
// public void setRealNameInfo(AdamRealInfoVo realNameInfo) {
// this.realNameInfo = realNameInfo;
// }
//
// public List<AdamThirdPartInfoVo> getThirdPartInfo() {
// return thirdPartInfo;
// }
//
// public void setThirdPartInfo(List<AdamThirdPartInfoVo> thirdPartInfo) {
// this.thirdPartInfo = thirdPartInfo;
// }
//
// public AdamMemberSimpleVo getMemberVo() {
// return memberVo;
// }
//
// public void setMemberVo(AdamMemberSimpleVo memberVo) {
// this.memberVo = memberVo;
// }
public AdamUserMemberVo getUserMemberVo() {
return userMemberVo;
......@@ -102,8 +102,24 @@ public class AdamLoginInfoVo implements Serializable, Cloneable {
}
}
/**
* 脱敏处理
*
* @param reviewUserInfo 审核中开关配置
* @return AdamLoginInfoVo
*/
public AdamLoginInfoVo desensitize(Boolean reviewUserInfo) {
this.userInfo.desensitize(reviewUserInfo);
return this;
}
/**
* 身份识别
*
* @return AdamLoginInfoVo
*/
public AdamLoginInfoVo finalRating() {
this.userInfo.rating(this.userMemberVo);
return this;
}
}
......@@ -10,10 +10,12 @@ import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@ApiModel(value = "AdamMemberCodeAdminVo", description = "会员码兑换")
@ApiModel(value = "AdamMemberCodeVo", description = "会员兑换码")
@Data
public class AdamMemberCodeVo implements Serializable, Cloneable {
private static final long serialVersionUID = -2822442493419088086L;
@ApiModelProperty(position = 0, value = "会员码批次号")
private String batchNo;
@ApiModelProperty(position = 0, value = "会员码")
private String code;
@ApiModelProperty(position = 1, value = "会员类型id")
......@@ -24,26 +26,37 @@ public class AdamMemberCodeVo implements Serializable, Cloneable {
private Integer type;
@ApiModelProperty(position = 4, value = "会员编号")
private String memberNo;
@ApiModelProperty(position = 5, value = "状态:0-未使用,1-已使用,2-不可用")
@ApiModelProperty(position = 5, value = "状态[0-可用|1-已用|2-无效|3-过期|4-失效|5-退回]")
private Integer state;
@ApiModelProperty(position = 6, value = "购买会员码的订单编号")
@ApiModelProperty(position = 6, value = "有效期(单位天)")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private Integer validity;
@ApiModelProperty(position = 7, value = "生效时间")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime effectAt;
@ApiModelProperty(position = 8, value = "失效时间")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime expireAt;
@ApiModelProperty(position = 9, value = "操作人")
private String operator;
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime createdAt;
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime updatedAt;
@ApiModelProperty(position = 11, value = "购买会员码的订单编号")
private String buyOrderNo;
@ApiModelProperty(position = 7, value = "购买会员码的用户id")
@ApiModelProperty(position = 12, value = "购买会员码的用户id")
private String buyUid;
@ApiModelProperty(position = 8, value = "购买时间")
@ApiModelProperty(position = 13, value = "购买时间")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime buyAt;
@ApiModelProperty(position = 9, value = "使用会员码的订单编号")
@ApiModelProperty(position = 14, value = "使用会员码的订单编号")
private String useOrderNo;
@ApiModelProperty(position = 10, value = "使用会员码的用户id")
@ApiModelProperty(position = 15, value = "使用会员码的用户id")
private String useUid;
@ApiModelProperty(position = 11, value = "使用时间")
@ApiModelProperty(position = 16, value = "使用时间")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime useAt;
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime createdAt;
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime updatedAt;
private static final AdamMemberCodeVo obj = new AdamMemberCodeVo();
......@@ -63,14 +76,17 @@ public class AdamMemberCodeVo implements Serializable, Cloneable {
this.setType(source.getType());
this.setMemberNo(source.getMemberNo());
this.setState(source.getState());
this.setValidity(source.getValidity());
this.setEffectAt(source.getEffectAt());
this.setExpireAt(source.getExpireAt());
this.setCreatedAt(source.getCreatedAt());
this.setUpdatedAt(source.getUpdatedAt());
this.setBuyOrderNo(source.getBuyOrderNo());
this.setBuyUid(source.getBuyUid());
this.setBuyAt(source.getBuyAt());
this.setUseOrderNo(source.getUseOrderNo());
this.setUseUid(source.getUseUid());
this.setUseAt(source.getUseAt());
this.setCreatedAt(source.getCreatedAt());
this.setUpdatedAt(source.getUpdatedAt());
return this;
}
}
......@@ -20,6 +20,10 @@ public class AdamMemberOrderPreviewVo implements Serializable {
private AdamRealInfoVo realInfoVo;
@ApiModelProperty(position = 14, value = "生日")
private String birthday;
@ApiModelProperty(position = 15, value = "常住地/区域[100]", example = "北京 北京市 朝阳区")
private String area;
@ApiModelProperty(position = 20, value = "标记[0-普通用户|2-过期会员|10-老会员|11-新会员]")
private Integer stageMarker;
private static final AdamMemberOrderPreviewVo obj = new AdamMemberOrderPreviewVo();
......
......@@ -36,33 +36,37 @@ public class AdamMemberOrderVo implements Serializable, Cloneable {
private String memberNo;
@ApiModelProperty(position = 9, value = "会员生日[yyyy-MM-dd]")
private String birthday;
@ApiModelProperty(position = 10, value = "支付终端", allowableValues = "app,wap,js,applet")
@ApiModelProperty(position = 10, value = "地区")
private String area;
@ApiModelProperty(position = 11, value = "支付终端", allowableValues = "app,wap,js,applet")
private String deviceFrom;
@ApiModelProperty(position = 11, value = "支付方式", allowableValues = "alipay,wepay")
@ApiModelProperty(position = 12, value = "支付方式", allowableValues = "alipay,wepay")
private String payType;
@ApiModelProperty(position = 12, value = "支付单号")
@ApiModelProperty(position = 13, value = "支付中心支付CODE")
private String payNo;
@ApiModelProperty(position = 13, value = "支付时间")
@ApiModelProperty(position = 14, value = "支付中心三方支付ID")
private String paymentId;
@ApiModelProperty(position = 15, value = "支付时间")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime paymentAt;
@ApiModelProperty(position = 14, value = "创建时间")
@ApiModelProperty(position = 16, value = "创建时间")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime createdAt;
@ApiModelProperty(position = 15, value = "创建时间")
@ApiModelProperty(position = 17, value = "创建时间")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime updatedAt;
@ApiModelProperty(position = 16, value = "价格")
@ApiModelProperty(position = 18, value = "价格")
private BigDecimal price;
@ApiModelProperty(position = 17, value = "实付价格")
@ApiModelProperty(position = 19, value = "实付价格")
private BigDecimal pricePaid;
@ApiModelProperty(position = 18, value = "客户端IP")
@ApiModelProperty(position = 20, value = "客户端IP")
private String clientIp;
@ApiModelProperty(position = 19, value = "客户端来源")
@ApiModelProperty(position = 21, value = "客户端来源")
private String source;
@ApiModelProperty(position = 20, value = "客户端版本")
@ApiModelProperty(position = 22, value = "客户端版本")
private String version;
@ApiModelProperty(position = 21, value = "会员订单扩展信息")
@ApiModelProperty(position = 25, value = "会员订单扩展信息")
private AdamMemberOrderExtVo extendVo;
@ApiModelProperty(position = 30, value = "会员须知")
......
......@@ -20,22 +20,24 @@ public class AdamMemberPriceVo implements Serializable {
private String memberPriceId;
@ApiModelProperty(position = 2, value = "会员类型ID")
private String memberId;
@ApiModelProperty(position = 3, value = "价格状态[0-不可用,1-上线中,2-已下线]")
private Integer state;
// @ApiModelProperty(position = 3, value = "价格状态[0-不可用,1-上线中,2-已下线]")
// private Integer state;
@ApiModelProperty(position = 4, value = "价格包名称")
private String name;
@ApiModelProperty(position = 5, value = "原价")
private BigDecimal price;
@ApiModelProperty(position = 6, value = "折扣价")
@ApiModelProperty(position = 6, value = "折扣价:购买价格")
private BigDecimal priceFixed;
@ApiModelProperty(position = 7, value = "有效天数")
@ApiModelProperty(position = 7, value = "特价:首次、首年优惠价")
private BigDecimal priceSpecial;
@ApiModelProperty(position = 8, value = "有效天数")
private Integer days;
@ApiModelProperty(position = 8, value = "会员包须知")
private String detail;
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime createdAt;
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime updatedAt;
// @ApiModelProperty(position = 8, value = "会员包须知")
// private String detail;
// @JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
// private LocalDateTime createdAt;
// @JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
// private LocalDateTime updatedAt;
private static final AdamMemberPriceVo obj = new AdamMemberPriceVo();
......@@ -51,14 +53,15 @@ public class AdamMemberPriceVo implements Serializable {
if (null == source) return this;
this.setMemberPriceId(source.getMemberPriceId());
this.setMemberId(source.getMemberId());
this.setState(source.getState());
// this.setState(source.getState());
this.setName(source.getName());
this.setPrice(source.getPrice());
this.setPriceFixed(source.getPriceFixed());
this.setPriceSpecial(source.getPriceSpecial());
this.setDays(source.getDays());
this.setDetail(source.getDetail());
this.setCreatedAt(source.getCreatedAt());
this.setUpdatedAt(source.getUpdatedAt());
// this.setDetail(source.getDetail());
// this.setCreatedAt(source.getCreatedAt());
// this.setUpdatedAt(source.getUpdatedAt());
return this;
}
}
package com.liquidnet.service.adam.dto.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@ApiModel(value = "AdamMemberRightsCouponRuleVo", description = "会员权益券适用规则")
@Data
public class AdamMemberRightsCouponRuleVo implements Serializable, Cloneable {
private static final long serialVersionUID = 4282440130223655255L;
@ApiModelProperty(value = "适用范围[100-全场|90-演出|91-场次|92-票|80-商品|81-款式]", example = "90")
private Integer useScope;
@ApiModelProperty(value = "适用名称", example = "北京草莓")
private String busiName;
@ApiModelProperty(value = "适用ID", example = "1")
private String busiId;
private static final AdamMemberRightsCouponRuleVo obj = new AdamMemberRightsCouponRuleVo();
public static AdamMemberRightsCouponRuleVo getNew() {
try {
return (AdamMemberRightsCouponRuleVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new AdamMemberRightsCouponRuleVo();
}
}
}
package com.liquidnet.service.adam.dto.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@ApiModel(value = "AdamMemberRightsCouponVo", description = "会员专享特权券")
@Data
public class AdamMemberRightsCouponVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = 4099907681723174194L;
@ApiModelProperty(position = 1, value = "权益ID")
private String mrightsId;
@ApiModelProperty(position = 2, value = "券ID")
private String couponId;
@ApiModelProperty(position = 3, value = "券类别[0-全场|1-演出|2-商品|3-优先购]")
private Integer busiType;
@ApiModelProperty(position = 4, value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券|101-优先券]")
private Integer couType;
@ApiModelProperty(position = 5, value = "券标题")
private String title;
@ApiModelProperty(position = 6, value = "券标注")
private String label;
@ApiModelProperty(position = 7, value = "注意/须知")
private String notice;
@ApiModelProperty(position = 8, value = "券面值")
private BigDecimal valFace;
@ApiModelProperty(position = 9, value = "满减~满")
private BigDecimal valOver;
@ApiModelProperty(position = 10, value = "满减~减")
private BigDecimal valMinus;
/* com.liquidnet.service.adam.dto.vo.AdamMemberRightsCouponRuleVo */
private List<AdamMemberRightsCouponRuleVo> useRules;
private static final AdamMemberRightsCouponVo obj = new AdamMemberRightsCouponVo();
public static AdamMemberRightsCouponVo getNew() {
try {
return (AdamMemberRightsCouponVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new AdamMemberRightsCouponVo();
}
}
}
package com.liquidnet.service.adam.dto.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
@ApiModel(value = "AdamMemberRightsVo", description = "会员权益详情")
public class AdamMemberRightsDetailVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = -2407106925001008460L;
@ApiModelProperty(position = 1, value = "权益信息")
private AdamMemberRightsVo rightsVo;
@ApiModelProperty(position = 11, value = "专享券列表")
private List<AdamMemberRightsCouponVo> couponVoList;
public AdamMemberRightsVo getRightsVo() {
return rightsVo;
}
public AdamMemberRightsDetailVo setRightsVo(AdamMemberRightsVo rightsVo) {
this.rightsVo = rightsVo;
return this;
}
public List<AdamMemberRightsCouponVo> getCouponVoList() {
return couponVoList;
}
public AdamMemberRightsDetailVo setCouponVoList(List<AdamMemberRightsCouponVo> couponVoList) {
this.couponVoList = couponVoList;
return this;
}
private static final AdamMemberRightsDetailVo obj = new AdamMemberRightsDetailVo();
public static AdamMemberRightsDetailVo getNew() {
try {
return (AdamMemberRightsDetailVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new AdamMemberRightsDetailVo();
}
}
}
package com.liquidnet.service.adam.dto.vo;
import com.liquidnet.service.adam.entity.AdamMemberRights;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Arrays;
import java.util.List;
@ApiModel(value = "AdamMemberRightsVo", description = "会员")
@Data
public class AdamMemberRightsVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = -2407106925001008460L;
@ApiModelProperty(position = 0, value = "权益封面[255]")
@ApiModelProperty(position = 1, value = "权益ID")
private String mrightsId;
@ApiModelProperty(position = 2, value = "排列序号")
private Integer seqNo;
@ApiModelProperty(position = 3, value = "权益标题")
private String title;
@ApiModelProperty(position = 4, value = "副标题")
private String subTitle;
@ApiModelProperty(position = 5, value = "标注")
private String label;
@ApiModelProperty(position = 6, value = "图片标识")
private String cover;
@ApiModelProperty(position = 1, value = "权益名称[10]")
private String name;
@ApiModelProperty(position = 2, value = "展示顺序[2]")
private Integer sort;
@ApiModelProperty(position = 7, value = "详情内容")
private String detail;
private static final AdamMemberRightsVo obj = new AdamMemberRightsVo();
public AdamMemberRightsVo setSeqNo(Integer seqNo) {
this.seqNo = seqNo;
return this;
}
public static AdamMemberRightsVo getNew() {
try {
return (AdamMemberRightsVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new AdamMemberRightsVo();
public AdamMemberRightsVo setTitle(String title) {
this.title = title;
return this;
}
public AdamMemberRightsVo setCover(String cover) {
......@@ -34,13 +39,25 @@ public class AdamMemberRightsVo implements java.io.Serializable, Cloneable {
return this;
}
public AdamMemberRightsVo setName(String name) {
this.name = name;
return this;
private static final AdamMemberRightsVo obj = new AdamMemberRightsVo();
public static AdamMemberRightsVo getNew() {
try {
return (AdamMemberRightsVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new AdamMemberRightsVo();
}
}
public AdamMemberRightsVo setSort(Integer sort) {
this.sort = sort;
public AdamMemberRightsVo copy(AdamMemberRights source) {
if (null == source) return this;
this.setMrightsId(source.getMrightsId());
this.setSeqNo(source.getSeqNo());
this.setTitle(source.getTitle());
this.setSubTitle(source.getSubTitle());
this.setLabel(source.getLabel());
this.setCover(source.getCover());
this.setDetail(source.getDetail());
return this;
}
}
......@@ -32,7 +32,7 @@ public class AdamMemberSimpleVo implements Serializable, Cloneable {
}
public AdamMemberSimpleVo copy(AdamMemberVo source) {
if (null == this) return this;
if (null == source) return this;
this.setMemberId(source.getMemberId());
this.setName(source.getName());
this.setTitle(source.getTitle());
......
package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.adam.entity.AdamMember;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
@ApiModel(value = "AdamMemberVo", description = "会员")
......@@ -41,10 +45,20 @@ public class AdamMemberVo implements java.io.Serializable, Cloneable {
private Integer needQuestion;
@ApiModelProperty(position = 12, value = "是否展示协议[200]", example = "0")
private Integer displayAgreement;
@ApiModelProperty(position = 13, value = "状态[1-NORMAL,2-INVALID]")
@ApiModelProperty(position = 13, value = "状态[1-NORMAL,2-INVALID]", example = "1")
private Integer state;
@ApiModelProperty(position = 14, value = "限购数量,0不限购[200]", example = "0")
@ApiModelProperty(position = 14, value = "积分倍率", example = "2.00")
private BigDecimal integralRate;
@ApiModelProperty(position = 15, value = "是否开售:1-开售|2-停售", example = "1")
private Integer onsale;
@ApiModelProperty(position = 16, value = "限购数量[0-不限购]", example = "0")
private Integer limitation;
@ApiModelProperty(position = 17, value = "限购开始时间", example = "2021-08-02 00:00:00")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime limitbAt;
@ApiModelProperty(position = 18, value = "限购结束时间", example = "2021-09-02 00:00:00")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime limiteAt;
@ApiModelProperty(position = 20, value = "会员卡价格信息")
private List<AdamMemberPriceVo> priceVoList;
......@@ -52,8 +66,53 @@ public class AdamMemberVo implements java.io.Serializable, Cloneable {
private List<AdamMemberRightsVo> rightsVoList;
@ApiModelProperty(position = 22, value = "用户会员信息")
private AdamUserMemberVo userMemberVo;
@ApiModelProperty(position = 23, value = "购买会员限制[0-名额已满|1-允许购买]")
private Integer buySwitch;
@ApiModelProperty(position = 23, value = "购买会员限购[0-名额已满|1-允许购买|2-限购未开始]")
private Integer limitMarker;
@ApiModelProperty(position = 24, value = "标记[0-普通用户|2-过期会员|10-老会员|11-新会员]")
private Integer stageMarker;
public void setUserMemberVo(AdamUserMemberVo userMemberVo) {
this.userMemberVo = userMemberVo;
this.rating(userMemberVo);
}
private AdamMemberVo rating(AdamUserMemberVo userMemberVo) {
if (null == userMemberVo) {
this.setStageMarker(0);
} else if (userMemberVo.isActive()) {
this.setStageMarker(userMemberVo.isOldMember() ? 10 : 11);
} else {
this.setStageMarker(2);
}
return this;
}
public Integer getOnsale() {
return null == onsale ? 1 : onsale;
}
/**
* 购买会员限购[0-名额已满|1-允许购买|2-限购未开始]
*
* @param maxMemberLimitation 当前系统限购已购数量
* @return [0-名额已满|1-允许购买]
*/
public Integer calculateLimitMarker(int maxMemberLimitation) {
if (null != this.limitation && this.limitation > 0) {// 限购
if (maxMemberLimitation >= limitation) {// 名额已满
this.setLimitMarker(0);
} else if (null != this.limitbAt && null != this.limiteAt) {// 限购时间判断
LocalDateTime now = LocalDateTime.now();
boolean isBetweenLimitTime = now.isAfter(this.limitbAt) && now.isBefore(this.limiteAt);
this.setLimitMarker(isBetweenLimitTime ? 1 : 2);
} else {
this.setLimitMarker(1);
}
} else {// 不限购
this.setLimitMarker(1);
}
return this.limitMarker;
}
private static final AdamMemberVo obj = new AdamMemberVo();
......@@ -84,7 +143,11 @@ public class AdamMemberVo implements java.io.Serializable, Cloneable {
this.setNeedQuestion(source.getNeedQuestion());
this.setDisplayAgreement(source.getDisplayAgreement());
this.setState(source.getState());
this.setIntegralRate(source.getIntegralRate());
this.setOnsale(source.getOnsale());
this.setLimitation(source.getLimitation());
this.setLimitbAt(source.getLimitbAt());
this.setLimiteAt(source.getLimiteAt());
return this;
}
}
......@@ -6,7 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.List;
@ApiModel(value = "AdamTagParentVo", description = "父级标签库")
@ApiModel(value = "AdamTagParentVo", description = "标签库")
public class AdamTagParentVo implements Serializable, Cloneable {
private static final long serialVersionUID = -7965840594354555093L;
@ApiModelProperty(position = 11, value = "标签Key")
......@@ -14,7 +14,7 @@ public class AdamTagParentVo implements Serializable, Cloneable {
@ApiModelProperty(position = 12, value = "标签名称")
private String desc;
@ApiModelProperty(position = 13, value = "子标签列表")
private List<AdamTagVo> tagVos;
private List<AdamTagParentVo> tagVos;
private static final AdamTagParentVo obj = new AdamTagParentVo();
......@@ -22,9 +22,8 @@ public class AdamTagParentVo implements Serializable, Cloneable {
try {
return (AdamTagParentVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
return new AdamTagParentVo();
}
return new AdamTagParentVo();
}
public String getVal() {
......@@ -45,11 +44,11 @@ public class AdamTagParentVo implements Serializable, Cloneable {
return this;
}
public List<AdamTagVo> getTagVos() {
public List<AdamTagParentVo> getTagVos() {
return tagVos;
}
public AdamTagParentVo setTagVos(List<AdamTagVo> tagVos) {
public AdamTagParentVo setTagVos(List<AdamTagParentVo> tagVos) {
this.tagVos = tagVos;
return this;
}
......
......@@ -54,12 +54,14 @@ public class AdamUserInfoVo implements java.io.Serializable, Cloneable {
@ApiModelProperty(position = 25, value = "注销时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime closedAt;
@ApiModelProperty(position = 26, value = "完善信息进度[0-未完善,1-已完善]")
@ApiModelProperty(position = 26, value = "完善信息进度[0-未完善,1-已完善,11-已完善且注册IM]")
private Integer isComplete;
@ApiModelProperty(position = 27, value = "")
private String rongCloudToken;
@ApiModelProperty(position = 28, value = "身份二维码")
private String qrCode;
@ApiModelProperty(position = 30, value = "标记[0-普通用户|2-过期会员|10-老会员|11-新会员]")
private Integer stageMarker;
private static final AdamUserInfoVo obj = new AdamUserInfoVo();
......@@ -137,4 +139,15 @@ public class AdamUserInfoVo implements java.io.Serializable, Cloneable {
return this;
}
}
public AdamUserInfoVo rating(AdamUserMemberVo userMemberVo) {
if (null == userMemberVo) {
this.setStageMarker(0);
} else if (userMemberVo.isActive()) {
this.setStageMarker(userMemberVo.isOldMember() ? 10 : 11);
} else {
this.setStageMarker(2);
}
return this;
}
}
\ No newline at end of file
......@@ -10,6 +10,7 @@ import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@ApiModel(value = "AdamUserMemberVo", description = "会员用户信息")
@Data
......@@ -33,6 +34,7 @@ public class AdamUserMemberVo implements Serializable, Cloneable {
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime updatedAt;
private static final LocalDateTime oldMemberSpotTime = LocalDateTime.parse("2021-12-31 23:59:59", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
private static final AdamUserMemberVo obj = new AdamUserMemberVo();
public static AdamUserMemberVo getNew() {
......@@ -65,4 +67,20 @@ public class AdamUserMemberVo implements Serializable, Cloneable {
LocalDateTime expiryAt = this.getExpiryAt();
return this.getState() == 1 && null != expiryAt && expiryAt.isAfter(LocalDateTime.now());
}
}
/**
* 是否为老会员
* <p>
* 实际使用中需结合isActive()判断
* </p>
*
* @return true-是
*/
@JsonIgnore
public boolean isOldMember() {
LocalDateTime createdAt = this.getCreatedAt();
LocalDateTime updatedAt = this.getUpdatedAt();
// 创建时间在`指定时间`之前,且(更新时间为空或更新时间在`指定时间`之前)
return createdAt.isBefore(oldMemberSpotTime) && (null == updatedAt || (updatedAt.isBefore(oldMemberSpotTime)));
}
}
\ No newline at end of file
......@@ -16,22 +16,26 @@ public interface IAdamMemberOrderService {
* 购买会员或会员码
*
* @param uid
* @param param
* @param param AdamMemberOrderParam
* @return ResponseDto<AdamMemberOrderResult>
*/
ResponseDto<AdamMemberOrderResult> buyMemberOrMemberCode(String uid, AdamMemberOrderParam param);
/**
* 支付回调
*
* @return
*/
ResponseDto<Object> paymentNotifyCallBack(AdamMemberOrderCallbackParam parameter);
/**
* 使用会员码
* @param param
* @return
*
* @param uid
* @param param AdamMemberOrderCodeParam
* @return ResponseDto<AdamMemberOrderResult>
*/
ResponseDto<AdamMemberOrderResult> exchangeMemberCode(AdamMemberOrderCodeParam param);
ResponseDto<AdamMemberOrderResult> exchangeMemberCode(String uid, AdamMemberOrderCodeParam param);
/**
* 查取会员订单列表
......
package com.liquidnet.service.adam.service;
import com.liquidnet.service.adam.dto.AdamUserInfoParam;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.base.ResponseDto;
/**
* <p>
......@@ -12,7 +14,7 @@ import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
*/
public interface IAdamUserInfoService {
void edit(AdamUserInfoVo userInfoVo);
ResponseDto<AdamUserInfoVo> edit(AdamUserInfoVo existUserInfoVo, AdamUserInfoParam parameter);
String editMobile(String uid, String mobile);
}
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>liquidnet-bus-api</artifactId>
<groupId>com.liquidnet</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>liquidnet-service-candy-api</artifactId>
<dependencies>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-service-candy-do</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.liquidnet.service.candy.constant;
public class CandyRedisConst {
public static final String PREFIX = "candy:";
/**
* <key>
* candy:basic:coupon_info:${coupon_id}
* </key>
* <value>
* com.liquidnet.service.candy.dto.CandyCouponInfoDto
* </value>
*/
public static final String BASIC_COUPON_INFO = PREFIX.concat("basic:coupon_info:");
/**
* <key>
* candy:basic:coupon_code:${ccode}
* </key>
* <value>
* com.liquidnet.service.candy.dto.CandyCouponCodeDto
* </value>
*/
public static final String BASIC_COUPON_CODE = PREFIX.concat("basic:coupon_code:");
/**
* <key>
* candy:basic:user_coupon:${uid}
* </key>
* <value>
* List<com.liquidnet.service.candy.dto.CandyUserCouponBasicDto>
* </value>
*/
public static final String BASIC_USER_COUPON = PREFIX.concat("basic:user_coupon:");
/**
* <key>
* candy:basic:common_coupon
* </key>
* <value>
* List<com.liquidnet.service.candy.dto.CandyCommonCouponBasicDto>
* </value>
*/
public static final String BASIC_COMMON_COUPON = PREFIX.concat("basic:common_coupon");
}
package com.liquidnet.service.candy.dto.admin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Pattern;
@ApiModel(value = "CandyCouponRuleBuildParam", description = "添加券规则入参")
public class CandyCouponRuleBuildParam {
@Pattern(regexp = "\\b(100|90|91|92|80|81)\\b", message = "适用范围无效")
@ApiModelProperty(required = true, value = "适用范围[100-全场|90-演出|91-场次|92-票|80-商品|81-款式]", allowableValues = "100,90,91,92,80,81")
private Integer useScope;
@ApiModelProperty(required = true, value = "适用名称", allowableValues = "适用名称")
private String busiName;
@ApiModelProperty(required = false, value = "适用ID", allowableValues = "适用ID")
private String busiId;
@ApiModelProperty(required = false, value = "备注", allowableValues = "备注")
private String commment;
public Integer getUseScope() {
return useScope;
}
public CandyCouponRuleBuildParam setUseScope(Integer useScope) {
this.useScope = useScope;
return this;
}
public String getBusiName() {
return busiName;
}
public CandyCouponRuleBuildParam setBusiName(String busiName) {
this.busiName = busiName;
return this;
}
public String getBusiId() {
return busiId;
}
public CandyCouponRuleBuildParam setBusiId(String busiId) {
this.busiId = busiId;
return this;
}
public String getCommment() {
return commment;
}
public CandyCouponRuleBuildParam setCommment(String commment) {
this.commment = commment;
return this;
}
private static final CandyCouponRuleBuildParam obj = new CandyCouponRuleBuildParam();
public static CandyCouponRuleBuildParam getNew() {
try {
return (CandyCouponRuleBuildParam) obj.clone();
} catch (CloneNotSupportedException e) {
return new CandyCouponRuleBuildParam();
}
}
}
package com.liquidnet.service.candy.dto.admin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.*;
import java.math.BigDecimal;
import java.util.List;
@ApiModel(value = "CandyMemberCouponBuildParam", description = "新建|编辑券入参")
@Data
public class CandyMemberCouponBuildParam {
@ApiModelProperty(required = true, value = "会员类型ID[64]", example = "1")
@NotBlank(message = "会员类型ID不能为空")
private String memberId;
@ApiModelProperty(required = true, value = "权益ID[64]")
@NotBlank(message = "会员权益ID不能为空")
private String mrightsId;
@ApiModelProperty(required = false, value = "券ID", example = "券ID")
private String couponId;
@ApiModelProperty(required = true, value = "权益状态[1-有效|2-无效]")
@NotNull(message = "券状态不能为空")
private Integer state;
@NotBlank(message = "券标题不能为空")
@ApiModelProperty(required = true, value = "券标题", example = "券标题")
private String title;
@NotBlank(message = "券标注不能为空")
@ApiModelProperty(required = true, value = "标注", example = "标注")
private String label;
// @NotBlank(message = "券描述不能为空")
// @ApiModelProperty(required = true, value = "描述:注意/须知", example = "注意/须知")
// private String notice;
//private Integer exclusive;
@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-满减券|101-优先券]", allowableValues = "1,2,101")
private Integer couType;
// @NotNull(message = "券领取方式不能为空")
// @ApiModelProperty(required = true, value = "领取方式[0-用户输入兑换|1-发放至用户]", allowableValues = "0,1")
// private Integer bindType;
// @ApiModelProperty(required = false, value = "折扣[8折即0.8]", example = "0.8")
// private BigDecimal discount;
@ApiModelProperty(required = false, value = "面值", example = "0.01")
private BigDecimal valFace;
@ApiModelProperty(required = false, value = "满减~满", example = "1.00")
private BigDecimal valOver;
@ApiModelProperty(required = false, value = "满减~减", example = "0.01")
private BigDecimal valMinus;
@NotNull(message = "券叠加限制不能为空")
@ApiModelProperty(required = false, value = "叠加限制[0-限制|1-叠加]", allowableValues = "0,1")
private Integer overlay;
//private Integer overlayLevel;
// @NotNull(message = "券有效期不能为空")
// @ApiModelProperty(required = true, value = "有效期(单位天)", example = "30")
// private Integer validity;
// @ApiModelProperty(required = false, value = "兑换有效期(单位天)", example = "30")
// private Integer redeemValidity;
//private LocalDateTime redeemStart;
//private LocalDateTime redeemStop;
//private LocalDateTime effectAt;
//private LocalDateTime expireAt;
//private String operator;
//private Date createdAt;
//private Date updatedAt;
//private String comment;
@ApiModelProperty(required = true, value = "适用范围列表", dataType = "List", example = "[{\"useScope\": 100,\"busiName\": \"适用名称1\",\"busiId\": \"IDIDIDIDIDIDID1\"},{\"useScope\": 100,\"busiName\": \"适用名称2\",\"busiId\": \"IDIDIDIDIDIDID2\"}]")
private List<CandyCouponRuleBuildParam> couponRuleList;
//private String mcouponId;
//private String couponId;
//private Integer state;
@NotNull(message = "券发放量不能为空")
@Max(value = 10, message = "发放量不满足1~10范围")
@Min(value = 1, message = "发放量不满足1~10范围")
@ApiModelProperty(required = true, value = "发放量", example = "1")
private Integer eventAmt;
// @NotNull(message = "券发放类型不能为空")
// @ApiModelProperty(required = true, value = "发放类型[1-会员|2-手机号|3-UID|10-全体用户]", allowableValues = "1,2,10")
// private Integer eventType;
// @ApiModelProperty(required = false, value = "`发放类型`为2-手机号时发放手机号以,分隔", example = "17701223310,17701223310")
// private String eventLimit;
// @NotNull(message = "券发放时间不能为空")
// @ApiModelProperty(required = true, value = "发放时间[yyyy-MM-dd HH:mm:ss](立即-当前时间|预约-点选时间)", example = "2021-08-26 00:00:00")
// private String eventAt;
//private String operator;
//private LocalDateTime createdAt;
//private LocalDateTime updatedAt;
//private String comment;
}
package com.liquidnet.service.candy.dto.admin;
import com.liquidnet.commons.lang.constant.LnsRegex;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.*;
import java.math.BigDecimal;
import java.util.List;
@ApiModel(value = "CandyMgtCouponBuildParam", description = "新建券入参")
public class CandyMgtCouponBuildParam {
//private String couponId;
//private Integer state;
@NotBlank(message = "券标题不能为空")
@ApiModelProperty(required = true, value = "券标题", example = "券标题")
private String title;
@ApiModelProperty(required = false, value = "标注", example = "标注")
private String label;
@NotBlank(message = "券描述不能为空")
@ApiModelProperty(required = true, value = "描述:注意/须知", example = "注意/须知")
private String notice;
//private Integer exclusive;
@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")
private Integer couType;
@NotNull(message = "券领取方式不能为空")
@ApiModelProperty(required = true, value = "领取方式[0-用户输入兑换|1-发放至用户]", allowableValues = "0,1")
private Integer bindType;
@ApiModelProperty(required = false, value = "折扣[8折即0.8]", example = "0.8")
private BigDecimal discount;
@ApiModelProperty(required = false, value = "面值", example = "0.01")
private BigDecimal valFace;
@ApiModelProperty(required = false, value = "满减~满", example = "1.00")
private BigDecimal valOver;
@ApiModelProperty(required = false, value = "满减~减", example = "0.01")
private BigDecimal valMinus;
@ApiModelProperty(required = false, value = "叠加限制[0-限制|1-叠加]", allowableValues = "0,1")
@Min(value = 0, message = "叠加限制配置无效")
@Max(value = 1, message = "叠加限制配置无效")
private Integer overlay;
//private Integer overlayLevel;
@NotNull(message = "券有效期不能为空")
@Min(value = 1, message = "有效期不能小于1")
@ApiModelProperty(required = true, value = "有效期(单位天)", example = "30")
private Integer validity;
@Min(value = 1, message = "兑换有效期不能小于1")
@ApiModelProperty(required = false, value = "兑换有效期(单位天)", example = "30")
private Integer redeemValidity;
//private LocalDateTime redeemStart;
//private LocalDateTime redeemStop;
//private LocalDateTime effectAt;
//private LocalDateTime expireAt;
//private String operator;
//private Date createdAt;
//private Date updatedAt;
//private String comment;
@ApiModelProperty(required = true, value = "适用范围列表", dataType = "List", example = "[{\"useScope\": 100,\"busiName\": \"适用名称1\",\"busiId\": \"IDIDIDIDIDIDID1\"},{\"useScope\": 100,\"busiName\": \"适用名称2\",\"busiId\": \"IDIDIDIDIDIDID2\"}]")
private List<CandyCouponRuleBuildParam> couponRuleList;
@ApiModelProperty(required = false, value = "发放ID", example = "1")
private String mcouponId;
// private String couponId;
//private Integer state;
@NotNull(message = "券发放量不能为空")
@Min(value = 1, message = "发放量不能小于1")
@ApiModelProperty(required = true, value = "发放量", example = "1")
private Integer eventAmt;
@ApiModelProperty(required = false, value = "发放类型[0-保留|1-会员|2-手机号|10-全体用户]", allowableValues = "0,1,2,10")
private Integer eventType;
@ApiModelProperty(required = false, value = "`发放类型`为2-手机号时发放手机号以,分隔", example = "18510957291,17701223310")
private String eventLimit;
@Pattern(regexp = LnsRegex.Valid.DATETIME_FULL, message = "发放时间格式有误")
@ApiModelProperty(required = true, value = "发放时间[yyyy-MM-dd HH:mm:ss](立即-当前时间|预约-点选时间)", example = "2021-08-26 00:00:00")
private String eventAt;
//private String operator;
//private LocalDateTime createdAt;
//private LocalDateTime updatedAt;
//private String comment;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public String getNotice() {
return notice;
}
public void setNotice(String notice) {
this.notice = notice;
}
public Integer getBusiType() {
return busiType;
}
public void setBusiType(Integer busiType) {
this.busiType = busiType;
}
public Integer getCouType() {
return couType;
}
public void setCouType(Integer couType) {
this.couType = couType;
}
public Integer getBindType() {
return bindType;
}
public void setBindType(Integer bindType) {
this.bindType = bindType;
}
public BigDecimal getDiscount() {
return discount;
}
public void setDiscount(BigDecimal discount) {
this.discount = discount;
}
public BigDecimal getValFace() {
return valFace;
}
public void setValFace(BigDecimal valFace) {
this.valFace = valFace;
}
public BigDecimal getValOver() {
return valOver;
}
public void setValOver(BigDecimal valOver) {
this.valOver = valOver;
}
public BigDecimal getValMinus() {
return valMinus;
}
public void setValMinus(BigDecimal valMinus) {
this.valMinus = valMinus;
}
public Integer getOverlay() {
return overlay;
}
public void setOverlay(Integer overlay) {
this.overlay = overlay;
}
public Integer getValidity() {
return validity;
}
public void setValidity(Integer validity) {
this.validity = validity;
}
public Integer getRedeemValidity() {
return redeemValidity;
}
public void setRedeemValidity(Integer redeemValidity) {
this.redeemValidity = redeemValidity;
}
public List<CandyCouponRuleBuildParam> getCouponRuleList() {
return couponRuleList;
}
public void setCouponRuleList(List<CandyCouponRuleBuildParam> couponRuleList) {
this.couponRuleList = couponRuleList;
}
public String getMcouponId() {
return mcouponId;
}
public void setMcouponId(String mcouponId) {
this.mcouponId = mcouponId;
}
public Integer getEventAmt() {
return eventAmt;
}
public void setEventAmt(Integer eventAmt) {
this.eventAmt = eventAmt;
}
public Integer getEventType() {
return eventType;
}
public void setEventType(Integer eventType) {
this.eventType = eventType;
}
public String getEventLimit() {
return eventLimit;
}
public void setEventLimit(String eventLimit) {
this.eventLimit = eventLimit;
}
public String getEventAt() {
return eventAt;
}
public void setEventAt(String eventAt) {
this.eventAt = eventAt;
}
}
package com.liquidnet.service.candy.param;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Api
public class BackCouponParam implements Serializable, Cloneable {
@ApiModelProperty(dataType = "String", name = "uCouponIds", value = "券唯一表示id(逗号隔开的字符串)",example = "1",required = true)
@NotNull @NotBlank
private String uCouponIds;
@ApiModelProperty(dataType = "String", name = "uid", value = "用户id",example = "10",required = true)
@NotNull @NotBlank
private String uid;
private static final BackCouponParam obj = new BackCouponParam();
public static BackCouponParam getNew() {
try {
return (BackCouponParam) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new BackCouponParam();
}
public String getuCouponIds() {
return uCouponIds;
}
public void setuCouponIds(String uCouponIds) {
this.uCouponIds = uCouponIds;
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
}
package com.liquidnet.service.candy.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.candy.entity.CandyCouponCode;
/**
* <p>
* 券码信息 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-18
*/
public interface ICandyCouponCodeService {
}
package com.liquidnet.service.candy.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.candy.entity.CandyCouponRule;
/**
* <p>
* 券适用规则 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-18
*/
public interface ICandyCouponRuleService {
}
package com.liquidnet.service.candy.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.candy.entity.CandyCoupon;
import com.liquidnet.service.candy.param.BackCouponParam;
import com.liquidnet.service.candy.vo.CandyCouponPreVo;
import com.liquidnet.service.candy.vo.CandyCouponVo;
import com.liquidnet.service.candy.vo.CandyMyCouponListVo;
import com.liquidnet.service.candy.vo.CandyUseResultVo;
import java.math.BigDecimal;
import java.util.List;
/**
* <p>
* 券基础信息 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-18
*/
public interface ICandyCouponService {
CandyMyCouponListVo myCoupon(Integer type);
List<CandyCouponPreVo> memberCouponPre(String uid);
List<CandyCouponVo> memberCoupon(String mCouponId);
CandyMyCouponListVo preUsePerformanceCoupon(BigDecimal priceTotal, String performanceId, String timeId, String ticketId, Integer type);
Integer preCanUsePerformanceCoupon(BigDecimal priceTotal, String performanceId, String timeId, String ticketId);
CandyMyCouponListVo preUseGoodCoupon(BigDecimal priceTotal, String goodId, Integer type);
Integer preCanUseGoodCoupon(BigDecimal priceTotal, String goodI);
List<CandyCouponVo> myAdvanceCoupon(String performanceId);
Integer stateCoupon(String uCouponId);
CandyUseResultVo useCoupon(String uCouponId, String content, String totalPrice, String performanceId, String timesId, String ticketId, String goodIds);
Boolean useBackCoupon(List<BackCouponParam> backCouponParam);
ResponseDto<String> receiveCoupon(String ccode);
ResponseDto<CandyCouponVo> receiveCouponDetails(String ccode);
ResponseDto<List<CandyCouponVo>> couponListById(String uCouponIds);
}
package com.liquidnet.service.candy.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.candy.entity.CandyMgtCoupon;
/**
* <p>
* 券发放管理 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-18
*/
public interface ICandyMgtCouponService {
}
package com.liquidnet.service.candy.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.candy.entity.CandyUserCoupon;
/**
* <p>
* 用户券信息 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-18
*/
public interface ICandyUserCouponService {
}
package com.liquidnet.service.candy.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
@ApiModel(value = "CandyCouponPreVo", description = "会员权益券统计")
public class CandyCouponPreVo implements Serializable, Cloneable {
private static final long serialVersionUID = 3741851732227825227L;
@ApiModelProperty(value = "权益ID", example = "权益ID")
private String mcouponId;
@ApiModelProperty(value = "当前可用券数量", example = "6")
private Long availableCt;
public String getMcouponId() {
return mcouponId;
}
public CandyCouponPreVo setMcouponId(String mcouponId) {
this.mcouponId = mcouponId;
return this;
}
public Long getAvailableCt() {
return availableCt;
}
public CandyCouponPreVo setAvailableCt(Long availableCt) {
this.availableCt = availableCt;
return this;
}
private static final CandyCouponPreVo obj = new CandyCouponPreVo();
public static CandyCouponPreVo getNew() {
try {
return (CandyCouponPreVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new CandyCouponPreVo();
}
}
}
package com.liquidnet.service.candy.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel
public class CandyCouponRulesVo implements Serializable,Cloneable {
private static final long serialVersionUID = 4073256621782131607L;
@ApiModelProperty(value = "适用范围[100-全场|90-演出|91-场次|92-票|80-商品|81-款式]",example = "90")
private Integer useScope;
@ApiModelProperty(value = "适用名称",example = "北京草莓")
private String busiName;
@ApiModelProperty(value = "适用ID",example = "1")
private String busiId;
private static final CandyCouponRulesVo obj = new CandyCouponRulesVo();
public static CandyCouponRulesVo getNew() {
try {
return (CandyCouponRulesVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new CandyCouponRulesVo();
}
}
package com.liquidnet.service.candy.vo;
import com.liquidnet.service.candy.dto.CandyCouponRuleDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.ObjectUtils;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
@Data
@ApiModel
public class CandyCouponVo implements Serializable, Cloneable {
private static final long serialVersionUID = 4073256621782131606L;
/* --- --- --- CandyCoupon */
@ApiModelProperty(value = "标题",example = "标题")
private String title;
@ApiModelProperty(value = "标注",example = "标注")
private String label;
@ApiModelProperty(value = "须知",example = "须知")
private String notice;
// private Integer exclusive;//专享标识[0-常规|1-会员礼包]
@ApiModelProperty(value = "业务类别[0-全场|1-演出|2-商品|3-优先购]",example = "0")
private Integer busiType;
@ApiModelProperty(value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券 | 101-优先券]",example = "1")
private Integer couType;
@ApiModelProperty(value = "[0-用户输入兑换|1-发放至用户]",example = "1")
private Integer bindType;
@ApiModelProperty(value = "折扣 可null",example = "0.5")
private BigDecimal discount;
@ApiModelProperty(value = "面值 可null",example = "1")
private BigDecimal valFace;
@ApiModelProperty(value = "满减~满 可null",example = "100")
private BigDecimal valOver;
@ApiModelProperty(value = "满减~减少 可null",example = "5")
private BigDecimal valMinus;
@ApiModelProperty(value = "过期时间 可null",example = "2021-09-25")
private String expireAt;
/* --- --- --- CandyUserCoupon */
@ApiModelProperty(value = "券id",example = "6d74a49d3d1d13f96ba09215abcc49af")
private String ucouponId;
@ApiModelProperty(value = "券状态[1-可用|2-无效|3-已过期 |31-未到期|5-已使用 |21-不可用]",example = "1")
private Integer state;
// private String bindAt;//激活时间
@ApiModelProperty(value = "使用时间 可null",example = "2021-09-25")
private String usedAt;
@ApiModelProperty(value = "购买内容 可null",example = "北京草莓")
private String usedFor;
/* --- --- --- CandyCouponRule */
private List<CandyCouponRulesVo> useRules;
private static final CandyCouponVo obj = new CandyCouponVo();
public static CandyCouponVo getNew() {
try {
return (CandyCouponVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new CandyCouponVo();
}
}
package com.liquidnet.service.candy.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
@ApiModel
public class CandyMyCouponListVo implements Serializable, Cloneable {
private static final long serialVersionUID = 4073256621782131607L;
@ApiModelProperty(value = "会员券")
private List<CandyCouponVo> memberCoupon;
@ApiModelProperty(value = "我的券")
private List<CandyCouponVo> myCoupon;
private static final CandyMyCouponListVo obj = new CandyMyCouponListVo();
public static CandyMyCouponListVo getNew() {
try {
return (CandyMyCouponListVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new CandyMyCouponListVo();
}
}
package com.liquidnet.service.candy.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
@Data
@ApiModel
public class CandyUseResultVo implements Serializable, Cloneable {
private static final long serialVersionUID = 4073256621782131607L;
@ApiModelProperty(value = "优惠内容",example = "1")
private BigDecimal value;
@ApiModelProperty(value = "券类型[-1-不可用 | 1-代金券|2-满减券|3-兑换券|4-折扣券|101-优先券]",example = "1")
private Integer couType;
private static final CandyUseResultVo obj = new CandyUseResultVo();
public static CandyUseResultVo getNew() {
try {
return (CandyUseResultVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new CandyUseResultVo();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>liquidnet-bus-api</artifactId>
<groupId>com.liquidnet</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>liquidnet-service-chime-api</artifactId>
<dependencies>
<!-- <dependency>-->
<!-- <groupId>com.liquidnet</groupId>-->
<!-- <artifactId>liquidnet-service-chime-do</artifactId>-->
<!-- <version>1.0-SNAPSHOT</version>-->
<!-- <scope>compile</scope>-->
<!-- </dependency>-->
</dependencies>
</project>
package com.liquidnet.service.chime.constant;
import com.liquidnet.commons.lang.util.IDGenerator;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ChimeConstant
* @Package com.liquidnet.service.chime.constant
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/9 10:59
*/
public class ChimeConstant {
public static String USER_ID_PREFIX = "CHE";
public static final String PREFIX = "chime:";
public static final String REDIS_CITY_NAME_ALLOW = PREFIX.concat("per:cityName:allow");
public static final String REDIS_CITY_NAME_NOT_ALLOW = PREFIX.concat("per:cityName:notAllow");
public static final String REDIS_PERFORMANCE_IDS_ALLOW = PREFIX.concat("per:performanceIds:allow");
public static final String REDIS_PERFORMANCE_IDS_NOT_ALLOW = PREFIX.concat("per:performanceIds:notAllow");
public static String getNewUserId(){
return USER_ID_PREFIX + IDGenerator.nextTimeId();
}
}
package com.liquidnet.service.chime.dto;
import lombok.Data;
import java.util.List;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ChimeJoinUserCountDto
* @Package com.liquidnet.service.chime.dto
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/12 15:49
*/
@Data
public class ChimeJoinUserCountDto{
private String performancesId;
private Integer count;
private List<String> avatarImgList;
private static final ChimeJoinUserCountDto obj = new ChimeJoinUserCountDto();
public static ChimeJoinUserCountDto getNew() {
try {
return (ChimeJoinUserCountDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new ChimeJoinUserCountDto();
}
}
}
package com.liquidnet.service.chime.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ChimeUserInfoDto
* @Package com.liquidnet.service.chime.dto
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/8 15:17
*/
@Data
public class ChimeUserInfoDto {
private static final long serialVersionUID = 5325511589667456213L;
@ApiModelProperty(position = 0, value = "用户ID[64]")
private String userId;
@ApiModelProperty(position = 1, value = "用户社交密码")
private String passWord;
@ApiModelProperty(position = 2, value = "性别")
private String sex;
@ApiModelProperty(position = 2, value = "用户昵称")
private String nickName;
@ApiModelProperty(position = 4, value = "头像")
private String avatar;
@ApiModelProperty(position = 4, value = "封面")
private String userCover;
@ApiModelProperty(position = 6, value = "生日")
private String birthday;
@ApiModelProperty(position = 7, value = "签名")
private String signature;
@ApiModelProperty(position = 8, value = "常住地/区域")
private String area;
@ApiModelProperty(position = 9, value = "在场ID")
private String joinPerformanceId;
@ApiModelProperty(position = 10, value = "用户标签")
private List<ChimeUserTagDto> userTags;
private static final ChimeUserInfoDto obj = new ChimeUserInfoDto();
public static ChimeUserInfoDto getNew() {
try {
return (ChimeUserInfoDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new ChimeUserInfoDto();
}
}
}
package com.liquidnet.service.chime.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ChimeUserListQueryReqDto
* @Package com.liquidnet.service.chime.dto
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/9 12:05
*/
@Data
public class ChimeUserListQueryReqDto {
@ApiModelProperty(position = 0, value = "演出ID", example = "")
private String performanceId;
@ApiModelProperty(position = 1, value = "性别", example = "")
private String sex;
@ApiModelProperty(value = "兴趣标签", example = "")
private String tags;
@ApiModelProperty(value = "每页记录数", example = "20")
@NotNull(message = "每页记录数不能为空")
private Integer pageSize;
@ApiModelProperty(value = "当前页", example = "0")
@NotNull(message = "当前页不能为空")
private Integer pageNum;
@ApiModelProperty(value = "排序字段", hidden = true)
private String orderItem;
@ApiModelProperty(value = "排序方式", hidden = true)
private String orderSc;
private static final ChimeUserListQueryReqDto obj = new ChimeUserListQueryReqDto();
public static ChimeUserListQueryReqDto getNew() {
try {
return (ChimeUserListQueryReqDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new ChimeUserListQueryReqDto();
}
}
}
package com.liquidnet.service.chime.dto;
import com.liquidnet.commons.lang.util.JsonUtils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ChimeUserRegisterReqDto
* @Package com.liquidnet.service.chime.dto
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/8 16:11
*/
@Data
public class ChimeUserRegisterReqDto {
@ApiModelProperty(position = 0, value = "用户id", example = "")
private String userId;
private String sex;
private String tags;
@Override
public String toString(){
return JsonUtils.toJson(this);
}
private static final ChimeUserRegisterReqDto obj = new ChimeUserRegisterReqDto();
public static ChimeUserRegisterReqDto getNew() {
try {
return (ChimeUserRegisterReqDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new ChimeUserRegisterReqDto();
}
}
}
package com.liquidnet.service.chime.dto;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.liquidnet.commons.lang.util.JsonUtils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ChimeUserRegisterRespDto
* @Package com.liquidnet.service.chime.dto
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/8 16:11
*/
@Data
public class ChimeUserRegisterRespDto {
private String uuid;
private String type;
@ApiModelProperty(value = "创建时间")
// @JsonDeserialize(using = LocalDateTimeDeserializer.class)
// @JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS", timezone = "GMT+8")
private LocalDateTime created; //1630929604985
@ApiModelProperty(value = "修改时间")
// @JsonDeserialize(using = LocalDateTimeDeserializer.class)
// @JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS", timezone = "GMT+8")
private LocalDateTime modified;
private String username;
private Boolean activated;
private String nickname;
@Override
public String toString(){
return JsonUtils.toJson(this);
}
private static final ChimeUserRegisterRespDto obj = new ChimeUserRegisterRespDto();
public static ChimeUserRegisterRespDto getNew() {
try {
return (ChimeUserRegisterRespDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new ChimeUserRegisterRespDto();
}
}
public static void main(String[] args) {
String ss = "{\"uuid\":\"3f6a2b20-1085-11ec-9941-bd3851758eda\",\"type\":\"user\",\"created\":1631092502233,\"modified\":1631092502233,\"username\":\"anjiabin5\",\"activated\":true,\"nickname\":\"anjiabin5-nickname\"}";
// ChimeUserRegisterRespDto respDto = JsonUtils.fromJson(ss,ChimeUserRegisterRespDto.class);
ChimeUserRegisterRespDto respDto = JSONObject.parseObject(ss,ChimeUserRegisterRespDto.class);
System.out.println("ChimeUserRegisterRespDto==="+respDto.toString());
}
}
package com.liquidnet.service.chime.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ChimeUserTagsMappingVo
* @Package com.liquidnet.service.chime.vo.mongo
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/3 16:50
*/
@ApiModel(value = "ChimeUserTagDto", description = "社交用户标签")
@Data
public class ChimeUserTagDto {
private static final long serialVersionUID = 5325511589667456214L;
@ApiModelProperty(position = 1, value = "标签code")
private String tagCode;
@ApiModelProperty(position = 2, value = "标签描述")
private String tagDesc;
private static final ChimeUserTagDto obj = new ChimeUserTagDto();
public static ChimeUserTagDto getNew() {
try {
return (ChimeUserTagDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new ChimeUserTagDto();
}
}
}
package com.liquidnet.service.chime.dto;
import com.liquidnet.commons.lang.util.JsonUtils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ChimeUserRegisterReqDto
* @Package com.liquidnet.service.chime.dto
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/8 16:11
*/
@Data
public class ChimeUserUpdateReqDto {
@ApiModelProperty(position = 0, value = "用户id", example = "")
private String userId;
private String sex;
private String tags;
@Override
public String toString(){
return JsonUtils.toJson(this);
}
private static final ChimeUserUpdateReqDto obj = new ChimeUserUpdateReqDto();
public static ChimeUserUpdateReqDto getNew() {
try {
return (ChimeUserUpdateReqDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new ChimeUserUpdateReqDto();
}
}
}
package com.liquidnet.service.chime.dto;
import java.io.Serializable;
import java.util.List;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: NewPageResult
* @Package com.liquidnet.service.chime.dto
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/13 10:49
*/
public class NewPageResult<T> implements Serializable, Cloneable {
private static final long serialVersionUID = 8141034447809038759L;
/**
* 当前页数
*/
private int currentPage = 1;
/**
* 每页记录数
*/
private int pageSize = 10;
/**
* 总页数
*/
private int pages;
/**
* 总记录数
*/
private long total;
private boolean isOnline;
/**
* 分页数据
*/
private List<T> list;
public NewPageResult() {
}
public int getPages() {
return pages;
}
// public NewPageResult<T> setTotalPages(int totalPages) {
// this.totalPages = totalPages;
// return this;
// }
public long getTotal() {
return total;
}
public NewPageResult<T> setTotal(long total, int pageSize) {
this.total = total;
if (total == -1L) {
this.pages = 1;
} else {
if (pageSize > 0) {
this.pages = (int) (total / pageSize + (total % pageSize == 0L ? 0 : 1));
} else {
this.pages = 0;
}
}
return this;
}
public List<T> getList() {
return list;
}
public NewPageResult<T> setList(List<T> list) {
this.list = list;
return this;
}
@Override
public NewPageResult<T> clone() {
try {
return (NewPageResult<T>) super.clone();
} catch (CloneNotSupportedException e) {
return new NewPageResult<>();
}
}
public static long getSerialVersionUID() {
return serialVersionUID;
}
public int getCurrentPage() {
return currentPage;
}
public NewPageResult<T> setCurrentPage(int currentPage) {
this.currentPage = currentPage;
return this;
}
public int getPageSize() {
return pageSize;
}
public NewPageResult<T> setPageSize(int pageSize) {
this.pageSize = pageSize;
return this;
}
public boolean isFirst()
{
return (this.currentPage == 1) || (this.total == 0);
}
public boolean isLast() {
return (this.total == 0) || (this.currentPage >= this.pages);
}
public boolean isHasNext()
{
return this.currentPage < this.pages;
}
public boolean isHasPrev() {
return this.currentPage > 1;
}
public Integer getNextPage()
{
if (this.currentPage >= this.pages) {
return Integer.valueOf(this.pages);
}
return Integer.valueOf(this.currentPage + 1);
}
public Integer getPrevPage() {
if (this.currentPage <= 1) {
return Integer.valueOf(1);
}
return Integer.valueOf(this.currentPage - 1);
}
public void setPages(int pages) {
this.pages = pages;
}
public void setTotal(long total) {
this.total = total;
}
public boolean getIsOnline() {
return isOnline;
}
public void setIsOnline(boolean online) {
isOnline = online;
}
}
package com.liquidnet.service.chime.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: PerformanceDto
* @Package com.liquidnet.service.chime.dto
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/3 18:26
*/
@Data
public class PerformanceDto {
@ApiModelProperty(value = "演出id")
private String performancesId;
@ApiModelProperty(value = "演出名称")
private String title;
@ApiModelProperty(value = "演出海报")
private String imgPoster;
@ApiModelProperty(value = "演出开始时间")
private String timeStart;
@ApiModelProperty(value = "演出结束时间")
private String timeEnd;
@ApiModelProperty(value = "演出地点")
private String cityName;
@ApiModelProperty(value = "场地名称")
private String fieldName;
@ApiModelProperty(value = "在场人数")
private Integer joinUserCount;
@ApiModelProperty(value = "小头像")
private List<String> avatarImgList;
private static final PerformanceDto obj = new PerformanceDto();
public static PerformanceDto getNew() {
try {
return (PerformanceDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new PerformanceDto();
}
}
}
package com.liquidnet.service.chime.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ChimeUserListQueryReqDto
* @Package com.liquidnet.service.chime.dto
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/9 12:05
*/
@Data
public class PerformanceQueryReqDto {
@ApiModelProperty(position = 0,value = "演出ID", example = "")
private String performanceId;
@ApiModelProperty(position = 1,value = "排序类型 1创建时间倒序 2创建时间正序 3演出时间倒序 4演出时间正序", example = "0")
@NotNull(message = "排序类型不能为空")
private Integer orderType;
@ApiModelProperty(value = "每页记录数", example = "20")
@NotNull(message = "每页记录数不能为空")
private Integer pageSize;
@ApiModelProperty(value = "当前页", example = "0")
@NotNull(message = "当前页不能为空")
private Integer pageNum;
@ApiModelProperty(value = "排序字段", hidden = true)
private String orderItem;
@ApiModelProperty(value = "排序方式", hidden = true)
private String orderSc;
public void setOrderType(Integer orderType) {
this.orderType = orderType;
switch (orderType) {
case 1: {
orderItem = "created_at";
orderSc = "desc";
break;
}
case 2: {
orderItem = "created_at";
orderSc = "asc";
break;
}
case 3: {
orderItem = "time_start";
orderSc = "desc";
break;
}
case 4: {
orderItem = "time_start";
orderSc = "asc";
break;
}
}
}
private static final PerformanceQueryReqDto obj = new PerformanceQueryReqDto();
public static PerformanceQueryReqDto getNew() {
try {
return (PerformanceQueryReqDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new PerformanceQueryReqDto();
}
}
}
package com.liquidnet.service.chime.service;
import com.liquidnet.service.chime.dto.ChimeUserInfoDto;
import com.liquidnet.service.chime.dto.ChimeUserListQueryReqDto;
import com.liquidnet.service.chime.dto.NewPageResult;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: IChimePerformanceService
* @Package com.liquidnet.service.chime.service
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/9 12:03
*/
public interface IChimePerformanceService {
NewPageResult<ChimeUserInfoDto> getUserListByCon(ChimeUserListQueryReqDto reqDto);
}
package com.liquidnet.service.chime.service;
import com.liquidnet.service.chime.dto.ChimeUserInfoDto;
import com.liquidnet.service.chime.dto.ChimeUserRegisterReqDto;
import com.liquidnet.service.chime.dto.ChimeUserUpdateReqDto;
import com.liquidnet.service.chime.vo.mongo.ChimeUserInfoVo;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: IChimeUserService
* @Package com.liquidnet.service.chime.service
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/8 16:14
*/
public interface IChimeUserService {
ChimeUserInfoVo createChimeUserInfo(ChimeUserRegisterReqDto reqDto);
boolean updateUserInfo(ChimeUserUpdateReqDto reqDto);
boolean updateUserTags(ChimeUserUpdateReqDto reqDto);
ChimeUserInfoDto getUserByUserId(String userId);
boolean switchPerformanceId(String performanceId);
}
package com.liquidnet.service.chime.vo.mongo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ChimeUserTagsMappingVo
* @Package com.liquidnet.service.chime.vo.mongo
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/3 16:50
*/
@ApiModel(value = "ChimeUserInfoVo", description = "社交用户信息")
@Data
public class ChimeUserInfoVo {
private String mid;
private static final long serialVersionUID = 5325511589667456213L;
@ApiModelProperty(position = 0, value = "用户ID[64]")
private String userId;
@ApiModelProperty(position = 1, value = "性别")
private String sex;
@ApiModelProperty(position = 8, value = "在场ID")
private String joinPerformanceId;
@ApiModelProperty(position = 8, value = "是否在场")
private Boolean isOnLine;
@ApiModelProperty(position = 9,value = "用户标签")
private List<ChimeUserTagsMappingVo> userTagsVoList;
@ApiModelProperty(position = 15, value = "创建时间")
private String createdAt;
@ApiModelProperty(position = 15, value = "更新时间")
private String updatedAt;
private static final ChimeUserInfoVo obj = new ChimeUserInfoVo();
public static ChimeUserInfoVo getNew() {
try {
return (ChimeUserInfoVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new ChimeUserInfoVo();
}
}
}
package com.liquidnet.service.chime.vo.mongo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ChimeUserTagsMappingVo
* @Package com.liquidnet.service.chime.vo.mongo
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/3 16:50
*/
@ApiModel(value = "ChimeUserTagsMappingVo", description = "社交用户标签映射表")
@Data
public class ChimeUserTagsMappingVo {
private static final long serialVersionUID = 5325511589667456214L;
@ApiModelProperty(position = 1, value = "标签code")
private String tagCode;
@ApiModelProperty(position = 2, value = "标签描述")
private String tagDesc;
private static final ChimeUserTagsMappingVo obj = new ChimeUserTagsMappingVo();
public static ChimeUserTagsMappingVo getNew() {
try {
return (ChimeUserTagsMappingVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new ChimeUserTagsMappingVo();
}
}
}
......@@ -5,7 +5,6 @@ public class KylinRedisConst {
public static final String PERFORMANCES = "kylin:performances:id:";
public static final String PERFORMANCES_TRUE_NAME = "kylin:performances_true_name:id:";
public static final String PERFORMANCES_LIST_CITYNAME = "kylin:performances:cityName:";
public static final String PERFORMANCES_LIST_ALL = "kylin:performances:cityName*";
public static final String PERFORMANCES_LIST_SYSTEM_RECOMMEND = "kylin:performances:systemRecommend";
public static final String PERFORMANCES_LIST_NOTICE = "kylin:performances:notice";
public static final String PERFORMANCES_LIST_RECOMMEND = "kylin:performances:recommend";
......@@ -19,6 +18,7 @@ public class KylinRedisConst {
public static final String ORDER = "kylin:order:id:";
public static final String ORDER_ROUTE_INFO = "kylin:order:routeInfo:id:";
public static final String ORDER_EXPRESS_INFO = "kylin:order:ExpressStatus:id:";
public static final String ORDER_REFUND_EXPRESS_INFO = "kylin:order:refund:ExpressStatus:id:";
public static final String ORDER_ENTITIES = "kylin:order_entities:id:";
public static final String TIMES = "kylin:times:id:";
public static final String AGENT = "kylin:agent:info";
......@@ -27,6 +27,15 @@ public class KylinRedisConst {
public static final String ORDER_REFUND = "kylin:order:refund:orderRefundsId:";
public static final String ORDER_TRANSFER = "kylin:order:transfer:uid:";
//订单导入失败key
public static final String ORDER_IMPORT_FAIL = "kylin:order:import:fail:";
public static final String ORDER_COUPON = "kylin:order:coupon:id:";
// 收货地址
public static final String ORDER_REFUND_ADDRESS = "kylin:order:refund:address";
// 手续费
public static final String ORDER_REFUND_POUNDAGE = "kylin:order:poundage";
public static final String USERID_BUY_INFO = "kylin:buy:userId:";
public static final String IDCARD_BUY_INFO = "kylin:buy:idCard:";
......@@ -52,5 +61,4 @@ public class KylinRedisConst {
public static final String ADMIN_UPUSH_LIST_ANDROID = "basicServices:upushList:Android";
public static final String ADMIN_BANNER_LIST = "kylin:bannerList";
}
......@@ -28,21 +28,20 @@ public class KylinTableStatusConst {
// 退款
public static final Integer ORDER_REFUND_STATUS_APPLY = 0; // 请求退款
public static final Integer ORDER_REFUND_STATUS_APPROVED = 1; // 一审同意 审核通过
public static final Integer ORDER_REFUND_STATUS_APPROVED = 1; // 运营审核同意 审核通过
public static final Integer ORDER_REFUND_STATUS_CANCEL = 2; // 取消退款
public static final Integer ORDER_REFUND_STATUS_REFUNDING = 3; // 正在退款
public static final Integer ORDER_REFUND_STATUS_REFUNDED = 4; // 完成退款
public static final Integer ORDER_REFUND_STATUS_REJECT = 5; // 一审驳回退款
public static final Integer ORDER_REFUND_STATUS_REJECT = 5; // 运营审核驳回退款 等同取消
public static final Integer ORDER_REFUND_STATUS_ERROR = 6; // 退款失败
public static final Integer ORDER_REFUND_STATUS_UNFILLED = 7; // 二审同意 等待退款
public static final Integer ORDER_REFUND_STATUS_REFUSE = 8; // 二审拒绝
public static final Integer ORDER_REFUND_STATUS_TICKET = 9; // 票务确认收货
public static final Integer ORDER_REFUND_TYPE_APPLY = 0; // 人工申请类型的退款,可以取消退款,退款完成需返还库存
public static final Integer ORDER_REFUND_TYPE_AUTO = 1; // 自动申请类型的退款,无法取消退款,退款完成不返还库存
public static final Integer ORDER_REFUND_TYPE_APPLY = 0; // 客服、票务人工申请,可以取消退款,回调再处理库存和券
public static final Integer ORDER_REFUND_TYPE_APPLY2 = 2; // 用户申请普通退款,可以取消退款,回调再处理库存和券
public static final Integer ORDER_REFUND_TYPE_APPLY3 = 3; // 用户申请快递退款,可以取消退款,回调再处理库存和券,需确认收货
public static final Integer ORDER_REFUND_TYPE_AUTO = 1; // 超时退款,无法取消退款,直接返还库存和券,回调不再处理库存和券
public static final Integer ORDER_REFUND_CATE1 = 1; // 1票务2快递费3票和快递费
public static final Integer ORDER_REFUND_CATE2 = 2;
public static final Integer ORDER_REFUND_CATE3 = 3;
/**
* 订单状态表状态
*/
......
......@@ -61,4 +61,11 @@ public class PayOrderParam {
private String showUrl;
@ApiModelProperty(value = "returnUrl")
private String returnUrl;
@ApiModelProperty(value = "优惠券类型")
private Integer voucherType;
@ApiModelProperty(value = "优惠券码")
private String voucherCode;
@ApiModelProperty(value = "会员提前券码")
private String advanceCode;
}
......@@ -28,6 +28,8 @@ public class PerformanceExpressSearchAdminParam {
private String expressContacts;
private String expressPhone;
private String mailno;
private List<String> ids;
}
......@@ -35,6 +35,7 @@ public class RefundApplyParam implements Serializable {
private String reject;
private String refuse;
private String ticketRemark;
private String type;
......
......@@ -5,6 +5,7 @@ import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
/**
* <p>
......@@ -21,7 +22,8 @@ public class RefundBatchSearchParam implements Serializable {
private String targetId;
private Integer status;
private String status;
private List<String> statusStr;
private String createdAt;
......
......@@ -6,6 +6,7 @@ import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
* <p>
......@@ -25,7 +26,8 @@ public class RefundSearchParam implements Serializable {
private String orderCode;
private Integer status;
private String status;
private List<String> statusStr;
@ApiModelProperty(value = "页数", example = "0")
@NotNull(message = "页数不能为空")
......@@ -35,4 +37,6 @@ public class RefundSearchParam implements Serializable {
@NotNull(message = "数量不能为空")
private Integer pageNum;
private Integer roleType;
}
package com.liquidnet.service.kylin.dto.vo.admin;
import lombok.Data;
/**
* @version V1.0
* @class: OrderRefundAddress
* @Copyright: LightNet @ Copyright (c) 2021
*/
@Data
public class OrderRefundAddress implements Cloneable {
private String name;
private String phone;
private String address;
private static final OrderRefundAddress obj = new OrderRefundAddress();
public static OrderRefundAddress getNew() {
try {
return (OrderRefundAddress) obj.clone();
} catch (CloneNotSupportedException e) {
return new OrderRefundAddress();
}
}
}
package com.liquidnet.service.kylin.dto.vo.admin;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @version V1.0
* @class: OrderRefundPoundage
* @Copyright: LightNet @ Copyright (c) 2021
*/
@Data
public class OrderRefundPoundage implements Cloneable {
@ApiModelProperty(value = "天数")
private int day;
@ApiModelProperty(value = "距离演出开始日期>15天")
private String content;
@ApiModelProperty(value = "费率 如果手续费是0.1")
private BigDecimal present;
@ApiModelProperty(value = "")
private int isCanRefund;
private static final OrderRefundPoundage obj = new OrderRefundPoundage();
public static OrderRefundPoundage getNew() {
try {
return (OrderRefundPoundage) obj.clone();
} catch (CloneNotSupportedException e) {
return new OrderRefundPoundage();
}
}
}
......@@ -13,4 +13,10 @@ public class PerformanceRefundConfigVo {
private Integer isCanRefund;
private String refundOpenTime;
private String refundCloseTime;
private Integer isRefundPoundage;
private Integer isRefundVoucher;
private Integer isRefundExpress;
private OrderRefundAddress orderRefundAddress;
}
......@@ -18,8 +18,9 @@ import java.util.LinkedList;
@Data
@ApiModel
public class KylinOrderExpressVo implements Serializable {
public class KylinOrderExpressVo implements Serializable , Cloneable{
private static final long serialVersionUID = 1626827142646063350L;
@ApiModelProperty(value = "orderExpressId")
private String orderExpressId;
@ApiModelProperty(value = "orderTicketsId")
......@@ -30,7 +31,19 @@ public class KylinOrderExpressVo implements Serializable {
private String mailno;
@ApiModelProperty(value = "快递状态")
private Integer expressStatus;
@ApiModelProperty(value = "1上门取件 2自主发货")
private Integer sendExpressType;
@ApiModelProperty(value = "物流数据")
LinkedList<KylinOrderExpressRouteVo> routeList;
private static final KylinOrderExpressVo obj = new KylinOrderExpressVo();
public static KylinOrderExpressVo getNew() {
try {
return (KylinOrderExpressVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new KylinOrderExpressVo();
}
}
}
......@@ -3,15 +3,27 @@ package com.liquidnet.service.kylin.dto.vo.mongo;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
@ApiModel
@Data
public class KylinOrderRefundPicVo {
public class KylinOrderRefundPicVo implements Serializable, Cloneable {
private static final long serialVersionUID = -8439335893689659109L;
private Integer mid;
private String refundPicId;
private String orderRefundsId;
private String picUrl;
private String createdAt;
private String updatedAt;
private static final KylinOrderRefundPicVo obj = new KylinOrderRefundPicVo();
public static KylinOrderRefundPicVo getNew() {
try {
return (KylinOrderRefundPicVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new KylinOrderRefundPicVo();
}
}
}
......@@ -49,6 +49,8 @@ public class KylinOrderTicketEntitiesVo implements Serializable, Cloneable {
private LocalDateTime changeDate;
private BigDecimal canRefundedPrice;
private BigDecimal chargesRatio;
private BigDecimal chargesPrice;
public BigDecimal getRefundPrice() {
return refundPrice==null?BigDecimal.valueOf(0.00):refundPrice;
......
......@@ -63,6 +63,8 @@ public class KylinOrderTicketVo implements Serializable, Cloneable {
private BigDecimal priceExpress;
@ApiModelProperty(position = 27, value = "退款价格")
private BigDecimal priceRefund;
@ApiModelProperty(position = 27, value = "退款扣除的手续费金额")
private BigDecimal refundPriceCharges;
@ApiModelProperty(position = 28, value = "退款张数")
private Integer refundNumber;
@ApiModelProperty(position = 29, value = "选择支付方式")
......
......@@ -116,9 +116,9 @@ public class KylinPerformanceVo {
private String transferStartTime;
private String transferEndTime;
// private Integer isRefundPoundage;
// private Integer isRefundVoucher;
// private Integer isRefundExpress;
private Integer isRefundPoundage;
private Integer isRefundVoucher;
private Integer isRefundExpress;
public void setPerformance(KylinPerformances performance) {
this.mid = performance.getMid();
......@@ -172,6 +172,9 @@ public class KylinPerformanceVo {
this.isTransfer = performanceStatus.getIsTransfer();
this.transferStartTime = DateUtil.Formatter.yyyyMMddHHmmss.format(performanceStatus.getTransferStartTime());
this.transferEndTime = DateUtil.Formatter.yyyyMMddHHmmss.format(performanceStatus.getTransferEndTime());
this.isRefundPoundage = performanceStatus.getIsRefundPoundage();
this.isRefundVoucher = performanceStatus.getIsRefundVoucher();
this.isRefundExpress = performanceStatus.getIsRefundExpress();
}
public void setPerformanceRelations(KylinPerformanceRelations performanceRelations) {
......
package com.liquidnet.service.kylin.dto.vo.returns;
import lombok.Data;
import java.io.Serializable;
@Data
public class InnerReturnVo<T> implements Serializable,Cloneable {
private static final long serialVersionUID = 1541552316829686035L;
private String code;
private String message;
private T data;
private static final InnerReturnVo obj = new InnerReturnVo();
public static InnerReturnVo getNew() {
try {
return (InnerReturnVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new InnerReturnVo();
}
}
}
......@@ -59,6 +59,9 @@ public class KylinOrderRefundsVo implements Serializable,Cloneable {
@ApiModelProperty(value = "退款快递总金额")
private BigDecimal priceExpress;
@ApiModelProperty(value = "退款扣除的手续费金额")
private BigDecimal priceCharges;
@ApiModelProperty(value = "退款状态: 0请求退款 2取消退款 1审核通过 5驳回退款 7等待退款 3正在退款 4完成退款 6退款失败")
private Integer status;
......@@ -106,9 +109,21 @@ public class KylinOrderRefundsVo implements Serializable,Cloneable {
@ApiModelProperty(value = "回绝原因")
private String refuse;
@ApiModelProperty(value = "票务审核人id")
private String ticketAuditId;
@ApiModelProperty(value = "票务审核人名称")
private String ticketAuditName;
@ApiModelProperty(value = "票务审核时间")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime ticketAuditAt;
@ApiModelProperty(value = "票务审核备注")
private String ticketAuditRemark;
@ApiModelProperty(value = "票务/快递费/票和快递费")
private String refundType;
private Integer refundCate;
@ApiModelProperty(value = "添加时间")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
......@@ -133,7 +148,7 @@ public class KylinOrderRefundsVo implements Serializable,Cloneable {
this.statusName = "请求退款";
break;
case 1:
this.statusName = "一审通过";
this.statusName = "运营审核通过";
break;
case 2:
this.statusName = "取消退款";
......@@ -145,7 +160,7 @@ public class KylinOrderRefundsVo implements Serializable,Cloneable {
this.statusName = "完成退款";
break;
case 5:
this.statusName = "一审驳回退款";
this.statusName = "运营审核驳回退款";
break;
case 6:
this.statusName = "退款失败";
......
package com.liquidnet.service.kylin.dto.vo.returns;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
......@@ -22,6 +23,10 @@ public class KylinOrderTicketEntitiesPreRefundVo implements Serializable, Clonea
private BigDecimal priceCanRefund;
private String ticketTitle;
private Integer isPayment;
@ApiModelProperty(value = "退款手续费比例 *100%")
private BigDecimal chargesRatio;
@ApiModelProperty(value = "退款手续费金额")
private BigDecimal chargesPrice;
private static final KylinOrderTicketEntitiesPreRefundVo obj = new KylinOrderTicketEntitiesPreRefundVo();
public static KylinOrderTicketEntitiesPreRefundVo getNew() {
......
......@@ -4,6 +4,9 @@ import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo;
import com.liquidnet.service.kylin.entity.KylinOrderTicketRelations;
import com.liquidnet.service.kylin.entity.KylinOrderTicketStatus;
import com.liquidnet.service.kylin.entity.KylinOrderTickets;
import com.liquidnet.service.kylin.dto.vo.admin.OrderRefundAddress;
import com.liquidnet.service.kylin.dto.vo.admin.OrderRefundPoundage;
import com.liquidnet.service.kylin.entity.KylinOrderCoupons;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -13,13 +16,14 @@ import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.ArrayList;
@ApiModel(value = "KylinOrderTicketVo", description = "订单数据")
@Data
public class KylinOrderTicketPreVo implements Serializable,Cloneable{
public class KylinOrderTicketPreVo implements Serializable, Cloneable {
private Integer mid;
private static final long serialVersionUID = 5325511589667456213L;
@ApiModelProperty(position = 10, value = "ID")
@ApiModelProperty(position = 10, value = "订单ID")
private String orderTicketsId;
@ApiModelProperty(position = 11, value = "用户ID[64]")
private String userId;
......@@ -27,32 +31,72 @@ public class KylinOrderTicketPreVo implements Serializable,Cloneable{
private String userName;
@ApiModelProperty(position = 13, value = "用户手机号")
private String userMobile;
@ApiModelProperty(position = 14, value = "演出名称")
private String performanceTitle;
private String ticketTitle;
private String timeStart;
private String useStart;
private String performanceImg;
@ApiModelProperty(value = "购票数量")
private Integer number;
@ApiModelProperty(value = "应付价格")
private BigDecimal priceTotal;
private BigDecimal priceVoucher;
@ApiModelProperty(value = "优惠价格")
private BigDecimal priceActual;
@ApiModelProperty(value = "快递价格")
private BigDecimal priceExpress;
@ApiModelProperty(value = "退款价格")
private BigDecimal priceRefund;
@ApiModelProperty(value = "退款张数")
private Integer refundNumber;
@ApiModelProperty(value = "是否使用优惠卷 exchange/no")
private String couponType;
@ApiModelProperty(value = "取票方式 电子票electronic快递票express")
private String getTicketType;
@ApiModelProperty(value = "快递类型 1寄付 2到付")
private Integer expressType;
@ApiModelProperty(value = "订单状态 0待付款 1已付款 2已关闭 3正在退款 4已退款 5待关闭 6部分退款")
private Integer status;
private String performanceId;
@ApiModelProperty(value = "场次ID")
private String timeId;
@ApiModelProperty(value = "票种ID")
private String ticketId;
@ApiModelProperty(value = "场地名称")
private String fieldName;
@ApiModelProperty(value = "是否实名")
private Integer isTrueName;
@ApiModelProperty(value = "入场人退款情况")
private List<KylinOrderTicketEntitiesPreRefundVo> entitiesPreRefundVos;
@ApiModelProperty(value = "收货人")
private String expressContacts;
@ApiModelProperty(value = "收货地址")
private String expressAddress;
@ApiModelProperty(value = "收货人联系方式")
private String expressPhone;
@ApiModelProperty(value = "演出ID")
private String performanceId;
@ApiModelProperty(position = 14, value = "演出名称")
private String performanceTitle;
@ApiModelProperty(value = "票种名称")
private String ticketTitle;
@ApiModelProperty(value = "演出开始时间")
private String timeStart;
@ApiModelProperty(value = "演出结束时间")
private String useStart;
@ApiModelProperty(value = "演出图片")
private String performanceImg;
@ApiModelProperty(value = "是否开启退款手续费 0关闭 1开启")
private Integer isRefundPoundage;
@ApiModelProperty(value = "是否开启是否退优惠券 0关闭 1开启")
private Integer isRefundVoucher;
@ApiModelProperty(value = "isRefundExpress 1用户承担 0无")
private Integer isRefundExpress;
@ApiModelProperty(value = "手续费规则列表")
private ArrayList<OrderRefundPoundage> refundPoundageList;
@ApiModelProperty(value = "订单使用优惠券列表")
private ArrayList<KylinOrderCoupons> orderCouponList;
@ApiModelProperty(value = "退款快递统一寄回地址")
private OrderRefundAddress refundAddress;
private static final KylinOrderTicketPreVo obj = new KylinOrderTicketPreVo();
public static KylinOrderTicketPreVo getNew() {
try {
return (KylinOrderTicketPreVo) obj.clone();
......
......@@ -4,6 +4,7 @@ import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.entity.KylinFields;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.liquidnet.service.kylin.entity.KylinOrderCoupons;
import lombok.Data;
import java.util.List;
......@@ -33,6 +34,7 @@ public class OrderDetailsVo implements Cloneable {
private Integer isCanBack;
@ApiModelProperty(position = 10, value = "退款相关list")
private List<KylinOrderRefundsOrderCodeVo> orderRefundsVoList;
private List<KylinOrderCoupons> orderCouponsList;
private static final OrderDetailsVo obj = new OrderDetailsVo();
......
package com.liquidnet.service.kylin.dto.vo.returns;
import com.liquidnet.service.kylin.dto.vo.express.KylinOrderExpressVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import lombok.Data;
import java.io.Serializable;
@Data
public class OrderRefundVo implements Cloneable{
public class OrderRefundVo implements Serializable, Cloneable {
private static final long serialVersionUID = 579833525354708457L;
private KylinOrderTicketVo orderTicketVo;
private KylinOrderRefundsVo kylinOrderRefundsVoBaseList;
private KylinOrderExpressVo kylinOrderExpressVo;
private static final OrderRefundVo obj = new OrderRefundVo();
public static OrderRefundVo getNew() {
try {
return (OrderRefundVo) obj.clone();
......
package com.liquidnet.service.kylin.service;
/**
* <p>
* 票 服务类
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
public interface IKylinOrderImportService {
}
......@@ -31,25 +31,8 @@ public interface IKylinOrderTicketsService {
//订单未支付数量
ResponseDto<Integer> orderUnPayCount();
//想要退款详情
ResponseDto<KylinOrderTicketPreVo> toOrderRefundDetails(String orderId);
//退款详情
ResponseDto<OrderRefundVo> orderRefundDetails(String orderId, String orderRefundId);
/**
* 发起退款
*
* @param orderId 订单id
* @param orderTicketEntitiesId 票单id
* @param reason 退款原因
* @param picList 证据截图
* @return 是否成功
*/
String sendOrderRefund(String orderId, String orderTicketEntitiesId, String reason, String picList);
//退款撤回
ResponseDto<Boolean> orderRefundWithdraw(String orderRefundsId);
//补充入场人
ResponseDto<Boolean> supplementEnter(String orderId, String enterList);
//发起转赠订单
ResponseDto<String> orderTransfer(String orderId, String transferUid, String transferMobile);
......
package com.liquidnet.service.kylin.service;
import com.liquidnet.service.kylin.dao.report.PerformanceAgeDataDto;
import com.liquidnet.service.kylin.dao.report.PerformanceCityDataDto;
import com.liquidnet.service.kylin.dao.report.PerformanceProvinceDataDto;
import com.liquidnet.service.kylin.dao.report.PerformanceSexDataDto;
import java.util.List;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: IReportPerformanceService
* @Package com.liquidnet.service.kylin.service
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/23 11:27
*/
public interface IReportPerformanceService {
/**
* 获取按省统计数据
* @param performanceId
* @return
*/
List<PerformanceProvinceDataDto> getProvinceDataList(String performanceId);
/**
* 获取按城市统计数据
* @param performanceId
* @return
*/
List<PerformanceCityDataDto> getCityDataList(String performanceId);
/**
* 获取按年龄统计数据
* @param performanceId
* @return
*/
List<PerformanceAgeDataDto> getAgeDataList(String performanceId);
/**
* 获取按性别统计数据
* @param performanceId
* @return
*/
List<PerformanceSexDataDto> getSexDataList(String performanceId);
}
......@@ -23,4 +23,7 @@ public interface IKylinOrderTicketsAdminService {
//订单详情
OrderDetailsAdminVo orderDetails(String orderId);
//初始化订单转赠 [只支持退回订单 transferStatus = 5]
String initTransfer(String orderId);
}
......@@ -11,6 +11,7 @@ import com.liquidnet.service.kylin.dto.vo.admin.KylinPerformanceDamaiVo;
import com.liquidnet.service.kylin.dto.vo.admin.PerformanceRefundConfigVo;
import com.liquidnet.service.kylin.dto.vo.admin.PerformanceTransferConfigVo;
import com.liquidnet.service.kylin.dto.vo.partner.KylinPerformanceMisVo;
import com.liquidnet.service.kylin.entity.KylinOrderImport;
import com.liquidnet.service.kylin.entity.KylinPerformances;
import java.util.List;
......@@ -67,6 +68,15 @@ public interface IKylinPerformancesAdminService {
*/
List<PerformanceTitleDao> getListByStatus(String status,String title);
/**
* 根据演出状态 查询演出列表 演出全量场次票
*
* @param status 演出状态
* @return 20个 sql 数据
*/
List<PerformanceSimpleAllDao> getListDetailByStatus(String status, String title);
/**
* 修改演出的巡演关联
*
......@@ -186,7 +196,10 @@ public interface IKylinPerformancesAdminService {
String changeRefundConfig(String performancesId,
Integer isCanRefund,
String refundOpenTime,
String refundCloseTime);
String refundCloseTime,
Integer isRefundPoundage,
Integer isRefundVoucher,
Integer isRefundExpress);
/**
* 获取 演出转赠配置
......@@ -195,6 +208,13 @@ public interface IKylinPerformancesAdminService {
*/
PerformanceTransferConfigVo getTransferConfig(String performanceId);
/**
* 获取 演出转赠配置
* @param performanceId
* @return
*/
List<KylinOrderImport> getOrderImport(String performanceId);
/**
* 修改 演出转赠配置
* @return
......
......@@ -4,8 +4,6 @@ import com.liquidnet.service.kylin.entity.KylinTicketTimes;
import com.liquidnet.service.kylin.entity.KylinTickets;
public interface DamaiService {
//同步场地
Boolean sycField(String fieldId);
//同步演出
Boolean sycPerformance(String performanceId);
//同步场次
......
......@@ -17,6 +17,8 @@
<module>liquidnet-service-adam-api</module>
<module>liquidnet-service-kylin-api</module>
<module>liquidnet-service-dragon-api</module>
<module>liquidnet-service-chime-api</module>
<module>liquidnet-service-candy-api</module>
</modules>
<dependencies>
<dependency>
......
......@@ -87,6 +87,11 @@ public enum BusinessType
*/
AUDIT2,
/**
* 票务审核退款
*/
AUDIT3,
/**
* 申请 16
*/
......@@ -124,4 +129,9 @@ public enum BusinessType
* 快递-打印 23
*/
BATCH_PRINT,
/**
* 会员订单退款
*/
MORDER_REFUND,
}
......@@ -14,14 +14,14 @@ INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, ur
INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2009, '详情', 2007, 0, '#', 'menuItem', 'F', '0', '1', 'kylin:refund:detail', '#', 'admin', '2021-06-01 15:59:09', '', null, '');
INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2012, '取消', 2007, 1, '#', 'menuItem', 'F', '0', '1', 'kylin:refund:cancel', '#', 'admin', '2021-06-02 16:48:35', '', null, '');
INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2013, '提交申请', 2007, 2, '#', 'menuItem', 'F', '0', '1', 'kylin:refund:apple', '#', 'admin', '2021-06-02 16:49:18', '', null, '');
INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2014, '一审', 2007, 3, '#', 'menuItem', 'F', '0', '1', 'kylin:refund:review', '#', 'admin', '2021-06-02 16:50:17', '', null, '');
INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2014, '运营审核', 2007, 3, '#', 'menuItem', 'F', '0', '1', 'kylin:refund:review', '#', 'admin', '2021-06-02 16:50:17', '', null, '');
INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2015, '二审', 2007, 4, '#', 'menuItem', 'F', '0', '1', 'kylin:refund:execute', '#', 'admin', '2021-06-02 16:50:44', '', null, '');
INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2016, '主动完成退款', 2007, 5, '#', 'menuItem', 'F', '0', '1', 'kylin:refund:completed', '#', 'admin', '2021-06-02 16:53:42', '', null, '');
INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2008, '演出退款管理', 2006, 1, '/kylin/refundBatch', 'menuItem', 'C', '0', '1', 'kylin:refundBatch:list', '#', 'admin', '2021-06-01 11:07:19', '', null, '');
INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2018, '详情', 2008, 0, '#', 'menuItem', 'F', '0', '1', 'kylin:refundBatch:detail', '#', 'admin', '2021-06-03 19:21:53', '', null, '');
INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2019, '取消', 2008, 1, '#', 'menuItem', 'F', '0', '1', 'kylin:refundBatch:cancel', '#', 'admin', '2021-06-03 19:22:25', '', null, '');
INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2020, '提交申请', 2008, 2, '#', 'menuItem', 'F', '0', '1', 'kylin:refundBatch:apply', '#', 'admin', '2021-06-03 19:22:55', '', null, '');
INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2021, '一审', 2008, 3, '#', 'menuItem', 'F', '0', '1', 'kylin:refundBatch:review', '#', 'admin', '2021-06-03 19:23:27', '', null, '');
INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2021, '运营审核', 2008, 3, '#', 'menuItem', 'F', '0', '1', 'kylin:refundBatch:review', '#', 'admin', '2021-06-03 19:23:27', '', null, '');
INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2022, '二审', 2008, 4, '#', 'menuItem', 'F', '0', '1', 'kylin:refundBatch:execute', '#', 'admin', '2021-06-03 19:23:52', '', null, '');
INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2023, '会员管理', 2000, 3, '#', 'menuItem', 'C', '0', '1', '', '#', 'admin', '2021-06-06 17:24:23', 'admin', '2021-06-07 20:02:44', '');
......
......@@ -18,13 +18,14 @@ import java.util.Arrays;
@EnableAsync
@EnableEurekaClient
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}, scanBasePackages = {"com.liquidnet"})
@MapperScan(basePackages = {"com.liquidnet.service.kylin.mapper", "com.liquidnet.service.adam.mapper"})//
@MapperScan(basePackages = {"com.liquidnet.service.*.mapper"})
public class ClientAdminApplication implements CommandLineRunner {
@Autowired
private Environment environment;
public static void main(String[] args) {
// System.setProperty("spring.devtools.restart.enabled", "false");
// System.setProperty("spring.devtoolq.restart.enabled", "false");
// System.setProperty("spring.devtoolq.restart.enabled", "false");
SpringApplication.run(ClientAdminApplication.class, args);
}
......
package com.liquidnet.client.admin.web.controller.zhengzai.adam;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.liquidnet.client.admin.common.annotation.Log;
import com.liquidnet.client.admin.common.core.controller.BaseController;
import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.common.enums.BusinessType;
import com.liquidnet.client.admin.common.utils.poi.ExcelUtil;
import com.liquidnet.client.admin.zhengzai.adam.dto.AdamMemberCodeExcelDto;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberCodeAdminService;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberCodeBatchAdminService;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberPriceAdminService;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.adam.dto.admin.AdamMemberCodeGenParam;
import com.liquidnet.service.adam.dto.admin.AdamMemberCodeListParam;
import com.liquidnet.service.adam.entity.AdamMemberCode;
import com.liquidnet.service.adam.entity.AdamMemberCodeBatch;
import com.liquidnet.service.adam.entity.AdamMemberPrice;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
//@Api(tags = "会员码管理")
@Controller
@RequestMapping("adam/mcode")
public class AdamMemberCodeAdminController extends BaseController {
private final String prefix = "zhengzai/adam/member/code";
@Autowired
IAdamMemberCodeBatchAdminService adamMemberCodeBatchAdminService;
@Autowired
IAdamMemberCodeAdminService adamMemberCodeAdminService;
@Autowired
IAdamMemberPriceAdminService adamMemberPriceAdminService;
@Autowired
RedisUtil redisUtil;
@GetMapping("mgt")
public String viewCodeMgt(@RequestParam String memberId, ModelMap mmap) {
mmap.put("memberId", memberId);
return prefix + "/code_mgt";
}
@RequiresPermissions("adam:member:code:mgt:list")
@Log(title = "会员管理:会员码:管理", businessType = BusinessType.LIST)
@PostMapping("mgt/list")
@ResponseBody
public TableDataInfo listCodeMgt(@RequestParam String memberId) {
// TODO: 2021/9/23 码生成记录
LambdaQueryWrapper<AdamMemberCodeBatch> queryWrapper = Wrappers.lambdaQuery(AdamMemberCodeBatch.class);
queryWrapper.eq(AdamMemberCodeBatch::getState, 1);
queryWrapper.select(
AdamMemberCodeBatch::getBatchNo,
AdamMemberCodeBatch::getMemberName,
AdamMemberCodeBatch::getMemberCombo,
AdamMemberCodeBatch::getGenNum,
AdamMemberCodeBatch::getUseNum,
AdamMemberCodeBatch::getDetail,
AdamMemberCodeBatch::getOperator,
AdamMemberCodeBatch::getCreatedAt
);
queryWrapper.orderByDesc(AdamMemberCodeBatch::getCreatedAt);
return getDataTable(adamMemberCodeBatchAdminService.list(queryWrapper));
}
// @ApiOperation(value = "会员码:创建")
@RequiresPermissions("adam:member:code:creation")
@Log(title = "会员管理:会员码:创建", businessType = BusinessType.INSERT)
@PostMapping("mgt/creation")
@ResponseBody
public AjaxResult creationCodeMgt(@Validated AdamMemberCodeGenParam parameter) {
int count = adamMemberPriceAdminService.count(
Wrappers.lambdaQuery(AdamMemberPrice.class)
.eq(AdamMemberPrice::getMemberPriceId, parameter.getMemberPriceId())
.eq(AdamMemberPrice::getMemberId, parameter.getMemberId())
.eq(AdamMemberPrice::getState, 1)
);
if (count <= 0) {
logger.warn("会员卡ID/价格ID无效[{}]", parameter);
return this.error("会员卡ID/价格ID无效");
}
return this.toAjax(adamMemberCodeAdminService.createGiftCode(parameter));
}
@GetMapping("view")
public String viewCode(@RequestParam String batchNo, ModelMap mmap) {
mmap.put("batchNo", batchNo);
return prefix + "/code";
}
// @ApiOperation(value = "会员码:列表")
@RequiresPermissions("adam:member:code:list")
@Log(title = "会员管理:会员码:列表", businessType = BusinessType.LIST)
@PostMapping("list")
@ResponseBody
public TableDataInfo listCode(AdamMemberCodeListParam parameter) {
return getDataTable(codeListQuery(parameter));
}
private List<AdamMemberCode> codeListQuery(AdamMemberCodeListParam parameter) {
LambdaQueryWrapper<AdamMemberCode> queryWrapper = Wrappers.lambdaQuery(AdamMemberCode.class).orderByDesc(AdamMemberCode::getCreatedAt);
queryWrapper.eq(AdamMemberCode::getBatchNo, parameter.getBatchNo());
queryWrapper.eq(AdamMemberCode::getType, 2);
queryWrapper.ne(AdamMemberCode::getState, 2);
if (null != parameter.getState()) {
queryWrapper.eq(AdamMemberCode::getState, parameter.getState());
}
queryWrapper.select(
AdamMemberCode::getCode,
AdamMemberCode::getState,
AdamMemberCode::getOperator,
AdamMemberCode::getCreatedAt,
AdamMemberCode::getValidity,
AdamMemberCode::getEffectAt,
AdamMemberCode::getExpireAt,
AdamMemberCode::getUseOrderNo,
AdamMemberCode::getUseUid,
AdamMemberCode::getUseAt
);
queryWrapper.orderByDesc(AdamMemberCode::getMemberNo);
return adamMemberCodeAdminService.list(queryWrapper);
}
// @ApiOperation(value = "会员码:导出")
@RequiresPermissions("adam:member:code:export")
@Log(title = "会员管理:会员码:导出", businessType = BusinessType.EXPORT)
@PostMapping("export")
@ResponseBody
public AjaxResult exportCode(AdamMemberCodeListParam parameter) {
List<AdamMemberCode> list = codeListQuery(parameter);
ExcelUtil<AdamMemberCodeExcelDto> excelUtil = new ExcelUtil<>(AdamMemberCodeExcelDto.class);
List<AdamMemberCodeExcelDto> excelList = new ArrayList<>();
list.forEach(r -> {
excelList.add(AdamMemberCodeExcelDto.getNew().copy(r));
});
return excelUtil.exportExcel(excelList, "会员码数据");
}
//
// @RequiresPermissions("adam:member:code:invalid")
// @Log(title = "会员管理:会员码:失效", businessType = BusinessType.UPDATE)
// @PostMapping("invalid")
// @ResponseBody
// public AjaxResult invalid(AdamMemberCodeOptParam optParam) {
// return toAjax(this.invalidRecoverCode(optParam, 4));
// }
//
// /**
// * 失效|退回会员兑换码
// *
// * @param optParam AdamMemberCodeOptParam
// * @param state 状态[0-可用|1-已用|2-无效|3-过期|4-失效|5-退回]
// * @return boolean
// */
// private boolean invalidRecoverCode(AdamMemberCodeOptParam optParam, int state) {
// String loginName = ShiroUtils.getLoginName();
// LocalDateTime now = LocalDateTime.now();
// logger.info("by:{},optParam:{},state:{}", loginName, optParam, state);
//
// int beforeState = state == 4 ? 0 : (state == 5 ? 1 : -1);
// ArrayList<String> updateCodeList = CollectionUtil.arrayListString();
// optParam.getCodes().forEach(r -> {
// String key = AdamRedisConst.INFO_MEMBER_CODE.concat(r);
// AdamMemberCodeVo vo = (AdamMemberCodeVo) redisUtil.get(key);
// if (null != vo && vo.getState() == beforeState) {
// redisUtil.del(key);
//
// updateCodeList.add(vo.getCode());
// }
// });
//
// if (!CollectionUtils.isEmpty(updateCodeList)) {
// LambdaUpdateWrapper<AdamMemberCode> memberCodeUpdateWrapper = Wrappers.lambdaUpdate(AdamMemberCode.class);
// memberCodeUpdateWrapper.eq(AdamMemberCode::getMemberId, optParam.getMemberId());
// memberCodeUpdateWrapper.eq(AdamMemberCode::getState, beforeState);
// memberCodeUpdateWrapper.in(AdamMemberCode::getCode, updateCodeList);
//
// memberCodeUpdateWrapper.set(AdamMemberCode::getState, state);
// memberCodeUpdateWrapper.set(AdamMemberCode::getOperator, loginName);
// memberCodeUpdateWrapper.set(AdamMemberCode::getUpdatedAt, now);
//
// return adamMemberCodeAdminService.update(memberCodeUpdateWrapper);
// }
// return false;
// }
//
// @RequiresPermissions("adam:member:code:recover")
// @Log(title = "会员管理:会员码:退回", businessType = BusinessType.UPDATE)
// @PostMapping("recover")
// @ResponseBody
// public AjaxResult recover(AdamMemberCodeOptParam optParam) {
// return toAjax(this.invalidRecoverCode(optParam, 5));
// }
}
package com.liquidnet.client.admin.web.controller.zhengzai.adam;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.liquidnet.client.admin.common.annotation.Log;
import com.liquidnet.client.admin.common.core.controller.BaseController;
import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.common.enums.BusinessType;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberOrderAdminService;
import com.liquidnet.service.adam.dto.MemberOrderDto;
import com.liquidnet.service.adam.dto.param.admin.MemberOrderListReq;
import com.liquidnet.service.adam.dto.admin.AdamMemberOrderRefundParam;
import com.liquidnet.service.adam.dto.admin.MemberOrderListReq;
import com.liquidnet.service.adam.dto.vo.admin.MemberOrderDetailAdminVo;
import com.liquidnet.service.adam.entity.AdamMemberOrder;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
......@@ -27,8 +33,7 @@ import java.util.List;
*/
@Controller
@RequestMapping("adam/order")
public class AdamMemberOrderController extends BaseController
{
public class AdamMemberOrderAdminController extends BaseController {
private String prefix = "zhengzai/adam/order";
@Autowired
......@@ -36,30 +41,21 @@ public class AdamMemberOrderController extends BaseController
@RequiresPermissions("adam:order:orderlist:view")
@GetMapping("/orderList")
public String order()
{
public String order() {
return prefix + "/orderList/order";
}
/**
* 查询【请填写功能名称】列表
*/
@Log(title = "会员订单", businessType = BusinessType.LIST)
@Log(title = "会员管理:会员订单:列表", businessType = BusinessType.LIST)
@RequiresPermissions("adam:order:orderlist:list")
@PostMapping("/orderList/list")
@ResponseBody
public TableDataInfo list(MemberOrderListReq memberOrderListReq)
{
public TableDataInfo list(MemberOrderListReq memberOrderListReq) {
startPage();
List<MemberOrderDto> list = adamMemberOrderAdminService.getMemberOrderList(memberOrderListReq);
return getDataTable(list);
}
/**
* 订单详情
*/
@Log(title = "会员订单", businessType = BusinessType.DETAIL)
@Log(title = "会员管理:会员订单:详情", businessType = BusinessType.DETAIL)
@RequiresPermissions("adam:order:orderlist:detail")
@GetMapping("/orderList/detail/{orderId}")
public String orderDetail(@PathVariable("orderId") String orderId, ModelMap mmap) {
......@@ -68,73 +64,25 @@ public class AdamMemberOrderController extends BaseController
return prefix + "/orderList/detail";
}
// /**
// * 导出【请填写功能名称】列表
// */
// @RequiresPermissions("adam:order:export")
// @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
// @PostMapping("/export")
// @ResponseBody
// public AjaxResult export(AdamMemberOrder adamMemberOrder)
// {
// List<AdamMemberOrder> list = adamMemberOrderService.selectAdamMemberOrderList(adamMemberOrder);
// ExcelUtil<AdamMemberOrder> util = new ExcelUtil<AdamMemberOrder>(AdamMemberOrder.class);
// return util.exportExcel(list, "【请填写功能名称】数据");
// }
// /**
// * 新增【请填写功能名称】
// */
// @GetMapping("/add")
// public String add()
// {
// return prefix + "/add";
// }
@Log(title = "会员管理:会员订单:退款", businessType = BusinessType.MORDER_REFUND)
@RequiresPermissions("adam:order:orderlist:refund")
@PostMapping("/orderList/refund")
@ResponseBody
public AjaxResult orderRefund(@Validated AdamMemberOrderRefundParam parameter) {
LambdaQueryWrapper<AdamMemberOrder> queryWrapper = Wrappers.lambdaQuery(AdamMemberOrder.class)
.eq(AdamMemberOrder::getOrderNo, parameter.getOrderNo());
AdamMemberOrder memberOrder = adamMemberOrderAdminService.getOne(queryWrapper);
// /**
// * 新增保存【请填写功能名称】
// */
// @RequiresPermissions("adam:order:add")
// @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
// @PostMapping("/add")
// @ResponseBody
// public AjaxResult addSave(AdamMemberOrder adamMemberOrder)
// {
// return toAjax(adamMemberOrderService.insertAdamMemberOrder(adamMemberOrder));
// }
if (null == memberOrder) {
return AjaxResult.warn("订单不存在");
}
if (memberOrder.getState() != 1) {
return AjaxResult.warn(String.format("该订单[%s]不支持退款,请核实订单状态", parameter.getOrderNo()));
}
if (memberOrder.getPricePaid().compareTo(parameter.getRefundAmt()) < 0) {
return AjaxResult.warn("退款金额超出订单实际支付金额");
}
// /**
// * 修改【请填写功能名称】
// */
// @GetMapping("/edit/{mid}")
// public String edit(@PathVariable("mid") String mid, ModelMap mmap)
// {
// AdamMemberOrder adamMemberOrder = adamMemberOrderService.selectAdamMemberOrderById(mid);
// mmap.put("adamMemberOrder", adamMemberOrder);
// return prefix + "/edit";
// }
//
// /**
// * 修改保存【请填写功能名称】
// */
// @RequiresPermissions("adam:order:edit")
// @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
// @PostMapping("/edit")
// @ResponseBody
// public AjaxResult editSave(AdamMemberOrder adamMemberOrder)
// {
// return toAjax(adamMemberOrderService.updateAdamMemberOrder(adamMemberOrder));
// }
//
// /**
// * 删除【请填写功能名称】
// */
// @RequiresPermissions("adam:order:remove")
// @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
// @PostMapping( "/remove")
// @ResponseBody
// public AjaxResult remove(String ids)
// {
// return toAjax(adamMemberOrderService.deleteAdamMemberOrderByIds(ids));
// }
return adamMemberOrderAdminService.refundProcessing(parameter, memberOrder);
}
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment