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

Commit 30e498e0 authored by 姜秀龙's avatar 姜秀龙

cp form local

parent 8dd2fcaf
package com.liquidnet.service.platform.service.impl; package com.liquidnet.service.platform.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
//import com.liquidnet.client.admin.common.utils.DateUtils;
import com.liquidnet.commons.lang.util.IDGenerator; import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.kylin.dao.OrderPushDamaiDto; import com.liquidnet.service.kylin.dao.OrderPushDamaiDto;
import com.liquidnet.service.kylin.entity.*; import com.liquidnet.service.kylin.entity.*;
import com.liquidnet.service.kylin.mapper.*; import com.liquidnet.service.kylin.mapper.*;
import com.liquidnet.service.kylin.service.other.DamaiService; import com.liquidnet.service.kylin.service.other.DamaiService;
import com.liquidnet.service.platform.utils.DataUtils;
import com.liquidnet.service.platform.utils.TaobaoTicketUtils; import com.liquidnet.service.platform.utils.TaobaoTicketUtils;
import com.liquidnet.service.slime.dto.vo.SlimeFieldsVo; import com.liquidnet.service.slime.entity.SlimeFields;
import com.liquidnet.service.slime.mapper.SlimeFieldsMapper;
import com.taobao.api.TaobaoClient; import com.taobao.api.TaobaoClient;
import com.taobao.api.internal.util.StringUtils; import com.taobao.api.internal.util.StringUtils;
import com.taobao.api.request.*; import com.taobao.api.request.*;
...@@ -19,24 +23,25 @@ import com.taobao.api.request.AlibabaDamaiMevOpenPushprojectRequest.ThirdProject ...@@ -19,24 +23,25 @@ import com.taobao.api.request.AlibabaDamaiMevOpenPushprojectRequest.ThirdProject
import com.taobao.api.response.*; import com.taobao.api.response.*;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
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.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* <p> * <p>
* 巡演 服务实现类 (Platform Clone) * 巡演 服务实现类
* </p> * </p>
*
* @author liquidnet
* @since 2021-05-11
*/ */
@Service @Service
@Slf4j @Slf4j
public class PlatformDamaiServiceImpl extends ServiceImpl<KylinRoadShowsMapper, KylinRoadShows> public class KylinDamaiServiceImpl extends ServiceImpl<KylinRoadShowsMapper, KylinRoadShows> implements DamaiService {
implements DamaiService {
@Autowired @Autowired
private TaobaoTicketUtils taobaoTicketUtils; private TaobaoTicketUtils taobaoTicketUtils;
...@@ -57,28 +62,35 @@ public class PlatformDamaiServiceImpl extends ServiceImpl<KylinRoadShowsMapper, ...@@ -57,28 +62,35 @@ public class PlatformDamaiServiceImpl extends ServiceImpl<KylinRoadShowsMapper,
@Autowired @Autowired
private KylinTicketStatusMapper ticketStatusMapper; private KylinTicketStatusMapper ticketStatusMapper;
@Autowired @Autowired
private MongoTemplate mongoTemplate; private SlimeFieldsMapper slimeFieldsMapper;
@Autowired
private ArrayList<Long> empty = new ArrayList<>(); private DataUtils dataUtils;
int orderCountAll = 0;
@Override @Override
public Boolean sycPerformance(String performanceId) { public Boolean sycPerformance(String performanceId) {
try { try {
empty.clear(); // 大麦工具
orderCountAll = 0;
TaobaoClient client = taobaoTicketUtils.initTaobaoClient(); TaobaoClient client = taobaoTicketUtils.initTaobaoClient();
AlibabaDamaiMevOpenPushprojectRequest req = new AlibabaDamaiMevOpenPushprojectRequest(); AlibabaDamaiMevOpenPushprojectRequest req = new AlibabaDamaiMevOpenPushprojectRequest();
ThirdProjectPushOpenParam obj1 = new ThirdProjectPushOpenParam(); ThirdProjectPushOpenParam obj1 = new ThirdProjectPushOpenParam();
KylinPerformances performanceData = performancesMapper // 演出数据
.selectOne(new UpdateWrapper<KylinPerformances>().eq("performances_id", performanceId)); KylinPerformances performanceData = performancesMapper.selectOne(
KylinPerformanceRelations performanceRelationData = performanceRelationsMapper new UpdateWrapper<KylinPerformances>().eq("performances_id", performanceId)
.selectOne(new UpdateWrapper<KylinPerformanceRelations>().eq("performance_id", performanceId)); );
KylinPerformanceRelations performanceRelationData = performanceRelationsMapper.selectOne(
new UpdateWrapper<KylinPerformanceRelations>().eq("performance_id", performanceId)
);
obj1.setPicUrl(performanceData.getImgPoster()); // 同步场地信息
Long venueId = sycField(performanceRelationData.getFieldId());
if (venueId <= 0) {
return false;
}
// 同步演出信息
obj1.setVenueId(venueId);
obj1.setPicUrl(performanceData.getImgPoster());
long performanceKey = IDGenerator.getDamaiCode(performanceData.getPerformancesId()); long performanceKey = IDGenerator.getDamaiCode(performanceData.getPerformancesId());
obj1.setProjectId(performanceKey); obj1.setProjectId(performanceKey);
obj1.setProjectName(performanceData.getTitle()); obj1.setProjectName(performanceData.getTitle());
...@@ -86,78 +98,116 @@ public class PlatformDamaiServiceImpl extends ServiceImpl<KylinRoadShowsMapper, ...@@ -86,78 +98,116 @@ public class PlatformDamaiServiceImpl extends ServiceImpl<KylinRoadShowsMapper,
obj1.setCityId(110100L); obj1.setCityId(110100L);
} else if (performanceData.getCityId().equals(3833)) { } else if (performanceData.getCityId().equals(3833)) {
obj1.setCityId(520100L); obj1.setCityId(520100L);
} else {// 520100 } else {//520100
SlimeFieldsVo fieldsVo = getFieldsVoByFieldId(performanceRelationData.getFieldId()); String cityId = dataUtils.getFieldsVoByFieldId(performanceRelationData.getFieldId()).getCityId();
String cityId = fieldsVo != null ? fieldsVo.getCityId() : "110100"; // Default or handle null
if (fieldsVo == null) {
log.warn("Field not found for fieldId: {}", performanceRelationData.getFieldId());
}
obj1.setCityId(Long.parseLong(cityId)); obj1.setCityId(Long.parseLong(cityId));
} }
obj1.setSupplierSecret(taobaoTicketUtils.getSupplierSecret()); obj1.setSupplierSecret(taobaoTicketUtils.getSupplierSecret());
obj1.setSystemId(taobaoTicketUtils.getSystemId()); obj1.setSystemId(taobaoTicketUtils.getSystemId());
Long venueId = sycField(performanceId, performanceRelationData.getFieldId());
if (venueId != 0) {
obj1.setVenueId(venueId);
}
req.setPushProjectParam(obj1); req.setPushProjectParam(obj1);
log.info("[同步演出] 演出名称 = " + performanceData.getTitle() + " 大麦演出id =" + performanceKey); log.info("[同步演出] 演出名称 = " + performanceData.getTitle() + " 大麦演出id =" + performanceKey);
AlibabaDamaiMevOpenPushprojectResponse rsp = client.execute(req); AlibabaDamaiMevOpenPushprojectResponse rsp = client.execute(req);
log.info("[BODY = {}]", rsp.getBody()); if (!rsp.getResult().getSuccess()) {
if (rsp.getResult().getSuccess()) { log.error("[同步演出] res [BODY = {}]", rsp.getBody());
List<KylinTicketTimeRelation> timeRelation = ticketTimeRelationMapper return false;
.selectList(new UpdateWrapper<KylinTicketTimeRelation>().eq("performance_id", performanceId)); }
for (int i = 0; i < timeRelation.size(); i++) {
KylinTicketTimes timeData = ticketTimesMapper.selectOne(new UpdateWrapper<KylinTicketTimes>() // 同步场次
.eq("ticket_times_id", timeRelation.get(i).getTimesId())); List<KylinTicketTimeRelation> timeRelation = ticketTimeRelationMapper.selectList(
new UpdateWrapper<KylinTicketTimeRelation>().eq("performance_id", performanceId)
);
for (KylinTicketTimeRelation relation : timeRelation) {
KylinTicketTimes timeData = ticketTimesMapper.selectOne(
new UpdateWrapper<KylinTicketTimes>().eq("ticket_times_id", relation.getTimesId())
);
boolean result = sycTimes(performanceKey, timeData, venueId); boolean result = sycTimes(performanceKey, timeData, venueId);
if (!result) { if (!result) {
return false; return false;
} }
} }
log.info("[ 同步大麦-完成 ]");
return true; // 同步票种
} else { List<String> timeIdList = timeRelation.stream().map(KylinTicketTimeRelation::getTimesId).collect(Collectors.toList());
List<KylinTicketRelations> ticketRelation = ticketRelationsMapper.selectList(
new UpdateWrapper<KylinTicketRelations>().in("times_id", timeIdList)
);
for (KylinTicketRelations ticketRelations : ticketRelation) {
long ticketTimesKey = IDGenerator.getDamaiCode(ticketRelations.getTimesId());
// 是否开启了同步的票种
// KylinTicketStatus ticketStatus = ticketStatusMapper.selectOne(
// new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", ticketRelations.getTicketId()).eq("sync_damai", 1)
// );
// if (null != ticketStatus) {
KylinTickets ticketData = ticketsMapper.selectOne(
new UpdateWrapper<KylinTickets>().eq("tickets_id", ticketRelations.getTicketId())
);
boolean result = sycTicket(ticketTimesKey, ticketData);
if (!result) {
return false; return false;
} }
} catch (Exception e) { // }
e.printStackTrace(); }
// 同步订单
for (KylinTicketRelations ticketRelations : ticketRelation) {
long ticketTimesKey = IDGenerator.getDamaiCode(ticketRelations.getTimesId());
long ticketIdKey = IDGenerator.getDamaiCode(ticketRelations.getTicketId());
long ticketIdKey2 = Long.valueOf(ticketIdKey + "".concat("010"));
boolean result = sycOrder(ticketTimesKey, ticketRelations.getTicketId(), ticketIdKey, ticketIdKey2);
if (!result) {
return false; return false;
} }
} }
// Local implementation of DataUtils.getFieldsVoByFieldId logic // 所有同步完成
private SlimeFieldsVo getFieldsVoByFieldId(String fieldId) { log.info("[ 同步大麦-完成 ]");
return mongoTemplate.findOne(Query.query(Criteria.where("fieldId").is(fieldId)), SlimeFieldsVo.class, return true;
SlimeFieldsVo.class.getSimpleName());
} catch (Exception e) {
log.error("[同步大麦] 异常:{}", e);
return false;
}
} }
public Long sycField(String performanceId, String fieldId) { public Long sycField(String fieldId) {
try { try {
TaobaoClient client = taobaoTicketUtils.initTaobaoClient(); TaobaoClient client = taobaoTicketUtils.initTaobaoClient();
AlibabaDamaiMevOpenPushvenueRequest req = new AlibabaDamaiMevOpenPushvenueRequest(); AlibabaDamaiMevOpenPushvenueRequest req = new AlibabaDamaiMevOpenPushvenueRequest();
AlibabaDamaiMevOpenPushvenueRequest.ThirdVenuePushOpenParam obj1 = new AlibabaDamaiMevOpenPushvenueRequest.ThirdVenuePushOpenParam(); AlibabaDamaiMevOpenPushvenueRequest.ThirdVenuePushOpenParam obj1 = new AlibabaDamaiMevOpenPushvenueRequest.ThirdVenuePushOpenParam();
// obj1.setPushTime(StringUtils.parseDateTime("2017-01-01 00:00:00"));
obj1.setSupplierSecret(taobaoTicketUtils.getSupplierSecret()); obj1.setSupplierSecret(taobaoTicketUtils.getSupplierSecret());
obj1.setSystemId(taobaoTicketUtils.getSystemId()); obj1.setSystemId(taobaoTicketUtils.getSystemId());
SlimeFieldsVo fieldsVo = getFieldsVoByFieldId(fieldId); // if (performanceId.equals("299481167884001288936975")) {
if (fieldsVo == null) { // obj1.setVenueId(2774011L);
return 0L; // obj1.setVenueName("北京世园公园");
} //// obj1.setVenueAddress("foo");
obj1.setVenueId(Long.parseLong(fieldsVo.getFieldId())); // } else if (performanceId.equals("5936257")) {
obj1.setVenueName(fieldsVo.getName()); // obj1.setVenueId(3238010L);
obj1.setVenueAddress(fieldsVo.getAddress()); // obj1.setVenueName("贵阳奥林匹克体育中心");
//// obj1.setVenueAddress("foo");
// } else {
// return 0L;
// }
SlimeFields slimeFields = slimeFieldsMapper.selectOne(
Wrappers.lambdaQuery(SlimeFields.class)
.eq(SlimeFields::getFieldId, fieldId)
);
// SlimeFieldsVo fieldsVo = dataUtils.getFieldsVoByFieldId(fieldId);
obj1.setVenueId(slimeFields.getMid());
obj1.setVenueName(slimeFields.getName());
obj1.setVenueAddress(slimeFields.getAddress());
req.setPushVenueParam(obj1); req.setPushVenueParam(obj1);
AlibabaDamaiMevOpenPushvenueResponse rsp = client.execute(req);
log.info("[同步场地] 场地名称 = " + obj1.getVenueName() + " 大麦场地id =" + obj1.getVenueId()); log.info("[同步场地] 场地名称 = " + obj1.getVenueName() + " 大麦场地id =" + obj1.getVenueId());
log.info("[BODY = {}]", rsp.getBody()); AlibabaDamaiMevOpenPushvenueResponse rsp = client.execute(req);
if (!rsp.getResult().getSuccess()) { if (!rsp.getResult().getSuccess()) {
log.error("[同步场地] res [BODY = {}]", rsp.getBody());
return 0L; return 0L;
} }
return obj1.getVenueId(); return obj1.getVenueId();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); log.error("[同步场地] 异常:{}", e);
return 0L; return 0L;
} }
} }
...@@ -174,35 +224,21 @@ public class PlatformDamaiServiceImpl extends ServiceImpl<KylinRoadShowsMapper, ...@@ -174,35 +224,21 @@ public class PlatformDamaiServiceImpl extends ServiceImpl<KylinRoadShowsMapper,
obj1.setPerformName(timesData.getTitle()); obj1.setPerformName(timesData.getTitle());
obj1.setProjectId(performancesmId); obj1.setProjectId(performancesmId);
obj1.setVenueId(venueId); obj1.setVenueId(venueId);
obj1.setStartTime(StringUtils obj1.setStartTime(StringUtils.parseDateTime(timesData.getUseStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))));
.parseDateTime(timesData.getUseStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))); obj1.setEndTime(StringUtils.parseDateTime(timesData.getUseEnd().plusDays(1).minusSeconds(1L).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))));
obj1.setEndTime(StringUtils.parseDateTime(timesData.getUseEnd().plusDays(1).minusSeconds(1L) // obj1.setEndTime(StringUtils.parseDateTime(timesData.getUseEnd().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))));
.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))));
obj1.setSupplierSecret(taobaoTicketUtils.getSupplierSecret()); obj1.setSupplierSecret(taobaoTicketUtils.getSupplierSecret());
obj1.setSystemId(taobaoTicketUtils.getSystemId()); obj1.setSystemId(taobaoTicketUtils.getSystemId());
req.setPushPerformParam(obj1); req.setPushPerformParam(obj1);
log.info("[同步场次] 场次名称 = " + timesData.getTitle() + " 大麦场次id =" + ticketTimesKey); log.info("[同步场次] 场次名称 = " + timesData.getTitle() + " 大麦场次id =" + ticketTimesKey);
AlibabaDamaiMevOpenPushperformResponse rsp = client.execute(req); AlibabaDamaiMevOpenPushperformResponse rsp = client.execute(req);
if (rsp.getResult().getSuccess()) { if (!rsp.getResult().getSuccess()) {
List<KylinTicketRelations> ticketRelation = ticketRelationsMapper.selectList( log.error("[同步场次] res [BODY = {}]", rsp.getBody());
new UpdateWrapper<KylinTicketRelations>().eq("times_id", timesData.getTicketTimesId()));
for (int i = 0; i < ticketRelation.size(); i++) {
if (null != ticketStatusMapper.selectOne(new UpdateWrapper<KylinTicketStatus>()
.eq("ticket_id", ticketRelation.get(i).getTicketId()).eq("sync_damai", 1))) {
KylinTickets ticketData = ticketsMapper.selectOne(new UpdateWrapper<KylinTickets>()
.eq("tickets_id", ticketRelation.get(i).getTicketId()));
boolean result = sycTicket(ticketTimesKey, ticketData);
if (!result) {
return false; return false;
} }
}
}
return true; return true;
} else {
return false;
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); log.error("[同步场次] 异常:{}", e);
return false; return false;
} }
} }
...@@ -221,10 +257,9 @@ public class PlatformDamaiServiceImpl extends ServiceImpl<KylinRoadShowsMapper, ...@@ -221,10 +257,9 @@ public class PlatformDamaiServiceImpl extends ServiceImpl<KylinRoadShowsMapper,
obj1.setSupplierSecret(taobaoTicketUtils.getSupplierSecret()); obj1.setSupplierSecret(taobaoTicketUtils.getSupplierSecret());
obj1.setSystemId(taobaoTicketUtils.getSystemId()); obj1.setSystemId(taobaoTicketUtils.getSystemId());
req.setPushItemParam(obj1); req.setPushItemParam(obj1);
log.info("[同步票种] 票种名称 = " + ticketsData.getTitle() + " 大麦票种id =" + ticketIdKey + " 票种价格 = " log.info("[同步票种] 票种名称 = " + ticketsData.getTitle() + " 大麦票种id =" + ticketIdKey + " 票种价格 = " + ticketsData.getPrice());
+ ticketsData.getPrice());
AlibabaDamaiMevOpenPushitemResponse rsp = client.execute(req); AlibabaDamaiMevOpenPushitemResponse rsp = client.execute(req);
if (rsp.getResult().getSuccess()) {
TaobaoClient client2 = taobaoTicketUtils.initTaobaoClient(); TaobaoClient client2 = taobaoTicketUtils.initTaobaoClient();
AlibabaDamaiMevOpenPushitemRequest req2 = new AlibabaDamaiMevOpenPushitemRequest(); AlibabaDamaiMevOpenPushitemRequest req2 = new AlibabaDamaiMevOpenPushitemRequest();
PushTicketItemPushOpenParam obj12 = new PushTicketItemPushOpenParam(); PushTicketItemPushOpenParam obj12 = new PushTicketItemPushOpenParam();
...@@ -236,19 +271,17 @@ public class PlatformDamaiServiceImpl extends ServiceImpl<KylinRoadShowsMapper, ...@@ -236,19 +271,17 @@ public class PlatformDamaiServiceImpl extends ServiceImpl<KylinRoadShowsMapper,
obj12.setSupplierSecret(taobaoTicketUtils.getSupplierSecret()); obj12.setSupplierSecret(taobaoTicketUtils.getSupplierSecret());
obj12.setSystemId(taobaoTicketUtils.getSystemId()); obj12.setSystemId(taobaoTicketUtils.getSystemId());
req2.setPushItemParam(obj12); req2.setPushItemParam(obj12);
log.info("[同步票种] 票种名称 = " + ticketsData.getTitle() + "-登登登VIP 大麦票种id =" + ticketIdKey + " 票种价格 = " log.info("[同步VIP票种] 票种名称 = " + obj12.getItemName() + " 大麦票种id =" + ticketIdKey2 + " 票种价格 = " + ticketsData.getPrice());
+ ticketsData.getPrice());
AlibabaDamaiMevOpenPushitemResponse rsp2 = client2.execute(req2); AlibabaDamaiMevOpenPushitemResponse rsp2 = client2.execute(req2);
if (rsp2.getResult().getSuccess()) {
return sycOrder(timemId, ticketsData.getTicketsId(), ticketIdKey, ticketIdKey2); if (!rsp.getResult().getSuccess() || !rsp2.getResult().getSuccess()) {
} else { log.error("[同步票种] res [BODY = {}]", rsp.getBody());
return false; log.error("[同步VIP票种] res [BODY = {}]", rsp2.getBody());
}
} else {
return false; return false;
} }
return true;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); log.error("[同步票种] 异常:{}", e);
return false; return false;
} }
} }
...@@ -256,95 +289,164 @@ public class PlatformDamaiServiceImpl extends ServiceImpl<KylinRoadShowsMapper, ...@@ -256,95 +289,164 @@ public class PlatformDamaiServiceImpl extends ServiceImpl<KylinRoadShowsMapper,
@Override @Override
public Boolean sycOrder(long timemId, String ticketsId, long ticketsmId, long ticketIdMemberKey) { public Boolean sycOrder(long timemId, String ticketsId, long ticketsmId, long ticketIdMemberKey) {
try { try {
ArrayList<Long> orderTicketEntitiesKeyList = new ArrayList();
TaobaoClient client = taobaoTicketUtils.initTaobaoClient(); TaobaoClient client = taobaoTicketUtils.initTaobaoClient();
AlibabaDamaiMevOpenBatchpushticketRequest req = new AlibabaDamaiMevOpenBatchpushticketRequest(); AlibabaDamaiMevOpenBatchpushticketRequest req = new AlibabaDamaiMevOpenBatchpushticketRequest();
List<OrderPushDamaiDto> data = orderTicketsMapper.pushDamaiDetailsList(ticketsId); List<OrderPushDamaiDto> data = orderTicketsMapper.pushDamaiDetailsList(ticketsId);
log.info("[同步订单] 票种张数 = " + data.size() + " 票种id =" + ticketsId); int dataSize = data.size();
int forSize = 100; log.info("[同步订单] 票种总张数 = " + dataSize + " 票种id =" + ticketsId);
int batchSize = 100;
int orderCount = 0; int orderCount = 0;
int forCount = data.size() % forSize == 0 ? data.size() / forSize : (data.size() / forSize) + 1; int refundOrderCount = 0;
for (int i = 0; i < forCount; i++) { int transferRefundOrderCount = 0;
List<ThirdTicketPushOpenParam> list2 = new ArrayList<>(); for (int i = 0; i < dataSize; i += batchSize) {
for (int y = 0; y < forSize; y++) {
if ((i * forSize + y) == data.size()) { List<ThirdTicketPushOpenParam> paramList = new ArrayList<>();
break; // 使用 subList 方法获取当前批次的数据子列表
} List<OrderPushDamaiDto> batch = data.subList(i, Math.min(i + batchSize, dataSize));
OrderPushDamaiDto item = data.get(i * forSize + y);
for (OrderPushDamaiDto item : batch) {
ThirdTicketPushOpenParam obj3 = new ThirdTicketPushOpenParam(); ThirdTicketPushOpenParam obj3 = new ThirdTicketPushOpenParam();
String ticketEntitiesId = item.getOrderTicketEntitiesId();
// 生成大麦票单 id
long orderTicketEntitiesKey; long orderTicketEntitiesKey;
if (item.getIsMember() == 1) { if (item.getIsMember() == 1) {
orderTicketEntitiesKey = Long.valueOf( orderTicketEntitiesKey = Long.valueOf(IDGenerator.getDamaiCode(ticketEntitiesId).toString().concat("010"));
IDGenerator.getDamaiCode(item.getOrderTicketEntitiesId()).toString().concat("010"));
} else { } else {
orderTicketEntitiesKey = Long.valueOf( orderTicketEntitiesKey = Long.valueOf(IDGenerator.getDamaiCode(ticketEntitiesId).toString().concat("020"));
IDGenerator.getDamaiCode(item.getOrderTicketEntitiesId()).toString().concat("020"));
} }
long orderIdKey = IDGenerator.getDamaiCode(item.getOrderTicketsId()); // 可能orderTicketEntitiesKey有重复的吧 判断重复的加 1 但是也不准确 会不会有多个重复的
if (item.getIsPayment() == 3 || item.getIsPayment() == 2) { orderTicketEntitiesKey = checkAndIncrement(orderTicketEntitiesKeyList, orderTicketEntitiesKey, "1", ticketEntitiesId);
taobaoTicketUtils.withdrawDamaiOrder(timemId, orderTicketEntitiesKey); orderTicketEntitiesKeyList.add(orderTicketEntitiesKey);
} else if (item.getTransferStatus() == 2 || item.getTransferStatus() == 6) {
taobaoTicketUtils.withdrawDamaiOrder(timemId, orderTicketEntitiesKey);
} else {
if (item.getEnterType() == 0 && !item.getEnterName().equals("")) {
log.info("[入场人错误数据] 入场人id = " + item.getOrderTicketEntitiesId() + " 入场人 name = "
+ item.getEnterName());
}
if (empty.contains(orderTicketEntitiesKey)) {
log.info("[ ORDER COPY ] orderId = " + orderTicketEntitiesKey);
orderTicketEntitiesKey = Long.parseLong(orderTicketEntitiesKey + "1");
}
empty.add(orderTicketEntitiesKey);
orderCount += 1;
orderCountAll += 1;
list2.add(obj3); // 同步所有订单信息 已支付 退款中 已退款的
obj3.setUserName(item.getEnterName());// 用户名 入场人姓名 long orderIdKey = IDGenerator.getDamaiCode(item.getOrderTicketsId());
obj3.setCertificateNo(item.getEnterIdCode());// 证件号 入场人身份证 if (item.getEnterType() == 0 || item.getEnterName().equals("")) {
obj3.setOrderUserMobile(item.getEnterMobile());// 用户手机号 入场人手机号 log.error("[入场人信息错误] OrderTicketEntitiesId = " + item.getOrderTicketEntitiesId()
obj3.setCertificateType(item.getEnterType().longValue());// 证件内容 入场人证件type + " 入场人 type = " + item.getEnterType() + " 入场人 name = " + item.getEnterName());
try { continue;
obj3.setPayTime( }
new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(item.getTimePay()));// 支付时间 // 用户名 入场人姓名
} catch (java.text.ParseException e) { obj3.setUserName(item.getEnterName());
log.error("Parse pay time error", e); // 证件号 入场人身份证
} obj3.setCertificateNo(item.getEnterIdCode());
obj3.setPerformId(timemId);// 场次id // 用户手机号 入场人手机号
obj3.setOrderUserMobile(item.getEnterMobile());
// 1大陆身份证 2港澳通行证 3台胞证 4护照 5军官证
// 证件内容 入场人证件type
// 大麦 1=身份证,2=学⽣证, 3=军官证,4=护照,5=港澳通⾏证,6=台胞证
switch (item.getEnterType()) {
case 1:
obj3.setCertificateType(1L);
break;
case 2:
obj3.setCertificateType(5L);
break;
case 3:
obj3.setCertificateType(6L);
break;
case 4:
obj3.setCertificateType(4L);
break;
case 5:
obj3.setCertificateType(3L);
break;
default:
log.error("[入场人类型错误] OrderTicketEntitiesId = " + item.getOrderTicketEntitiesId() + " 入场人 type = " + item.getEnterType());
continue;
}
// 支付时间
obj3.setPayTime(DateUtils.parseDate(item.getTimePay()));
// 场次id
obj3.setPerformId(timemId);
if (item.getIsMember() == 1) { if (item.getIsMember() == 1) {
obj3.setExt("登登登VIP"); // obj3.setExt("登登登VIP");
obj3.setExt("");
obj3.setTicketItemId(ticketIdMemberKey); obj3.setTicketItemId(ticketIdMemberKey);
} else { } else {
obj3.setExt("登登登VIP"); obj3.setExt("");
// obj3.setExt("登登登VIP");
obj3.setTicketItemId(ticketsmId); obj3.setTicketItemId(ticketsmId);
} }
obj3.setQrCode( obj3.setQrCode("http://m.zhengzai.tv?c=" + IDGenerator.ticketQrCode(item.getOrderTicketEntitiesId()));
"http://m.zhengzai.tv?c=" + IDGenerator.ticketQrCode(item.getOrderTicketEntitiesId())); // 票单号 入场人id
obj3.setVoucherId(orderTicketEntitiesKey);// 票单号 入场人id obj3.setVoucherId(orderTicketEntitiesKey);
obj3.setOrderId(orderIdKey);// 订单id orderId // 订单id orderId
obj3.setMediumType(item.getGetTicketType().equals("express") ? 1L : 2L);// 票类型 快递 电子 obj3.setOrderId(orderIdKey);
// 票类型 快递 电子
obj3.setMediumType(item.getGetTicketType().equals("express") ? 1L : 2L);
obj3.setSupplierSecret(taobaoTicketUtils.getSupplierSecret()); obj3.setSupplierSecret(taobaoTicketUtils.getSupplierSecret());
obj3.setSystemId(taobaoTicketUtils.getSystemId()); obj3.setSystemId(taobaoTicketUtils.getSystemId());
obj3.setSeatType(1L); obj3.setSeatType(1L);
obj3.setTicketType(1L);// 票类型 //票类型
obj3.setTicketType(1L);
List<ThirdTicketPushOpenParam> paramList2 = new ArrayList<>();
paramList2.add(obj3);
req.setThirdTicketSetOpenParamList(paramList2);
AlibabaDamaiMevOpenBatchpushticketResponse rsp = client.execute(req);
if (!rsp.getResult().getSuccess()) {
log.error("[同步订单] res [BODY = {}]", rsp.getBody());
return false;
}
// 部分退款是不退的,但是阶梯退票客服手动申请的现在也是部分退款,用户自己申请的现在不确定
// 取消退款的貌似没处理 其实这块应该可以不用处理退款中的,因为印象中退款那里有接入同步大麦
// 0未支付 1已支付 2退款中 3已退款 4部分退款
// if (item.getIsPayment() == 3 || item.getIsPayment() == 2 || item.getIsPayment() == 4) {
if (item.getIsPayment() == 3 || item.getIsPayment() == 2) {
taobaoTicketUtils.withdrawDamaiOrder(timemId, orderTicketEntitiesKey);
refundOrderCount += 1;
// 已转赠是转出去了 被退回是被别人退回了 已退回是别人给我的我给退回了
// 0交易成功,1转增中,2已转赠,3转增订单,4待接收,5被退回 ,6已退回
} else if (item.getTransferStatus() == 2 || item.getTransferStatus() == 6) {
taobaoTicketUtils.withdrawDamaiOrder(timemId, orderTicketEntitiesKey);
transferRefundOrderCount += 1;
} else {
orderCount += 1;
} }
} }
req.setThirdTicketSetOpenParamList(list2);
if (list2.size() == 0) { /*if (paramList.size() == 0) {
return true; return true;
} else { } else {
req.setThirdTicketSetOpenParamList(paramList);
AlibabaDamaiMevOpenBatchpushticketResponse rsp = client.execute(req); AlibabaDamaiMevOpenBatchpushticketResponse rsp = client.execute(req);
if (!rsp.getResult().getSuccess()) { if (!rsp.getResult().getSuccess()) {
log.error("[同步订单] res [BODY = {}]", rsp.getBody());
return false; return false;
} }
}*/
} }
}
log.info("[ ORDER COUNT ] orderCount = " + orderCount); int count = orderCount + transferRefundOrderCount + refundOrderCount;
log.info("[ ORDER COUNT ALL ] orderCount = " + orderCountAll); log.info("[同步订单] 同步成功总张数 = " + count
+ " orderCount =" + orderCount + " refund =" + refundOrderCount + " transfer =" + transferRefundOrderCount + " 票种id =" + ticketsId);
return true; return true;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); log.error("[同步订单] 异常:{}", e);
return null; return null;
} }
} }
private Long checkAndIncrement(List<Long> list, Long value, String suffix, String ticketEntitiesId) {
// 如果列表中不包含该值,则返回该值
if (!list.contains(value)) {
return value;
} else {
log.error("[ order_ticket_entities_id重复 ] ticketEntitiesId = " + ticketEntitiesId);
// 生成新的值
Long newValue = Long.parseLong(value + suffix);
// 递归调用,尝试新值
return checkAndIncrement(list, newValue, suffix + "1", ticketEntitiesId);
}
}
public static void main(String[] args) {
Long a = IDGenerator.getDamaiCode("1360935572095672321307852");
System.out.println(a);
}
} }
\ 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