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

Commit 75592fa4 authored by 张国柄's avatar 张国柄

验票API逻辑实现

parent d3232688
...@@ -5,32 +5,16 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -5,32 +5,16 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
@ApiModel(value = "KylinStationCheckDataParam", description = "上载验票入参") @ApiModel(value = "KylinStationCheckDataParam", description = "上载验票入参")
@Data @Data
public class KylinStationCheckOrderParam implements Serializable { public class KylinStationCheckOrderParam implements Serializable {
private static final long serialVersionUID = 2312115659117282564L; private static final long serialVersionUID = 2312115659117282564L;
@ApiModelProperty(position = 10, value = "演出ID[64]") @ApiModelProperty(position = 11, value = "演出ID[64]")
private String performanceId; private String performanceId;
@ApiModelProperty(position = 11, value = "订单号") @ApiModelProperty(position = 13, value = "出票端:(验票app)android/ios")
private String orderCode; private String checkClient;
@ApiModelProperty(position = 12, value = "二维码地址") @ApiModelProperty(position = 14, value = "出票`orderTicketEntitiesId`列表")
private String qrCode; private List<String> checkedEntitiesIdList;
@ApiModelProperty(position = 13, value = "付款张数")
private Integer number;
@ApiModelProperty(position = 14, value = "退款张数")
private Integer refundNumber;
@ApiModelProperty(position = 16, value = "订单状态:0-待付款,1-已付款,2-已关闭,3-正在退款,4-已退款,5-待关闭,6-部分退款")
private Integer status;
@ApiModelProperty(position = 17, value = "支付状态:0-未支付,1-已支付,2-支付失败")
private Integer payStatus;
@ApiModelProperty(position = 18, value = "是否学生票[1-是,2-否]")
private Integer isStudent;
@ApiModelProperty(position = 19, value = "购买者是否是会员[0-否,1-是]")
private Integer isMember;
@ApiModelProperty(position = 30, value = "*验票张数")
private Integer checkedNumber;
@ApiModelProperty(position = 31, value = "*是否已同步[0-否,1-是]")
private Integer synced;
} }
...@@ -10,33 +10,24 @@ import java.io.Serializable; ...@@ -10,33 +10,24 @@ import java.io.Serializable;
@Data @Data
public class KylinStationCheckOrderVo implements Serializable { public class KylinStationCheckOrderVo implements Serializable {
private static final long serialVersionUID = 7450966265904643147L; private static final long serialVersionUID = 7450966265904643147L;
@ApiModelProperty(position = 10, value = "演出ID[64]") @ApiModelProperty(position = 10, value = "ID[64]")
private String orderTicketEntitiesId;
@ApiModelProperty(position = 11, value = "演出ID[64]")
private String performanceId; private String performanceId;
@ApiModelProperty(position = 11, value = "订单号") @ApiModelProperty(position = 12, value = "订单ID")
private String orderCode; private String orderId;
@ApiModelProperty(position = 12, value = "二维码地址")
private String qrCode;
@ApiModelProperty(position = 13, value = "用户昵称") @ApiModelProperty(position = 13, value = "用户昵称")
private String userName; private String enterName;
@ApiModelProperty(position = 14, value = "用户手机号") @ApiModelProperty(position = 14, value = "用户手机号")
private String userMobile; private String enterMobile;
@ApiModelProperty(position = 16, value = "付款张数") @ApiModelProperty(position = 15, value = "出票状态:0-未出票,1-已出票")
private Integer number;
@ApiModelProperty(position = 17, value = "退款张数")
private Integer refundNumber;
@ApiModelProperty(position = 18, value = "订单状态:0-待付款,1-已付款,2-已关闭,3-正在退款,4-已退款,5-待关闭,6-部分退款")
private Integer status; private Integer status;
@ApiModelProperty(position = 19, value = "支付状态:0-未支付,1-已支付,2-支付失败") @ApiModelProperty(position = 16, value = "支付状态:0-未支付,1-已支付,2-退款中,3-已退款")
private Integer payStatus; private Integer isPayment;
@ApiModelProperty(position = 20, value = "是否学生票[1-是,2-否]") @ApiModelProperty(position = 17, value = "出票端:(验票app)android/ios")
private Integer isStudent; private String checkClient;
@ApiModelProperty(position = 21, value = "购买者是否是会员[0-否,1-是]") @ApiModelProperty(position = 18, value = "二维身份CODE")
private Integer isMember; private String qrCode;
@ApiModelProperty(position = 30, value = "*验票张数")
private Integer checkedNumber;
@ApiModelProperty(position = 31, value = "*是否已同步[0-否,1-是]")
private Integer synced;
private static final KylinStationCheckOrderVo obj = new KylinStationCheckOrderVo(); private static final KylinStationCheckOrderVo obj = new KylinStationCheckOrderVo();
......
...@@ -12,7 +12,7 @@ import java.util.List; ...@@ -12,7 +12,7 @@ import java.util.List;
public class KylinStationPerformanceVo implements Serializable, Cloneable { public class KylinStationPerformanceVo implements Serializable, Cloneable {
private static final long serialVersionUID = -4994363974994478286L; private static final long serialVersionUID = -4994363974994478286L;
@ApiModelProperty(position = 10, value = "演出ID[64]") @ApiModelProperty(position = 10, value = "演出ID[64]")
private String performanceId; private String performancesId;
@ApiModelProperty(position = 11, value = "类型[101-音乐节,102小型演出(livehouse演出),103巡演]") @ApiModelProperty(position = 11, value = "类型[101-音乐节,102小型演出(livehouse演出),103巡演]")
private Integer type; private Integer type;
@ApiModelProperty(position = 12, value = "演出标题[255]") @ApiModelProperty(position = 12, value = "演出标题[255]")
...@@ -38,7 +38,7 @@ public class KylinStationPerformanceVo implements Serializable, Cloneable { ...@@ -38,7 +38,7 @@ public class KylinStationPerformanceVo implements Serializable, Cloneable {
public KylinStationPerformanceVo copy(KylinPerformanceVo source) { public KylinStationPerformanceVo copy(KylinPerformanceVo source) {
if (null == source) return this; if (null == source) return this;
this.performanceId = source.getPerformancesId(); this.performancesId = source.getPerformancesId();
this.type = source.getType(); this.type = source.getType();
this.title = source.getTitle(); this.title = source.getTitle();
this.timeStart = source.getTimeStart(); this.timeStart = source.getTimeStart();
......
...@@ -12,24 +12,22 @@ import java.math.BigDecimal; ...@@ -12,24 +12,22 @@ import java.math.BigDecimal;
public class KylinStationTicketVo implements Serializable, Cloneable { public class KylinStationTicketVo implements Serializable, Cloneable {
private static final long serialVersionUID = 1303234075649915021L; private static final long serialVersionUID = 1303234075649915021L;
@ApiModelProperty(position = 10, value = "票种ID[64]") @ApiModelProperty(position = 10, value = "票种ID[64]")
private String ticketsId; private String ticketId;
@ApiModelProperty(position = 11, value = "类型[1-单日票,2-通票]") @ApiModelProperty(position = 11, value = "名称[32]")
private String type;
@ApiModelProperty(position = 12, value = "名称[32]")
private String title; private String title;
@ApiModelProperty(position = 13, value = "单价(8,2)") @ApiModelProperty(position = 12, value = "单价(8,2)")
private BigDecimal price; private BigDecimal price;
@ApiModelProperty(position = 14, value = "适用开始时间") @ApiModelProperty(position = 13, value = "适用开始时间")
private String useStart; private String useStart;
@ApiModelProperty(position = 15, value = "适用结束时间") @ApiModelProperty(position = 14, value = "适用结束时间")
private String useEnd; private String useEnd;
@ApiModelProperty(position = 16, value = "票房") @ApiModelProperty(position = 15, value = "票房")
private BigDecimal priceSum; private BigDecimal priceSum;
@ApiModelProperty(position = 17, value = "票量[9]") @ApiModelProperty(position = 16, value = "票量[9]")
private Integer number; private Integer number;
@ApiModelProperty(position = 18, value = "已验票量[9]") @ApiModelProperty(position = 17, value = "已验票量[9]")
private Integer checkedNum; private Integer checkedNum;
@ApiModelProperty(position = 19, value = "余量[9]") @ApiModelProperty(position = 18, value = "余量[9]")
private Integer remainderNum; private Integer remainderNum;
private static final KylinStationTicketVo obj = new KylinStationTicketVo(); private static final KylinStationTicketVo obj = new KylinStationTicketVo();
......
package com.liquidnet.service.kylin.service; package com.liquidnet.service.kylin.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.kylin.dto.param.KylinStationCheckOrderParam;
import com.liquidnet.service.kylin.entity.KylinOrderTicketEntities; import com.liquidnet.service.kylin.entity.KylinOrderTicketEntities;
/** /**
...@@ -13,4 +14,5 @@ import com.liquidnet.service.kylin.entity.KylinOrderTicketEntities; ...@@ -13,4 +14,5 @@ import com.liquidnet.service.kylin.entity.KylinOrderTicketEntities;
*/ */
public interface IKylinOrderTicketEntitiesService extends IService<KylinOrderTicketEntities> { public interface IKylinOrderTicketEntitiesService extends IService<KylinOrderTicketEntities> {
void updateByStation(KylinStationCheckOrderParam checkDataParam);
} }
...@@ -61,9 +61,19 @@ public abstract class DateUtil { ...@@ -61,9 +61,19 @@ public abstract class DateUtil {
} }
public String format(LocalDate localDate) { public String format(LocalDate localDate) {
if (localDate == null) {
return null;
}
return formatter.format(localDate); return formatter.format(localDate);
} }
public LocalDateTime parse(String str) {
if (null == str || str.trim().length() <= 0) {
return null;
}
return LocalDateTime.parse(str, formatter);
}
} }
/** /**
......
package com.liquidnet.service.kylin.service.impl; package com.liquidnet.service.kylin.service.impl;
import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.kylin.dto.param.KylinStationCheckOrderParam;
import com.liquidnet.service.kylin.dto.vo.KylinOrderTicketEntitiesVo;
import com.liquidnet.service.kylin.entity.KylinOrderTicketEntities; import com.liquidnet.service.kylin.entity.KylinOrderTicketEntities;
import com.liquidnet.service.kylin.mapper.KylinOrderTicketEntitiesMapper; import com.liquidnet.service.kylin.mapper.KylinOrderTicketEntitiesMapper;
import com.liquidnet.service.kylin.service.IKylinOrderTicketEntitiesService; import com.liquidnet.service.kylin.service.IKylinOrderTicketEntitiesService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mongodb.BasicDBObject;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
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 org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
/** /**
* <p> * <p>
...@@ -16,5 +34,37 @@ import org.springframework.stereotype.Service; ...@@ -16,5 +34,37 @@ import org.springframework.stereotype.Service;
*/ */
@Service @Service
public class KylinOrderTicketEntitiesServiceImpl extends ServiceImpl<KylinOrderTicketEntitiesMapper, KylinOrderTicketEntities> implements IKylinOrderTicketEntitiesService { public class KylinOrderTicketEntitiesServiceImpl extends ServiceImpl<KylinOrderTicketEntitiesMapper, KylinOrderTicketEntities> implements IKylinOrderTicketEntitiesService {
@Autowired
MongoConverter mongoConverter;
@Autowired
MongoTemplate mongoTemplate;
@Autowired
RabbitTemplate rabbitTemplate;
@Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void updateByStation(KylinStationCheckOrderParam checkDataParam) {
String performanceId = checkDataParam.getPerformanceId();
KylinOrderTicketEntitiesVo updateVo = new KylinOrderTicketEntitiesVo();
updateVo.setCheckClient(checkDataParam.getCheckClient());
updateVo.setStatus(1);// 1-已出票
List<String> checkedEntitiesIdList = checkDataParam.getCheckedEntitiesIdList();
mongoTemplate.getCollection(KylinOrderTicketEntitiesVo.class.getSimpleName()).updateMany(
Query.query(Criteria.where("performanceId").is(performanceId)
.and("orderTicketEntitiesId").in(checkedEntitiesIdList.toArray())
.and("status").is(0)
).getQueryObject(),
new BasicDBObject("$set", mongoConverter.convertToMongoType(updateVo))
);
LocalDateTime nowDt = LocalDateTime.now();
LinkedList<Object[]> paramsList = new LinkedList<>();
for (String id : checkedEntitiesIdList) {
paramsList.add(new Object[]{1, nowDt, id});
}
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_user.add", paramsList));
}
} }
...@@ -36,4 +36,10 @@ ...@@ -36,4 +36,10 @@
# 专业版APP # 专业版APP
20601=账号不存在 20601=账号不存在
20602=密码错误 20602=密码错误
\ No newline at end of file 20603=
20604=
20605=
20606=当前账号无关联演出数据
20607=当前账号未关联当前演出
20608=当前演出还未开放下载
\ No newline at end of file
kylin_order_ticket_entities.add=INSERT INTO kylin_order_ticket_entities(order_ticket_entities_id ,order_id ,ticket_id ,user_id ,time_id ,performance_id ,enter_type ,enter_name ,enter_mobile,enter_id_code,status,sys_damai,check_client,is_payment,comment,created_at,updated_at)VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) kylin_order_ticket_entities.add=INSERT INTO kylin_order_ticket_entities(order_ticket_entities_id ,order_id ,ticket_id ,user_id ,time_id ,performance_id ,enter_type ,enter_name ,enter_mobile,enter_id_code,status,sys_damai,check_client,is_payment,comment,created_at,updated_at)VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
kylin_order_ticket_entities.synPay=UPDATE kylin_order_ticket_status SET is_payment = ?,updated_at = ? WHERE order_tickets_id = ? kylin_order_ticket_entities.synPay=UPDATE kylin_order_ticket_entities SET is_payment = ?,updated_at = ? WHERE order_tickets_id = ?
\ No newline at end of file kylin_order_ticket_entities.updateStatusByStation=UPDATE kylin_order_ticket_status SET `status`=?, updated_at=? WHERE order_ticket_entities_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