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

Commit 813f6960 authored by 胡佳晨's avatar 胡佳晨

暂时提交

parent f3e402c9
...@@ -65,6 +65,13 @@ public class IDGenerator { ...@@ -65,6 +65,13 @@ public class IDGenerator {
return ((timestamp - twepoch) << timestampLeftShift) | (dataCenterId << dataCenterIdShift) | (workerId << workerIdShift) | sequence; return ((timestamp - twepoch) << timestampLeftShift) | (dataCenterId << dataCenterIdShift) | (workerId << workerIdShift) | sequence;
} }
public static String ticketOrderCode(String orderTicketId) {
String number = orderTicketId + "06d";
int len =orderTicketId.length();
String time = System.currentTimeMillis()/1000+"";
return "T" + number.substring(0,len-4)+time.substring(7,8)+number.substring(len-2)+time.substring(8,9)+number.substring(len-4,2);
}
private static long genTime() { private static long genTime() {
return useSystemClock ? SystemClock.now() : System.currentTimeMillis(); return useSystemClock ? SystemClock.now() : System.currentTimeMillis();
} }
...@@ -83,7 +90,7 @@ public class IDGenerator { ...@@ -83,7 +90,7 @@ public class IDGenerator {
return timestamp; return timestamp;
} }
private static long getMachineNum(){ private static long getMachineNum() {
long machinePiece; long machinePiece;
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
Enumeration<NetworkInterface> e = null; Enumeration<NetworkInterface> e = null;
......
...@@ -39,6 +39,10 @@ public class PayOrderParam { ...@@ -39,6 +39,10 @@ public class PayOrderParam {
@ApiModelProperty(value = "代理id") @ApiModelProperty(value = "代理id")
@NotNull(message = "必传") @NotNull(message = "必传")
private String agentId; private String agentId;
@ApiModelProperty(value = "快递类型 1寄付 2到付")
@NotNull(message = "必传")
private Integer expressType;
@ApiModelProperty(value = "支付类型") @ApiModelProperty(value = "支付类型")
@NotNull(message = "必传") @NotNull(message = "必传")
......
package com.liquidnet.service.kylin.dto.vo; package com.liquidnet.service.kylin.dto.vo;
import com.liquidnet.service.kylin.dto.param.CheckPerformanceRelationParam;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -14,5 +15,5 @@ public class KylinCheckUserPerformanceVo implements Serializable { ...@@ -14,5 +15,5 @@ public class KylinCheckUserPerformanceVo implements Serializable {
private String checkUserId; private String checkUserId;
@ApiModelProperty(value = "演出id数组") @ApiModelProperty(value = "演出id数组")
private List<String> performanceList; private List<CheckPerformanceRelationParam> relationParams;
} }
package com.liquidnet.service.kylin.dto.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class KylinOrderTicketEntitiesVo implements Serializable {
private static final long serialVersionUID = 1207664465164005975L;
}
package com.liquidnet.service.kylin.dto.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class KylinOrderTicketVo implements Serializable {
private static final long serialVersionUID = 5325511589667456213L;
}
...@@ -24,6 +24,8 @@ public class KylinPerformanceVo { ...@@ -24,6 +24,8 @@ public class KylinPerformanceVo {
private String title; private String title;
@ApiModelProperty(value = "演出图片") @ApiModelProperty(value = "演出图片")
private String imgPoster; private String imgPoster;
@ApiModelProperty(value = "支付倒计时")
private Integer payCountdownMinute;
@ApiModelProperty(value = "101音乐节 102小型演出(livehouse演出) 103巡演") @ApiModelProperty(value = "101音乐节 102小型演出(livehouse演出) 103巡演")
// @ApiModelProperty(value = "演出类型 1音乐节 2演唱会 3小型演出 4展览 6舞台剧 101音乐节 102小型演出(livehouse演出) 103巡演") // @ApiModelProperty(value = "演出类型 1音乐节 2演唱会 3小型演出 4展览 6舞台剧 101音乐节 102小型演出(livehouse演出) 103巡演")
private int type; private int type;
...@@ -85,6 +87,8 @@ public class KylinPerformanceVo { ...@@ -85,6 +87,8 @@ public class KylinPerformanceVo {
private Integer isDiscount; private Integer isDiscount;
@ApiModelProperty(value = "是否提前") @ApiModelProperty(value = "是否提前")
private Integer isAdvance; private Integer isAdvance;
@ApiModelProperty(value = "是否同步大麦 0 1")
private Integer sysDamai;
@ApiModelProperty(value = "文案") @ApiModelProperty(value = "文案")
private String message; private String message;
@ApiModelProperty(value = "巡演数据") @ApiModelProperty(value = "巡演数据")
...@@ -102,7 +106,7 @@ public class KylinPerformanceVo { ...@@ -102,7 +106,7 @@ public class KylinPerformanceVo {
this.noticeImage = performance.getNoticeImage(); this.noticeImage = performance.getNoticeImage();
} }
public void setTimePriceVipAndLack(int isLackRegister, int isMember, int isExclusive, BigDecimal price, LocalDateTime stopSellTime, LocalDateTime sellTime,int isAdvance,int isDiscount) { public void setTimePriceVipAndLack(int isLackRegister, int isMember, int isExclusive, BigDecimal price, LocalDateTime stopSellTime, LocalDateTime sellTime,int isAdvance,int isDiscount,int payCountdownMinute) {
this.isLackRegister = isLackRegister; this.isLackRegister = isLackRegister;
this.isMember = isMember; this.isMember = isMember;
this.isExclusive = isExclusive; this.isExclusive = isExclusive;
...@@ -113,6 +117,7 @@ public class KylinPerformanceVo { ...@@ -113,6 +117,7 @@ public class KylinPerformanceVo {
this.isDiscount = isDiscount; this.isDiscount = isDiscount;
this.isAdvance = isAdvance; this.isAdvance = isAdvance;
this.message = ""; this.message = "";
this.payCountdownMinute = payCountdownMinute;
} }
public void setFieldsData(KylinFields fields,String cityName){ public void setFieldsData(KylinFields fields,String cityName){
...@@ -129,6 +134,7 @@ public class KylinPerformanceVo { ...@@ -129,6 +134,7 @@ public class KylinPerformanceVo {
this.isTrueName = performanceStatus.getIsTrueName(); this.isTrueName = performanceStatus.getIsTrueName();
this.limitCount = performanceStatus.getLimitCount(); this.limitCount = performanceStatus.getLimitCount();
this.limitCountMember = performanceStatus.getLimitCountMember(); this.limitCountMember = performanceStatus.getLimitCountMember();
this.sysDamai = performanceStatus.getSyncDamai();
} }
//TODO 巡演 搭售 场地 //TODO 巡演 搭售 场地
......
...@@ -56,6 +56,8 @@ public class KylinTicketVo { ...@@ -56,6 +56,8 @@ public class KylinTicketVo {
private Integer isElectronic; private Integer isElectronic;
@ApiModelProperty(value = "是否快递票 0 1") @ApiModelProperty(value = "是否快递票 0 1")
private Integer isExpress; private Integer isExpress;
@ApiModelProperty(value = "是否同步大麦 0 1")
private Integer sysDamai;
@ApiModelProperty(value = "可验证次数") @ApiModelProperty(value = "可验证次数")
private Integer counts; private Integer counts;
@ApiModelProperty(value = "状态 -2新建 -1删除;0未提交;1审核中;2审核中(自动在售);3审核通过;4审核未通过;6在售;7停售;8售罄;9未开始;10已结束") @ApiModelProperty(value = "状态 -2新建 -1删除;0未提交;1审核中;2审核中(自动在售);3审核通过;4审核未通过;6在售;7停售;8售罄;9未开始;10已结束")
...@@ -120,6 +122,7 @@ public class KylinTicketVo { ...@@ -120,6 +122,7 @@ public class KylinTicketVo {
this.limitCountMember = ticketStatus.getMemberLimitCount(); this.limitCountMember = ticketStatus.getMemberLimitCount();
this.limitCount = ticketStatus.getLimitCount(); this.limitCount = ticketStatus.getLimitCount();
this.counts = ticketStatus.getCounts(); this.counts = ticketStatus.getCounts();
this.sysDamai = ticketStatus.getSyncDamai();
} }
} }
package com.liquidnet.service.kylin.service; package com.liquidnet.service.kylin.service;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.param.PayOrderParam; import com.liquidnet.service.kylin.dto.param.PayOrderParam;
import com.liquidnet.service.kylin.dto.vo.KylinPerformanceVo;
import com.liquidnet.service.kylin.dto.vo.KylinTicketVo;
import com.liquidnet.service.kylin.entity.KylinOrderTickets; import com.liquidnet.service.kylin.entity.KylinOrderTickets;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/** /**
* <p> * <p>
* 订单 服务类 * 订单 服务类
...@@ -14,10 +19,11 @@ import com.baomidou.mybatisplus.extension.service.IService; ...@@ -14,10 +19,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/ */
public interface IKylinOrderTicketsService extends IService<KylinOrderTickets> { public interface IKylinOrderTicketsService extends IService<KylinOrderTickets> {
// 下单前判断接口(判断是否可锁定库存) // 下单前判断接口(判断是否可锁定库存)(无订单->待支付->可支付)
boolean checkCanOrder(PayOrderParam payOrderParam); ResponseDto<String>checkCanOrder(PayOrderParam payOrderParam);
// 下单接口(无订单->待支付->可支付) // 下单接口(无订单->待支付->可支付)
ResponseDto<String> order(PayOrderParam payOrderParam, String uid, boolean isMember, int isTrueName, KylinPerformanceVo performanceData, KylinTicketVo ticketData);
// 再次支付(待支付->可支付->倒计时结束释放库存) // 再次支付(待支付->可支付->倒计时结束释放库存)
......
...@@ -22,10 +22,10 @@ import java.util.List; ...@@ -22,10 +22,10 @@ import java.util.List;
public interface IKylinCheckUserPerformancesPartnerService extends IService<KylinCheckUserPerformances> { public interface IKylinCheckUserPerformancesPartnerService extends IService<KylinCheckUserPerformances> {
// 已配置列表 // 已配置列表
ResponseDto<PageInfo<ChildPerformanceDao>> childPerformanceList(String merchantId,String checkUserId,int page,int size); ResponseDto<PageInfo<ChildPerformanceDao>> childPerformanceList(String merchantId,String checkUserId,int page,int size,String name);
// 未配置列表 // 未配置列表
ResponseDto<PageInfo<ChildPerformanceDao>> unChildPerformanceList(String merchantId,String checkUserId,int page,int size); ResponseDto<PageInfo<ChildPerformanceDao>> unChildPerformanceList(String merchantId,String checkUserId,int page,int size,String name);
// 添加配置 // 添加配置
ResponseDto<String> setPerformance(CheckUserParam param); ResponseDto<String> setPerformance(CheckUserParam param);
......
...@@ -2,8 +2,10 @@ package com.liquidnet.service.kylin.entity; ...@@ -2,8 +2,10 @@ package com.liquidnet.service.kylin.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.io.Serializable; import java.io.Serializable;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
...@@ -44,6 +46,11 @@ public class KylinOrderTicketEntities implements Serializable { ...@@ -44,6 +46,11 @@ public class KylinOrderTicketEntities implements Serializable {
*/ */
private String userId; private String userId;
/**
* 场次id
*/
private String timeId;
/** /**
* 演出id * 演出id
*/ */
...@@ -104,5 +111,16 @@ public class KylinOrderTicketEntities implements Serializable { ...@@ -104,5 +111,16 @@ public class KylinOrderTicketEntities implements Serializable {
*/ */
private LocalDateTime updatedAt; private LocalDateTime updatedAt;
/**
* 获取 添加 数据库参数
*
* @return
*/
public Object[] getAddObject() {
return new Object[]{
orderTicketEntitiesId, orderId, ticketId, userId, timeId, performanceId, enterType,
enterName, enterMobile, enterIdCode, status, sysDamai, checkClient, isPayment, comment,
createdAt, updatedAt
};
}
} }
...@@ -2,8 +2,10 @@ package com.liquidnet.service.kylin.entity; ...@@ -2,8 +2,10 @@ package com.liquidnet.service.kylin.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.io.Serializable; import java.io.Serializable;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
...@@ -52,7 +54,22 @@ public class KylinOrderTicketRelations implements Serializable { ...@@ -52,7 +54,22 @@ public class KylinOrderTicketRelations implements Serializable {
/** /**
* 购买者是否是会员 * 购买者是否是会员
*/ */
private String isMember; private Integer isMember;
/**
* 演出id
*/
private String performanceId;
/**
* 场次id
*/
private String timeId;
/**
* 票id
*/
private String ticketId;
/** /**
* 创建时间 * 创建时间
...@@ -64,5 +81,15 @@ public class KylinOrderTicketRelations implements Serializable { ...@@ -64,5 +81,15 @@ public class KylinOrderTicketRelations implements Serializable {
*/ */
private LocalDateTime updatedAt; private LocalDateTime updatedAt;
/**
* 获取 添加 数据库参数
*
* @return
*/
public Object[] getAddObject() {
return new Object[]{
orderTicketRelationsId, orderId, transferId, liveId, agentId, isMember, performanceId, timeId, ticketId, createdAt, updatedAt
};
}
} }
...@@ -39,6 +39,11 @@ public class KylinOrderTicketStatus implements Serializable { ...@@ -39,6 +39,11 @@ public class KylinOrderTicketStatus implements Serializable {
*/ */
private Integer expressType; private Integer expressType;
/**
* 是否学生票 1是 2否
*/
private Integer isStudent;
/** /**
* 转移状态,0未转移,1收到他人转赠,2已转赠给他人 * 转移状态,0未转移,1收到他人转赠,2已转赠给他人
*/ */
...@@ -64,5 +69,14 @@ public class KylinOrderTicketStatus implements Serializable { ...@@ -64,5 +69,14 @@ public class KylinOrderTicketStatus implements Serializable {
*/ */
private LocalDateTime updatedAt; private LocalDateTime updatedAt;
/**
* 获取 添加 数据库参数
* @return
*/
public Object[] getAddObject() {
return new Object[]{
orderTicketStatusId, orderId, expressType, isStudent, transferStatus, status, payStatus, createdAt, updatedAt
};
}
} }
package com.liquidnet.service.kylin.entity; package com.liquidnet.service.kylin.entity;
import java.math.BigDecimal; import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.io.Serializable; import java.io.Serializable;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
...@@ -55,6 +58,11 @@ public class KylinOrderTickets implements Serializable { ...@@ -55,6 +58,11 @@ public class KylinOrderTickets implements Serializable {
*/ */
private String orderCode; private String orderCode;
/**
* 支付订单号
*/
private String payCode;
/** /**
* 二维码地址 * 二维码地址
*/ */
...@@ -163,7 +171,7 @@ public class KylinOrderTickets implements Serializable { ...@@ -163,7 +171,7 @@ public class KylinOrderTickets implements Serializable {
/** /**
* 订单过期时间 * 订单过期时间
*/ */
private String payCountdownMinute; private Integer payCountdownMinute;
/** /**
* comment * comment
...@@ -180,5 +188,17 @@ public class KylinOrderTickets implements Serializable { ...@@ -180,5 +188,17 @@ public class KylinOrderTickets implements Serializable {
*/ */
private LocalDateTime updatedAt; private LocalDateTime updatedAt;
/**
* 获取 添加 数据库参数
* @return
*/
public Object[] getAddObject() {
return new Object[]{
orderTicketsId, userId, userName, userMobile, performanceTitle, orderCode, qrCode, orderType, orderVersion,
number, price, priceMember, priceTotal, priceVoucher, priceActual, priceExpress, priceRefund, refundNumber,
payType, paymentType, timePay, expressContacts, expressAddress, expressPhone, couponType, getTicketType,
getTicketDescribe, payCountdownMinute, comment, createdAt, updatedAt
};
}
} }
...@@ -17,7 +17,7 @@ import java.util.List; ...@@ -17,7 +17,7 @@ import java.util.List;
*/ */
public interface KylinCheckUserPerformancesMapper extends BaseMapper<KylinCheckUserPerformances> { public interface KylinCheckUserPerformancesMapper extends BaseMapper<KylinCheckUserPerformances> {
List<ChildPerformanceDao> childPerformanceList(String merchantId,String checkUserId); List<ChildPerformanceDao> childPerformanceList(String merchantId,String checkUserId,String name);
List<ChildPerformanceDao> unChildPerformanceList(String merchantId,String checkUserId); List<ChildPerformanceDao> unChildPerformanceList(String merchantId,String checkUserId,String name);
} }
...@@ -25,6 +25,9 @@ ...@@ -25,6 +25,9 @@
LEFT JOIN kylin_performance_relations AS pr ON pr.performance_id = p.performances_id LEFT JOIN kylin_performance_relations AS pr ON pr.performance_id = p.performances_id
<where> <where>
pr.merchant_id = #{merchantId} AND cup.check_user_id = #{checkUserId} pr.merchant_id = #{merchantId} AND cup.check_user_id = #{checkUserId}
<if test="name!=''">
AND title LIKE concat('%', #{name}, '%')
</if>
</where> </where>
</select> </select>
...@@ -42,5 +45,8 @@ ...@@ -42,5 +45,8 @@
WHERE check_user_id = #{checkUserId} WHERE check_user_id = #{checkUserId}
) )
AND pr.merchant_id = #{merchantId} AND pr.merchant_id = #{merchantId}
<if test="name!=''">
AND title LIKE concat('%', #{name}, '%')
</if>
</select> </select>
</mapper> </mapper>
...@@ -414,6 +414,7 @@ CREATE TABLE `kylin_order_tickets` ...@@ -414,6 +414,7 @@ CREATE TABLE `kylin_order_tickets`
`user_mobile` varchar(255) NOT NULL DEFAULT '' COMMENT '用户手机号', `user_mobile` varchar(255) NOT NULL DEFAULT '' COMMENT '用户手机号',
`performance_title` varchar(255) NOT NULL DEFAULT '' COMMENT '演出名称', `performance_title` varchar(255) NOT NULL DEFAULT '' COMMENT '演出名称',
`order_code` varchar(255) NOT NULL DEFAULT '' COMMENT '订单号', `order_code` varchar(255) NOT NULL DEFAULT '' COMMENT '订单号',
`pay_code` varchar(255) NOT NULL DEFAULT '' COMMENT '支付单号',
`qr_code` varchar(255) NOT NULL DEFAULT '' COMMENT '二维码地址', `qr_code` varchar(255) NOT NULL DEFAULT '' COMMENT '二维码地址',
`order_type` varchar(255) NOT NULL DEFAULT '' COMMENT '下单方式', `order_type` varchar(255) NOT NULL DEFAULT '' COMMENT '下单方式',
`order_version` varchar(255) NOT NULL DEFAULT '' COMMENT '下单版本', `order_version` varchar(255) NOT NULL DEFAULT '' COMMENT '下单版本',
...@@ -435,7 +436,7 @@ CREATE TABLE `kylin_order_tickets` ...@@ -435,7 +436,7 @@ CREATE TABLE `kylin_order_tickets`
`coupon_type` varchar(255) NOT NULL DEFAULT '' COMMENT '券使用类别', `coupon_type` varchar(255) NOT NULL DEFAULT '' COMMENT '券使用类别',
`get_ticket_type` varchar(255) NOT NULL DEFAULT '' COMMENT '取票方式 电子票electronic快递票express', `get_ticket_type` varchar(255) NOT NULL DEFAULT '' COMMENT '取票方式 电子票electronic快递票express',
`get_ticket_describe` varchar(255) NOT NULL DEFAULT '' COMMENT '直播用取票观演码,隔开', `get_ticket_describe` varchar(255) NOT NULL DEFAULT '' COMMENT '直播用取票观演码,隔开',
`pay_countdown_minute` varchar(255) NOT NULL DEFAULT '' COMMENT '订单过期时间', `pay_countdown_minute` int(32) NOT NULL DEFAULT 15 COMMENT '订单过期时间(分钟)',
`comment` varchar(255) NOT NULL DEFAULT '' COMMENT 'comment', `comment` varchar(255) NOT NULL DEFAULT '' COMMENT 'comment',
`created_at` datetime NULL DEFAULT NULL COMMENT '创建时间', `created_at` datetime NULL DEFAULT NULL COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT NULL COMMENT '修改时间', `updated_at` datetime NULL DEFAULT NULL COMMENT '修改时间',
...@@ -452,8 +453,11 @@ CREATE TABLE `kylin_order_ticket_relations` ...@@ -452,8 +453,11 @@ CREATE TABLE `kylin_order_ticket_relations`
`order_id` varchar(255) NOT NULL DEFAULT '' COMMENT '订单id', `order_id` varchar(255) NOT NULL DEFAULT '' COMMENT '订单id',
`transfer_id` varchar(255) NOT NULL DEFAULT '' COMMENT '转增订单id', `transfer_id` varchar(255) NOT NULL DEFAULT '' COMMENT '转增订单id',
`live_id` varchar(255) NOT NULL DEFAULT '' COMMENT '关联直播id', `live_id` varchar(255) NOT NULL DEFAULT '' COMMENT '关联直播id',
`performance_id` varchar(255) NOT NULL DEFAULT '' COMMENT '演出id',
`time_id` varchar(255) NOT NULL DEFAULT '' COMMENT '场次id',
`ticket_id` varchar(255) NOT NULL DEFAULT '' COMMENT '票id',
`agent_id` varchar(255) NOT NULL DEFAULT '' COMMENT '分销代理id', `agent_id` varchar(255) NOT NULL DEFAULT '' COMMENT '分销代理id',
`is_member` varchar(255) NOT NULL DEFAULT '' COMMENT '购买者是否是会员', `is_member` int NOT NULL DEFAULT 0 COMMENT '购买者是否是会员',
`created_at` datetime NULL DEFAULT NULL COMMENT '创建时间', `created_at` datetime NULL DEFAULT NULL COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT NULL COMMENT '修改时间', `updated_at` datetime NULL DEFAULT NULL COMMENT '修改时间',
KEY `kylin_order_ticket_relations_uid_index` (`order_ticket_relations_id`), KEY `kylin_order_ticket_relations_uid_index` (`order_ticket_relations_id`),
...@@ -468,6 +472,7 @@ CREATE TABLE `kylin_order_ticket_status` ...@@ -468,6 +472,7 @@ CREATE TABLE `kylin_order_ticket_status`
`order_ticket_status_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'order_ticket_status_id', `order_ticket_status_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'order_ticket_status_id',
`order_id` varchar(255) NOT NULL DEFAULT '' COMMENT '订单id', `order_id` varchar(255) NOT NULL DEFAULT '' COMMENT '订单id',
`express_type` tinyint NOT NULL DEFAULT 1 COMMENT '快递方式 1寄付 2到付', `express_type` tinyint NOT NULL DEFAULT 1 COMMENT '快递方式 1寄付 2到付',
`is_student` tinyint NOT NULL DEFAULT 0 COMMENT '是否学生票 1是 2否',
`transfer_status` tinyint NOT NULL DEFAULT 0 COMMENT '转移状态,0未转移,1收到他人转赠,2已转赠给他人', `transfer_status` tinyint NOT NULL DEFAULT 0 COMMENT '转移状态,0未转移,1收到他人转赠,2已转赠给他人',
`status` tinyint NOT NULL DEFAULT 0 COMMENT '订单状态:0待付款,1已付款,2已关闭,3正在退款,4已退款, 5待关闭 6部分退款', `status` tinyint NOT NULL DEFAULT 0 COMMENT '订单状态:0待付款,1已付款,2已关闭,3正在退款,4已退款, 5待关闭 6部分退款',
`pay_status` tinyint NOT NULL DEFAULT 0 COMMENT '支付状态:0未支付 1已支付 2支付失败', `pay_status` tinyint NOT NULL DEFAULT 0 COMMENT '支付状态:0未支付 1已支付 2支付失败',
...@@ -489,6 +494,7 @@ CREATE TABLE `kylin_order_ticket_entities` ...@@ -489,6 +494,7 @@ CREATE TABLE `kylin_order_ticket_entities`
`ticket_id` varchar(255) NOT NULL DEFAULT '' COMMENT '票务id', `ticket_id` varchar(255) NOT NULL DEFAULT '' COMMENT '票务id',
`user_id` varchar(255) NOT NULL DEFAULT '' COMMENT '用户id', `user_id` varchar(255) NOT NULL DEFAULT '' COMMENT '用户id',
`performance_id` varchar(255) NOT NULL DEFAULT '' COMMENT '演出id', `performance_id` varchar(255) NOT NULL DEFAULT '' COMMENT '演出id',
`time_id` varchar(255) NOT NULL DEFAULT '' COMMENT '场次id',
`enter_type` int(11) NOT NULL DEFAULT 1 COMMENT '入场人证件类型 1大陆身份证 2港澳通行证 3台胞证 4护照 5军官证', `enter_type` int(11) NOT NULL DEFAULT 1 COMMENT '入场人证件类型 1大陆身份证 2港澳通行证 3台胞证 4护照 5军官证',
`enter_name` varchar(255) NOT NULL DEFAULT '' COMMENT '入场人姓名', `enter_name` varchar(255) NOT NULL DEFAULT '' COMMENT '入场人姓名',
`enter_mobile` varchar(255) NOT NULL DEFAULT '' COMMENT '入场人联系电话', `enter_mobile` varchar(255) NOT NULL DEFAULT '' COMMENT '入场人联系电话',
......
package com.liquidnet.service.kylin.controller; package com.liquidnet.service.kylin.controller;
import org.springframework.web.bind.annotation.RequestMapping; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.param.PayOrderParam;
import org.springframework.web.bind.annotation.RestController; import com.liquidnet.service.kylin.service.impl.KylinOrderTicketsServiceImpl;
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>
...@@ -13,8 +18,19 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -13,8 +18,19 @@ import org.springframework.web.bind.annotation.RestController;
* @author liquidnet * @author liquidnet
* @since 2021-05-20 * @since 2021-05-20
*/ */
@Api(tags = "前端-订单相关")
@RestController @RestController
@RequestMapping("order") @RequestMapping("order")
public class KylinOrderTicketsController { public class KylinOrderTicketsController {
@Autowired
private KylinOrderTicketsServiceImpl orderTicketsService;
@PostMapping("pre")
@ApiOperation("下单")
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<String> checkCanOrder(@RequestBody PayOrderParam payOrderParam) {
return orderTicketsService.checkCanOrder(payOrderParam);
}
} }
...@@ -55,8 +55,9 @@ public class KylinCheckUserPerformancesPartnerController { ...@@ -55,8 +55,9 @@ public class KylinCheckUserPerformancesPartnerController {
public ResponseDto<PageInfo<ChildPerformanceDao>> childPerformanceList(@RequestParam("merchantId") String merchantId, public ResponseDto<PageInfo<ChildPerformanceDao>> childPerformanceList(@RequestParam("merchantId") String merchantId,
@RequestParam("checkUserId") String checkUserId, @RequestParam("checkUserId") String checkUserId,
@RequestParam("page") int page, @RequestParam("page") int page,
@RequestParam("size") int size) { @RequestParam("size") int size,
return userPerformancesPartnerService.childPerformanceList(merchantId, checkUserId, page, size); @RequestParam("name") String name) {
return userPerformancesPartnerService.childPerformanceList(merchantId, checkUserId, page, size,name);
} }
@GetMapping(value = "unRelation") @GetMapping(value = "unRelation")
...@@ -65,7 +66,8 @@ public class KylinCheckUserPerformancesPartnerController { ...@@ -65,7 +66,8 @@ public class KylinCheckUserPerformancesPartnerController {
public ResponseDto<PageInfo<ChildPerformanceDao>> unChildPerformanceList(@RequestParam("merchantId") String merchantId, public ResponseDto<PageInfo<ChildPerformanceDao>> unChildPerformanceList(@RequestParam("merchantId") String merchantId,
@RequestParam("checkUserId") String checkUserId, @RequestParam("checkUserId") String checkUserId,
@RequestParam("page") int page, @RequestParam("page") int page,
@RequestParam("size") int size) { @RequestParam("size") int size,
return userPerformancesPartnerService.unChildPerformanceList(merchantId, checkUserId, page, size); @RequestParam("name") String name) {
return userPerformancesPartnerService.unChildPerformanceList(merchantId, checkUserId, page, size,name);
} }
} }
package com.liquidnet.service.kylin.service.impl; package com.liquidnet.service.kylin.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.liquidnet.commons.lang.util.*;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDCard;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.adam.dto.vo.AdamAddressesVo; import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo; import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.feign.adam.api.FeignAdamBaseClient; import com.liquidnet.service.feign.adam.api.FeignAdamBaseClient;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.param.PayOrderParam; import com.liquidnet.service.kylin.dto.param.PayOrderParam;
import com.liquidnet.service.kylin.dto.vo.KylinPerformanceVo; import com.liquidnet.service.kylin.dto.vo.KylinPerformanceVo;
import com.liquidnet.service.kylin.dto.vo.KylinTicketTimesVo; import com.liquidnet.service.kylin.dto.vo.KylinTicketTimesVo;
import com.liquidnet.service.kylin.dto.vo.KylinTicketVo; import com.liquidnet.service.kylin.dto.vo.KylinTicketVo;
import com.liquidnet.service.kylin.entity.KylinOrderTickets; import com.liquidnet.service.kylin.entity.*;
import com.liquidnet.service.kylin.entity.KylinTicketTimes;
import com.liquidnet.service.kylin.mapper.KylinOrderTicketsMapper; import com.liquidnet.service.kylin.mapper.KylinOrderTicketsMapper;
import com.liquidnet.service.kylin.service.IKylinOrderTicketsService; import com.liquidnet.service.kylin.service.IKylinOrderTicketsService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.service.kylin.utils.DataUtils; import com.liquidnet.service.kylin.utils.DataUtils;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
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.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
/** /**
* <p> * <p>
...@@ -45,44 +38,44 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -45,44 +38,44 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
@Autowired @Autowired
private DataUtils dataUtils; private DataUtils dataUtils;
@Autowired @Autowired
private RedisUtil redisUtil; private RabbitTemplate rabbitTemplate;
@Autowired
private MongoTemplate mongoTemplate;
@Autowired @Autowired
private FeignAdamBaseClient feignAdamBaseClient; private FeignAdamBaseClient feignAdamBaseClient;
@Override @Override
public boolean checkCanOrder(PayOrderParam payOrderParam) { public ResponseDto<String> checkCanOrder(PayOrderParam payOrderParam) {
boolean isDownGeneral = false;
try {
String uid = CurrentUtil.getCurrentUid(); String uid = CurrentUtil.getCurrentUid();
KylinPerformanceVo performanceData = mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(payOrderParam.getPerformanceId())), KylinPerformanceVo.class, KylinPerformanceVo.class.getSimpleName()); KylinPerformanceVo performanceData = dataUtils.getPerformanceVo(payOrderParam.getPerformanceId());
KylinTicketTimesVo ticketTimesData = mongoTemplate.findOne(Query.query(Criteria.where("ticketTimesId").is(payOrderParam.getTimeId())), KylinTicketTimesVo.class, KylinTicketTimes.class.getSimpleName()); KylinTicketTimesVo ticketTimesData = dataUtils.getTicketTimesVo(payOrderParam.getPerformanceId());
KylinTicketVo ticketData = mongoTemplate.findOne(Query.query(Criteria.where("ticketsId").is(payOrderParam.getTicketId())), KylinTicketVo.class, KylinTicketVo.class.getSimpleName()); KylinTicketVo ticketData = dataUtils.getTicketVo(payOrderParam.getPerformanceId());
if (performanceData == null || ticketTimesData == null || ticketData == null) { if (performanceData == null || ticketTimesData == null || ticketData == null) {
return false;//参数错误 return ResponseDto.failure("参数错误");//参数错误
} }
if (!ticketData.getTimeId().equals(payOrderParam.getTimeId()) || !ticketTimesData.getPerformanceId().equals(payOrderParam.getPerformanceId())) { if (!ticketData.getTimeId().equals(payOrderParam.getTimeId()) || !ticketTimesData.getPerformanceId().equals(payOrderParam.getPerformanceId())) {
return false;//参数错误 return ResponseDto.failure("参数错误");//参数错误List<AdamEntersVo> entersVoList
} }
//会员时间获取 //会员时间获取
String memberTimeStart = ticketData.getMemberTimeStart(); // 会员开售时间 String memberTimeStart = ticketData.getMemberTimeStart(); // 会员开售时间
String timeStart = ticketData.getTimeStart(); // 普通开售时间 String timeStart = ticketData.getTimeStart(); // 普通开售时间
String timeEnd = ticketData.getTimeEnd(); // 购票停售时间 String timeEnd = ticketData.getTimeEnd(); // 购票停售时间
String timeExpressEnd = ticketData.getTimeEndExpress(); // 快递停售时间 String timeExpressEnd = ticketData.getTimeEndExpress(); // 快递停售时间
int performanceBuyCount = 0; //演出下所有票种购买数量 int performanceBuyCount; //演出下所有票种购买数量
int ticketBuyCount = 0; // 单一票种购买数量 int ticketBuyCount;// 单一票种购买数量
boolean isMember = false;//获取是否是会员 TODO boolean isMember = feignAdamBaseClient.isMember(uid).getData();//获取是否是会员
int memberType; //会员状态 不需要判断会员 1判断会员逻辑 2会员专属 int memberType; //会员状态 不需要判断会员 1判断会员逻辑 2会员专属
if (ticketData.getIsExclusive() == 1) { if (ticketData.getIsExclusive() == 1) {
memberType = 2; memberType = 2;
if (!isMember) { if (!isMember) {
return false;//没有会员权限 return ResponseDto.failure("非会员用户暂不可购买");//没有会员权限
} }
} else { } else {
if (DateUtil.compareStrDay(DateUtil.getNowTime(), memberTimeStart) == 1 && DateUtil.compareStrDay(DateUtil.getNowTime(), timeStart) == -1 && ticketData.getIsMember() == 1) { if (DateUtil.compareStrDay(DateUtil.getNowTime(), memberTimeStart) == 1 && DateUtil.compareStrDay(DateUtil.getNowTime(), timeStart) == -1 && ticketData.getIsMember() == 1) {
// 会员购买逻辑 // 会员购买逻辑
memberType = 1; memberType = 1;
if (!isMember) { if (!isMember) {
return false;//没有会员权限 return ResponseDto.failure("非会员用户暂不可购买");//没有会员权限
} }
} else { } else {
// 普通用户购买逻辑 // 普通用户购买逻辑
...@@ -95,95 +88,121 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -95,95 +88,121 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
int ticketMemberLimit = ticketData.getLimitCountMember();//会员票种限购 int ticketMemberLimit = ticketData.getLimitCountMember();//会员票种限购
int performanceLimit = performanceData.getLimitCount();//普通演出限购 int performanceLimit = performanceData.getLimitCount();//普通演出限购
int performanceMemberLimit = performanceData.getLimitCountMember();//会员演出限购 int performanceMemberLimit = performanceData.getLimitCountMember();//会员演出限购
int isTrueName = performanceData.getIsTrueName();//是否演出实名 int isTrueName = ticketData.getIsTrueName();//是否演出实名
//通用判断时间 //通用判断时间
if (isMember) { if (isMember) {
if (DateUtil.compareStrDay(DateUtil.getNowTime(), memberTimeStart) == -1) { if (DateUtil.compareStrDay(DateUtil.getNowTime(), memberTimeStart) == -1) {
return false;//未开始 return ResponseDto.failure("未开始售卖");//未开始
} }
} else { } else {
if (DateUtil.compareStrDay(DateUtil.getNowTime(), timeStart) == -1) { if (DateUtil.compareStrDay(DateUtil.getNowTime(), timeStart) == -1) {
return false;//未开始 return ResponseDto.failure("未开始售卖");//未开始
} }
} }
if (DateUtil.compareStrDay(DateUtil.getNowTime(), timeEnd) == 1) { if (DateUtil.compareStrDay(DateUtil.getNowTime(), timeEnd) == 1) {
return false;//已结束 return ResponseDto.failure("售卖已结束");//已结束
} }
//快递票判断 //快递票判断
if (payOrderParam.getIsExpress() == 1 && DateUtil.compareStrDay(DateUtil.getNowTime(), timeExpressEnd) == 1) { if (payOrderParam.getIsExpress() == 1 && DateUtil.compareStrDay(DateUtil.getNowTime(), timeExpressEnd) == 1) {
return false;//快递票不卖 return ResponseDto.failure("已超过快递票截止时间");//快递票不卖
} }
if (payOrderParam.getIsExpress() == 1 && payOrderParam.getAddressId().isEmpty()) { if (payOrderParam.getIsExpress() == 1 && payOrderParam.getAddressId().isEmpty()) {
return false;//快递票未填写收货地址 return ResponseDto.failure("快递票未填写收货地址");//快递票未填写收货地址
} }
//实名判断 //实名判断
if (isTrueName == 1 && payOrderParam.getEnterIdList().size() <= 0) { if (isTrueName == 1 && payOrderParam.getEnterIdList().size() <= 0) {
return false;//需要实名 未实名 return ResponseDto.failure("入场人数量错误");//需要实名 未实名
} }
if (isTrueName == 1 && payOrderParam.getEnterIdList().size() != payOrderParam.getNumber()) { if (isTrueName == 1 && payOrderParam.getEnterIdList().size() != payOrderParam.getNumber()) {
return false;//入场人数量错误 return ResponseDto.failure("入场人数量错误");//入场人数量错误
}
//学生票 判断
if (payOrderParam.getIsStudent() == 1) {
for (String enterId : payOrderParam.getEnterIdList()) {
AdamEntersVo adamEnters = feignAdamBaseClient.queryEnters(enterId, uid).getData();
int age = IDCard.getAgeByIdCard(adamEnters.getIdCard());
if (age > 25) {
return false;//年龄超了
}
}
} }
// 判断库存
int surplusGeneral = dataUtils.changeSurplusGeneral(payOrderParam.getTicketId(), -payOrderParam.getNumber());
if (surplusGeneral < 0) {//库存回滚
dataUtils.changeSurplusGeneral(payOrderParam.getTicketId(), payOrderParam.getNumber());
return ResponseDto.failure("该票种已售罄");//没抢到
} else {
isDownGeneral = true;
//限购判断 如果实名 则身份证维度限购 如果不实名则数量限购 //限购判断 如果实名 则身份证维度限购 如果不实名则数量限购
if (performanceData.getIsTrueName() == 1) { if (isTrueName == 1) {
//已购买数量 身份证 //已购买数量 身份证
performanceBuyCount = 0; //演出下所有票种购买数量 TODO performanceBuyCount = 0+payOrderParam.getNumber(); //演出下所有票种购买数量 TODO
ticketBuyCount = 0; // 单一票种购买数量 TODO ticketBuyCount = 0+payOrderParam.getNumber(); // 单一票种购买数量 TODO
} else { } else {
//已购买数量 数量 //已购买数量 数量
performanceBuyCount = 0; //演出下所有票种购买数量 TODO performanceBuyCount = 0+payOrderParam.getNumber(); //演出下所有票种购买数量 TODO
ticketBuyCount = 0; // 单一票种购买数量 TODO ticketBuyCount = 0+payOrderParam.getNumber(); // 单一票种购买数量 TODO
} }
//会员区间 //会员区间
if (memberType == 1 || memberType == 2) { if (memberType == 1 || memberType == 2) {
if (performanceBuyCount >= performanceMemberLimit && performanceMemberLimit != 0) { if (performanceBuyCount >= performanceMemberLimit && performanceMemberLimit != 0) {
return false;//超过演出维度购买量 return ResponseDto.failure("该演出只能购买"+performanceMemberLimit+"张");//超过演出维度购买量
} }
if (ticketBuyCount >= ticketMemberLimit && ticketMemberLimit != 0) { if (ticketBuyCount >= ticketMemberLimit && ticketMemberLimit != 0) {
return false;//超过票维度购买量 return ResponseDto.failure("该票种只能购买"+ticketMemberLimit+"张");//超过票维度购买量
} }
} else {//非会员区间 } else {//非会员区间
if (performanceBuyCount >= performanceLimit && performanceLimit != 0) { if (performanceBuyCount >= performanceLimit && performanceLimit != 0) {
return false;//超过演出维度购买量 return ResponseDto.failure("该演出只能购买"+performanceLimit+"张");//超过演出维度购买量
} }
if (ticketBuyCount >= ticketLimit && ticketLimit != 0) { if (ticketBuyCount >= ticketLimit && ticketLimit != 0) {
return false;//超过票维度购买量 return ResponseDto.failure("该票种只能购买"+ticketLimit+"张");//超过票维度购买量
} }
} }
return order(payOrderParam, uid, isMember, isTrueName, performanceData, ticketData);
// 判断库存 }
int surplusGeneral = dataUtils.changeSurplusGeneral(payOrderParam.getTicketId(), -payOrderParam.getNumber()); } catch (Exception e) {
if (surplusGeneral < 0) {//库存回滚 if (isDownGeneral) {
dataUtils.changeSurplusGeneral(payOrderParam.getTicketId(), payOrderParam.getNumber()); dataUtils.changeSurplusGeneral(payOrderParam.getTicketId(), payOrderParam.getNumber());
return false;//没抢到 }
e.printStackTrace();
return ResponseDto.failure("下单失败");//乱七八糟异常
}
} }
//生成订单 @Override
public ResponseDto<String> order(PayOrderParam payOrderParam, String uid, boolean isMember, int isTrueName, KylinPerformanceVo performanceData, KylinTicketVo ticketData) {
LinkedList<String> sqls = new LinkedList<>();
LinkedList<Object[]> paramsList = new LinkedList<>();
String source = CurrentUtil.getCliSource();
String version = CurrentUtil.getCliVersion();
List<AdamEntersVo> entersVoList = new ArrayList();
//学生票 判断
if (payOrderParam.getIsStudent() == 1) {
for (String enterId : payOrderParam.getEnterIdList()) {
AdamEntersVo adamEnters = feignAdamBaseClient.queryEnters(enterId, uid).getData();
entersVoList.add(adamEnters);
int age = IDCard.getAgeByIdCard(adamEnters.getIdCard());
if (age > 25) {
return ResponseDto.failure("年龄不符合");//年龄超了
}
}
}
//生成订单 order_ticket
KylinOrderTickets orderTickets = new KylinOrderTickets(); KylinOrderTickets orderTickets = new KylinOrderTickets();
orderTickets.setOrderTicketsId(IDGenerator.nextSnowId().toString()); String orderTicketId = IDGenerator.nextSnowId().toString();
orderTickets.setOrderTicketsId(orderTicketId);
orderTickets.setUserId(uid); orderTickets.setUserId(uid);
// orderTickets.setUserName(); orderTickets.setUserName(CurrentUtil.getTokenClaims().get("nickname").toString());
// orderTickets.setUserMobile(); orderTickets.setUserMobile(CurrentUtil.getTokenClaims().get("mobile").toString());
orderTickets.setPerformanceTitle(performanceData.getTitle()); orderTickets.setPerformanceTitle(performanceData.getTitle());
// orderTickets.setOrderCode(); orderTickets.setOrderCode(IDGenerator.ticketOrderCode(orderTicketId));
// orderTickets.setQrCode(); orderTickets.setPayCode("");
// orderTickets.setOrderType(); orderTickets.setQrCode("");
// orderTickets.setOrderVersion(); orderTickets.setOrderType(source);
orderTickets.setOrderVersion(version);
orderTickets.setNumber(payOrderParam.getNumber()); orderTickets.setNumber(payOrderParam.getNumber());
orderTickets.setPrice(ticketData.getPrice()); orderTickets.setPrice(ticketData.getPrice());
orderTickets.setPriceMember(ticketData.getMemberPrice()); orderTickets.setPriceMember(ticketData.getMemberPrice());
// orderTickets.setPriceTotal(); if (isMember) {
orderTickets.setPriceTotal(ticketData.getMemberPrice().multiply(new BigDecimal(payOrderParam.getNumber())).add(payOrderParam.getIsExpress() == 1 ? ticketData.getPriceExpress() : new BigDecimal("0")));
} else {
orderTickets.setPriceTotal(ticketData.getPrice().multiply(new BigDecimal(payOrderParam.getNumber())).add(payOrderParam.getIsExpress() == 1 ? ticketData.getPriceExpress() : new BigDecimal("0")));
}
orderTickets.setPriceVoucher(new BigDecimal("0.0")); orderTickets.setPriceVoucher(new BigDecimal("0.0"));
orderTickets.setPriceActual(new BigDecimal("0.0")); orderTickets.setPriceActual(new BigDecimal("0.0"));
orderTickets.setPriceExpress(ticketData.getPriceExpress()); orderTickets.setPriceExpress(ticketData.getPriceExpress());
...@@ -206,11 +225,104 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -206,11 +225,104 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
} }
orderTickets.setCouponType("no"); orderTickets.setCouponType("no");
orderTickets.setGetTicketDescribe(""); orderTickets.setGetTicketDescribe("");
// orderTickets.setPayCountdownMinute(); orderTickets.setPayCountdownMinute(performanceData.getPayCountdownMinute());
orderTickets.setCreatedAt(LocalDateTime.now()); orderTickets.setCreatedAt(LocalDateTime.now());
orderTickets.setUpdatedAt(null); orderTickets.setUpdatedAt(null);
//TODO mq sql
sqls.add("kylin_order_ticket.add");
paramsList.add(orderTickets.getAddObject());
//生成订单 order_ticket_status
KylinOrderTicketStatus orderTicketStatus = new KylinOrderTicketStatus();
String orderTicketStatusId = IDGenerator.nextSnowId().toString();
orderTicketStatus.setOrderTicketStatusId(orderTicketStatusId);
orderTicketStatus.setOrderId(orderTicketId);
orderTicketStatus.setExpressType(payOrderParam.getExpressType());
orderTicketStatus.setTransferStatus(0);
orderTicketStatus.setStatus(0);
orderTicketStatus.setIsStudent(payOrderParam.getIsStudent());
orderTicketStatus.setPayStatus(0);
orderTicketStatus.setCreatedAt(LocalDateTime.now());
orderTicketStatus.setUpdatedAt(null);
//TODO mq sql
sqls.add("kylin_order_ticket_status.add");
paramsList.add(orderTicketStatus.getAddObject());
//生成订单 order_ticket_relation
KylinOrderTicketRelations orderTicketRelations = new KylinOrderTicketRelations();
String orderTicketRelationId = IDGenerator.nextSnowId().toString();
orderTicketRelations.setOrderTicketRelationsId(orderTicketRelationId);
orderTicketRelations.setOrderId(orderTicketId);
orderTicketRelations.setTransferId("");
orderTicketRelations.setLiveId("");
orderTicketRelations.setAgentId(payOrderParam.getAgentId());
orderTicketRelations.setIsMember(isMember ? 1 : 0);
orderTicketRelations.setPerformanceId(payOrderParam.getPerformanceId());
orderTicketRelations.setTimeId(payOrderParam.getTimeId());
orderTicketRelations.setTicketId(payOrderParam.getTicketId());
orderTicketRelations.setCreatedAt(LocalDateTime.now());
orderTicketRelations.setUpdatedAt(null);
//TODO mq sql
sqls.add("kylin_order_ticket_relation.add");
paramsList.add(orderTicketRelations.getAddObject());
//生成票 //生成票
return true; KylinOrderTicketEntities orderTicketEntities = new KylinOrderTicketEntities();
String orderTicketEntitiesId = IDGenerator.nextSnowId().toString();
if (isTrueName == 1) {
for (AdamEntersVo enters : entersVoList) {
orderTicketEntities.setOrderTicketEntitiesId(orderTicketEntitiesId);
orderTicketEntities.setOrderId(orderTicketId);
orderTicketEntities.setTicketId(payOrderParam.getTicketId());
orderTicketEntities.setUserId(uid);
orderTicketEntities.setPerformanceId(payOrderParam.getPerformanceId());
orderTicketEntities.setTimeId(payOrderParam.getTimeId());
orderTicketEntities.setEnterType(enters.getType());
orderTicketEntities.setEnterName(enters.getName());
orderTicketEntities.setEnterMobile(enters.getMobile());
orderTicketEntities.setEnterIdCode(enters.getIdCard());
orderTicketEntities.setStatus(0);
orderTicketEntities.setSysDamai(ticketData.getSysDamai());
orderTicketEntities.setCheckClient("");
orderTicketEntities.setIsPayment(0);
orderTicketEntities.setComment("");
orderTicketEntities.setCreatedAt(LocalDateTime.now());
orderTicketEntities.setUpdatedAt(null);
//TODO mq sql
sqls.add("kylin_order_ticket_entities.add");
paramsList.add(orderTicketEntities.getAddObject());
}
} else {
for (int i = 0; i < payOrderParam.getNumber(); i++) {
orderTicketEntities.setOrderTicketEntitiesId(orderTicketEntitiesId);
orderTicketEntities.setOrderId(orderTicketId);
orderTicketEntities.setTicketId(payOrderParam.getTicketId());
orderTicketEntities.setUserId(uid);
orderTicketEntities.setPerformanceId(payOrderParam.getPerformanceId());
orderTicketEntities.setTimeId(payOrderParam.getTimeId());
orderTicketEntities.setEnterType(0);
orderTicketEntities.setEnterName("");
orderTicketEntities.setEnterMobile("");
orderTicketEntities.setEnterIdCode("");
orderTicketEntities.setStatus(0);
orderTicketEntities.setSysDamai(ticketData.getSysDamai());
orderTicketEntities.setCheckClient("");
orderTicketEntities.setIsPayment(0);
orderTicketEntities.setComment("");
orderTicketEntities.setCreatedAt(LocalDateTime.now());
orderTicketEntities.setUpdatedAt(null);
//TODO mq sql
sqls.add("kylin_order_ticket_entities.add");
paramsList.add(orderTicketEntities.getAddObject());
}
}
// 执行sql 生成vo 调用支付
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get(sqls, paramsList));
return ResponseDto.success("下单完成");
} }
} }
...@@ -49,11 +49,11 @@ public class KylinCheckUserPerformancesPartnerServiceImpl extends ServiceImpl<Ky ...@@ -49,11 +49,11 @@ public class KylinCheckUserPerformancesPartnerServiceImpl extends ServiceImpl<Ky
private KylinCheckUserPerformancesMapper checkUserPerformancesMapper; private KylinCheckUserPerformancesMapper checkUserPerformancesMapper;
@Override @Override
public ResponseDto<PageInfo<ChildPerformanceDao>> childPerformanceList(String merchantId, String checkUserId, int page, int size) { public ResponseDto<PageInfo<ChildPerformanceDao>> childPerformanceList(String merchantId, String checkUserId, int page, int size,String name) {
PageInfo<ChildPerformanceDao> pageInfo = null; PageInfo<ChildPerformanceDao> pageInfo = null;
try { try {
PageHelper.startPage(page, size); PageHelper.startPage(page, size);
List<ChildPerformanceDao> data = checkUserPerformancesMapper.childPerformanceList(merchantId, checkUserId); List<ChildPerformanceDao> data = checkUserPerformancesMapper.childPerformanceList(merchantId, checkUserId,name);
pageInfo = new PageInfo(data); pageInfo = new PageInfo(data);
return ResponseDto.success(pageInfo); return ResponseDto.success(pageInfo);
} catch (Exception e) { } catch (Exception e) {
...@@ -62,11 +62,11 @@ public class KylinCheckUserPerformancesPartnerServiceImpl extends ServiceImpl<Ky ...@@ -62,11 +62,11 @@ public class KylinCheckUserPerformancesPartnerServiceImpl extends ServiceImpl<Ky
} }
@Override @Override
public ResponseDto<PageInfo<ChildPerformanceDao>> unChildPerformanceList(String merchantId, String checkUserId, int page, int size) { public ResponseDto<PageInfo<ChildPerformanceDao>> unChildPerformanceList(String merchantId, String checkUserId, int page, int size,String name) {
PageInfo<ChildPerformanceDao> pageInfo = null; PageInfo<ChildPerformanceDao> pageInfo = null;
try { try {
PageHelper.startPage(page, size); PageHelper.startPage(page, size);
List<ChildPerformanceDao> data = checkUserPerformancesMapper.unChildPerformanceList(merchantId, checkUserId); List<ChildPerformanceDao> data = checkUserPerformancesMapper.unChildPerformanceList(merchantId, checkUserId,name);
pageInfo = new PageInfo(data); pageInfo = new PageInfo(data);
return ResponseDto.success(pageInfo); return ResponseDto.success(pageInfo);
} catch (Exception e) { } catch (Exception e) {
...@@ -77,7 +77,7 @@ public class KylinCheckUserPerformancesPartnerServiceImpl extends ServiceImpl<Ky ...@@ -77,7 +77,7 @@ public class KylinCheckUserPerformancesPartnerServiceImpl extends ServiceImpl<Ky
@Override @Override
public ResponseDto<String> setPerformance(CheckUserParam param) { public ResponseDto<String> setPerformance(CheckUserParam param) {
try { try {
List<String> performanceList = new ArrayList<>(); List<CheckPerformanceRelationParam> performanceList = new ArrayList<>();
for (CheckPerformanceRelationParam item : param.getCheckPerformanceRelationParamList()) { for (CheckPerformanceRelationParam item : param.getCheckPerformanceRelationParamList()) {
KylinCheckUserPerformances checkUserPerformances = new KylinCheckUserPerformances(); KylinCheckUserPerformances checkUserPerformances = new KylinCheckUserPerformances();
checkUserPerformances.setCheckUserId(param.getCheckUserId()); checkUserPerformances.setCheckUserId(param.getCheckUserId());
...@@ -87,17 +87,17 @@ public class KylinCheckUserPerformancesPartnerServiceImpl extends ServiceImpl<Ky ...@@ -87,17 +87,17 @@ public class KylinCheckUserPerformancesPartnerServiceImpl extends ServiceImpl<Ky
checkUserPerformances.setCreatedAt(LocalDateTime.now()); checkUserPerformances.setCreatedAt(LocalDateTime.now());
checkUserPerformances.setStatus(1); checkUserPerformances.setStatus(1);
checkUserPerformancesMapper.insert(checkUserPerformances); checkUserPerformancesMapper.insert(checkUserPerformances);
performanceList.add(item.getPerformanceId()); performanceList.add(item);
} }
KylinCheckUserPerformanceVo userPerformanceVo = new KylinCheckUserPerformanceVo(); KylinCheckUserPerformanceVo userPerformanceVo = new KylinCheckUserPerformanceVo();
userPerformanceVo.setCheckUserId(param.getCheckUserId()); userPerformanceVo.setCheckUserId(param.getCheckUserId());
userPerformanceVo.setPerformanceList(performanceList); userPerformanceVo.setRelationParams(performanceList);
mongoTemplate.remove(Query.query(Criteria.where("checkUserId").is(param.getCheckUserId())), KylinCheckUserPerformanceVo.class, KylinCheckUserPerformanceVo.class.getSimpleName()); mongoTemplate.remove(Query.query(Criteria.where("checkUserId").is(param.getCheckUserId())), KylinCheckUserPerformanceVo.class, KylinCheckUserPerformanceVo.class.getSimpleName());
mongoTemplate.insert(userPerformanceVo, KylinCheckUserPerformanceVo.class.getSimpleName()); mongoTemplate.insert(userPerformanceVo, KylinCheckUserPerformanceVo.class.getSimpleName());
redisUtil.hdel(KylinRedisConst.CHECK_USER_RELATION,param.getCheckUserId()); redisUtil.hdel(KylinRedisConst.CHECK_USER_RELATION, param.getCheckUserId());
return ResponseDto.success("添加成功"); return ResponseDto.success("添加成功");
}catch (Exception e){ } catch (Exception e) {
return ResponseDto.failure(ErrorMapping.get(20101)); return ResponseDto.failure(ErrorMapping.get(20101));
} }
} }
...@@ -105,19 +105,26 @@ public class KylinCheckUserPerformancesPartnerServiceImpl extends ServiceImpl<Ky ...@@ -105,19 +105,26 @@ public class KylinCheckUserPerformancesPartnerServiceImpl extends ServiceImpl<Ky
@Override @Override
public ResponseDto<String> delPerformance(List<String> performanceIds, String checkUserId) { public ResponseDto<String> delPerformance(List<String> performanceIds, String checkUserId) {
try { try {
List<String> performanceList = new ArrayList<>();
for (String performanceId : performanceIds) { for (String performanceId : performanceIds) {
performanceList.add(performanceId);
checkUserPerformancesMapper.delete(new UpdateWrapper<KylinCheckUserPerformances>().eq("check_user_id", checkUserId).eq("performance_id", performanceId)); checkUserPerformancesMapper.delete(new UpdateWrapper<KylinCheckUserPerformances>().eq("check_user_id", checkUserId).eq("performance_id", performanceId));
} }
mongoTemplate.remove(Query.query(Criteria.where("checkUserId").is(checkUserId)), KylinCheckUserPerformanceVo.class, KylinCheckUserPerformanceVo.class.getSimpleName());
KylinCheckUserPerformanceVo userPerformanceVo = new KylinCheckUserPerformanceVo(); KylinCheckUserPerformanceVo userPerformanceVo = new KylinCheckUserPerformanceVo();
List<CheckPerformanceRelationParam> performanceRelationParamsList = new ArrayList<>();
List<KylinCheckUserPerformances> data = checkUserPerformancesMapper.selectList(new UpdateWrapper<KylinCheckUserPerformances>().eq("check_user_id", checkUserId));
for (KylinCheckUserPerformances item : data) {
CheckPerformanceRelationParam performanceRelationParam = new CheckPerformanceRelationParam();
performanceRelationParam.setCanDownTime(item.getCanDownTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
performanceRelationParam.setPerformanceId(item.getCheckUserPerformanceId());
performanceRelationParamsList.add(performanceRelationParam);
}
userPerformanceVo.setCheckUserId(checkUserId); userPerformanceVo.setCheckUserId(checkUserId);
userPerformanceVo.setPerformanceList(performanceList); userPerformanceVo.setRelationParams(performanceRelationParamsList);
mongoTemplate.remove(Query.query(Criteria.where("checkUserId").is(checkUserId)), KylinCheckUserPerformanceVo.class, KylinCheckUserPerformanceVo.class.getSimpleName());
mongoTemplate.insert(userPerformanceVo, KylinCheckUserPerformanceVo.class.getSimpleName()); mongoTemplate.insert(userPerformanceVo, KylinCheckUserPerformanceVo.class.getSimpleName());
redisUtil.hdel(KylinRedisConst.CHECK_USER_RELATION,checkUserId); redisUtil.hdel(KylinRedisConst.CHECK_USER_RELATION, checkUserId);
return ResponseDto.success("删除成功"); return ResponseDto.success("删除成功");
}catch (Exception e){ } catch (Exception e) {
return ResponseDto.failure(ErrorMapping.get(20102)); return ResponseDto.failure(ErrorMapping.get(20102));
} }
} }
......
...@@ -487,6 +487,7 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor ...@@ -487,6 +487,7 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
int isExclusive = 0; int isExclusive = 0;
int isAdvance = 0; int isAdvance = 0;
int isDiscount = 0; int isDiscount = 0;
int payCountdownMinute = 15;
BigDecimal price = new BigDecimal("0.00"); BigDecimal price = new BigDecimal("0.00");
...@@ -549,6 +550,8 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor ...@@ -549,6 +550,8 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
isLackRegister = 1; isLackRegister = 1;
} }
payCountdownMinute = tickets.getPayCountdownMinute();
if (price.subtract(kylinTicketVo.getPrice()).compareTo(new BigDecimal("0.00")) < 0) { if (price.subtract(kylinTicketVo.getPrice()).compareTo(new BigDecimal("0.00")) < 0) {
price = kylinTicketVo.getPrice(); price = kylinTicketVo.getPrice();
} }
...@@ -568,7 +571,7 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor ...@@ -568,7 +571,7 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
} }
} }
kylinPerformanceVoData.setTimePriceVipAndLack(isLackRegister, isMember, isExclusive, price, stopSellTime, sellTime, isAdvance, isDiscount); kylinPerformanceVoData.setTimePriceVipAndLack(isLackRegister, isMember, isExclusive, price, stopSellTime, sellTime, isAdvance, isDiscount,payCountdownMinute);
boolean performanceExists = boolean performanceExists =
mongoTemplate.exists(Query.query(Criteria.where("performancesId").is(kylinPerformanceVoData.getPerformancesId())), KylinPerformanceVo.class, KylinPerformanceVo.class.getSimpleName()); mongoTemplate.exists(Query.query(Criteria.where("performancesId").is(kylinPerformanceVoData.getPerformancesId())), KylinPerformanceVo.class, KylinPerformanceVo.class.getSimpleName());
......
...@@ -102,6 +102,11 @@ public class DataUtils { ...@@ -102,6 +102,11 @@ public class DataUtils {
return (int) redisUtil.hincr(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId, KylinRedisConst.SURPLUS_GENERAL, surplusExchange); return (int) redisUtil.hincr(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId, KylinRedisConst.SURPLUS_GENERAL, surplusExchange);
} }
/**
* 根据演出id 获取 演出vo 详情
* @param performanceId
* @return
*/
public KylinPerformanceVo getPerformanceVo(String performanceId){ public KylinPerformanceVo getPerformanceVo(String performanceId){
if(redisUtil.hHasKey(KylinRedisConst.PERFORMANCES,performanceId)){ if(redisUtil.hHasKey(KylinRedisConst.PERFORMANCES,performanceId)){
}else{ }else{
...@@ -111,6 +116,11 @@ public class DataUtils { ...@@ -111,6 +116,11 @@ public class DataUtils {
return (KylinPerformanceVo) redisUtil.hget(KylinRedisConst.PERFORMANCES,performanceId); return (KylinPerformanceVo) redisUtil.hget(KylinRedisConst.PERFORMANCES,performanceId);
} }
/**
* 根据场次id 获取 场次vo 详情
* @param ticketTimeId
* @return
*/
public KylinTicketTimesVo getTicketTimesVo(String ticketTimeId){ public KylinTicketTimesVo getTicketTimesVo(String ticketTimeId){
if(redisUtil.hHasKey(KylinRedisConst.TIMES,ticketTimeId)){ if(redisUtil.hHasKey(KylinRedisConst.TIMES,ticketTimeId)){
}else{ }else{
...@@ -120,6 +130,11 @@ public class DataUtils { ...@@ -120,6 +130,11 @@ public class DataUtils {
return (KylinTicketTimesVo) redisUtil.hget(KylinRedisConst.TIMES,ticketTimeId); return (KylinTicketTimesVo) redisUtil.hget(KylinRedisConst.TIMES,ticketTimeId);
} }
/**
* 根据票种id 获取 票种vo 详情
* @param ticketId
* @return
*/
public KylinTicketVo getTicketVo(String ticketId){ public KylinTicketVo getTicketVo(String ticketId){
if(redisUtil.hHasKey(KylinRedisConst.TICKET,ticketId)){ if(redisUtil.hHasKey(KylinRedisConst.TICKET,ticketId)){
}else{ }else{
...@@ -128,5 +143,4 @@ public class DataUtils { ...@@ -128,5 +143,4 @@ public class DataUtils {
} }
return (KylinTicketVo) redisUtil.hget(KylinRedisConst.TICKET,ticketId); return (KylinTicketVo) redisUtil.hget(KylinRedisConst.TICKET,ticketId);
} }
} }
kylin_order_ticket_entities.add=UPDATE adam_enters SET `state`=2, updated_at=?, deleted_at=? where enters_id=?
\ No newline at end of file
kylin_order_ticket_relation.add=UPDATE adam_enters SET `state`=2, updated_at=?, deleted_at=? where enters_id=?
\ No newline at end of file
kylin_order_ticket_status.add=UPDATE adam_enters SET `state`=2, updated_at=?, deleted_at=? where enters_id=?
\ No newline at end of file
kylin_order_ticket.add=UPDATE adam_enters SET `state`=2, updated_at=?, deleted_at=? where enters_id=?
\ No newline at end of file
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