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

Commit 4861c69e authored by 张国柄's avatar 张国柄

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

# Conflicts:
#	liquidnet-bus-config/liquidnet-config/application-dev.yml
#	liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/service/impl/KylinOrderTicketsServiceImpl.java
parents 6b3f3fb3 cc7e2517
-- 添加积分券 --
ALTER TABLE stone_score_items ADD simple_type tinyint DEFAULT 0 COMMENT '类别(区别于TYPE字段)';
drop table if exists sweet_qr_code;
create table sweet_qr_code
(
mid bigint unsigned auto_increment primary key,
qr_code_id varchar (64) default '' comment 'ID',
type int default 0 comment '活动type类型',
url varchar(128) default '' comment '二维码地址',
show_num int default 0 comment '展示次数',
read_num int default 0 comment '访问次数',
created_at timestamp default CURRENT_TIMESTAMP not null,
KEY `sweet_qr_code_type` (`type`)
) engine = InnoDB comment 'type二维码表';
drop table if exists sweet_active_type;
create table sweet_active_type
(
mid bigint unsigned auto_increment primary key,
active_name varchar(64) default '' comment '活动名称',
type int default 0 comment 'type类型',
alarm_num int default 0 comment '预警数量',
max_count int default 8000 comment '最大访问次数',
created_at timestamp default CURRENT_TIMESTAMP not null,
KEY `sweet_active_type_active_name_index` (`active_name`)
) engine = InnoDB comment '活动type表';
...@@ -44,7 +44,7 @@ public class AdamMemberOrderParam implements Serializable { ...@@ -44,7 +44,7 @@ public class AdamMemberOrderParam implements Serializable {
@Pattern(regexp = LnsRegex.Valid.TRIPLE_PF_FOR_PAY_TERMINAL, message = "支付终端类型无效") @Pattern(regexp = LnsRegex.Valid.TRIPLE_PF_FOR_PAY_TERMINAL, message = "支付终端类型无效")
@NotBlank(message = "支付终端不能为空") @NotBlank(message = "支付终端不能为空")
private String deviceFrom; private String deviceFrom;
@ApiModelProperty(position = 20, required = true, value = "支付方式", allowableValues = "alipay,wepay") @ApiModelProperty(position = 20, required = true, value = "支付方式", allowableValues = "alipay,wepay,douyinpay,unionpay")
@Pattern(regexp = LnsRegex.Valid.TRIPLE_PF_FOR_PAY, message = "支付方式无效") @Pattern(regexp = LnsRegex.Valid.TRIPLE_PF_FOR_PAY, message = "支付方式无效")
@NotBlank(message = "支付方式不能为空") @NotBlank(message = "支付方式不能为空")
private String payType; private String payType;
......
...@@ -20,6 +20,8 @@ public class AdamMemberOrderResult implements Serializable, Cloneable { ...@@ -20,6 +20,8 @@ public class AdamMemberOrderResult implements Serializable, Cloneable {
private String showUrl; private String showUrl;
@ApiModelProperty(value = "支付成功跳转URL") @ApiModelProperty(value = "支付成功跳转URL")
private String returnUrl; private String returnUrl;
@ApiModelProperty(value = "支付方式")
private String payType;
private static final AdamMemberOrderResult obj = new AdamMemberOrderResult(); private static final AdamMemberOrderResult obj = new AdamMemberOrderResult();
......
...@@ -22,6 +22,8 @@ public class AdamMemberJoinusVo implements java.io.Serializable, Cloneable { ...@@ -22,6 +22,8 @@ public class AdamMemberJoinusVo implements java.io.Serializable, Cloneable {
private Integer state; private Integer state;
@ApiModelProperty(position = 16, value = "权益详情[200]", example = "加入摩登天空会员您可享受到.....") @ApiModelProperty(position = 16, value = "权益详情[200]", example = "加入摩登天空会员您可享受到.....")
private String interestsDetail; private String interestsDetail;
@ApiModelProperty(position = 17, value = "会员ID", example = "123456")
private String memberNo;
private static final AdamMemberJoinusVo obj = new AdamMemberJoinusVo(); private static final AdamMemberJoinusVo obj = new AdamMemberJoinusVo();
......
...@@ -8,6 +8,7 @@ import com.liquidnet.service.adam.entity.AdamUserMember; ...@@ -8,6 +8,7 @@ import com.liquidnet.service.adam.entity.AdamUserMember;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
...@@ -36,6 +37,11 @@ public class AdamUserMemberVo implements Serializable, Cloneable { ...@@ -36,6 +37,11 @@ public class AdamUserMemberVo implements Serializable, Cloneable {
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR) @JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime updatedAt; private LocalDateTime updatedAt;
public String getMemberNo() {
// return memberNo;
return StringUtils.leftPad(memberNo, 7, "0");
}
public static final LocalDateTime spotTime = LocalDateTime.parse("2021-10-14 21:30:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); public static final LocalDateTime spotTime = LocalDateTime.parse("2021-10-14 21:30:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
private static final AdamUserMemberVo obj = new AdamUserMemberVo(); private static final AdamUserMemberVo obj = new AdamUserMemberVo();
......
...@@ -13,16 +13,22 @@ public class DragonConstant { ...@@ -13,16 +13,22 @@ public class DragonConstant {
public static final String REFUND_TYPE_WEB_ALIPAY="WEBALIPAY";//,"电脑网页内支付宝即时到账支付"), public static final String REFUND_TYPE_WEB_ALIPAY="WEBALIPAY";//,"电脑网页内支付宝即时到账支付"),
public static final String REFUND_TYPE_WEB_WEPAY="WEBWEPAY";//,"电脑网页内微信二维码支付,用户打开微信扫码支付"), public static final String REFUND_TYPE_WEB_WEPAY="WEBWEPAY";//,"电脑网页内微信二维码支付,用户打开微信扫码支付"),
public static final String REFUND_TYPE_JS_WEPAY="JSWEPAY";//,"微信内网页、微信公众号"), 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="APPLETDOUYINPAY";//,"applet 抖音支付"),
public static final String REFUND_TYPE_APPLET_WEPAY="APPLETWEPAY";//,"微信小程序"); public static final String REFUND_TYPE_APPLET_WEPAY="APPLETWEPAY";//,"微信小程序");
public static final String REFUND_REDIS_KET="dragon:refund:refundCode:";// 订单号对应回调地址 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 static final String REDIS_KET_PAY_CODE="dragon:pay:code:";// 支付流水号
public enum PayChannelEnum{ public enum PayChannelEnum{
ALIPAY("alipay","支付宝"), ALIPAY("alipay","支付宝"),
WEPAY ("wepay","微信"), WEPAY ("wepay","微信"),
APPLEPAY ("applepay","applepay"), APPLEPAY ("applepay","applepay"),
UNIONPAY("unionpay","云闪付"),
DOUYINPAY ("douyinpay","抖音"),
CLOUDPAY("cloudpay","云闪付"); CLOUDPAY("cloudpay","云闪付");
private String code; private String code;
private String message; private String message;
...@@ -37,7 +43,7 @@ public class DragonConstant { ...@@ -37,7 +43,7 @@ public class DragonConstant {
} }
public enum DeviceFromEnum{ public enum DeviceFromEnum{
WEB("web",""),WAP("wap","") WEB("web",""),WAP("wap",""),WAPPAGE("wappage","")
,APP("app",""),JS("js",""),APPLET("applet",""); ,APP("app",""),JS("js",""),APPLET("applet","");
private String code; private String code;
private String message; private String message;
...@@ -175,7 +181,10 @@ public class DragonConstant { ...@@ -175,7 +181,10 @@ public class DragonConstant {
PAYMENT_TYPE_WEB_ALIPAY("WEBALIPAY","alipay","web","电脑网页内支付宝即时到账支付"), PAYMENT_TYPE_WEB_ALIPAY("WEBALIPAY","alipay","web","电脑网页内支付宝即时到账支付"),
PAYMENT_TYPE_WEB_WEPAY("WEBWEPAY","wepay","web","电脑网页内微信二维码支付,用户打开微信扫码支付"), PAYMENT_TYPE_WEB_WEPAY("WEBWEPAY","wepay","web","电脑网页内微信二维码支付,用户打开微信扫码支付"),
PAYMENT_TYPE_JS_WEPAY("JSWEPAY","wepay","js","微信内网页、微信公众号"), 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","抖音小程序"),
PAYMENT_TYPE_WAP_UNIONPAY("WAPUNIONPAY","unionpay","wap","银联wap支付"),
PAYMENT_TYPE_APP_UNIONPAY("APPUNIONPAY","unionpay","wap","银联wap支付");
private String code; private String code;
private String message; private String message;
......
...@@ -27,8 +27,16 @@ public enum DragonErrorCodeEnum { ...@@ -27,8 +27,16 @@ public enum DragonErrorCodeEnum {
TRADE_ALIPAY_QUERY_ERROR("PAY0010010","支付宝订单查询失败!"), TRADE_ALIPAY_QUERY_ERROR("PAY0010010","支付宝订单查询失败!"),
TRADE_UNIONPAY_QUERY_ERROR("PAY0040002","银联订单查询失败,因缓存消失,查询不到订单导致!"),
TRADE_WEPAY_SIGN_ERROR("PAY0020001","微信签名异常!"), TRADE_WEPAY_SIGN_ERROR("PAY0020001","微信签名异常!"),
TRADE_DOUYINPAY_SIGN_ERROR("PAY0030001","抖音签名异常!"),
TRADE_DOUYINPAY_QUERY_ERROR("PAY0030002","抖音查询支付订单异常!"),
TRADE_UNIONPAY_SIGN_ERROR("PAY0040001","银联签名异常!"),
TRADE_WEPAY_QUERY_ERROR("PAY0020002","微信订单查询失败!"); TRADE_WEPAY_QUERY_ERROR("PAY0020002","微信订单查询失败!");
private String code; private String code;
......
...@@ -36,6 +36,8 @@ public class DragonPayBaseRespDto implements Serializable { ...@@ -36,6 +36,8 @@ public class DragonPayBaseRespDto implements Serializable {
private PayData payData; private PayData payData;
private String payType;
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
public static class PayData{ public static class PayData{
...@@ -63,5 +65,9 @@ public class DragonPayBaseRespDto implements Serializable { ...@@ -63,5 +65,9 @@ public class DragonPayBaseRespDto implements Serializable {
private String redirectUrl; private String redirectUrl;
private String orderStr; private String orderStr;
private String orderId;
private String orderToken;
} }
} }
...@@ -22,6 +22,12 @@ public interface IDragonOrderRefundsService { ...@@ -22,6 +22,12 @@ public interface IDragonOrderRefundsService {
String wePayRefundCallBack(HttpServletRequest request , HttpServletResponse response); String wePayRefundCallBack(HttpServletRequest request , HttpServletResponse response);
String unionRefundCallBack(HttpServletRequest request , HttpServletResponse response);
String aliPayRefundCodeStatus(String outTradeNo ,String tradeNo ,String outBizNo,String callBackUrl); String aliPayRefundCodeStatus(String outTradeNo ,String tradeNo ,String outBizNo,String callBackUrl);
String douYinPayRefundCallBack(HttpServletRequest request , HttpServletResponse response);
String douYinPayRefundCodeStatus(String outRefundNo);
} }
package com.liquidnet.service.kylin.dto.param;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Data
public class CreateActiveQrCodeParam implements Serializable {
private String qrCodeId;
private Integer mid;
private Integer type;
@NotNull(message = "二维码地址")
private String url;
@NotNull(message = "生成个数")
private Integer count;
private Integer readNum;
}
package com.liquidnet.service.kylin.dto.param;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Data
public class CreateActiveTypeParam implements Serializable {
private Integer mid;
@NotNull(message = "活动名称")
private String activeName;
@NotNull(message = "类型")
private Integer type;
@NotNull(message = "预警个数")
private Integer alarmNum;
@NotNull(message = "最大访问次数")
private Integer maxCount;
}
...@@ -23,4 +23,22 @@ public class PayDataVo implements Serializable { ...@@ -23,4 +23,22 @@ public class PayDataVo implements Serializable {
private String signType; private String signType;
private String redirectUrl; private String redirectUrl;
private String orderStr; 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;
}
} }
...@@ -13,6 +13,7 @@ public class PayInnerResultVo implements Serializable,Cloneable { ...@@ -13,6 +13,7 @@ public class PayInnerResultVo implements Serializable,Cloneable {
private String orderCode; private String orderCode;
private Integer status; private Integer status;
private String orderId; private String orderId;
private String payType;
private String showUrl; private String showUrl;
private String returnUrl; private String returnUrl;
private BigDecimal price; private BigDecimal price;
......
...@@ -2,17 +2,22 @@ package com.liquidnet.service.stone.constant; ...@@ -2,17 +2,22 @@ package com.liquidnet.service.stone.constant;
public class StoneConstant { public class StoneConstant {
//ctx //ctx
private static final String CTX="stone:"; private static final String CTX = "stone:";
//user //user
public static final String USER=CTX.concat("user:"); public static final String USER = CTX.concat("user:");
//item //item
public static final String ITEM=CTX.concat("item:"); public static final String ITEM = CTX.concat("item:");
//logsList 积分日志列表 //logsList 积分日志列表
public static final String LOGS_LIST=ITEM.concat("logs:list:"); public static final String LOGS_LIST = ITEM.concat("logs:list:");
//orderList 积分订单列表 //orderList 积分订单列表
public static final String ORDER_LIST=ITEM.concat("order:list:"); public static final String ORDER_LIST = ITEM.concat("order:list:");
//orderList 积分订单列表 //orderList 积分订单列表
public static final String ORDER_DETAILS=ITEM.concat("order:details:"); public static final String ORDER_DETAILS = ITEM.concat("order:details:");
//商品列表
public static final String ITEM_LIST = ITEM.concat("list");
//商品列表分类
public static final String ITEM_LIST_SIMPLE = ITEM.concat("list:simpleType:");
//剩余库存 //剩余库存
public static final String SURPLUS_GENERAL = ":surplusGeneral"; public static final String SURPLUS_GENERAL = ":surplusGeneral";
......
...@@ -15,6 +15,8 @@ public class StoneItemBuildParam { ...@@ -15,6 +15,8 @@ public class StoneItemBuildParam {
private String itemId; private String itemId;
@ApiModelProperty(required = true, value = "目标类型[1-券|11-商品维度|21-演出维度]", example = "1") @ApiModelProperty(required = true, value = "目标类型[1-券|11-商品维度|21-演出维度]", example = "1")
private Integer type; private Integer type;
@ApiModelProperty(required = false, value = "前端暂定 0为默认值 无条件")
private Integer simpleType;
@NotBlank(message = "目标物品不能为空") @NotBlank(message = "目标物品不能为空")
@ApiModelProperty(value = "目标物品id", example = "1") @ApiModelProperty(value = "目标物品id", example = "1")
private String targetId; private String targetId;
......
...@@ -20,4 +20,6 @@ public class StoneListParam { ...@@ -20,4 +20,6 @@ public class StoneListParam {
*/ */
@ApiModelProperty(required = false, value = "状态[1-券]", example = "1") @ApiModelProperty(required = false, value = "状态[1-券]", example = "1")
private Integer type; private Integer type;
@ApiModelProperty(required = false, value = "前端定义 0位默认值 无条件", example = "0")
private Integer simpleType;
} }
...@@ -21,6 +21,8 @@ public interface IStoneScoreItemsService { ...@@ -21,6 +21,8 @@ public interface IStoneScoreItemsService {
PageInfo<List<StoneItemListVo>> itemList(Integer page, Integer size); PageInfo<List<StoneItemListVo>> itemList(Integer page, Integer size);
PageInfo<List<StoneItemListVo>> itemListSimpleType(Integer simpleType ,Integer page, Integer size);
ResponseDto<StoneScoreItemVo> itemDetails(String itemId); ResponseDto<StoneScoreItemVo> itemDetails(String itemId);
} }
...@@ -55,9 +55,9 @@ public class StoneOrderListVo implements Serializable, Cloneable { ...@@ -55,9 +55,9 @@ public class StoneOrderListVo implements Serializable, Cloneable {
} }
} }
public StoneOrderListVo copy(StoneScoreOrder source,String img,String uid) { public StoneOrderListVo copy(StoneScoreOrder source, String img, String uid) {
if (null == source) return this; if (null == source) return this;
this.setOrderId(source.getItemId()); this.setOrderId(source.getOrderId());
this.setImg(img); this.setImg(img);
this.setUid(uid); this.setUid(uid);
this.setTargetTitle(source.getTargetTitle()); this.setTargetTitle(source.getTargetTitle());
......
...@@ -2,6 +2,7 @@ package com.liquidnet.service.sweet.constant; ...@@ -2,6 +2,7 @@ package com.liquidnet.service.sweet.constant;
public class SweetConstant { public class SweetConstant {
public final static String SWEET = "sweet:";
public final static String REDIS_KEY_SWEET_MANUAL_PUSH_LIST = "sweet:manual:pushList"; public final static String REDIS_KEY_SWEET_MANUAL_PUSH_LIST = "sweet:manual:pushList";
public final static String REDIS_KEY_SWEET_MANUAL_TIME_LIST = "sweet:manual:timeList:manual:"; public final static String REDIS_KEY_SWEET_MANUAL_TIME_LIST = "sweet:manual:timeList:manual:";
public final static String REDIS_KEY_SWEET_MANUAL_NOTIFY_LIST = "sweet:manual:notify:manual:"; public final static String REDIS_KEY_SWEET_MANUAL_NOTIFY_LIST = "sweet:manual:notify:manual:";
...@@ -23,9 +24,16 @@ public class SweetConstant { ...@@ -23,9 +24,16 @@ public class SweetConstant {
public final static String REDIS_KEY_SWEET_MDSK_MANUAL_RICH_TEXT = "sweet:mdsk:manual:richText:manual:"; public final static String REDIS_KEY_SWEET_MDSK_MANUAL_RICH_TEXT = "sweet:mdsk:manual:richText:manual:";
public final static String REDIS_KEY_SWEET_MDSK_MANUAL_SORT = "sweet:mdsk:manual:sort:manual:"; public final static String REDIS_KEY_SWEET_MDSK_MANUAL_SORT = "sweet:mdsk:manual:sort:manual:";
public final static String REDIS_KEY_SWEET_MDSK_ARTISTS_RELATION = "sweet:mdsk:artists:relation:uid:"; 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 final static String REDIS_KEY_SWEET_MDSK_SHOP = "sweet:mdsk:artists:shop:manual:";
public final static String REDIS_KEY_SWEET_TFC_MANUAL_PUSH_LIST = "sweet:mdsk:manual:pushList";
public final static String REDIS_KEY_SWEET_TFC_MANUAL_TIME_LIST = "sweet:mdsk:manual:timeList:manual:";
public final static String REDIS_KEY_SWEET_TFC_MANUAL_NOTIFY_LIST = "sweet:mdsk:manual:notify:manual:";
public final static String REDIS_KEY_SWEET_TFC_MANUAL_RICH_TEXT = "sweet:mdsk:manual:richText:manual:";
public final static String REDIS_KEY_SWEET_TFC_MANUAL_SORT = "sweet:mdsk:manual:sort:manual:";
public final static String REDIS_KEY_SWEET_TFC_ARTISTS_RELATION = "sweet:mdsk:artists:relation:uid:";
public final static String REDIS_KEY_SWEET_TFC_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_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_INFO = "sweet:integralActivity:activityId:";
...@@ -39,6 +47,8 @@ public class SweetConstant { ...@@ -39,6 +47,8 @@ public class SweetConstant {
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_ESTIMATEDNUM = "sweet:integralActivity:estimatedNum:activityId:"; public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_ESTIMATEDNUM = "sweet:integralActivity:estimatedNum:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_TOTAL_PRIZE_NUM = "sweet:integralActivity:totalPrizeNum:activityId:"; public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_TOTAL_PRIZE_NUM = "sweet:integralActivity:totalPrizeNum:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_BLACK = "sweet:integralActivity:drawBlack"; public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_BLACK = "sweet:integralActivity:drawBlack";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_WHITE = "sweet:integralActivity:drawWhite";
public static final String REDIS_KEY_SWEET_SEND_COUPON = "sweet:integralActivity:coupon:send:";
// 答题活动 // 答题活动
public final static String REDIS_KEY_SWEET_ANSWER_PHONE = "sweet:answer:phone:"; public final static String REDIS_KEY_SWEET_ANSWER_PHONE = "sweet:answer:phone:";
// 城市投票活动 // 城市投票活动
...@@ -71,4 +81,12 @@ public class SweetConstant { ...@@ -71,4 +81,12 @@ public class SweetConstant {
//猫登活动整体 //猫登活动整体
public final static String REDIS_KEY_SWEET_WECHAT_MAODENG_POSTER_TRANSFER = "sweet:maoDeng:naneAndImg:openId:transfer"; public final static String REDIS_KEY_SWEET_WECHAT_MAODENG_POSTER_TRANSFER = "sweet:maoDeng:naneAndImg:openId:transfer";
//二维码相关
public final static String QRCODE = SWEET.concat("qrcode:");
public final static String REDIS_KEY_QRCODE_MAX_NUM = QRCODE.concat("maxNum:"); //最大 :type
public final static String REDIS_KEY_QRCODE_SHOW_NUM = QRCODE.concat("showNum:"); //展示次数 :type:mid
public final static String REDIS_KEY_QRCODE_READ_NUM = QRCODE.concat("readNum:"); //读取次数 :type:mid
public final static String REDIS_KEY_QRCODE_LIST = QRCODE.concat("list:"); //二维码实体类 :type
} }
...@@ -29,7 +29,7 @@ public class IntegralActivityDrawVo implements Serializable, Cloneable { ...@@ -29,7 +29,7 @@ public class IntegralActivityDrawVo implements Serializable, Cloneable {
@ApiModelProperty(value = "奖品名称") @ApiModelProperty(value = "奖品名称")
private String prizeTitle; private String prizeTitle;
@ApiModelProperty(value = "奖品类型 1积分 2优惠券 3实物 4登登登VIP 5优先购买券惠顾 2积分 3代金券 4满减券 5优先购买券 6实物") @ApiModelProperty(value = "奖品类型 1积分 2优惠券 3实物 4登登登VIP 5优先购买券")
private Integer prizeType; private Integer prizeType;
@ApiModelProperty(value = "关联id 如商品id 券id") @ApiModelProperty(value = "关联id 如商品id 券id")
...@@ -65,7 +65,7 @@ public class IntegralActivityDrawVo implements Serializable, Cloneable { ...@@ -65,7 +65,7 @@ public class IntegralActivityDrawVo implements Serializable, Cloneable {
@ApiModelProperty(value = "adam收货人详细地址") @ApiModelProperty(value = "adam收货人详细地址")
private String receivingAddress; private String receivingAddress;
@ApiModelProperty(value = "发放状态 1未发放 2已发放") @ApiModelProperty(value = "发放状态 1未发放 2已发放 3未领取")
private Integer receivingStatus; private Integer receivingStatus;
@ApiModelProperty(value = "创建时间") @ApiModelProperty(value = "创建时间")
......
package com.liquidnet.service.sweet.service;
/**
* <p>
* 活动type表 服务类
* </p>
*
* @author hujiachen
* @since 2021-12-23
*/
public interface ISweetActiveTypeService {
String getRandomQrCode(int type);
}
...@@ -24,4 +24,6 @@ public interface ISweetIntegralActivityService extends IService<SweetIntegralAct ...@@ -24,4 +24,6 @@ public interface ISweetIntegralActivityService extends IService<SweetIntegralAct
ResponseDto setDrawAllList(String integralActivityId); ResponseDto setDrawAllList(String integralActivityId);
ResponseDto drawBlack(String uidS); ResponseDto drawBlack(String uidS);
ResponseDto drawWhite(String uidS);
} }
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.SweetManualArtistListTFCDto;
import com.liquidnet.service.sweet.entity.SweetManualArtistsTfc;
/**
* <p>
* 电子宣传手册艺人表 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
public interface ISweetManualArtistsTFCService extends IService<SweetManualArtistsTfc> {
ResponseDto<PageInfo<SweetManualArtistListTFCDto>> 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<SweetManualArtistListTFCDto> 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.entity.SweetManualNotifyTfc;
/**
* <p>
* 电子宣传手册通知表 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
public interface ISweetManualNotifyTFCService extends IService<SweetManualNotifyTfc> {
ResponseDto<PageInfo<SweetManualNotifyTfc>> getList(Integer page, Integer size, String title, String manualId);
ResponseDto<Boolean> add(String manualId,String title, String content);
ResponseDto<SweetManualNotifyTfc> 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.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.entity.SweetManualShopTfc;
import java.util.List;
/**
* <p>
* 电子宣传手册商铺表 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
public interface ISweetManualShopTFCService extends IService<SweetManualShopTfc> {
ResponseDto<List<SweetManualShopTfc>> getList(String manualId, Integer type);
ResponseDto<SweetManualShopTfc> 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.SweetManualSortTfc;
/**
* <p>
* 电子宣传手册显示内容表 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
public interface ISweetManualSortTFCService extends IService<SweetManualSortTfc> {
ResponseDto<SweetManualSortTfc> 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.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.dto.SweetManualTFCDto;
import com.liquidnet.service.sweet.entity.SweetManualTfc;
/**
* <p>
* 电子宣传手册表 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
public interface ISweetManualTFCService extends IService<SweetManualTfc> {
ResponseDto<PageInfo<SweetManualTFCDto>> getManualList(int page, int size, String name);
ResponseDto<SweetManualTFCDto> 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;
/**
* <p>
* type二维码表 服务类
* </p>
*
* @author hujiachen
* @since 2021-12-23
*/
public interface ISweetQrCodeService {
}
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.SweetRichtextTfc;
/**
* <p>
* 电子宣传手册富文本表 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
public interface ISweetRichtextTFCService extends IService<SweetRichtextTfc> {
ResponseDto<SweetRichtextTfc> 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.sweet.entity.SweetUserRelationTfc;
/**
* <p>
* 用户 收藏/喜欢等状态 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
public interface ISweetUserRelationTFCService extends IService<SweetUserRelationTfc> {
}
...@@ -46,7 +46,7 @@ public class SweetAppletUsersVo implements Serializable, Cloneable { ...@@ -46,7 +46,7 @@ public class SweetAppletUsersVo implements Serializable, Cloneable {
private String countryCode; private String countryCode;
/** /**
* 1草莓 2五百里 3mdsk 4正在 * 1草莓 2五百里 3mdsk 4正在 5跳飞船音乐节
*/ */
private Integer type; private Integer type;
......
package com.liquidnet.service.sweet.vo;
import com.liquidnet.service.sweet.entity.SweetManualShopTfc;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
@ApiModel
public class SweetManualShopTFCAllVo implements Serializable ,Cloneable {
@ApiModelProperty("推荐")
private List<SweetManualShopTfc> recommend;
@ApiModelProperty("吃喝")
private List<SweetManualShopTfc> eat;
@ApiModelProperty("玩乐")
private List<SweetManualShopTfc> play;
private static final SweetManualShopTFCAllVo obj = new SweetManualShopTFCAllVo();
public static SweetManualShopTFCAllVo getNew() {
try {
return (SweetManualShopTFCAllVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetManualShopTFCAllVo();
}
}
}
...@@ -19,6 +19,10 @@ import org.springframework.stereotype.Controller; ...@@ -19,6 +19,10 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@Api(tags = "积分物品") @Api(tags = "积分物品")
@Controller @Controller
@RequestMapping("stone/item") @RequestMapping("stone/item")
...@@ -39,7 +43,7 @@ public class StoneItemController extends BaseController { ...@@ -39,7 +43,7 @@ public class StoneItemController extends BaseController {
@GetMapping("integralStoreEdit") @GetMapping("integralStoreEdit")
@ApiOperation(value = "积分商品:详情View") @ApiOperation(value = "积分商品:详情View")
public String integralStoreEdit (ModelMap mmap) { public String integralStoreEdit(ModelMap mmap) {
mmap.put("platformUrl", platformUrl); mmap.put("platformUrl", platformUrl);
return prefix + "/integralStoreEdit"; return prefix + "/integralStoreEdit";
} }
...@@ -49,12 +53,23 @@ public class StoneItemController extends BaseController { ...@@ -49,12 +53,23 @@ public class StoneItemController extends BaseController {
@PostMapping("list") @PostMapping("list")
@ResponseBody @ResponseBody
public TableDataInfo list(StoneListParam listParam) { public TableDataInfo list(StoneListParam listParam) {
PageInfo<StoneScoreItems> result = iItemService.itemList(listParam.getTitle(), listParam.getState(), listParam.getType()); startPage();
TableDataInfo rspData = new TableDataInfo(); List<StoneScoreItems> result = iItemService.itemList(listParam.getTitle(), listParam.getState(), listParam.getType(), listParam.getSimpleType());
rspData.setCode(0); List<StoneScoreItems> newList = new ArrayList();
rspData.setRows(result.getList()); LocalDateTime now = LocalDateTime.now();
rspData.setTotal(result.getTotal()); for (StoneScoreItems item : result) {
return rspData; if (item.getStatus() == 2) {
if (now.isAfter(item.getStartTime())) {//未上架
item.setStatus(2);
} else if (now.isBefore(item.getEndTime())) {//已下架
item.setStatus(7);
} else {
item.setStatus(1);//上架中
}
}
newList.add(item);
}
return getDataTable(result);
} }
@Log(title = "积分商品:修改状态") @Log(title = "积分商品:修改状态")
......
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.ISweetAdminActiveTypeService;
import com.liquidnet.client.admin.zhengzai.sweet.service.ISweetAdminQrCodeService;
import com.liquidnet.client.admin.zhengzai.sweet.service.ISweetIntegralActivityService;
import com.liquidnet.service.kylin.dao.PerformanceTitleDao;
import com.liquidnet.service.kylin.dao.RoadShowAdminListDao;
import com.liquidnet.service.kylin.dto.param.CreateActiveQrCodeParam;
import com.liquidnet.service.kylin.dto.param.CreateActiveTypeParam;
import com.liquidnet.service.kylin.dto.param.CreateRoadShowParam;
import com.liquidnet.service.kylin.dto.vo.admin.KylinRoadShowAdminVo;
import com.liquidnet.service.kylin.service.admin.IKylinRoadShowsAdminService;
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 com.liquidnet.service.sweet.entity.SweetActiveType;
import com.liquidnet.service.sweet.entity.SweetQrCode;
import com.liquidnet.service.sweet.service.ISweetActiveTypeService;
import com.liquidnet.service.sweet.service.ISweetQrCodeService;
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;
import java.util.List;
/**
* <p>
* 活动二维码 前端控制器
* </p>
*
* @author jiangxiulong
* @since 2021-10-20
*/
@Api(tags = "活动二维码")
@Controller
@RequestMapping("sweet/active")
public class SweetActiveController extends BaseController {
private String prefix = "zhengzai/sweet/qrCode";
@Autowired
private ISweetAdminActiveTypeService sweetAdminActiveTypeService;
@Autowired
private ISweetAdminQrCodeService sweetAdminQrCodeService;
@GetMapping("qrcode")
public String qrcode(ModelMap mmap) {
return prefix + "/qrcode";
}
@Log(title = "二维码列表管理", businessType = BusinessType.LIST)
@PostMapping("/list")
@ResponseBody
public TableDataInfo getList(@RequestParam(value = "pageNum") int page,
@RequestParam(value = "pageSize") int size) {
startPage();
List<SweetActiveType> result = sweetAdminActiveTypeService.getList(page, size);
return getDataTable(result);
}
/**
* 新增类型
*/
@GetMapping("/add")
public String add() {
return prefix + "/add";
}
@Log(title = "二维码列表管理", businessType = BusinessType.INSERT)
@PostMapping("/add")
@ResponseBody
public AjaxResult createType(CreateActiveTypeParam createActiveTypeParam) {
return toAjax(sweetAdminActiveTypeService.addInfo(createActiveTypeParam));
}
// @RequiresPermissions("kylin:performances:roadShow:details")
@Log(title = "二维码列表管理", businessType = BusinessType.DETAIL)
@GetMapping(value = "/details/{mid}")
public String detailsType(@PathVariable("mid") String mid, ModelMap mmap) {
SweetActiveType result = sweetAdminActiveTypeService.details(mid);
mmap.put("SweetActiveType", result);
return prefix + "/edit";
}
// @RequiresPermissions("kylin:performances:roadShow:edit")
@Log(title = "二维码列表管理", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
@ResponseBody
public AjaxResult updateType(CreateActiveTypeParam createActiveTypeParam) {
return toAjax(sweetAdminActiveTypeService.changeInfo(createActiveTypeParam));
}
@Log(title = "二维码列表管理", businessType = BusinessType.DETAIL)
@GetMapping("/detailsList/{type}")
public String addPerformance(@PathVariable("type") String type, ModelMap mmap) {
mmap.put("type", type);
return prefix + "/details";
}
@GetMapping(value = "/qrCode/{type}")
@ResponseBody
public TableDataInfo listBymId(@PathVariable("type") String type) {
List<SweetQrCode> result = sweetAdminQrCodeService.getList(type);
return getDataTable(result);
}
/**
* 新增类型
*/
@GetMapping("/addQrCode/{type}")
public String addQrCode(@PathVariable("type") String type, ModelMap mmap) {
mmap.put("type", type);
return prefix + "/addQrCode";
}
@Log(title = "二维码列表管理", businessType = BusinessType.INSERT)
@PostMapping("/addQrCode")
@ResponseBody
public AjaxResult createQrCode(CreateActiveQrCodeParam createActiveTypeParam) {
return toAjax(sweetAdminQrCodeService.addQrCode(createActiveTypeParam));
}
@Log(title = "二维码列表管理", businessType = BusinessType.DETAIL)
@GetMapping(value = "/editQrCode/{mid}")
public String editDetails(@PathVariable("mid") String mid, ModelMap mmap) {
SweetQrCode result = sweetAdminQrCodeService.details(mid);
mmap.put("SweetQrCode", result);
return prefix + "/editQrCode";
}
@Log(title = "二维码列表管理", businessType = BusinessType.UPDATE)
@PostMapping("/editQrCode")
@ResponseBody
public AjaxResult updateType(CreateActiveQrCodeParam createActiveTypeParam) {
return toAjax(sweetAdminQrCodeService.changeInfo(createActiveTypeParam));
}
}
...@@ -80,7 +80,8 @@ ...@@ -80,7 +80,8 @@
couType: couType, couType: couType,
bindType: '1,4' bindType: '1,4'
}; };
var jAjax = $.post; var jAjax = $.get;
// var jAjax = (that.ajax.method === "post") ? $.post : $.get;
jAjax(that.ajax.url, params, function(data){ jAjax(that.ajax.url, params, function(data){
return that.render(data.rows); return that.render(data.rows);
}); });
......
...@@ -81,6 +81,7 @@ ...@@ -81,6 +81,7 @@
bindType: '1,4' bindType: '1,4'
}; };
var jAjax = $.post; var jAjax = $.post;
// var jAjax = (that.ajax.method === "post") ? $.post : $.get;
jAjax(that.ajax.url, params, function(data){ jAjax(that.ajax.url, params, function(data){
return that.render(data.rows); return that.render(data.rows);
}); });
......
...@@ -42,10 +42,10 @@ ...@@ -42,10 +42,10 @@
<script th:src="@{/ruoyi/js/common.js?v=4.6.1}"></script> <script th:src="@{/ruoyi/js/common.js?v=4.6.1}"></script>
<script th:src="@{/ruoyi/js/ry-ui.js?v=4.6.1}"></script> <script th:src="@{/ruoyi/js/ry-ui.js?v=4.6.1}"></script>
<!--远程搜索下拉框--> <!--远程搜索下拉框-->
<script th:src="@{/js/remote-search-performance.js}"></script> <!-- <script th:src="@{/js/remote-search-performance.js}"></script>-->
<!--远程搜索下拉框:积分抽奖配置使用--> <!--远程搜索下拉框:积分抽奖配置使用-->
<script th:src="@{/js/remote-search-coupon-list.js}"></script> <!-- <script th:src="@{/js/remote-search-coupon-list.js}"></script>-->
<script th:src="@{/js/remote-search-coupon.js}"></script> <!-- <script th:src="@{/js/remote-search-coupon.js}"></script>-->
</div> </div>
<!-- ztree树插件 --> <!-- ztree树插件 -->
......
...@@ -530,6 +530,7 @@ ...@@ -530,6 +530,7 @@
<th:block th:include="include :: footer" /> <th:block th:include="include :: footer" />
<th:block th:include="include :: bootstrap-fileinput-js"/> <th:block th:include="include :: bootstrap-fileinput-js"/>
<script th:src="@{/js/remote-search-coupon.js}"></script>
<script th:inline="javascript"> <script th:inline="javascript">
......
...@@ -485,6 +485,7 @@ ...@@ -485,6 +485,7 @@
}); });
function create() { function create() {
if (!$('#valFace').val() || !$('#title').val() || !$('#num').val() || !$('#ticketTime').val() || !$('#describeTxt').val()) { if (!$('#valFace').val() || !$('#title').val() || !$('#num').val() || !$('#ticketTime').val() || !$('#describeTxt').val()) {
return layer.msg('请将必填项输入完整~!'); return layer.msg('请将必填项输入完整~!');
if (typeTwo == 0) { if (typeTwo == 0) {
...@@ -493,6 +494,9 @@ ...@@ -493,6 +494,9 @@
} }
} }
} }
if ($("#describeTxt").val().match(/^\s+$/)) {
return layer.msg('描述说明不可全为空格!');
}
let useScope = 100; let useScope = 100;
let busiName = $('#searchIpt').val(); let busiName = $('#searchIpt').val();
let busiId = ''; let busiId = '';
...@@ -518,7 +522,10 @@ ...@@ -518,7 +522,10 @@
useScope = 80; useScope = 80;
busiId = showId; busiId = showId;
} }
busiName = $("#searchIpt").val(); busiName = $("#searchIpt").val() || '全部商品';
}
if (typeOne == 0) {
busiName = $("#searchIpt").val() || '全场适用';
} }
if (typeOne == 3) { if (typeOne == 3) {
if (showId) { if (showId) {
......
...@@ -425,6 +425,9 @@ ...@@ -425,6 +425,9 @@
} }
} }
} }
if ($("#describeTxt").val().match(/^\s+$/)) {
return layer.msg('描述说明不可全为空格!');
}
let useScope = 100; let useScope = 100;
let busiName = $('#searchIpt').val(); let busiName = $('#searchIpt').val();
let busiId = ''; let busiId = '';
......
...@@ -495,6 +495,9 @@ ...@@ -495,6 +495,9 @@
} }
} }
} }
if ($("#describeTxt").val().match(/^\s+$/)) {
return layer.msg('描述说明不可全为空格!');
}
let useScope = 100; let useScope = 100;
let busiName = $('#searchIpt').val(); let busiName = $('#searchIpt').val();
let busiId = ''; let busiId = '';
...@@ -520,7 +523,10 @@ ...@@ -520,7 +523,10 @@
useScope = 80; useScope = 80;
busiId = showId; busiId = showId;
} }
busiName = $("#searchIpt").val(); busiName = $("#searchIpt").val() || '全部商品';
}
if (typeOne == 0) {
busiName = $("#searchIpt").val() || '全场适用';
} }
if (typeOne == 3) { if (typeOne == 3) {
if (showId) { if (showId) {
......
...@@ -296,6 +296,9 @@ ...@@ -296,6 +296,9 @@
if (!$('#title').val() || !$('#num').val() || !$('#ticketTime').val() || !$('#describeTxt').val()) { if (!$('#title').val() || !$('#num').val() || !$('#ticketTime').val() || !$('#describeTxt').val()) {
return layer.msg('请将必填项输入完整~!'); return layer.msg('请将必填项输入完整~!');
} }
if ($("#describeTxt").val().match(/^\s+$/)) {
return layer.msg('描述说明不可全为空格!');
}
let useScope = 100; let useScope = 100;
let busiName = $("#searchIpt").val(); let busiName = $("#searchIpt").val();
let busiId = ''; let busiId = '';
......
...@@ -322,6 +322,9 @@ ...@@ -322,6 +322,9 @@
}; };
} }
} }
if ($("#describeTxt").val().match(/^\s+$/)) {
return layer.msg('描述说明不可全为空格!');
}
let useScope = 100; let useScope = 100;
let busiName = ''; let busiName = '';
let busiId = ''; let busiId = '';
......
...@@ -39,6 +39,7 @@ ...@@ -39,6 +39,7 @@
</div> </div>
<th:block th:include="include :: footer"/> <th:block th:include="include :: footer"/>
<th:block th:include="include :: bootstrap-suggest-js"/> <th:block th:include="include :: bootstrap-suggest-js"/>
<script th:src="@{/js/remote-search-performance.js}"></script>
<script th:inline="javascript"> <script th:inline="javascript">
var prefix = ctx + "kylin/performances/recommend"; var prefix = ctx + "kylin/performances/recommend";
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
</div> </div>
<th:block th:include="include :: footer"/> <th:block th:include="include :: footer"/>
<th:block th:include="include :: bootstrap-suggest-js"/> <th:block th:include="include :: bootstrap-suggest-js"/>
<script th:src="@{/js/remote-search-performance.js}"></script>
<script th:inline="javascript"> <script th:inline="javascript">
var prefix = ctx + "kylin/performances/roadShow"; var prefix = ctx + "kylin/performances/roadShow";
var roadShowId = '[[${roadShowId}]]'.replaceAll("\"", ""); var roadShowId = '[[${roadShowId}]]'.replaceAll("\"", "");
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
<li> <li>
<input type="text" name="title" placeholder="请输入商品名称"/> <input type="text" name="title" placeholder="请输入商品名称"/>
</li> </li>
<li> <!--<li>
状态: 状态:
<select name="state" id=""> <select name="state" id="">
<option value="">全部</option> <option value="">全部</option>
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
<option value="">券</option> <option value="">券</option>
<option value="">商品</option> <option value="">商品</option>
</select> </select>
</li> </li>-->
<li> <li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a> <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a> <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
...@@ -58,6 +58,19 @@ ...@@ -58,6 +58,19 @@
var prefix = ctx + "stone/item"; var prefix = ctx + "stone/item";
var prefix2 = ctx; var prefix2 = ctx;
var couType = [[${couType}]]; var couType = [[${couType}]];
var simpleTypeDataList = [{
id: 1,
simpleName: '5元'
}, {
id: 2,
simpleName: '10元'
}, {
id: 3,
simpleName: '25元'
}, {
id: 4,
simpleName: '35元'
}]
$(function () { $(function () {
var options = { var options = {
url: prefix2 + "stone/item/list", url: prefix2 + "stone/item/list",
...@@ -74,7 +87,7 @@ ...@@ -74,7 +87,7 @@
field: '', field: '',
title: '序号', title: '序号',
formatter: function (value, row, index) { formatter: function (value, row, index) {
return index + 1 return row.mid;
} }
}, },
{ {
...@@ -94,6 +107,21 @@ ...@@ -94,6 +107,21 @@
} }
} }
}, },
{
field: 'simpleType',
title: '优惠券分类',
formatter: function(value, row, index) {
if (value == 0) {
return '无条件';
} else {
for (var i in simpleTypeDataList) {
if (simpleTypeDataList[i].id == value) {
return simpleTypeDataList[i].simpleName;
}
}
}
}
},
{ {
field: 'busiType', field: 'busiType',
title: '类型', title: '类型',
...@@ -111,11 +139,11 @@ ...@@ -111,11 +139,11 @@
}, },
{ {
field: 'generalSurplus', field: 'generalSurplus',
title: '已兑换数量' title: '剩余库存'
}, },
{ {
field: 'generalTotal', field: 'generalTotal',
title: '剩余库存' title: '库存'
}, },
{ {
field: 'createdAt', field: 'createdAt',
......
...@@ -155,6 +155,16 @@ ...@@ -155,6 +155,16 @@
<input type="radio" value="3" name="typeOne"><span>优先购</span> <input type="radio" value="3" name="typeOne"><span>优先购</span>
</div> </div>
</div> </div>
<div class="labelSelect main_type">
<span class="labelName">优惠券分类:</span>
<select name="labelSelect" id="labelSelectType">
<option value="0">请选择优惠券分类</option>
<option value="1">5元</option>
<option value="2">10元</option>
<option value="3">25元</option>
<option value="4">35元</option>
</select>
</div>
<div id="scoreType" class="main_type"> <div id="scoreType" class="main_type">
<span class="labelName"><i class="required">*</i>类别:</span> <span class="labelName"><i class="required">*</i>类别:</span>
<div class="layui-input-block" style="display: flex"> <div class="layui-input-block" style="display: flex">
...@@ -172,7 +182,6 @@ ...@@ -172,7 +182,6 @@
</div> </div>
<div class="main_type"> <div class="main_type">
<span class="labelName"><i class="required">*</i>展示图:</span> <span class="labelName"><i class="required">*</i>展示图:</span>
<div class="layui-input-block" style="display: flex;flex-direction: column;"> <div class="layui-input-block" style="display: flex;flex-direction: column;">
<img id="viewImg" src="" alt="" style="max-height:242px;"> <img id="viewImg" src="" alt="" style="max-height:242px;">
<div class="ibox-content"> <div class="ibox-content">
...@@ -280,7 +289,8 @@ ...@@ -280,7 +289,8 @@
let itemId = ''; // let itemId = ''; //
let selectType = '1' let selectType = '1'
let type = ''; let type = '';
console.log('检测') let simpleType = '';
$(document).ready(function() { $(document).ready(function() {
var $summernote = $('#summernote').summernote({ var $summernote = $('#summernote').summernote({
height: 300, height: 300,
...@@ -348,7 +358,7 @@ ...@@ -348,7 +358,7 @@
$("#searchIpt").val(data.targetTitle); $("#searchIpt").val(data.targetTitle);
$("#integralNum").val(data.score); $("#integralNum").val(data.score);
$("#inventory").val(data.generalTotal); $("#inventory").val(data.generalTotal);
showId = data.generalTotal; showId = data.targetId;
// $("#goodsDetail").val(data.details); // $("#goodsDetail").val(data.details);
$('#summernote').summernote('code', data.details) $('#summernote').summernote('code', data.details)
$('.summernote').eq(1).summernote('code', data.notice) $('.summernote').eq(1).summernote('code', data.notice)
...@@ -367,6 +377,15 @@ ...@@ -367,6 +377,15 @@
$("#startTime").val(data.startTime); $("#startTime").val(data.startTime);
$("input[name='sex'][value='2']").attr("checked", "checked").siblings().removeAttr('checked'); $("input[name='sex'][value='2']").attr("checked", "checked").siblings().removeAttr('checked');
} }
if (data.simpleType == 0) {
$("#labelSelectType").find("option[value='0']").attr("selected",true);
} else {
var simpleTypeData = data.simpleType.toString();
$("#labelSelectType").find("option[value=" + simpleTypeData + "]").attr("selected",true);
}
if (!showId) {
$('.labelSelect').hide();
}
} }
}) })
} }
...@@ -413,7 +432,7 @@ ...@@ -413,7 +432,7 @@
if (res.rows.length>0) { if (res.rows.length>0) {
searchData = res.rows; searchData = res.rows;
searchData.forEach((item,index)=>{ searchData.forEach((item,index)=>{
str+= `<li class="selectData" onclick="selectOne('${item.couponId}', 'couponId')">${item.title}</li>` str+= `<li class="selectData" onclick="selectOne('${item.couponId}', 'couponId')">${item.busiName}</li>`
}) })
$('#dataList').html(str); $('#dataList').html(str);
} else { } else {
...@@ -424,7 +443,7 @@ ...@@ -424,7 +443,7 @@
function selectOne(id, name) { function selectOne(id, name) {
searchData.some( item => { searchData.some( item => {
if (item[name] == id) { if (item[name] == id) {
return $("#searchIpt").val(item.title); return $("#searchIpt").val(item.busiName);
} }
} ) } )
// $("#searchIpt").val(name); // $("#searchIpt").val(name);
...@@ -527,6 +546,7 @@ ...@@ -527,6 +546,7 @@
endTime = $("#endTime").val(); endTime = $("#endTime").val();
} }
} }
let data = { let data = {
details: $('#summernote').summernote('code'), // 商品详情 details: $('#summernote').summernote('code'), // 商品详情
endTime: $.common.dateFormat(endTime, 'yyyy-MM-dd HH:mm:ss'), // 下架时间(status = 2 必传) endTime: $.common.dateFormat(endTime, 'yyyy-MM-dd HH:mm:ss'), // 下架时间(status = 2 必传)
...@@ -539,8 +559,10 @@ ...@@ -539,8 +559,10 @@
startTime: $.common.dateFormat(startTime, 'yyyy-MM-dd HH:mm:ss'), // 上架时间status = 2 必传) startTime: $.common.dateFormat(startTime, 'yyyy-MM-dd HH:mm:ss'), // 上架时间status = 2 必传)
status: Number(shelves), // 上架状态[1-不限|2-定时|7-下线] status: Number(shelves), // 上架状态[1-不限|2-定时|7-下线]
targetId: showId, // 目标物品id targetId: showId, // 目标物品id
targetTitle: $('#searchIpt').val() || $("#searchIptMall").val() // 目标物品标题 targetTitle: $('#searchIpt').val() || $("#searchIptMall").val(), // 目标物品标题
simpleType: $('#labelSelectType option:selected').val()
} }
console.log(showId)
let type = 'post'; let type = 'post';
if (!itemId) { if (!itemId) {
delete data.itemId delete data.itemId
...@@ -557,7 +579,8 @@ ...@@ -557,7 +579,8 @@
} else { } else {
data['type'] = 11 data['type'] = 11
} }
promiseMethods(ctx+'stone/item',type,data).then(res=>{ promiseMethods(ctx+'stone/item', type, data).then(res => {
console.log(res);
layer.msg('' + res); layer.msg('' + res);
if (res.code != undefined && res.code != web_status.SUCCESS) { if (res.code != undefined && res.code != web_status.SUCCESS) {
$.modal.alertWarning(res.msg); $.modal.alertWarning(res.msg);
......
...@@ -158,6 +158,8 @@ ...@@ -158,6 +158,8 @@
<th:block th:include="include :: footer"/> <th:block th:include="include :: footer"/>
<script th:src="@{/js/jquery.tmpl.js}"></script> <script th:src="@{/js/jquery.tmpl.js}"></script>
<!--远程搜索下拉框:积分抽奖配置使用-->
<script th:src="@{/js/remote-search-coupon-list.js}"></script>
<th:block th:include="include :: bootstrap-fileinput-js" /> <th:block th:include="include :: bootstrap-fileinput-js" />
<script type="text/javascript"> <script type="text/javascript">
......
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
<option value="">全部</option> <option value="">全部</option>
<option value="1">未发放</option> <option value="1">未发放</option>
<option value="2">已发放</option> <option value="2">已发放</option>
<option value="3">未领取</option>
</select> </select>
</li> </li>
<li> <li>
...@@ -78,7 +79,12 @@ ...@@ -78,7 +79,12 @@
field: 'prizeType', field: 'prizeType',
title: '奖品类型', title: '奖品类型',
formatter: function (value, row) { formatter: function (value, row) {
return $.table.selectDictLabel(prizeType, value); let dictLabel = $.table.selectDictLabel(prizeType, value);
if (row.relationId) {
return dictLabel + "(" + row.relationId + ")";
} else {
return dictLabel;
}
} }
}, },
{ {
...@@ -89,6 +95,10 @@ ...@@ -89,6 +95,10 @@
field: 'nickname', field: 'nickname',
title: '用户昵称' title: '用户昵称'
}, },
{
field: 'mobile',
title: '用户账号'
},
{ {
field: 'receivingName', field: 'receivingName',
title: '收货人姓名' title: '收货人姓名'
...@@ -112,16 +122,21 @@ ...@@ -112,16 +122,21 @@
field: 'receivingStatus', field: 'receivingStatus',
title: '发放状态', title: '发放状态',
formatter: function (value, row) { formatter: function (value, row) {
var receivingStatus = row.receivingStatus; var receivingStatusName = "";
switch (receivingStatus) { var prizeType = row.prizeType;
var relationId = row.relationId;
switch (value) {
case 1: case 1:
receivingStatus = "未发放"; receivingStatusName = "未发放";
break; break;
case 2: case 2:
receivingStatus = "已发放"; receivingStatusName = "已发放";
break;
case 3:
receivingStatusName = "未领取";
break; break;
} }
return receivingStatus; return receivingStatusName;
} }
}, },
{ {
......
<!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-activeQr-add">
<div class="form-group">
<label class="col-sm-3 control-label is-required">活动名称:</label>
<div class="col-sm-8">
<input name="activeName" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">type类型:</label>
<div class="col-sm-8">
<input name="type" class="form-control" type="number" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">预警个数:</label>
<div class="col-sm-8">
<input name="alarmNum" class="form-control" type="number" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">最大访问次数:</label>
<div class="col-sm-8">
<input name="maxCount" class="form-control" type="number" value="8000" required readonly>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer"/>
<script th:inline="javascript">
var prefix = ctx + "sweet/active";
$("#form-roadShow-add").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/add", $('#form-activeQr-add').serialize());
}
}
</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-qrcode-add">
<div class="form-group" style="display: none">
<label class="col-sm-3 control-label is-required">mid:</label>
<div class="col-sm-8">
<input name="mid" class="form-control" type="text" required readonly>
</div>
</div>
<div class="form-group" style="display: none">
<label class="col-sm-3 control-label is-required">type:</label>
<div class="col-sm-8">
<input name="type" th:value="${type}" class="form-control" type="text" required readonly>
</div>
</div>
<div class="form-group">
<div class="col-sm-8">
<input id="fileinput10" type="file">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">图片地址:</label>
<div class="col-sm-8">
<input id="iptUrl" name="url" class="form-control" type="text" required readonly>
</div>
</div>
</form>
<div class="cover_pop" style="display: none">
<div class="pop_inner">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<div class="file-loading">
<input id="fileinput-demo-1" type="file" name="file" data-browse-on-zone-click="true"
data-msg-placeholder="Select {files} for upload...">
<input hidden id="coverImg" name="coverImg">
</div>
</div>
<div class="pop_btns">
<div class="confirm_btn" onclick="popBtn(1)">确认</div>
<div class="confirm_btn confirm_cancel" onclick="popBtn(0)">取消</div>
</div>
</div>
</div>
</div>
<th:block th:include="include :: footer"/>
<th:block th:include="include :: bootstrap-fileinput-js"/>
<script th:inline="javascript">
var prefix = ctx + "sweet/active";
var platformUrl = [[${platformUrl}]];
$("#form-roadShow-edit").validate({
focusCleanup: true
});
$("#fileinput10").change((e) => {
if (!e.target.files[0]) {
return
}
var formData = new FormData();
formData.append("file", e.target.files[0]);
$.ajax({
url: "http://devplatform.zhengzai.tv" + "/platform/basicServices/alOss/upload",//路径是你控制器中上传图片的方法,下面controller里面我会写到
data: formData,
cache: false,
contentType: false,
processData: false,
type: 'POST',
success: function (res) {
console.log(res, 'res')
let imgPath = 'https://img.zhengzai.tv/' + res.data.ossPath;
$("#iptUrl").val(imgPath);
}
});
})
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/addQrCode", $('#form-qrcode-add').serialize());
}
}
</script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('二维码列表')"/>
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<div class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-success" onclick="$.operate.add()">
<i class="fa fa-plus"></i> 添加
</a>
</div>
<div class="col-sm-12 select-table table-bordered">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer"/>
<script th:inline="javascript">
var prefix = ctx + "sweet/active";
$(function () {
var options = {
url: prefix + "/qrCode/" + '[[${type}]]'.replaceAll("\"", ""),
createUrl: prefix + "/addQrCode/" + '[[${type}]]'.replaceAll("\"", ""),
updateUrl: prefix + "/editQrCode/{id}",
modalName: "二维码",
method: "get",
columns: [{
checkbox: true
},
{
field: 'mid',
title: '序号'
},
{
field: 'url',
title: '二维码内容'
},
{
field: 'showNum',
title: '展示次数'
},
// {
// field: 'readNum',
// title: '访问次数'
// }
// , {
// title: '操作',
// align: 'center',
// formatter: function (value, row, index) {
// var actions = [];
// actions.push('<a class="btn btn-success btn-xs" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.mid + '\')"><i class="fa fa-edit"></i>编辑</a> ');
// return actions.join('');
// }
// }
]
};
$.table.init(options);
});
</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-activeQr-edit" th:object="${SweetActiveType}">
<div class="form-group" style="display: none">
<label class="col-sm-3 control-label is-required">mid:</label>
<div class="col-sm-8">
<input name="mid" th:value="*{mid}" class="form-control" type="text" required readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">活动名称:</label>
<div class="col-sm-8">
<input name="activeName" th:value="*{activeName}" class="form-control" type="text" required readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">type类型:</label>
<div class="col-sm-8">
<input name="type" th:value="*{type}" class="form-control" type="number" required readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">预警个数:</label>
<div class="col-sm-8">
<input name="alarmNum" th:value="*{alarmNum}" class="form-control" type="number" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">最大访问次数:</label>
<div class="col-sm-8">
<input name="maxCount" th:value="*{maxCount}" class="form-control" type="number" required readonly>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer"/>
<script th:inline="javascript">
var prefix = ctx + "sweet/active";
$("#form-roadShow-edit").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/edit", $('#form-activeQr-edit').serialize());
}
}
</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-qrcode-edit" th:object="${SweetQrCode}">
<div class="form-group" style="display: none">
<label class="col-sm-3 control-label is-required">mid:</label>
<div class="col-sm-8">
<input name="mid" class="form-control" th:value="*{mid}" type="text" required readonly>
</div>
</div>
<div class="form-group" style="display: none">
<label class="col-sm-3 control-label is-required">qrCodeId:</label>
<div class="col-sm-8">
<input name="qrCodeId" class="form-control" th:value="*{qrCodeId}" type="text" required readonly>
</div>
</div>
<div class="form-group" style="display: none">
<label class="col-sm-3 control-label is-required">type:</label>
<div class="col-sm-8">
<input name="type" th:value="*{type}" class="form-control" type="text" required readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">二维码地址:</label>
<div class="col-sm-8">
<input name="url" th:value="*{url}" class="form-control" type="text" required readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">展示次数:</label>
<div class="col-sm-8">
<input name="url" th:value="*{showNum}" class="form-control" type="text" required readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">访问次数:</label>
<div class="col-sm-8">
<input name="readNum" th:value="*{readNum}" class="form-control" type="number" required>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer"/>
<script th:inline="javascript">
var prefix = ctx + "sweet/active";
$("#form-roadShow-edit").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/editQrCode", $('#form-qrcode-edit').serialize());
}
}
</script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('二维码管理列表')"/>
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<!-- <div class="col-sm-12 search-collapse">-->
<!-- <form id="formId">-->
<!-- <div class="select-list">-->
<!-- <ul>-->
<!-- <li>-->
<!-- <label>巡演名称:</label>-->
<!-- <input type="text" name="title"/>-->
<!-- </li>-->
<!-- <li>-->
<!-- <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i-->
<!-- class="fa fa-search"></i>&nbsp;搜索</a>-->
<!-- <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i-->
<!-- class="fa fa-refresh"></i>&nbsp;重置</a>-->
<!-- </li>-->
<!-- </ul>-->
<!-- </div>-->
<!-- </form>-->
<!-- </div>-->
<div class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-success" onclick="$.operate.add()">
<i class="fa fa-plus"></i> 添加
</a>
</div>
<div class="col-sm-12 select-table table-bordered">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer"/>
<script th:inline="javascript">
var updateFlag = [[${@permission.hasPermi('kylin:performances:roadShow:details')}]];
var detailsFlag = [[${@permission.hasPermi('kylin:performances:roadShow:addPerformance')}]];
var prefix = ctx + "sweet/active";
$(function () {
var options = {
url: prefix + "/list",
createUrl: prefix + "/add",
updateUrl: prefix + "/details/{id}",
detailUrl: prefix + "/detailsList/{id}",
modalName: "活动类型",
columns: [{
checkbox: true
},
{
field: 'mid',
title: '序号'
},
{
field: 'activeName',
title: '活动名称'
},
{
field: 'type',
title: '类型'
},
{
field: 'alarmNum',
title: '预警个数'
},
{
field: 'maxCount',
title: '最大访问次数'
},
{
field: 'createdAt',
title: '创建时间'
},
{
title: '操作',
align: 'center',
formatter: function (value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="$.operate.detail(\'' + row.type + '\')"><i class="fa fa-edit"></i>二维码列表</a> ');
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="$.operate.edit(\'' + row.mid + '\')"><i class="fa fa-edit"></i>编辑</a> ');
return actions.join('');
}
}]
};
$.table.init(options);
});
</script>
</body>
</html>
\ No newline at end of file
...@@ -17,7 +17,7 @@ public interface IItemService { ...@@ -17,7 +17,7 @@ public interface IItemService {
* @param type 类型[1-券] * @param type 类型[1-券]
* @return * @return
*/ */
PageInfo<StoneScoreItems> itemList(String title, Integer status, Integer type); List<StoneScoreItems> itemList(String title, Integer status, Integer type, Integer simpleType);
/** /**
* 修改 积分物品 状态 * 修改 积分物品 状态
......
...@@ -42,10 +42,8 @@ public class ItemServiceImpl implements IItemService { ...@@ -42,10 +42,8 @@ public class ItemServiceImpl implements IItemService {
* @param type 类型[1-券] * @param type 类型[1-券]
* @return * @return
*/ */
public PageInfo<StoneScoreItems> itemList(String title, Integer status, Integer type) { public List<StoneScoreItems> itemList(String title, Integer status, Integer type, Integer simpleType) {
PageInfo<StoneScoreItems> pageInfo;
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
List<StoneScoreItems> newList = new ArrayList();
LambdaQueryWrapper<StoneScoreItems> queryWrapper = Wrappers.lambdaQuery(StoneScoreItems.class).ne(StoneScoreItems::getStatus, -1); LambdaQueryWrapper<StoneScoreItems> queryWrapper = Wrappers.lambdaQuery(StoneScoreItems.class).ne(StoneScoreItems::getStatus, -1);
if (!(title == null || title.equals(""))) { if (!(title == null || title.equals(""))) {
queryWrapper.like(StoneScoreItems::getTargetTitle, title); queryWrapper.like(StoneScoreItems::getTargetTitle, title);
...@@ -65,22 +63,12 @@ public class ItemServiceImpl implements IItemService { ...@@ -65,22 +63,12 @@ public class ItemServiceImpl implements IItemService {
if (type != -1) { if (type != -1) {
queryWrapper.eq(StoneScoreItems::getType, type); queryWrapper.eq(StoneScoreItems::getType, type);
} }
} if (simpleType != 0) {
List<StoneScoreItems> voList = stoneScoreItemsMapper.selectList(queryWrapper); queryWrapper.eq(StoneScoreItems::getSimpleType, simpleType);
for (StoneScoreItems item : voList) {
if (item.getStatus() == 2) {
if (now.isAfter(item.getStartTime())) {//未上架
item.setStatus(2);
} else if (now.isBefore(item.getEndTime())) {//已下架
item.setStatus(7);
} else {
item.setStatus(1);//上架中
} }
} }
newList.add(item); List<StoneScoreItems> voList = stoneScoreItemsMapper.selectList(queryWrapper);
} return voList;
pageInfo = new PageInfo(newList);
return pageInfo;
} }
@Override @Override
...@@ -111,6 +99,7 @@ public class ItemServiceImpl implements IItemService { ...@@ -111,6 +99,7 @@ public class ItemServiceImpl implements IItemService {
if (result <= 0) { if (result <= 0) {
return "修改失败"; return "修改失败";
} }
redisUtils.delList(redisData.getSimpleType().toString());
return "修改成功"; return "修改成功";
} }
...@@ -155,6 +144,7 @@ public class ItemServiceImpl implements IItemService { ...@@ -155,6 +144,7 @@ public class ItemServiceImpl implements IItemService {
if (count <= 0) { if (count <= 0) {
return "创建失败"; return "创建失败";
} }
redisUtils.delList(param.getSimpleType().toString());
return "创建成功"; return "创建成功";
} }
...@@ -188,6 +178,7 @@ public class ItemServiceImpl implements IItemService { ...@@ -188,6 +178,7 @@ public class ItemServiceImpl implements IItemService {
if (count <= 0) { if (count <= 0) {
return "修改失败"; return "修改失败";
} }
redisUtils.delList(param.getSimpleType().toString());
return "修改成功"; return "修改成功";
} }
...@@ -202,6 +193,7 @@ public class ItemServiceImpl implements IItemService { ...@@ -202,6 +193,7 @@ public class ItemServiceImpl implements IItemService {
data.setTargetId(param.getTargetId()); data.setTargetId(param.getTargetId());
data.setTargetTitle(param.getTargetTitle()); data.setTargetTitle(param.getTargetTitle());
data.setType(param.getType()); data.setType(param.getType());
data.setSimpleType(param.getSimpleType());
data.setImg(param.getImg()); data.setImg(param.getImg());
data.setScore(param.getScore()); data.setScore(param.getScore());
data.setPrice(BigDecimal.ZERO); data.setPrice(BigDecimal.ZERO);
......
...@@ -102,4 +102,16 @@ public class StoneRedisUtils { ...@@ -102,4 +102,16 @@ public class StoneRedisUtils {
} }
} }
/**
* 删除 积分商品列表缓存
*
* @param simpleType
*/
public void delList(String simpleType) {
String redisKey = StoneConstant.ITEM_LIST;
String redisSimpleKey = StoneConstant.ITEM_LIST_SIMPLE.concat(simpleType);
redisDataSourceUtil.getRedisStoneUtil().del(redisKey);
redisDataSourceUtil.getRedisStoneUtil().del(redisSimpleKey);
}
} }
...@@ -58,13 +58,16 @@ public class SweetActivityDrawExcelListDao implements Serializable, Cloneable { ...@@ -58,13 +58,16 @@ public class SweetActivityDrawExcelListDao implements Serializable, Cloneable {
this.setPrizeName(DictUtils.getDictLabel("zhengzai_sweet_draw_prize_type", String.valueOf(source.getPrizeType()))); this.setPrizeName(DictUtils.getDictLabel("zhengzai_sweet_draw_prize_type", String.valueOf(source.getPrizeType())));
this.setPrizeTypeNum(source.getPrizeTypeNum()); this.setPrizeTypeNum(source.getPrizeTypeNum());
this.setNickname(source.getNickname()); this.setNickname(source.getNickname());
this.setMobile(source.getMobile());
this.setReceivingName(source.getReceivingName()); this.setReceivingName(source.getReceivingName());
this.setReceivingPhone(source.getReceivingPhone()); this.setReceivingPhone(source.getReceivingPhone());
this.setReceivingAddressAll(source.getReceivingAddressAll()); this.setReceivingAddressAll(source.getReceivingAddressAll());
if (source.getReceivingStatus() == 2) { if (source.getReceivingStatus() == 2) {
this.setReceivingStatusName("已发放"); this.setReceivingStatusName("已发放");
} else { } else if (source.getReceivingStatus() == 1) {
this.setReceivingStatusName("未发放"); this.setReceivingStatusName("未发放");
} else {
this.setReceivingStatusName("未领取");
} }
this.setCreatedAt(source.getCreatedAt()); this.setCreatedAt(source.getCreatedAt());
return this; return this;
......
package com.liquidnet.client.admin.zhengzai.sweet.service;
import com.liquidnet.service.kylin.dto.param.CreateActiveTypeParam;
import com.liquidnet.service.sweet.entity.SweetActiveType;
import java.util.List;
/**
* <p>
* 活动type表 服务类
* </p>
*
* @author hujiachen
* @since 2021-12-23
*/
public interface ISweetAdminActiveTypeService {
List<SweetActiveType> getList(int page, int size);
Boolean changeInfo(CreateActiveTypeParam createActiveTypeParam);
Boolean addInfo(CreateActiveTypeParam createActiveTypeParam);
SweetActiveType details(String mid);
}
package com.liquidnet.client.admin.zhengzai.sweet.service;
import com.liquidnet.service.kylin.dto.param.CreateActiveQrCodeParam;
import com.liquidnet.service.kylin.dto.param.CreateActiveTypeParam;
import com.liquidnet.service.sweet.entity.SweetActiveType;
import com.liquidnet.service.sweet.entity.SweetQrCode;
import java.util.List;
/**
* <p>
* 活动type表 服务类
* </p>
*
* @author hujiachen
* @since 2021-12-23
*/
public interface ISweetAdminQrCodeService {
List<SweetQrCode> getList(String type);
Boolean addQrCode(CreateActiveQrCodeParam createActiveTypeParam);
SweetQrCode details(String mid);
Boolean changeInfo(CreateActiveQrCodeParam createActiveTypeParam);
}
package com.liquidnet.client.admin.zhengzai.sweet.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.liquidnet.client.admin.zhengzai.sweet.service.ISweetAdminActiveTypeService;
import com.liquidnet.client.admin.zhengzai.sweet.utils.SweetRedisAdminUtils;
import com.liquidnet.service.kylin.dto.param.CreateActiveTypeParam;
import com.liquidnet.service.sweet.entity.SweetActiveType;
import com.liquidnet.service.sweet.mapper.SweetActiveTypeMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@Slf4j
public class SweetAdminActiveTypeServiceImpl implements ISweetAdminActiveTypeService {
@Autowired
SweetActiveTypeMapper sweetActiveTypeMapper;
@Autowired
SweetRedisAdminUtils sweetRedisAdminUtils;
@Override
public List<SweetActiveType> getList(int page, int size) {
return sweetActiveTypeMapper.selectList(Wrappers.lambdaQuery(SweetActiveType.class));
}
@Override
public Boolean changeInfo(CreateActiveTypeParam createActiveTypeParam) {
SweetActiveType bean = SweetActiveType.getNew();
bean.setActiveName(createActiveTypeParam.getActiveName());
bean.setAlarmNum(createActiveTypeParam.getAlarmNum());
bean.setMaxCount(createActiveTypeParam.getMaxCount());
bean.setType(createActiveTypeParam.getType());
return sweetActiveTypeMapper.update(bean, Wrappers.lambdaUpdate(SweetActiveType.class).eq(SweetActiveType::getMid, createActiveTypeParam.getMid())) > 0;
}
@Override
public Boolean addInfo(CreateActiveTypeParam createActiveTypeParam) {
SweetActiveType bean = SweetActiveType.getNew();
bean.setActiveName(createActiveTypeParam.getActiveName());
bean.setAlarmNum(createActiveTypeParam.getAlarmNum());
bean.setMaxCount(createActiveTypeParam.getMaxCount());
bean.setType(createActiveTypeParam.getType());
sweetRedisAdminUtils.setQrCodMaxNum(createActiveTypeParam.getType(), createActiveTypeParam.getMaxCount());
return sweetActiveTypeMapper.insert(bean) == 1;
}
@Override
public SweetActiveType details(String mid) {
return sweetActiveTypeMapper.selectOne(Wrappers.lambdaQuery(SweetActiveType.class).eq(SweetActiveType::getMid, mid));
}
}
package com.liquidnet.client.admin.zhengzai.sweet.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.liquidnet.client.admin.zhengzai.sweet.service.ISweetAdminActiveTypeService;
import com.liquidnet.client.admin.zhengzai.sweet.service.ISweetAdminQrCodeService;
import com.liquidnet.client.admin.zhengzai.sweet.utils.SweetRedisAdminUtils;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.kylin.dto.param.CreateActiveQrCodeParam;
import com.liquidnet.service.kylin.dto.param.CreateActiveTypeParam;
import com.liquidnet.service.sweet.entity.SweetActiveType;
import com.liquidnet.service.sweet.entity.SweetQrCode;
import com.liquidnet.service.sweet.mapper.SweetActiveTypeMapper;
import com.liquidnet.service.sweet.mapper.SweetQrCodeMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@Slf4j
public class SweetAdminQrCodeServiceImpl implements ISweetAdminQrCodeService {
@Autowired
SweetQrCodeMapper sweetQrCodeMapper;
@Autowired
SweetRedisAdminUtils sweetRedisAdminUtils;
@Override
public List<SweetQrCode> getList(String type) {
List<SweetQrCode> list = sweetQrCodeMapper.selectList(Wrappers.lambdaQuery(SweetQrCode.class).eq(SweetQrCode::getType, type));
for (SweetQrCode item : list) {
item.setShowNum(sweetRedisAdminUtils.getQrCodeShowNum(Integer.parseInt(type), item.getQrCodeId()));
}
return list;
}
@Override
public Boolean addQrCode(CreateActiveQrCodeParam createActiveTypeParam) {
try {
SweetQrCode bean = SweetQrCode.getNew();
// int count = sweetQrCodeMapper.selectCount(Wrappers.lambdaQuery(SweetQrCode.class).eq(SweetQrCode::getType, createActiveTypeParam.getType()));
// for (int i = 0; i < createActiveTypeParam.getCount(); i++) {
// int swat = count + i + 1;
String qrCodeId = IDGenerator.nextMilliId();
bean.setQrCodeId(qrCodeId);
bean.setUrl(createActiveTypeParam.getUrl());
bean.setReadNum(0);
bean.setShowNum(0);
bean.setType(createActiveTypeParam.getType());
sweetQrCodeMapper.insert(bean);
//初始化 展示次数 读取次数
sweetRedisAdminUtils.initQrCodeShowNum(createActiveTypeParam.getType(), qrCodeId);
sweetRedisAdminUtils.initQrCodeReadNum(createActiveTypeParam.getType(), qrCodeId);
// }
//纪录实体类List
sweetRedisAdminUtils.setQrCodeDetails(createActiveTypeParam.getType(), sweetQrCodeMapper.selectList(Wrappers.lambdaQuery(SweetQrCode.class).eq(SweetQrCode::getType, createActiveTypeParam.getType())));
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
@Override
public SweetQrCode details(String mid) {
return sweetQrCodeMapper.selectOne(Wrappers.lambdaQuery(SweetQrCode.class).eq(SweetQrCode::getMid, mid));
}
@Override
public Boolean changeInfo(CreateActiveQrCodeParam createActiveTypeParam) {
SweetQrCode bean = SweetQrCode.getNew();
bean.setReadNum(createActiveTypeParam.getReadNum());
sweetRedisAdminUtils.setQrCodeReadNum(createActiveTypeParam.getType(), createActiveTypeParam.getQrCodeId(), createActiveTypeParam.getReadNum());
return sweetQrCodeMapper.update(bean, Wrappers.lambdaUpdate(SweetQrCode.class).eq(SweetQrCode::getMid, createActiveTypeParam.getMid())) > 0;
}
}
...@@ -103,7 +103,7 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg ...@@ -103,7 +103,7 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
); );
// 更新缓存 // 更新缓存
sweetRedisAdminUtils.delIntegralActivityDrawList(sweetIntegralActivityDrawNew.getIntegralActivityId(), sweetIntegralActivityDrawNew.getUserId()); sweetRedisAdminUtils.delIntegralActivityDrawList(sweetIntegralActivityDrawNew.getUserId(), sweetIntegralActivityDrawNew.getIntegralActivityId());
sweetRedisAdminUtils.setIntegralActivityDrawInfo(drawId); sweetRedisAdminUtils.setIntegralActivityDrawInfo(drawId);
......
...@@ -4,6 +4,7 @@ import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil; ...@@ -4,6 +4,7 @@ import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil;
import com.liquidnet.service.sweet.constant.SweetConstant; import com.liquidnet.service.sweet.constant.SweetConstant;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo; import com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityVo; import com.liquidnet.service.sweet.dto.vo.IntegralActivityVo;
import com.liquidnet.service.sweet.entity.SweetQrCode;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -36,6 +37,7 @@ public class SweetRedisAdminUtils { ...@@ -36,6 +37,7 @@ public class SweetRedisAdminUtils {
.concat(prizeId); .concat(prizeId);
redisDataSourceUtil.getRedisSweetUtil().incr(redisKey, num); redisDataSourceUtil.getRedisSweetUtil().incr(redisKey, num);
} }
public void decrIntegralActivityPrizeNum(String integralActivityId, String prizeId, Integer num) { public void decrIntegralActivityPrizeNum(String integralActivityId, String prizeId, Integer num) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM
.concat(integralActivityId) .concat(integralActivityId)
...@@ -43,6 +45,7 @@ public class SweetRedisAdminUtils { ...@@ -43,6 +45,7 @@ public class SweetRedisAdminUtils {
.concat(prizeId); .concat(prizeId);
redisDataSourceUtil.getRedisSweetUtil().decr(redisKey, num); redisDataSourceUtil.getRedisSweetUtil().decr(redisKey, num);
} }
public void delIntegralActivityPrizeNum(String integralActivityId, String prizeId) { public void delIntegralActivityPrizeNum(String integralActivityId, String prizeId) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM
.concat(integralActivityId) .concat(integralActivityId)
...@@ -111,4 +114,40 @@ public class SweetRedisAdminUtils { ...@@ -111,4 +114,40 @@ public class SweetRedisAdminUtils {
return (int) obj; return (int) obj;
} }
} }
//
public void initQrCodeReadNum(int type, String qrCodeId) {
String redisKey = SweetConstant.REDIS_KEY_QRCODE_READ_NUM.concat(type + "").concat(":qrCodeId:").concat(qrCodeId);
redisDataSourceUtil.getRedisSweetUtil().set(redisKey, 0);
}
public void setQrCodeReadNum(int type, String qrCodeId, int num) {
String redisKey = SweetConstant.REDIS_KEY_QRCODE_READ_NUM.concat(type + "").concat(":qrCodeId:").concat(qrCodeId);
redisDataSourceUtil.getRedisSweetUtil().set(redisKey, num);
}
public int getQrCodeShowNum(int type, String qrCodeId) {
String redisKey = SweetConstant.REDIS_KEY_QRCODE_SHOW_NUM.concat(type + "").concat(":qrCodeId:").concat(qrCodeId);
Object obj = redisDataSourceUtil.getRedisSweetUtil().get(redisKey);
if (obj == null) {
return 0;
} else {
return (int) obj;
}
}
public void initQrCodeShowNum(int type, String qrCodeId) {
String redisKey = SweetConstant.REDIS_KEY_QRCODE_SHOW_NUM.concat(type + "").concat(":qrCodeId:").concat(qrCodeId);
redisDataSourceUtil.getRedisSweetUtil().set(redisKey, 0);
}
public void setQrCodMaxNum(int type, int num) {
String redisKey = SweetConstant.REDIS_KEY_QRCODE_MAX_NUM.concat(type + "");
redisDataSourceUtil.getRedisSweetUtil().set(redisKey, num);
}
public void setQrCodeDetails(int type, List<SweetQrCode> data) {
String redisKey = SweetConstant.REDIS_KEY_QRCODE_LIST.concat(type + "");
redisDataSourceUtil.getRedisSweetUtil().set(redisKey, data);
}
} }
...@@ -79,7 +79,7 @@ public class LnsRegex { ...@@ -79,7 +79,7 @@ public class LnsRegex {
/** /**
* 支持的支付方式 * 支持的支付方式
*/ */
public static final String TRIPLE_PF_FOR_PAY = "\\b(alipay|wepay)\\b"; public static final String TRIPLE_PF_FOR_PAY = "\\b(alipay|wepay|douyinpay|unionpay)\\b";
/* ======================================================================= | */ /* ======================================================================= | */
......
...@@ -14,6 +14,7 @@ public class CollectionUtil { ...@@ -14,6 +14,7 @@ public class CollectionUtil {
private static final LinkedList<Object[]> OBJECTS_LINKED_LIST = new LinkedList<>(); private static final LinkedList<Object[]> OBJECTS_LINKED_LIST = new LinkedList<>();
private static final LinkedMultiValueMap<String, String> STRING_STRING_LINKED_MULTI_VALUE_MAP = new LinkedMultiValueMap<>(); private static final LinkedMultiValueMap<String, String> STRING_STRING_LINKED_MULTI_VALUE_MAP = new LinkedMultiValueMap<>();
private static final ArrayList<String> STRING_ARRAY_LIST = new ArrayList<>(); private static final ArrayList<String> STRING_ARRAY_LIST = new ArrayList<>();
private static final ArrayList<Integer> INTEGER_ARRAY_LIST = new ArrayList<>();
private static final ArrayList<Object> OBJECT_ARRAY_LIST = new ArrayList<>(); private static final ArrayList<Object> OBJECT_ARRAY_LIST = new ArrayList<>();
private static final ArrayList<BigDecimal> BIGDECIMAL_ARRAY_LIST = new ArrayList<>(); private static final ArrayList<BigDecimal> BIGDECIMAL_ARRAY_LIST = new ArrayList<>();
...@@ -50,6 +51,11 @@ public class CollectionUtil { ...@@ -50,6 +51,11 @@ public class CollectionUtil {
return (ArrayList<String>) STRING_ARRAY_LIST.clone(); return (ArrayList<String>) STRING_ARRAY_LIST.clone();
} }
public static ArrayList<Integer> arrayListInteger() {
return (ArrayList<Integer>) INTEGER_ARRAY_LIST.clone();
}
public static ArrayList<Object> arrayListObject() { public static ArrayList<Object> arrayListObject() {
return (ArrayList<Object>) OBJECT_ARRAY_LIST.clone(); return (ArrayList<Object>) OBJECT_ARRAY_LIST.clone();
} }
......
...@@ -158,6 +158,9 @@ liquidnet: ...@@ -158,6 +158,9 @@ liquidnet:
mdsk: mdsk:
appid: wxc278ddf30f515188 appid: wxc278ddf30f515188
secret: 21c0daa5d7d323f86c70c29db3c0613b secret: 21c0daa5d7d323f86c70c29db3c0613b
airship:
appid: wxefc896f987d72d32
secret: 24c80a734c1fdb316a31a5be1f3606d5
umeng: umeng:
ios: ios:
appkey: 54fe819bfd98c546b50004f0 appkey: 54fe819bfd98c546b50004f0
......
...@@ -161,6 +161,9 @@ liquidnet: ...@@ -161,6 +161,9 @@ liquidnet:
mdsk: mdsk:
appid: wxc278ddf30f515188 appid: wxc278ddf30f515188
secret: 21c0daa5d7d323f86c70c29db3c0613b secret: 21c0daa5d7d323f86c70c29db3c0613b
airship:
appid: wxefc896f987d72d32
secret: 24c80a734c1fdb316a31a5be1f3606d5
umeng: umeng:
ios: ios:
appkey: 54fe819bfd98c546b50004f0 appkey: 54fe819bfd98c546b50004f0
......
...@@ -34,4 +34,11 @@ liquidnet: ...@@ -34,4 +34,11 @@ liquidnet:
merchantId: 1551961491 merchantId: 1551961491
appId: wx3498304dda39c5a1 appId: wx3498304dda39c5a1
partnerKey: itIuO65O9yKmemOu3S8g1S4orqvCGwXK partnerKey: itIuO65O9yKmemOu3S8g1S4orqvCGwXK
unionpay:
merchantId: 821690048160PQY
gateway-url: https://gateway.95516.com
refund-url: https://gateway.95516.com/
certs-path: /data/certs/dragon/unionpay/test
certs-prefix: acp_test
pfx-pwd: '520360'
...@@ -34,3 +34,10 @@ liquidnet: ...@@ -34,3 +34,10 @@ liquidnet:
merchantId: 1551961491 merchantId: 1551961491
appId: wx3498304dda39c5a1 appId: wx3498304dda39c5a1
partnerKey: itIuO65O9yKmemOu3S8g1S4orqvCGwXK partnerKey: itIuO65O9yKmemOu3S8g1S4orqvCGwXK
unionpay:
merchantId: 821690048160PQY
gateway-url: https://gateway.95516.com
refund-url: https://gateway.95516.com
certs-path: /data/certs/dragon/unionpay/test
certs-prefix: acp_test
pfx-pwd: '520360'
\ No newline at end of file
...@@ -98,3 +98,48 @@ global-auth: ...@@ -98,3 +98,48 @@ global-auth:
# ----------------------------------------------------------- # -----------------------------------------------------------
# ----------------------------------------------------------- # -----------------------------------------------------------
# ---------------------以下为银联支付--------------------------------------
##交易请求地址
acpsdk:
## 消费接口
frontTransUrl: ${liquidnet.dragon.unionpay.gateway-url}/gateway/api/frontTransReq.do
## app 消费接口
appTransUrl: ${liquidnet.dragon.unionpay.gateway-url}/gateway/api/appTransReq.do
## 交易状态查询
backTransUrl: ${liquidnet.dragon.unionpay.gateway-url}/gateway/api/backTransReq.do
## 交易状态查询:app用的路径
singleQueryUrl: ${liquidnet.dragon.unionpay.gateway-url}/gateway/api/queryTrans.do
## 退款路径 (https://gateway.95516.com/gateway/api/backTransReq.do)
refundUrl: ${liquidnet.dragon.unionpay.refund-url}/gateway/api/backTransReq.do
########################################################################
########################################################################
# 报文版本号,固定5.1.0,请勿改动
version: 5.1.0
# 签名方式,证书方式固定01,请勿改动
signMethod: '01'
# 是否验证验签证书的CN,测试环境请设置false,生产环境请设置true。非false的值默认都当true处理。
ifValidateCNName: false
# 是否验证https证书,测试环境请设置false,生产环境建议优先尝试true,不行再false。非true的值默认都当false处理。
ifValidateRemoteCert: false
#后台通知地址,填写接收银联后台通知的地址,必须外网能访问
#backUrl: http://222.222.222.222:8080/ACPSample_AppServer/backRcvResponse
#前台通知地址,填写处理银联前台通知的地址,必须外网能访问
#frontUrl: http://localhost:8080/ACPSample_AppServer/frontRcvResponse
#########################入网测试环境签名证书配置 ################################
# 多证书的情况证书路径为代码指定,可不对此块做配置。
# 签名证书路径,必须使用绝对路径,如果不想使用绝对路径,可以自行实现相对路径获取证书的方法;测试证书所有商户共用开发包中的测试签名证书,生产环境请从cfca下载得到。
# windows样例:
signCertPath: ${liquidnet.dragon.unionpay.certs-path}/${liquidnet.dragon.unionpay.certs-prefix}_sign.pfx
# 签名证书密码,测试环境固定000000,生产环境请修改为从cfca下载的正式证书的密码,正式环境证书密码位数需小于等于6位,否则上传到商户服务网站会失败
signCertPwd: ${liquidnet.dragon.unionpay.pfx-pwd}
# 签名证书类型,固定不需要修改
signCertType: PKCS12
##########################加密证书配置################################
# 敏感信息加密证书路径(商户号开通了商户对敏感信息加密的权限,需要对 卡号accNo,pin和phoneNo,cvn2,expired加密(如果这些上送的话),对敏感信息加密使用)
encryptCertPath: ${liquidnet.dragon.unionpay.certs-path}/${liquidnet.dragon.unionpay.certs-prefix}_enc.cer
##########################验签证书配置################################
# 验签中级证书路径(银联提供)
middleCertPath: ${liquidnet.dragon.unionpay.certs-path}/${liquidnet.dragon.unionpay.certs-prefix}_middle.cer
# 验签根证书路径(银联提供)
rootCertPath: ${liquidnet.dragon.unionpay.certs-path}/${liquidnet.dragon.unionpay.certs-prefix}_root.cer
\ No newline at end of file
...@@ -36,4 +36,10 @@ liquidnet: ...@@ -36,4 +36,10 @@ liquidnet:
merchantId: 1551961491 merchantId: 1551961491
appId: wx3498304dda39c5a1 appId: wx3498304dda39c5a1
partnerKey: itIuO65O9yKmemOu3S8g1S4orqvCGwXK partnerKey: itIuO65O9yKmemOu3S8g1S4orqvCGwXK
unionpay:
merchantId: 821690048160PQY
gateway-url: https://gateway.95516.com
refund-url: https://gateway.95516.com/
certs-path: /data/certs/dragon/unionpay/test
certs-prefix: acp_prod
pfx-pwd: '520360'
...@@ -36,3 +36,10 @@ liquidnet: ...@@ -36,3 +36,10 @@ liquidnet:
merchantId: 1551961491 merchantId: 1551961491
appId: wx3498304dda39c5a1 appId: wx3498304dda39c5a1
partnerKey: itIuO65O9yKmemOu3S8g1S4orqvCGwXK partnerKey: itIuO65O9yKmemOu3S8g1S4orqvCGwXK
unionpay:
merchantId: 821690048160PQY
gateway-url: https://gateway.95516.com
refund-url: https://gateway.95516.com
certs-path: /data/certs/dragon/unionpay/test
certs-prefix: acp_test
pfx-pwd: '520360'
\ No newline at end of file
...@@ -105,3 +105,49 @@ global-auth: ...@@ -105,3 +105,49 @@ global-auth:
# ----------------------------------------------------------- # -----------------------------------------------------------
# ----------------------------------------------------------- # -----------------------------------------------------------
# -----------------------------------------------------------
# ---------------------以下为银联支付--------------------------------------
##交易请求地址
acpsdk:
## 消费接口
frontTransUrl: ${liquidnet.dragon.unionpay.gateway-url}/gateway/api/frontTransReq.do
## app 消费接口
appTransUrl: ${liquidnet.dragon.unionpay.gateway-url}/gateway/api/appTransReq.do
## 交易状态查询
backTransUrl: ${liquidnet.dragon.unionpay.gateway-url}/gateway/api/backTransReq.do
## 交易状态查询:app用的路径
singleQueryUrl: ${liquidnet.dragon.unionpay.gateway-url}/gateway/api/queryTrans.do
## 退款路径 (https://gateway.95516.com/gateway/api/backTransReq.do)
refundUrl: ${liquidnet.dragon.unionpay.refund-url}/gateway/api/backTransReq.do
########################################################################
########################################################################
# 报文版本号,固定5.1.0,请勿改动
version: 5.1.0
# 签名方式,证书方式固定01,请勿改动
signMethod: '01'
# 是否验证验签证书的CN,测试环境请设置false,生产环境请设置true。非false的值默认都当true处理。
ifValidateCNName: false
# 是否验证https证书,测试环境请设置false,生产环境建议优先尝试true,不行再false。非true的值默认都当false处理。
ifValidateRemoteCert: false
#后台通知地址,填写接收银联后台通知的地址,必须外网能访问
#backUrl: http://222.222.222.222:8080/ACPSample_AppServer/backRcvResponse
#前台通知地址,填写处理银联前台通知的地址,必须外网能访问
#frontUrl: http://localhost:8080/ACPSample_AppServer/frontRcvResponse
#########################入网测试环境签名证书配置 ################################
# 多证书的情况证书路径为代码指定,可不对此块做配置。
# 签名证书路径,必须使用绝对路径,如果不想使用绝对路径,可以自行实现相对路径获取证书的方法;测试证书所有商户共用开发包中的测试签名证书,生产环境请从cfca下载得到。
# windows样例:
signCertPath: ${liquidnet.dragon.unionpay.certs-path}/${liquidnet.dragon.unionpay.certs-prefix}_sign.pfx
# 签名证书密码,测试环境固定000000,生产环境请修改为从cfca下载的正式证书的密码,正式环境证书密码位数需小于等于6位,否则上传到商户服务网站会失败
signCertPwd: ${liquidnet.dragon.unionpay.pfx-pwd}
# 签名证书类型,固定不需要修改
signCertType: PKCS12
##########################加密证书配置################################
# 敏感信息加密证书路径(商户号开通了商户对敏感信息加密的权限,需要对 卡号accNo,pin和phoneNo,cvn2,expired加密(如果这些上送的话),对敏感信息加密使用)
encryptCertPath: ${liquidnet.dragon.unionpay.certs-path}/${liquidnet.dragon.unionpay.certs-prefix}_enc.cer
##########################验签证书配置################################
# 验签中级证书路径(银联提供)
middleCertPath: ${liquidnet.dragon.unionpay.certs-path}/${liquidnet.dragon.unionpay.certs-prefix}_middle.cer
# 验签根证书路径(银联提供)
rootCertPath: ${liquidnet.dragon.unionpay.certs-path}/${liquidnet.dragon.unionpay.certs-prefix}_root.cer
\ No newline at end of file
...@@ -125,6 +125,7 @@ global-auth: ...@@ -125,6 +125,7 @@ global-auth:
- ${liquidnet.info.context}/user/inner/** - ${liquidnet.info.context}/user/inner/**
- ${liquidnet.info.context}/user/logs/in2111 - ${liquidnet.info.context}/user/logs/in2111
- ${liquidnet.info.context}/user/logs/de2111 - ${liquidnet.info.context}/user/logs/de2111
- ${liquidnet.info.context}/user/logs/in2112
oncheck-url-pattern: oncheck-url-pattern:
# - ${liquidnet.info.context}/** # - ${liquidnet.info.context}/**
# ----------------------------------------------------------- # -----------------------------------------------------------
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
FROM candy_coupon cc FROM candy_coupon cc
LEFT JOIN candy_coupon_rule ccr ON cc.coupon_id = ccr.coupon_id LEFT JOIN candy_coupon_rule ccr ON cc.coupon_id = ccr.coupon_id
<where> <where>
cc.state = 1 AND ccr.state = 1 cc.state = 1
<if test="couType != null"> <if test="couType != null">
AND cc.cou_type=#{couType,jdbcType=SMALLINT} AND cc.cou_type=#{couType,jdbcType=SMALLINT}
</if> </if>
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
AND cc.busi_type = #{busiType,jdbcType=SMALLINT} AND cc.busi_type = #{busiType,jdbcType=SMALLINT}
</if> </if>
<if test="keyword != null and keyword != ''"> <if test="keyword != null and keyword != ''">
AND INSTR(CONCAT(cc.title, cc.notice, ccr.busi_name), #{keyword,jdbcType=VARCHAR}) AND INSTR(CONCAT(cc.title, ifnull(cc.notice,''), ifnull(ccr.busi_name,'')), #{keyword,jdbcType=VARCHAR})
</if> </if>
</where> </where>
</select> </select>
......
...@@ -90,6 +90,11 @@ public class StoneScoreItems implements Serializable { ...@@ -90,6 +90,11 @@ public class StoneScoreItems implements Serializable {
*/ */
private Integer status; private Integer status;
/**
* 类别(区别于TYPE字段)
*/
private Integer simpleType;
/** /**
* 定时上架-时间 * 定时上架-时间
*/ */
......
package com.liquidnet.service.stone.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* <p>
* 积分日志表
* </p>
*
* @author liquidnet
* @since 2021-10-19
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class TempScore implements Serializable ,Cloneable{
private static final long serialVersionUID = 1L;
private String uid;
/**
* id
*/
private String mobile;
/**
* 用户id
*/
private BigDecimal priceCost;
private static final TempScore obj = new TempScore();
public static TempScore getNew() {
try {
return (TempScore) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new TempScore();
}
}
package com.liquidnet.service.stone.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.stone.entity.StoneScoreItems;
import com.liquidnet.service.stone.entity.TempScore;
/**
* <p>
* 积分物品表 Mapper 接口
* </p>
*
* @author liquidnet
* @since 2021-10-19
*/
public interface TempScoreMapper extends BaseMapper<TempScore> {
}
...@@ -38,7 +38,7 @@ public class SweetActivityDrawListDao implements Serializable { ...@@ -38,7 +38,7 @@ public class SweetActivityDrawListDao implements Serializable {
private String prizeTitle; private String prizeTitle;
/** /**
* 奖品类型 1积分 2优惠券 3实物 4登登登VIP 5优先购买券惠顾 2积分 3代金券 4满减券 5优先购买券 6实物 * 奖品类型 1积分 2优惠券 3实物 4登登登VIP 5优先购买券
*/ */
private Integer prizeType; private Integer prizeType;
...@@ -104,7 +104,7 @@ public class SweetActivityDrawListDao implements Serializable { ...@@ -104,7 +104,7 @@ public class SweetActivityDrawListDao implements Serializable {
private String receivingAddressAll; private String receivingAddressAll;
/** /**
* 发放状态 1未发放 2已发放 * 发放状态 1未发放 2已发放 3未领取
*/ */
private Integer receivingStatus; private Integer receivingStatus;
......
package com.liquidnet.service.sweet.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel
public class SweetManualAppletTFCDto implements Serializable ,Cloneable{
@ApiModelProperty("电子手册id")
private String manualId;
@ApiModelProperty("演出id")
private String performancesId;
@ApiModelProperty("演出标题")
private String title;
@ApiModelProperty("场地id")
private String fieldId;
@ApiModelProperty("场地名称")
private String fieldName;
@ApiModelProperty("城市名称")
private String cityName;
@ApiModelProperty("演出开始时间")
private String timeStart;
@ApiModelProperty("演出结束时间")
private String timeEnd;
@ApiModelProperty("演出开售时间")
private String timeSell;
@ApiModelProperty("是否会员")
private Integer isMember;
@ApiModelProperty("提前时间")
private Integer payCountdownMinute;
@ApiModelProperty("经度")
private String longitude;
@ApiModelProperty("纬度")
private String latitude;
private static final SweetManualAppletTFCDto obj = new SweetManualAppletTFCDto();
public static SweetManualAppletTFCDto getNew() {
try {
return (SweetManualAppletTFCDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetManualAppletTFCDto();
}
}
}
package com.liquidnet.service.sweet.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class SweetManualArtistList2TFCDto implements Serializable ,Cloneable {
private List<SweetManualArtistListTFCDto> data;
private List<String> date;
private List<SweetManualArtistStageListTFCDto> stage;
private Integer total;
private static final SweetManualArtistList2TFCDto obj = new SweetManualArtistList2TFCDto();
public static SweetManualArtistList2TFCDto getNew() {
try {
return (SweetManualArtistList2TFCDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetManualArtistList2TFCDto();
}
}
}
package com.liquidnet.service.sweet.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel
public class SweetManualArtistListTFCDto implements Serializable,Cloneable {
private static final long serialVersionUID = 8382714055996962257L;
@ApiModelProperty("电子手册关联id")
private String manualRelationId;
@ApiModelProperty("艺人id")
private String artistId;
@ApiModelProperty("艺人名称")
private String name;
@ApiModelProperty("拼音")
private String pinyin;
@ApiModelProperty("简介")
private String describes;
@ApiModelProperty("头像图片")
private String picUrl;
@ApiModelProperty("舞台id")
private String stageId;
@ApiModelProperty("舞台名称")
private String title;
@ApiModelProperty("演出开始")
private String performanceStart;
@ApiModelProperty("演出结束")
private String performanceEnd;
@ApiModelProperty("签售开始")
private String signatureStart;
@ApiModelProperty("签售结束")
private String signatureEnd;
@ApiModelProperty("是否观看")
private Integer isWatch;
@ApiModelProperty("是否登记")
private Integer isSign;
private static final SweetManualArtistListTFCDto obj = new SweetManualArtistListTFCDto();
public static SweetManualArtistListTFCDto getNew() {
try {
return (SweetManualArtistListTFCDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetManualArtistListTFCDto();
}
}
}
package com.liquidnet.service.sweet.dto;
import lombok.Data;
import java.io.Serializable;
@Data
public class SweetManualArtistStageListTFCDto implements Serializable ,Cloneable{
private String title;
private static final SweetManualArtistStageListTFCDto obj = new SweetManualArtistStageListTFCDto();
public static SweetManualArtistStageListTFCDto getNew() {
try {
return (SweetManualArtistStageListTFCDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetManualArtistStageListTFCDto();
}
}
}
package com.liquidnet.service.sweet.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel
public class SweetManualTFCDto implements Serializable ,Cloneable{
@ApiModelProperty("电子手册id")
private String manualId;
@ApiModelProperty("演出id")
private String performancesId;
@ApiModelProperty("演出名称")
private String title;
@ApiModelProperty("演出开始时间")
private String timeStart;
@ApiModelProperty("演出结束时间")
private String timeEnd;
@ApiModelProperty("售卖时间")
private String timeSell;
@ApiModelProperty("停售时间")
private String timeStop;
@ApiModelProperty("状态")
private Integer status;
@ApiModelProperty("手册状态")
private Integer manualStatus;
@ApiModelProperty("是否发布")
private Integer isRelease;
private static final SweetManualTFCDto obj = new SweetManualTFCDto();
public static SweetManualTFCDto getNew() {
try {
return (SweetManualTFCDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetManualTFCDto();
}
}
}
package com.liquidnet.service.sweet.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;
/**
* <p>
* 活动type表
* </p>
*
* @author hujiachen
* @since 2021-12-23
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SweetActiveType implements Serializable,Cloneable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Long mid;
/**
* 活动名称
*/
private String activeName;
/**
* type类型
*/
private Integer type;
/**
* 预警个数
*/
private Integer alarmNum;
/**
* 最大访问次数
*/
private Integer maxCount;
private LocalDateTime createdAt;
private static final SweetActiveType obj = new SweetActiveType();
public static SweetActiveType getNew() {
try {
return (SweetActiveType) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetActiveType();
}
}
}
...@@ -45,7 +45,7 @@ public class SweetAppletSubMsg implements Serializable { ...@@ -45,7 +45,7 @@ public class SweetAppletSubMsg implements Serializable {
private String targetId; private String targetId;
/** /**
* 1草莓 2五百里 3mdsk 4正在 * 1草莓 2五百里 3mdsk 4正在 5跳飞船音乐节
*/ */
private Integer appletType; private Integer appletType;
......
...@@ -60,7 +60,7 @@ public class SweetAppletUsers implements Serializable { ...@@ -60,7 +60,7 @@ public class SweetAppletUsers implements Serializable {
private String countryCode; private String countryCode;
/** /**
* 1草莓 2五百里 3mdsk 4正在 * 1草莓 2五百里 3mdsk 4正在 5跳飞船音乐节
*/ */
private Integer type; private Integer type;
......
...@@ -54,7 +54,7 @@ public class SweetIntegralActivityDraw implements Serializable, Cloneable { ...@@ -54,7 +54,7 @@ public class SweetIntegralActivityDraw implements Serializable, Cloneable {
private String prizeTitle; private String prizeTitle;
/** /**
* 奖品类型 1积分 2优惠券 3实物 4登登登VIP 5优先购买券惠顾 2积分 3代金券 4满减券 5优先购买券 6实物 * 奖品类型 1积分 2优惠券 3实物 4登登登VIP 5优先购买券
*/ */
private Integer prizeType; private Integer prizeType;
...@@ -114,7 +114,7 @@ public class SweetIntegralActivityDraw implements Serializable, Cloneable { ...@@ -114,7 +114,7 @@ public class SweetIntegralActivityDraw implements Serializable, Cloneable {
private String receivingAddress; private String receivingAddress;
/** /**
* 发放状态 1未发放 2已发放 * 发放状态 1未发放 2已发放 3未领取
*/ */
private Integer receivingStatus; private Integer receivingStatus;
......
package com.liquidnet.service.sweet.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 电子宣传手册艺人表
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SweetManualArtistsTfc implements Serializable ,Cloneable{
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Long mid;
/**
* manual_relation_id
*/
private String manualRelationId;
/**
* 电子宣传手册id
*/
private String manualId;
/**
* 关联id
*/
private String stageId;
/**
* 关联id
*/
private String artistsId;
/**
* 演出开始时间
*/
private LocalDateTime performanceStart;
/**
* 演出结束时间
*/
private LocalDateTime performanceEnd;
/**
* 签收开始时间
*/
private LocalDateTime signatureStart;
/**
* 签收结束时间
*/
private LocalDateTime signatureEnd;
/**
* 0关闭 1开启
*/
private Integer status;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 更新时间
*/
private LocalDateTime updatedAt;
private static final SweetManualArtistsTfc obj = new SweetManualArtistsTfc();
public static SweetManualArtistsTfc getNew() {
try {
return (SweetManualArtistsTfc) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetManualArtistsTfc();
}
}
}
package com.liquidnet.service.sweet.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 电子宣传手册通知表
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SweetManualNotifyTfc implements Serializable ,Cloneable{
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Long mid;
/**
* manual_notify_id
*/
private String manualNotifyId;
/**
* 电子宣传手册id
*/
private String manualId;
/**
* 标题
*/
private String title;
/**
* 内容
*/
private String content;
/**
* 0关闭 1开启
*/
private Integer status;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 更新时间
*/
private LocalDateTime updatedAt;
private static final SweetManualNotifyTfc obj = new SweetManualNotifyTfc();
public static SweetManualNotifyTfc getNew() {
try {
return (SweetManualNotifyTfc) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetManualNotifyTfc();
}
}
}
package com.liquidnet.service.sweet.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 电子宣传手册商铺表
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SweetManualShopTfc implements Serializable,Cloneable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Long mid;
/**
* manual_shop_id
*/
private String manualShopId;
/**
* 电子宣传手册id
*/
private String manualId;
/**
* 商家名称
*/
private String title;
/**
* 商家图片
*/
private String picUrl;
/**
* 商家介绍
*/
private String describes;
/**
* 1吃喝 2玩乐
*/
private Integer type;
/**
* 0不推荐 1推荐
*/
private Integer isRecommend;
/**
* 排序字段 数字越大越靠前
*/
private Integer sort;
/**
* 0关闭 1开启
*/
private Integer status;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 更新时间
*/
private LocalDateTime updatedAt;
private static final SweetManualShopTfc obj = new SweetManualShopTfc();
public static SweetManualShopTfc getNew() {
try {
return (SweetManualShopTfc) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetManualShopTfc();
}
}
}
package com.liquidnet.service.sweet.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 电子宣传手册显示内容表
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SweetManualSortTfc implements Serializable,Cloneable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Long mid;
/**
* manual_id
*/
private String manualId;
/**
* 显示哪个,号隔开
*/
private String showPosition;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 更新时间
*/
private LocalDateTime updatedAt;
private static final SweetManualSortTfc obj = new SweetManualSortTfc();
public static SweetManualSortTfc getNew() {
try {
return (SweetManualSortTfc) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetManualSortTfc();
}
}
}
package com.liquidnet.service.sweet.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 电子宣传手册表
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SweetManualTfc implements Serializable,Cloneable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Long mid;
/**
* manual_id
*/
private String manualId;
/**
* 演出id
*/
private String performanceId;
/**
* 0关闭 1开启
*/
private Integer status;
/**
* 0取消 1发布
*/
private Integer isRelease;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 更新时间
*/
private LocalDateTime updatedAt;
private static final SweetManualTfc obj = new SweetManualTfc();
public static SweetManualTfc getNew() {
try {
return (SweetManualTfc) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetManualTfc();
}
}
}
package com.liquidnet.service.sweet.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;
/**
* <p>
* type二维码表
* </p>
*
* @author hujiachen
* @since 2021-12-23
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SweetQrCode implements Serializable, Cloneable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Long mid;
/**
* Id
*/
private String qrCodeId;
/**
* 活动type类型
*/
private Integer type;
/**
* 二维码地址
*/
private String url;
/**
* 展示次数
*/
private Integer showNum;
/**
* 访问次数
*/
private Integer readNum;
private LocalDateTime createdAt;
private static final SweetQrCode obj = new SweetQrCode();
public static SweetQrCode getNew() {
try {
return (SweetQrCode) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetQrCode();
}
}
}
package com.liquidnet.service.sweet.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 电子宣传手册富文本表
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SweetRichtextTfc implements Serializable ,Cloneable{
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Long mid;
/**
* order_refund_id
*/
private String richtextId;
/**
* manual_id
*/
private String manualId;
/**
* 富文本详情
*/
private String details;
/**
* 经纬度 5需要
*/
private String local;
/**
* 地图图片地址 2需要
*/
private String picUrl;
/**
* 类型 1签售时间 2现场地图 3官方大巴 4公共交通 5自驾导航坐标 6官方支持 7观众须知 8防疫指南 9观演攻略
*/
private Integer type;
/**
* 0关闭 1开启
*/
private Integer status;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 更新时间
*/
private LocalDateTime updatedAt;
private static final SweetRichtextTfc obj = new SweetRichtextTfc();
public static SweetRichtextTfc getNew() {
try {
return (SweetRichtextTfc) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetRichtextTfc();
}
}
}
package com.liquidnet.service.sweet.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 用户 收藏/喜欢等状态
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SweetUserRelationTfc implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Long mid;
/**
* 用户id
*/
private String userId;
/**
* 类型 1喜欢艺人 2签售艺人
*/
private Integer type;
/**
* 目标id
*/
private String targetId;
/**
* 电子手册
*/
private String manualId;
/**
* 1是 0否
*/
private Integer status;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 更新时间
*/
private LocalDateTime updatedAt;
}
package com.liquidnet.service.sweet.mapper;
import com.liquidnet.service.sweet.entity.SweetActiveType;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 活动type表 Mapper 接口
* </p>
*
* @author hujiachen
* @since 2021-12-23
*/
public interface SweetActiveTypeMapper extends BaseMapper<SweetActiveType> {
}
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