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

Commit c7ccb199 authored by 张国柄's avatar 张国柄

Merge remote-tracking branch 'origin/jxl_1201_jifenDraw' into jxl_1201_jifenDraw

parents d3b428fb 18187100
drop table if exists bi_ticket_access_records;
create table dev_ln_scene.bi_ticket_access_records
(
mid bigint unsigned auto_increment
primary key,
user_id varchar(64) not null comment '用户id',
access_type varchar(30) null comment '访问类型: 详情页now_tk_detail,票种页now_tk_ticket,下单页now_tk_order,支付操作now_tk_pay',
performance_id varchar(100) null comment '演出id',
order_id varchar(100) null comment '订单id',
order_code varchar(64) null comment '订单编号',
ip_address varchar(100) null comment '操作ip',
area varchar(200) null comment 'ip全名称',
area_province varchar(100) null comment 'ip名称省',
area_city varchar(100) null comment 'ip名称市',
area_county varchar(100) null comment 'ip名称县',
created_at timestamp default CURRENT_TIMESTAMP not null
);
alter table kylin_order_tickets add area varchar(200) null comment 'ip地域全名称';
alter table kylin_order_tickets add area_province varchar(100) null comment 'ip地域省';
alter table kylin_order_tickets add area_city varchar(100) null comment 'ip地域市';
alter table kylin_order_tickets add area_county varchar(100) null comment 'ip地域县';
......@@ -26,6 +26,7 @@ public class AdamRedisConst {
*/
public static final String INFO_CERTIFICATION_JUNK = PREFIX.concat("info:certification_junk:");
public static final String INFO_MEMBER_JOINUS = PREFIX.concat("info:member:joinus:");
public static final String INFO_MEMBER_SIMPLE = PREFIX.concat("info:member:simple");
public static final String INFO_MEMBER_CATEGORY = PREFIX.concat("info:member:category:");
public static final String INFO_MEMBER_PRICE = PREFIX.concat("info:member:price:");
......@@ -55,6 +56,8 @@ public class AdamRedisConst {
public static final String SWITCH_BUY_MEMBER = PREFIX.concat("switch:buy:member");
public static final String SERIAL_NUMBER_MEMBER = PREFIX.concat("serial_no:");
/* ----------------------------------------------------------------- */
// public static final String LOCK_KEY_UMEMBER_NO = "adam:lk:member:no";
......
package com.liquidnet.service.adam.dto.vo;
import com.liquidnet.commons.lang.util.SensitizeUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.List;
@ApiModel(value = "AdamLoginInfoVo", description = "登录成功响应数据")
public class AdamLoginInfoVo implements Serializable, Cloneable {
......
package com.liquidnet.service.adam.dto.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel(value = "AdamMemberJoinusVo", description = "领取的会员卡详情")
@Data
public class AdamMemberJoinusVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = -2346451755376200201L;
@ApiModelProperty(position = 10, value = "")
private String qrCode;
@ApiModelProperty(position = 11, value = "标题[50]", example = "摩登天空会员卡")
private String title;
@ApiModelProperty(position = 12, value = "副标题[50]", example = "摩登天空专属会员卡")
private String subTitle;
@ApiModelProperty(position = 13, value = "卡面[200]", example = "https://img.zhengzai.tv/member_card/member1.png")
private String cardface;
@ApiModelProperty(position = 14, value = "卡类型[0-非会员|10-普通会员|50-VIP会员]", example = "0")
private Integer type;
@ApiModelProperty(position = 15, value = "卡状态[0-未领取|1-已领取]", example = "0")
private Integer state;
@ApiModelProperty(position = 16, value = "权益详情[200]", example = "加入摩登天空会员您可享受到.....")
private String interestsDetail;
private static final AdamMemberJoinusVo obj = new AdamMemberJoinusVo();
public static AdamMemberJoinusVo getNew() {
try {
return (AdamMemberJoinusVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new AdamMemberJoinusVo();
}
}
}
......@@ -31,6 +31,8 @@ public class AdamMemberRightsCouponVo implements java.io.Serializable, Cloneable
private BigDecimal valOver;
@ApiModelProperty(position = 10, value = "满减~减")
private BigDecimal valMinus;
@ApiModelProperty(position = 11, value = "折扣[8折即0.8]")
private BigDecimal discount;
/* com.liquidnet.service.adam.dto.vo.AdamMemberRightsCouponRuleVo */
private List<AdamMemberRightsCouponRuleVo> useRules;
......
......@@ -120,13 +120,12 @@ public class AdamMemberVo implements java.io.Serializable, Cloneable {
try {
return (AdamMemberVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
return new AdamMemberVo();
}
return new AdamMemberVo();
}
public AdamMemberVo copy(AdamMember source) {
if (null == this) return this;
if (null == source) return this;
this.setMemberId(source.getMemberId());
this.setName(source.getName());
this.setTitle(source.getTitle());
......
package com.liquidnet.service.adam.dto.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@ApiModel(value = "AdamUserProfileVo", description = "个人信息响应数据")
@Data
public class AdamUserProfileVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = 3782062486028972984L;
@ApiModelProperty(position = 11, value = "用户信息")
private AdamUserInfoVo userInfo;
@ApiModelProperty(position = 12, value = "实名信息")
private AdamRealInfoVo realNameInfo;
@ApiModelProperty(position = 13, value = "用户第三方账号信息")
private List<AdamThirdPartInfoVo> thirdPartInfo;
@ApiModelProperty(position = 14, value = "会员信息")
private AdamMemberSimpleVo memberVo;
@ApiModelProperty(position = 15, value = "用户会员信息")
private AdamUserMemberVo userMemberVo;
@ApiModelProperty(position = 16, value = "会员卡信息")
private AdamMemberJoinusVo memberJoinusVo;
private static final AdamUserProfileVo obj = new AdamUserProfileVo();
public static AdamUserProfileVo getNew() {
try {
return (AdamUserProfileVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new AdamUserProfileVo();
}
}
}
......@@ -41,7 +41,7 @@ public class CandyMemberCouponBuildParam {
@ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券|101-优先券]", allowableValues = "1,2,101")
private Integer couType;
// @NotNull(message = "券领取方式不能为空")
// @ApiModelProperty(required = true, value = "领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换]", allowableValues = "0,1")
// @ApiModelProperty(required = true, value = "领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换|3-发放需领取|4-会员专属]", allowableValues = "0,1,2,3,4")
// private Integer bindType;
// @ApiModelProperty(required = false, value = "折扣[8折即0.8]", example = "0.8")
// private BigDecimal discount;
......
package com.liquidnet.service.candy.dto.admin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@ApiModel(value = "CandyMemberCouponMatchParam", description = "会员权益券配置入参")
@Data
public class CandyMemberCouponMatchParam {
@ApiModelProperty(required = true, value = "会员类型ID[64]", example = "1")
@NotBlank(message = "会员类型ID不能为空")
private String memberId;
@ApiModelProperty(required = true, value = "权益ID[64]", example = "21269184646476")
@NotBlank(message = "会员权益ID不能为空")
private String mrightsId;
@NotBlank(message = "权益券ID不能为空")
@ApiModelProperty(required = true, value = "券ID", example = "20211111161557612")
private String couponId;
@NotNull(message = "券类别不能为空")
@ApiModelProperty(required = true, value = "业务类别[0-全场|1-演出|2-商品|3-优先购]", allowableValues = "0,1,2,3")
private Integer busiType;
@NotNull(message = "券类型不能为空")
// @ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券|101-优先券]", allowableValues = "1,2,3,4,101")
@ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券|4-折扣券|101-优先券]", allowableValues = "1,2,4,101")
private Integer couType;
@NotNull(message = "券发放量不能为空")
@Max(value = 100, message = "发放量不满足1~100范围")
@Min(value = 1, message = "发放量不满足1~100范围")
@ApiModelProperty(required = true, value = "发放量", example = "1")
private Integer eventAmt;
@ApiModelProperty(required = true, value = "权益券操作类型[1-添加|2-删除|3-编辑]")
@NotNull(message = "操作类型不能为空")
private Integer oper;
@ApiModelProperty(required = false, value = "券ID(仅`state=3-编辑`时必填`)")
private String operCouponId;
}
......@@ -25,10 +25,10 @@ public class CandyMgtCouponBuildParam {
@ApiModelProperty(required = true, value = "业务类别[0-全场|1-演出|2-商品|3-优先购]", allowableValues = "0,1,2,3")
private Integer busiType;
@NotNull(message = "券类型不能为空")
@ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券|101-优先券]", allowableValues = "1,2,3,4,101")
@ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券101-优先券]", allowableValues = "1,2,3,4,101")
private Integer couType;
@NotNull(message = "券领取方式不能为空")
@ApiModelProperty(required = true, value = "领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换]", allowableValues = "0,1,2")
@ApiModelProperty(required = true, value = "领取方式[0-用户输入兑换|1-发放至用户|2-积分商品|3-发送需领取|4-会员专属]", allowableValues = "0,1,2,3,4")
private Integer bindType;
@ApiModelProperty(required = false, value = "折扣[8折即0.8]", example = "0.8")
private BigDecimal discount;
......@@ -72,7 +72,7 @@ public class CandyMgtCouponBuildParam {
@Min(value = 1, message = "发放量不能小于1")
@ApiModelProperty(required = true, value = "发放量", example = "1")
private Integer eventAmt;
@ApiModelProperty(required = false, value = "发放类型[0-保留|1-会员|2-手机号|10-全体用户]", allowableValues = "0,1,2,10")
@ApiModelProperty(required = false, value = "发放类型[0-保留|1-会员|2-手机号10-全体用户]", allowableValues = "0,1,2,10")
private Integer eventType;
@ApiModelProperty(required = false, value = "`发放类型`为2-手机号时发放手机号以,分隔", example = "18510957291,17701223310")
private String eventLimit;
......
package com.liquidnet.service.candy.vo;
import com.liquidnet.service.candy.dto.CandyCouponInfoDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
@Data
@ApiModel
public class CandyCouponBasicVo implements Serializable, Cloneable {
/* --- --- --- CandyCoupon */
@ApiModelProperty(value = "标题")
private String title;
@ApiModelProperty(value = "标注")
private String label;
@ApiModelProperty(value = "须知")
private String notice;
@ApiModelProperty(value = "业务类别[0-全场|1-演出|2-商品|3-优先购]")
private Integer busiType;
@ApiModelProperty(value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券 | 101-优先券]")
private Integer couType;
@ApiModelProperty(value = "[0-用户输入兑换|1-发放至用户|2-积分兑换|3-发放需领取|4-会员专属]")
private Integer bindType;
@ApiModelProperty(value = "折扣")
private BigDecimal discount;
@ApiModelProperty(value = "面值")
private BigDecimal valFace;
@ApiModelProperty(value = "满减~满")
private BigDecimal valOver;
@ApiModelProperty(value = "满减~减")
private BigDecimal valMinus;
@ApiModelProperty(value = "过期时间")
private String expireAt;
/* --- --- --- CandyCouponRule */
private List<CandyCouponRulesVo> useRules;
private static final CandyCouponBasicVo obj = new CandyCouponBasicVo();
public static CandyCouponBasicVo getNew() {
try {
return (CandyCouponBasicVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new CandyCouponBasicVo();
}
}
public CandyCouponBasicVo copy(CandyCouponInfoDto source) {
if (null == source) return this;
return this;
}
}
......@@ -29,7 +29,7 @@ public class CandyCouponVo implements Serializable, Cloneable {
private Integer busiType;
@ApiModelProperty(value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券 | 101-优先券]",example = "1")
private Integer couType;
@ApiModelProperty(value = "[0-用户输入兑换|1-发放至用户]",example = "1")
@ApiModelProperty(value = "[0-用户输入兑换|1-发放至用户|2-积分兑换|3-发放需领取|4-会员专属]",example = "1")
private Integer bindType;
@ApiModelProperty(value = "折扣 可null",example = "0.5")
private BigDecimal discount;
......
......@@ -60,6 +60,7 @@ public class KylinRedisConst {
public static final String ADMIN_UPUSH_LIST_IOS = "basicServices:upushList:IOS";
public static final String ADMIN_UPUSH_LIST_ANDROID = "basicServices:upushList:Android";
public static final String ADMIN_UPUSH_LIST_READ_UID = "basicServices:upushList:read:uid";
public static final String ADMIN_BANNER_LIST = "kylin:bannerList";
}
......@@ -85,4 +85,28 @@ public class KylinTableStatusConst {
public static final Integer ORDER_EXPRESS_STATUS8000 = 8000; // 签收结单
public static final Integer ORDER_EXPRESS_SEND_TYPE1 = 1; // 发货
public static final Integer ORDER_EXPRESS_SEND_TYPE2 = 2; // 退款
public enum PvUv {
TK_DETAILS("now_tk_detail", "详情页"),
TK_TICKET("now_tk_ticket", "票种页"),
TK_ORDER("now_tk_order", "预下单页"),
TK_PAY("now_tk_pay", "支付操作");
private final String key;
private final String desc;
PvUv(String key, String desc) {
this.key = key;
this.desc = desc;
}
public String getKey() {
return key;
}
public String getDesc() {
return desc;
}
}
}
package com.liquidnet.service.kylin.dto.vo.mongo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: KylinIpArea
* @Package com.liquidnet.service.kylin.dto.vo.mongo
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/11/24 11:57
*/
@Data
@ApiModel
public class KylinIpAreaVo implements Serializable,Cloneable{
@ApiModelProperty(value = "mid")
private String mid;
@ApiModelProperty(value = "ipBegin")
private String ipBegin;
@ApiModelProperty(value = "ipBegin")
private long ipBeginLong;
@ApiModelProperty(value = "ipEnd")
private String ipEnd;
@ApiModelProperty(value = "ipEnd")
private long ipEndLong;
@ApiModelProperty(value = "area")
private String area;
@ApiModelProperty(value = "province")
private String province;
@ApiModelProperty(value = "city")
private String city;
@ApiModelProperty(value = "county")
private String county;
@ApiModelProperty(value = "address")
private String address;
@ApiModelProperty(value = "createdAt")
private String createdAt;
private static final KylinIpAreaVo obj = new KylinIpAreaVo();
public static KylinIpAreaVo getNew() {
try {
return (KylinIpAreaVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new KylinIpAreaVo();
}
}
}
......@@ -76,6 +76,15 @@ public interface IKylinPerformancesAdminService {
*/
List<PerformanceSimpleAllDao> getListDetailByStatus(String status, String title);
/**
* 根据(演出\场次\票种)ID 查询演出、场次、票种信息
*
* @param scope ID所属字段
* @param id ID值
* @return 1条记录(包括演出名称、场次名称?、票种名称?及对于ID)
*/
PerformanceSimpleAllDao getSimpleDetailByScopeAndId(String scope, String id);
/**
* 修改演出的巡演关联
......
......@@ -11,10 +11,12 @@ import java.time.LocalDateTime;
@ApiModel(value = "StoneItemBuildParam", description = "新建积分物品")
@Data
public class StoneItemBuildParam {
@ApiModelProperty(required = false, value = "积分物品id[创建不传]", example = "1")
@ApiModelProperty(value = "积分物品id[创建不传]", example = "1")
private String itemId;
@ApiModelProperty(required = true, value = "目标类型[1-券|11-商品维度|21-演出维度]", example = "1")
private Integer type;
@NotBlank(message = "目标物品不能为空")
@ApiModelProperty(required = true, value = "目标物品id", example = "1")
@ApiModelProperty(value = "目标物品id", example = "1")
private String targetId;
@NotBlank(message = "目标物品不能为空")
@ApiModelProperty(required = true, value = "目标物品标题", example = "测试券1")
......
......@@ -37,6 +37,7 @@ public class SweetConstant {
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_USER_KEY = ":userId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_INFO = "sweet:integralActivity:DrawInfo:drawId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_LOCK = "sweet:integralActivity:lock:userId:";
public static final String REDIS_KEY_SWEET_LUCKY_DRAW_NUM = "sweet:integralActivity:luckyDrawNum:activityId:";
// 答题活动
public final static String REDIS_KEY_SWEET_ANSWER_PHONE = "sweet:answer:phone:";
// 城市投票活动
......@@ -45,20 +46,21 @@ public class SweetConstant {
public final static String REDIS_KEY_SWEET_CITY_VOTE = "sweet:cityVote";
public final static String REDIS_KEY_SWEET_CITY_VOTE_USER = ":user:";
public final static String REDIS_KEY_SWEET_CITY_VOTE_STAT_UPDATE_TIME = ":updateTime";
// 微信用户相关
public final static String REDIS_KEY_SWEET_WECHAT_USER_INFO = "sweet:wechatUser:zhengzai:unionId:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_INFO_MODERNSKY = "sweet:wechatUser:modernsky:unionId:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_UNIONID = "sweet:wechatUser:zhengzai:openId:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_UNIONID_MODERNSKY = "sweet:wechatUser:modernsky:openId:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_UNIONID_PHONE = "sweet:wechatUser:zhengzai:phone:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_UNIONID_PHONE_MODERNSKY = "sweet:wechatUser:modernsky:phone:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_UNIONID_UID = "sweet:wechatUser:zhengzai:uid:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_UNIONID_UID_MODERNSKY = "sweet:wechatUser:modernsky:uid:";
// 微信服务号用户相关 新
public final static String REDIS_KEY_SWEET_CITY_VOTE_START = "sweet:cityVote:startTime:";//活动开始时间
public final static String REDIS_KEY_SWEET_CITY_VOTE_END = "sweet:cityVote:endTime:";//活动结束时间
public final static String REDIS_KEY_SWEET_CITY_VOTE_BANNER = "sweet:cityVote:banner:";//活动banner
// 2021草莓音乐节海报活动活动
public static final String REDIS_KEY_SWEET_STRAWBERRY_POSTER_CLICK = "sweet:strawberryPoster:click:openId:";
// 微信服务号用户相关
public final static String REDIS_KEY_SWEET_WECHAT_USERS_UNIONID = "sweet:user:service:unionId:";
public final static String REDIS_KEY_SWEET_WECHAT_USERS_OPENID = "sweet:user:service:openId:";
public final static String REDIS_KEY_SWEET_WECHAT_USERS_TYPE = ":type:";
// 微信小程序用户相关
// 微信小程序用户相关
public final static String REDIS_KEY_SWEET_APPLET_USERS_PHONE = "sweet:user:applet:mobile:";
public final static String REDIS_KEY_SWEET_APPLET_USERS_UNIONID = "sweet:user:applet:unionid:";
//2022草莓音乐节活动海报相关
public final static String REDIS_KEY_SWEET_STRAWBERRY_POSTER = "sweet:strawberry:poster";
}
/*package com.liquidnet.service.sweet.dto.param.poster;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
@ApiModel(value = "SweetStrawMusicianParam", description = "音乐人")
@Data
public class SweetStrawListParam implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(position = 10, required = true, value = "lineupNum", example = "lineupNum")
@NotBlank(message = "lineupNum不能为空")
private List<SweetStrawMusicianParam> lineup;
}*/
package com.liquidnet.service.sweet.dto.param.poster;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
@ApiModel(value = "SweetStrawMusicianParam", description = "音乐人")
@Data
public class SweetStrawMusicianParam implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(position = 10, required = true, value = "lineupNum", example = "lineupNum")
@NotBlank(message = "lineupNum不能为空")
private String lineupNum;
@ApiModelProperty(position = 10, required = true, value = "musicianName", example = "musicianName")
@NotBlank(message = "musicianName不能为空")
private String[] musicianName;
}
package com.liquidnet.service.sweet.dto.param.poster;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
@ApiModel(value = "SweetStrawberryParam", description = "海报数据")
@Data
public class SweetStrawberryParam implements Serializable {
private static final long serialVersionUID = 9038992103808199663L;
@ApiModelProperty(position = 10, required = true, value = "openId", example = "openId")
@NotBlank(message = "openId不能为空")
private String openId;
@ApiModelProperty(position = 10, required = true, value = "unionId", example = "unionId")
@NotBlank(message = "unionId不能为空")
private String unionId;
@ApiModelProperty(position = 10, required = true, value = "nickname", example = "nickname")
@NotBlank(message = "nickname不能为空")
private String nickname;
@ApiModelProperty(position = 10, required = true, value = "cityName", example = "cityName")
@NotBlank(message = "cityName不能为空")
private String cityName;
@ApiModelProperty(position = 10, required = true, value = "cityCode", example = "cityCode")
@NotBlank(message = "cityCode不能为空")
private String cityCode;
@ApiModelProperty(position = 10, required = true, value = "customText", example = "customText")
@NotBlank(message = "customText不能为空")
private String customText;
@Valid
@ApiModelProperty(value = "阵容列表", example = "[{\"lineupNum\": \"lineup1\",\"musicianId\": 9999,\"musicianName\": \"歌手1\"},\n" +
" {\"lineupNum\": \"lineup1\",\"musicianId\": 23233,\"musicianName\": \"歌手D\"},\n" +
" {\"lineupNum\": \"lineup2\",\"musicianId\": 1111,\"musicianName\": \"歌手2\"}]")
@NotNull(message = "musicianList")
private List<SweetStrawMusicianParam> musicianList;
private static final SweetStrawberryParam obj = new SweetStrawberryParam();
public static SweetStrawberryParam getNew() {
try {
return (SweetStrawberryParam) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetStrawberryParam();
}
}
}
\ No newline at end of file
......@@ -38,6 +38,12 @@ public class IntegralActivityPrizeVo implements Serializable, Cloneable {
@ApiModelProperty(value = "单次奖励数量如积分 中奖给多少物")
private Integer prizeTypeNum;
@ApiModelProperty(value = "奖品数量")
private Integer prizeNum;
@ApiModelProperty(value = "中奖概率")
private BigDecimal winningProbability;
@ApiModelProperty(value = "创建时间")
private LocalDateTime createdAt;
......@@ -67,6 +73,8 @@ public class IntegralActivityPrizeVo implements Serializable, Cloneable {
this.setPrizeImgSelect(source.getPrizeImgSelect());
this.setPrizeType(source.getPrizeType());
this.setPrizeTypeNum(source.getPrizeTypeNum());
this.setPrizeNum(source.getPrizeNum());
this.setWinningProbability(source.getWinningProbability());
this.setCreatedAt(source.getCreatedAt());
this.setUpdatedAt(source.getUpdatedAt());
return this;
......
......@@ -28,6 +28,9 @@ public class IntegralActivityVo implements Serializable, Cloneable {
@ApiModelProperty(value = "活动玩一次所需积分")
private Integer activityNum;
@ApiModelProperty(value = "预估玩此活动的总人数")
private Integer estimatedNum;
@ApiModelProperty(value = "活动时间类型 1长期 2开始结束时间")
private Integer timeType;
......@@ -58,6 +61,12 @@ public class IntegralActivityVo implements Serializable, Cloneable {
@ApiModelProperty(value = "奖品列表")
private List<IntegralActivityPrizeVo> prizeList;
@ApiModelProperty(value = "奖品列表 积分、券")
private List<IntegralActivityPrizeVo> prizeList1;
@ApiModelProperty(value = "奖品列表 实物、会员")
private List<IntegralActivityPrizeVo> prizeList2;
private static final IntegralActivityVo obj = new IntegralActivityVo();
public static IntegralActivityVo getNew() {
try {
......@@ -74,6 +83,7 @@ public class IntegralActivityVo implements Serializable, Cloneable {
this.setActivityImg(source.getActivityImg());
this.setActivityType(source.getActivityType());
this.setActivityNum(source.getActivityNum());
this.setEstimatedNum(source.getEstimatedNum());
this.setTimeType(source.getTimeType());
this.setStartTime(source.getStartTime());
this.setEndTime(source.getEndTime());
......
package com.liquidnet.service.sweet.dto.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class TempBannerVo implements Serializable, Cloneable {
private static final long serialVersionUID = -6777064807434774542L;
@ApiModelProperty(value = "banner图片")
private String src;
@ApiModelProperty(value = "banner链接")
private String url;
}
package com.liquidnet.service.sweet.param;
import com.liquidnet.service.sweet.dto.vo.TempBannerVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
@ApiModel(value = "SweetCityVoteParam", description = "用户投票记录入参")
@Data
public class TempBannerParam implements Serializable {
@ApiModelProperty(position = 13, required = true, value = "临时banner数据")
@NotBlank(message = "tempBannerVo不能为空")
private List<TempBannerVo> tempBannerVo;
@ApiModelProperty(position = 14, required = true, value = "活动类型 1新裤子 2莫宰羊", example = "1")
@NotNull(message = "type不能为空")
private Integer type;
}
......@@ -3,7 +3,7 @@ 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.dto.vo.IntegralActivityPrizeVo;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityDraw;
import com.baomidou.mybatisplus.extension.service.IService;
......@@ -19,7 +19,7 @@ import java.util.List;
*/
public interface ISweetIntegralActivityDrawService extends IService<SweetIntegralActivityDraw> {
ResponseDto<SweetIntegralActivityPrizeVo> create(String integralActivityId);
ResponseDto<IntegralActivityPrizeVo> create(String integralActivityId);
ResponseDto<PagedResult<IntegralActivityDrawVo>> drawList(Integer type, String integralActivityId, Integer pageNum);
......
package com.liquidnet.service.sweet.service;
import com.liquidnet.service.sweet.entity.SweetStrawberryPosterLineup;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 2021草莓音乐节海报活动选择阵容表 服务类
* </p>
*
* @author jiangxiulong
* @since 2021-11-25
*/
public interface ISweetStrawberryPosterLineupService extends IService<SweetStrawberryPosterLineup> {
}
package com.liquidnet.service.sweet.service;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.dto.param.poster.SweetStrawberryParam;
import com.liquidnet.service.sweet.entity.SweetStrawberryPoster;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 2021草莓音乐节海报活动表 服务类
* </p>
*
* @author jiangxiulong
* @since 2021-11-25
*/
public interface ISweetStrawberryPosterService extends IService<SweetStrawberryPoster> {
ResponseDto<Boolean> addUserLikeMusician(SweetStrawberryParam sweetStrawberry);
}
......@@ -2,8 +2,8 @@ package com.liquidnet.service.sweet.utils;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityPrizeVo;
import com.liquidnet.service.sweet.dto.vo.admin.SweetIntegralActivityPrizeVo;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityDraw;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityPrize;
import java.util.ArrayList;
......@@ -11,6 +11,7 @@ import java.util.LinkedList;
public class SweetNewObjectUtil {
private static final ArrayList<SweetIntegralActivityPrizeVo> sweetIntegralActivityPrizeVoArrayList = new ArrayList<>();
private static final ArrayList<IntegralActivityPrizeVo> integralActivityPrizeVoArrayList = new ArrayList<>();
private static final ArrayList<SweetIntegralActivityPrize> sweetIntegralActivityPrizeArrayList = new ArrayList<>();
private static final LinkedList<IntegralActivityDrawVo> sweetIntegralActivityDrawVoLinkedList = new LinkedList<>();
private static final PagedResult<IntegralActivityDrawVo> sweetIntegralActivityDrawVoPagedResult = new PagedResult<>();
......@@ -31,4 +32,8 @@ public class SweetNewObjectUtil {
return (ArrayList<SweetIntegralActivityPrize>) sweetIntegralActivityPrizeArrayList.clone();
}
public static ArrayList<IntegralActivityPrizeVo> getIntegralActivityPrizeVoArrayList() {
return (ArrayList<IntegralActivityPrizeVo>) integralActivityPrizeVoArrayList.clone();
}
}
......@@ -43,6 +43,9 @@ public class SweetCItyVoteStatVo implements Serializable, Cloneable {
@ApiModelProperty("名次变动状态 1未变化 2上升 3下降")
private Integer rankingUpOrDown;
// @ApiModelProperty("状态[0-未开始|1-进行中|2-已结束]")
// private Integer status;
/*@ApiModelProperty("创建时间")
private LocalDateTime createdAt;
......@@ -50,6 +53,7 @@ public class SweetCItyVoteStatVo implements Serializable, Cloneable {
private LocalDateTime updatedAt;*/
private static final SweetCItyVoteStatVo obj = new SweetCItyVoteStatVo();
public static SweetCItyVoteStatVo getNew() {
try {
return (SweetCItyVoteStatVo) obj.clone();
......
......@@ -56,10 +56,13 @@ public class BaseController
PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum();
Integer pageSize = pageDomain.getPageSize();
String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize))
{
String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
// String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
PageHelper.startPage(pageNum, pageSize, orderBy);
} else {
PageHelper.startPage(1, 10, orderBy);
}
}
......
package com.liquidnet.client.admin.web.controller.zhengzai.candy;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.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.candy.service.ICandyCouponAdminService;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponRuleAdminService;
import com.liquidnet.service.candy.dto.admin.CandyCouponFilterDto;
import com.liquidnet.service.candy.dto.admin.CandyCouponListParam;
import com.liquidnet.service.candy.dto.admin.CandyCouponTemplateDto;
import com.liquidnet.service.candy.entity.CandyCoupon;
import com.liquidnet.service.candy.entity.CandyCouponRule;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Pattern;
@Api(tags = "我的券包")
@Controller
@RequestMapping("candy/coupon")
public class CandyCouponAdminController extends BaseController {
@Autowired
ICandyCouponAdminService candyCouponAdminService;
@Autowired
ICandyCouponRuleAdminService candyCouponRuleAdminService;
@ApiOperation(value = "券列表")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "busiType", value = "业务类别[0-全场|1-演出|2-商品|3-优先购]"),
@ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "couType", value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券|101-优先券]"),
@ApiImplicitParam(type = "form", required = false, dataType = "String", name = "bindType", value = "领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换|3-发放需领取|4-会员专属],多种方式则以,分隔入参"),
@ApiImplicitParam(type = "form", required = false, dataType = "String", name = "keyword", value = "搜索关键字"),
})
@PostMapping("list")
@ResponseBody
public TableDataInfo list(CandyCouponListParam listParam) {
LambdaQueryWrapper<CandyCoupon> queryWrapper = Wrappers.lambdaQuery(CandyCoupon.class);
queryWrapper.eq(CandyCoupon::getState, 1);
queryWrapper.select(CandyCoupon::getCouponId, CandyCoupon::getTitle);
queryWrapper.orderByDesc(CandyCoupon::getCreatedAt);
......@@ -38,12 +65,45 @@ public class CandyCouponAdminController extends BaseController {
if (null != listParam.getCouType()) {
queryWrapper.eq(CandyCoupon::getCouType, listParam.getCouType());
}
if (null != listParam.getBindType()) {
queryWrapper.eq(CandyCoupon::getBindType, listParam.getBindType());
// if (null != listParam.getBindType()) {
// queryWrapper.eq(CandyCoupon::getBindType, listParam.getBindType());
// }
if (null != listParam.getBindType() && Pattern.matches("^[\\d,]*$", listParam.getBindType())) {
String[] bindTypeArr = listParam.getBindType().split(",");
if (bindTypeArr.length > 0) {
queryWrapper.in(CandyCoupon::getBindType, Arrays.stream(bindTypeArr).toArray());
}
}
}
startPage();
return getDataTable(candyCouponAdminService.list(queryWrapper));
List<CandyCoupon> list = candyCouponAdminService.list(queryWrapper);
TableDataInfo dataTable = getDataTable(list);
List<CandyCouponFilterDto> dtoList = new ArrayList<>();
list.forEach(r -> {
dtoList.add(CandyCouponFilterDto.getNew().copy(r));
});
dataTable.setRows(dtoList);
return dataTable;
}
@ApiOperation(value = "券详情")
@GetMapping("info")
@ResponseBody
public AjaxResult info(String couponId) {
CandyCouponTemplateDto couponTemplateDto = CandyCouponTemplateDto.getNew();
LambdaQueryWrapper<CandyCoupon> couponLambdaQueryWrapper = Wrappers.lambdaQuery();
couponLambdaQueryWrapper.eq(CandyCoupon::getCouponId, couponId);
couponLambdaQueryWrapper.eq(CandyCoupon::getState, 1);
CandyCoupon coupon = candyCouponAdminService.getOne(couponLambdaQueryWrapper);
LambdaUpdateWrapper<CandyCouponRule> couponRuleLambdaUpdateWrapper = Wrappers.lambdaUpdate(CandyCouponRule.class);
couponRuleLambdaUpdateWrapper.eq(CandyCouponRule::getCouponId, couponId);
couponRuleLambdaUpdateWrapper.eq(CandyCouponRule::getState, 1);
List<CandyCouponRule> couponRuleList = candyCouponRuleAdminService.list(couponRuleLambdaUpdateWrapper);
couponTemplateDto.setUseRules(couponRuleList);
return AjaxResult.success(couponTemplateDto.copy(coupon));
}
}
;(function ($) {
//这里放入插件代码
var RemoteSearchPerformance = function (element, options) {
this.$element = $(element);
this.options = $.extend(true, {}, $.fn.remoteSearchPerformance.defaults, options);
this.id = $(element).attr('id');
this.ulID = '#' + this.id + '_ul';
this.ulFoucus = false;
// Method overrides
this.render = this.options.render || this.render;
this.select = this.options.select || this.select;
this.ajax = $.extend({}, $.fn.remoteSearchPerformance.defaults.ajax, this.options.ajax);
this.listen();
}
RemoteSearchPerformance.prototype = {
listen: function () {
this.$element.on('blur', $.proxy(this.blur, this))
.on('keyup', $.proxy(this.keyup, this));
this.$element.parent('div.remote_wrapper').on('click',this.ulID, $.proxy(this.click, this));
},
blur: function (e) {
var that = this;
e.stopPropagation();
e.preventDefault();
setTimeout(function () {
if (!that.ulFoucus) {
that.$element.val(that.$element.attr('data-name'));
that.hide();
}
}, 150)
},
keyup: function (e) {
e.stopPropagation();
e.preventDefault();
switch (e.keyCode) {
case 40:
// down arrow
case 38:
// up arrow
break;
case 9:
// tab
case 13:
// enter
this.ajaxer();
case 27:
// escape
break;
default:
this.ajaxer();
}
},
hide: function () {
$(this.ulID).remove();
return this;
},
ajaxer: function () {
var that = this,
keyword = that.$element.val();
busiType = window.typeRadio;
couType = window.typeCoupe;
// Query changed
that.keyword = keyword;
// Cancel last timer if set
if (that.ajax.timerId) {
clearTimeout(that.ajax.timerId);
that.ajax.timerId = null;
}
// Query is good to send, set a timer
that.ajax.timerId = setTimeout(function() {
var params = {
keyword : keyword,
busiType: busiType,
couType: couType,
bindType: '1,4'
};
var jAjax = $.post;
jAjax(that.ajax.url, params, function(data){
return that.render(data.rows);
});
that.ajax.timerId = null;
}, that.ajax.timeout);
return that;
},
render: function (data) {
this.ulFoucus = false;
var liList = data || [];
var num = this._getNum();
//添加 ul
if($(this.ulID).length == 0) {
this.$element.after("<ul id='" + this.id + "_ul' class='remote_search remote_search_top'></ul>");
};
//添加li
var str = "";
if(num) {
if(liList.length) {
for(var i = 0; i < liList.length; i++) {
str += "<li data-id='"+liList[i].couponId+"' data-name='"+liList[i].title+"' title='"+liList[i].title+"' value='"+liList[i].couponId+"'>" + liList[i].title + "</li>";
}
} else {
str = "<li data-id='' data-name=''>搜索无数据</li>"
}
} else {
this.$element.attr('data-name',"");
this.$element.attr('data-id',"");
}
$(this.ulID).html(str);
var bodyHeight = $(document.body).height();
var offsetTop = this.$element.offset().top;
var height = $(this.ulID).outerHeight(true);
if(offsetTop + height > bodyHeight){
$(this.ulID).addClass('remote_search_bottom').removeClass('remote_search_top');
}else{
$(this.ulID).addClass('remote_search_top').removeClass('remote_search_bottom');
}
return this;
},
click: function (e) {
e.stopPropagation();
e.preventDefault();
var dataName = $(e.target).attr('data-name');
var dataID = $(e.target).attr('data-id');
this.$element.val(dataName);
this.$element.attr('data-name',dataName);
this.$element.attr('data-id',dataID);
this.options.chose(dataName,dataID);
this.ulFoucus = true;
return this.hide();
},
_getNum: function(){
return this.$element.val().length;
}
}
$.fn.remoteSearchPerformance = function (option) {
return this.each(function () {
var $this = $(this),
data = $this.data('remoteSearchPerformance'),
options = typeof option === 'object' && option;
if (!data) {
$this.data('remoteSearchPerformance', (data = new RemoteSearchPerformance(this, options)));
}
if (typeof option === 'string') {
data[option]();
}
});
}
$.fn.remoteSearchPerformance.defaults = {
hiddenVal: '',
chose: function () { },
ajax: {
url: null,
timeout: 300,
method: 'get',
timerId: null
},
success: function(res){
}
}
$.fn.remoteSearchPerformance.Constructor = RemoteSearchPerformance;
})(jQuery);
\ No newline at end of file
;(function ($) {
//这里放入插件代码
var RemoteSearchPerformance = function (element, options) {
this.$element = $(element);
this.options = $.extend(true, {}, $.fn.remoteSearchPerformance.defaults, options);
this.id = $(element).attr('id');
this.ulID = '#' + this.id + '_ul';
this.ulFoucus = false;
// Method overrides
this.render = this.options.render || this.render;
this.select = this.options.select || this.select;
this.ajax = $.extend({}, $.fn.remoteSearchPerformance.defaults.ajax, this.options.ajax);
this.listen();
}
RemoteSearchPerformance.prototype = {
listen: function () {
this.$element.on('blur', $.proxy(this.blur, this))
.on('keyup', $.proxy(this.keyup, this));
this.$element.parent('div.remote_wrapper').on('click',this.ulID, $.proxy(this.click, this));
},
blur: function (e) {
var that = this;
e.stopPropagation();
e.preventDefault();
setTimeout(function () {
if (!that.ulFoucus) {
that.$element.val(that.$element.attr('data-name'));
that.hide();
}
}, 150)
},
keyup: function (e) {
e.stopPropagation();
e.preventDefault();
switch (e.keyCode) {
case 40:
// down arrow
case 38:
// up arrow
break;
case 9:
// tab
case 13:
// enter
this.ajaxer();
case 27:
// escape
break;
default:
this.ajaxer();
}
},
hide: function () {
$(this.ulID).remove();
return this;
},
ajaxer: function () {
var that = this,
keyword = that.$element.val();
busiType = window.typeRadio;
couType = window.typeCoupe;
// Query changed
that.keyword = keyword;
// Cancel last timer if set
if (that.ajax.timerId) {
clearTimeout(that.ajax.timerId);
that.ajax.timerId = null;
}
// Query is good to send, set a timer
that.ajax.timerId = setTimeout(function() {
var params = {
keyword : keyword,
busiType: busiType,
couType: couType,
bindType: '1,4'
};
var jAjax = $.post;
jAjax(that.ajax.url, params, function(data){
return that.render(data.rows);
});
that.ajax.timerId = null;
}, that.ajax.timeout);
return that;
},
render: function (data) {
this.ulFoucus = false;
var liList = data || [];
var num = this._getNum();
//添加 ul
if($(this.ulID).length == 0) {
this.$element.after("<ul id='" + this.id + "_ul' class='remote_search remote_search_top'></ul>");
};
//添加li
var str = "";
if(num) {
if(liList.length) {
for(var i = 0; i < liList.length; i++) {
str += "<li data-id='"+liList[i].couponId+"' data-name='"+liList[i].title+"' title='"+liList[i].title+"' value='"+liList[i].couponId+"'>" + liList[i].title + "</li>";
}
} else {
str = "<li data-id='' data-name=''>搜索无数据</li>"
}
} else {
this.$element.attr('data-name',"");
this.$element.attr('data-id',"");
}
$(this.ulID).html(str);
var bodyHeight = $(document.body).height();
var offsetTop = this.$element.offset().top;
var height = $(this.ulID).outerHeight(true);
if(offsetTop + height > bodyHeight){
$(this.ulID).addClass('remote_search_bottom').removeClass('remote_search_top');
}else{
$(this.ulID).addClass('remote_search_top').removeClass('remote_search_bottom');
}
return this;
},
click: function (e) {
e.stopPropagation();
e.preventDefault();
var dataName = $(e.target).attr('data-name');
var dataID = $(e.target).attr('data-id');
this.$element.val(dataName);
this.$element.attr('data-name',dataName);
this.$element.attr('data-id',dataID);
this.options.chose(dataName,dataID);
this.ulFoucus = true;
return this.hide();
},
_getNum: function(){
return this.$element.val().length;
}
}
$.fn.remoteSearchPerformance = function (option) {
return this.each(function () {
var $this = $(this),
data = $this.data('remoteSearchPerformance'),
options = typeof option === 'object' && option;
if (!data) {
$this.data('remoteSearchPerformance', (data = new RemoteSearchPerformance(this, options)));
}
if (typeof option === 'string') {
data[option]();
}
});
}
$.fn.remoteSearchPerformance.defaults = {
hiddenVal: '',
chose: function () { },
ajax: {
url: null,
timeout: 300,
method: 'get',
timerId: null
},
success: function(res){
}
}
$.fn.remoteSearchPerformance.Constructor = RemoteSearchPerformance;
})(jQuery);
\ No newline at end of file
......@@ -43,6 +43,9 @@
<script th:src="@{/ruoyi/js/ry-ui.js?v=4.6.1}"></script>
<!--远程搜索下拉框-->
<script th:src="@{/js/remote-search-performance.js}"></script>
<!--远程搜索下拉框:积分抽奖配置使用-->
<script th:src="@{/js/remote-search-coupon-list.js}"></script>
<script th:src="@{/js/remote-search-coupon.js}"></script>
</div>
<!-- ztree树插件 -->
......
......@@ -3,6 +3,7 @@
<head>
<th:block th:include="include :: header('会员设置')" />
<th:block th:include="include :: bootstrap-fileinput-css" />
<!-- <script src="../../../../static/js/remote-search-coupon.js"></script>-->
</head>
<style>
.avatar_img {
......@@ -72,6 +73,7 @@
}
.pop_inner .form-group {
float: left;
width: 100%;
padding-top: 20px;
}
.pop_inner .form-group .discount {
......@@ -123,6 +125,19 @@
margin-left: 5px;
background: #f00;
}
.radio-box {
float: left;
}
.goods_track {
display: none;
}
.user_rules {
display: none;
}
/*误删 该样式是控制动态添加数据的*/
.remote_search {
padding-left: 0;
}
</style>
<body class="gray-bg" style="font: 14px Helvetica Neue, Helvetica, PingFang SC, 微软雅黑, Tahoma, Arial, sans-serif !important;">
<section class="section-content">
......@@ -267,7 +282,6 @@
<div class="form-group">
<label class="col-sm-2 control-label">权益描述:</label>
</div>
<div th:if="${#lists.isEmpty(memberRightsList)}">
<div class="form-group interests_item">
<div class="text-center">
......@@ -413,9 +427,10 @@
<div class="pop_inner">
<input type="hidden" class="parentsIndex"/>
<input type="hidden" class="childIndex"/>
<div class="col-sm-10">
<input type="text" id="coupeAdd_title" name="coupeAdd_title" placeholder="券标题"/>
</div>
<input type="hidden" class="pop_oper"/>
<!-- <div class="col-sm-10">-->
<!-- <input type="text" id="coupeAdd_title" name="coupeAdd_title" placeholder="券标题"/>-->
<!-- </div>-->
<div class="form-group">
<label class="col-sm-2 control-label">类别:</label>
<div class="col-sm-10 coupenColumn">
......@@ -454,10 +469,27 @@
<input type="radio" id="coupetypr1" class="coupeAddVal" name="coupe_type" value="1"/>代金券
</label>
</div>
<div class="radio-box goods_track">
<label for="radio2" onclick="coupetType(this)">
<input type="radio" id="coupetypr4" class="coupeAddVal" name="coupe_type" value="4"/>折扣券
</label>
</div>
</div>
<!-- <div class="col-sm-10 discount">-->
<!-- <div class="coupetypr_discount">满 ¥ <input type="text" id="valOver"/> 减 ¥ <input type="text" id="valMinus"/></div>-->
<!-- <div class="coupetypr_price" style="display: none;">金额 ¥ <input type="text" id="valFace"/></div>-->
<!-- </div>-->
<div class="col-sm-10 discount">
<div class="coupetypr_discount">满 ¥ <input type="text" id="valOver"/> 减 ¥ <input type="text" id="valMinus"/></div>
<div class="coupetypr_price" style="display: none;">金额 ¥ <input type="text" id="valFace"/></div>
<div class="coupetypr_search">
<div class="remote_wrapper" style="position: relative;">
<input name="ids" type="hidden">
<input type="text" id="remoteSearch" placeholder="请选择券">
</div>
</div>
</div>
<div class="form-group user_rules">
<label class="col-sm-2 control-label">适用范围:</label>
<div class="col-sm-10 rules_inner"></div>
</div>
</div>
<div class="form-group">
......@@ -503,6 +535,9 @@
var typeRadio = '';
var prefix = ctx + "adam/member";
var candyfix = ctx + "candy/coupon";
console.log(memberRightsList);
// 弹窗
$(function () {
$("#fileinput-demo-1").fileinput({
......@@ -542,6 +577,20 @@
});
});
// 远程搜索券
$('#remoteSearch').remoteSearchPerformance({
ajax:{
url: candyfix + "/list",
type: "post"
},
chose: function(text,val){
window.couponId = val;
$('.user_rules').show();
coupenDetail(val, 1);
// document.getElementsByName("ids")[0].value = val;
}
});
function tabChange (num) {
window.localStorage.setItem('tabActive', num);
}
......@@ -619,8 +668,11 @@
valFace: valFace ? valFace : 1,
valOver: valOver ? valOver : 1,
valMinus: valMinus ? valMinus : 1,
state: 1
oper: $('.pop_oper').val()
};
if ($('.pop_oper').val() == 3) {
MembercoupenData.operCouponId = this.operCouponId;
}
$.operate.saveModalBody(prefix + "/edit_coupon", JSON.stringify(MembercoupenData), function () {
$('.coupe_pop').hide();
$('.cover_pop').hide();
......@@ -640,12 +692,19 @@
$(obj).find('input').attr('checked', true);
this.typeRadio = typeRadio;
$('#remoteSearch').val('');
$('.user_rules').hide();
if (typeRadio == 3) {
$('.alltrack').hide();
$('.alltrack_limit').show();
} else {
$('.alltrack').show();
$('.alltrack_limit').hide();
if (typeRadio == 2) {
$('.goods_track').show();
} else {
$('.goods_track').hide();
}
}
}
......@@ -653,6 +712,8 @@
function coupetType (obj) {
var typeCoupe = $(obj).find('input').val();
this.typeCoupe = typeCoupe;
$('#remoteSearch').val('');
$('.user_rules').hide();
if (typeCoupe == 1) {
$('.coupetypr_price').show();
$('.coupetypr_discount').hide();
......@@ -662,6 +723,39 @@
}
}
// 券详情
function coupenDetail (val, num) {
$.ajax({
url: candyfix + "/info",
async: false,
data: {
couponId: val
},
dataType: 'json',
type: 'get',
success: function (res) {
var coupenData = res.data;
if (coupenData.busiType == 0) {
$('.user_rules .rules_inner').text('全部演出、商品');
} else if (coupenData.busiType == 1 || coupenData.busiType == 2) {
var coupenDataArr = [];
if (coupenData.useRules.length > 0) {
for (var i = 0; i < coupenData.useRules.length; i++ ) {
coupenDataArr.push(coupenData.useRules[i].busiName);
}
coupenDataArr.join("/");
$('.user_rules .rules_inner').text(coupenDataArr.join("/"));
}
} else if (coupenData.busiType == 3) {
$('.user_rules .rules_inner').text('全部演出');
}
if (num == 3) {
$('#remoteSearch').val(coupenData.title);
$('.user_rules').show();
}
}
})
}
// 权益图片上传
function icon (obj, num) {
$('.coverFunNum').val(num);
......@@ -723,7 +817,7 @@
valFace: valFace ? valFace : 1,
valOver: valOver ? valOver : 1,
valMinus: valMinus ? valMinus : 1,
state: 2
oper: 2
};
$.operate.saveModalBody(prefix + "/edit_coupon", JSON.stringify(MembercoupenData));
thisVal.remove();
......@@ -733,6 +827,7 @@
function addCoupes (obj) {
var addItemIndex = $('.member-coupes').index($(obj));
$('.parentsIndex').val(addItemIndex);
$('.pop_oper').val(1);
$('.coupe_pop').show();
}
......@@ -759,8 +854,15 @@
var valOver = parentObj.find('#mrcvalOver').val();
var valMinus = parentObj.find('#mrcvalMinus').val();
if (this.typeCoupe == 4) {
$('#coupetypr4').parent().parent().parent().show();
} else {
$('#coupetypr4').parent().parent().parent().hide();
}
this.mrightsId = mrightsId;
this.couponId = couponId;
this.operCouponId = couponId;
$('#eventAmt').val(eventAmt);
$('#valOver').val(valOver);
......@@ -804,6 +906,8 @@
busiName: '优先购'
}]
}
$('.pop_oper').val(3);
coupenDetail(couponId, 3);
$('.coupe_pop').show();
}
......
......@@ -13,7 +13,9 @@
.main_title, .main_type, .money, .scope_application, .sendType,.phoneNumber,.playMethod {
margin-bottom: 20px;
}
#searchIpt {
/* display: none; */
}
.phoneNumber,.playMethod {
display: none;
}
......@@ -153,10 +155,18 @@
<input type="radio" value="3" name="typeOne"><span>优先购</span>
</div>
</div>
<div id="scoreType" class="main_type">
<span class="labelName"><i class="required">*</i>类别:</span>
<div class="layui-input-block" style="display: flex">
<!-- <input type="radio" value="0" name="selectType" checked><span>商品</span> -->
<input type="radio" value="1" name="selectType" checked><span></span>
</div>
</div>
<div class="scope_application" id="scope_application">
<span class="labelName"><i class="required">*</i>券名称:</span>
<div class="search_ipt" style="position: relative;display: inline;">
<input type="text" id="searchIpt" autocomplete="off" class="layui-input" placeholder="全部">
<!-- <input type="text" id="searchIptMall" autocomplete="off" class="layui-input" placeholder="全部"> -->
<ul id="dataList" style="position: absolute;"></ul>
</div>
</div>
......@@ -268,6 +278,9 @@
let showPicture = ''; // 展示图片
let limit = ''; // 限兑次数
let itemId = ''; //
let selectType = '1'
let type = '';
console.log('检测')
$(document).ready(function() {
var $summernote = $('#summernote').summernote({
height: 300,
......@@ -340,6 +353,9 @@
$('#summernote').summernote('code', data.details)
$('.summernote').eq(1).summernote('code', data.notice)
// $("#attention").val(data.notice);
if (data.type == 1) {
$("input[name='selectType'][value='1']").attr("checked", "checked").siblings().removeAttr('checked');
}
if (data.limitCount != 0) {
sendType = 1
$("input[name='sendType'][value='1']").attr("checked", "checked").siblings().removeAttr('checked');
......@@ -443,6 +459,18 @@
$("input[name=typeOne]").change(function(e){
typeOne = e.target.value;
});
$("input[name=selectType]").change(function(e){
selectType = e.target.value;
if (selectType == 0) {
$("#searchIptMall").show()
$("#searchIpt").hide()
$("#searchIpt").val('')
} else {
$("#searchIptMall").hide()
$("#searchIptMall").val('')
$("#searchIpt").show()
}
});
$("input[name=sendType]").change(function(e){
sendType = e.target.value;
if (sendType == 1) {
......@@ -468,9 +496,18 @@
});
function create() {
if (!$('#searchIpt').val() || !showPicture || !$('#integralNum').val() || !$('#moneyNum').val() || !$('#inventory').val() || !$('#summernote').summernote('code') || !$('.summernote').eq(1).summernote('code')) {
if (!showPicture || !$('#integralNum').val() || !$('#moneyNum').val() || !$('#inventory').val() || !$('#summernote').summernote('code') || !$('.summernote').eq(1).summernote('code')) {
return layer.msg('请将必填项输入完整~!');
}
if (selectType == 1) {
if (!$('#searchIpt').val()) {
return layer.msg('请将必填项输入完整~!');
}
} else {
if (!$('#searchIptMall').val()) {
return layer.msg('请将必填项输入完整~!');
}
}
if (sendType == 1) {
if (!$("#linit").val()) {
return layer.msg('请填写限兑次数!');
......@@ -502,7 +539,7 @@
startTime: $.common.dateFormat(startTime, 'yyyy-MM-dd HH:mm:ss'), // 上架时间status = 2 必传)
status: Number(shelves), // 上架状态[1-不限|2-定时|7-下线]
targetId: showId, // 目标物品id
targetTitle: $('#searchIpt').val() // 目标物品标题
targetTitle: $('#searchIpt').val() || $("#searchIptMall").val() // 目标物品标题
}
let type = 'post';
if (!itemId) {
......@@ -514,6 +551,12 @@
delete data.startTime
delete data.endTime
}
if (selectType == 1) {
// delete data.targetId
data['type'] = 1
} else {
data['type'] = 11
}
promiseMethods(ctx+'stone/item',type,data).then(res=>{
layer.msg('' + res);
if (res.code != undefined && res.code != web_status.SUCCESS) {
......
......@@ -189,6 +189,7 @@ public class AdminUpushServiceImpl extends ServiceImpl<AdminUpushMapper, AdminUp
AdminUpush updatePush = new AdminUpush();
try {
AndroidBroadcast broadcast = new AndroidBroadcast(androidAppkey, androidAppMasterSecret);
broadcast.setBadge(1);
broadcast.setTicker(adminUpush.getPushTitle());
broadcast.setTitle(adminUpush.getPushTitle());
broadcast.setText(adminUpush.getPushContent());
......@@ -257,7 +258,7 @@ public class AdminUpushServiceImpl extends ServiceImpl<AdminUpushMapper, AdminUp
IOSBroadcast broadcast = new IOSBroadcast(iosAppkey, iosAppMasterSecret);
//alert的值设置为字典
broadcast.setAlert(adminUpush.getPushTitle(), "", adminUpush.getPushContent());
broadcast.setBadge(0);
broadcast.setBadge(1);
broadcast.setSound("default");
if (Arrays.asList(LnsEnum.ENV.dev.name(), LnsEnum.ENV.test.name()).contains(environment.getProperty(CurrentUtil.CK_ENV_ACTIVE))) {
broadcast.setTestMode();
......
......@@ -10,9 +10,11 @@ import java.util.List;
public interface ICandyMgtCouponAdminService extends IService<CandyMgtCoupon> {
boolean saveMgtCouponForMemberRights(CandyMemberCouponBuildParam parameter);
// boolean saveMgtCouponForMemberRights(CandyMemberCouponBuildParam parameter);
boolean editMgtCouponForMemberRights(CandyMemberCouponBuildParam parameter);
// boolean editMgtCouponForMemberRights(CandyMemberCouponBuildParam parameter);
boolean saveUpdateMgtCouponForMemberRights(CandyMemberCouponMatchParam parameter, CandyCoupon coupon);
boolean saveMgtCouponForCouponBuild(CandyMgtCouponBuildParam parameter);
......@@ -20,7 +22,7 @@ public interface ICandyMgtCouponAdminService extends IService<CandyMgtCoupon> {
boolean saveMgtCouponInfo(CandyCoupon initCoupon, CandyMgtCoupon initMgtCoupon, List<CandyCouponRule> initCouponRuleList);
boolean updateMgtCouponInfo(CandyCoupon updateCoupon, CandyMgtCoupon updateMgtCoupon, List<CandyCouponRule> initCouponRuleList);
// boolean updateMgtCouponInfo(CandyCoupon updateCoupon, CandyMgtCoupon updateMgtCoupon, List<CandyCouponRule> initCouponRuleList);
List<CandyMgtCouponInfoDto> listForMgtCouponInfoDto(CandyMgtCouponListParam listParam);
......
......@@ -251,6 +251,20 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
return dto2List;
}
@Override
public PerformanceSimpleAllDao getSimpleDetailByScopeAndId(String scope, String id) {
switch (scope) {
case "1":
return performancesMapper.getPerformanceSimpleByPerformancesId(id);
case "2":
return performancesMapper.getPerformanceSimpleByTimesId(id);
case "3":
return performancesMapper.getPerformanceSimpleByTicketId(id);
default:
return null;
}
}
@Override
public boolean changeRoadShowId(String performancesId, String roadShowId) {
try {
......
......@@ -13,7 +13,7 @@ public abstract class AndroidNotification extends UmengNotification {
// Keys can be set in the body level
protected static final HashSet<String> BODY_KEYS = new HashSet<String>(Arrays.asList(new String[]{
"ticker", "title", "text", "builder_id", "icon", "largeIcon", "img", "play_vibrate", "play_lights", "play_sound",
"sound", "after_open", "url", "activity", "custom"}));
"sound", "after_open", "url", "activity", "custom", "badge"}));
public enum DisplayType{
NOTIFICATION{public String getValue(){return "notification";}},///通知:消息送达到用户设备后,由友盟SDK接管处理并在通知栏上显示通知内容。
......@@ -81,6 +81,10 @@ public abstract class AndroidNotification extends UmengNotification {
}
return true;
}
public void setBadge(Integer badge) throws Exception {
setPredefinedKeyValue("badge", badge);
}
// Set extra key/value for Android notification
public boolean setExtraField(String key, String value) throws Exception {
......@@ -102,8 +106,7 @@ public abstract class AndroidNotification extends UmengNotification {
extraJson.put(key, value);
return true;
}
//
public void setDisplayType(DisplayType d) throws Exception {
setPredefinedKeyValue("display_type", d.getValue());
}
......
......@@ -132,6 +132,13 @@ public class ItemServiceImpl implements IItemService {
if (param.getStatus() == 2 & (param.getStartTime() == null || param.getEndTime() == null)) {
return "时间有误";
}
if (param.getType() == 11) {
param.setTargetId("-999");
} else {
if (param.getType() == 1 && param.getTargetId() == null) {
return "参数异常";
}
}
StoneScoreItems data = BaseData(param);
int generalPoor = param.getGeneralTotal() - 0;
data.setItemId(IDGenerator.nextTimeId2());
......@@ -157,6 +164,13 @@ public class ItemServiceImpl implements IItemService {
if (param.getStatus() == 2 & (param.getStartTime() == null || param.getEndTime() == null)) {
return "时间有误";
}
if (param.getType() == 11) {
param.setTargetId("-999");
} else {
if (param.getType() == 1 && param.getTargetId() == null) {
return "参数异常";
}
}
StoneScoreItems data = BaseData(param);
StoneScoreItems dataSingle = stoneScoreItemsMapper.selectOne(Wrappers.lambdaQuery(StoneScoreItems.class).eq(StoneScoreItems::getItemId, param.getItemId()));
int generalPoor = param.getGeneralTotal() - dataSingle.getGeneralTotal();
......@@ -187,7 +201,7 @@ public class ItemServiceImpl implements IItemService {
StoneScoreItems data = new StoneScoreItems();
data.setTargetId(param.getTargetId());
data.setTargetTitle(param.getTargetTitle());
data.setType(1);
data.setType(param.getType());
data.setImg(param.getImg());
data.setScore(param.getScore());
data.setPrice(BigDecimal.ZERO);
......@@ -196,10 +210,10 @@ public class ItemServiceImpl implements IItemService {
data.setDetails(param.getDetails());
data.setNotice(param.getNotice());
data.setStatus(param.getStatus());
if(param.getStartTime()!=null) {
if (param.getStartTime() != null) {
data.setStartTime(LocalDateTime.parse(param.getStartTime(), DateTimeFormatter.ofPattern(DateUtils.YYYY_MM_DD_HH_MM_SS)));
}
if(param.getEndTime()!=null) {
if (param.getEndTime() != null) {
data.setEndTime(LocalDateTime.parse(param.getEndTime(), DateTimeFormatter.ofPattern(DateUtils.YYYY_MM_DD_HH_MM_SS)));
}
return data;
......
......@@ -19,9 +19,11 @@ import com.liquidnet.service.sweet.mapper.SweetIntegralActivityPrizeRelationMapp
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
......@@ -102,27 +104,64 @@ public class SweetIntegralActivityPrizeRelationServiceImpl extends ServiceImpl<S
Wrappers.lambdaQuery(SweetIntegralActivity.class).eq(SweetIntegralActivity::getIntegralActivityId, integralActivityId)
);
IntegralActivityVo integralActivityVo = IntegralActivityVo.getNew().copy(sweetIntegralActivity);
// 详情奖品
List<SweetIntegralActivityPrize> sweetIntegralActivityPrizes = sweetIntegralActivityPrizeMapper.selectList(
// 详情奖品 全部
List<SweetIntegralActivityPrize> activityPrizes = sweetIntegralActivityPrizeMapper.selectList(
Wrappers.lambdaQuery(SweetIntegralActivityPrize.class).eq(SweetIntegralActivityPrize::getIntegralActivityId, integralActivityId)
);
List<IntegralActivityPrizeVo> prizeList = SweetObjectAdminUtil.getSweetIntegralActivityPrizeVoList();
sweetIntegralActivityPrizes.forEach(r -> {
activityPrizes.forEach(r -> {
IntegralActivityPrizeVo copy = IntegralActivityPrizeVo.getNew().copy(r);
// 奖品券列表
List<SweetIntegralActivityPrizeRelation> prizeRelations = relationMapper.selectList(
Wrappers.lambdaQuery(SweetIntegralActivityPrizeRelation.class).eq(SweetIntegralActivityPrizeRelation::getPrizeId, copy.getPrizeId())
);
ArrayList<IntegralActivityPrizeRelationVo> prizeRelationVoList = SweetObjectAdminUtil.getSweetIntegralActivityPrizeRelationVoList();
prizeRelations.forEach(rr -> {
IntegralActivityPrizeRelationVo copyR = IntegralActivityPrizeRelationVo.getNew().copy(rr);
prizeRelationVoList.add(copyR);
});
if (!CollectionUtils.isEmpty(prizeRelations)) {
prizeRelations.forEach(rr -> {
IntegralActivityPrizeRelationVo copyR = IntegralActivityPrizeRelationVo.getNew().copy(rr);
prizeRelationVoList.add(copyR);
});
}
copy.setPrizeRelationList(prizeRelationVoList);
prizeList.add(copy);
});
integralActivityVo.setPrizeList(prizeList);
// 详情奖品 积分和券
List<SweetIntegralActivityPrize> activityPrizes1 = sweetIntegralActivityPrizeMapper.selectList(
Wrappers.lambdaQuery(SweetIntegralActivityPrize.class).eq(SweetIntegralActivityPrize::getIntegralActivityId, integralActivityId)
.in(SweetIntegralActivityPrize::getPrizeType, Arrays.asList(1,2))
);
List<IntegralActivityPrizeVo> prizeList1 = SweetObjectAdminUtil.getSweetIntegralActivityPrizeVoList();
activityPrizes1.forEach(r -> {
IntegralActivityPrizeVo copy = IntegralActivityPrizeVo.getNew().copy(r);
// 奖品券列表
List<SweetIntegralActivityPrizeRelation> prizeRelations = relationMapper.selectList(
Wrappers.lambdaQuery(SweetIntegralActivityPrizeRelation.class).eq(SweetIntegralActivityPrizeRelation::getPrizeId, copy.getPrizeId())
);
ArrayList<IntegralActivityPrizeRelationVo> prizeRelationVoList = SweetObjectAdminUtil.getSweetIntegralActivityPrizeRelationVoList();
if (!CollectionUtils.isEmpty(prizeRelations)) {
prizeRelations.forEach(rr -> {
IntegralActivityPrizeRelationVo copyR = IntegralActivityPrizeRelationVo.getNew().copy(rr);
prizeRelationVoList.add(copyR);
});
}
copy.setPrizeRelationList(prizeRelationVoList);
prizeList1.add(copy);
});
integralActivityVo.setPrizeList1(prizeList1);
// 详情奖品 实物等
List<SweetIntegralActivityPrize> activityPrizes2 = sweetIntegralActivityPrizeMapper.selectList(
Wrappers.lambdaQuery(SweetIntegralActivityPrize.class).eq(SweetIntegralActivityPrize::getIntegralActivityId, integralActivityId)
.in(SweetIntegralActivityPrize::getPrizeType, Arrays.asList(3,4))
);
List<IntegralActivityPrizeVo> prizeList2 = SweetObjectAdminUtil.getSweetIntegralActivityPrizeVoList();
activityPrizes2.forEach(r -> {
IntegralActivityPrizeVo copy = IntegralActivityPrizeVo.getNew().copy(r);
prizeList2.add(copy);
});
integralActivityVo.setPrizeList2(prizeList2);
sweetRedisAdminUtils.setIntegralActivityInfo(integralActivityVo);
}
......
......@@ -33,6 +33,7 @@ import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
......@@ -194,27 +195,64 @@ public class SweetIntegralActivityServiceImpl extends ServiceImpl<SweetIntegralA
Wrappers.lambdaQuery(SweetIntegralActivity.class).eq(SweetIntegralActivity::getIntegralActivityId, integralActivityId)
);
IntegralActivityVo integralActivityVo = IntegralActivityVo.getNew().copy(sweetIntegralActivity);
// 详情奖品
List<SweetIntegralActivityPrize> sweetIntegralActivityPrizes = sweetIntegralActivityPrizeMapper.selectList(
// 详情奖品 全部
List<SweetIntegralActivityPrize> activityPrizes = sweetIntegralActivityPrizeMapper.selectList(
Wrappers.lambdaQuery(SweetIntegralActivityPrize.class).eq(SweetIntegralActivityPrize::getIntegralActivityId, integralActivityId)
);
List<IntegralActivityPrizeVo> prizeList = SweetObjectAdminUtil.getSweetIntegralActivityPrizeVoList();
sweetIntegralActivityPrizes.forEach(r -> {
activityPrizes.forEach(r -> {
IntegralActivityPrizeVo copy = IntegralActivityPrizeVo.getNew().copy(r);
// 奖品券列表
List<SweetIntegralActivityPrizeRelation> prizeRelations = relationMapper.selectList(
Wrappers.lambdaQuery(SweetIntegralActivityPrizeRelation.class).eq(SweetIntegralActivityPrizeRelation::getPrizeId, copy.getPrizeId())
);
ArrayList<IntegralActivityPrizeRelationVo> prizeRelationVoList = SweetObjectAdminUtil.getSweetIntegralActivityPrizeRelationVoList();
prizeRelations.forEach(rr -> {
IntegralActivityPrizeRelationVo copyR = IntegralActivityPrizeRelationVo.getNew().copy(rr);
prizeRelationVoList.add(copyR);
});
if (!CollectionUtils.isEmpty(prizeRelations)) {
prizeRelations.forEach(rr -> {
IntegralActivityPrizeRelationVo copyR = IntegralActivityPrizeRelationVo.getNew().copy(rr);
prizeRelationVoList.add(copyR);
});
}
copy.setPrizeRelationList(prizeRelationVoList);
prizeList.add(copy);
});
integralActivityVo.setPrizeList(prizeList);
// 详情奖品 积分和券
List<SweetIntegralActivityPrize> activityPrizes1 = sweetIntegralActivityPrizeMapper.selectList(
Wrappers.lambdaQuery(SweetIntegralActivityPrize.class).eq(SweetIntegralActivityPrize::getIntegralActivityId, integralActivityId)
.in(SweetIntegralActivityPrize::getPrizeType, Arrays.asList(1,2))
);
List<IntegralActivityPrizeVo> prizeList1 = SweetObjectAdminUtil.getSweetIntegralActivityPrizeVoList();
activityPrizes1.forEach(r -> {
IntegralActivityPrizeVo copy = IntegralActivityPrizeVo.getNew().copy(r);
// 奖品券列表
List<SweetIntegralActivityPrizeRelation> prizeRelations = relationMapper.selectList(
Wrappers.lambdaQuery(SweetIntegralActivityPrizeRelation.class).eq(SweetIntegralActivityPrizeRelation::getPrizeId, copy.getPrizeId())
);
ArrayList<IntegralActivityPrizeRelationVo> prizeRelationVoList = SweetObjectAdminUtil.getSweetIntegralActivityPrizeRelationVoList();
if (!CollectionUtils.isEmpty(prizeRelations)) {
prizeRelations.forEach(rr -> {
IntegralActivityPrizeRelationVo copyR = IntegralActivityPrizeRelationVo.getNew().copy(rr);
prizeRelationVoList.add(copyR);
});
}
copy.setPrizeRelationList(prizeRelationVoList);
prizeList1.add(copy);
});
integralActivityVo.setPrizeList1(prizeList1);
// 详情奖品 实物等
List<SweetIntegralActivityPrize> activityPrizes2 = sweetIntegralActivityPrizeMapper.selectList(
Wrappers.lambdaQuery(SweetIntegralActivityPrize.class).eq(SweetIntegralActivityPrize::getIntegralActivityId, integralActivityId)
.in(SweetIntegralActivityPrize::getPrizeType, Arrays.asList(3,4))
);
List<IntegralActivityPrizeVo> prizeList2 = SweetObjectAdminUtil.getSweetIntegralActivityPrizeVoList();
activityPrizes2.forEach(r -> {
IntegralActivityPrizeVo copy = IntegralActivityPrizeVo.getNew().copy(r);
prizeList2.add(copy);
});
integralActivityVo.setPrizeList2(prizeList2);
sweetRedisAdminUtils.setIntegralActivityInfo(integralActivityVo);
}
......
package com.liquidnet.commons.lang.util;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: IPUtil
* @Package com.liquidnet.commons.lang.util
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/11/24 13:29
*/
public class IPUtil {
/**
* ip地址转成long型数字
* 将IP地址转化成整数的方法如下:
* 1、通过String的split方法按.分隔得到4个长度的数组
* 2、通过左移位操作(<<)给每一段的数字加权,第一段的权为2的24次方,第二段的权为2的16次方,第三段的权为2的8次方,最后一段的权为1
* @param strIp
* @return
*/
public static long ipToLong(String strIp) {
String[]ip = strIp.split("\\.");
return (Long.parseLong(ip[0]) << 24) + (Long.parseLong(ip[1]) << 16) + (Long.parseLong(ip[2]) << 8) + Long.parseLong(ip[3]);
}
/**
* 将十进制整数形式转换成127.0.0.1形式的ip地址
* 将整数形式的IP地址转化成字符串的方法如下:
* 1、将整数值进行右移位操作(>>>),右移24位,右移时高位补0,得到的数字即为第一段IP。
* 2、通过与操作符(&)将整数值的高8位设为0,再右移16位,得到的数字即为第二段IP。
* 3、通过与操作符吧整数值的高16位设为0,再右移8位,得到的数字即为第三段IP。
* 4、通过与操作符吧整数值的高24位设为0,得到的数字即为第四段IP。
* @param longIp
* @return
*/
public static String longToIP(long longIp) {
StringBuffer sb = new StringBuffer("");
// 直接右移24位
sb.append(String.valueOf((longIp >>> 24)));
sb.append(".");
// 将高8位置0,然后右移16位
sb.append(String.valueOf((longIp & 0x00FFFFFF) >>> 16));
sb.append(".");
// 将高16位置0,然后右移8位
sb.append(String.valueOf((longIp & 0x0000FFFF) >>> 8));
sb.append(".");
// 将高24位置0
sb.append(String.valueOf((longIp & 0x000000FF)));
return sb.toString();
}
public static void main(String[] args) {
System.out.println(ipToLong("219.239.110.138"));
System.out.println(longToIP(3689901706l));
}
}
......@@ -85,6 +85,8 @@ public class MQConst {
SWEET_CITY_VOTE("sweet:stream:rk.cityVote", "group.cityVote", "用户投票记录"),
SWEET_ANTIGENIC_QUESTION("sweet:stream:rk.antigenicQuestion", "group.antigenicQuestion", "防疫答题"),
SWEET_INTEGRAL_ACTIVITY_DRAW("sweet:stream:rk.integralActivityDraw", "group.integralActivityDraw", "积分抽奖"),
SWEET_POSTER("sweet:stream:rk.userLikeMusician", "group.userLikeMusician", "用户喜欢的音乐人"),
;
private final String key;
......
......@@ -101,6 +101,7 @@ global-auth:
- ${liquidnet.info.context}/ts
- ${liquidnet.info.context}/send
- ${liquidnet.info.context}/member/info
- ${liquidnet.info.context}/member/joininfo
- ${liquidnet.info.context}/member/info/rights
- ${liquidnet.info.context}/member/onsale
- ${liquidnet.info.context}/member/check/depth
......@@ -112,8 +113,10 @@ global-auth:
- ${liquidnet.info.context}/wxa/code2session
- ${liquidnet.info.context}/wx/oauth2/access_token
- ${liquidnet.info.context}/rsc/**
include-url-pattern: # 模式II(与模式I互斥)
# - ${liquidnet.info.context}/**
oncheck-url-pattern:
- ${liquidnet.info.context}/**
# - ${liquidnet.info.context}/**
# -----------------------------------------------------------
# -----------------------------------------------------------
\ No newline at end of file
......@@ -97,7 +97,7 @@ global-auth:
- ${liquidnet.info.context}/candy-coupon/useBack
- ${liquidnet.info.context}/candy-coupon/useBackJxl
oncheck-url-pattern:
- ${liquidnet.info.context}/**
# - ${liquidnet.info.context}/**
# -----------------------------------------------------------
# -----------------------------------------------------------
\ No newline at end of file
......@@ -104,7 +104,7 @@ global-auth:
- ${liquidnet.info.context}/user/userDislikeOperation
- ${liquidnet.info.context}/performance/getUserListByCon
oncheck-url-pattern:
- ${liquidnet.info.context}/**
# - ${liquidnet.info.context}/**
# -----------------------------------------------------------
# -----------------------------------------------------------
\ No newline at end of file
......@@ -162,7 +162,7 @@ global-auth:
# - ${liquidnet.info.context}/order/orderRefundWithdraw
# - ${liquidnet.info.context}/orderRefund/sendOrderRefunds
# - ${liquidnet.info.context}/orderRefund/orderRefundWithdraw
- ${liquidnet.info.context}/station/out
# - ${liquidnet.info.context}/station/out
# -----------------------------------------------------------
# -----------------------------------------------------------
......
......@@ -126,9 +126,7 @@ global-auth:
- ${liquidnet.info.context}/user/logs/in2111
- ${liquidnet.info.context}/user/logs/de2111
oncheck-url-pattern:
- ${liquidnet.info.context}/**
# - ${liquidnet.info.context}/**
# -----------------------------------------------------------
# -----------------------------------------------------------
......
......@@ -117,7 +117,7 @@ global-auth:
# 做积分任务
- ${liquidnet.info.context}/wechatUsers/doTask
oncheck-url-pattern:
- ${liquidnet.info.context}/**
# - ${liquidnet.info.context}/**
# -----------------------------------------------------------
# -----------------------------------------------------------
\ No newline at end of file
......@@ -19,7 +19,7 @@ public class CandyCommonCouponBasicDto implements Serializable ,Cloneable{
private String title;
private String label;
private String notice;
private Integer exclusive;
//private Integer exclusive;
private Integer busiType;
private Integer couType;
private Integer bindType;
......@@ -44,6 +44,7 @@ public class CandyCommonCouponBasicDto implements Serializable ,Cloneable{
private String ccouponId;
private String mcouponId;
//private String couponId;
private Integer exclusive;
private Integer state;
private Integer ranged;
//private String operator;
......@@ -71,7 +72,7 @@ public class CandyCommonCouponBasicDto implements Serializable ,Cloneable{
this.setTitle(coupon.getTitle());
this.setLabel(coupon.getLabel());
this.setNotice(coupon.getNotice());
this.setExclusive(coupon.getExclusive());
//this.setExclusive(coupon.getExclusive());
this.setBusiType(coupon.getBusiType());
this.setCouType(coupon.getCouType());
this.setBindType(coupon.getBindType());
......@@ -90,6 +91,7 @@ public class CandyCommonCouponBasicDto implements Serializable ,Cloneable{
this.setCcouponId(commonCoupon.getCcouponId());
this.setMcouponId(commonCoupon.getMcouponId());
this.setExclusive(commonCoupon.getExclusive());
this.setState(commonCoupon.getState());
this.setRanged(commonCoupon.getRanged());
this.setCreatedAt(commonCoupon.getCreatedAt());
......
......@@ -19,7 +19,7 @@ public class CandyUserCouponBasicDto implements Serializable, Cloneable {
private String title;
private String label;
private String notice;
private Integer exclusive;
//private Integer exclusive;
private Integer busiType;
private Integer couType;
private Integer bindType;
......@@ -45,6 +45,7 @@ public class CandyUserCouponBasicDto implements Serializable, Cloneable {
private String mcouponId;
private String uid;
//private String couponId;
private Integer exclusive;
private Integer state;
private String ccode;
private LocalDateTime bindAt;
......@@ -77,7 +78,7 @@ public class CandyUserCouponBasicDto implements Serializable, Cloneable {
this.setTitle(coupon.getTitle());
this.setLabel(coupon.getLabel());
this.setNotice(coupon.getNotice());
this.setExclusive(coupon.getExclusive());
//this.setExclusive(coupon.getExclusive());
this.setBusiType(coupon.getBusiType());
this.setCouType(coupon.getCouType());
this.setBindType(coupon.getBindType());
......@@ -95,6 +96,7 @@ public class CandyUserCouponBasicDto implements Serializable, Cloneable {
this.setUcouponId(userCoupon.getUcouponId());
this.setMcouponId(userCoupon.getMcouponId());
this.setUid(userCoupon.getUid());
this.setExclusive(userCoupon.getExclusive());
this.setState(userCoupon.getState());
this.setCcode(userCoupon.getCcode());
this.setBindAt(userCoupon.getBindAt());
......
package com.liquidnet.service.candy.dto.admin;
import com.liquidnet.service.candy.entity.CandyCoupon;
import lombok.Data;
import java.io.Serializable;
@Data
public class CandyCouponFilterDto implements Serializable, Cloneable {
private static final long serialVersionUID = -3287018184399499549L;
private String couponId;
private String title;
private static final CandyCouponFilterDto obj = new CandyCouponFilterDto();
public static CandyCouponFilterDto getNew() {
try {
return (CandyCouponFilterDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new CandyCouponFilterDto();
}
}
public CandyCouponFilterDto copy(CandyCoupon source) {
if (null == source) return this;
this.setCouponId(source.getCouponId());
this.setTitle(source.getTitle());
return this;
}
}
......@@ -10,9 +10,12 @@ public class CandyCouponListParam {
*/
private String keyword;
/**
* 领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换]
* 领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换|3-发放需领取|4-会员专属]
* <p>
* 多种方式则以,分隔入参
* </p>
*/
private Integer bindType;
private String bindType;
/**
* 业务类别[0-全场|1-演出|2-商品|3-优先购]
*/
......@@ -34,11 +37,11 @@ public class CandyCouponListParam {
this.keyword = keyword;
}
public Integer getBindType() {
public String getBindType() {
return bindType;
}
public void setBindType(Integer bindType) {
public void setBindType(String bindType) {
this.bindType = bindType;
}
......
package com.liquidnet.service.candy.dto.admin;
import com.liquidnet.service.candy.entity.CandyCoupon;
import com.liquidnet.service.candy.entity.CandyCouponRule;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class CandyCouponTemplateDto implements Serializable, Cloneable {
private static final long serialVersionUID = 6278406576442685501L;
/* com.liquidnet.service.candy.entity.CandyCoupon */
private String couponId;
private Integer state;
private String title;
private String label;
private String notice;
private Integer exclusive;
private Integer busiType;
private Integer couType;
private Integer bindType;
private BigDecimal discount;
private BigDecimal valFace;
private BigDecimal valOver;
private BigDecimal valMinus;
private Integer overlay;
private Integer overlayLevel;
private Integer validity;
private Integer redeemValidity;
private LocalDateTime redeemStart;
private LocalDateTime redeemStop;
private LocalDateTime effectAt;
private LocalDateTime expireAt;
//private String operator;
//private LocalDateTime createdAt;
//private LocalDateTime updatedAt;
//private String comment;
/* com.liquidnet.service.candy.entity.CandyCouponRule */
private List<CandyCouponRule> useRules;
private static final CandyCouponTemplateDto obj = new CandyCouponTemplateDto();
public static CandyCouponTemplateDto getNew() {
try {
return (CandyCouponTemplateDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new CandyCouponTemplateDto();
}
}
public CandyCouponTemplateDto copy(CandyCoupon source) {
if (null == source) return this;
this.setCouponId(source.getCouponId());
this.setState(source.getState());
this.setTitle(source.getTitle());
this.setLabel(source.getLabel());
this.setNotice(source.getNotice());
this.setExclusive(source.getExclusive());
this.setBusiType(source.getBusiType());
this.setCouType(source.getCouType());
this.setBindType(source.getBindType());
this.setDiscount(source.getDiscount());
this.setValFace(source.getValFace());
this.setValOver(source.getValOver());
this.setValMinus(source.getValMinus());
this.setOverlay(source.getOverlay());
this.setOverlayLevel(source.getOverlayLevel());
this.setValidity(source.getValidity());
this.setRedeemValidity(source.getRedeemValidity());
this.setRedeemStart(source.getRedeemStart());
this.setRedeemStop(source.getRedeemStop());
this.setEffectAt(source.getEffectAt());
this.setExpireAt(source.getExpireAt());
return this;
}
}
......@@ -12,7 +12,7 @@ public class CandyMgtCouponListParam {
*/
private String keyword;
/**
* 领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换]
* 领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换|3-发放需领取|4-会员专属]
*/
private Integer bindType;
/**
......
......@@ -37,6 +37,18 @@ public class CandyCommonCoupon implements Serializable {
*/
private String couponId;
/**
* 专享标识[0-常规|1-会员专属]
* <p>
* 变更前:`candy_coupon.exclusive`用于根据会员有效期设置券有效期及标识用户端券分类(普通券、会员券等);
* 变更后:
* 原`candy_coupon.exclusive`废除
* 实际发放逻辑中,原标识"是否根据会员有效期设置券有效期"的`candy_coupon.exclusive`字段改为`candy_mgt_coupon.exclusively`
* 在`candy_user_coupon`及`candy_common_coupon`中添加`exclusive`字段,发放时直接由`candy_mgt_coupon.exclusively`赋值该属性
* </p>
*/
private Integer exclusive;
/**
* 公有券状态[1-可用|2-无效|3-已过期]
*/
......
......@@ -65,7 +65,7 @@ public class CandyCoupon implements Serializable {
private Integer couType;
/**
* 领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换]
* 领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换|3-发放需领取|4-会员专属]
*/
private Integer bindType;
......
......@@ -2,11 +2,12 @@ package com.liquidnet.service.candy.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 券发放管理
......@@ -56,6 +57,18 @@ public class CandyMgtCoupon implements Serializable {
*/
private LocalDateTime eventAt;
/**
* 专享标识[0-常规|1-会员专属]
* <p>
* 变更前:`candy_coupon.exclusive`用于根据会员有效期设置券有效期及标识用户端券分类(普通券、会员券等);
* 变更后:
* 原`candy_coupon.exclusive`废除
* 实际发放逻辑中,原标识"是否根据会员有效期设置券有效期"的`candy_coupon.exclusive`字段改为`candy_mgt_coupon.exclusively`
* 在`candy_user_coupon`及`candy_common_coupon`中添加`exclusive`字段,发放时直接由`candy_mgt_coupon.exclusively`赋值该属性
* </p>
*/
private Integer exclusively;
/**
* 操作人
*/
......
......@@ -43,6 +43,18 @@ public class CandyUserCoupon implements Serializable,Cloneable {
*/
private String couponId;
/**
* 专享标识[0-常规|1-会员专属]
* <p>
* 变更前:`candy_coupon.exclusive`用于根据会员有效期设置券有效期及标识用户端券分类(普通券、会员券等);
* 变更后:
* 原`candy_coupon.exclusive`废除
* 实际发放逻辑中,原标识"是否根据会员有效期设置券有效期"的`candy_coupon.exclusive`字段改为`candy_mgt_coupon.exclusively`
* 在`candy_user_coupon`及`candy_common_coupon`中添加`exclusive`字段,发放时直接由`candy_mgt_coupon.exclusively`赋值该属性
* </p>
*/
private Integer exclusive;
/**
* 用户券状态[1-可用|2-无效|3-已过期|5-已使用]
*/
......
......@@ -8,7 +8,7 @@
<result column="title" jdbcType="VARCHAR" property="title"/>
<result column="label" jdbcType="VARCHAR" property="label"/>
<result column="notice" jdbcType="VARCHAR" property="notice"/>
<result column="exclusive" jdbcType="SMALLINT" property="exclusive"/>
<!-- <result column="exclusive" jdbcType="SMALLINT" property="exclusive"/>-->
<result column="busi_type" jdbcType="SMALLINT" property="busiType"/>
<result column="cou_type" jdbcType="SMALLINT" property="couType"/>
<result column="bind_type" jdbcType="SMALLINT" property="bindType"/>
......@@ -32,6 +32,7 @@
<result column="ccoupon_id" jdbcType="VARCHAR" property="ccouponId"/>
<result column="mcoupon_id" jdbcType="VARCHAR" property="mcouponId"/>
<!-- <result column="coupon_id" jdbcType="VARCHAR" property="couponId" />-->
<result column="exclusive" jdbcType="SMALLINT" property="exclusive"/>
<result column="state" jdbcType="TINYINT" property="state"/>
<result column="ranged" jdbcType="TINYINT" property="ranged"/>
<!-- <result column="operator" jdbcType="VARCHAR" property="operator" />-->
......@@ -41,11 +42,11 @@
</resultMap>
<sql id="Rst_CommonCouponBasicDto_Column_List">
cc.coupon_id, cc.title, cc.`label`, cc.notice, cc.`exclusive`, cc.busi_type, cc.cou_type, cc.bind_type,
cc.coupon_id, cc.title, cc.`label`, cc.notice, cc.busi_type, cc.cou_type, cc.bind_type,
cc.discount, cc.val_face, cc.val_over, cc.val_minus, cc.`overlay`, cc.overlay_level,
cc.validity, cc.redeem_validity, cc.redeem_start, cc.redeem_stop, cc.effect_at, cc.expire_at,
ccc.ccoupon_id, ccc.mcoupon_id, ccc.`state`, ccc.ranged, ccc.created_at
ccc.ccoupon_id, ccc.mcoupon_id, ccc.`exclusive`, ccc.`state`, ccc.ranged, ccc.created_at
</sql>
<select id="selectMultiForCommonCouponBasicDto" resultMap="Rst_CommonCouponBasicDto">
......
......@@ -8,7 +8,7 @@
<result column="title" jdbcType="VARCHAR" property="title"/>
<result column="label" jdbcType="VARCHAR" property="label"/>
<result column="notice" jdbcType="VARCHAR" property="notice"/>
<result column="exclusive" jdbcType="SMALLINT" property="exclusive"/>
<!-- <result column="exclusive" jdbcType="SMALLINT" property="exclusive"/>-->
<result column="busi_type" jdbcType="SMALLINT" property="busiType"/>
<result column="cou_type" jdbcType="SMALLINT" property="couType"/>
<result column="bind_type" jdbcType="SMALLINT" property="bindType"/>
......@@ -33,6 +33,7 @@
<!-- <result column="mcoupon_id" jdbcType="VARCHAR" property="mcouponId" />-->
<result column="uid" jdbcType="VARCHAR" property="uid"/>
<!-- <result column="coupon_id" jdbcType="VARCHAR" property="couponId" />-->
<result column="exclusive" jdbcType="SMALLINT" property="exclusive"/>
<result column="state" jdbcType="TINYINT" property="state"/>
<result column="ccode" jdbcType="VARCHAR" property="ccode"/>
<result column="bind_at" jdbcType="TIMESTAMP" property="bindAt"/>
......@@ -43,11 +44,11 @@
</resultMap>
<sql id="Rst_UserCouponBasicDto_Column_List">
cc.coupon_id, cc.title, cc.`label`, cc.notice, cc.`exclusive`, cc.busi_type, cc.cou_type, cc.bind_type,
cc.coupon_id, cc.title, cc.`label`, cc.notice, cc.busi_type, cc.cou_type, cc.bind_type,
cc.discount, cc.val_face, cc.val_over, cc.val_minus, cc.`overlay`, cc.overlay_level,
cc.validity, cc.redeem_validity, cc.redeem_start, cc.redeem_stop,
cuc.ucoupon_id, cuc.mcoupon_id, cuc.`uid`, cuc.`state`, cuc.ccode, cuc.bind_at, cuc.dued_at, cuc.used_at, cuc.used_for
cuc.ucoupon_id, cuc.mcoupon_id, cuc.`uid`, cuc.`exclusive`, cuc.`state`, cuc.ccode, cuc.bind_at, cuc.dued_at, cuc.used_at, cuc.used_for
</sql>
<select id="selectMultiForUserCouponBasicDto" resultMap="Rst_UserCouponBasicDto">
......
......@@ -213,6 +213,26 @@ public class KylinOrderTickets implements Serializable, Cloneable {
*/
private String comment;
/**
* comment
*/
private String area;
/**
* Province
*/
private String areaProvince;
/**
* City
*/
private String areaCity;
/**
* County
*/
private String areaCounty;
/**
* 创建时间
*/
......@@ -228,12 +248,12 @@ public class KylinOrderTickets implements Serializable, Cloneable {
*
* @return
*/
public Object[] getAddObject(String ipAddress) {
public Object[] getAddObject(String ipAddress,String area,String areaProvince,String areaCity,String areaCounty) {
return new Object[]{
orderTicketsId, userId, userName, userMobile, performanceTitle, orderCode, qrCode, orderType, orderVersion,
number, price, priceMember, priceTotal, priceVoucher, priceActual, priceExpress, priceRefund, refundNumber,
payType, paymentType, timePay, expressContacts, expressAddress, expressPhone, couponType, getTicketType,
getTicketDescribe, payCountdownMinute, comment, createdAt, updatedAt, payCode,ipAddress
getTicketDescribe, payCountdownMinute, comment, createdAt, updatedAt, payCode,ipAddress,area,areaProvince,areaCity,areaCounty
};
}
......
......@@ -55,4 +55,8 @@ public interface KylinPerformancesMapper extends BaseMapper<KylinPerformances> {
List<OrderExportDao> exportOrderByPerformanceIdAll(String performancesId);
List<OrderExportDao> exportOrderByPerformanceIdPay(String performancesId);
PerformanceSimpleAllDao getPerformanceSimpleByPerformancesId(String performancesId);
PerformanceSimpleAllDao getPerformanceSimpleByTimesId(String timesId);
PerformanceSimpleAllDao getPerformanceSimpleByTicketId(String ticketId);
}
......@@ -58,7 +58,7 @@
<if test="statusStr == '9'">
AND a.status = 9
</if>
<if test="statusStr 1= '1'">
<if test="statusStr != '1'">
AND a.status = 1 AND a.type != 3
</if>
<if test="statusStr != '1' and statusStr != '9'">
......@@ -103,7 +103,7 @@
<if test="statusStr == '9'">
AND a.status = 9
</if>
<if test="statusStr 1= '1'">
<if test="statusStr != '1'">
AND a.status = 1 AND a.type != 3
</if>
<if test="statusStr != '1' and statusStr != '9'">
......
package com.liquidnet.service.sweet.mapper;
import com.liquidnet.service.sweet.entity.SweetStrawberryPosterLineup;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.sweet.entity.SweetWechatUser;
/**
* <p>
* 正在现场服务号关注事件储存用户信息表 Mapper 接口
* 2021草莓音乐节海报活动选择阵容表 Mapper 接口
* </p>
*
* @author jiangxiulong
* @since 2021-08-03
* @since 2021-11-25
*/
public interface SweetWechatUserMapper extends BaseMapper<SweetWechatUser> {
public interface SweetStrawberryPosterLineupMapper extends BaseMapper<SweetStrawberryPosterLineup> {
}
package com.liquidnet.service.sweet.mapper;
import com.liquidnet.service.sweet.entity.SweetAppletUser;
import com.liquidnet.service.sweet.entity.SweetStrawberryPoster;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 小程序登录记录用户解密后信息表 Mapper 接口
* 2021草莓音乐节海报活动表 Mapper 接口
* </p>
*
* @author jiangxiulong
* @since 2021-11-08
* @since 2021-11-25
*/
public interface SweetAppletUserMapper extends BaseMapper<SweetAppletUser> {
public interface SweetStrawberryPosterMapper extends BaseMapper<SweetStrawberryPoster> {
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liquidnet.service.sweet.mapper.SweetStrawberryPosterLineupMapper">
</mapper>
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