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

Commit 31d3a5b9 authored by 胡佳晨's avatar 胡佳晨

Merge branch 'dev' into test

parents d0855a73 7128369b
......@@ -89,8 +89,8 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
private OrderUtils orderUtils;
@Autowired
private OtherUtils otherUtils;
@Autowired
private RedisLockUtil redisLockUtil;
// @Autowired
// private RedisLockUtil redisLockUtil;
@Autowired
private MongoVoUtils mongoVoUtils;
@Autowired
......@@ -113,9 +113,9 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
boolean isDownGeneral = false;
String uid = CurrentUtil.getCurrentUid();
String lock = "userId:" + uid;
if (!redisLockUtil.tryLock(lock, 2, 2)) {
return ResponseDto.failure("请求频繁");//参数错误
}
// if (!redisLockUtil.tryLock(lock, 2, 2)) {
// return ResponseDto.failure("请求频繁");//参数错误
// }
try {
KylinPerformanceVo performanceData = dataUtils.getPerformanceVo(payOrderParam.getPerformanceId());
KylinTicketTimesVo ticketTimesData = null;
......@@ -136,16 +136,16 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
}
if (performanceData == null || ticketTimesData == null || ticketData == null) {
redisLockUtil.unlock(lock);
//redisLockUtil.unlock(lock);
return ResponseDto.failure("参数错误");//参数错误
}
if (!ticketData.getTimeId().equals(payOrderParam.getTimeId()) || !ticketTimesData.getPerformanceId().equals(payOrderParam.getPerformanceId())) {
redisLockUtil.unlock(lock);
//redisLockUtil.unlock(lock);
return ResponseDto.failure("参数错误");//参数错误List<AdamEntersVo> entersVoList
}
//判断代理
if (!checkAgent(payOrderParam.getAgentId(), ticketData)) {
redisLockUtil.unlock(lock);
//redisLockUtil.unlock(lock);
return ResponseDto.failure("无权购买");
}
......@@ -161,7 +161,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
if (ticketData.getIsExclusive() == 1) {
memberType = 2;
if (!isMember) {
redisLockUtil.unlock(lock);
//redisLockUtil.unlock(lock);
return ResponseDto.failure("非会员用户暂不可购买");//没有会员权限
}
} else {
......@@ -169,7 +169,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
// 会员购买逻辑
memberType = 1;
if (!isMember) {
redisLockUtil.unlock(lock);
//redisLockUtil.unlock(lock);
return ResponseDto.failure("非会员用户暂不可购买");//没有会员权限
}
} else {
......@@ -188,38 +188,38 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
//通用判断时间
if (isMember) {
if (DateUtil.compareStrDay(DateUtil.getNowTime(), memberTimeStart) == -1) {
redisLockUtil.unlock(lock);
//redisLockUtil.unlock(lock);
return ResponseDto.failure("未开始售卖");//未开始
}
} else {
if (DateUtil.compareStrDay(DateUtil.getNowTime(), timeStart) == -1) {
redisLockUtil.unlock(lock);
//redisLockUtil.unlock(lock);
return ResponseDto.failure("未开始售卖");//未开始
}
}
if (DateUtil.compareStrDay(DateUtil.getNowTime(), timeEnd) == 1) {
redisLockUtil.unlock(lock);
//redisLockUtil.unlock(lock);
return ResponseDto.failure("售卖已结束");//已结束
}
//快递票判断
if (payOrderParam.getIsExpress() != null) {
if (payOrderParam.getIsExpress() == 1 && DateUtil.compareStrDay(DateUtil.getNowTime(), timeExpressEnd) == 1) {
redisLockUtil.unlock(lock);
//redisLockUtil.unlock(lock);
return ResponseDto.failure("已超过快递票截止时间");//快递票不卖
}
if (payOrderParam.getIsExpress() == 1 && payOrderParam.getAddressId().isEmpty()) {
redisLockUtil.unlock(lock);
//redisLockUtil.unlock(lock);
return ResponseDto.failure("快递票未填写收货地址");//快递票未填写收货地址
}
}
//实名判断
if (isTrueName == 1 && payOrderParam.getEnterIdList().size() <= 0) {
redisLockUtil.unlock(lock);
//redisLockUtil.unlock(lock);
return ResponseDto.failure("入场人数量错误");//需要实名 未实名
}
if (isTrueName == 1 && payOrderParam.getEnterIdList().size() != payOrderParam.getNumber()) {
redisLockUtil.unlock(lock);
//redisLockUtil.unlock(lock);
return ResponseDto.failure("入场人数量错误");//入场人数量错误
}
......@@ -227,7 +227,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
int surplusGeneral = dataUtils.changeSurplusGeneral(payOrderParam.getTicketId(), -payOrderParam.getNumber());
if (surplusGeneral < 0) {//库存回滚
dataUtils.changeSurplusGeneral(payOrderParam.getTicketId(), payOrderParam.getNumber());
redisLockUtil.unlock(lock);
//redisLockUtil.unlock(lock);
return ResponseDto.failure("该票种已售罄");//没抢到
} else {
isDownGeneral = true;
......@@ -241,7 +241,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
if (isStudent == 1) {
int age = IDCard.getAgeByIdCard(adamEnters.getIdCard());
if (age > 25) {
redisLockUtil.unlock(lock);
//redisLockUtil.unlock(lock);
return ResponseDto.failure("年龄不符合");//年龄超了
}
}
......@@ -259,18 +259,18 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
for (int i = 0; i < entersVoList.size(); i++) {
String res1 = orderUtils.judgeOrderLimit(performanceData.getType(), uid, entersVoList.get(i).getIdCard(), payOrderParam.getPerformanceId(), payOrderParam.getTicketId(), performanceLimit, performanceMemberLimit, ticketLimit, ticketMemberLimit, 1, 1, memberType, isTrueName);
if (!res1.equals("")) {
redisLockUtil.unlock(lock);
//redisLockUtil.unlock(lock);
return ResponseDto.failure(res1);//乱七八糟异常
}
}
} else {
String res1 = orderUtils.judgeOrderLimit(performanceData.getType(), uid, "", payOrderParam.getPerformanceId(), payOrderParam.getTicketId(), performanceLimit, performanceMemberLimit, ticketLimit, ticketMemberLimit, payOrderParam.getNumber(), payOrderParam.getNumber(), memberType, isTrueName);
if (!res1.equals("")) {
redisLockUtil.unlock(lock);
//redisLockUtil.unlock(lock);
return ResponseDto.failure(res1);//乱七八糟异常
}
}
redisLockUtil.unlock(lock);
//redisLockUtil.unlock(lock);
return order(payOrderParam, uid, isMember, isTrueName, performanceData, ticketData, entersVoList, isStudent, ticketTimesData);
}
} catch (Exception e) {
......@@ -279,7 +279,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
}
e.printStackTrace();
log.error("Kylin Order Pay Error = " + e.getMessage());
redisLockUtil.unlock(lock);
//redisLockUtil.unlock(lock);
return ResponseDto.failure("下单失败");//乱七八糟异常
}
}
......@@ -403,6 +403,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
orderTicketEntities.setSysDamai(ticketData.getSysDamai());
orderTicketEntities.setCheckClient("");
orderTicketEntities.setIsPayment(KylinTableStatusConst.ENTITIES_IS_PAYMENT0);
orderTicketEntities.setRefundPrice(BigDecimal.valueOf(0.0));
orderTicketEntities.setComment("");
orderTicketEntities.setCreatedAt(now);
orderTicketEntities.setUpdatedAt(null);
......@@ -634,31 +635,31 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
//支付时间
LocalDateTime now = LocalDateTime.now();
String lock = "order_lock:" + syncOrderParam.getOrder_code();
if (!redisLockUtil.tryLock(lock, 240, 240)) {
return "fail";//参数错误
}
// if (!redisLockUtil.tryLock(lock, 240, 240)) {
// return "fail";//参数错误
// }
String timePay = DateUtil.Formatter.yyyyMMddHHmmss.format(now);
KylinOrderTicketVo orderTicketData = mongoTemplate.findOne(Query.query(Criteria.where("orderCode").is(syncOrderParam.getOrder_code())), KylinOrderTicketVo.class, KylinOrderTicketVo.class.getSimpleName());
if (orderTicketData == null) {
redisLockUtil.unlock(lock);
//redisLockUtil.unlock(lock);
return "fail";//订单不存在
}
if (orderTicketData.getStatus() != KylinTableStatusConst.ORDER_STATUS0) {
if (orderTicketData.getPayCode().equals(syncOrderParam.getCode()) && orderTicketData.getStatus() == KylinTableStatusConst.ORDER_STATUS1) {
redisLockUtil.unlock(lock);
//redisLockUtil.unlock(lock);
return "success";//已经支付
}
if (!orderTicketData.getPayCode().equals(syncOrderParam.getCode())) {
redisLockUtil.unlock(lock);
//redisLockUtil.unlock(lock);
return "fail";//重复支付
}
}
if (orderTicketData.getPriceActual().compareTo(syncOrderParam.getPrice()) != 0) {
redisLockUtil.unlock(lock);
//redisLockUtil.unlock(lock);
return "fail";//价格不符
}
......@@ -766,7 +767,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
// 大麦回调
sycDamaiOrder(orderTickets.getOrderTicketsId());
redisLockUtil.unlock(lock);
//redisLockUtil.unlock(lock);
return "success";
}
......@@ -898,9 +899,9 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
LinkedList<String> sqls = new LinkedList<>();
for (OrderScriptDto item : dtoData) {
String lock = "order_lock:" + item.getOrderCode();
if (!redisLockUtil.tryLock(lock, 30, 240)) {
continue;
}
// if (!redisLockUtil.tryLock(lock, 30, 240)) {
// continue;
// }
if (item.getStatus() == KylinTableStatusConst.ORDER_STATUS0) {
LocalDateTime now = LocalDateTime.now();
try {
......@@ -961,12 +962,12 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
rabbitTemplate.convertSendAndReceive(MQConst.EXCHANGES_LIQUIDNET_SQL_ORDER_CLOSE, MQConst.ROUTING_KEY_SQL_ORDER_CLOSE, SqlMapping.gets(sqls, sqlsDataA, sqlsDataB,sqlsDataC));
} catch (Exception e) {
redisLockUtil.unlock(lock);
//redisLockUtil.unlock(lock);
e.printStackTrace();
return false;
}
} else {
redisLockUtil.unlock(lock);
//redisLockUtil.unlock(lock);
}
}
return true;
......
......@@ -3,6 +3,7 @@ package com.liquidnet.service.kylin.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
......@@ -17,6 +18,7 @@ import com.liquidnet.service.kylin.utils.MongoVoUtils;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
import com.mongodb.client.result.UpdateResult;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.bson.Document;
......@@ -127,33 +129,27 @@ public class KylinRefundsStatusServiceImpl {
KylinOrderTicketEntities entitiesTable = new KylinOrderTicketEntities();
double priceNew = refundEntitiesInfo.getRefundPrice().doubleValue() + refundedPrice.doubleValue();
int isPayment = 0;
if (priceNew == onePrice) {
entitiesTable.setIsPayment(KylinTableStatusConst.ENTITIES_IS_PAYMENT3);
refundNumber ++;
isPayment = KylinTableStatusConst.ENTITIES_IS_PAYMENT3;
refundNumber++;
} else {
entitiesTable.setIsPayment(KylinTableStatusConst.ENTITIES_IS_PAYMENT4);
isPayment = KylinTableStatusConst.ENTITIES_IS_PAYMENT4;
}
entitiesTable.setIsPayment(isPayment);
entitiesTable.setUpdatedAt(LocalDateTime.now());
// TODO: 2021/6/16 error
// entitiesTable.setRefundPrice(BigDecimal.valueOf(priceNew));
entitiesTable.setRefundPrice(BigDecimal.valueOf(priceNew));
kylinOrderTicketEntitiesMapper.update(entitiesTable, new UpdateWrapper<KylinOrderTicketEntities>()
.eq("order_ticket_entities_id", entitiesId)
.eq("is_payment", KylinTableStatusConst.ENTITIES_IS_PAYMENT2)
);
KylinOrderTicketEntitiesVo kylinOrderTicketEntitiesVo = new KylinOrderTicketEntitiesVo();
if (priceNew == onePrice) {
kylinOrderTicketEntitiesVo.setIsPayment(KylinTableStatusConst.ENTITIES_IS_PAYMENT3);
} else {
kylinOrderTicketEntitiesVo.setIsPayment(KylinTableStatusConst.ENTITIES_IS_PAYMENT4);
}
kylinOrderTicketEntitiesVo.setUpdatedAt(LocalDateTime.now().toString());
kylinOrderTicketEntitiesVo.setRefundPrice(BigDecimal.valueOf(priceNew));
BasicDBObject entitiesObject = new BasicDBObject("$set", JSON.parse(JsonUtils.toJson(kylinOrderTicketEntitiesVo)));
Document entitiesDoc = mongoTemplate.getCollection(KylinOrderTicketEntitiesVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("orderTicketEntitiesId").is(entitiesId)).getQueryObject(),
entitiesObject,
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
UpdateResult updateResult = mongoTemplate.getCollection(KylinOrderTicketEntitiesVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("orderTicketEntitiesId").is(entitiesId)).getQueryObject(),
new Document("$set", new Document("updatedAt", DateUtil.getNowTime())
// .append("refundPrice", BigDecimal.valueOf(priceNew))
.append("isPayment", isPayment)
)
);
dataUtils.delOrderTicketEntitiesRedis(entitiesId);
......@@ -171,17 +167,13 @@ public class KylinRefundsStatusServiceImpl {
.eq("order_tickets_id", orderTicketsId)
);
KylinOrderTicketVo kylinOrderTicketVoOrder = new KylinOrderTicketVo();
kylinOrderTicketVoOrder.setStatus(newStatus);
kylinOrderTicketVoOrder.setRefundNumber(num);
kylinOrderTicketVoOrder.setUpdatedAt(LocalDateTime.now().toString());
// TODO: 2021/6/16 error
// kylinOrderTicketVoOrder.setPriceRefund(BigDecimal.valueOf(price));
BasicDBObject orderEntitiesObject = new BasicDBObject("$set", JSON.parse(JsonUtils.toJson(kylinOrderTicketVoOrder)));
Document docOrder = mongoTemplate.getCollection(KylinOrderTicketVo.class.getSimpleName()).findOneAndUpdate(
UpdateResult orderUpdateResult = mongoTemplate.getCollection(KylinOrderTicketEntitiesVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("orderTicketsId").is(orderTicketsId)).getQueryObject(),
orderEntitiesObject,
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
new Document("$set", new Document("updatedAt", DateUtil.getNowTime())
.append("priceRefund", BigDecimal.valueOf(price))
.append("status", newStatus)
.append("refundNumber", num)
)
);
dataUtils.delOrderTicketRedis(orderTicketsId);
mongoVoUtils.resetOrderListVo(orderInfo.getUserId(), 2, orderTicketsId);
......
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