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

Commit 6fbf3757 authored by 胡佳晨's avatar 胡佳晨

票务接口写完 待测试

parent 7bdda384
......@@ -21,7 +21,7 @@ liquidnet:
port: 6380
password: PO@B!Iud32
mongodb:
host: 172.16.3.11
host: 172.16.2.196
port: 27017
# gfsdatabasename: liquidnet_mgdb
#以下为各应用需要用到的ip及端口设置
......
......@@ -42,7 +42,7 @@ public class AdamEntersServiceImpl extends ServiceImpl<AdamEntersMapper, AdamEnt
@Override
public List<AdamEnters> list(String uid) {
List<AdamEnters> infoList = new ArrayList<>();
ç
Map<Object, Object> map = redisUtil.hmget(AdamRedisConst.INFO_ENTERS.concat(uid));
......
......@@ -2,5 +2,12 @@ package com.liquidnet.service.kylin.constant;
public class KylinRedisConst {
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 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;
}
......@@ -55,6 +55,12 @@ public class PerformanceStep1Param implements Serializable {
@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 = "")
@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 PerformanceStep2Param implements Serializable {
@ApiModelProperty(value = "演出id", example = "")
@JsonIgnore
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) {
KylinTickets kylinTickets = new KylinTickets();
BeanUtils.copyProperties(this, kylinTickets);
kylinTickets.setTicketsId(ticketsId);
kylinTickets.setPriceDiscount(BigDecimal.valueOf(0.00));
kylinTickets.setPriceDiscountMember(BigDecimal.valueOf(0.00));
kylinTickets.setCreatedAt(createdAt);
//TODO 各种说明文案
return kylinTickets;
}
@JsonIgnore
public KylinTicketStatus kylinTicketStatus(String ticketsId, LocalDateTime createdAt) {
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);
return kylinTicketStatus;
}
@JsonIgnore
public KylinTicketRelations kylinTicketRelations(String ticketsId, LocalDateTime createdAt) {
KylinTicketRelations kylinTicketRelations = new KylinTicketRelations();
BeanUtils.copyProperties(this, kylinTicketRelations);
kylinTicketRelations.setTicketId(ticketsId);
kylinTicketRelations.setTicketRelationsId(IDGenerator.nextSnowId().toString());
return kylinTicketRelations;
}
}
\ No newline at end of file
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> {
}
......@@ -2,6 +2,7 @@ package com.liquidnet.service.kylin.service.partner;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.kylin.dto.param.PerformanceStep1Param;
import com.liquidnet.service.kylin.dto.param.PerformanceStep2Param;
import com.liquidnet.service.kylin.entity.KylinPerformances;
/**
......@@ -14,8 +15,8 @@ import com.liquidnet.service.kylin.entity.KylinPerformances;
*/
public interface IKylinPerformancesPartnerService extends IService<KylinPerformances> {
boolean createStep1(PerformanceStep1Param step1Param);
String createStep1(PerformanceStep1Param step1Param);
boolean createStep2();
String 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.entity.KylinTicketTimes;
/**
* <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);
}
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;
/**
* <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);
}
......@@ -96,7 +96,8 @@ public class MybatisPlusCodeGenerator {
String resourcePath = "/Users/hujiachen/Downloads/tmp";
String directory = "com.liquidnet.service.kylin";
// 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);
}
......
......@@ -64,6 +64,17 @@ public class KylinPerformanceStatus implements Serializable {
*/
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.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.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;
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.service.impl.FieldsServiceImpl;
import io.swagger.annotations.*;
......
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-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-tickets")
public class KylinTicketsController {
}
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("/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("/partner/ticket")
public class KylinTicketsParnterController {
@Autowired
private KylinTicketsPartnerServiceImpl ticketsPartnerService;
@PostMapping(value = "")
@ApiOperation(value = "创建票务")
@ApiResponse(response = TicketVo.class, code = 200, message = "接口返回对象参数")
public ResponseDto<TicketVo> fieldDetails(@RequestBody TicketCreateParam ticketCreateParam) {
TicketVo result = null;
result = ticketsPartnerService.createTicket(ticketCreateParam);
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.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("/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();
}
}
}
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 {
}
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.kylin.dto.PerformancePartnerDto;
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.mapper.KylinPerformancesMapper;
import com.liquidnet.service.kylin.service.partner.IKylinPerformancesPartnerService;
......@@ -30,36 +31,27 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
private MongoTemplate mongoTemplate;
@Override
public boolean createStep1(PerformanceStep1Param step1Param) {
public String createStep1(PerformanceStep1Param step1Param) {
// 获取 主键id
String performanceId = IDGenerator.nextSnowId().toString();
// 获取 当前时间 -> 创建时间
LocalDateTime createdAt = LocalDateTime.now();
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.setPerformancesId(performanceId);
PerformanceStep1Param data = mongoTemplate.insert(
step1Param, PerformanceStep1Param.class.getSimpleName()
);
return true;
return performanceId;
} catch (Exception e) {
return false;
return "";
}
}
@Override
public boolean createStep2() {
return false;
public String createStep2(PerformanceStep2Param step1Param) {
return "";
}
}
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.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;
/**
* <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;
}
}
}
package com.liquidnet.service.kylin.service.impl.partner;
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.TicketCreateParam;
import com.liquidnet.service.kylin.dto.vo.TicketVo;
import com.liquidnet.service.kylin.entity.KylinFieldStatus;
import com.liquidnet.service.kylin.entity.KylinTicketRelations;
import com.liquidnet.service.kylin.entity.KylinTicketStatus;
import com.liquidnet.service.kylin.entity.KylinTickets;
import com.liquidnet.service.kylin.mapper.KylinTicketRelationsMapper;
import com.liquidnet.service.kylin.mapper.KylinTicketStatusMapper;
import com.liquidnet.service.kylin.mapper.KylinTicketsMapper;
import com.liquidnet.service.kylin.service.partner.IKylinTicketsPartnerService;
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 KylinTicketsPartnerServiceImpl extends ServiceImpl<KylinTicketsMapper, KylinTickets> implements IKylinTicketsPartnerService {
@Autowired
MongoTemplate mongoTemplate;
@Autowired
private MongoConverter mongoConverter;
@Autowired
private RedisUtil redisUtil;
@Autowired
private KylinTicketsMapper ticketsMapper;
@Autowired
private KylinTicketStatusMapper ticketStatusMapper;
@Autowired
private KylinTicketRelationsMapper ticketRelationsMapper;
@Override
public TicketVo createTicket(TicketCreateParam ticketCreateParam) {
// 获取 主键id
String ticketsId = IDGenerator.nextSnowId().toString();
// 获取 当前时间 -> 创建时间
LocalDateTime createdAt = LocalDateTime.now();
ticketCreateParam.setTicketsId(ticketsId);
// mysql 操作
ticketsMapper.insert(ticketCreateParam.kylinTickets(ticketsId, createdAt));
ticketStatusMapper.insert(ticketCreateParam.kylinTicketStatus(ticketsId, createdAt));
ticketRelationsMapper.insert(ticketCreateParam.kylinTicketRelations(ticketsId, createdAt));
// mongo 操作
TicketVo ticketVo = new TicketVo();
BeanUtils.copyProperties(ticketCreateParam, ticketVo);
ticketVo.setTicketsId(ticketsId);
ticketVo.setCreatedAt(createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
ticketVo.setTimeEndExpress(ticketCreateParam.getTimeEndExpress().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
ticketVo.setTimeStart(ticketCreateParam.getTimeStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
ticketVo.setTimeEnd(ticketCreateParam.getTimeEnd().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
ticketVo.setQrCodeShowTime(ticketCreateParam.getQrCodeShowTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
TicketVo data = mongoTemplate.insert(
ticketVo, TicketVo.class.getSimpleName()
);
// redis 操作
redisUtil.hset(KylinRedisConst.TICKET, ticketsId, ticketVo);
return ticketVo;
}
@Override
public TicketVo updateTicket(TicketCreateParam ticketCreateParam) {
return null;
}
@Override
public boolean deleteTicket(String ticketsId) {
try {
LocalDateTime updatedAt = LocalDateTime.now();
KylinTicketStatus ticketStatus = new KylinTicketStatus();
ticketStatus.setUpdatedAt(updatedAt);
ticketStatus.setStatus(-1);
ticketStatusMapper.update(ticketStatus
, new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", ticketsId));
// mongo 操作
HashMap<String, Object> map = new HashMap<>();
map.put("updatedAt", updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
map.put("status", -1);
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
Document doc = mongoTemplate.getCollection(TicketVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("ticketsId").is(ticketsId)).getQueryObject(),
object,
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
// redis 操作
redisUtil.hset(KylinRedisConst.TICKET, ticketsId, JsonUtils.fromJson(doc.toJson(), TicketVo.class));
return true;
} catch (Exception e) {
return false;
}
}
@Override
public TicketVo copyTicket(String ticketsId) {
// 获取 当前时间 -> 创建时间
LocalDateTime createdAt = LocalDateTime.now();
KylinTickets tickets = ticketsMapper.selectOne(new UpdateWrapper<KylinTickets>().eq("tickets_id", ticketsId));
tickets.setCreatedAt(createdAt);
KylinTicketStatus ticketStatus = ticketStatusMapper.selectOne(new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", ticketsId));
ticketStatus.setCreatedAt(createdAt);
KylinTicketRelations ticketRelations = ticketRelationsMapper.selectOne(new UpdateWrapper<KylinTicketRelations>().eq("ticket_id", ticketsId));
ticketRelations.setCreatedAt(createdAt);
String ticketsCopyId = IDGenerator.nextSnowId().toString();
tickets.setTicketsId(ticketsCopyId);
ticketStatus.setTicketId(ticketsCopyId);
ticketStatus.setTicketStatusId(IDGenerator.nextSnowId().toString());
ticketRelations.setTicketId(ticketsCopyId);
ticketRelations.setTicketRelationsId(IDGenerator.nextSnowId().toString());
ticketsMapper.insert(tickets);
ticketStatusMapper.insert(ticketStatus);
ticketRelationsMapper.insert(ticketRelations);
TicketVo ticketVo = mongoTemplate.findOne(Query.query(Criteria.where("ticketsId").is(ticketsId)), TicketVo.class, TicketVo.class.getSimpleName());
ticketVo.setTicketsId(ticketsCopyId);
ticketVo.setCreatedAt(createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
TicketVo data = mongoTemplate.insert(
ticketVo, TicketVo.class.getSimpleName()
);
redisUtil.hset(KylinRedisConst.TICKET, ticketsId, ticketVo);
return ticketVo;
}
}
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