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

Commit e6737397 authored by 张国柄's avatar 张国柄

~验票:上载数据更新+同步票务平台;

parent aae58ad3
......@@ -25,4 +25,14 @@ public class CheckVo implements Serializable {
private Integer checkingType;
@ApiModelProperty(value = "是否实名[必传 1 实名,2 非实名]")
private Integer authType;
private static final CheckVo obj = new CheckVo();
public static CheckVo getNew() {
try {
return (CheckVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new CheckVo();
}
}
}
......@@ -17,7 +17,11 @@
</properties>
<dependencies>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-service-kylin-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.liquidnet.service.feign.platform.api;
import com.liquidnet.service.kylin.dto.vo.ticketSystem.CheckVo;
import feign.hystrix.FallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@Component
@FeignClient(
name = "liquidnet-service-platform",
contextId = "FeignPlatformTicketSystemClient",
path = "platform",
url = "${liquidnet.service.platform.url}",
fallback = FallbackFactory.Default.class
)
public interface FeignPlatformTicketSystemClient {
@PostMapping("st/check/insert")
void insertCheck(@RequestBody List<CheckVo> ticketList);
}
package com.liquidnet.service.merchant.service.impl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.feign.platform.api.FeignPlatformTicketSystemClient;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.kylin.dto.vo.ticketSystem.CheckVo;
import com.liquidnet.service.merchant.constant.MerchantAuthorizationConst;
import com.liquidnet.service.merchant.dto.param.MerchantStationUploadParam;
import com.liquidnet.service.merchant.dto.vo.*;
......@@ -29,6 +33,7 @@ import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
......@@ -42,6 +47,11 @@ public class MerchantStationService {
MongoTemplate mongoTemplate;
@Autowired
QueueUtil queueUtil;
@Autowired
RedisUtil redisUtil;
@Autowired
FeignPlatformTicketSystemClient feignPlatformTicketSystemClient;
/**
* 查取用户存在权限的演出
......@@ -141,6 +151,7 @@ public class MerchantStationService {
LocalDateTime nowDt = LocalDateTime.now();
String nowDtStr = DateUtil.format(nowDt, DateUtil.Formatter.yyyyMMddHHmmss);
LinkedList<Object[]> paramsList = CollectionUtil.linkedListObjectArr();
List<String> orderTicketEntitiesIdList = CollectionUtil.arrayListString();
List<WriteModel<Document>> list = ObjectUtil.getWriteModelDocumentArrayList();
parameter.getCheckOrderParamList().forEach(r -> {
if (StringUtils.isNotBlank(r.getTicketEntitiesId())) {
......@@ -161,6 +172,8 @@ public class MerchantStationService {
.append("checkedAt", updateVo.getCheckedAt())
.append("checkUserId", updateVo.getUserId());
list.add(new UpdateOneModel<>(updateQuery, new Document("$set", updateDoc)));
orderTicketEntitiesIdList.add(r.getTicketEntitiesId());
}
});
BulkWriteResult bulkWriteResult = mongoTemplate.getCollection(KylinOrderTicketEntitiesVo.class.getSimpleName()).bulkWrite(list);
......@@ -168,9 +181,48 @@ public class MerchantStationService {
if (bulkWriteResult.getModifiedCount() > 0) {
queueUtil.sendMsgByRedis(MQConst.KylinQueue.SQL_STATION.getKey(),
SqlMapping.get("kylin_order_ticket_entities.update_status_bystation", paramsList));
/* ====================================== 同步票务系统 */
ArrayList<CheckVo> checkVos = ObjectUtil.getCheckVoArrayList();
Query orderTicketEntitiesVoQuery = Query.query(Criteria.where("orderTicketEntitiesId").in(orderTicketEntitiesIdList));
orderTicketEntitiesVoQuery.fields().include("ticketId").include("timeId").include("enterIdCode").include("checkedAt");
List<KylinOrderTicketEntitiesVo> checkOrderVos = mongoTemplate.find(orderTicketEntitiesVoQuery, KylinOrderTicketEntitiesVo.class, KylinOrderTicketEntitiesVo.class.getSimpleName());
checkOrderVos.forEach(r -> {
CheckVo checkVo = CheckVo.getNew();
checkVo.setTicketId(r.getTicketId());
checkVo.setPriceId(this.getPriceId(r.getTicketId()));
checkVo.setSessionId(r.getTimeId());
checkVo.setSessionCode(this.getSessionCode(r.getTimeId()));
checkVo.setCheckingTime(DateUtil.Formatter.yyyyMMddHHmmss.parse(r.getCheckedAt()));
checkVo.setCheckingType(1);
checkVo.setAuthType(StringUtils.isEmpty(r.getEnterIdCode()) ? 2 : 1);
checkVos.add(checkVo);
});
if (!CollectionUtils.isEmpty(checkVos)) {
try {
feignPlatformTicketSystemClient.insertCheck(checkVos);
} catch (Exception e) {
log.error("验票:上载验票数据:同步票务系统请求异常");
}
}
/* ====================================== ========== */
}
}
/* ====================================== 同步票务系统使用:同Klin逻辑 ====================================== */
private String getSessionCode(String ticketTimeId) {
return (String) redisUtil.get(KylinRedisConst.TIMES_SESSION_CODE.concat(ticketTimeId));
}
private String getPriceId(String ticketId) {
return ticketId.concat("01");
}
/* ====================================== ======================= ====================================== */
/**
* 下载、更新验票数据
*
......
......@@ -5,6 +5,7 @@ import com.liquidnet.service.kylin.dao.PerformancePartnerListDao;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo;
import com.liquidnet.service.kylin.dto.vo.partner.KylinPerformancePartnerListVo;
import com.liquidnet.service.kylin.dto.vo.partner.TicketTimesTicketCreatePartnerVo;
import com.liquidnet.service.kylin.dto.vo.ticketSystem.CheckVo;
import com.liquidnet.service.merchant.dto.vo.*;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.WriteModel;
......@@ -37,6 +38,7 @@ public class ObjectUtil {
private static final ArrayList<KylinPerformancePartnerListVo> performancePartnerListVo = new ArrayList<>();
private static final ArrayList<MerchantAuthorizationPerformanceVo> permissionVoList = new ArrayList<>();
private static final ArrayList<KylinTicketVo> kylinTicketVoArrayList = new ArrayList<>();
private static final ArrayList<CheckVo> checkVoArrayList = new ArrayList<>();
public static ArrayList<PerformancePartnerListDao> getPerformancePartnerListDaoArrayList() {
return (ArrayList<PerformancePartnerListDao>) performancePartnerListDaoArrayList.clone();
......@@ -101,4 +103,8 @@ public class ObjectUtil {
public static ArrayList<KylinTicketVo> getKylinTicketVoArrayList() {
return (ArrayList<KylinTicketVo>) kylinTicketVoArrayList.clone();
}
public static ArrayList<CheckVo> getCheckVoArrayList() {
return (ArrayList<CheckVo>) checkVoArrayList.clone();
}
}
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