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

Commit 7b61d54c authored by jiangxiulong's avatar jiangxiulong

Merge remote-tracking branch 'origin/dev' into dev

parents 460bd247 0cbb14b1
package com.liquidnet.service.platform.controller.kylin;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.param.PayAgainParam;
import com.liquidnet.service.kylin.dto.param.PayOrderParam;
import com.liquidnet.service.kylin.dto.param.SyncOrderParam;
import com.liquidnet.service.kylin.dto.vo.returns.*;
import com.liquidnet.service.kylin.service.IKylinOrderTicketsService;
import com.liquidnet.service.platform.service.impl.kylin.DMCheckOrderTimeImpl;
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.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.HashMap;
import java.util.List;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
......@@ -36,12 +27,12 @@ import java.util.List;
public class KylinOrderTicketsController {
@Autowired
IKylinOrderTicketsService orderTicketsService;
DMCheckOrderTimeImpl kylinCheckOrderTime;
@PostMapping("checkOrderTime")
@ApiOperation("订单过期脚本")
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<Boolean> checkOrderTime() {
return ResponseDto.success(orderTicketsService.checkOrderTime(""));
return ResponseDto.success(kylinCheckOrderTime.checkOrderTime(""));
}
}
package com.liquidnet.service.platform.service.impl.kylin;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redisson.util.RedisLockUtil;
import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.base.OrderCloseMapping;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dao.OrderScriptDto;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.entity.KylinOrderTicketRelations;
import com.liquidnet.service.kylin.entity.KylinOrderTicketStatus;
import com.liquidnet.service.kylin.entity.KylinOrderTickets;
import com.liquidnet.service.kylin.mapper.KylinOrderTicketRelationsMapper;
import com.liquidnet.service.kylin.mapper.KylinOrderTicketStatusMapper;
import com.liquidnet.service.kylin.mapper.KylinOrderTicketsMapper;
import com.liquidnet.service.kylin.service.IKylinOrderTicketsService;
import com.liquidnet.service.platform.utils.DataUtils;
import com.liquidnet.service.platform.utils.MongoVoUtils;
import com.liquidnet.service.platform.utils.OrderUtils;
import com.mongodb.BasicDBObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.env.Environment;
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 java.time.LocalDateTime;
import java.util.*;
/**
* <p>
* 订单 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-20
*/
@Service
@Slf4j
public class DMCheckOrderTimeImpl extends ServiceImpl<KylinOrderTicketsMapper, KylinOrderTickets>{
@Autowired
private DataUtils dataUtils;
@Autowired
private MongoTemplate mongoTemplate;
@Autowired
private MongoConverter mongoConverter;
@Autowired
private RabbitTemplate rabbitTemplate;
@Autowired
private KylinOrderTicketsMapper orderTicketsMapper;
@Autowired
private KylinOrderTicketStatusMapper orderTicketStatusMapper;
@Autowired
private KylinOrderTicketRelationsMapper orderTicketRelationsMapper;
public boolean checkOrderTime(String userId) {
String lock = "order_lock:checkOrderTime:" + userId;
List<OrderScriptDto> dtoData = orderTicketsMapper.orderScriptDto(userId);
LocalDateTime now = LocalDateTime.now();
Long currentTime = System.currentTimeMillis();
HashMap<String, Integer> mapSurplusGeneral = new HashMap<>();
ArrayList<String> orderDataList = new ArrayList<>();
ArrayList<String> orderIdList = new ArrayList<>();
HashMap<String, Object> mapMongo = new HashMap<>();
for (OrderScriptDto item : dtoData) {
if (item.getStatus().equals(KylinTableStatusConst.ORDER_STATUS0)) {
try {
//vo
mapMongo.put("status", KylinTableStatusConst.ORDER_STATUS2);
mapMongo.put("updatedAt", DateUtil.Formatter.yyyyMMddHHmmssSSS.format(now));
mapMongo.put("changeDate", now);
orderDataList.add(item.getOrderTicketsId() + "," + item.getUserId());
orderIdList.add(item.getOrderTicketsId());
mapSurplusGeneral.put(item.getTicketId(), mapSurplusGeneral.get(item.getTicketId()) == null ? item.getNumber() : mapSurplusGeneral.get(item.getTicketId()) + item.getNumber());
} catch (Exception e) {
log.debug("CHECK TIME SYNC = " + e.getMessage());
e.printStackTrace();
return false;
}
} else {
}
}
currentTime = System.currentTimeMillis() - currentTime;
log.debug("FOR 循环 -> time:" + (currentTime) + "毫秒");
if (orderDataList.size() > 0) {
//mysql
String orderStr = "";
for (int i = 0; i < orderIdList.size(); i++) {
String orderTicketId = orderIdList.get(i);
orderStr += "'" + orderTicketId + "',";
}
orderStr = orderStr.substring(0, orderStr.length() - 1);
KylinOrderTickets orderTickets = new KylinOrderTickets();
orderTickets.setUpdatedAt(now);
orderTicketsMapper.update(orderTickets, new UpdateWrapper<KylinOrderTickets>().in("order_tickets_id", orderIdList));
KylinOrderTicketStatus orderTicketStatus = new KylinOrderTicketStatus();
orderTicketStatus.setStatus(2);
orderTicketStatus.setUpdatedAt(now);
orderTicketStatusMapper.update(orderTicketStatus, new UpdateWrapper<KylinOrderTicketStatus>().in("order_id", orderIdList));
KylinOrderTicketRelations orderTicketRelations = new KylinOrderTicketRelations();
orderTicketRelations.setUpdatedAt(now);
orderTicketRelationsMapper.update(orderTicketRelations, new UpdateWrapper<KylinOrderTicketRelations>().in("order_id", orderIdList));
currentTime = System.currentTimeMillis() - currentTime;
log.debug("mysql -> time:" + (currentTime) + "毫秒");
//库存
for (Map.Entry<String, Integer> entry : mapSurplusGeneral.entrySet()) {
dataUtils.changeSurplusGeneral(entry.getKey(), entry.getValue());
}
currentTime = System.currentTimeMillis() - currentTime;
log.debug("redis 库存 -> time:" + (currentTime) + "毫秒");
try {
//mongo
mongoTemplate.getCollection(KylinOrderTicketVo.class.getSimpleName()).updateMany(
Query.query(Criteria.where("orderTicketsId").in(orderIdList)).getQueryObject(),
new BasicDBObject("$set", mongoConverter.convertToMongoType(mapMongo))
);
currentTime = System.currentTimeMillis() - currentTime;
log.debug("mongo -> time:" + (currentTime) + "毫秒");
} catch (Exception e) {
}
int forSize = 500;
int forCount = orderDataList.size() % forSize == 0 ? orderDataList.size() / forSize : (orderDataList.size() / forSize) + 1;
for (int i = 0; i < forCount; i++) {
LinkedList<String> mqList = new LinkedList<>();
for (int y = 0; y < forSize; y++) {
try {
String t = orderDataList.get(i * 500 + y);
mqList.add(t);
} catch (Exception e) {
break;
}
}
rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL_ORDER_CLOSE, MQConst.ROUTING_KEY_SQL_ORDER_CLOSE, OrderCloseMapping.get(mqList));
}
}
return true;
}
}
package com.liquidnet.service.platform.service.impl.kylin;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.kylin.dto.param.KylinStationUploadParam;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo;
import com.liquidnet.service.kylin.entity.KylinOrderTicketEntities;
import com.liquidnet.service.kylin.mapper.KylinOrderTicketEntitiesMapper;
import com.liquidnet.service.kylin.service.IKylinOrderTicketEntitiesService;
import com.mongodb.bulk.BulkWriteResult;
import com.mongodb.client.model.UpdateOneModel;
import com.mongodb.client.model.WriteModel;
import lombok.extern.slf4j.Slf4j;
import org.bson.Document;
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.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
/**
* <p>
* 订单详情 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-20
*/
@Slf4j
@Service
public class DMOrderTicketEntitiesServiceImpl extends ServiceImpl<KylinOrderTicketEntitiesMapper, KylinOrderTicketEntities> {
}
package com.liquidnet.service.platform.service.impl.kylin;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.service.kylin.entity.KylinOrderTicketRelations;
import com.liquidnet.service.kylin.mapper.KylinOrderTicketRelationsMapper;
import com.liquidnet.service.kylin.service.IKylinOrderTicketRelationsService;
import org.springframework.stereotype.Service;
/**
* <p>
* 票 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
@Service
public class DMOrderTicketRelationsImpl extends ServiceImpl<KylinOrderTicketRelationsMapper, KylinOrderTicketRelations> {
}
package com.liquidnet.service.platform.service.impl.kylin;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.service.kylin.entity.KylinOrderTicketStatus;
import com.liquidnet.service.kylin.mapper.KylinOrderTicketStatusMapper;
import com.liquidnet.service.kylin.service.IKylinOrderTicketStatusService;
import org.springframework.stereotype.Service;
/**
* <p>
* 票 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
@Service
public class DMOrderTicketStatusImpl extends ServiceImpl<KylinOrderTicketStatusMapper, KylinOrderTicketStatus> implements IKylinOrderTicketStatusService {
}
package com.liquidnet.service.platform.service.impl.kylin;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.service.kylin.entity.KylinRoadShows;
import com.liquidnet.service.kylin.mapper.KylinRoadShowsMapper;
import com.liquidnet.service.kylin.service.IKylinRoadShowsService;
import org.springframework.stereotype.Service;
/**
* <p>
* 巡演 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-11
*/
@Service
public class DMRoadShowsServiceImpl extends ServiceImpl<KylinRoadShowsMapper, KylinRoadShows> {
}
......@@ -52,16 +52,16 @@ public class DataImpl {
private PerformanceVoTask performanceVoTask;
@Autowired
private IKylinOrderTicketsService kylinOrderTicketsService;
private DMCheckOrderTimeImpl dmCheckOrderTime;
@Autowired
private IKylinOrderTicketStatusService kylinOrderTicketStatusService;
private DMOrderTicketStatusImpl dmOrderTicketStatus;
@Autowired
private IKylinOrderTicketRelationsService kylinOrderTicketRelationsService;
private DMOrderTicketRelationsImpl dmOrderTicketRelations;
@Autowired
private IKylinOrderTicketEntitiesService kylinOrderTicketEntitiesService;
private DMOrderTicketEntitiesServiceImpl dmOrderTicketEntitiesService;
@Autowired
private IKylinRoadShowsService kylinRoadShowsService;
private DMRoadShowsServiceImpl dmRoadShowsService;
@Autowired
private DataUtils dataUtils;
......@@ -736,10 +736,10 @@ public class DataImpl {
// mongoTemplate.insert(orderTicketVo, KylinOrderTicketVo.class.getSimpleName());
}
kylinOrderTicketsService.saveBatch(orderList);
kylinOrderTicketStatusService.saveBatch(orderStatusList);
kylinOrderTicketRelationsService.saveBatch(orderRelationList);
kylinOrderTicketEntitiesService.saveBatch(orderEntitiesList);
dmCheckOrderTime.saveBatch(orderList);
dmOrderTicketStatus.saveBatch(orderStatusList);
dmOrderTicketRelations.saveBatch(orderRelationList);
dmOrderTicketEntitiesService.saveBatch(orderEntitiesList);
mongoTemplate.insert(orderListVo, KylinOrderTicketVo.class.getSimpleName());
mongoTemplate.insert(orderEntitiesListVo, KylinOrderTicketEntitiesVo.class.getSimpleName());
......@@ -801,7 +801,7 @@ public class DataImpl {
}
roadShowsList.add(roadShows);
}
kylinRoadShowsService.saveBatch(roadShowsList);
dmRoadShowsService.saveBatch(roadShowsList);
return true;
} catch (Exception e) {
......
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