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

Commit e9802ac9 authored by 洪全海's avatar 洪全海
parents b72a7035 55590373
...@@ -42,7 +42,7 @@ public class AdamEntersServiceImpl extends ServiceImpl<AdamEntersMapper, AdamEnt ...@@ -42,7 +42,7 @@ public class AdamEntersServiceImpl extends ServiceImpl<AdamEntersMapper, AdamEnt
@Override @Override
public List<AdamEnters> list(String uid) { public List<AdamEnters> list(String uid) {
List<AdamEnters> infoList = new ArrayList<>(); ç
Map<Object, Object> map = redisUtil.hmget(AdamRedisConst.INFO_ENTERS.concat(uid)); Map<Object, Object> map = redisUtil.hmget(AdamRedisConst.INFO_ENTERS.concat(uid));
......
...@@ -2,4 +2,12 @@ package com.liquidnet.service.kylin.constant; ...@@ -2,4 +2,12 @@ package com.liquidnet.service.kylin.constant;
public class KylinRedisConst { public class KylinRedisConst {
public static final String FIELDS = "kylin:fields:id"; public static final String FIELDS = "kylin:fields:id";
public static final String PERFORMANCES = "kylin:performances:id";
public static final String TICKET = "kylin:ticket:id";
public static final String TIMES = "kylin:times:id";
public static final String BANNERS = "kylin:banners:id";
} }
package com.liquidnet.service.kylin.dto.param;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.liquidnet.service.kylin.entity.KylinBanners;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.beans.BeanUtils;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 轮播图 添加、修改banner需要的参数
* </p>
* @author jiangxiulong
* @since 2021-05-03 11:19 上午
*/
@Data
public class BannersParam implements Serializable {
@ApiModelProperty(value = "Banner主键ID", example = "4345ASGMTG66")
private String bannersId;
@ApiModelProperty(value = "标题", required = true, example = "这是一个banner标题")
private String name;
@ApiModelProperty(value = "封面图", required = true, example = "https://img.zhengzai.tv/partner/2019/05/14/5cda2d0520177.png")
private String coverImg;
@ApiModelProperty(value = "跳转目标id或者url", required = true, example = "https://img.zhengzai.tv/partner/2019/05/14/5cda2d0520177.png")
private String targetId;
@ApiModelProperty(value = "跳转类型 6演出跳转 7商品跳转 8巡演跳转 12展示分享按钮的web连接 14积分商品详情 100活动跳转 999不跳转 998个人信息跳转", required = true, example = "6")
private Integer type;
@ApiModelProperty(value = "是否显示 0-否,1-是", required = true, example = "1", allowableValues = "0,1")
private Integer isShow;
@ApiModelProperty(value = "展示位置", required = true, example = "1")
private Integer position;
@ApiModelProperty(value = "排序权重 越大越靠前", required = true, example = "100")
private Integer sort;
@ApiModelProperty(value = "备注", example = "这是一个演出推广的banner")
private String comment;
@JsonIgnore
public KylinBanners getFields(String fieldsId, LocalDateTime createdAt) {
KylinBanners fields = new KylinBanners();
BeanUtils.copyProperties(this, fields);
if (null != fieldsId) {
fields.setBannersId(fieldsId);
}
if (null != createdAt) {
fields.setCreatedAt(createdAt);
}
return fields;
}
}
package com.liquidnet.service.kylin.dto.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* <p>
* 轮播图 banner 搜索 需要的参数
* </p>
* @author jiangxiulong
* @since 2021-05-03 11:19 上午
*/
@Data
public class BannersSearchParam implements Serializable {
@ApiModelProperty(value = "标题", example = "这是一个banner标题")
private String name;
@ApiModelProperty(value = "跳转类型 6演出跳转 7商品跳转 8巡演跳转 12展示分享按钮的web连接 14积分商品详情 100活动跳转 999不跳转 998个人信息跳转", example = "6")
private Integer type;
@ApiModelProperty(value = "是否显示 0-否,1-是", example = "1", allowableValues = "0,1")
private Integer isShow;
@ApiModelProperty(value = "展示位置", example = "1")
private Integer position;
@ApiModelProperty(value = "页数 ", example = "1")
private int page;
@ApiModelProperty(value = "数量 ", example = "10")
private int size;
}
package com.liquidnet.service.kylin.dto.param;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
public class CreateTicketTimesParam implements Serializable {
@ApiModelProperty(value = "场次Id", example = "")
private String ticketTimesId;
@ApiModelProperty(value = "演出Id", example = "1")
private String PerformancesId;
@ApiModelProperty(value = "场次标题", example = "测试标题")
@JsonIgnore
private String title;
@ApiModelProperty(value = "场次适用开始时间", example = "2020-12-01T12:00:00")
private LocalDateTime timeStart;
@ApiModelProperty(value = "场次适用结束时间", example = "2020-12-01T12:00:00")
private LocalDateTime timeEnd;
@ApiModelProperty(value = "类型 1单日票 2通票", example = "1")
private int type;
@ApiModelProperty(value = "", example = "")
@JsonIgnore
private String createdAt;
}
package com.liquidnet.service.kylin.dto.param;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class PerformanceCreateParam implements Serializable {
@ApiModelProperty(value = "演出id", example = "")
@JsonIgnore
private String performancesId;
@ApiModelProperty(value = "封面图", example = "https://img.zhengzai.tv/partner/2019/05/14/5cda2d0520177.png")
private String imgPoster;
@ApiModelProperty(value = "演出名称", example = "测试演出")
private String title;
@ApiModelProperty(value = "演出类型 1音乐节 2演唱会 3小型演出 4展览 6舞台剧", example = "3")
private String type;
@ApiModelProperty(value = "演出开始时间", example = "2021-05-01 12:00:00")
private String timeStart;
@ApiModelProperty(value = "演出结束时间", example = "2021-05-04 12:00:00")
private String timeEnd;
@ApiModelProperty(value = "场地id", example = "1")
private String fieldId;
@ApiModelProperty(value = "演出公告", example = "这是演出公告")
private String notice;
@ApiModelProperty(value = "主办方id", example = "1")
private String sponsorId;
@ApiModelProperty(value = "主办方类型", example = "1")
private String sponsorType;
@ApiModelProperty(value = "主办方名称", example = "主办方名称")
private String sponsor;
@ApiModelProperty(value = "联系人", example = "联系人")
private String contacts;
@ApiModelProperty(value = "联系方式", example = "手机号")
private String mobile;
@ApiModelProperty(value = "演出详情", example = "<p>演出详情</p>")
private String details;
@ApiModelProperty(value = "演出批文地址", example = "这是一个演出批文地址")
private String approvalUrl;
@ApiModelProperty(value = "待支付时间", example = "5")
private int payCountdownMinute;
@ApiModelProperty(value = "购票须知", example = "[{\"id\":1,\"title\":\"\\u95e8\\u7968\\u4e0d\\u9000\\u4e0d\\u6362\",\"type\":\"image\",\"url\":\"http:\\/\\/img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com\\/partner\\/2019\\/01\\/21\\/5c45722882a13.png\",\"text\":\"\\u95e8\\u7968\\u4e3a\\u6709\\u4ef7\\u8bc1\\u5238\\uff0c\\u5e76\\u975e\\u5546\\u54c1\\uff0c\\u4e00\\u7ecf\\u552e\\u51fa\\u4e0d\\u4e88\\u9000\\u6362\\u3002\\u56e0\\u201c\\u4e0d\\u53ef\\u6297\\u529b\\u201d\\u5bfc\\u81f4\\u7684\\u6f14\\u51fa\\u53d6\\u6d88\\u6216\\u5ef6\\u671f\\u9664\\u5916\\u3002\",\"sort\":1},{\"id\":3,\"title\":\"\\u4ec5\\u8bbe\\u7ad9\\u5e2d\",\"type\":\"image\",\"url\":\"http:\\/\\/img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com\\/partner\\/2019\\/01\\/21\\/5c456e93db0b9.png\",\"text\":\"\\u672c\\u573a\\u6f14\\u51fa\\u4e0d\\u8bbe\\u5ea7\\u4f4d\\uff0c\\u5747\\u4e3a\\u7ad9\\u5e2d\\u89c2\\u6f14\\u3002\",\"sort\":2},{\"id\":4,\"title\":\"\\u7981\\u6b62\\u4e2a\\u4eba\\u7968\\u52a1\\u4e70\\u5356\",\"type\":\"image\",\"url\":\"http:\\/\\/img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com\\/partner\\/2019\\/01\\/21\\/5c456e5c27644.png\",\"text\":\"\\u4e3a\\u9632\\u6b62\\u4e0d\\u6cd5\\u5206\\u5b50\\u5229\\u7528\\u7968\\u52a1\\u8f6c\\u8ba9\\u8bc8\\u9a97\\u94b1\\u6b3e\\uff0c\\u5efa\\u8bae\\u5e7f\\u5927\\u4e50\\u8ff7\\u4e0d\\u8981\\u8fdb\\u884c\\u4e2a\\u4eba\\u95f4\\u7968\\u52a1\\u4e70\\u5356\\uff0c\\u4e0d\\u8981\\u8f7b\\u6613\\u76f8\\u4fe1\\u6765\\u6e90\\u4e0d\\u660e\\u7684\\u8f6c\\u7968\\uff0c\\u4ee5\\u514d\\u81ea\\u8eab\\u5229\\u76ca\\u53d7\\u5230\\u4fb5\\u5bb3\\u3002\",\"sort\":3}]")
private String noticeImage;
@ApiModelProperty(value = "是否实名", example = "0")
private int isTrueName;
@ApiModelProperty(value = "限购数量 0为不限购", example = "0")
private int limitCount;
@ApiModelProperty(value = "是否提交 1提交 0不提交(不验证参数)", example = "0")
private int isSubmit;
@ApiModelProperty(value = "状态:-1删除;0未提交;1审核中;2审核中(自动上线);3审核通过;4审核未通过;6上线;7下架;8活动结束;9活动取消退款中;10活动取消退", example = "0")
private int status;
@ApiModelProperty(value = "", example = "")
private String createdAt;
}
...@@ -55,6 +55,12 @@ public class PerformanceStep1Param implements Serializable { ...@@ -55,6 +55,12 @@ public class PerformanceStep1Param implements Serializable {
@ApiModelProperty(value = "演出批文地址", example = "这是一个演出批文地址") @ApiModelProperty(value = "演出批文地址", example = "这是一个演出批文地址")
private String approvalUrl; private String approvalUrl;
@ApiModelProperty(value = "待支付时间", example = "5")
private int payCountdownMinute;
@ApiModelProperty(value = "购票须知", example = "[{\"id\":1,\"title\":\"\\u95e8\\u7968\\u4e0d\\u9000\\u4e0d\\u6362\",\"type\":\"image\",\"url\":\"http:\\/\\/img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com\\/partner\\/2019\\/01\\/21\\/5c45722882a13.png\",\"text\":\"\\u95e8\\u7968\\u4e3a\\u6709\\u4ef7\\u8bc1\\u5238\\uff0c\\u5e76\\u975e\\u5546\\u54c1\\uff0c\\u4e00\\u7ecf\\u552e\\u51fa\\u4e0d\\u4e88\\u9000\\u6362\\u3002\\u56e0\\u201c\\u4e0d\\u53ef\\u6297\\u529b\\u201d\\u5bfc\\u81f4\\u7684\\u6f14\\u51fa\\u53d6\\u6d88\\u6216\\u5ef6\\u671f\\u9664\\u5916\\u3002\",\"sort\":1},{\"id\":3,\"title\":\"\\u4ec5\\u8bbe\\u7ad9\\u5e2d\",\"type\":\"image\",\"url\":\"http:\\/\\/img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com\\/partner\\/2019\\/01\\/21\\/5c456e93db0b9.png\",\"text\":\"\\u672c\\u573a\\u6f14\\u51fa\\u4e0d\\u8bbe\\u5ea7\\u4f4d\\uff0c\\u5747\\u4e3a\\u7ad9\\u5e2d\\u89c2\\u6f14\\u3002\",\"sort\":2},{\"id\":4,\"title\":\"\\u7981\\u6b62\\u4e2a\\u4eba\\u7968\\u52a1\\u4e70\\u5356\",\"type\":\"image\",\"url\":\"http:\\/\\/img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com\\/partner\\/2019\\/01\\/21\\/5c456e5c27644.png\",\"text\":\"\\u4e3a\\u9632\\u6b62\\u4e0d\\u6cd5\\u5206\\u5b50\\u5229\\u7528\\u7968\\u52a1\\u8f6c\\u8ba9\\u8bc8\\u9a97\\u94b1\\u6b3e\\uff0c\\u5efa\\u8bae\\u5e7f\\u5927\\u4e50\\u8ff7\\u4e0d\\u8981\\u8fdb\\u884c\\u4e2a\\u4eba\\u95f4\\u7968\\u52a1\\u4e70\\u5356\\uff0c\\u4e0d\\u8981\\u8f7b\\u6613\\u76f8\\u4fe1\\u6765\\u6e90\\u4e0d\\u660e\\u7684\\u8f6c\\u7968\\uff0c\\u4ee5\\u514d\\u81ea\\u8eab\\u5229\\u76ca\\u53d7\\u5230\\u4fb5\\u5bb3\\u3002\",\"sort\":3}]")
private String noticeImage;
@ApiModelProperty(value = "", example = "") @ApiModelProperty(value = "", example = "")
@JsonIgnore @JsonIgnore
private String createdAt; private String createdAt;
......
package com.liquidnet.service.kylin.dto.param;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class PerformanceStep2Param implements Serializable {
@ApiModelProperty(value = "演出id", example = "")
private String performancesId;
@ApiModelProperty(value = "是否实名", example = "0")
private int isTrueName;
@ApiModelProperty(value = "限购数量 0为不限购", example = "0")
private int limitCount;
@ApiModelProperty(value = "是否提交 1提交 0不提交(不验证参数)", example = "0")
private int isSubmit;
}
package com.liquidnet.service.kylin.dto.param;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.kylin.entity.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.beans.BeanUtils;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 修改场地全部显示数据参数
*/
@Data
public class TicketCreateParam implements Serializable {
@ApiModelProperty(value = "主键")
private String ticketsId;
@ApiModelProperty(value = "场次Id")
private String timesId;
@ApiModelProperty(value = "票种名称", example = "测试票")
private String title;
@ApiModelProperty(value = "类型", example = "2")
private int types;
@ApiModelProperty(value = "是否学生票 0否 1是", example = "0")
private int isStudent;
@ApiModelProperty(value = "是否电子票", example = "0")
private int isElectronic;
@ApiModelProperty(value = "是否快递票", example = "0")
private int isExpress;
@ApiModelProperty(value = "价格", example = "100.00")
private BigDecimal price;
@ApiModelProperty(value = "快递票截止日期", example = "2020-12-01T12:00:00")
private LocalDateTime timeEndExpress;
@ApiModelProperty(value = "总库存", example = "100")
private int totalGeneral;
@ApiModelProperty(value = "总兑换库存", example = "100")
private int totalExchange;
@ApiModelProperty(value = "限购数量", example = "0")
private int limitCount;
@ApiModelProperty(value = "票种开售时间", example = "2020-12-01T12:00:00")
private LocalDateTime timeStart;
@ApiModelProperty(value = "票种结售时间", example = "2020-12-01T14:00:00")
private LocalDateTime timeEnd;
@ApiModelProperty(value = "票种说明", example = "这是票种说明")
private String describes;
@ApiModelProperty(value = "是否展示二维码 0否 1是", example = "0")
private int isShowCode;
@ApiModelProperty(value = "二维码显示时间", example = "2020-12-01T14:00:00")
private LocalDateTime qrCodeShowTime;
@ApiModelProperty(value = "是否开启缺票登记", example = "1")
private int isLackRegister;
@ApiModelProperty(value = "", hidden = true)
private String createdAt;
@JsonIgnore
public KylinTickets kylinTickets(String ticketsId, LocalDateTime createdAt, LocalDateTime updatedAt) {
KylinTickets kylinTickets = new KylinTickets();
BeanUtils.copyProperties(this, kylinTickets);
kylinTickets.setTicketsId(ticketsId);
kylinTickets.setPriceDiscount(BigDecimal.valueOf(0.00));
kylinTickets.setPriceDiscountMember(BigDecimal.valueOf(0.00));
if (createdAt != null)
kylinTickets.setCreatedAt(createdAt);
if (updatedAt != null)
kylinTickets.setUpdatedAt(updatedAt);
//TODO 各种说明文案
return kylinTickets;
}
@JsonIgnore
public KylinTicketStatus kylinTicketStatus(String ticketsId, LocalDateTime createdAt, LocalDateTime updatedAt) {
KylinTicketStatus kylinTicketStatus = new KylinTicketStatus();
BeanUtils.copyProperties(this, kylinTicketStatus);
kylinTicketStatus.setTicketStatusId(IDGenerator.nextSnowId().toString());
kylinTicketStatus.setTicketId(ticketsId);
kylinTicketStatus.setStatusExchange(7);
kylinTicketStatus.setSurplusExchange(this.totalExchange);
kylinTicketStatus.setSurplusGeneral(this.totalGeneral);
if (createdAt != null)
kylinTicketStatus.setCreatedAt(createdAt);
if (updatedAt != null)
kylinTicketStatus.setUpdatedAt(updatedAt);
return kylinTicketStatus;
}
@JsonIgnore
public KylinTicketRelations kylinTicketRelations(String ticketsId, LocalDateTime createdAt, LocalDateTime updatedAt) {
KylinTicketRelations kylinTicketRelations = new KylinTicketRelations();
BeanUtils.copyProperties(this, kylinTicketRelations);
kylinTicketRelations.setTicketId(ticketsId);
kylinTicketRelations.setTicketRelationsId(IDGenerator.nextSnowId().toString());
if (createdAt != null)
kylinTicketRelations.setCreatedAt(createdAt);
if (updatedAt != null)
kylinTicketRelations.setUpdatedAt(updatedAt);
return kylinTicketRelations;
}
}
\ No newline at end of file
package com.liquidnet.service.kylin.dto.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.*;
import java.io.Serializable;
/**
* <p>
* banner返回给前端的数据字段
* </p>
*
* @author jiangxiulong
* @since 2021-05-03 11:19 上午
*/
@Data
public class BannersVo implements Serializable {
@ApiModelProperty(value = "Banner主键ID")
private String bannersId;
@ApiModelProperty(value = "标题")
@NotBlank(message = "请填写标题")
private String name;
@ApiModelProperty(value = "封面图")
@NotBlank(message = "请上传封面图")
private String coverImg;
@ApiModelProperty(value = "跳转目标id或者url")
@NotBlank(message = "请填写需要跳转的目标id或urk")
private String targetId;
@ApiModelProperty(value = "跳转类型 6演出跳转 7商品跳转 8巡演跳转 12展示分享按钮的web连接 14积分商品详情 100活动跳转 999不跳转 998个人信息跳转")
@Min(value = 1, message = "请选择跳转类型")
private Integer type;
@ApiModelProperty(value = "是否显示 0-否,1-是")
@Min(value = 1, message = "请选择是否显示")
private Integer isShow;
@ApiModelProperty(value = "展示位置")
@Min(value = 1, message = "请选择展示的位置")
private Integer position;
@ApiModelProperty(value = "排序权重 越大越靠前")
private Integer sort;
@ApiModelProperty(value = "备注")
private String comment;
@ApiModelProperty(value = "是否删除 0已删除,1正常")
private Integer isDeleted;
@ApiModelProperty(value = "创建时间")
private String createdAt;
@ApiModelProperty(value = "修改时间")
private String updatedAt;
}
package com.liquidnet.service.kylin.dto.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
//返回
@Data
public class TicketTimesVo implements Serializable {
@ApiModelProperty(value = "主键id")
private String ticketTimesId;
@ApiModelProperty(value = "演出Id", example = "")
private String PerformancesId;
@ApiModelProperty(value = "场次名称")
private String title;
@ApiModelProperty(value = "场次适用开始时间")
private String timeStart;
@ApiModelProperty(value = "场次适用结束时间")
private String timeEnd;
@ApiModelProperty(value = "状态 0不可见 1可见")
private int status;
@ApiModelProperty(value = "状态 1单日票 2通票")
private int type;
@ApiModelProperty(value = "创建时间")
private String createdAt;
@ApiModelProperty(value = "修改时间")
private String updatedAt;
}
package com.liquidnet.service.kylin.dto.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 修改场地全部显示数据参数
*/
@Data
public class TicketVo implements Serializable {
@ApiModelProperty(value = "主键")
private String ticketsId;
@ApiModelProperty(value = "票种名称", example = "测试票")
private String title;
@ApiModelProperty(value = "是否学生票 0否 1是", example = "0", hidden = true)
private int isStudent;
@ApiModelProperty(value = "是否电子票", example = "0")
private int isElectronic;
@ApiModelProperty(value = "是否快递票", example = "0")
private int isExpress;
@ApiModelProperty(value = "类型", example = "2")
private int types;
@ApiModelProperty(value = "价格", example = "100.00")
private BigDecimal price;
@ApiModelProperty(value = "快递票截止日期", example = "2020-12-01T12:00:00")
private String timeEndExpress;
@ApiModelProperty(value = "总库存", example = "100")
private int totalGeneral;
@ApiModelProperty(value = "总兑换库存", example = "100")
private int totalExchange;
@ApiModelProperty(value = "限购数量", example = "0")
private int limitCount;
@ApiModelProperty(value = "票种开售时间", example = "2020-12-01T12:00:00")
private String timeStart;
@ApiModelProperty(value = "票种结售时间", example = "2020-12-01T14:00:00")
private String timeEnd;
@ApiModelProperty(value = "票种说明", example = "这是票种说明")
private String describes;
@ApiModelProperty(value = "票状态 -1删除;0未提交;1审核中;2审核中(自动在售);3审核通过;4审核未通过;6在售;7停售;8售罄;9未开始;10已结束", example = "0")
private int status;
@ApiModelProperty(value = "是否展示二维码 0否 1是", example = "0")
private int isShowCode;
@ApiModelProperty(value = "二维码显示时间", example = "2020-12-01T14:00:00")
private String qrCodeShowTime;
@ApiModelProperty(value = "场次id")
private String timesId;
@ApiModelProperty(value = "")
private String createdAt;
@ApiModelProperty(value = "")
private String updatedAt;
}
\ No newline at end of file
package com.liquidnet.service.kylin.service;
import com.liquidnet.service.kylin.entity.KylinTicketTimes;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 场次 服务类
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
public interface IKylinTicketTimesService extends IService<KylinTicketTimes> {
}
package com.liquidnet.service.kylin.service;
import com.liquidnet.service.kylin.entity.KylinTickets;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 票 服务类
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
public interface IKylinTicketsService extends IService<KylinTickets> {
}
package com.liquidnet.service.kylin.service.admin;
import com.liquidnet.service.kylin.entity.KylinBanners;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 轮播图 服务类
* </p>
*
* @author liquidnet
* @since 2021-05-02
*/
public interface IKylinBannersService extends IService<KylinBanners> {
}
...@@ -2,6 +2,7 @@ package com.liquidnet.service.kylin.service.partner; ...@@ -2,6 +2,7 @@ package com.liquidnet.service.kylin.service.partner;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.kylin.dto.param.PerformanceStep1Param; import com.liquidnet.service.kylin.dto.param.PerformanceStep1Param;
import com.liquidnet.service.kylin.dto.param.PerformanceStep2Param;
import com.liquidnet.service.kylin.entity.KylinPerformances; import com.liquidnet.service.kylin.entity.KylinPerformances;
/** /**
...@@ -14,8 +15,8 @@ import com.liquidnet.service.kylin.entity.KylinPerformances; ...@@ -14,8 +15,8 @@ import com.liquidnet.service.kylin.entity.KylinPerformances;
*/ */
public interface IKylinPerformancesPartnerService extends IService<KylinPerformances> { public interface IKylinPerformancesPartnerService extends IService<KylinPerformances> {
boolean createStep1(PerformanceStep1Param step1Param); String createStep1(PerformanceStep1Param step1Param);
boolean createStep2(); boolean createStep2(PerformanceStep2Param step1Param);
} }
package com.liquidnet.service.kylin.service.partner;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.kylin.dto.param.CreateTicketTimesParam;
import com.liquidnet.service.kylin.dto.vo.TicketTimesVo;
import com.liquidnet.service.kylin.dto.vo.TicketVo;
import com.liquidnet.service.kylin.entity.KylinTicketTimes;
import java.util.List;
/**
* <p>
* 场次 服务类
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
public interface IKylinTicketTimesPartnerService extends IService<KylinTicketTimes> {
TicketTimesVo createTimes(CreateTicketTimesParam createTicketTimesParam);
Boolean deleteTimes(String ticketTimesId);
TicketTimesVo changeTimes(CreateTicketTimesParam createTicketTimesParam);
List<TicketTimesVo> getTimesMongo(String performancesId);
}
package com.liquidnet.service.kylin.service.partner;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.kylin.dto.param.TicketCreateParam;
import com.liquidnet.service.kylin.dto.vo.TicketTimesVo;
import com.liquidnet.service.kylin.dto.vo.TicketVo;
import com.liquidnet.service.kylin.entity.KylinTickets;
import java.util.List;
/**
* <p>
* 票 服务类
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
public interface IKylinTicketsPartnerService extends IService<KylinTickets> {
TicketVo createTicket(TicketCreateParam ticketCreateParam);
TicketVo updateTicket(TicketCreateParam ticketCreateParam);
boolean deleteTicket(String ticketsId);
TicketVo copyTicket(String ticketsId);
List<TicketVo> getTicketMongo(String timesId);
boolean submitTicketByTimes(String timesId);
}
...@@ -96,7 +96,8 @@ public class MybatisPlusCodeGenerator { ...@@ -96,7 +96,8 @@ public class MybatisPlusCodeGenerator {
String resourcePath = "/Users/hujiachen/Downloads/tmp"; String resourcePath = "/Users/hujiachen/Downloads/tmp";
String directory = "com.liquidnet.service.kylin"; String directory = "com.liquidnet.service.kylin";
// String[] dbTableArray = new String[]{"kylin_fields","kylin_field_status","kylin_field_relations"}; // String[] dbTableArray = new String[]{"kylin_fields","kylin_field_status","kylin_field_relations"};
String[] dbTableArray = new String[]{"kylin_performances","kylin_performance_status","kylin_performance_relations"}; // String[] dbTableArray = new String[]{"kylin_performances","kylin_performance_status","kylin_performance_relations"};
String[] dbTableArray = new String[]{"kylin_ticket_status","kylin_ticket_time_relation","kylin_ticket_times","kylin_ticket_relations","kylin_tickets"};
doGenerator(resourcePath, dsc, directory, dbTableArray); doGenerator(resourcePath, dsc, directory, dbTableArray);
} }
......
package com.liquidnet.service.kylin.dao;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class BannerDetailsDao implements Serializable {
@ApiModelProperty(value = "Banner主键ID")
private String bannersId;
@ApiModelProperty(value = "标题")
private String name;
@ApiModelProperty(value = "封面图")
private String coverImg;
@ApiModelProperty(value = "跳转目标id或者url")
private String targetId;
@ApiModelProperty(value = "跳转类型 6演出跳转 7商品跳转 8巡演跳转 12展示分享按钮的web连接 14积分商品详情 100活动跳转 999不跳转 998个人信息跳转")
private Integer type;
@ApiModelProperty(value = "是否显示 0-否,1-是")
private Integer isShow;
@ApiModelProperty(value = "展示位置")
private Integer position;
@ApiModelProperty(value = "排序权重 越大越靠前")
private Integer sort;
@ApiModelProperty(value = "备注")
private String comment;
@ApiModelProperty(value = "创建时间")
private String createdAt;
@ApiModelProperty(value = "修改时间")
private String updatedAt;
}
package com.liquidnet.service.kylin.dao;
import lombok.Data;
import java.io.Serializable;
@Data
public class BannerDetailsListDao implements Serializable {
private String bannersId;
private String name;
private String coverImg;
private String targetId;
private Integer type;
private Integer isShow;
private Integer position;
private Integer sort;
private String comment;
}
package com.liquidnet.service.kylin.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>
* 轮播图 模型
* </p>
*
* @author jiangxiulong
* @since 2021-05-02
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class KylinBanners implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Integer mid;
/**
* banners_id
*/
private String bannersId;
/**
* 标题
*/
private String name;
/**
* 封面图
*/
private String coverImg;
/**
* 跳转id/url
*/
private String targetId;
/**
* 跳转类型 6演出跳转 7商品跳转 8巡演跳转 12展示分享按钮的web连接 14积分商品详情 100活动跳转 999不跳转 998个人信息跳转
*/
private Integer type;
/**
* 是否展示
*/
private Integer isShow;
/**
* 展示位置
*/
private Integer position;
/**
* 排序权重
*/
private Integer sort;
/**
* comment
*/
private String comment;
/**
* 是否删除 1正常 已删除
*/
private Integer isDeleted;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 修改时间
*/
private LocalDateTime updatedAt;
}
...@@ -64,6 +64,17 @@ public class KylinPerformanceStatus implements Serializable { ...@@ -64,6 +64,17 @@ public class KylinPerformanceStatus implements Serializable {
*/ */
private Integer auditStatus; private Integer auditStatus;
/**
* 是否实名 0不需要 1需要
*/
private Integer isTrueName;
/**
* 限购张数 0无限 (开启实名 则实名限购 未开始为账号限购)
*/
private Integer limitCount;
/** /**
* 创建时间 * 创建时间
*/ */
......
package com.liquidnet.service.kylin.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>
* 票
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class KylinTicketRelations implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Integer mid;
/**
* ticket_relations_id
*/
private String ticketRelationsId;
/**
* 票关联id
*/
private String ticketId;
/**
* 关联场次id
*/
private String timesId;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 修改时间
*/
private LocalDateTime updatedAt;
}
package com.liquidnet.service.kylin.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>
* 票
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class KylinTicketStatus implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Integer mid;
/**
* ticket_status_id
*/
private String ticketStatusId;
/**
* 票关联id
*/
private String ticketId;
/**
* 是否学生票 0否 1是
*/
private Integer isStudent;
/**
* 是否电子票 0否 1是
*/
private Integer isElectronic;
/**
* 是否快递票 0否 1是
*/
private Integer isExpress;
/**
* 票状态 -1删除;0未提交;1审核中;2审核中(自动在售);3审核通过;4审核未通过;6在售;7停售;8售罄;9未开始;10已结束
*/
private Integer status;
/**
* 可验证次数
*/
private Integer counts;
/**
* 兑换状态 6可兑换 7不可兑换
*/
private Integer statusExchange;
/**
* 是否显示二维码 0否 1是
*/
private Integer isShowCode;
/**
* 二维码显示时间
*/
private LocalDateTime qrCodeShowTime;
/**
* 是否开启缺票登记 0否 1是
*/
private Integer isLackRegister;
/**
* 总库存
*/
private Integer totalGeneral;
/**
* 总兑换库存
*/
private Integer totalExchange;
/**
* 剩余库存
*/
private Integer surplusGeneral;
/**
* 剩余兑换库存
*/
private Integer surplusExchange;
/**
* 1寄付 2到付
*/
private Integer expressType;
/**
* 是否开启转赠 0关闭 1开启
*/
private Integer isTransfer;
/**
* 是否会员专属 0不是 1是
*/
private Integer isExclusive;
/**
* 是否关联会员 0不是 1是
*/
private Integer isMember;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 修改时间
*/
private LocalDateTime updatedAt;
}
package com.liquidnet.service.kylin.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>
* 场次关联
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class KylinTicketTimeRelation implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Integer mid;
/**
* ticket_time_relation_id
*/
private String ticketTimeRelationId;
/**
* 场次id
*/
private String timesId;
/**
* 关联演出id
*/
private String performanceId;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 修改时间
*/
private LocalDateTime updatedAt;
}
package com.liquidnet.service.kylin.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>
* 场次
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class KylinTicketTimes implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Integer mid;
/**
* ticket_times_id
*/
private String ticketTimesId;
/**
* 标题
*/
private String title;
/**
* 0不可用 1可用
*/
private int status;
/**
* 1单日票 2通票
*/
private int type;
/**
* 售票开始时间
*/
private LocalDateTime timeStart;
/**
* 售票结束时间
*/
private LocalDateTime timeEnd;
/**
* comment
*/
private String comment;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 修改时间
*/
private LocalDateTime updatedAt;
}
package com.liquidnet.service.kylin.entity;
import java.math.BigDecimal;
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>
* 票
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class KylinTickets implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Integer mid;
/**
* tickets_id
*/
private String ticketsId;
/**
* 票名称
*/
private String title;
/**
* 票类型 1单日票 2通票
*/
private Integer types;
/**
* 票单价
*/
private BigDecimal price;
/**
* 快递费
*/
private BigDecimal priceExpress;
/**
* 会员优惠价格
*/
private BigDecimal priceDiscountMember;
/**
* 优惠价格
*/
private BigDecimal priceDiscount;
/**
* 票种描述
*/
private String describes;
/**
* 快递票类型说明
*/
private String describeExpress;
/**
* 电子票票类型说明
*/
private String describeElectronic;
/**
* 会员提前购买分钟数
*/
private Integer advanceMinuteMember;
/**
* 售卖开始时间
*/
private LocalDateTime timeStart;
/**
* 售卖结束时间
*/
private LocalDateTime timeEnd;
/**
* 快递票结束时间
*/
private LocalDateTime timeEndExpress;
/**
* 适用开始时间
*/
private LocalDateTime useStart;
/**
* 适用结束时间
*/
private LocalDateTime useEnd;
/**
* 支付倒计时时间
*/
private Integer payCountdownMinute;
/**
* 开票提醒倒计时(分钟数)
*/
private Integer saleRemindMinute;
/**
* comment
*/
private String comment;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 修改时间
*/
private LocalDateTime updatedAt;
}
package com.liquidnet.service.kylin.mapper;
import com.liquidnet.service.kylin.dao.BannerDetailsDao;
import com.liquidnet.service.kylin.dao.BannerDetailsListDao;
import com.liquidnet.service.kylin.entity.KylinBanners;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
import java.util.Map;
/**
* <p>
* 轮播图 Mapper 接口 处理数据库
* </p>
*
* @author jiangxiulong
* @since 2021-05-01
*/
public interface KylinBannersMapper extends BaseMapper<KylinBanners> {
// 详情
BannerDetailsDao detail(String bannersId);
//列表
List<BannerDetailsListDao> searchBannersList(Map<String,Object> map);
//分页数量
long searchBannersCount(Map<String,Object> map);
}
package com.liquidnet.service.kylin.mapper;
import com.liquidnet.service.kylin.entity.KylinTicketRelations;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 票 Mapper 接口
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
public interface KylinTicketRelationsMapper extends BaseMapper<KylinTicketRelations> {
}
package com.liquidnet.service.kylin.mapper;
import com.liquidnet.service.kylin.entity.KylinTicketStatus;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 票 Mapper 接口
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
public interface KylinTicketStatusMapper extends BaseMapper<KylinTicketStatus> {
}
package com.liquidnet.service.kylin.mapper;
import com.liquidnet.service.kylin.entity.KylinTicketTimeRelation;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 场次关联 Mapper 接口
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
public interface KylinTicketTimeRelationMapper extends BaseMapper<KylinTicketTimeRelation> {
}
package com.liquidnet.service.kylin.mapper;
import com.liquidnet.service.kylin.entity.KylinTicketTimes;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 场次 Mapper 接口
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
public interface KylinTicketTimesMapper extends BaseMapper<KylinTicketTimes> {
}
package com.liquidnet.service.kylin.mapper;
import com.liquidnet.service.kylin.entity.KylinTickets;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 票 Mapper 接口
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
public interface KylinTicketsMapper extends BaseMapper<KylinTickets> {
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liquidnet.service.kylin.mapper.KylinBannersMapper">
<!-- 详情 -->
<resultMap id="bannerDetailsResult" type="com.liquidnet.service.kylin.dao.BannerDetailsDao">
<result column="banners_id" property="bannersId"/>
<result column="name" property="name"/>
<result column="cover_img" property="coverImg"/>
<result column="target_id" property="targetId"/>
<result column="type" property="type"/>
<result column="is_show" property="isShow"/>
<result column="position" property="position"/>
<result column="sort" property="sort"/>
<result column="comment" property="comment"/>
<result column="created_at" property="createdAt"/>
<result column="updated_at" property="updatedAt"/>
</resultMap>
<select id="detail" parameterType="java.lang.String" resultMap="bannerDetailsResult">
SELECT
*
FROM kylin_banners
<where>
banners_id=#{bannersId}
</where>
</select>
<!-- admin banner列表 -->
<select id="searchBannersList" parameterType="java.util.Map" resultMap="bannerDetailsResult">
SELECT
*
FROM kylin_banners
<where>
is_deleted = 1
<if test="name != ''">
AND name LIKE concat('%', #{name}, '%')
</if>
<if test="type != ''">
AND type=#{type}
</if>
<if test="isShow != ''">
AND is_show=#{isShow}
</if>
<if test="position != ''">
AND position=#{position}
</if>
</where>
ORDER BY sort DESC
LIMIT #{page},#{size}
</select>
<!-- admin banner列表数量 -->
<select id="searchBannersCount" parameterType="java.util.Map" resultType="long">
SELECT COUNT(0)
FROM kylin_banners
<where>
is_deleted = 1
<if test="name != ''">
AND name LIKE concat('%', #{name}, '%')
</if>
<if test="type != ''">
AND type=#{type}
</if>
<if test="isShow != ''">
AND is_show=#{isShow}
</if>
<if test="position != ''">
AND position=#{position}
</if>
</where>
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liquidnet.service.kylin.mapper.KylinTicketTimesMapper">
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liquidnet.service.kylin.mapper.KylinTicketsMapper">
</mapper>
package com.liquidnet.service.kylin.controller; package com.liquidnet.service.kylin.controller;
import com.liquidnet.service.ResponseDto; import com.liquidnet.service.ResponseDto;
import com.liquidnet.service.kylin.dto.param.FieldsParam;
import com.liquidnet.service.kylin.dto.vo.FieldsVo; import com.liquidnet.service.kylin.dto.vo.FieldsVo;
import com.liquidnet.service.kylin.service.impl.FieldsServiceImpl; import com.liquidnet.service.kylin.service.impl.FieldsServiceImpl;
import io.swagger.annotations.*; import io.swagger.annotations.*;
...@@ -12,7 +11,7 @@ import java.util.HashMap; ...@@ -12,7 +11,7 @@ import java.util.HashMap;
@Api @Api
@RestController @RestController
@RequestMapping("/user/fields") @RequestMapping("kylin/user/fields")
public class FieldsController { public class FieldsController {
@Autowired @Autowired
......
...@@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.RestController;
* @since 2021-05-05 * @since 2021-05-05
*/ */
@RestController @RestController
@RequestMapping("/user/performance") @RequestMapping("kylin/user/performance")
public class KylinPerformancesController { public class KylinPerformancesController {
} }
package com.liquidnet.service.kylin.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 场次 前端控制器
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
@RestController
@RequestMapping("kylin/kylin-ticket-times")
public class KylinTicketTimesController {
}
package com.liquidnet.service.kylin.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 票 前端控制器
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
@RestController
@RequestMapping("kylin/kylin-tickets")
public class KylinTicketsController {
}
package com.liquidnet.service.kylin.controller.admin;
import com.liquidnet.service.ResponseDto;
import com.liquidnet.service.kylin.dao.BannerDetailsDao;
import com.liquidnet.service.kylin.dao.BannerDetailsListDao;
import com.liquidnet.service.kylin.dto.param.BannersParam;
import com.liquidnet.service.kylin.dto.param.BannersSearchParam;
import com.liquidnet.service.kylin.dto.vo.PagerVo;
import com.liquidnet.service.kylin.service.impl.admin.KylinBannersServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 轮播图 后端管理控制器
* </p>
*
* @author jiangxiulong
* @since 2021-05-01
*/
@Api
@RestController
@RequestMapping("/admin/banners")
public class KylinBannersAdminController {
@Autowired
private KylinBannersServiceImpl kylinBannersServiceImpl;
@PostMapping("")
@ApiOperation(value = "创建banner")
public ResponseDto<Object> create(@RequestBody @Validated BannersParam bannersParam) {
Boolean res = kylinBannersServiceImpl.create(bannersParam);
if (res) {
return ResponseDto.success();
} else {
return ResponseDto.failure("添加banner失败");
}
}
@PutMapping("")
@ApiOperation(value = "修改banner")
public ResponseDto<Object> update(@RequestBody BannersParam bannersParam) {
Boolean res = kylinBannersServiceImpl.update(bannersParam);
if (res) {
return ResponseDto.success();
} else {
return ResponseDto.failure("修改banner失败");
}
}
@GetMapping("{bannersId}")
@ApiOperation(value = "banner详情")
public ResponseDto<BannerDetailsDao> detail(@PathVariable("bannersId") String bannersId) {
BannerDetailsDao result = null;
result = kylinBannersServiceImpl.detail(bannersId);
if (null != result) {
return ResponseDto.success(result);
} else {
return ResponseDto.failure("获取banner详情失败");
}
}
@PostMapping("list")
@ApiOperation(value = "banner列表")
public ResponseDto<PagerVo<BannerDetailsListDao>> bannerList(@RequestBody BannersSearchParam bannersSearchParam) {
List<BannerDetailsListDao> result = kylinBannersServiceImpl.bannerList(bannersSearchParam);
Long total = kylinBannersServiceImpl.bannerListCount(bannersSearchParam);
PagerVo<BannerDetailsListDao> pagerVo = new PagerVo();
pagerVo.setRows(result);
pagerVo.setTotal(total);
if (pagerVo.getRows().size() > 0) {
return ResponseDto.success(pagerVo);
} else {
return ResponseDto.failure("获取列表失败");
}
}
@DeleteMapping("{bannersId}")
@ApiOperation(value = "删除banner")
public ResponseDto<Object> deleteTimes(@PathVariable("bannersId") String bannersId) {
boolean result = kylinBannersServiceImpl.delete(bannersId);
if (result) {
return ResponseDto.success("删除成功");
} else {
return ResponseDto.failure("删除失败");
}
}
}
...@@ -17,7 +17,7 @@ import java.util.HashMap; ...@@ -17,7 +17,7 @@ import java.util.HashMap;
@Api @Api
@RestController @RestController
@RequestMapping("/partner/fields") @RequestMapping("kylin/partner/fields")
public class FieldsPartnerController { public class FieldsPartnerController {
@Autowired @Autowired
......
package com.liquidnet.service.kylin.controller.partner;
import com.liquidnet.service.ResponseDto;
import com.liquidnet.service.kylin.dto.param.CreateTicketTimesParam;
import com.liquidnet.service.kylin.dto.param.PerformanceStep1Param;
import com.liquidnet.service.kylin.dto.vo.TicketTimesVo;
import com.liquidnet.service.kylin.service.impl.partner.KylinTicketTimesPartnerServiceImpl;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* <p>
* 场次 前端控制器
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
@RestController
@RequestMapping("kylin/partner/times")
public class KylinTicketTimesPartnerController {
@Autowired
private KylinTicketTimesPartnerServiceImpl ticketTimesPartnerService;
@PostMapping(value = "")
@ApiOperation(value = "创建场次")
@ApiResponse(response = TicketTimesVo.class, code = 200, message = "接口返回对象参数")
public ResponseDto<TicketTimesVo> createTimes(@RequestBody CreateTicketTimesParam createTicketTimesParam) {
TicketTimesVo result = null;
result = ticketTimesPartnerService.createTimes(createTicketTimesParam);
if (null == result) {
return ResponseDto.failure("创建失败");
} else {
return ResponseDto.success(result);
}
}
@DeleteMapping(value = "")
@ApiOperation(value = "删除场次")
@ApiResponse(response = TicketTimesVo.class, code = 200, message = "接口返回对象参数")
public ResponseDto<String> deleteTimes(@RequestParam("ticketTimesId") String ticketTimesId) {
boolean result = ticketTimesPartnerService.deleteTimes(ticketTimesId);
if (result) {
return ResponseDto.success("删除成功");
} else {
return ResponseDto.failure("删除失败");
}
}
@PutMapping(value = "")
@ApiOperation(value = "修改场次")
@ApiResponse(response = TicketTimesVo.class, code = 200, message = "接口返回对象参数")
public ResponseDto<TicketTimesVo> deleteTimes(@RequestBody CreateTicketTimesParam createTicketTimesParam) {
TicketTimesVo result = null;
result = ticketTimesPartnerService.changeTimes(createTicketTimesParam);
if (null == result) {
return ResponseDto.failure("修改失败");
} else {
return ResponseDto.success(result);
}
}
}
package com.liquidnet.service.kylin.controller.partner;
import com.liquidnet.service.ResponseDto;
import com.liquidnet.service.kylin.dto.param.TicketCreateParam;
import com.liquidnet.service.kylin.dto.vo.FieldsVo;
import com.liquidnet.service.kylin.dto.vo.TicketVo;
import com.liquidnet.service.kylin.mapper.KylinTicketsMapper;
import com.liquidnet.service.kylin.service.impl.KylinTicketsServiceImpl;
import com.liquidnet.service.kylin.service.impl.partner.FieldsPartnerServiceImpl;
import com.liquidnet.service.kylin.service.impl.partner.KylinTicketsPartnerServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* <p>
* 票 前端控制器
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
@Api
@RestController
@RequestMapping("kylin/partner/ticket")
public class KylinTicketsPartnerController {
@Autowired
private KylinTicketsPartnerServiceImpl ticketsPartnerService;
@PostMapping(value = "")
@ApiOperation(value = "创建票务")
@ApiResponse(response = TicketVo.class, code = 200, message = "接口返回对象参数")
public ResponseDto<TicketVo> createTicket(@RequestBody TicketCreateParam ticketCreateParam) {
TicketVo result = null;
result = ticketsPartnerService.createTicket(ticketCreateParam);
if (null == result) {
return ResponseDto.failure("创建票务失败");
} else {
return ResponseDto.success(result);
}
}
@PutMapping(value = "")
@ApiOperation(value = "修改票务")
@ApiResponse(response = TicketVo.class, code = 200, message = "接口返回对象参数")
public ResponseDto<TicketVo> updateTicket(@RequestBody TicketCreateParam ticketCreateParam) {
TicketVo result = null;
result = ticketsPartnerService.updateTicket(ticketCreateParam);
if (null == result) {
return ResponseDto.failure("修改票务失败");
} else {
return ResponseDto.success(result);
}
}
@DeleteMapping(value = "")
@ApiOperation(value = "删除票务")
@ApiResponse( code = 200, message = "接口返回对象参数")
public ResponseDto<String> deleteTicket(@RequestParam("ticketsId") String ticketsId) {
boolean result = ticketsPartnerService.deleteTicket(ticketsId);
if (!result) {
return ResponseDto.failure("删除票务失败");
} else {
return ResponseDto.success("删除成功");
}
}
@PostMapping(value = "/copy")
@ApiOperation(value = "复制票务")
@ApiResponse(response = TicketVo.class, code = 200, message = "接口返回对象参数")
public ResponseDto<TicketVo> copyTicket(@RequestParam("ticketsId") String ticketsId) {
TicketVo result = null;
result = ticketsPartnerService.copyTicket(ticketsId);
if (null == result) {
return ResponseDto.failure("复制票务失败");
} else {
return ResponseDto.success(result);
}
}
}
package com.liquidnet.service.kylin.controller.partner;
import com.liquidnet.service.ResponseDto;
import com.liquidnet.service.kylin.dto.param.PerformanceStep1Param;
import com.liquidnet.service.kylin.dto.param.PerformanceStep2Param;
import com.liquidnet.service.kylin.service.impl.partner.KylinPerformancesPartnerServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@Api
@RestController
@RequestMapping("kylin/partner/performance")
public class PerformancePartnerController {
@Autowired
private KylinPerformancesPartnerServiceImpl performancesPartnerService;
@PostMapping(value = "step1")
@ApiOperation(value = "创建演出第一步")
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<String> createStep1(@RequestBody PerformanceStep1Param performanceStep1Param) {
String result = performancesPartnerService.createStep1(performanceStep1Param);
if (result.isEmpty()) {
return ResponseDto.failure("创建失败");
} else {
return ResponseDto.success(result);
}
}
@PostMapping(value = "step2")
@ApiOperation(value = "创建演出第二步")
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<String> createStep2(@RequestBody PerformanceStep2Param performanceStep2Param) {
boolean result = performancesPartnerService.createStep2(performanceStep2Param);
if (!result) {
return ResponseDto.failure("提交失败");
} else {
return ResponseDto.success("提交完成");
}
}
}
package com.liquidnet.service.kylin.service.impl;
import com.liquidnet.service.kylin.entity.KylinTicketTimes;
import com.liquidnet.service.kylin.mapper.KylinTicketTimesMapper;
import com.liquidnet.service.kylin.service.IKylinTicketTimesService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 场次 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
@Service
public class KylinTicketTimesServiceImpl extends ServiceImpl<KylinTicketTimesMapper, KylinTicketTimes> implements IKylinTicketTimesService {
}
package com.liquidnet.service.kylin.service.impl;
import com.liquidnet.service.kylin.entity.KylinTickets;
import com.liquidnet.service.kylin.mapper.KylinTicketsMapper;
import com.liquidnet.service.kylin.service.IKylinTicketsService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 票 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
@Service
public class KylinTicketsServiceImpl extends ServiceImpl<KylinTicketsMapper, KylinTickets> implements IKylinTicketsService {
}
package com.liquidnet.service.kylin.service.impl.admin;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dao.BannerDetailsDao;
import com.liquidnet.service.kylin.dao.BannerDetailsListDao;
import com.liquidnet.service.kylin.dto.param.BannersParam;
import com.liquidnet.service.kylin.dto.param.BannersSearchParam;
import com.liquidnet.service.kylin.dto.vo.BannersVo;
import com.liquidnet.service.kylin.entity.KylinBanners;
import com.liquidnet.service.kylin.mapper.KylinBannersMapper;
import com.liquidnet.service.kylin.service.admin.IKylinBannersService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
import com.mysql.cj.util.StringUtils;
import org.bson.Document;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* <p>
* 轮播图 服务实现类
* </p>
*
* @author jiangxiulong
* @since 2021-05-02
*/
@Service
public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, KylinBanners> implements IKylinBannersService {
@Autowired
private KylinBannersMapper bannersMapper;
@Autowired
MongoTemplate mongoTemplate;
@Autowired
private MongoConverter mongoConverter;
@Autowired
RedisUtil redisUtil;
public boolean create(BannersParam bannersParam) {
try {
String bannersId = IDGenerator.nextSnowId().toString();
LocalDateTime createdAt = LocalDateTime.now();
bannersMapper.insert(bannersParam.getFields(bannersId, createdAt));
BannersVo bannersVo = new BannersVo();
BeanUtils.copyProperties(bannersParam, bannersVo);
bannersVo.setBannersId(bannersId);
bannersVo.setCreatedAt(createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
bannersVo.setUpdatedAt("");
bannersVo.setIsDeleted(1);
if (null == bannersParam.getSort()) {
bannersVo.setSort(0);
}
if (StringUtils.isNullOrEmpty(bannersParam.getComment())) {
bannersVo.setComment("");
}
mongoTemplate.insert(bannersVo, BannersVo.class.getSimpleName());
redisUtil.hset(KylinRedisConst.BANNERS, bannersId, bannersVo);
return true;
} catch (Exception e) {
return false;
}
}
public boolean update(BannersParam bannersParam) {
try {
String bannersId = bannersParam.getBannersId();
LocalDateTime updatedAt = LocalDateTime.now();
KylinBanners params = bannersParam.getFields(null, null);
params.setUpdatedAt(updatedAt);
bannersMapper.update(params, new UpdateWrapper<KylinBanners>().eq("banners_id", bannersId));
BannersVo bannersVo = new BannersVo();
BeanUtils.copyProperties(bannersParam, bannersVo);
bannersVo.setBannersId(bannersId);
bannersVo.setUpdatedAt(updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
BasicDBObject object = new BasicDBObject("$set", JSON.parse(JsonUtils.toJson(bannersVo)));
Document doc = mongoTemplate.getCollection(BannersVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("bannersId").is(bannersId)).getQueryObject(),
object,
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
redisUtil.hset(KylinRedisConst.BANNERS, bannersId, JsonUtils.fromJson(doc.toJson(), BannersVo.class));
return true;
} catch (Exception e) {
return false;
}
}
public BannerDetailsDao detail(String bannersId) {
BannerDetailsDao data = bannersMapper.detail(bannersId);
return data;
}
public List<BannerDetailsListDao> bannerList(BannersSearchParam bannersSearchParam) {
try {
bannersSearchParam.setPage((bannersSearchParam.getPage() - 1) * bannersSearchParam.getSize());
List<BannerDetailsListDao> data = bannersMapper.searchBannersList(BeanUtil.convertBeanToMap(bannersSearchParam));
return data;
} catch (Exception e) {
return new ArrayList<>();
}
}
public Long bannerListCount(BannersSearchParam bannersSearchParam) {
try {
Long count = bannersMapper.searchBannersCount(BeanUtil.convertBeanToMap(bannersSearchParam));
return count;
} catch (Exception e) {
return 0L;
}
}
public Boolean delete(String bannersId) {
try {
LocalDateTime updatedAt = LocalDateTime.now();
KylinBanners kylinBanners = new KylinBanners();
kylinBanners.setUpdatedAt(updatedAt);
kylinBanners.setIsDeleted(0);
bannersMapper.update(kylinBanners
, new UpdateWrapper<KylinBanners>().eq("banners_id", bannersId));
// mongo 操作
HashMap<String, Object> map = new HashMap<>();
map.put("updatedAt", updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
map.put("isDeleted", 0);
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
Document doc = mongoTemplate.getCollection(BannersVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("bannersId").is(bannersId)).getQueryObject(),
object,
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
// redis 操作
redisUtil.hset(KylinRedisConst.BANNERS, bannersId, JsonUtils.fromJson(doc.toJson(), BannersVo.class));
return true;
} catch (Exception e) {
return false;
}
}
}
...@@ -2,18 +2,23 @@ package com.liquidnet.service.kylin.service.impl.partner; ...@@ -2,18 +2,23 @@ package com.liquidnet.service.kylin.service.impl.partner;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.commons.lang.util.IDGenerator; import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.kylin.dto.PerformancePartnerDto; import com.liquidnet.service.kylin.dto.param.PerformanceCreateParam;
import com.liquidnet.service.kylin.dto.param.PerformanceStep1Param; import com.liquidnet.service.kylin.dto.param.PerformanceStep1Param;
import com.liquidnet.service.kylin.dto.param.PerformanceStep2Param;
import com.liquidnet.service.kylin.dto.vo.TicketTimesVo;
import com.liquidnet.service.kylin.entity.KylinPerformances; import com.liquidnet.service.kylin.entity.KylinPerformances;
import com.liquidnet.service.kylin.mapper.KylinPerformancesMapper; import com.liquidnet.service.kylin.mapper.KylinPerformancesMapper;
import com.liquidnet.service.kylin.service.partner.IKylinPerformancesPartnerService; import com.liquidnet.service.kylin.service.partner.IKylinPerformancesPartnerService;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.List;
/** /**
* <p> * <p>
...@@ -29,37 +34,72 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor ...@@ -29,37 +34,72 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
@Autowired @Autowired
private MongoTemplate mongoTemplate; private MongoTemplate mongoTemplate;
@Autowired
private KylinTicketsPartnerServiceImpl ticketsPartnerService;
@Autowired
private KylinTicketTimesPartnerServiceImpl ticketTimesPartnerService;
@Override @Override
public boolean createStep1(PerformanceStep1Param step1Param) { public String createStep1(PerformanceStep1Param step1Param) {
// 获取 主键id // 获取 主键id
String performanceId = IDGenerator.nextSnowId().toString(); String performanceId = IDGenerator.nextSnowId().toString();
// 获取 当前时间 -> 创建时间 // 获取 当前时间 -> 创建时间
LocalDateTime createdAt = LocalDateTime.now(); LocalDateTime createdAt = LocalDateTime.now();
try { try {
// mongo 操作 记录演出中间数据
// PerformancePartnerDto performancePartnerDto = new PerformancePartnerDto();
// BeanUtils.copyProperties(step1Param, performancePartnerDto);
// performancePartnerDto.setPerformancesId(performanceId);
// performancePartnerDto.setCreatedAt(createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
// performancePartnerDto.setUpdatedAt(createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
// PerformancePartnerDto data = mongoTemplate.insert(
// performancePartnerDto, PerformancePartnerDto.class.getSimpleName()
// );
step1Param.setCreatedAt(createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); step1Param.setCreatedAt(createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
step1Param.setPerformancesId(performanceId); step1Param.setPerformancesId(performanceId);
PerformanceStep1Param data = mongoTemplate.insert( PerformanceStep1Param data = mongoTemplate.insert(
step1Param, PerformanceStep1Param.class.getSimpleName() step1Param, PerformanceStep1Param.class.getSimpleName()
); );
return true; return performanceId;
} catch (Exception e) { } catch (Exception e) {
return false; return "";
} }
} }
@Override @Override
public boolean createStep2() { public boolean createStep2(PerformanceStep2Param step2Param) {
return false;
// 获取 主键id
String performanceId = step2Param.getPerformancesId();
// 获取 当前时间 -> 创建时间
LocalDateTime createdAt = LocalDateTime.now();
// 获取第一步数据
if (step2Param.getIsSubmit() == 1) { // 提交
PerformanceStep1Param info = mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(performanceId)),
PerformanceStep1Param.class,
PerformanceStep1Param.class.getSimpleName());
PerformanceCreateParam isExists = mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(performanceId)),
PerformanceCreateParam.class,
PerformanceCreateParam.class.getSimpleName());
if(isExists!=null){
return false;
}
// 提交 演出
PerformanceCreateParam performanceCreateParam = new PerformanceCreateParam();
BeanUtils.copyProperties(info, performanceCreateParam);
performanceCreateParam.setIsTrueName(step2Param.getIsTrueName());
performanceCreateParam.setLimitCount(step2Param.getLimitCount());
performanceCreateParam.setCreatedAt(createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
performanceCreateParam.setStatus(1);
PerformanceCreateParam data = mongoTemplate.insert(
performanceCreateParam, PerformanceCreateParam.class.getSimpleName()
);
//提交 票
List<TicketTimesVo> ticketTimesVoList = ticketTimesPartnerService.getTimesMongo(performanceId);
for (TicketTimesVo ticketTimes : ticketTimesVoList) {
ticketsPartnerService.submitTicketByTimes(ticketTimes.getTicketTimesId());
}
} else { //保存
return false;
}
return true;
} }
} }
package com.liquidnet.service.kylin.service.impl.partner;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.param.CreateTicketTimesParam;
import com.liquidnet.service.kylin.dto.vo.TicketTimesVo;
import com.liquidnet.service.kylin.dto.vo.TicketVo;
import com.liquidnet.service.kylin.entity.KylinTicketTimeRelation;
import com.liquidnet.service.kylin.entity.KylinTicketTimes;
import com.liquidnet.service.kylin.mapper.KylinTicketTimeRelationMapper;
import com.liquidnet.service.kylin.mapper.KylinTicketTimesMapper;
import com.liquidnet.service.kylin.service.partner.IKylinTicketTimesPartnerService;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
import org.bson.Document;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.List;
/**
* <p>
* 场次 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
@Service
public class KylinTicketTimesPartnerServiceImpl extends ServiceImpl<KylinTicketTimesMapper, KylinTicketTimes> implements IKylinTicketTimesPartnerService {
@Autowired
private MongoTemplate mongoTemplate;
@Autowired
private RedisUtil redisUtil;
@Autowired
private KylinTicketTimesMapper ticketTimesMapper;
@Autowired
private KylinTicketTimeRelationMapper ticketTimeRelationMapper;
@Autowired
private MongoConverter mongoConverter;
@Override
public TicketTimesVo createTimes(CreateTicketTimesParam createTicketTimesParam) {
// 获取 主键id
String ticketTimesId = IDGenerator.nextSnowId().toString();
// 获取 当前时间 -> 创建时间
LocalDateTime createdAt = LocalDateTime.now();
// 标题
String title = "";
if (createTicketTimesParam.getType() == 1) {
title = createTicketTimesParam.getTimeStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
} else {
title = createTicketTimesParam.getTimeStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")) + "-" + createTicketTimesParam.getTimeEnd().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
}
// mysql 操作
KylinTicketTimes ticketTimes = new KylinTicketTimes();
BeanUtils.copyProperties(createTicketTimesParam, ticketTimes);
ticketTimes.setTicketTimesId(ticketTimesId);
ticketTimes.setCreatedAt(createdAt);
ticketTimes.setStatus(1);
ticketTimes.setTitle(title);
ticketTimesMapper.insert(ticketTimes);
KylinTicketTimeRelation ticketTimeRelation = new KylinTicketTimeRelation();
ticketTimeRelation.setTicketTimeRelationId(IDGenerator.nextSnowId().toString());
ticketTimeRelation.setTimesId(ticketTimesId);
ticketTimeRelation.setPerformanceId(createTicketTimesParam.getPerformancesId());
ticketTimeRelation.setCreatedAt(createdAt);
ticketTimeRelationMapper.insert(ticketTimeRelation);
// mongo 操作
TicketTimesVo ticketTimesVo = new TicketTimesVo();
ticketTimesVo.setTicketTimesId(ticketTimesId);
ticketTimesVo.setTimeStart(createTicketTimesParam.getTimeStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
ticketTimesVo.setTimeEnd(createTicketTimesParam.getTimeStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
ticketTimesVo.setStatus(1);
ticketTimesVo.setTitle(title);
ticketTimesVo.setPerformancesId(createTicketTimesParam.getPerformancesId());
ticketTimesVo.setType(createTicketTimesParam.getType());
ticketTimesVo.setCreatedAt(createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
TicketTimesVo data = mongoTemplate.insert(
ticketTimesVo, TicketTimesVo.class.getSimpleName()
);
// redis 操作
redisUtil.hset(KylinRedisConst.TIMES, ticketTimesId, ticketTimesVo);
return ticketTimesVo;
}
@Override
public Boolean deleteTimes(String ticketTimesId) {
try {
LocalDateTime updatedAt = LocalDateTime.now();
KylinTicketTimes ticketTimes = new KylinTicketTimes();
ticketTimes.setUpdatedAt(updatedAt);
ticketTimes.setStatus(0);
ticketTimesMapper.update(ticketTimes
, new UpdateWrapper<KylinTicketTimes>().eq("ticket_times_id", ticketTimesId));
// mongo 操作
HashMap<String, Object> map = new HashMap<>();
map.put("updatedAt", updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
map.put("status", 0);
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
Document doc = mongoTemplate.getCollection(TicketTimesVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("ticketTimesId").is(ticketTimesId)).getQueryObject(),
object,
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
// redis 操作
redisUtil.hset(KylinRedisConst.TIMES, ticketTimesId, JsonUtils.fromJson(doc.toJson(), TicketTimesVo.class));
return true;
} catch (Exception e) {
return false;
}
}
@Override
public TicketTimesVo changeTimes(CreateTicketTimesParam createTicketTimesParam) {
try {
LocalDateTime updatedAt = LocalDateTime.now();
String title = "";
if (createTicketTimesParam.getType() == 1) {
title = createTicketTimesParam.getTimeStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
} else {
title = createTicketTimesParam.getTimeStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")) + "-" + createTicketTimesParam.getTimeEnd().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
}
createTicketTimesParam.setTitle(title);
// mysql 操作
KylinTicketTimes ticketTimes = new KylinTicketTimes();
BeanUtils.copyProperties(createTicketTimesParam, ticketTimes);
ticketTimes.setUpdatedAt(updatedAt);
ticketTimes.setStatus(1);
ticketTimesMapper.update(ticketTimes, new UpdateWrapper<KylinTicketTimes>().eq("ticket_times_id", createTicketTimesParam.getTicketTimesId()));
// mongo 操作
TicketTimesVo ticketTimesVo = new TicketTimesVo();
BeanUtils.copyProperties(createTicketTimesParam, ticketTimesVo);
ticketTimesVo.setTicketTimesId(createTicketTimesParam.getTicketTimesId());
ticketTimesVo.setUpdatedAt(updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
ticketTimesVo.setTimeStart(createTicketTimesParam.getTimeStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
ticketTimesVo.setTimeEnd(createTicketTimesParam.getTimeStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
ticketTimesVo.setStatus(1);
BasicDBObject object = new BasicDBObject("$set", JSON.parse(JsonUtils.toJson(ticketTimesVo)));
Document doc = mongoTemplate.getCollection(TicketTimesVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("ticketTimesId").is(createTicketTimesParam.getTicketTimesId())).getQueryObject(),
object,
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
// redis 操作
redisUtil.hset(KylinRedisConst.TIMES, createTicketTimesParam.getTicketTimesId(), JsonUtils.fromJson(doc.toJson(), TicketTimesVo.class));
return JsonUtils.fromJson(doc.toJson(), TicketTimesVo.class);
}catch (Exception e){
return null;
}
}
@Override
public List<TicketTimesVo> getTimesMongo(String performancesId) {
return mongoTemplate.find(Query.query(Criteria.where("performancesId").is(performancesId)), TicketTimesVo.class, TicketTimesVo.class.getSimpleName());
}
}
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