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

Commit 6115e352 authored by zhengfuxin's avatar zhengfuxin

Merge remote-tracking branch 'origin/douYinPay' into dev_douYinPay

# Conflicts:
#	liquidnet-bus-api/liquidnet-service-dragon-api/src/main/java/com/liquidnet/service/dragon/constant/DragonConstant.java
#	liquidnet-bus-config/liquidnet-config/liquidnet-service-dragon.yml
#	liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/ServiceDragonApplication.java
#	liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/utils/PayDouYinpayUtils.java
parents 13011fa4 dc043569
......@@ -56,7 +56,7 @@ alter table adam_member_price modify price_fixed decimal(8, 2) null comment '购
alter table adam_member_price add price_special decimal(8, 2) null comment '特价:首次、首年优惠价' after price_fixed;
# 会员码表调整
alter table adam_member_code modify state tinyint null comment '状态[0-可用|1-已用|2-无效|3-过期|4-失效|5-退回]';
alter table adam_member_code modify state tinyint null comment '状态[0-可用|1-已用|2-无效]';
create index idx_amember_code_id on adam_member_code (code);
alter table adam_member_code add validity int null comment '有效期(单位天)' after state;
alter table adam_member_code add effect_at datetime(3) null comment '生效时间' after validity;
......@@ -163,7 +163,7 @@ create table adam_member_code_batch
) engine = InnoDB comment '会员码批次记录';
create index idx_adam_member_code_batch_no on adam_member_code_batch (batch_no);
alter table adam_member_code add batch_no int null comment '~`adam_member_code_batch.batch_no`' after mid;
alter table adam_member_code add batch_no varchar(30) null comment '~`adam_member_code_batch.batch_no`' after type;
# -- >>------------------------------------------------------------------------------------ |20210817会员与券改版
# 券发放管理
drop table if exists candy_mgt_coupon;
......@@ -174,7 +174,7 @@ create table candy_mgt_coupon
coupon_id varchar(64) not null comment '~candy_coupon.coupon_id',
state tinyint comment '发放状态[0-未发放|1-已发放|2-无效|3-已取消|9-发放中|10-会员礼包初始模版]',
# bind_type smallint comment '领取方式[0-用户输入兑换|1-发放至用户]',
# bind_type smallint comment '领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换]',
event_amt int comment '发放量',
event_type tinyint comment '发放类型[0-保留|1-会员|2-手机号|10-全体用户]',
event_limit text comment '`发放类型`为2-手机号时发放手机号以,分隔',
......@@ -203,7 +203,7 @@ create table candy_coupon
exclusive smallint comment '专享标识[0-常规|1-会员礼包]',
busi_type smallint comment '业务类别[0-全场|1-演出|2-商品|3-优先购]',
cou_type smallint comment '券类型[1-代金券|2-满减券|3-兑换券|4-折扣券|101-优先券]',
bind_type smallint comment '领取方式[0-用户输入兑换|1-发放至用户]',
bind_type smallint comment '领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换]',
discount decimal(8, 2) comment '折扣[8折即0.8]',
val_face decimal(8, 2) comment '面值',
......
drop table if exists stone_score_logs;
create table stone_score_logs
(
mid bigint unsigned auto_increment primary key,
logs_id varchar(64) default '' comment 'id',
uid varchar(64) default '' comment '用户id',
score decimal(8, 2) default 0 comment '积分',
content varchar(255) default '' comment '积分动态明细',
reason varchar(255) default '' comment '变更原因',
overdue_at datetime comment '过期时间',
created_at datetime ,
updated_at datetime ,
comment text,
KEY `stone_score_logs_uid_index` (`uid`),
KEY `stone_score_logs_logsId_index` (`logs_id`)
) engine = InnoDB comment '积分日志表';
drop table if exists stone_score_items;
create table stone_score_items
(
mid bigint unsigned auto_increment primary key,
item_id varchar(64) default '' comment 'id',
target_id varchar(64) default '' comment '目标id',
target_title varchar(64) default '' comment '目标名称',
type integer default 0 comment '目标类型[1-券|1x-商品维度|2x-演出维度]',
img varchar(255) default '' comment '展示图',
score decimal(8, 2) default 0 comment '所需积分',
price decimal(8, 2) default 0 comment '所需金额',
general_total int default 0 comment '总库存[-999-不限]',
general_surplus int default 0 comment '剩余库存',
limit_count int default 0 comment '限购数量[0-不限]',
details longtext default NULL comment '商品详情',
notice longtext default NULL comment '注意事项',
status int default 0 comment '状态[-999-全部-1-删除|0-未上架|1-已上架|2-定时上架]',
start_time datetime NULL COMMENT '定时上架-时间',
end_time datetime NULL COMMENT '定时下架-时间',
created_at datetime ,
updated_at datetime ,
comment text,
KEY `stone_score_items_item_id_index` (`item_id`),
KEY `stone_score_items_target_id_index` (`target_id`),
KEY `stone_score_items_status_index` (`status`)
) engine = InnoDB comment '积分物品表';
drop table if exists stone_score_user;
create table stone_score_user
(
mid bigint unsigned auto_increment primary key,
score_id varchar(64) default '' comment 'id',
uid varchar(64) default '' comment '用户id',
status int default 1 comment '状态[1-正常|2-冻结]',
created_at datetime ,
updated_at datetime ,
comment text,
KEY `stone_score_user_uid_index` (`uid`)
) engine = InnoDB comment '积分用户表';
drop table if exists stone_score_order;
create table stone_score_order
(
mid bigint unsigned auto_increment primary key,
order_id varchar(64) default '' comment 'id',
uid varchar(64) default '' comment '用户id',
user_name varchar(255) NOT NULL DEFAULT '' COMMENT '用户昵称',
user_mobile varchar(255) NOT NULL DEFAULT '' COMMENT '用户手机号',
item_id varchar(255) NOT NULL DEFAULT '' COMMENT '积分物品id',
target_title varchar(255) NOT NULL DEFAULT '' COMMENT '物品名称',
order_code varchar(255) NOT NULL DEFAULT '' COMMENT '订单号',
number int(32) NOT NULL DEFAULT 0 COMMENT '数量',
price decimal(8, 2) NOT NULL DEFAULT '0.00' COMMENT '单价',
score decimal(8, 2) NOT NULL DEFAULT '0.00' COMMENT '积分',
price_express decimal(8, 2) NOT NULL DEFAULT '0.00' COMMENT '快递价格',
price_actual decimal(8, 2) NOT NULL DEFAULT '0.00' COMMENT '实付价格',
pay_type varchar(255) NOT NULL DEFAULT '' COMMENT '选择支付方式[SCORE-积分]',
payment_type varchar(255) NULL DEFAULT '' COMMENT '实际支付方式[SCORE-积分]',
payment_id varchar(255) NULL DEFAULT '' COMMENT '支付的订单号',
time_pay varchar(255) NULL DEFAULT '' COMMENT '支付时间',
pay_countdown_minute int(32) NOT NULL DEFAULT 15 COMMENT '订单过期时间(分钟)',
status tinyint NOT NULL DEFAULT 0 COMMENT '订单状态[0-待付款|1-已付款|2-已关闭|3-正在退款|4-已退款|5-待关闭|6-部分退款]',
pay_status tinyint NOT NULL DEFAULT 0 COMMENT '支付状态[0-未支付|1-已支付|2-支付失败]',
created_at datetime ,
updated_at datetime ,
comment text,
KEY `stone_score_order_uid_index` (`uid`),
KEY `stone_score_order_status_index` (`status`),
) engine = InnoDB comment '积分订单表';
ALTER TABLE kylin_order_tickets ADD `ip_address` varchar(255) DEFAULT '' COMMENT 'ip地址';
\ No newline at end of file
......@@ -33,9 +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 = "地区[100] ~ 已废除,参见[province、city、county]", example = "北京 北京市 朝阳区")
// @NotBlank(message = "地区不能为空")
// private String area;
@ApiModelProperty(position = 16, required = true, value = "收获地址")
@Size(min = 1, max = 64, message = "收获地址长度限制1-64位字符")
@NotBlank(message = "收获地址不能为空")
......@@ -60,4 +60,14 @@ public class AdamMemberOrderParam implements Serializable {
private String name;
@ApiModelProperty(position = 31, required = false, value = "身份证件号[未实名时必传]", example = "111111111111111111")
private String idCard;
@ApiModelProperty(position = 32, required = true, value = "常住地/省[50] ~ 替换原字段[area]", example = "北京市")
@NotBlank(message = "省份不能为空")
private String province;
@ApiModelProperty(position = 33, required = true, value = "常住地/市[50] ~ 替换原字段[area]", example = "北京市")
@NotBlank(message = "城市不能为空")
private String city;
@ApiModelProperty(position = 34, required = true, value = "常住地/区县[50] ~ 替换原字段[area]", example = "朝阳区")
@NotBlank(message = "区县不能为空")
private String county;
}
......@@ -33,13 +33,18 @@ public class AdamUserInfoParam implements java.io.Serializable {
@Pattern(regexp = LnsRegex.Valid.DATETIME_YMD, message = "生日格式有误")
// @NotBlank(message = "生日不能为空")
private String birthday;
@ApiModelProperty(position = 16, required = true, value = "常住地/区域[100]", example = "北京 北京市 朝阳区")
@ApiModelProperty(position = 16, required = false, value = "常住地/区域[100] ~ 已废除,参见[province、city、county]", example = "北京 北京市 朝阳区")
// @NotBlank(message = "常住地不能为空")
private String area;
@ApiModelProperty(position = 17, required = true, value = "签名[30]", example = "...................")
// @Size(max = 30, message = "已超出签名长度限制")
private String signature;
@ApiModelProperty(position = 18, required = true, value = "标签[500]", example = "[{\"val\":\"MMS01\",\"desc\":\"民歌\",\"tagVos\":[{\"val\":\"MMS0101\",\"desc\":\"A\"},{\"val\":\"MMS0102\",\"desc\":\"B\"}]},{\"val\":\"MMS02\",\"desc\":\"house\",\"tagVos\":[{\"val\":\"MMS0201\",\"desc\":\"C\"}]}]")
// @NotNull
private List<AdamTagParentVo> tagMe;
@ApiModelProperty(position = 19, required = false, value = "常住地/省[50] ~ 替换原字段[area]", example = "北京市")
private String province;
@ApiModelProperty(position = 20, required = false, value = "常住地/市[50] ~ 替换原字段[area]", example = "北京市")
private String city;
@ApiModelProperty(position = 21, required = false, value = "常住地/区县[50] ~ 替换原字段[area]", example = "朝阳区")
private String county;
}
......@@ -4,12 +4,10 @@ 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 String code;
private Integer state;
}
......@@ -23,8 +23,14 @@ public class AdamChimeUinfoDto implements Serializable, Cloneable {
private String birthday;
@ApiModelProperty(position = 6, value = "签名")
private String signature;
@ApiModelProperty(position = 7, value = "常住地/区域")
@ApiModelProperty(position = 7, value = "常住地/区域~ 已废除,参见[province、city、county]")
private String area;
@ApiModelProperty(position = 8, value = "常住地/省 ~ 替换原字段[area]")
private String province;
@ApiModelProperty(position = 9, value = "常住地/市 ~ 替换原字段[area]")
private String city;
@ApiModelProperty(position = 10, value = "常住地/区县 ~ 替换原字段[area]")
private String county;
private static final AdamChimeUinfoDto obj = new AdamChimeUinfoDto();
......@@ -46,6 +52,10 @@ public class AdamChimeUinfoDto implements Serializable, Cloneable {
this.setBirthday(source.getBirthday());
this.setSignature(source.getSignature());
this.setArea(source.getArea());
//
this.setProvince(source.getProvince());
this.setCity(source.getCity());
this.setCounty(source.getCounty());
return this;
}
}
......@@ -12,7 +12,7 @@ public class AdamMemberOrderPreviewVo implements Serializable {
private static final long serialVersionUID = 2035177741044060344L;
@ApiModelProperty(position = 10, value = "会员ID[50]")
private String memberId;
@ApiModelProperty(position = 11, value = "会员标题[50]", example = "摩登天空会员")
@ApiModelProperty(position = 11, value = "会员标题[50]")
private String memberTitle;
@ApiModelProperty(position = 12, value = "价格详情")
private AdamMemberPriceVo priceVo;
......@@ -20,11 +20,18 @@ public class AdamMemberOrderPreviewVo implements Serializable {
private AdamRealInfoVo realInfoVo;
@ApiModelProperty(position = 14, value = "生日")
private String birthday;
@ApiModelProperty(position = 15, value = "常住地/区域[100]", example = "北京 北京市 朝阳区")
@ApiModelProperty(position = 15, value = "常住地/区域 ~ 已废除,参见[province、city、county]")
private String area;
@ApiModelProperty(position = 20, value = "标记[0-普通用户|2-过期会员|10-老会员|11-新会员]")
private Integer stageMarker;
@ApiModelProperty(position = 21, value = "常住地/省 ~ 替换原字段[area]")
private String province;
@ApiModelProperty(position = 22, value = "常住地/市 ~ 替换原字段[area]")
private String city;
@ApiModelProperty(position = 23, value = "常住地/区县 ~ 替换原字段[area]")
private String county;
private static final AdamMemberOrderPreviewVo obj = new AdamMemberOrderPreviewVo();
public static AdamMemberOrderPreviewVo getNew() {
......
......@@ -10,7 +10,7 @@ import java.util.List;
@Data
public class AdamRscPolymer01Vo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = -4945093532123934888L;
@ApiModelProperty(position = 1, value = "会员身份[0-非会员,1-会员]")
@ApiModelProperty(position = 1, value = "标记[0-普通用户|2-过期会员|10-老会员|11-新会员]")
private int membership;
@ApiModelProperty(position = 2, value = "收货地址")
private AdamAddressesVo addressesVo;
......
......@@ -23,6 +23,9 @@ public class AdamUserInfoSimpleVo implements java.io.Serializable, Cloneable {
private String mobile;
@ApiModelProperty(position = 14, value = "昵称[32]")
private String nickname;
@ApiModelProperty(position = 15, value = "头像")
private String avatar;
private static final AdamUserInfoSimpleVo obj = new AdamUserInfoSimpleVo();
......
......@@ -14,6 +14,7 @@ import org.apache.commons.lang3.StringUtils;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Pattern;
@ApiModel(value = "AdamUserInfoVo", description = "用户详情")
@Data
......@@ -35,7 +36,7 @@ public class AdamUserInfoVo implements java.io.Serializable, Cloneable {
private AdamTagVo sex;
@ApiModelProperty(position = 17, value = "生日[YYYY-MM-DD]")
private String birthday;
@ApiModelProperty(position = 18, value = "常住地/区域")
@ApiModelProperty(position = 18, value = "常住地/区域 ~ 已废除,参见[province、city、county]")
private String area;
@ApiModelProperty(position = 19, value = "个性签名")
private String signature;
......@@ -63,7 +64,15 @@ public class AdamUserInfoVo implements java.io.Serializable, Cloneable {
@ApiModelProperty(position = 30, value = "标记[0-普通用户|2-过期会员|10-老会员|11-新会员]")
private Integer stageMarker;
@ApiModelProperty(position = 31, value = "常住地/省 ~ 替换原字段[area]")
private String province;
@ApiModelProperty(position = 32, value = "常住地/市 ~ 替换原字段[area]")
private String city;
@ApiModelProperty(position = 33, value = "常住地/区县 ~ 替换原字段[area]")
private String county;
private static final AdamUserInfoVo obj = new AdamUserInfoVo();
// private static final Pattern PATTERN_SPACE = Pattern.compile(" ");
public static AdamUserInfoVo getNew() {
try {
......@@ -85,6 +94,11 @@ public class AdamUserInfoVo implements java.io.Serializable, Cloneable {
this.setSex(JsonUtils.fromJson(source.getSex(), AdamTagVo.class));
this.setBirthday(source.getBirthday());
this.setArea(source.getArea());
this.setProvince(source.getProvince());
this.setCity(source.getCity());
this.setCounty(source.getCounty());
//
this.setSignature(source.getSignature());
this.setAvatar(source.getAvatar());
......@@ -140,6 +154,12 @@ public class AdamUserInfoVo implements java.io.Serializable, Cloneable {
return this;
}
/**
* 用户会员身份识别
*
* @param userMemberVo
* @return AdamUserInfoVo
*/
public AdamUserInfoVo rating(AdamUserMemberVo userMemberVo) {
if (null == userMemberVo) {
this.setStageMarker(0);
......@@ -150,4 +170,36 @@ public class AdamUserInfoVo implements java.io.Serializable, Cloneable {
}
return this;
}
// /**
// * 用户常驻地处理
// * <p>
// * 原单字段[area]拆分为三个字段[province、city、county]
// * </p>
// *
// * @return AdamUserInfoVo
// */
// public AdamUserInfoVo ratingArea() {
// if (StringUtils.isEmpty(this.province)) {
// String[] areaArr = PATTERN_SPACE.split(this.area, 0);
// for (int i = 0; i < areaArr.length; i++) {
// String areaTmp = areaArr[i];
// if (StringUtils.isEmpty(areaTmp) || areaTmp.trim().length() <= 1) {
// continue;
// }
// switch (i) {
// case 0:
// this.setProvince(areaTmp);
// break;
// case 1:
// this.setCity(areaTmp);
// break;
// case 2:
// this.setCounty(areaTmp);
// break;
// }
// }
// }
// return this;
// }
}
\ No newline at end of file
......@@ -41,7 +41,7 @@ public class CandyMemberCouponBuildParam {
@ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券|101-优先券]", allowableValues = "1,2,101")
private Integer couType;
// @NotNull(message = "券领取方式不能为空")
// @ApiModelProperty(required = true, value = "领取方式[0-用户输入兑换|1-发放至用户]", allowableValues = "0,1")
// @ApiModelProperty(required = true, value = "领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换]", allowableValues = "0,1")
// private Integer bindType;
// @ApiModelProperty(required = false, value = "折扣[8折即0.8]", example = "0.8")
// private BigDecimal discount;
......
......@@ -28,7 +28,7 @@ public class CandyMgtCouponBuildParam {
@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")
@ApiModelProperty(required = true, value = "领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换]", allowableValues = "0,1,2")
private Integer bindType;
@ApiModelProperty(required = false, value = "折扣[8折即0.8]", example = "0.8")
private BigDecimal discount;
......@@ -47,7 +47,7 @@ public class CandyMgtCouponBuildParam {
@Min(value = 1, message = "有效期不能小于1")
@ApiModelProperty(required = true, value = "有效期(单位天)", example = "30")
private Integer validity;
@Min(value = 1, message = "兑换有效期不能小于1")
// @Min(value = 1, message = "兑换有效期不能小于1")
@ApiModelProperty(required = false, value = "兑换有效期(单位天)", example = "30")
private Integer redeemValidity;
//private LocalDateTime redeemStart;
......
......@@ -13,13 +13,27 @@ import com.liquidnet.commons.lang.util.IDGenerator;
*/
public class ChimeConstant {
public static String USER_ID_PREFIX = "CHE";
public static String LOG_ID_PREFIX = "LOG";
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 final String REDIS_USER_OPEN_NUM = PREFIX.concat("per:openNum:Allow");
public static final String REDIS_USER_TO_DOTASK = PREFIX.concat("per:toDotask:Allow");
public static String getNewUserId(){
return USER_ID_PREFIX + IDGenerator.nextTimeId();
}
public static String getLogMid(){
return LOG_ID_PREFIX + IDGenerator.nextTimeId();
}
public static final String LOG_USER_OPERATION_LIKE = "1";
public static final String LOG_USER_OPERATION_DISLIKE = "2";
public static final String LOG_USER_OPERATION_LIKE_MYSELF_CLICK = "3";
public static final String LOG_USER_OPERATION_DISLIKE_MYSELF_CLICK = "4";
}
package com.liquidnet.service.chime.dto;
import lombok.Data;
@Data
public class ChimeUserDoTask {
private String code;
private Object object;
private String message;
private Boolean success;
}
\ No newline at end of file
......@@ -33,12 +33,18 @@ public class ChimeUserInfoDto {
private String birthday;
@ApiModelProperty(position = 7, value = "签名")
private String signature;
@ApiModelProperty(position = 8, value = "常住地/区域")
@ApiModelProperty(position = 8, value = "常住地/区域 ~ 已废除,参见[province、city、county]")
private String area;
@ApiModelProperty(position = 9, value = "在场ID")
private String joinPerformanceId;
@ApiModelProperty(position = 10, value = "用户标签")
private List<ChimeUserTagDto> userTags;
@ApiModelProperty(position = 11, value = "常住地/省 ~ 替换原字段[area]")
private String province;
@ApiModelProperty(position = 12, value = "常住地/市 ~ 替换原字段[area]")
private String city;
@ApiModelProperty(position = 13, value = "常住地/区县 ~ 替换原字段[area]")
private String county;
private static final ChimeUserInfoDto obj = new ChimeUserInfoDto();
public static ChimeUserInfoDto getNew() {
......
......@@ -25,4 +25,8 @@ public interface IChimeUserService {
ChimeUserInfoDto getUserByUserId(String userId);
boolean switchPerformanceId(String performanceId);
boolean userLikeOperation(String currentUserId,String targetUserId);
boolean userDisLikeOperation(String currentUserId,String targetUserId);
}
......@@ -34,6 +34,14 @@ public class ChimeUserInfoVo {
private String createdAt;
@ApiModelProperty(position = 15, value = "更新时间")
private String updatedAt;
@ApiModelProperty(position = 10, value = "喜欢操作")
private long likeCount;
@ApiModelProperty(position = 11, value = "不喜欢操作")
private long disLikeCount;
@ApiModelProperty(position = 10, value = "点击喜欢操作")
private long clickLikeCount;
@ApiModelProperty(position = 11, value = "点击不喜欢操作")
private long clickDisLikeCount;
private static final ChimeUserInfoVo obj = new ChimeUserInfoVo();
public static ChimeUserInfoVo getNew() {
......
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 = "ChimeUserInfoVo", description = "社交用户信息")
@Data
public class ChimeUserOperLogVo {
private String mid;
private static final long serialVersionUID = 5325511589667456213L;
@ApiModelProperty(position = 0, value = "用户ID[64]")
private String currentUserId;
@ApiModelProperty(position = 1, value = "性别")
private String targetUserId;
@ApiModelProperty(position = 2, value = "操作类型")
private String opType;
@ApiModelProperty(position = 3, value = "创建时间")
private String createdAt;
private static final ChimeUserOperLogVo obj = new ChimeUserOperLogVo();
public static ChimeUserOperLogVo getNew() {
try {
return (ChimeUserOperLogVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new ChimeUserOperLogVo();
}
}
}
......@@ -15,11 +15,12 @@ public class DragonConstant {
public static final String REFUND_TYPE_JS_WEPAY="JSWEPAY";//,"微信内网页、微信公众号"),
public static final String REFUND_TYPE_WAP_UNION="WAPUNIONPAY";//,"微信内网页、微信公众号"),
public static final String REFUND_TYPE_APP_UNION="APPUNIONPAY";//,"微信内网页、微信公众号"),
public static final String REFUND_TYPE_APPLET_DOUYIN="APPLETDOUYIN";//,"微信内网页、微信公众号"),
public static final String REFUND_TYPE_APPLET_DOUYIN="APPLETDOUYINPAY";//,"applet 抖音支付"),
public static final String REFUND_TYPE_APPLET_WEPAY="APPLETWEPAY";//,"微信小程序");
public static final String REFUND_REDIS_KET="dragon:refund:refundCode:";// 订单号对应回调地址
public static final String ORDERCODE_REDIS_KET="dragon:refund:orderCode:";// 退款订单号对应 支付订单号
public static final String REDIS_KET_PAY_CODE="dragon:pay:code:";// 支付流水号
public enum PayChannelEnum{
......@@ -180,7 +181,8 @@ public class DragonConstant {
PAYMENT_TYPE_WEB_ALIPAY("WEBALIPAY","alipay","web","电脑网页内支付宝即时到账支付"),
PAYMENT_TYPE_WEB_WEPAY("WEBWEPAY","wepay","web","电脑网页内微信二维码支付,用户打开微信扫码支付"),
PAYMENT_TYPE_JS_WEPAY("JSWEPAY","wepay","js","微信内网页、微信公众号"),
PAYMENT_TYPE_APPLET_WEPAY("APPLETWEPAY","wepay","applet","微信小程序");
PAYMENT_TYPE_APPLET_WEPAY("APPLETWEPAY","wepay","applet","微信小程序"),
PAYMENT_TYPE_APPLET_DOUYINPAY("APPLETDOUYINPAY","douyinpay","applet","抖音小程序");
private String code;
private String message;
......
......@@ -10,6 +10,7 @@ public class PerformanceExpressSearchAdminParam {
// 演出搜索
private String title;
private String performancesId;
private String ticketsId;
// 分页
private Integer pageSize;
......
......@@ -23,4 +23,22 @@ public class PayDataVo implements Serializable {
private String signType;
private String redirectUrl;
private String orderStr;
private String orderId;
private String orderToken;
public String getOrderToken() {
return orderToken==null?"":orderToken;
}
public void setOrderToken(String orderToken) {
this.orderToken = orderToken==null?"":orderToken;
}
public String getOrderId() {
return orderId==null?"":orderId;
}
public void setOrderId(String orderId) {
this.orderId = orderId==null?"":orderId;
}
}
......@@ -17,15 +17,6 @@ public class PayInnerResultVo implements Serializable,Cloneable {
private String returnUrl;
private BigDecimal price;
private PayDataVo payData;
private String orderToken;
public String getOrderToken() {
return orderToken==null?"":orderToken;
}
public void setOrderToken(String orderToken) {
this.orderToken = orderToken==null?"":orderToken;
}
private static final PayInnerResultVo obj = new PayInnerResultVo();
public static PayInnerResultVo getNew() {
......
<?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-stone-api</artifactId>
<dependencies>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-service-stone-do</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.liquidnet.service.stone.constant;
public class StoneConstant {
//ctx
private static final String CTX="stone:";
//user
public static final String USER=CTX.concat("user:");
//item
public static final String ITEM=CTX.concat("item:");
//logsList 积分日志列表
public static final String LOGS_LIST=ITEM.concat("logs:list:");
//orderList 积分订单列表
public static final String ORDER_LIST=ITEM.concat("order:list:");
//orderList 积分订单列表
public static final String ORDER_DETAILS=ITEM.concat("order:details:");
//剩余库存
public static final String SURPLUS_GENERAL = ":surplusGeneral";
//剩余积分
public static final String SURPLUS_SCORE = ":surplusScore";
//已用积分
public static final String USE_SCORE = ":useScore";
//限购
public static final String ITEM_LIMIT = ITEM.concat("limit:");
//锁
public static final String LOCK = ITEM.concat("lock:");
}
package com.liquidnet.service.stone.param;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@ApiModel(value = "StoneItemBuildParam", description = "新建积分物品")
@Data
public class StoneItemBuildParam {
@ApiModelProperty(required = false, value = "积分物品id[创建不传]", example = "1")
private String itemId;
@NotBlank(message = "目标物品不能为空")
@ApiModelProperty(required = true, value = "目标物品id", example = "1")
private String targetId;
@NotBlank(message = "目标物品不能为空")
@ApiModelProperty(required = true, value = "目标物品标题", example = "测试券1")
private String targetTitle;
@NotBlank(message = "展示图不能为空")
@ApiModelProperty(required = true, value = "展示图", example = "https://image.baidu.com/search/albumsdetail?tn=albumsdetail&word=%E7%8C%AB&album_tab=%E5%8A%A8%E7%89%A9&album_id=692&rn=30&fr=searchresult&dyTabStr=MCwzLDYsMSw0LDUsOCw3LDIsOQ%3D%3D")
private String img;
@NotBlank(message = "所需积分不能为空")
@ApiModelProperty(required = true, value = "所需积分", example = "10")
private BigDecimal score;
@NotBlank(message = "总库存不能为空")
@ApiModelProperty(required = true, value = "总库存[-999-不限]", example = "100")
private Integer generalTotal;
@NotBlank(message = "限购数量为空")
@ApiModelProperty(required = true, value = "限购数量[0-不限]", example = "1")
private Integer limitCount;
@NotBlank(message = "商品详情不能为空")
@ApiModelProperty(required = true, value = "商品详情", example = "商品详情")
private String details;
@NotBlank(message = "注意事项不能为空")
@ApiModelProperty(required = true, value = "注意事项", example = "注意事项")
private String notice;
@NotBlank(message = "上架状态不能为空")
@ApiModelProperty(required = true, value = "上架状态[1-不限|2-定时|7-下线]", example = "1")
private Integer status;
@ApiModelProperty(required = false, value = "上架时间[status = 2 必传]", example = "2021-10-20T12:52:42")
private String startTime;
@ApiModelProperty(required = false, value = "下架时间[status = 2 必传]", example = "2021-10-21T12:52:42")
private String endTime;
}
package com.liquidnet.service.stone.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class StoneListParam {
/**
* 名称
*/
@ApiModelProperty(required = false, value = "名称", example = "测试券1")
private String title;
/**
* 状态[-999-全部|1-上架中|2-待上架|7-已下架]
*/
@ApiModelProperty(required = false, value = "状态[-999-全部|1-上架中|2-待上架|7-已下架]", example = "1")
private Integer state;
/**
* 状态[1-券]
*/
@ApiModelProperty(required = false, value = "状态[1-券]", example = "1")
private Integer type;
}
package com.liquidnet.service.stone.service;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.stone.entity.StoneScoreItems;
import com.liquidnet.service.stone.vo.StoneItemListVo;
import com.liquidnet.service.stone.vo.StoneScoreItemVo;
import java.util.List;
/**
* <p>
* 积分物品表 服务类
* </p>
*
* @author liquidnet
* @since 2021-10-19
*/
public interface IStoneScoreItemsService {
PageInfo<List<StoneItemListVo>> itemList(Integer page, Integer size);
ResponseDto<StoneScoreItemVo> itemDetails(String itemId);
}
package com.liquidnet.service.stone.service;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.stone.entity.StoneScoreLogs;
import com.liquidnet.service.stone.vo.StoneLogsListVo;
import com.liquidnet.service.stone.vo.StoneUserVo;
import java.util.HashMap;
import java.util.List;
/**
* <p>
* 积分日志表 服务类
* </p>
*
* @author liquidnet
* @since 2021-10-19
*/
public interface IStoneScoreLogsService {
/**
* 减少积分
*
* @param uid 用户ID
* @param score 变更积分 正数
* @param taskId [2111-admin访问]
* @param content 变更原因
* @return
*/
String deScore(String uid, Integer score, Integer taskId, String content);
/**
* 增加积分
*
* @param uid 用户ID
* @param score 变更积分 正数
* @param taskId [2111-admin访问]
* @param content 变更原因
* @return
*/
String inScore(String uid, Integer score, Integer taskId, String content);
/**
* 做任务
*
* @param taskId [
* taskId 0 每日任务:签到
* taskId 1 每日任务:购买演出
* taskId 2 每日任务:购买商品
* taskId 3 每日任务:划卡
* taskId 4 一次性任务:关注公众号
* taskId 5 一次性任务:完善信息
* taskId 6 一次性任务:完善头像
* taskId 7 一次性任务:打开消息推送
* taskId 8 一次性任务:体验在场
* ]
* @return
*/
ResponseDto<HashMap<String,Object>> doTask(Integer taskId,String uid);
ResponseDto<StoneUserVo> taskDetail();
/**
* 积分详情
* @param page
* @return
*/
PageInfo<List<StoneLogsListVo>> logList(Integer page);
}
package com.liquidnet.service.stone.service;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.stone.vo.StoneItemListVo;
import com.liquidnet.service.stone.vo.StoneOrderListVo;
import java.util.List;
/**
* <p>
* 积分订单表 服务类
* </p>
*
* @author liquidnet
* @since 2021-10-19
*/
public interface IStoneScoreOrderService {
ResponseDto<String> order(String itemId, Integer number);
PageInfo<List<StoneOrderListVo>> orderList(Integer page);
}
package com.liquidnet.service.stone.service;
import com.liquidnet.service.stone.dto.StoneScoreListDto;
/**
* <p>
* 积分用户表 服务类
* </p>
*
* @author liquidnet
* @since 2021-10-19
*/
public interface IStoneScoreUserService {
/**
* 获取积分商城 用户信息
* @return
*/
StoneScoreListDto stoneUserInfo();
}
package com.liquidnet.service.stone.vo;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.stone.entity.StoneScoreItems;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@ApiModel
public class StoneItemListVo implements Serializable, Cloneable {
/**
* id
*/
@ApiModelProperty(value = "id", example = "1")
private String itemId;
/**
* 积分物品封面图
*/
@ApiModelProperty(value = "积分物品封面图", example = "http://xxxxx.png")
private String img;
/**
* 积分物品名称
*/
@ApiModelProperty(value = "积分物品名称", example = "测试券")
private String targetTitle;
/**
* 目标类型[1-券|1x-商品维度|2x-演出维度]
*/
@ApiModelProperty(value = "目标类型[1-券|1x-商品维度|2x-演出维度]", example = "1")
private Integer type;
/**
* 积分
*/
@ApiModelProperty(value = "积分", example = "100.00")
private Integer score;
/**
* 价格
*/
@ApiModelProperty(value = "价格", example = "0.00")
private BigDecimal price;
/**
* 状态状态[-999-全部|-1-删除|0-未上架|1-已上架|2-定时上架|7-已下架|8-售罄]
*/
@ApiModelProperty(value = "状态状态[-999-全部|-1-删除|0-未上架|1-已上架|2-定时上架|7-已下架|8-售罄]", example = "1")
private Integer status;
private static final StoneItemListVo obj = new StoneItemListVo();
public static StoneItemListVo getNew() {
try {
return (StoneItemListVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new StoneItemListVo();
}
}
public StoneItemListVo copy(StoneScoreItems source) {
if (null == source) return this;
this.setItemId(source.getItemId());
this.setImg(source.getImg());
this.setTargetTitle(source.getTargetTitle());
this.setType(source.getType());
this.setScore(source.getScore().intValue());
this.setPrice(source.getPrice());
LocalDateTime now = LocalDateTime.now();
if (source.getStatus() == 2) {
if (now.isBefore(source.getStartTime())) {//未上架
this.setStatus(2);
} else if (now.isAfter(source.getEndTime())) {//已下架
this.setStatus(7);
} else {
this.setStatus(1);//上架中
}
}else{
this.setStatus(source.getStatus());
}
return this;
}
}
package com.liquidnet.service.stone.vo;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.stone.entity.StoneScoreItems;
import com.liquidnet.service.stone.entity.StoneScoreLogs;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@ApiModel
public class StoneLogsListVo implements Serializable, Cloneable {
/**
* id
*/
@ApiModelProperty(value = "id", example = "1")
private String logsId;
/**
* 积分物品封面图
*/
@ApiModelProperty(value = "积分", example = "10")
private Integer score;
/**
* 积分物品名称
*/
@ApiModelProperty(value = "内容", example = "购买商品")
private String content;
/**
* 目标类型[1-券|1x-商品维度|2x-演出维度]
*/
@ApiModelProperty(value = "创建时间", example = "2021-12-12 12:00:01")
private String createdAt;
private static final StoneLogsListVo obj = new StoneLogsListVo();
public static StoneLogsListVo getNew() {
try {
return (StoneLogsListVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new StoneLogsListVo();
}
}
public StoneLogsListVo copy(StoneScoreLogs source) {
if (null == source) return this;
this.setLogsId(source.getLogsId());
this.setScore(source.getScore().intValue());
this.setContent(source.getContent());
this.setCreatedAt(DateUtil.Formatter.yyyyMMddHHmmss.format(source.getCreatedAt()));
return this;
}
}
package com.liquidnet.service.stone.vo;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.stone.entity.StoneScoreItems;
import com.liquidnet.service.stone.entity.StoneScoreOrder;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@ApiModel
public class StoneOrderListVo implements Serializable, Cloneable {
@ApiModelProperty(value = "orderId", example = "1")
private String orderId;
@ApiModelProperty(value = "积分物品封面图", example = "http://xxxxx.png")
private String img;
@ApiModelProperty(value = "用户id", example = "1")
private String uid;
@ApiModelProperty(value = "积分物品名称", example = "测试券")
private String targetTitle;
@ApiModelProperty(value = "购买数量", example = "1")
private Integer number;
@ApiModelProperty(value = "支付积分", example = "100.00")
private Integer score;
@ApiModelProperty(value = "支付价格", example = "0.00")
private BigDecimal price;
@ApiModelProperty(value = "状态状态[0-待支付|1-已支付|2-已关闭]", example = "1")
private Integer status;
@ApiModelProperty(value = "订单号", example = "123123")
private String orderCode;
@ApiModelProperty(value = "创建时间", example = "2021-12-01 12:21:32")
private String createdAt;
private static final StoneOrderListVo obj = new StoneOrderListVo();
public static StoneOrderListVo getNew() {
try {
return (StoneOrderListVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new StoneOrderListVo();
}
}
public StoneOrderListVo copy(StoneScoreOrder source,String img,String uid) {
if (null == source) return this;
this.setOrderId(source.getItemId());
this.setImg(img);
this.setUid(uid);
this.setTargetTitle(source.getTargetTitle());
this.setNumber(source.getNumber());
this.setScore(source.getScore().intValue());
this.setPrice(source.getPrice());
this.setStatus(source.getStatus());
this.setOrderCode(source.getOrderCode());
this.setCreatedAt(DateUtil.Formatter.yyyyMMddHHmmss.format(source.getCreatedAt()));
return this;
}
}
package com.liquidnet.service.stone.vo;
import com.liquidnet.service.stone.entity.StoneScoreItems;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* <p>
* 积分物品表
* </p>
*
* @author liquidnet
* @since 2021-10-19
*/
@Data
@ApiModel
public class StoneScoreItemVo implements Serializable, Cloneable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(position = 0, value = "积分物品id")
private String itemId;
@ApiModelProperty(position = 1, value = "积分物品名称")
private String targetTitle;
@ApiModelProperty(position = 2, value = "目标类型[1-券|1x-商品维度|2x-演出维度]")
private Integer type;
@ApiModelProperty(position = 3, value = "展示图")
private String img;
@ApiModelProperty(position = 4, value = "所需积分")
private Integer score;
@ApiModelProperty(position = 5, value = "所需金额")
private BigDecimal price;
@ApiModelProperty(position = 6, value = "限购数量[0-不限]")
private Integer limitCount;
@ApiModelProperty(position = 7, value = "商品详情")
private String details;
@ApiModelProperty(position = 8, value = "注意事项")
private String notice;
@ApiModelProperty(position = 8, value = "积分状态[1-积分充足|2-积分不足]")
private Integer scoreStatus;
@ApiModelProperty(position = 8, value = "限购状态[1-可购买|2-已限购]")
private Integer limitStatus;
@ApiModelProperty(position = 9, value = "状态[-999-全部|-1-删除|0-未上架|1-已上架|2-定时上架|7-已下架|8-售罄|9-即将售罄]")
private Integer status;
private static final StoneScoreItemVo obj = new StoneScoreItemVo();
public static StoneScoreItemVo getNew() {
try {
return (StoneScoreItemVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new StoneScoreItemVo();
}
}
public StoneScoreItemVo copy(StoneScoreItems source, Integer scoreStatus, Integer limitStatus) {
if (null == source) return this;
this.setItemId(source.getItemId());
this.setTargetTitle(source.getTargetTitle());
this.setType(source.getType());
this.setImg(source.getImg());
this.setScore(source.getScore().intValue());
this.setPrice(source.getPrice());
this.setLimitCount(source.getLimitCount());
this.setDetails(source.getDetails());
this.setNotice(source.getNotice());
this.setScoreStatus(scoreStatus);
this.setLimitStatus(limitStatus);
LocalDateTime now = LocalDateTime.now();
if (source.getStatus() == 2) {
if (now.isAfter(source.getStartTime())) {//未上架
this.setStatus(2);
} else if (now.isBefore(source.getEndTime())) {//已下架
this.setStatus(7);
} else {
this.setStatus(1);//上架中
}
} else {
this.setStatus(source.getStatus());
}
return this;
}
}
......@@ -29,6 +29,12 @@
<version>4.1.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-service-sweet-do</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
package com.liquidnet.service.sweet.constant;
/**
*
*/
public class SweetConstant {
public final static String REDIS_KEY_SWEET_MANUAL_PUSH_LIST = "sweet:manual:pushList";
......@@ -20,59 +17,6 @@ public class SweetConstant {
public final static String REDIS_KEY_SWEET_LUCK_DRAW_ALL = "sweet:luckDraw:num:";//中奖总量
public final static String REDIS_KEY_SWEET_LUCK_DRAW_PRESENT_MOBILE = "sweet:luckDraw:present:mobile:";//中奖库存
public final static String REDIS_KEY_SWEET_WECHAT_USER_INFO="sweet:wechatUser:unionId:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_INFO_STR="sweet:wechatUser:unionIdStr:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_UNIONID="sweet:wechatUser:openId:";
public final static String REDIS_KEY_SWEET_ANSWER_PHONE="sweet:answer:phone:";
// public enum ManualPosition {
// artist("艺人","artist"),
// signingTime("签售时间","signingTime"),
// foodAndAmusement("吃喝玩乐","foodAndAmusement"),
// siteMap("现场地图","siteMap"),
// howToReach("如何到达","howToReach"),
// relatedProduct ("官方售卖","relatedProduct"),
// officialSupport("官方支持","officialSupport"),
// audienceNotice("观众须知","audienceNotice"),
// preventionGuidelines("防疫指南","preventionGuidelines"),
// notice("通知","notice"),
// strategy("观演攻略","strategy");
//
// private String message;
// private String code;
//
// private ManualPosition(String message, String code) {
// this.message = message;
// this.code = code;
// }
//
// public void setCode(String code) {
// this.code = code;
// }
//
// public String getCode() {
// return code;
// }
//
// public void setMessage(String message) {
// this.message = message;
// }
//
// public String getMessage() {
// return message;
// }
//
// public static String getMessage(String code) {
// for (ManualPosition c : ManualPosition.values()) {
// if (c.getCode().equalsIgnoreCase(code)) {
// return c.message;
// }
// }
// return null;
// }
// }
public final static String REDIS_KEY_SWEET_MDSK_MANUAL_PUSH_LIST = "sweet:mdsk:manual:pushList";
public final static String REDIS_KEY_SWEET_MDSK_MANUAL_TIME_LIST = "sweet:mdsk:manual:timeList:manual:";
public final static String REDIS_KEY_SWEET_MDSK_MANUAL_NOTIFY_LIST = "sweet:mdsk:manual:notify:manual:";
......@@ -81,4 +25,41 @@ public class SweetConstant {
public final static String REDIS_KEY_SWEET_MDSK_ARTISTS_RELATION = "sweet:mdsk:artists:relation:uid:";
public final static String REDIS_KEY_SWEET_MDSK_ARTISTS_DETAILS = "sweet:mdsk:artists:details:";
public final static String REDIS_KEY_SWEET_MDSK_SHOP = "sweet:mdsk:artists:shop:manual:";
// 积分活动
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_LIST = "sweet:integralActivity:list";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_INFO = "sweet:integralActivity:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM = "sweet:integralActivity:prizeNum:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_WINNERS_NUM = "sweet:integralActivity:prizeWinnersNum:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_ID = ":prizeId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_ALL_LIST = "sweet:integralActivity:Draw:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_USER = "sweet:integralActivity:Draw:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_IN_USER = "sweet:integralActivity:DrawIn:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_USER_KEY = ":userId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_INFO = "sweet:integralActivity:DrawInfo:drawId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_LOCK = "sweet:integralActivity:lock:userId:";
// 答题活动
public final static String REDIS_KEY_SWEET_ANSWER_PHONE = "sweet:answer:phone:";
// 城市投票活动
public final static String REDIS_KEY_SWEET_CITY_VOTE_STAT_LIST = ":StatList";
public final static String REDIS_KEY_SWEET_CITY_VOTE_CITY_CODE = ":cityCode:";
public final static String REDIS_KEY_SWEET_CITY_VOTE = "sweet:cityVote";
public final static String REDIS_KEY_SWEET_CITY_VOTE_USER = ":user:";
public final static String REDIS_KEY_SWEET_CITY_VOTE_STAT_UPDATE_TIME = ":updateTime";
// 微信用户相关
public final static String REDIS_KEY_SWEET_WECHAT_USER_INFO = "sweet:wechatUser:zhengzai:unionId:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_INFO_MODERNSKY = "sweet:wechatUser:modernsky:unionId:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_UNIONID = "sweet:wechatUser:zhengzai:openId:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_UNIONID_MODERNSKY = "sweet:wechatUser:modernsky:openId:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_UNIONID_PHONE = "sweet:wechatUser:zhengzai:phone:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_UNIONID_PHONE_MODERNSKY = "sweet:wechatUser:modernsky:phone:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_UNIONID_UID = "sweet:wechatUser:zhengzai:uid:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_UNIONID_UID_MODERNSKY = "sweet:wechatUser:modernsky:uid:";
// 微信服务号用户相关 新
public final static String REDIS_KEY_SWEET_WECHAT_USERS_UNIONID = "sweet:user:service:unionId:";
public final static String REDIS_KEY_SWEET_WECHAT_USERS_OPENID = "sweet:user:service:openId:";
public final static String REDIS_KEY_SWEET_WECHAT_USERS_TYPE = ":type:";
// 微信小程序用户相关 新
public final static String REDIS_KEY_SWEET_APPLET_USERS_PHONE = "sweet:user:applet:mobile:";
public final static String REDIS_KEY_SWEET_APPLET_USERS_UNIONID = "sweet:user:applet:unionid:";
}
package com.liquidnet.service.sweet.dto.param.admin;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.sweet.entity.SweetIntegralActivity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.time.DateUtils;
import javax.validation.Valid;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
* <p>
* SweetIntegralActivityFromParam
* </p>
*
* @author jiangxiulong
* @since 2021-10-20
*/
@Data
@ApiModel(value = "SweetIntegralActivityFromParam", description = "积分活动创建活动入参")
public class SweetIntegralActivityFromParam implements Serializable, Cloneable {
private static final long serialVersionUID = -648510827144997014L;
@ApiModelProperty(value = "活动id[创建不传] 编辑必须要传", example = "429803743878963206506461")
private String integralActivityId;
@ApiModelProperty(required = true, value = "活动名称", example = "大转盘抽奖")
@NotBlank(message = "activityTitle不能为空")
private String activityTitle;
@ApiModelProperty(required = true, value = "活动图片", example = "test.png")
@NotBlank(message = "activityImg不能为空")
private String activityImg;
@ApiModelProperty(required = true, value = "活动类型 1转盘", example = "1")
@NotNull(message = "activityType不能为空")
private Integer activityType;
@ApiModelProperty(required = true, value = "活动玩一次所需积分", example = "1")
@NotNull(message = "activityNum不能为空")
private Integer activityNum;
@ApiModelProperty(required = true, value = "活动时间类型 1长期 2开始结束时间", example = "1")
@NotNull(message = "timeType不能为空") @Min(value = 1, message = "timeType无效") @Max(value = 2, message = "timeType无效")
private Integer timeType;
@ApiModelProperty(value = "如果活动有时间限制 开始时间", example = "2021-01-01 23:20:20")
private String startTime;
@ApiModelProperty(value = "如果活动有时间限制 结束时间", example = "2021-01-01 23:20:20")
private String endTime;
@ApiModelProperty(required = true, value = "快递费用类型 1包邮 2到付", example = "2")
@NotNull(message = "expressFeeType不能为空") @Min(value = 1, message = "expressFeeType无效") @Max(value = 2, message = "expressFeeType无效")
private Integer expressFeeType;
@ApiModelProperty(required = true, value = "活动规则", example = "这里是活动规则")
@NotBlank(message = "activityTitle不能为空")
private String activityRules;
@ApiModelProperty(required = true, value = "是否上线 1未上线 2已上线", example = "2")
@NotNull(message = "isOnline不能为空") @Min(value = 1, message = "isOnline无效") @Max(value = 2, message = "isOnline无效")
private Integer isOnline;
@Valid
@ApiModelProperty(value = "奖品列表", example = "")
@NotNull(message = "prizeList不能为空")
private List<SweetIntegralActivityPrizeFormParam> prizeList;
private static final SweetIntegralActivityFromParam obj = new SweetIntegralActivityFromParam();
public static SweetIntegralActivityFromParam getNew() {
try {
return (SweetIntegralActivityFromParam) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetIntegralActivityFromParam();
}
}
public SweetIntegralActivity copy(SweetIntegralActivityFromParam source) {
SweetIntegralActivity sweetIntegralActivity = SweetIntegralActivity.getNew();
if (null == source) return null;
sweetIntegralActivity.setIntegralActivityId(source.getIntegralActivityId());
sweetIntegralActivity.setActivityTitle(source.getActivityTitle());
sweetIntegralActivity.setActivityImg(source.getActivityImg());
sweetIntegralActivity.setActivityType(source.getActivityType());
sweetIntegralActivity.setActivityNum(source.getActivityNum());
sweetIntegralActivity.setTimeType(source.getTimeType());
if (null != source.getStartTime() && !source.getStartTime().isEmpty()) {
LocalDateTime startTime = DateUtil.Formatter.yyyyMMddHHmmss.parse(source.getStartTime());
sweetIntegralActivity.setStartTime(startTime);
}
if (null != source.getEndTime() && !source.getEndTime().isEmpty()) {
LocalDateTime endTime = DateUtil.Formatter.yyyyMMddHHmmss.parse(source.getEndTime());
sweetIntegralActivity.setEndTime(endTime);
}
sweetIntegralActivity.setExpressFeeType(source.getExpressFeeType());
sweetIntegralActivity.setActivityRules(source.getActivityRules());
sweetIntegralActivity.setIsOnline(source.getIsOnline());
return sweetIntegralActivity;
}
}
\ No newline at end of file
package com.liquidnet.service.sweet.dto.param.admin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* <p>
* SweetIntegralActivityListSearchParam
* </p>
*
* @author jiangxiulong
* @since 2021-10-20
*/
@Data
@ApiModel(value = "SweetIntegralActivityListSearchParam", description = "积分活动列表搜索入参")
public class SweetIntegralActivityListSearchParam implements Serializable {
private static final long serialVersionUID = 6917807562233084828L;
@ApiModelProperty(position = 11, value = "活动名称")
private String activityTitle;
@ApiModelProperty(value = "页数", example = "0")
private Integer pageSize;
@ApiModelProperty(value = "数量", example = "20")
private Integer pageNum;
}
package com.liquidnet.service.sweet.dto.param.admin;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityPrize;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* <p>
* SweetIntegralActivityPrizeFormParam
* </p>
*
* @author jiangxiulong
* @since 2021-10-21
*/
@Data
@ApiModel(value = "SweetIntegralActivityPrizeFormParam", description = "积分活动创建奖品入参")
public class SweetIntegralActivityPrizeFormParam implements Serializable,Cloneable {
private static final long serialVersionUID = 9194454546358707259L;
@ApiModelProperty(value = "奖品id 创建不传 编辑必传", example = "429803743878963206506461")
private String prizeId;
@ApiModelProperty(value = "活动id[创建不传] 编辑必传", example = "1")
private String integralActivityId;
@ApiModelProperty(required = true, value = "奖品名称", example = "优惠券")
@NotBlank(message = "prizeTitle不能为空")
private String prizeTitle;
@ApiModelProperty(required = true, value = "初始展示奖品图片", example = "test.png")
@NotBlank(message = "prizeImgInit不能为空")
private String prizeImgInit;
@ApiModelProperty(required = true, value = "中奖选中奖品图片", example = "test.png")
@NotBlank(message = "prizeImgSelect不能为空")
private String prizeImgSelect;
@ApiModelProperty(required = true, value = "奖品类型 1谢谢惠顾 2积分 3代金券 4满减券 5优先购买券 6实物", example = "1")
@NotNull(message = "prizeType不能为空")
private Integer prizeType;
@ApiModelProperty(required = false, value = "单次奖励数量如积分 中奖给多少物", example = "1")
private Integer prizeTypeNum;
@ApiModelProperty(value = "关联id 如商品id 券id 选择奖品的时候必传", example = "429803743878963206506461")
private String relationId;
@ApiModelProperty(required = true, value = "奖品数量", example = "100")
@NotNull(message = "prizeNum不能为空")
private Integer prizeNum;
@ApiModelProperty(required = true, value = "限制的中奖人数", example = "10")
@NotNull(message = "winnersNum不能为空")
private Integer winnersNum;
@ApiModelProperty(required = true, value = "中奖概率", example = "1")
@NotNull(message = "winningProbability不能为空")
private BigDecimal winningProbability;
private static final SweetIntegralActivityPrizeFormParam obj = new SweetIntegralActivityPrizeFormParam();
public static SweetIntegralActivityPrizeFormParam getNew() {
try {
return (SweetIntegralActivityPrizeFormParam) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetIntegralActivityPrizeFormParam();
}
}
public SweetIntegralActivityPrize copy(SweetIntegralActivityPrizeFormParam source) {
SweetIntegralActivityPrize sweetIntegralActivityPrize = SweetIntegralActivityPrize.getNew();
if (null == source) return null;
sweetIntegralActivityPrize.setIntegralActivityId(source.getIntegralActivityId());
sweetIntegralActivityPrize.setPrizeId(source.getPrizeId());
sweetIntegralActivityPrize.setPrizeTitle(source.getPrizeTitle());
sweetIntegralActivityPrize.setPrizeImgInit(source.getPrizeImgInit());
sweetIntegralActivityPrize.setPrizeImgSelect(source.getPrizeImgSelect());
sweetIntegralActivityPrize.setPrizeType(source.getPrizeType());
sweetIntegralActivityPrize.setPrizeTypeNum(source.getPrizeTypeNum());
sweetIntegralActivityPrize.setRelationId(source.getRelationId());
sweetIntegralActivityPrize.setPrizeNum(source.getPrizeNum());
sweetIntegralActivityPrize.setWinnersNum(source.getWinnersNum());
sweetIntegralActivityPrize.setWinningProbability(source.getWinningProbability());
return sweetIntegralActivityPrize;
}
}
package com.liquidnet.service.sweet.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityDraw;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
public class IntegralActivityDrawVo implements Serializable, Cloneable {
private static final long serialVersionUID = -6777064807434774549L;
@ApiModelProperty(value = "抽奖id")
private String drawId;
@ApiModelProperty(value = "关联活动id")
private String integralActivityId;
@ApiModelProperty(value = "活动玩一次所需积分")
private Integer activityNum;
@ApiModelProperty(value = "关联奖品id")
private String prizeId;
@ApiModelProperty(value = "奖品名称")
private String prizeTitle;
@ApiModelProperty(value = "奖品类型 1谢谢惠顾 2积分 3代金券 4满减券 5优先购买券 6实物")
private Integer prizeType;
@ApiModelProperty(value = "关联id 如商品id 券id")
private String relationId;
@ApiModelProperty(value = "单次奖励数量如积分 中奖给多少")
private Integer prizeTypeNum;
@ApiModelProperty(value = "关联用户id")
private String userId;
@ApiModelProperty(value = "关联用户昵称")
private String nickname;
@ApiModelProperty(value = "adam收货地址addresses_id")
private String receivingAddressesId;
@ApiModelProperty(value = "adam收货人姓名")
private String receivingName;
@ApiModelProperty(value = "adam收货人手机号")
private String receivingPhone;
@ApiModelProperty(value = "adam收货人地址省份")
private String receivingProvince;
@ApiModelProperty(value = "adam收货人地址城市")
private String receivingCity;
@ApiModelProperty(value = "adam收货人地址区县")
private String receivingCounty;
@ApiModelProperty(value = "adam收货人详细地址")
private String receivingAddress;
@ApiModelProperty(value = "发放状态 1未发放 2已发放 3无需发放")
private Integer receivingStatus;
@ApiModelProperty(value = "创建时间")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime createdAt;
@ApiModelProperty(value = "更新时间")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime updatedAt;
@ApiModelProperty(value = "快递费用类型 1包邮 2到付")
private Integer expressFeeType;
private static final IntegralActivityDrawVo obj = new IntegralActivityDrawVo();
public static IntegralActivityDrawVo getNew() {
try {
return (IntegralActivityDrawVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new IntegralActivityDrawVo();
}
}
public IntegralActivityDrawVo copy(SweetIntegralActivityDraw source) {
if (null == this) return this;
this.setDrawId(source.getDrawId());
this.setIntegralActivityId(source.getIntegralActivityId());
this.setActivityNum(source.getActivityNum());
this.setPrizeId(source.getPrizeId());
this.setPrizeTitle(source.getPrizeTitle());
this.setPrizeType(source.getPrizeType());
this.setPrizeTypeNum(source.getPrizeTypeNum());
this.setRelationId(source.getRelationId());
this.setUserId(source.getUserId());
this.setNickname(source.getNickname());
this.setReceivingAddressesId(source.getReceivingAddressesId());
this.setReceivingName(source.getReceivingName());
this.setReceivingPhone(source.getReceivingPhone());
this.setReceivingAddress(source.getReceivingAddress());
this.setReceivingStatus(source.getReceivingStatus());
this.setCreatedAt(source.getUpdatedAt());
this.setUpdatedAt(source.getUpdatedAt());
return this;
}
}
package com.liquidnet.service.sweet.dto.vo;
import com.liquidnet.service.sweet.entity.SweetIntegralActivity;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityPrize;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class IntegralActivityVo implements Serializable, Cloneable {
private static final long serialVersionUID = -303399210433737206L;
@ApiModelProperty(value = "活动id")
private String integralActivityId;
@ApiModelProperty(value = "活动名称")
private String activityTitle;
@ApiModelProperty(value = "活动图片")
private String activityImg;
@ApiModelProperty(value = "活动类型 1转盘")
private Integer activityType;
@ApiModelProperty(value = "活动玩一次所需积分")
private Integer activityNum;
@ApiModelProperty(value = "活动时间类型 1长期 2开始结束时间")
private Integer timeType;
@ApiModelProperty(value = "如果活动有时间限制 开始时间")
private LocalDateTime startTime;
@ApiModelProperty(value = "如果活动有时间限制 结束时间")
private LocalDateTime endTime;
@ApiModelProperty(value = "快递费用类型 1包邮 2到付")
private Integer expressFeeType;
@ApiModelProperty(value = "活动规则")
private String activityRules;
@ApiModelProperty(value = "是否上线 1未上线 2已上线")
private Integer isOnline;
@ApiModelProperty(value = "创建时间")
private LocalDateTime createdAt;
@ApiModelProperty(value = "更新时间")
private LocalDateTime updatedAt;
@ApiModelProperty(value = "奖品列表")
private List<SweetIntegralActivityPrize> prizeList;
private static final IntegralActivityVo obj = new IntegralActivityVo();
public static IntegralActivityVo getNew() {
try {
return (IntegralActivityVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new IntegralActivityVo();
}
}
public IntegralActivityVo copy(SweetIntegralActivity source) {
if (null == this) return this;
this.setIntegralActivityId(source.getIntegralActivityId());
this.setActivityTitle(source.getActivityTitle());
this.setActivityImg(source.getActivityImg());
this.setActivityType(source.getActivityType());
this.setActivityNum(source.getActivityNum());
this.setTimeType(source.getTimeType());
this.setStartTime(source.getStartTime());
this.setEndTime(source.getEndTime());
this.setExpressFeeType(source.getExpressFeeType());
this.setActivityRules(source.getActivityRules());
this.setIsOnline(source.getIsOnline());
this.setCreatedAt(source.getCreatedAt());
this.setUpdatedAt(source.getUpdatedAt());
return this;
}
}
package com.liquidnet.service.sweet.dto.vo.admin;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityPrize;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* <p>
* SweetIntegralActivityVo
* </p>
*
* @author jiangxiulong
* @since 2021-10-20
*/
@Data
@ApiModel
public class SweetIntegralActivityPrizeVo implements Serializable, Cloneable {
private static final long serialVersionUID = 4229281062171296759L;
@ApiModelProperty(value = "奖品id")
private String prizeId;
@ApiModelProperty(value = "关联活动id")
private String integralActivityId;
@ApiModelProperty(value = "奖品名称")
private String prizeTitle;
@ApiModelProperty(required = true, value = "初始展示奖品图片")
private String prizeImgInit;
@ApiModelProperty(required = true, value = "中奖选中奖品图片")
private String prizeImgSelect;
@ApiModelProperty(value = "奖品类型 1谢谢惠顾 2积分 3代金券 4满减券 5优先购买券 6实物")
private Integer prizeType;
@ApiModelProperty(value = "单次奖励数量如积分 中奖给多少物")
private Integer prizeTypeNum;
@ApiModelProperty(value = "关联id 如商品id 券id")
private String relationId;
@ApiModelProperty(value = "奖品数量")
private Integer prizeNum;
@ApiModelProperty(value = "限制的中奖人数")
private Integer winnersNum;
@ApiModelProperty(value = "中奖概率")
private BigDecimal winningProbability;
@ApiModelProperty(value = "创建时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime createdAt;
@ApiModelProperty(value = "更新时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime updatedAt;
@ApiModelProperty(value = "已发出数量")
private Integer winPrizeNum;
private static final SweetIntegralActivityPrizeVo obj = new SweetIntegralActivityPrizeVo();
public static SweetIntegralActivityPrizeVo getNew() {
try {
return (SweetIntegralActivityPrizeVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetIntegralActivityPrizeVo();
}
}
public SweetIntegralActivityPrizeVo copy(SweetIntegralActivityPrize source) {
if (null == source) return this;
this.setPrizeId(source.getPrizeId());
this.setIntegralActivityId(source.getIntegralActivityId());
this.setPrizeTitle(source.getPrizeTitle());
this.setPrizeImgInit(source.getPrizeImgInit());
this.setPrizeImgSelect(source.getPrizeImgSelect());
this.setPrizeType(source.getPrizeType());
this.setPrizeTypeNum(source.getPrizeTypeNum());
this.setRelationId(source.getRelationId());
this.setPrizeNum(source.getPrizeNum());
this.setWinnersNum(source.getWinnersNum());
this.setWinningProbability(source.getWinningProbability());
this.setCreatedAt(source.getCreatedAt());
this.setUpdatedAt(source.getUpdatedAt());
return this;
}
}
package com.liquidnet.service.sweet.dto.vo.admin;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.sweet.entity.SweetIntegralActivity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
* <p>
* SweetIntegralActivityVo
* </p>
*
* @author jiangxiulong
* @since 2021-10-20
*/
@Data
@ApiModel
public class SweetIntegralActivityVo implements Serializable, Cloneable {
private static final long serialVersionUID = 1599981143175023116L;
@ApiModelProperty(value = "活动id")
private String integralActivityId;
@ApiModelProperty(value = "活动名称")
private String activityTitle;
@ApiModelProperty(value = "活动图片")
private String activityImg;
@ApiModelProperty(value = "活动类型 1转盘")
private Integer activityType;
@ApiModelProperty(value = "活动玩一次所需积分")
private Integer activityNum;
@ApiModelProperty(value = "活动时间类型 1长期 2开始结束时间")
private Integer timeType;
@ApiModelProperty(value = "如果活动有时间限制 开始时间")
private String startTime;
@ApiModelProperty(value = "如果活动有时间限制 结束时间")
private String endTime;
@ApiModelProperty(value = "快递费用类型 1包邮 2到付")
private Integer expressFeeType;
@ApiModelProperty(value = "活动规则")
private String activityRules;
@ApiModelProperty(value = "是否上线 1未上线 2已上线")
private Integer isOnline;
@ApiModelProperty(value = "创建时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime createdAt;
@ApiModelProperty(value = "更新时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime updatedAt;
@ApiModelProperty(value = "奖品列表")
private List<SweetIntegralActivityPrizeVo> prizeList;
private static final SweetIntegralActivityVo obj = new SweetIntegralActivityVo();
public static SweetIntegralActivityVo getNew() {
try {
return (SweetIntegralActivityVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetIntegralActivityVo();
}
}
public SweetIntegralActivityVo copy(SweetIntegralActivity source) {
if (null == source) return this;
this.setIntegralActivityId(source.getIntegralActivityId());
this.setActivityTitle(source.getActivityTitle());
this.setActivityImg(source.getActivityImg());
this.setActivityType(source.getActivityType());
this.setActivityNum(source.getActivityNum());
this.setTimeType(source.getTimeType());
this.setStartTime(DateUtil.Formatter.yyyyMMddHHmmss.format(source.getStartTime()));
this.setEndTime(DateUtil.Formatter.yyyyMMddHHmmss.format(source.getEndTime()));
this.setExpressFeeType(source.getExpressFeeType());
this.setActivityRules(source.getActivityRules());
this.setIsOnline(source.getIsOnline());
this.setCreatedAt(source.getCreatedAt());
this.setUpdatedAt(source.getUpdatedAt());
return this;
}
}
......@@ -4,7 +4,10 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.*;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@ApiModel(value = "SweetOpenSendMsgParam", description = "发送模版消息公共接口入参")
......
package com.liquidnet.service.sweet.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.dto.param.SweetAntigenicQuestionParam;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.sweet.entity.SweetAntigenicQuestion;
/**
......
package com.liquidnet.service.sweet.service;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.entity.SweetAppletSubMsg;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 小程序订阅消息记录表 服务类
* </p>
*
* @author jiangxiulong
* @since 2021-11-22
*/
public interface ISweetAppletSubMsgService extends IService<SweetAppletSubMsg> {
ResponseDto sendMsg(Integer type, String targetId);
ResponseDto<Boolean> create(String openId, String templateId, String targetId, Integer appletType, Integer activityType);
ResponseDto sendOfMid(Integer type, String midList, String targetId);
}
package com.liquidnet.service.sweet.service;
import com.liquidnet.service.sweet.entity.SweetAppletUsers;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 小程序登录记录用户解密后信息表 服务类
* </p>
*
* @author jiangxiulong
* @since 2021-11-05
*/
public interface ISweetAppletUsersService extends IService<SweetAppletUsers> {
}
package com.liquidnet.service.sweet.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.entity.SweetArtists;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.sweet.entity.SweetStage;
/**
* <p>
......
package com.liquidnet.service.sweet.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.entity.SweetCityVote;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.sweet.param.SweetCityVoteParam;
import com.liquidnet.service.sweet.vo.SweetCItyVoteStatVo;
......
package com.liquidnet.service.sweet.service;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo;
import com.liquidnet.service.sweet.dto.vo.admin.SweetIntegralActivityPrizeVo;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityDraw;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
* 积分活动抽奖记录表 服务类
* </p>
*
* @author jiangxiulong
* @since 2021-10-26
*/
public interface ISweetIntegralActivityDrawService extends IService<SweetIntegralActivityDraw> {
ResponseDto<SweetIntegralActivityPrizeVo> create(String integralActivityId);
ResponseDto<PagedResult<IntegralActivityDrawVo>> drawList(Integer type, String integralActivityId, Integer pageNum);
ResponseDto<List<IntegralActivityDrawVo>> winPrizeUser(String integralActivityId);
ResponseDto perfectAddress(String drawId, String receivingAddressesId);
ResponseDto<IntegralActivityDrawVo> detail(String drawId);
}
package com.liquidnet.service.sweet.service;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityVo;
import com.liquidnet.service.sweet.entity.SweetIntegralActivity;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
* 积分活动表 服务类
* </p>
*
* @author jiangxiulong
* @since 2021-10-25
*/
public interface ISweetIntegralActivityService extends IService<SweetIntegralActivity> {
ResponseDto<List<IntegralActivityVo>> getList();
ResponseDto<IntegralActivityVo> detail(String integralActivityId);
}
package com.liquidnet.service.sweet.service;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.dto.SweetManualArtistListDto;
import com.liquidnet.service.sweet.dto.SweetManualArtistListMDSKDto;
import com.liquidnet.service.sweet.entity.SweetManualArtistsMdsk;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 电子宣传手册艺人表 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
public interface ISweetManualArtistsMdskService extends IService<SweetManualArtistsMdsk> {
ResponseDto<PageInfo<SweetManualArtistListMDSKDto>> getList(Integer page, Integer size, String manualId);
ResponseDto<Boolean> add(String manualId,String artistId, String stageId,String performanceStart,String performanceEnd,String signatureStart,String signatureEnd);
ResponseDto<SweetManualArtistListMDSKDto> details(String manualRelationId);
ResponseDto<Boolean> change(String manualRelationId,String manualId,String artistId, String stageId,String performanceStart,String performanceEnd,String signatureStart,String signatureEnd);
ResponseDto<Boolean> delete(String manualRelationId,String manualId);
}
package com.liquidnet.service.sweet.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.dto.SweetManualArtistListMDSKDto;
import com.liquidnet.service.sweet.entity.SweetManualArtistsMdsk;
/**
* <p>
* 电子宣传手册艺人表 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
public interface ISweetManualArtistsMdskService extends IService<SweetManualArtistsMdsk> {
ResponseDto<PageInfo<SweetManualArtistListMDSKDto>> getList(Integer page, Integer size, String manualId);
ResponseDto<Boolean> add(String manualId,String artistId, String stageId,String performanceStart,String performanceEnd,String signatureStart,String signatureEnd);
ResponseDto<SweetManualArtistListMDSKDto> details(String manualRelationId);
ResponseDto<Boolean> change(String manualRelationId,String manualId,String artistId, String stageId,String performanceStart,String performanceEnd,String signatureStart,String signatureEnd);
ResponseDto<Boolean> delete(String manualRelationId,String manualId);
}
package com.liquidnet.service.sweet.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.dto.SweetManualArtistListDto;
import com.liquidnet.service.sweet.entity.SweetManualArtists;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.sweet.entity.SweetManualNotify;
/**
* <p>
......
package com.liquidnet.service.sweet.service;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.dto.SweetManualDto;
import com.liquidnet.service.sweet.dto.SweetManualMDSKDto;
import com.liquidnet.service.sweet.entity.SweetManualMdsk;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 电子宣传手册表 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
public interface ISweetManualMdskService extends IService<SweetManualMdsk> {
ResponseDto<PageInfo<SweetManualMDSKDto>> getManualList(int page, int size, String name);
ResponseDto<SweetManualMDSKDto> details(String manualId);
//关闭开启
ResponseDto<Boolean> changeStatus(String manualId, String performancesId, Integer status);
//发布与否
ResponseDto<Boolean> changeRelease(String manualId, Integer isRelease);
}
package com.liquidnet.service.sweet.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.dto.SweetManualMDSKDto;
import com.liquidnet.service.sweet.entity.SweetManualMdsk;
/**
* <p>
* 电子宣传手册表 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
public interface ISweetManualMdskService extends IService<SweetManualMdsk> {
ResponseDto<PageInfo<SweetManualMDSKDto>> getManualList(int page, int size, String name);
ResponseDto<SweetManualMDSKDto> details(String manualId);
//关闭开启
ResponseDto<Boolean> changeStatus(String manualId, String performancesId, Integer status);
//发布与否
ResponseDto<Boolean> changeRelease(String manualId, Integer isRelease);
}
package com.liquidnet.service.sweet.service;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.entity.SweetManualNotify;
import com.liquidnet.service.sweet.entity.SweetManualNotifyMdsk;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 电子宣传手册通知表 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
public interface ISweetManualNotifyMdskService extends IService<SweetManualNotifyMdsk> {
ResponseDto<PageInfo<SweetManualNotifyMdsk>> getList(Integer page, Integer size, String title, String manualId);
ResponseDto<Boolean> add(String manualId,String title, String content);
ResponseDto<SweetManualNotifyMdsk> details(String manualId);
ResponseDto<Boolean> change(String manualId,String manualNotifyId, String title, String content);
ResponseDto<Boolean> delete(String manualId);
}
package com.liquidnet.service.sweet.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.entity.SweetManualNotifyMdsk;
/**
* <p>
* 电子宣传手册通知表 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
public interface ISweetManualNotifyMdskService extends IService<SweetManualNotifyMdsk> {
ResponseDto<PageInfo<SweetManualNotifyMdsk>> getList(Integer page, Integer size, String title, String manualId);
ResponseDto<Boolean> add(String manualId,String title, String content);
ResponseDto<SweetManualNotifyMdsk> details(String manualId);
ResponseDto<Boolean> change(String manualId,String manualNotifyId, String title, String content);
ResponseDto<Boolean> delete(String manualId);
}
package com.liquidnet.service.sweet.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.entity.SweetManualNotify;
import com.baomidou.mybatisplus.extension.service.IService;
import io.swagger.models.auth.In;
import java.util.List;
/**
* <p>
......
package com.liquidnet.service.sweet.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.dto.SweetManualDto;
import com.liquidnet.service.sweet.entity.SweetManual;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.sweet.entity.SweetStage;
import io.swagger.models.auth.In;
import java.util.List;
/**
* <p>
......
package com.liquidnet.service.sweet.service;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.entity.SweetManualShop;
import com.liquidnet.service.sweet.entity.SweetManualShopMdsk;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
* 电子宣传手册商铺表 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
public interface ISweetManualShopMdskService extends IService<SweetManualShopMdsk> {
ResponseDto<List<SweetManualShopMdsk>> getList(String manualId, Integer type);
ResponseDto<SweetManualShopMdsk> details(String manualShopId);
ResponseDto<Boolean> add(String manualId,String title,String picUrl,String describe,Integer type,Integer isRecommend,Integer sort);
ResponseDto<Boolean> change(String manualShopId,String manualId,String title,String picUrl,String describe,Integer type,Integer isRecommend,Integer sort);
ResponseDto<Boolean> delete(String manualShopId,String manualId);
}
package com.liquidnet.service.sweet.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.entity.SweetManualShopMdsk;
import java.util.List;
/**
* <p>
* 电子宣传手册商铺表 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
public interface ISweetManualShopMdskService extends IService<SweetManualShopMdsk> {
ResponseDto<List<SweetManualShopMdsk>> getList(String manualId, Integer type);
ResponseDto<SweetManualShopMdsk> details(String manualShopId);
ResponseDto<Boolean> add(String manualId,String title,String picUrl,String describe,Integer type,Integer isRecommend,Integer sort);
ResponseDto<Boolean> change(String manualShopId,String manualId,String title,String picUrl,String describe,Integer type,Integer isRecommend,Integer sort);
ResponseDto<Boolean> delete(String manualShopId,String manualId);
}
package com.liquidnet.service.sweet.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.entity.SweetManualShop;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
......
package com.liquidnet.service.sweet.service;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.entity.SweetManualSort;
import com.liquidnet.service.sweet.entity.SweetManualSortMdsk;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 电子宣传手册显示内容表 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
public interface ISweetManualSortMdskService extends IService<SweetManualSortMdsk> {
ResponseDto<SweetManualSortMdsk> get(String manualId);
ResponseDto<Boolean> add(String manualId,String content);
}
package com.liquidnet.service.sweet.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.entity.SweetManualSortMdsk;
/**
* <p>
* 电子宣传手册显示内容表 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
public interface ISweetManualSortMdskService extends IService<SweetManualSortMdsk> {
ResponseDto<SweetManualSortMdsk> get(String manualId);
ResponseDto<Boolean> add(String manualId,String content);
}
package com.liquidnet.service.sweet.service;
import com.github.pagehelper.PageInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.entity.SweetManualSort;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.sweet.entity.SweetStage;
/**
* <p>
......
package com.liquidnet.service.sweet.service;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.entity.SweetRichtext;
import com.liquidnet.service.sweet.entity.SweetRichtextMdsk;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 电子宣传手册富文本表 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
public interface ISweetRichtextMdskService extends IService<SweetRichtextMdsk> {
ResponseDto<SweetRichtextMdsk> get(String manualId, Integer type);
ResponseDto<Boolean> add(String manualId,String details, String local, String pirUrl, Integer type);
ResponseDto<Boolean> change(String manualId,String details,String local,String pirUrl,Integer type);
}
package com.liquidnet.service.sweet.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.entity.SweetRichtextMdsk;
/**
* <p>
* 电子宣传手册富文本表 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
public interface ISweetRichtextMdskService extends IService<SweetRichtextMdsk> {
ResponseDto<SweetRichtextMdsk> get(String manualId, Integer type);
ResponseDto<Boolean> add(String manualId,String details, String local, String pirUrl, Integer type);
ResponseDto<Boolean> change(String manualId,String details,String local,String pirUrl,Integer type);
}
package com.liquidnet.service.sweet.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.entity.SweetRichtext;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
......
package com.liquidnet.service.sweet.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.entity.SweetStage;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
......
package com.liquidnet.service.sweet.service;
import com.liquidnet.service.sweet.entity.SweetUserRelationMdsk;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 用户 收藏/喜欢等状态 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
public interface ISweetUserRelationMdskService extends IService<SweetUserRelationMdsk> {
}
package com.liquidnet.service.sweet.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.sweet.entity.SweetUserRelationMdsk;
/**
* <p>
* 用户 收藏/喜欢等状态 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
public interface ISweetUserRelationMdskService extends IService<SweetUserRelationMdsk> {
}
package com.liquidnet.service.sweet.service;
import com.liquidnet.service.sweet.entity.SweetUserRelation;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.sweet.entity.SweetUserRelation;
/**
* <p>
......
package com.liquidnet.service.sweet.service;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.entity.SweetWechatUsers;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.sweet.entity.SweetWechatUser;
/**
* <p>
......@@ -9,8 +10,9 @@ import com.liquidnet.service.sweet.entity.SweetWechatUser;
* </p>
*
* @author jiangxiulong
* @since 2021-08-03
* @since 2021-11-05
*/
public interface ISweetWechatUserService extends IService<SweetWechatUser> {
public interface ISweetWechatUsersService extends IService<SweetWechatUsers> {
ResponseDto doTask(Integer type, String phone, String userId);
}
package com.liquidnet.service.sweet.utils;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo;
import com.liquidnet.service.sweet.dto.vo.admin.SweetIntegralActivityPrizeVo;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityDraw;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityPrize;
import java.util.ArrayList;
import java.util.LinkedList;
public class SweetNewObjectUtil {
private static final ArrayList<SweetIntegralActivityPrizeVo> sweetIntegralActivityPrizeVoArrayList = new ArrayList<>();
private static final ArrayList<SweetIntegralActivityPrize> sweetIntegralActivityPrizeArrayList = new ArrayList<>();
private static final LinkedList<IntegralActivityDrawVo> sweetIntegralActivityDrawVoLinkedList = new LinkedList<>();
private static final PagedResult<IntegralActivityDrawVo> sweetIntegralActivityDrawVoPagedResult = new PagedResult<>();
public static ArrayList<SweetIntegralActivityPrizeVo> getSweetIntegralActivityPrizeVoArrayList() {
return (ArrayList<SweetIntegralActivityPrizeVo>) sweetIntegralActivityPrizeVoArrayList.clone();
}
public static LinkedList<IntegralActivityDrawVo> getSweetIntegralActivityDrawVoLinkedList() {
return (LinkedList<IntegralActivityDrawVo>) sweetIntegralActivityDrawVoLinkedList.clone();
}
public static PagedResult<IntegralActivityDrawVo> getSweetIntegralActivityDrawVoPagedResult() {
return (PagedResult<IntegralActivityDrawVo>) sweetIntegralActivityDrawVoPagedResult.clone();
}
public static ArrayList<SweetIntegralActivityPrize> getSweetIntegralActivityPrizeArrayList() {
return (ArrayList<SweetIntegralActivityPrize>) sweetIntegralActivityPrizeArrayList.clone();
}
}
package com.liquidnet.service.sweet.vo;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
public class SweetAppletUsersVo implements Serializable, Cloneable {
private static final long serialVersionUID = 5817630726751578436L;
/**
* applet_user_id
*/
private String appletUserId;
/**
* user_id
*/
private String userId;
/**
* openId
*/
private String openId;
/**
* unionId
*/
private String unionId;
/**
* 手机号
*/
private String phoneNumber;
/**
* 手机号
*/
private String purePhoneNumber;
/**
* 地区码
*/
private String countryCode;
/**
* 1草莓 2五百里 3mdsk 4正在
*/
private Integer type;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 更新时间
*/
private LocalDateTime updatedAt;
private static final SweetAppletUsersVo obj = new SweetAppletUsersVo();
public static SweetAppletUsersVo getNew() {
try {
return (SweetAppletUsersVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetAppletUsersVo();
}
}
}
package com.liquidnet.service.sweet.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.liquidnet.service.sweet.dto.SweetCityVoteStatDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
public class SweetCItyVoteStatVo implements Serializable, Cloneable {
......@@ -40,6 +37,12 @@ public class SweetCItyVoteStatVo implements Serializable, Cloneable {
@ApiModelProperty("type")
private Integer type;
@ApiModelProperty("名次")
private Integer ranking;
@ApiModelProperty("名次变动状态 1未变化 2上升 3下降")
private Integer rankingUpOrDown;
/*@ApiModelProperty("创建时间")
private LocalDateTime createdAt;
......
package com.liquidnet.service.sweet.vo;
import com.liquidnet.service.sweet.entity.SweetManualShop;
import com.liquidnet.service.sweet.entity.SweetManualShopMdsk;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......
package com.liquidnet.service.sweet.vo;
import com.liquidnet.service.sweet.entity.SweetAnswer;
import io.swagger.annotations.Api;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
public class SweetPrizeVo implements Serializable, Cloneable {
......
package com.liquidnet.service.sweet.vo;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
public class SweetWechatUsersVo implements Serializable, Cloneable {
private static final long serialVersionUID = -8639044068603169141L;
/**
* wechat_user_id
*/
private String wechatUserId;
/**
* 服务类型 1正在 2摩登
*/
private Integer type;
/**
* openId
*/
private String openId;
/**
* unionId
*/
private String unionId;
/**
* 昵称
*/
private String nickname;
/**
* 性别
*/
private String sexDesc;
/**
* 性别 男1
*/
private Integer sex;
/**
* 头像
*/
private String headImgUrl;
/**
* zh_CN
*/
private String language;
/**
* 国家
*/
private String country;
/**
* 省
*/
private String province;
/**
* 市
*/
private String city;
/**
* 关注时间
*/
private LocalDateTime subscribeTime;
/**
* ADD_SCENE_SEARCH 关注方式
*/
private String subscribeScene;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 更新时间
*/
private LocalDateTime updatedAt;
private static final SweetWechatUsersVo obj = new SweetWechatUsersVo();
public static SweetWechatUsersVo getNew() {
try {
return (SweetWechatUsersVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetWechatUsersVo();
}
}
}
......@@ -20,6 +20,7 @@
<module>liquidnet-service-sweet-api</module>
<module>liquidnet-service-chime-api</module>
<module>liquidnet-service-candy-api</module>
<module>liquidnet-service-stone-api</module>
</modules>
<dependencies>
<dependency>
......
......@@ -111,6 +111,12 @@
<artifactId>spring-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-service-sweet-api</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
......
......@@ -6,6 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.core.env.Environment;
......@@ -17,7 +18,7 @@ import java.util.Arrays;
@Slf4j
@EnableAsync
@EnableEurekaClient
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}, scanBasePackages = {"com.liquidnet"})
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class,RedisAutoConfiguration.class}, scanBasePackages = {"com.liquidnet"})
@MapperScan(basePackages = {"com.liquidnet.service.*.mapper"})
public class ClientAdminApplication implements CommandLineRunner {
@Autowired
......
package com.liquidnet.client.admin.web.controller.zhengzai.adam;
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.service.IAdamUserAdminService;
import com.liquidnet.service.adam.entity.AdamUser;
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.web.bind.annotation.*;
import java.util.List;
/**
* 用户Controller
*
* @author ruoyi
* @date 2021-05-24
*/
@Controller
@RequestMapping("local")
public class LocalAdminController extends BaseController
{
private String prefix = "zhengzai/stone";
@Autowired
private IAdamUserAdminService adamUserService;
@GetMapping("/integralList")
public String integralList()
{
return prefix + "/integralList";
}
@GetMapping("/integralStore")
public String integralStore()
{
return prefix + "/integralStore";
}
@GetMapping("/LuckyDraw")
public String LuckyDraw()
{
return prefix + "/LuckyDraw";
}
@GetMapping("/integralOrder")
public String integralOrder()
{
return prefix + "/integralOrder";
}
@GetMapping("/integralDetail")
public String integralDetail()
{
return prefix + "/integralDetail";
}
}
......@@ -12,12 +12,15 @@ 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.common.cache.redis.util.RedisDataSourceUtil;
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 io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
......@@ -28,7 +31,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
//@Api(tags = "会员码管理")
@Api(tags = "会员码管理")
@Controller
@RequestMapping("adam/mcode")
public class AdamMemberCodeAdminController extends BaseController {
......@@ -40,12 +43,21 @@ public class AdamMemberCodeAdminController extends BaseController {
@Autowired
IAdamMemberPriceAdminService adamMemberPriceAdminService;
@Autowired
RedisUtil redisUtil;
@GetMapping("mgt")
public String viewCodeMgt(@RequestParam String memberId, ModelMap mmap) {
mmap.put("memberId", memberId);
AdamMemberPrice memberPrice = adamMemberPriceAdminService.getOne(Wrappers.lambdaQuery(AdamMemberPrice.class)
.eq(AdamMemberPrice::getState, 1)
.eq(AdamMemberPrice::getMemberId, memberId)
.select(
AdamMemberPrice::getMemberPriceId,
AdamMemberPrice::getPrice,
AdamMemberPrice::getPriceFixed,
AdamMemberPrice::getPriceSpecial,
AdamMemberPrice::getDays
)
);
mmap.put("memberPrice", memberPrice);
return prefix + "/code_mgt";
}
......@@ -70,10 +82,13 @@ public class AdamMemberCodeAdminController extends BaseController {
);
queryWrapper.orderByDesc(AdamMemberCodeBatch::getCreatedAt);
logger.info("update member_code_batch.use_num:{}", adamMemberCodeBatchAdminService.updateBatchUseNum());
this.startPage();
return getDataTable(adamMemberCodeBatchAdminService.list(queryWrapper));
}
// @ApiOperation(value = "会员码:创建")
@ApiOperation(value = "会员码:创建")
@RequiresPermissions("adam:member:code:creation")
@Log(title = "会员管理:会员码:创建", businessType = BusinessType.INSERT)
@PostMapping("mgt/creation")
......@@ -92,18 +107,19 @@ public class AdamMemberCodeAdminController extends BaseController {
return this.toAjax(adamMemberCodeAdminService.createGiftCode(parameter));
}
@GetMapping("view")
@GetMapping("mgt/code")
public String viewCode(@RequestParam String batchNo, ModelMap mmap) {
mmap.put("batchNo", batchNo);
return prefix + "/code";
}
// @ApiOperation(value = "会员码:列表")
@ApiOperation(value = "会员码:列表")
@RequiresPermissions("adam:member:code:list")
@Log(title = "会员管理:会员码:列表", businessType = BusinessType.LIST)
@PostMapping("list")
@ResponseBody
public TableDataInfo listCode(AdamMemberCodeListParam parameter) {
this.startPage();
return getDataTable(codeListQuery(parameter));
}
......@@ -112,19 +128,16 @@ public class AdamMemberCodeAdminController extends BaseController {
queryWrapper.eq(AdamMemberCode::getBatchNo, parameter.getBatchNo());
queryWrapper.eq(AdamMemberCode::getType, 2);
queryWrapper.ne(AdamMemberCode::getState, 2);
if (StringUtils.isNotBlank(parameter.getCode())) {
queryWrapper.eq(AdamMemberCode::getCode, parameter.getCode());
}
if (null != parameter.getState()) {
queryWrapper.eq(AdamMemberCode::getState, parameter.getState());
}
queryWrapper.select(
AdamMemberCode::getMemberNo,
AdamMemberCode::getCode,
AdamMemberCode::getState,
AdamMemberCode::getOperator,
AdamMemberCode::getCreatedAt,
AdamMemberCode::getValidity,
AdamMemberCode::getEffectAt,
AdamMemberCode::getExpireAt,
AdamMemberCode::getUseOrderNo,
AdamMemberCode::getUseUid,
AdamMemberCode::getUseAt
);
queryWrapper.orderByDesc(AdamMemberCode::getMemberNo);
......@@ -132,7 +145,7 @@ public class AdamMemberCodeAdminController extends BaseController {
return adamMemberCodeAdminService.list(queryWrapper);
}
// @ApiOperation(value = "会员码:导出")
@ApiOperation(value = "会员码:导出")
@RequiresPermissions("adam:member:code:export")
@Log(title = "会员管理:会员码:导出", businessType = BusinessType.EXPORT)
@PostMapping("export")
......@@ -147,59 +160,4 @@ public class AdamMemberCodeAdminController extends BaseController {
});
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));
// }
}
......@@ -2,7 +2,7 @@ package com.liquidnet.client.admin.web.controller.zhengzai.adam;
import com.liquidnet.client.admin.common.annotation.Log;
import com.liquidnet.client.admin.common.enums.BusinessType;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.base.ResponseDto;
import io.swagger.annotations.Api;
......@@ -29,14 +29,14 @@ import java.util.List;
@RequestMapping("adam/umember")
public class AdamUserMemberAdminController {
@Autowired
RedisUtil redisUtil;
RedisDataSourceUtil redisDataSourceUtil;
@Log(title = "会员管理:会员黑名单:列表", businessType = BusinessType.LIST)
@RequiresPermissions("adam:umember:blk:lis")
@ApiOperation(value = "列表")
@PostMapping("blk/lis")
public ResponseDto<List<String>> listBlack() {
return ResponseDto.success((List<String>) redisUtil.get(AdamRedisConst.BLK_LIST_MEMBER_UID));
return ResponseDto.success((List<String>) redisDataSourceUtil.getRedisAdamUtil().get(AdamRedisConst.BLK_LIST_MEMBER_UID));
}
@Log(title = "会员管理:会员黑名单:添加", businessType = BusinessType.INSERT)
......@@ -53,14 +53,14 @@ public class AdamUserMemberAdminController {
invalidList.add(uid);
}
}
List<String> blacklist = (List<String>) redisUtil.get(AdamRedisConst.BLK_LIST_MEMBER_UID);
List<String> blacklist = (List<String>) redisDataSourceUtil.getRedisAdamUtil().get(AdamRedisConst.BLK_LIST_MEMBER_UID);
if (CollectionUtils.isEmpty(blacklist)) {
blacklist = existList;
} else {
blacklist.addAll(existList);
}
if (!CollectionUtils.isEmpty(blacklist)) {
redisUtil.set(AdamRedisConst.BLK_LIST_MEMBER_UID, blacklist);
redisDataSourceUtil.getRedisAdamUtil().set(AdamRedisConst.BLK_LIST_MEMBER_UID, blacklist);
} else {
log.warn("###blacklist.add:failed,invalidList:{},existList:{},opts:{}", invalidList.size(), existList.size(), opts);
}
......@@ -73,12 +73,12 @@ public class AdamUserMemberAdminController {
@PostMapping("blk/del")
public ResponseDto<List<String>> delBlack(@NotBlank(message = "会员ID不能为空") @RequestParam String opts) {
String[] uidArr = opts.split(",");
List<String> blacklist = (List<String>) redisUtil.get(AdamRedisConst.BLK_LIST_MEMBER_UID);
List<String> blacklist = (List<String>) redisDataSourceUtil.getRedisAdamUtil().get(AdamRedisConst.BLK_LIST_MEMBER_UID);
if (!CollectionUtils.isEmpty(blacklist)) {
for (String uid : uidArr) {
blacklist.remove(uid);
}
redisUtil.set(AdamRedisConst.BLK_LIST_MEMBER_UID, blacklist);
redisDataSourceUtil.getRedisAdamUtil().set(AdamRedisConst.BLK_LIST_MEMBER_UID, blacklist);
}
return ResponseDto.success(blacklist);
}
......
package com.liquidnet.client.admin.web.controller.zhengzai.candy;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.liquidnet.client.admin.common.core.controller.BaseController;
import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponAdminService;
import com.liquidnet.service.candy.dto.admin.CandyCouponListParam;
import com.liquidnet.service.candy.entity.CandyCoupon;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping("candy/coupon")
public class CandyCouponAdminController extends BaseController {
@Autowired
ICandyCouponAdminService candyCouponAdminService;
@PostMapping("list")
@ResponseBody
public TableDataInfo list(CandyCouponListParam listParam) {
LambdaQueryWrapper<CandyCoupon> queryWrapper = Wrappers.lambdaQuery(CandyCoupon.class);
queryWrapper.select(CandyCoupon::getCouponId, CandyCoupon::getTitle);
queryWrapper.orderByDesc(CandyCoupon::getCreatedAt);
if (null != listParam) {
if (StringUtils.isNotBlank(listParam.getKeyword())) {
queryWrapper.like(CandyCoupon::getTitle, listParam.getKeyword());
}
if (null != listParam.getBusiType()) {
queryWrapper.eq(CandyCoupon::getBusiType, listParam.getBusiType());
}
if (null != listParam.getCouType()) {
queryWrapper.eq(CandyCoupon::getCouType, listParam.getCouType());
}
if (null != listParam.getBindType()) {
queryWrapper.eq(CandyCoupon::getBindType, listParam.getBindType());
}
}
startPage();
return getDataTable(candyCouponAdminService.list(queryWrapper));
}
}
......@@ -13,7 +13,8 @@ import com.liquidnet.client.admin.common.utils.poi.ExcelUtil;
import com.liquidnet.client.admin.zhengzai.candy.dto.CandyCouponCodeExcelDto;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponCodeAdminService;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyUserCouponAdminService;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.cache.redis.util.AbstractRedisUtil;
import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.candy.constant.CandyRedisConst;
......@@ -41,7 +42,7 @@ public class CandyCouponCodeAdminController extends BaseController {
private String prefix = "zhengzai/candy/coupon/code";
@Autowired
private RedisUtil redisUtil;
private RedisDataSourceUtil redisDataSourceUtil;
@Autowired
private ICandyCouponCodeAdminService candyCouponCodeAdminService;
@Autowired
......@@ -115,13 +116,14 @@ public class CandyCouponCodeAdminController extends BaseController {
couponCodeLambdaQueryWrapper.eq(CandyCouponCode::getState, 0);
List<CandyCouponCode> list = candyCouponCodeAdminService.list(couponCodeLambdaQueryWrapper);
AbstractRedisUtil redisCandyUtil = redisDataSourceUtil.getRedisCandyUtil();
List<String> ccodeUpdateList = CollectionUtil.arrayListString();
list.forEach(r -> {
String key = CandyRedisConst.BASIC_COUPON_CODE.concat(r.getCcode());
CandyCouponCodeDto dto = (CandyCouponCodeDto) redisUtil.get(key);
CandyCouponCodeDto dto = (CandyCouponCodeDto) redisCandyUtil.get(key);
if (null != dto && dto.getState() == 0) {
dto.setState(4);
redisUtil.set(key, dto);
redisCandyUtil.set(key, dto);
ccodeUpdateList.add(dto.getCcode());
}
});
......@@ -160,16 +162,17 @@ public class CandyCouponCodeAdminController extends BaseController {
couponCodeLambdaQueryWrapper.select(CandyCouponCode::getCouponId, CandyCouponCode::getUcouponId, CandyCouponCode::getRedeemUid);
List<CandyCouponCode> list = candyCouponCodeAdminService.list(couponCodeLambdaQueryWrapper);
AbstractRedisUtil redisCandyUtil = redisDataSourceUtil.getRedisCandyUtil();
List<String> ccodeUpdateList = CollectionUtil.arrayListString();
list.forEach(r -> {
String uckey = CandyRedisConst.BASIC_USER_COUPON.concat(r.getRedeemUid());
List<CandyUserCouponBasicDto> vos = (List<CandyUserCouponBasicDto>) redisUtil.get(uckey);
List<CandyUserCouponBasicDto> vos = (List<CandyUserCouponBasicDto>) redisCandyUtil.get(uckey);
if (!CollectionUtils.isEmpty(vos)) {
vos.removeIf(rv -> rv.getUcouponId().equals(r.getUcouponId()));
}
redisUtil.set(uckey, vos);
redisCandyUtil.set(uckey, vos);
ccodeUpdateList.add(r.getUcouponId());
});
......
......@@ -243,18 +243,42 @@ public class CandyMgtCouponAdminController extends BaseController {
buildParam.setCouponRuleList(null);
}
if (0 == buildParam.getBindType()) {
buildParam.setEventType(0);
buildParam.setEventLimit(null);
if (null == buildParam.getRedeemValidity()) {
return AjaxResult.warn("兑换有效期无效");
}
} else {
if (buildParam.getEventType() == 2) {// 指定用户手机号
if (StringUtils.isBlank(buildParam.getEventLimit())) {
return AjaxResult.warn("请指定手机号");
// if (0 == buildParam.getBindType()) {
// buildParam.setEventType(0);
// buildParam.setEventLimit(null);
// if (null == buildParam.getRedeemValidity()) {
// return AjaxResult.warn("兑换有效期无效");
// }
// } else {
// if (buildParam.getEventType() == 2) {// 指定用户手机号
// if (StringUtils.isBlank(buildParam.getEventLimit())) {
// return AjaxResult.warn("请指定手机号");
// }
// }
// }
switch (buildParam.getBindType()) {// 领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换]
case 0:
buildParam.setEventType(0);
buildParam.setEventLimit(null);
if (null == buildParam.getRedeemValidity()) {
return AjaxResult.warn("兑换有效期无效");
}
}
break;
case 1:
if (buildParam.getEventType() == 2) {// 指定用户手机号
if (StringUtils.isBlank(buildParam.getEventLimit())) {
return AjaxResult.warn("请指定手机号");
}
}
break;
case 2:// TODO: 2021/11/9 PM上线前临时加的券领取类型(2-积分兑换)
buildParam.setEventType(0);
buildParam.setEventLimit(null);
break;
default:
logger.warn("Invalid operation[buildParam.bindType={}]", buildParam.getBindType());
return this.error(AjaxResult.Type.WARN, "券领取方式无效");
}
return AjaxResult.success();
}
......
......@@ -69,7 +69,9 @@ public class PerformancesExpressController extends BaseController {
@RequiresPermissions("kylin:performancesExpress:performanceOrderList")
@GetMapping("performanceOrderList/{id}")
public String performanceOrderListView(@PathVariable("id") String id, ModelMap mmap) {
List<PerformancesTicketListDao> performancesTicketList = performancesExpressServiceImpl.getPerformancesTicketList(id);
mmap.put("performancesId", id);
mmap.put("performancesTicketList", performancesTicketList);
return prefix + "/performanceOrderList";
}
......@@ -79,7 +81,6 @@ public class PerformancesExpressController extends BaseController {
@ResponseBody
public TableDataInfo performanceOrderList(PerformanceExpressSearchAdminParam performanceExpressSearchAdminParam) {
List<PerformanceExpressPerformanceOrderListAdminDao> orderList = performancesExpressServiceImpl.getPerformancesOrderList(performanceExpressSearchAdminParam);
// List<PerformancesTicketListDao> ticketList = performancesExpressServiceImpl.getPerformancesTicketList(performanceExpressSearchAdminParam.getPerformancesId());
return getDataTable(orderList);
}
......
package com.liquidnet.client.admin.web.controller.zhengzai.stone;
import com.github.pagehelper.PageInfo;
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.zhengzai.stone.service.IItemService;
import com.liquidnet.service.stone.entity.StoneScoreItems;
import com.liquidnet.service.stone.param.StoneItemBuildParam;
import com.liquidnet.service.stone.param.StoneListParam;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
@Api(tags = "积分物品")
@Controller
@RequestMapping("stone/item")
public class StoneItemController extends BaseController {
private String prefix = "zhengzai/stone";
@Value("${liquidnet.client.admin.platformUrl}")
private String platformUrl;
@Autowired
private IItemService iItemService;
@GetMapping("integralStore")
@ApiOperation(value = "积分商品:列表View")
public String integralStore(ModelMap mmap) {
return prefix + "/integralStore";
}
@GetMapping("integralStoreEdit")
@ApiOperation(value = "积分商品:详情View")
public String integralStoreEdit (ModelMap mmap) {
mmap.put("platformUrl", platformUrl);
return prefix + "/integralStoreEdit";
}
@Log(title = "积分商品:列表")
@ApiOperation(value = "积分商品:列表")
@PostMapping("list")
@ResponseBody
public TableDataInfo list(StoneListParam listParam) {
PageInfo<StoneScoreItems> result = iItemService.itemList(listParam.getTitle(), listParam.getState(), listParam.getType());
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(0);
rspData.setRows(result.getList());
rspData.setTotal(result.getTotal());
return rspData;
}
@Log(title = "积分商品:修改状态")
@PutMapping("change/status")
@ApiOperation(value = "积分商品:修改状态")
@ResponseBody
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "itemId", value = "积分物品ID"),
@ApiImplicitParam(type = "form", required = true, dataType = "Integer", name = "status", value = "状态[-1-删除|1-上架|7-下架]"),
})
public AjaxResult status(@RequestParam("itemId") String itemId, @RequestParam("status") Integer status) {
String result = iItemService.changeStatus(itemId, status);
return AjaxResult.success(result);
}
@Log(title = "积分商品:详情")
@GetMapping("details")
@ApiOperation(value = "积分商品:详情")
@ResponseBody
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "itemId", value = "积分物品ID"),
})
public AjaxResult details(@RequestParam("itemId") String itemId) {
StoneScoreItems result = iItemService.itemDetails(itemId);
return AjaxResult.success(result);
}
@Log(title = "积分商品:创建")
@PostMapping("")
@ApiOperation(value = "积分商品:创建")
@ResponseBody
public AjaxResult createItem(StoneItemBuildParam param) {
String result = iItemService.createItem(param);
return AjaxResult.success(result);
}
@Log(title = "积分商品:修改")
@PutMapping("")
@ApiOperation(value = "积分商品:修改")
@ResponseBody
public AjaxResult updateItem(StoneItemBuildParam param) {
String result = iItemService.updateItem(param);
return AjaxResult.success(result);
}
}
package com.liquidnet.client.admin.web.controller.zhengzai.stone;
import com.github.pagehelper.PageInfo;
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.utils.poi.ExcelUtil;
import com.liquidnet.client.admin.zhengzai.kylin.dto.OrderExportVo;
import com.liquidnet.client.admin.zhengzai.stone.service.IItemService;
import com.liquidnet.client.admin.zhengzai.stone.service.IScoreService;
import com.liquidnet.client.admin.zhengzai.stone.service.dto.StoneScoreListExportDto;
import com.liquidnet.client.admin.zhengzai.stone.service.vo.StoneUserScoreDetailVo;
import com.liquidnet.service.stone.dto.StoneScoreListDto;
import com.liquidnet.service.stone.entity.StoneScoreItems;
import com.liquidnet.service.stone.param.StoneItemBuildParam;
import com.liquidnet.service.stone.param.StoneListParam;
import com.liquidnet.service.stone.param.StoneScoreListParam;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@Api(tags = "积分明细")
@Controller
@RequestMapping("stone/logs")
public class StoneLogsController extends BaseController {
private String prefix = "zhengzai/stone";
@Autowired
private IScoreService iScoreService;
@GetMapping("integralStore")
@ApiOperation(value = "积分明细:列表View", position = 0)
public String integralStore(ModelMap mmap) {
return prefix + "/integralList";
}
@GetMapping("integralStoreEdit")
@ApiOperation(value = "积分明细:详情View", position = 1)
public String integralStoreEdit(ModelMap mmap) {
return prefix + "/integralDetail";
}
@Log(title = "积分明细:列表")
@ApiOperation(value = "积分明细:列表", position = 2)
@PostMapping("list")
@ResponseBody
public TableDataInfo list(StoneScoreListParam listParam) {
// startPage();
List<StoneScoreListDto> result = iScoreService.list(listParam);
return this.getDataTable(result);
}
@Log(title = "积分明细:修改状态")
@PutMapping("change/status")
@ApiOperation(value = "积分明细:修改状态", position = 3)
@ResponseBody
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "uid", value = "用户id"),
@ApiImplicitParam(type = "form", required = true, dataType = "Integer", name = "status", value = "状态[1-正常|2-冻结]"),
})
public AjaxResult status(@RequestParam("uid") String uid, @RequestParam("status") Integer status) {
String result = iScoreService.changeStatus(uid, status);
return AjaxResult.success(result);
}
@Log(title = "积分明细:详情")
@GetMapping("details")
@ApiOperation(value = "积分明细:详情", position = 4)
@ResponseBody
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "uid", value = "用户id"),
})
public AjaxResult details(@RequestParam("uid") String uid) {
StoneUserScoreDetailVo result = iScoreService.userScoreDetail(uid);
return AjaxResult.success(result);
}
@Log(title = "积分明细:导出列表[根据uid]")
@PostMapping("list/export")
@ResponseBody
public AjaxResult export(String uidString) {
List<StoneScoreListExportDto> list = iScoreService.listExport(uidString.split(","));
ExcelUtil<StoneScoreListExportDto> util = new ExcelUtil(StoneScoreListExportDto.class);
return util.exportExcel(list, "积分导出");
}
}
package com.liquidnet.client.admin.web.controller.zhengzai.sweet;
import com.github.pagehelper.PageInfo;
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.sweet.service.ISweetIntegralActivityService;
import com.liquidnet.service.sweet.dto.SweetIntegralActivityDto;
import com.liquidnet.service.sweet.dto.param.admin.SweetIntegralActivityFromParam;
import com.liquidnet.service.sweet.dto.param.admin.SweetIntegralActivityListSearchParam;
import com.liquidnet.service.sweet.dto.vo.admin.SweetIntegralActivityVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/**
* <p>
* 积分活动表 前端控制器
* </p>
*
* @author jiangxiulong
* @since 2021-10-20
*/
@Api(tags = "积分活动管理")
@Validated
@Controller
@RequestMapping("/sweet/integralActivity")
public class SweetIntegralActivityController extends BaseController {
private String prefix = "zhengzai/sweet/integralActivity";
@Value("${liquidnet.client.admin.platformUrl}")
private String platformUrl;
@Autowired
private ISweetIntegralActivityService iSweetIntegralActivityService;
@Log(title = "积分活动创建", businessType = BusinessType.INSERT)
@RequiresPermissions("sweet:integralActivity:create")
@PostMapping("create")
@ApiOperation(value = "积分活动创建")
@ResponseBody
public AjaxResult create(@Valid @RequestBody SweetIntegralActivityFromParam param) {
Integer result = iSweetIntegralActivityService.createForm(param);
if (result > 0) {
return success("操作成功");
} else {
return error("操作失败");
}
}
@Log(title = "积分活动编辑", businessType = BusinessType.UPDATE)
@RequiresPermissions("sweet:integralActivity:update")
@PutMapping("update")
@ApiOperation(value = "积分活动编辑")
@ResponseBody
public AjaxResult update(@Valid @RequestBody SweetIntegralActivityFromParam param) {
Integer result = iSweetIntegralActivityService.updateForm(param);
if (result > 0) {
return success("操作成功");
} else {
return error("操作失败");
}
}
@Log(title = "积分活动上下线", businessType = BusinessType.UPDATE)
@RequiresPermissions("sweet:integralActivity:isOnline")
@ApiOperation(value = "积分活动上下线")
@PutMapping("isOnline")
@ResponseBody
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "integralActivityId", value = "活动id"),
@ApiImplicitParam(type = "form", required = true, dataType = "Integer", name = "isOnline", value = "是否上线 1下线 2上线"),
})
public AjaxResult isOnline(
@RequestParam("integralActivityId") @NotEmpty(message = "integralActivityId不能为空") String integralActivityId,
@RequestParam("isOnline") @NotNull(message = "isOnline不能为空") @Min(value = 1, message = "isOnline无效") @Max(value = 2, message = "isOnline无效") Integer isOnline
) {
Integer result = iSweetIntegralActivityService.isOnline(integralActivityId, isOnline);
if (result > 0) {
return success("操作成功");
} else {
return error("操作失败");
}
}
@Log(title = "积分活动详情", businessType = BusinessType.DETAIL)
@GetMapping("details")
@ApiOperation(value = "积分活动详情")
@ResponseBody
@ApiImplicitParams({
@ApiImplicitParam(type = "query", required = true, dataType = "String", name = "integralActivityId", value = "活动id"),
})
public AjaxResult details(@RequestParam("integralActivityId") String integralActivityId) {
SweetIntegralActivityVo result = iSweetIntegralActivityService.detail(integralActivityId);
return AjaxResult.success(result);
}
@Log(title = "积分活动列表数据", businessType = BusinessType.LIST)
@RequiresPermissions("sweet:integralActivity:list")
@ApiOperation(value = "积分活动列表数据")
@PostMapping("list")
@ResponseBody
public TableDataInfo list(SweetIntegralActivityListSearchParam listParam) {
PageInfo<SweetIntegralActivityDto> result = iSweetIntegralActivityService.list(listParam);
return getDataTable(result.getList());
}
@GetMapping("listView")
@ApiOperation(value = "积分活动列表view")
public String listView() {
return prefix + "/list";
}
@GetMapping("formView")
@ApiOperation(value = "积分活动添加编辑view")
public String formView(ModelMap mmap) {
mmap.put("platformUrl", platformUrl);
return prefix + "/form";
}
}
package com.liquidnet.client.admin.web.controller.zhengzai.sweet;
import com.github.pagehelper.PageInfo;
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.sweet.dto.SweetActivityDrawExcelListDao;
import com.liquidnet.client.admin.zhengzai.sweet.service.ISweetIntegralActivityDrawService;
import com.liquidnet.service.sweet.dto.SweetActivityDrawListDao;
import com.liquidnet.service.sweet.dto.admin.SweetIntegralActivityDrawListSearchParam;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 积分活动抽奖记录表 前端控制器
* </p>
*
* @author jiangxiulong
* @since 2021-10-22
*/
@Api(tags = "积分活动管理")
@Validated
@Controller
@RequestMapping("/sweet/IntegralActivityDraw")
public class SweetIntegralActivityDrawController extends BaseController {
private String prefix = "zhengzai/sweet/integralActivityDraw";
@Autowired
private ISweetIntegralActivityDrawService iSweetIntegralActivityDrawService;
@Log(title = "积分活动中奖列表数据", businessType = BusinessType.LIST)
@RequiresPermissions("sweet:integralActivityDraw:list")
@ApiOperation(value = "积分活动中奖列表数据")
@PostMapping("list")
@ResponseBody
public TableDataInfo list(SweetIntegralActivityDrawListSearchParam listParam) {
PageInfo<SweetActivityDrawListDao> result = iSweetIntegralActivityDrawService.drawList(listParam);
return getDataTable(result.getList());
}
@Log(title = "积分活动导出中奖列表数据", businessType = BusinessType.EXPORT)
@RequiresPermissions("kylin:integralActivityDraw:exportExcel")
@PostMapping("/export")
@ResponseBody
public AjaxResult export(@RequestParam("ids") String integralActivityId) {
List<SweetActivityDrawListDao> list = iSweetIntegralActivityDrawService.selectExcelList(integralActivityId);
ExcelUtil<SweetActivityDrawExcelListDao> excelUtil = new ExcelUtil<>(SweetActivityDrawExcelListDao.class);
List<SweetActivityDrawExcelListDao> excelList = new ArrayList<>();
list.forEach(r -> {
excelList.add(SweetActivityDrawExcelListDao.getNew().copy(r));
});
return excelUtil.exportExcel(excelList, "积分活动导出中奖列表数据");
}
@Log(title = "积分活动中奖发货", businessType = BusinessType.UPDATE)
@RequiresPermissions("sweet:integralActivityDraw:receivingStatus")
@ApiOperation(value = "积分活动中奖发货")
@PutMapping("receivingStatus")
@ResponseBody
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "drawId", value = "抽奖id")
})
public AjaxResult receivingStatus(
@RequestParam("drawId") @NotEmpty(message = "drawId不能为空") String drawId
) {
Integer result = iSweetIntegralActivityDrawService.receivingStatus(drawId);
if (result > 0) {
return success("操作成功");
} else {
return error("操作失败");
}
}
@GetMapping("listView/{id}")
@ApiOperation(value = "积分活动中奖列表view")
public String listView(@PathVariable("id") String id, ModelMap mmap) {
mmap.put("integralActivityId", id);
return prefix + "/list";
}
}
......@@ -8,12 +8,19 @@ import com.liquidnet.client.admin.zhengzai.kylin.dto.OrderExportVo;
import com.liquidnet.client.admin.zhengzai.kylin.dto.OrderOutLineVo;
import com.liquidnet.client.admin.zhengzai.kylin.service.IExportService;
import com.liquidnet.client.admin.zhengzai.kylin.service.IToolService;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.entity.KylinOrderTicketEntities;
import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import com.liquidnet.service.kylin.entity.KylinOrderTickets;
import java.util.ArrayList;
import java.util.List;
......@@ -26,7 +33,8 @@ public class ToolsBaseController extends BaseController {
private IExportService exportService;
@Autowired
private IToolService toolService;
@Autowired
MongoTemplate mongoTemplate;
@GetMapping()
public String tools() {
return prefix + "/tools";
......@@ -48,7 +56,11 @@ public class ToolsBaseController extends BaseController {
mmap.put("url_info", "/tools/order/enter");
mmap.put("url_single", "/tools/order/getSingleEnter");
return prefix + "/fun2";//订单修改入场人
} else {
} else if (id == 3) {
mmap.put("url_info", "/tools/order/getContacts");
mmap.put("url_single", "/tools/order/getSingleContacts");
return prefix + "/fun3";//订单查询
} else {
return prefix + "/edit";
}
}
......@@ -129,4 +141,52 @@ public class ToolsBaseController extends BaseController {
public AjaxResult getOrderTicketEnterByOrderCode(String orderTicketEntitiesId, String enterName, String enterMobile, String enterIdCode, Integer enterType, String orderId) {
return AjaxResult.success(toolService.supplementEnter(orderTicketEntitiesId, enterName, enterMobile, enterIdCode, enterType, orderId));
}
/**
* 根据订单号获取收货人信息
*
* @param orderCode
* @return
*/
@PostMapping("/order/getContacts")
@ResponseBody
public TableDataInfo getExpressContactsByOrderCode(String orderCode, ModelMap mmap) {
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(0);
List<KylinOrderTickets> data = toolService.getExpressContactsByOrderCode(orderCode);
if (data != null){
rspData.setRows(data);
rspData.setTotal(data.size());
}else {
rspData.setRows(new ArrayList<>());
rspData.setTotal(0);
}
return rspData;
}
/**
* 修改收货人信息
*
* @param orderCode
* @return
*/
@GetMapping("/order/getSingleContacts/{orderCode}")
public String getSingleContacts(@PathVariable("orderCode") String orderCode, ModelMap mmap) {
List<KylinOrderTickets> data = toolService.getExpressContactsByOrderCode(orderCode);
mmap.put("dataInfo", data.get(0));
mmap.put("url_change", "/tools/order/expressPhoneChange");
return prefix + "/fun3Details";
}
/**
* 修改收货人手机号
*
* @param orderCode
* @param expressPhone
* @return
*/
@PostMapping("/order/expressPhoneChange")
@ResponseBody
public AjaxResult updOrderExpressPhoneByOrderCode(String orderCode,String expressPhone) {
return AjaxResult.success(toolService.updOrderExpressPhoneByOrderCode(orderCode, expressPhone));
}
}
......@@ -11,9 +11,12 @@
<form id="data-form">
<div class="select-list">
<ul>
<input type="text" name="memberId" hidden="hidden" th:value="${memberId}" readonly/>
<li>
状态:<select name="state" th:with="type=${@dict.getType('zhengzai_coupon_code_state')}">
<label>会员码:</label>
<input type="text" name="code"/>
</li>
<li>
状态:<select name="state" th:with="type=${@dict.getType('zhengzai_member_code_state')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
......@@ -28,15 +31,9 @@
</div>
<div class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="adam:member:export:code">
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="adam:member:code:export">
<i class="fa fa-download"></i> 导出
</a>
<!-- <a class="btn btn-primary multiple disabled" onclick="invalidHandler()" shiro:hasPermission="adam:member:invalid:code">-->
<!-- <i class="fa fa-edit"></i> 批量失效-->
<!-- </a>-->
<!-- <a class="btn btn-danger multiple disabled" onclick="recoverHandler()" shiro:hasPermission="adam:member:recover:code">-->
<!-- <i class="fa fa-remove"></i> 批量退回-->
<!-- </a>-->
</div>
<div class="col-sm-12 select-table table-striped">
......@@ -47,70 +44,44 @@
<th:block th:include="include :: footer" />
<th:block th:include="include :: select2-js" />
<script th:inline="javascript">
// var invalidFlag = [[${@permission.hasPermi('adam:member:code:invalid')}]];
// var recoverFlag = [[${@permission.hasPermi('adam:member:code:recover')}]];
var datas = [[${@dict.getType('zhengzai_coupon_code_state')}]];// 样例:[{"dictLabel":"未支付","dictValue":"0"},{"dictLabel":"已支付","dictValue":"1"},{"dictLabel":"已关闭","dictValue":"2"}]
var memberId = [[${memberId}]];
var datas = [[${@dict.getType('zhengzai_member_code_state')}]];// 样例:[{"dictLabel":"未支付","dictValue":"0"},{"dictLabel":"已支付","dictValue":"1"},{"dictLabel":"已关闭","dictValue":"2"}]
var batchNo = [[${batchNo}]];
var prefix = ctx + "adam/mcode";
$(function() {
var options = {
url: prefix + "/list",
exportUrl: prefix + "/export",
sortName: "code",
sortOrder: "asc",
modalName: "会员码",
url: prefix + "/list?batchNo=" + batchNo,
exportUrl: prefix + "/export?batchNo=" + batchNo,
sortName: "memberNo",
sortOrder: "desc",
modalName: "会员码列表",
columns: [
{
checkbox: true
},
{
field: 'code',
title: '会员码'
},
{
field: 'expireAt',
title: '到期时间'
},
{
field: 'useAt',
title: '使用时间'
field: 'memberNo',
title: '卡号'
},
{
field: 'useOrderNo',
title: '兑换订单号',
formatter: function(value, row, index) {
var actions = [];
if ($.common.isEmpty(value)) {
actions.push('<a href="javascript:void(0)">-</a>');
} else {
actions.push('<a href="javascript:void(0)" onclick="$.operate.detailTab(\'' + value + '\')">' + value + '</a>');
}
return actions.join('');
}
field: 'code',
title: '会员码'
},
{
field: 'state',
title: '状态',
title: '使用状态',
align: 'center',
formatter: function(value, row, index) {
return $.table.selectDictLabel(datas, value);
}
},
// {
// title: '操作',
// align: 'center',
// formatter: function(value, row, index) {
// var actions = [];
// if (row.state === 0) {
// actions.push('<a class="btn btn-primary btn-xs ' + (invalidFlag && row.state===0) + '" href="javascript:void(0)" onclick="invalidHandler(\'' + row.code + '\')"><i class="fa fa-edit"></i>失效</a> ');
// } else if (row.state === 1) {
// // actions.push('<a class="btn btn-danger btn-xs ' + (recoverFlag && row.state==0) + '" href="javascript:void(0)" onclick="recoverHandler(\'' + row.code + '\')"><i class="fa fa-remove"></i>退回</a>');
// }
// return actions.join('');
// }
// }
{
field: 'useAt',
title: '使用时间',
formatter: function (value, row, index) {
return $.common.sprintf("<span>%s</span>", null != value ? value.replace("T"," ").substring(0, 19) : value);
}
}
]
};
$.table.init(options);
......@@ -119,30 +90,6 @@
function resetPre() {
$.form.reset();
}
// function invalidHandler(code) {
// let invalidCodeUrl = prefix + '/invalid_code';
// if (code !== null && code !== undefined) {
// var data = {"memberId": memberId,"codes": code};
// $.operate.submit(invalidCodeUrl, "post", "json", data);
// } else {
// var rows = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId);
// var data = {"memberId": memberId, "codes": rows.join()};
// $.operate.batchProcessing(invalidCodeUrl, '失效', data);
// }
// }
//
// function recoverHandler(code) {
// let recoverCodeUrl = prefix + '/recover_code';
// if (code !== null && code !== undefined) {
// var data = {"memberId": memberId,"codes": code};
// $.operate.submit(recoverCodeUrl, "post", "json", data);
// } else {
// var rows = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId);
// var data = {"memberId": memberId, "codes": rows.join()};
// $.operate.batchProcessing(recoverCodeUrl, '失效', data);
// }
// }
</script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('创建会员码')" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-code-add">
<input >
<div class="form-group">
<label class="col-sm-3 control-label is-required">生产数量:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="genNum" id="genNum" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">
<textarea id="remark" name="detail" class="form-control"></textarea>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<script type="text/javascript">
var prefix = ctx + "system/dict";
$("#form-code-add").validate({
onkeyup: false,
rules:{
dictType:{
minlength: 5,
remote: {
url: prefix + "/checkDictTypeUnique",
type: "post",
dataType: "json",
data: {
name : function() {
return $.common.trim($("#dictType").val());
}
},
dataFilter: function(data, type) {
return $.validate.unique(data);
}
}
},
},
messages: {
"dictType": {
remote: "该字典类型已经存在"
}
},
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/add", $('#form-code-add').serialize());
}
}
</script>
</body>
</html>
......@@ -8,7 +8,7 @@
<div class="container-div">
<div class="row">
<div class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="adam:member:code:creation">
<a class="btn btn-success" href="#member-gencode-form" data-toggle="modal" shiro:hasPermission="adam:member:code:creation">
<i class="fa fa-plus"></i> 创建
</a>
</div>
......@@ -16,59 +16,97 @@
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
<div id="member-gencode-form" class="modal fade" aria-hidden="true">
<div class="modal-dialog" style="width:33%;">
<div class="modal-content modal-body row">
<h3 class="m-t-none m-b text-center">创建会员码</h3>
<form role="form" id="form-member-code-generate">
<input name="memberId" type="hidden" th:value="${memberId}" readonly>
<input name="memberPriceId" type="hidden" th:value="${memberPrice.memberPriceId}" readonly>
<div class="form-group">
<label class="pull-left">生产数量:</label>
<input type="number" name="genNum" class="form-control" style="width: 30%;height: 20px;" placeholder="生产数量">
</div>
<div class="form-group">
<!-- <label>备注:</label>-->
<textarea rows="3" name="detail" placeholder="备注描述" class="form-control"></textarea>
</div>
<div class="text-center" style="margin-bottom: -15px;margin-top: 10px;">
<button class="btn btn-sm btn-primary m-t-n-xs" type="button" onclick="memberCodeGenerate()">
<strong>确认创建</strong>
</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: select2-js" />
<script th:inline="javascript">
var viewMemberCodeListFlg = [[${@permission.hasPermi('adam:member:code:list')}]];
var memberId = [[${memberId}]];
var prefix = ctx + "adam/mcode";
$(function() {
var options = {
url: prefix + "/mgt/list?memberId=" + memberId,
createUrl: prefix + "/mgt/creation/{id}",
exportUrl: prefix + "/export_code",
detailUrl: ctx + "adam/order/orderList/detail/{id}",
sortName: "code",
sortOrder: "asc",
sortName: "createdAt",
sortOrder: "desc",
modalName: "会员码创建记录",
columns: [{
checkbox: true
},
{
field: 'memberName',
title: '会员名称'
title: '会员名称',
width: 220
},
{
field: 'memberCombo',
title: '会员套餐名称'
title: '会员套餐名称',
width: 180
},
{
field: 'genNum',
title: '生产数量'
title: '生产数量',
width: 80
},
{
field: 'useNum',
title: '使用数量'
title: '使用数量',
width: 80
},
{
field: 'detail',
title: '备注'
title: '备注',
width: 280
},
{
field: 'operator',
title: '创建人'
title: '创建人',
width: 100
},
{
field: 'createdAt',
title: '创建时间'
title: '创建时间',
width: 150,
formatter: function (value, row, index) {
return $.common.sprintf("<span>%s</span>", null != value ? value.replace("T"," ").substring(0, 19) : value);
}
},
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-primary btn-xs ' + (invalidFlag && row.state===0) + '" href="javascript:void(0)" onclick="memberCodeList(\'' + row.batchNo + '\')"><i class="fa fa-edit"></i>查看码列表</a> ');
actions.push('<a class="btn btn-primary btn-xs ' + viewMemberCodeListFlg + '" href="javascript:void(0)" onclick="memberCodeList(\'' + row.batchNo + '\')"><i class="fa fa-list-ul"></i>查看码列表</a> ');
return actions.join('');
}
}]
......@@ -78,7 +116,60 @@
/* 会员码列表 */
function memberCodeList(batchNo) {
$.modal.openTab("会员码列表", 'adam/mcode/view?batchNo=' + batchNo);
$.modal.openTab("会员码列表", prefix + '/mgt/code?batchNo=' + batchNo);
}
$("#form-member-code-generate").validate({
onkeyup: false,
rules:{
genNum: {
required: true,
number: true,
min: 1,
max: 100
},
detail: {
required: true,
minlength: 2,
maxlength: 100
}
},
messages: {
genNum: {
required: "请输入生产数量",
number: "生产数量必须为数字",
min: "生产数量不能小于1",
max: "生产数量不能大于100"
},
detail: {
required: "请输入备注描述",
minlength: "备注描述不得少于2个字符",
maxlength: "备注描述不得大于100个字符"
}
},
focusCleanup: true
});
function memberCodeGenerate() {
if ($.validate.form("form-member-code-generate")) {
$('#member-gencode-form').hide();
$.operate.saveModal(prefix + "/mgt/creation", $('#form-member-code-generate').serialize(), memberCodeGenerateCallback);
}
}
function memberCodeGenerateCallback(result) {
if (typeof callback == "function") {
callback(result);
}
if (result.code == web_status.SUCCESS) {
$.modal.alertSuccess(result.msg);
setTimeout("refreshTab()", 1500);
} else if (result.code == web_status.WARNING) {
$('#member-gencode-form').show();
$.modal.alertWarning(result.msg);
} else {
$('#member-gencode-form').show();
$.modal.alertError(result.msg);
}
}
</script>
</body>
......
......@@ -495,14 +495,10 @@
<script th:inline="javascript">
var member = [[${member}]];
console.log(member);
var platformUrl = [[${platformUrl}]];
var memberRightsList = [[${memberRightsList}]];
console.log(memberRightsList);
var couponMemberDtoListMap = [[${couponMemberDtoListMap}]];
console.log(couponMemberDtoListMap);
var memberPrice = [[${memberPrice}]];
console.log(member);
var typeRadio = '';
......
......@@ -39,9 +39,10 @@
field: 'icon',
title: 'ICON',
formatter: function (value, row, index) {
var actions = [];
actions.push($.common.sprintf("<img class='img-circle img-xs' src='%s' />", value));
return actions;
// var actions = [];
// actions.push($.common.sprintf("<img class='img-circle img-xs' src='%s' />", value));
// return actions;
return $.table.imageView(value);
}
},
{
......@@ -77,7 +78,7 @@
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.editTab(\'' + row.memberId + '\'); setVipTabs()"><i class="fa fa-edit"></i>编辑</a> ');
// actions.push('<a class="btn btn-success btn-xs ' + viewMemberCodeMgtFlag + '" href="javascript:void(0)" onclick="memberCodeMgt(\'' + row.memberId + '\')"><i class="fa fa-edit"></i>会员码管理</a> ');
actions.push('<a class="btn btn-warning btn-xs ' + viewMemberCodeMgtFlag + '" href="javascript:void(0)" onclick="memberCodeMgt(\'' + row.memberId + '\')"><i class="fa fa-barcode"></i>会员码管理</a> ');
return actions.join('');
}
}]
......
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