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

Commit b999cdbf authored by 胡佳晨's avatar 胡佳晨

修改 脚本库存脚本

parent 97a20e2c
...@@ -98,9 +98,9 @@ public class KylinOrderTicketStatus implements Serializable { ...@@ -98,9 +98,9 @@ public class KylinOrderTicketStatus implements Serializable {
* *
* @return * @return
*/ */
public Object[] getCloseOrderObject(LocalDateTime updateTime,LocalDateTime createTime) { public Object[] getCloseOrderObject() {
return new Object[]{ return new Object[]{
status, updatedAt, orderId,updateTime,createTime status, updatedAt, orderId
}; };
} }
} }
...@@ -234,9 +234,9 @@ public class KylinOrderTickets implements Serializable { ...@@ -234,9 +234,9 @@ public class KylinOrderTickets implements Serializable {
* *
* @return * @return
*/ */
public Object[] getCloseOrderObject(LocalDateTime updateTime,LocalDateTime createTime) { public Object[] getCloseOrderObject() {
return new Object[]{ return new Object[]{
updatedAt, orderTicketsId,updateTime,createTime updatedAt, orderTicketsId
}; };
} }
} }
...@@ -346,7 +346,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -346,7 +346,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
//生成订单 order_ticket //生成订单 order_ticket
KylinOrderTickets orderTickets = new KylinOrderTickets(); KylinOrderTickets orderTickets = new KylinOrderTickets();
String orderTicketId = IDGenerator.nextSnowId().toString(); String orderTicketId = IDGenerator.nextSnowId().toString();
log.debug("\n ORDER_TICKET_ID = "+ orderTicketId +" \n TIME = "+System.currentTimeMillis()); log.debug("\n ORDER_TICKET_ID = " + orderTicketId + " \n TIME = " + System.currentTimeMillis());
orderTickets.setOrderTicketsId(orderTicketId); orderTickets.setOrderTicketsId(orderTicketId);
orderTickets.setUserId(uid); orderTickets.setUserId(uid);
Map token = CurrentUtil.getTokenClaims(); Map token = CurrentUtil.getTokenClaims();
...@@ -549,7 +549,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -549,7 +549,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
httpData.add("client_ip", CurrentUtil.getCliIpAddr()); httpData.add("client_ip", CurrentUtil.getCliIpAddr());
httpData.add("notify_url", synUrl); httpData.add("notify_url", synUrl);
httpData.add("create_date", orderTickets.getCreatedAt().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); httpData.add("create_date", orderTickets.getCreatedAt().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
httpData.add("expire_time", orderTickets.getPayCountdownMinute().toString()); httpData.add("expire_time", (orderTickets.getPayCountdownMinute() + 1) + "");
if (payOrderParam.getDeviceFrom().equals("js") || payOrderParam.getDeviceFrom().equals("applet")) { if (payOrderParam.getDeviceFrom().equals("js") || payOrderParam.getDeviceFrom().equals("applet")) {
httpData.add("open_id", payOrderParam.getOpenId()); httpData.add("open_id", payOrderParam.getOpenId());
...@@ -1020,21 +1020,20 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -1020,21 +1020,20 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
if (redisLockUtil.tryLock(lock, 1, 3600)) { if (redisLockUtil.tryLock(lock, 1, 3600)) {
try { try {
List<OrderScriptDto> dtoData = orderTicketsMapper.orderScriptDto(userId); List<OrderScriptDto> dtoData = orderTicketsMapper.orderScriptDto(userId);
HashMap<String, Integer> map2 = new HashMap<>(); LocalDateTime now = LocalDateTime.now();
Integer count = 0; Long currentTime = System.currentTimeMillis();
Integer mqCount = 0; HashMap<String, Integer> mapSurplusGeneral = new HashMap<>();
Integer Acount = 0; ArrayList<String> orderIdList = new ArrayList<>();
Integer Ecount = 0; HashMap<String, Object> mapMongo = new HashMap<>();
for (OrderScriptDto item : dtoData) { for (OrderScriptDto item : dtoData) {
count += 1;
LinkedList<String> sqls = new LinkedList<>(); LinkedList<String> sqls = new LinkedList<>();
if (item.getStatus().equals(KylinTableStatusConst.ORDER_STATUS0)) { if (item.getStatus().equals(KylinTableStatusConst.ORDER_STATUS0)) {
LocalDateTime now = LocalDateTime.now();
try { try {
KylinOrderTicketVo vo = dataUtils.getOrderTicketVo(item.getOrderTicketsId()); // KylinOrderTicketVo vo = dataUtils.getOrderTicketVo(item.getOrderTicketsId());
if (vo.getStatus() != 0) { // if (vo.getStatus() != 0) {
continue; // continue;
} // }
//mysql //mysql
KylinOrderTickets orderTickets = new KylinOrderTickets(); KylinOrderTickets orderTickets = new KylinOrderTickets();
...@@ -1047,62 +1046,83 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -1047,62 +1046,83 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
orderTicketStatus.setUpdatedAt(now); orderTicketStatus.setUpdatedAt(now);
//vo //vo
HashMap<String, Object> map = new HashMap<>(); mapMongo.put("status", KylinTableStatusConst.ORDER_STATUS2);
map.put("status", KylinTableStatusConst.ORDER_STATUS2); mapMongo.put("updatedAt", DateUtil.Formatter.yyyyMMddHHmmssSSS.format(now));
map.put("updatedAt", DateUtil.Formatter.yyyyMMddHHmmssSSS.format(now)); mapMongo.put("changeDate", now);
map.put("changeDate", now); orderIdList.add(orderTickets.getOrderTicketsId() + "," + item.getUserId());
mongoTemplate.getCollection(KylinOrderTicketVo.class.getSimpleName()).updateOne( // mongoTemplate.getCollection(KylinOrderTicketVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("orderTicketsId").is(orderTickets.getOrderTicketsId())).getQueryObject(), // Query.query(Criteria.where("orderTicketsId").is(orderTickets.getOrderTicketsId())).getQueryObject(),
new BasicDBObject("$set", mongoConverter.convertToMongoType(map)) // new BasicDBObject("$set", mongoConverter.convertToMongoType(map))
); // );
LocalDateTime strTime = vo.getChangeDate();
// vo.setChangeDate(now);
vo.setChangeDate(now); // vo.setStatus(KylinTableStatusConst.ORDER_STATUS2);
vo.setStatus(KylinTableStatusConst.ORDER_STATUS2); // vo.setUpdatedAt(DateUtil.Formatter.yyyyMMddHHmmssSSS.format(now));
vo.setUpdatedAt(DateUtil.Formatter.yyyyMMddHHmmssSSS.format(now)); // redisUtil.set(KylinRedisConst.ORDER + orderTickets.getOrderTicketsId(), vo);
redisUtil.set(KylinRedisConst.ORDER + vo.getOrderTicketsId(), vo);
mapSurplusGeneral.put(item.getTicketId(), mapSurplusGeneral.get(item.getTicketId()) == null ? item.getNumber() : mapSurplusGeneral.get(item.getTicketId()) + item.getNumber());
map2.put(vo.getTicketId(), map2.get(vo.getTicketId()) == null ? vo.getNumber() : map2.get(vo.getTicketId()) + vo.getNumber()); // mongoVoUtils.resetOrderListVo(item.getUserId(), 2, item.getOrderTicketsId(), vo);
mongoVoUtils.resetOrderListVo(item.getUserId(), 2, item.getOrderTicketsId(), vo);
Acount += 1; // List<KylinOrderTicketEntitiesVo> entities = vo.getEntitiesVoList();
// for (int i = 0; i < entities.size(); i++) {
List<KylinOrderTicketEntitiesVo> entities = vo.getEntitiesVoList(); // KylinOrderTicketEntitiesVo items = entities.get(i);
for (int i = 0; i < entities.size(); i++) { // dataUtils.changeBuyInfo(items.getUserId(), items.getEnterIdCode(), items.getPerformanceId(), items.getTicketId(), -1);
KylinOrderTicketEntitiesVo items = entities.get(i); // }
dataUtils.changeBuyInfo(items.getUserId(), items.getEnterIdCode(), items.getPerformanceId(), items.getTicketId(), -1);
}
sqls.add(SqlMapping.get("kylin_order_ticket.close")); sqls.add(SqlMapping.get("kylin_order_ticket.close"));
LinkedList<Object[]> sqlsDataA = new LinkedList<>(); LinkedList<Object[]> sqlsDataA = new LinkedList<>();
sqlsDataA.add(orderTickets.getCloseOrderObject(strTime, strTime)); sqlsDataA.add(orderTickets.getCloseOrderObject());
sqls.add(SqlMapping.get("kylin_order_ticket_status.close")); sqls.add(SqlMapping.get("kylin_order_ticket_status.close"));
LinkedList<Object[]> sqlsDataB = new LinkedList<>(); LinkedList<Object[]> sqlsDataB = new LinkedList<>();
sqlsDataB.add(orderTicketStatus.getCloseOrderObject(strTime, strTime)); sqlsDataB.add(orderTicketStatus.getCloseOrderObject());
sqls.add(SqlMapping.get("kylin_order_ticket_relation.close")); sqls.add(SqlMapping.get("kylin_order_ticket_relation.close"));
LinkedList<Object[]> sqlsDataC = new LinkedList<>(); LinkedList<Object[]> sqlsDataC = new LinkedList<>();
sqlsDataC.add(new Object[]{orderTickets.getUpdatedAt(), orderTickets.getOrderTicketsId(), strTime, strTime}); sqlsDataC.add(new Object[]{orderTickets.getUpdatedAt(), orderTickets.getOrderTicketsId()});
rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL_ORDER_CLOSE, MQConst.ROUTING_KEY_SQL_ORDER_CLOSE, SqlMapping.gets(sqls, sqlsDataA, sqlsDataB, sqlsDataC)); rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL_ORDER_CLOSE, MQConst.ROUTING_KEY_SQL_ORDER_CLOSE, SqlMapping.gets(sqls, sqlsDataA, sqlsDataB, sqlsDataC));
mqCount += 1;
} catch (Exception e) { } catch (Exception e) {
log.debug("CHECK TIME SYNC = " + e.getMessage()); log.debug("CHECK TIME SYNC = " + e.getMessage());
e.printStackTrace(); e.printStackTrace();
return false; return false;
} }
}else{ } else {
Ecount+=1;
} }
} }
log.debug("COUNT 1 = " + count); currentTime = System.currentTimeMillis() - currentTime;
log.debug("COUNT 2 = " + mqCount); log.debug("FOR 循环 -> time:" + (currentTime) + "毫秒");
log.debug("COUNT 3 = " + Acount);
log.debug("COUNT 4 = " + Ecount);
for (Map.Entry<String, Integer> entry : map2.entrySet()) { //库存
for (Map.Entry<String, Integer> entry : mapSurplusGeneral.entrySet()) {
dataUtils.changeSurplusGeneral(entry.getKey(), entry.getValue()); dataUtils.changeSurplusGeneral(entry.getKey(), entry.getValue());
} }
currentTime = System.currentTimeMillis() - currentTime;
log.debug("redis 库存 -> time:" + (currentTime) + "毫秒");
//mongo
mongoTemplate.getCollection(KylinOrderTicketVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("orderTicketsId").in(orderIdList)).getQueryObject(),
new BasicDBObject("$set", mongoConverter.convertToMongoType(mapMongo))
);
currentTime = System.currentTimeMillis() - currentTime;
log.debug("mongo -> time:" + (currentTime) + "毫秒");
//redis 列表
orderIdList.forEach(t -> {
String orderTicketId = t.split(",")[0];
String uid = t.split(",")[1];
KylinOrderTicketVo vo = dataUtils.getOrderTicketVo(orderTicketId);
redisUtil.set(KylinRedisConst.ORDER + orderTicketId, vo);
mongoVoUtils.resetOrderListVo(uid, 2, orderTicketId, vo);
// redis 限购
for (int i = 0; i < vo.getEntitiesVoList().size(); i++) {
KylinOrderTicketEntitiesVo items = vo.getEntitiesVoList().get(i);
dataUtils.changeBuyInfo(items.getUserId(), items.getEnterIdCode(), items.getPerformanceId(), items.getTicketId(), -1);
}
});
currentTime = System.currentTimeMillis() - currentTime;
log.debug("redis 列表 限购 -> time:" + (currentTime) + "毫秒");
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} finally { } finally {
......
...@@ -417,6 +417,7 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor ...@@ -417,6 +417,7 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
return ResponseDto.success("保存成功"); return ResponseDto.success("保存成功");
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace();
return ResponseDto.failure(ErrorMapping.get(20115)); return ResponseDto.failure(ErrorMapping.get(20115));
} }
} }
......
...@@ -24,8 +24,8 @@ kylin_order_ticket_entities.synPay=UPDATE kylin_order_ticket_entities SET is_pay ...@@ -24,8 +24,8 @@ kylin_order_ticket_entities.synPay=UPDATE kylin_order_ticket_entities SET is_pay
# ------------------------订单关闭---------------------------- # ------------------------订单关闭----------------------------
kylin_order_ticket.close=UPDATE kylin_order_tickets SET updated_at = ? WHERE order_tickets_id = ? and (updated_at <= ? or created_at = ?) kylin_order_ticket.close=UPDATE kylin_order_tickets SET updated_at = ? WHERE order_tickets_id = ?
kylin_order_ticket_status.close=UPDATE kylin_order_ticket_status SET `status` = ?,updated_at = ? WHERE order_id = ? and (updated_at <= ? or created_at = ?) kylin_order_ticket_status.close=UPDATE kylin_order_ticket_status SET `status` = ?,updated_at = ? WHERE order_id = ?
kylin_order_ticket_relation.close=UPDATE kylin_order_ticket_relations SET updated_at = ? WHERE order_id = ? and (updated_at <= ? or created_at = ?) kylin_order_ticket_relation.close=UPDATE kylin_order_ticket_relations SET updated_at = ? WHERE order_id = ?
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