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

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

删除无用方法。合并工具类 kylin order

parent ad0fe7c9
...@@ -195,7 +195,6 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma ...@@ -195,7 +195,6 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
} }
return true; return true;
} catch (Exception e) { } catch (Exception e) {
System.out.println("ERROR DATA = " + e.getMessage());
e.printStackTrace(); e.printStackTrace();
return false; return false;
} }
......
...@@ -199,7 +199,6 @@ public class DataUtils { ...@@ -199,7 +199,6 @@ public class DataUtils {
e.printStackTrace(); e.printStackTrace();
} }
} else { } else {
System.out.println("创建Vo异常");
} }
} }
......
package com.liquidnet.service.kylin.controller;
import com.liquidnet.service.kylin.service.impl.OrderRefundOvertimeServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 退款回掉
* </p>
*
* @author jiangxiulong
* @since 2021-06-11 6:10 下午
*/
//@Api(tags = "前端-退款回调")
//@RestController
//@RequestMapping("refund")
public class OrderRefundOvertimeController {
// @Autowired
// private OrderRefundOvertimeServiceImpl orderRefundOvertimeServiceImpl;
//
// @PostMapping("apply")
// @ApiOperation("超时退款")
// @ApiImplicitParams({
// @ApiImplicitParam(type = "body", dataType = "String", name = "orderTicketsId", value = "订单ID", required = true),
// })
// public Boolean refundApply(@RequestParam() String orderTicketsId) {
// try {
// Boolean res = orderRefundOvertimeServiceImpl.refundApply(orderTicketsId);
// if (res) {
// return true;
// } else {
// return false;
// }
// } catch (Exception e) {
// return false;
// }
// }
}
...@@ -23,7 +23,7 @@ import com.liquidnet.service.kylin.entity.KylinOrderTicketEntities; ...@@ -23,7 +23,7 @@ import com.liquidnet.service.kylin.entity.KylinOrderTicketEntities;
import com.liquidnet.service.kylin.entity.KylinOrderTicketStatus; import com.liquidnet.service.kylin.entity.KylinOrderTicketStatus;
import com.liquidnet.service.kylin.service.IKylinOrderTicketsService; import com.liquidnet.service.kylin.service.IKylinOrderTicketsService;
import com.liquidnet.service.kylin.utils.DataUtils; import com.liquidnet.service.kylin.utils.DataUtils;
import com.liquidnet.service.kylin.utils.MongoVoUtils; import com.liquidnet.service.kylin.utils.OrderUtils;
import com.mongodb.BasicDBObject; import com.mongodb.BasicDBObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
...@@ -56,7 +56,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService { ...@@ -56,7 +56,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
@Autowired @Autowired
private DataUtils dataUtils; private DataUtils dataUtils;
@Autowired @Autowired
private MongoVoUtils mongoVoUtils; private OrderUtils orderUtils;
@Autowired @Autowired
private MongoTemplate mongoTemplate; private MongoTemplate mongoTemplate;
@Autowired @Autowired
...@@ -458,7 +458,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService { ...@@ -458,7 +458,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
orderObject orderObject
); );
dataUtils.delOrderTicketRedis(orderTicketsId); dataUtils.delOrderTicketRedis(orderTicketsId);
mongoVoUtils.resetOrderListVo(orderTicketVo.getUserId(), 2, orderTicketsId, null); orderUtils.resetOrderListVo(orderTicketVo.getUserId(), 2, orderTicketsId, null);
// 入场人 // 入场人
for (KylinOrderRefundEntitiesVo item : refundEntities) { for (KylinOrderRefundEntitiesVo item : refundEntities) {
......
package com.liquidnet.service.kylin.service.impl; package com.liquidnet.service.kylin.service.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.liquidnet.common.mq.constant.MQConst; import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.commons.lang.util.*; import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.base.SqlMapping; import com.liquidnet.service.base.SqlMapping;
...@@ -11,14 +9,11 @@ import com.liquidnet.service.kylin.dto.vo.mongo.*; ...@@ -11,14 +9,11 @@ import com.liquidnet.service.kylin.dto.vo.mongo.*;
import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderRefundsVo; import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderRefundsVo;
import com.liquidnet.service.kylin.entity.*; import com.liquidnet.service.kylin.entity.*;
import com.liquidnet.service.kylin.utils.DataUtils; import com.liquidnet.service.kylin.utils.DataUtils;
import com.liquidnet.service.kylin.utils.MongoVoUtils; import com.liquidnet.service.kylin.utils.OrderUtils;
import com.mongodb.BasicDBObject; import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
import com.mongodb.client.result.UpdateResult; import com.mongodb.client.result.UpdateResult;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.bson.Document;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -51,7 +46,7 @@ public class KylinRefundsStatusServiceImpl { ...@@ -51,7 +46,7 @@ public class KylinRefundsStatusServiceImpl {
private DataUtils dataUtils; private DataUtils dataUtils;
@Autowired @Autowired
private MongoVoUtils mongoVoUtils; private OrderUtils orderUtils;
@Autowired @Autowired
private RabbitTemplate rabbitTemplate; private RabbitTemplate rabbitTemplate;
...@@ -90,7 +85,7 @@ public class KylinRefundsStatusServiceImpl { ...@@ -90,7 +85,7 @@ public class KylinRefundsStatusServiceImpl {
orderObject orderObject
); );
dataUtils.delOrderTicketRedis(orderTicketsId); dataUtils.delOrderTicketRedis(orderTicketsId);
mongoVoUtils.resetOrderListVo(orderInfo.getUserId(), 2, orderTicketsId, null); orderUtils.resetOrderListVo(orderInfo.getUserId(), 2, orderTicketsId, null);
// 订单入场人表 和 缓存 // 订单入场人表 和 缓存
...@@ -228,7 +223,7 @@ public class KylinRefundsStatusServiceImpl { ...@@ -228,7 +223,7 @@ public class KylinRefundsStatusServiceImpl {
orderObject orderObject
); );
dataUtils.delOrderTicketRedis(orderInfo.getOrderTicketsId()); dataUtils.delOrderTicketRedis(orderInfo.getOrderTicketsId());
mongoVoUtils.resetOrderListVo(orderInfo.getUserId(), 2, orderInfo.getOrderTicketsId(), null); orderUtils.resetOrderListVo(orderInfo.getUserId(), 2, orderInfo.getOrderTicketsId(), null);
// 订单入场人表 和 缓存 // 订单入场人表 和 缓存
......
package com.liquidnet.service.kylin.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.entity.*;
import com.liquidnet.service.kylin.mapper.*;
import com.liquidnet.service.kylin.service.IKylinOrderRefundsService;
import com.liquidnet.service.kylin.utils.DataUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* <p>
* 订单退款表 服务实现类 处理逻辑判断
* </p>
*
* @author jiangxiulong
* @since 2021-05-26
*/
@Slf4j
@Service
public class OrderRefundOvertimeServiceImpl implements IKylinOrderRefundsService {
@Autowired
private KylinRefundsStatusServiceImpl kylinRefundsStatusServiceImpl;
@Autowired
MongoTemplate mongoTemplate;
@Autowired
private DataUtils dataUtils;
public Boolean refundApply(String orderTicketsId) {
KylinOrderTicketVo orderInfo = dataUtils.getOrderTicketVo(orderTicketsId);
// 快递费 未进行判断
Double RefundPriceExpress = orderInfo.getPriceExpress().doubleValue();
double priceActual = orderInfo.getPriceActual().doubleValue();
double priceExpress = orderInfo.getPriceExpress().doubleValue();
// 查询订单入场人
List<KylinOrderTicketEntitiesVo> entitiesList = orderInfo.getEntitiesVoList();
if (!CollectionUtil.isEmpty(entitiesList)) {
int allEntitiesCount = entitiesList.size();// 总入场人数量 排出未付款的 用来计算单入场人的价格
double onePrice = (priceActual - priceExpress) / allEntitiesCount;//单价
for (KylinOrderTicketEntitiesVo entities : entitiesList) {
entities.setCanRefundedPrice(BigDecimal.valueOf(onePrice));
}
}
List<String> ticketEntityIds = entitiesList.stream().map(KylinOrderTicketEntities -> KylinOrderTicketEntities.getOrderTicketEntitiesId()).collect(Collectors.toList());
List<Double> entitiesPrice = entitiesList.stream().map(KylinOrderTicketEntities -> KylinOrderTicketEntities.getCanRefundedPrice().doubleValue()).collect(Collectors.toList());
boolean res = kylinRefundsStatusServiceImpl.orderTicketRefunding(
orderInfo, orderTicketsId,
RefundPriceExpress,
ticketEntityIds, entitiesPrice
);
if (res) {
// 超时直接退还库存
for (KylinOrderTicketEntitiesVo entitiesInfo : entitiesList) {
// 因固定状态为未支付 所以无需判断 entitiesInfo.getIsPayment() == KylinTableStatusConst.ENTITIES_IS_PAYMENT3
dataUtils.changeSurplusGeneral(entitiesInfo.getTicketId(), 1);
dataUtils.changeBuyInfo(orderInfo.getUserId(), entitiesInfo.getEnterIdCode(), orderInfo.getPerformanceId(), entitiesInfo.getTicketId(), -1);
}
return true;
} else {
return false;
}
}
}
package com.liquidnet.service.kylin.utils;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo;
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.returns.KylinOrderListVo;
import com.liquidnet.service.kylin.entity.*;
import com.liquidnet.service.kylin.mapper.*;
import org.springframework.beans.BeanUtils;
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.Component;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@Component
public class MongoVoUtils {
@Autowired
private RedisUtil redisUtil;
@Autowired
private DataUtils dataUtils;
@Autowired
private MongoTemplate mongoTemplate;
/**
* @param userId 用户id
* @param type 1新增 2修改
* @param orderId 订单id [需要新增或者修改的订单id]
*/
public Boolean resetOrderListVo(String userId, Integer type, String orderId, KylinOrderTicketVo dataSingle) {
List<KylinOrderListVo> vo = new ArrayList<>();
List<KylinOrderListVo> redisVo = new ArrayList();
KylinOrderListVo voItem = new KylinOrderListVo();
KylinOrderTicketVo data;
if (dataSingle == null) {
data = dataUtils.getOrderTicketVo(orderId);
} else {
data = dataSingle;
}
BeanUtils.copyProperties(data, voItem);
List<KylinOrderListVo> redisData = dataUtils.getOrderList(userId);
if (type == 1) {
redisVo.add(voItem);
if (redisData.size() > 0) {
if (redisData.get(0).getOrderTicketsId().equals(orderId)) {
redisData.remove(0);
}
}
}
redisVo.addAll(redisData);
switch (type) {
case 1:
for (int i = 0; i < redisVo.size(); i++) {
if (i == 40) {
break;
}
if (i == 0) {
vo.add(voItem);
} else {
vo.add(redisVo.get(i));
}
}
if (redisVo.size() == 0) {
vo.add(voItem);
}
dataUtils.setOrderList(userId, vo);
return true;
case 2:
for (int i = 0; i < redisVo.size(); i++) {
if (i == 40) {
break;
}
if (redisVo.get(i).getOrderTicketsId().equals(orderId)) {
vo.add(voItem);
} else {
vo.add(redisVo.get(i));
}
}
dataUtils.setOrderList(userId, vo);
return true;
default:
return false;
}
}
}
...@@ -7,7 +7,10 @@ import com.liquidnet.service.adam.dto.vo.AdamEntersVo; ...@@ -7,7 +7,10 @@ import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo; import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo; 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.returns.KylinOrderListVo;
import io.swagger.models.auth.In; import io.swagger.models.auth.In;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
...@@ -21,110 +24,67 @@ public class OrderUtils { ...@@ -21,110 +24,67 @@ public class OrderUtils {
@Autowired @Autowired
private DataUtils dataUtils; private DataUtils dataUtils;
@Autowired
private RedisUtil redisUtil;
public String judgeOrderLimit( /**
int type, * @param userId 用户id
String userId, * @param type 1新增 2修改
String idCard, * @param orderId 订单id [需要新增或者修改的订单id]
String performanceId, */
String ticketId, public Boolean resetOrderListVo(String userId, Integer type, String orderId, KylinOrderTicketVo dataSingle) {
int performanceLimitCount, List<KylinOrderListVo> vo = new ArrayList<>();
int performanceMemberLimitCount, List<KylinOrderListVo> redisVo = new ArrayList();
int ticketLimitCount, KylinOrderListVo voItem = new KylinOrderListVo();
int ticketMemberLimitCount, KylinOrderTicketVo data;
int performanceBuyCount, if (dataSingle == null) {
int ticketBuyCount, data = dataUtils.getOrderTicketVo(orderId);
int memberType,
int isTrueName
) {
Integer[] integers;
System.out.println("TYPE = " + type);
if (101 == type) {
integers = festivalOrderLimit(userId, idCard, performanceId, ticketId, performanceBuyCount, ticketBuyCount, isTrueName);
} else { } else {
integers = roadShowOrderLimit(userId, idCard, performanceId, ticketId, performanceBuyCount, ticketBuyCount, isTrueName); data = dataSingle;
}
System.out.println("integers PERFORMANCE= " + integers[0]);
System.out.println("integers TICKETS= " + integers[1]);
return judgeMemberType(performanceLimitCount, performanceMemberLimitCount, ticketLimitCount, ticketMemberLimitCount, memberType, integers[0], integers[1]);
}
public Integer[] roadShowOrderLimit(
String userId,
String idCard,
String performanceId,
String ticketId,
int performanceBuyCount,
int ticketBuyCount,
int isTrueName
) {
if (1 == isTrueName) {//实名
performanceBuyCount += dataUtils.getIdCardPBuyCount(idCard, performanceId);
ticketBuyCount += dataUtils.getIdCardTBuyCount(idCard, ticketId);
} else {//非实名
performanceBuyCount += dataUtils.getUserPBuyCount(userId, performanceId);
ticketBuyCount += dataUtils.getUserTBuyCount(userId, ticketId);
} }
return new Integer[]{performanceBuyCount, ticketBuyCount}; BeanUtils.copyProperties(data, voItem);
} List<KylinOrderListVo> redisData = dataUtils.getOrderList(userId);
if (type == 1) {
public Integer[] festivalOrderLimit( redisVo.add(voItem);
String userId, if (redisData.size() > 0) {
String idCard, if (redisData.get(0).getOrderTicketsId().equals(orderId)) {
String performanceId, redisData.remove(0);
String ticketId, }
int performanceBuyCount,
int ticketBuyCount,
int isTrueName
) {
if (1 == isTrueName) {//实名
performanceBuyCount += dataUtils.getIdCardPBuyCount(idCard, performanceId);
ticketBuyCount += dataUtils.getIdCardTBuyCount(idCard, ticketId);
} else {//非实名
performanceBuyCount += dataUtils.getUserPBuyCount(userId, performanceId);
ticketBuyCount += dataUtils.getUserTBuyCount(userId, ticketId);
}
return new Integer[]{performanceBuyCount, ticketBuyCount};
}
public String judgeMemberType(int performanceLimitCount, int performanceMemberLimitCount, int ticketLimitCount, int ticketMemberLimitCount, int memberType, int performanceBuyCount, int ticketBuyCount) {
if (memberType == 1 || memberType == 2) {
if (performanceBuyCount > performanceMemberLimitCount && performanceMemberLimitCount != 0) {
return "该演出只能购买" + performanceMemberLimitCount + "张";//超过演出维度购买量
}
if (ticketBuyCount > ticketMemberLimitCount && ticketMemberLimitCount != 0) {
return "该票种只能购买" + ticketMemberLimitCount + "张";//超过票维度购买量
}
} else {//非会员区间
if (performanceBuyCount > performanceLimitCount && performanceLimitCount != 0) {
return "该演出只能购买" + performanceLimitCount + "张";//超过演出维度购买量
}
if (ticketBuyCount > ticketLimitCount && ticketLimitCount != 0) {
return "该票种只能购买" + ticketLimitCount + "张";//超过票维度购买量
} }
} }
return "";
}
public boolean isMember(String uid) { redisVo.addAll(redisData);
String rk = AdamRedisConst.INFO_USER_MEMBER.concat(uid);
AdamUserMemberVo vo = (AdamUserMemberVo) redisUtil.get(rk);
return null != vo && vo.isActive();
}
public AdamAddressesVo getAddress(String uid, String addressesId) {
String rk = AdamRedisConst.INFO_ADDRESSES.concat(uid);
List<AdamAddressesVo> vos = (List<AdamAddressesVo>) redisUtil.get(rk);
return vos.stream().filter(r -> r.getAddressesId().equals(addressesId)).findAny().orElse(null);
}
public AdamEntersVo getEnters(String uid, String entersId) { switch (type) {
String rk = AdamRedisConst.INFO_ENTERS.concat(uid); case 1:
List<AdamEntersVo> vos = (List<AdamEntersVo>) redisUtil.get(rk); for (int i = 0; i < redisVo.size(); i++) {
return vos.stream().filter(r -> r.getEntersId().equals(entersId)).findAny().orElse(null); if (i == 40) {
break;
}
if (i == 0) {
vo.add(voItem);
} else {
vo.add(redisVo.get(i));
}
}
if (redisVo.size() == 0) {
vo.add(voItem);
}
dataUtils.setOrderList(userId, vo);
return true;
case 2:
for (int i = 0; i < redisVo.size(); i++) {
if (i == 40) {
break;
}
if (redisVo.get(i).getOrderTicketsId().equals(orderId)) {
vo.add(voItem);
} else {
vo.add(redisVo.get(i));
}
}
dataUtils.setOrderList(userId, vo);
return true;
default:
return false;
}
} }
} }
package com.liquidnet.service.order.service.impl; package com.liquidnet.service.order.service.impl;
import com.alibaba.fastjson.JSON;
import com.github.pagehelper.PageInfo;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.cache.redisson.util.RedisLockUtil; import com.liquidnet.common.cache.redisson.util.RedisLockUtil;
import com.liquidnet.common.mq.constant.MQConst; import com.liquidnet.common.mq.constant.MQConst;
...@@ -21,15 +19,19 @@ import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo; ...@@ -21,15 +19,19 @@ import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo; import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo;
import com.liquidnet.service.kylin.dto.vo.middle.message.MessageConfigVo; import com.liquidnet.service.kylin.dto.vo.middle.message.MessageConfigVo;
import com.liquidnet.service.kylin.dto.vo.middle.message.MessageDataVo; import com.liquidnet.service.kylin.dto.vo.middle.message.MessageDataVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderRefundEntitiesVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo; 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.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo; import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.kylin.dto.vo.returns.*; import com.liquidnet.service.kylin.dto.vo.returns.PayResultVo;
import com.liquidnet.service.kylin.entity.*; import com.liquidnet.service.kylin.entity.KylinOrderTicketEntities;
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.service.IKylinOrderTicketsOrderService; import com.liquidnet.service.kylin.service.IKylinOrderTicketsOrderService;
import com.liquidnet.service.kylin.service.IKylinOrderTicketsService; import com.liquidnet.service.order.utils.DataUtils;
import com.liquidnet.service.order.utils.*; import com.liquidnet.service.order.utils.OrderUtils;
import com.liquidnet.service.order.utils.OtherUtils;
import com.liquidnet.service.order.utils.TaobaoTicketUtils;
import com.mongodb.BasicDBObject; import com.mongodb.BasicDBObject;
import com.taobao.api.TaobaoClient; import com.taobao.api.TaobaoClient;
import com.taobao.api.request.AlibabaDamaiMevOpenBatchpushticketRequest; import com.taobao.api.request.AlibabaDamaiMevOpenBatchpushticketRequest;
...@@ -84,8 +86,6 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -84,8 +86,6 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
@Autowired @Autowired
private RedisLockUtil redisLockUtil; private RedisLockUtil redisLockUtil;
@Autowired @Autowired
private MongoVoUtils mongoVoUtils;
@Autowired
private MongoTemplate mongoTemplate; private MongoTemplate mongoTemplate;
@Autowired @Autowired
private MongoConverter mongoConverter; private MongoConverter mongoConverter;
...@@ -587,7 +587,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -587,7 +587,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
log.debug("mongo 添加 订单 -> time:" + (currentTime) + "毫秒"); log.debug("mongo 添加 订单 -> time:" + (currentTime) + "毫秒");
currentTime = System.currentTimeMillis(); currentTime = System.currentTimeMillis();
mongoVoUtils.resetOrderListVo(uid, 1, orderTicketVo.getOrderTicketsId(), orderTicketVo); orderUtils.resetOrderListVo(uid, 1, orderTicketVo.getOrderTicketsId(), orderTicketVo);
currentTime = System.currentTimeMillis() - currentTime; currentTime = System.currentTimeMillis() - currentTime;
log.debug("redis 修改订单列表 -> time:" + (currentTime) + "毫秒"); log.debug("redis 修改订单列表 -> time:" + (currentTime) + "毫秒");
...@@ -757,7 +757,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -757,7 +757,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
KylinOrderTicketEntities orderTicketEntities = new KylinOrderTicketEntities(); KylinOrderTicketEntities orderTicketEntities = new KylinOrderTicketEntities();
if (orderTicketData.getStatus() == 2) { if (orderTicketData.getStatus() == 2) {
mongoVoUtils.resetOrderListVo(orderTicketData.getUserId(), 2, orderTicketData.getOrderTicketsId(), null); orderUtils.resetOrderListVo(orderTicketData.getUserId(), 2, orderTicketData.getOrderTicketsId(), null);
log.error("订单号位 {} 的订单超时支付", syncOrderParam.getOrder_code()); log.error("订单号位 {} 的订单超时支付", syncOrderParam.getOrder_code());
orderRefundsCallbackService.refundApply(orderTicketData.getOrderTicketsId()); orderRefundsCallbackService.refundApply(orderTicketData.getOrderTicketsId());
} else if (orderTicketData.getStatus() == 3 || orderTicketData.getStatus() == 4) { } else if (orderTicketData.getStatus() == 3 || orderTicketData.getStatus() == 4) {
...@@ -818,7 +818,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -818,7 +818,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
//生成vo redis //生成vo redis
dataUtils.delOrderTicketRedis(orderTickets.getOrderTicketsId()); dataUtils.delOrderTicketRedis(orderTickets.getOrderTicketsId());
mongoVoUtils.resetOrderListVo(orderTicketData.getUserId(), 2, orderTicketData.getOrderTicketsId(), null); orderUtils.resetOrderListVo(orderTicketData.getUserId(), 2, orderTicketData.getOrderTicketsId(), null);
// 发短信 // 发短信
KylinPerformanceVo performanceData = dataUtils.getPerformanceVo(orderTicketData.getPerformanceId()); KylinPerformanceVo performanceData = dataUtils.getPerformanceVo(orderTicketData.getPerformanceId());
......
...@@ -15,7 +15,7 @@ import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo; ...@@ -15,7 +15,7 @@ import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderRefundsVo; import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderRefundsVo;
import com.liquidnet.service.kylin.entity.*; import com.liquidnet.service.kylin.entity.*;
import com.liquidnet.service.order.utils.DataUtils; import com.liquidnet.service.order.utils.DataUtils;
import com.liquidnet.service.order.utils.MongoVoUtils; import com.liquidnet.service.order.utils.OrderUtils;
import com.mongodb.BasicDBObject; import com.mongodb.BasicDBObject;
import com.mongodb.client.result.UpdateResult; import com.mongodb.client.result.UpdateResult;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -52,7 +52,7 @@ public class KylinRefundsStatusServiceImpl { ...@@ -52,7 +52,7 @@ public class KylinRefundsStatusServiceImpl {
private DataUtils dataUtils; private DataUtils dataUtils;
@Autowired @Autowired
private MongoVoUtils mongoVoUtils; private OrderUtils orderUtils;
@Autowired @Autowired
private RabbitTemplate rabbitTemplate; private RabbitTemplate rabbitTemplate;
...@@ -91,7 +91,7 @@ public class KylinRefundsStatusServiceImpl { ...@@ -91,7 +91,7 @@ public class KylinRefundsStatusServiceImpl {
orderObject orderObject
); );
dataUtils.delOrderTicketRedis(orderTicketsId); dataUtils.delOrderTicketRedis(orderTicketsId);
mongoVoUtils.resetOrderListVo(orderInfo.getUserId(), 2, orderTicketsId, null); orderUtils.resetOrderListVo(orderInfo.getUserId(), 2, orderTicketsId, null);
// 订单入场人表 和 缓存 // 订单入场人表 和 缓存
...@@ -229,7 +229,7 @@ public class KylinRefundsStatusServiceImpl { ...@@ -229,7 +229,7 @@ public class KylinRefundsStatusServiceImpl {
orderObject orderObject
); );
dataUtils.delOrderTicketRedis(orderInfo.getOrderTicketsId()); dataUtils.delOrderTicketRedis(orderInfo.getOrderTicketsId());
mongoVoUtils.resetOrderListVo(orderInfo.getUserId(), 2, orderInfo.getOrderTicketsId(), null); orderUtils.resetOrderListVo(orderInfo.getUserId(), 2, orderInfo.getOrderTicketsId(), null);
// 订单入场人表 和 缓存 // 订单入场人表 和 缓存
......
...@@ -89,20 +89,6 @@ public class DataUtils { ...@@ -89,20 +89,6 @@ public class DataUtils {
redisUtil.del(KylinRedisConst.ORDER + orderId); redisUtil.del(KylinRedisConst.ORDER + orderId);
} }
/**
* 获取入场须知
*
* @param enterInfoId
* @return
*/
public String getEnterInfo(String enterInfoId) {
if (redisUtil.hasKey(KylinRedisConst.ENTER_INFO + enterInfoId)) {
} else {
return "入场须知";
}
return (String) redisUtil.get(KylinRedisConst.ENTER_INFO + enterInfoId);
}
/** /**
* @param performanceId 演出id * @param performanceId 演出id
...@@ -145,15 +131,13 @@ public class DataUtils { ...@@ -145,15 +131,13 @@ public class DataUtils {
if (buyCount > 0) { if (buyCount > 0) {
redisUtil.incr(ticketIdKey, buyCount); redisUtil.incr(ticketIdKey, buyCount);
redisUtil.incr(performanceIdKey, buyCount); redisUtil.incr(performanceIdKey, buyCount);
}else{ } else {
redisUtil.decr(ticketIdKey, Math.abs(buyCount)); redisUtil.decr(ticketIdKey, Math.abs(buyCount));
redisUtil.decr(performanceIdKey, Math.abs(buyCount)); redisUtil.decr(performanceIdKey, Math.abs(buyCount));
} }
} }
// 获取 用户维度 演出购买数量 // 获取 用户维度 演出购买数量
public int getUserPBuyCount(String userId, String performanceId) { public int getUserPBuyCount(String userId, String performanceId) {
try { try {
...@@ -214,82 +198,8 @@ public class DataUtils { ...@@ -214,82 +198,8 @@ public class DataUtils {
return (KylinPerformanceVo) redisUtil.get(KylinRedisConst.PERFORMANCES + performanceId); return (KylinPerformanceVo) redisUtil.get(KylinRedisConst.PERFORMANCES + performanceId);
} }
public KylinOrderRefundsVo getOrderRefundVo(String orderRefundsId){ public void delOrderRefundVoByOrderId(String orderId) {
if (redisUtil.hasKey(KylinRedisConst.ORDER_REFUND + orderRefundsId)) {
} else {
KylinOrderRefundsVo orderRefundsVo = mongoTemplate.findOne(Query.query(Criteria.where("orderRefundsId").is(orderRefundsId)), KylinOrderRefundsVo.class, KylinOrderRefundsVo.class.getSimpleName());
List<KylinOrderRefundEntitiesVo> kylinOrderTicketEntitiesVoList = mongoTemplate.find(Query.query(Criteria.where("orderRefundsId").is(orderRefundsId)), KylinOrderRefundEntitiesVo.class, KylinOrderRefundEntitiesVo.class.getSimpleName());
List<KylinOrderRefundPicVo> picVos = mongoTemplate.find(Query.query(Criteria.where("orderRefundsId").is(orderRefundsId)),KylinOrderRefundPicVo.class,KylinOrderRefundPicVo.class.getSimpleName());
orderRefundsVo.setOrderRefundEntitiesVoList(kylinOrderTicketEntitiesVoList);
orderRefundsVo.setOrderRefundPicVos(picVos);
redisUtil.set(KylinRedisConst.ORDER_REFUND + orderRefundsId, orderRefundsVo);
}
return (KylinOrderRefundsVo) redisUtil.get(KylinRedisConst.ORDER_REFUND + orderRefundsId);
}
public List<KylinOrderRefundsVo> getOrderRefundVoByOrderId(String orderId){
if (redisUtil.hasKey(KylinRedisConst.ORDER_REFUND_BY_ORDER_ID + orderId)) {
} else {
List<KylinOrderRefundsVo> orderRefundsVoList = new ArrayList<>();
List<KylinOrderRefundsVo> data = mongoTemplate.find(Query.query(Criteria.where("orderTicketsId").is(orderId)), KylinOrderRefundsVo.class, KylinOrderRefundsVo.class.getSimpleName());
for (KylinOrderRefundsVo item : data) {
List<KylinOrderRefundEntitiesVo> kylinOrderTicketEntitiesVoList = mongoTemplate.find(Query.query(Criteria.where("orderRefundsId").is(item.getOrderRefundsId())), KylinOrderRefundEntitiesVo.class, KylinOrderRefundEntitiesVo.class.getSimpleName());
if(kylinOrderTicketEntitiesVoList.size()>1){
continue;
}
item.setOrderRefundEntitiesVoList(kylinOrderTicketEntitiesVoList);
List<KylinOrderRefundPicVo> picVos = mongoTemplate.find(Query.query(Criteria.where("orderRefundsId").is(item.getOrderRefundsId())),KylinOrderRefundPicVo.class,KylinOrderRefundPicVo.class.getSimpleName());
item.setOrderRefundPicVos(picVos);
orderRefundsVoList.add(item);
}
redisUtil.set(KylinRedisConst.ORDER_REFUND_BY_ORDER_ID + orderId, orderRefundsVoList);
}
return (List<KylinOrderRefundsVo>) redisUtil.get(KylinRedisConst.ORDER_REFUND_BY_ORDER_ID + orderId);
}
public void delOrderRefundVo(String orderRefundsId){
redisUtil.del(KylinRedisConst.ORDER_REFUND + orderRefundsId);
}
public void delOrderRefundVoByOrderId(String orderId){
redisUtil.del(KylinRedisConst.ORDER_REFUND_BY_ORDER_ID + orderId); redisUtil.del(KylinRedisConst.ORDER_REFUND_BY_ORDER_ID + orderId);
} }
/**
* 获取可退款票单价格
* @param orderTicketVo 订单vo数据
* @param orderTicketEntitiesId 票单id
* @return
*/
public BigDecimal getCanRefundOrderEntitiesPrice(KylinOrderTicketVo orderTicketVo, List<KylinOrderRefundsVo> kylinOrderRefundsVoBaseList, String orderTicketEntitiesId){
//单票实付价格
BigDecimal singlePrice = orderTicketVo.getPriceActual().subtract(orderTicketVo.getPriceExpress()).divide(BigDecimal.valueOf(orderTicketVo.getNumber()));
//单票剩余未退款金额
BigDecimal canRefundSinglePrice = new BigDecimal("0.00");
for (KylinOrderTicketEntitiesVo item : orderTicketVo.getEntitiesVoList()) {
if (item.getOrderTicketEntitiesId().equals(orderTicketEntitiesId)) {
canRefundSinglePrice = singlePrice.subtract(item.getRefundPrice()==null?BigDecimal.valueOf(0.00):item.getRefundPrice());
}
}
//订单锁定金额
BigDecimal orderLockPrice = new BigDecimal("0.00");
for (KylinOrderRefundsVo refundVo : kylinOrderRefundsVoBaseList) {
int status = refundVo.getStatus();
if (status == 0 || status == 3 || status == 5 || status == 7) { //退款流程未完成 金额锁定
List<KylinOrderRefundEntitiesVo> refundEntitiesVos = refundVo.getOrderRefundEntitiesVoList();
for (KylinOrderRefundEntitiesVo refundEntitiesVo : refundEntitiesVos) {
if (refundEntitiesVo.getOrderTicketEntitiesId().equals(orderTicketEntitiesId)) {
orderLockPrice = orderLockPrice.add(refundEntitiesVo.getRefundPrice());
}
}
}
}
//订单可退金额
BigDecimal refundSinglePrice = canRefundSinglePrice.subtract(orderLockPrice);
//是否包含快递费
if (orderTicketVo.getPriceActual().subtract(orderTicketVo.getPriceExpress()).subtract(orderTicketVo.getPriceRefund()).compareTo(canRefundSinglePrice) == 0) {
refundSinglePrice = refundSinglePrice.add(orderTicketVo.getPriceExpress());
}
return refundSinglePrice;
}
} }
package com.liquidnet.service.order.utils;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderListVo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
@Component
public class MongoVoUtils {
@Autowired
private RedisUtil redisUtil;
@Autowired
private DataUtils dataUtils;
@Autowired
private MongoTemplate mongoTemplate;
/**
* @param userId 用户id
* @param type 1新增 2修改
* @param orderId 订单id [需要新增或者修改的订单id]
*/
public Boolean resetOrderListVo(String userId, Integer type, String orderId, KylinOrderTicketVo dataSingle) {
List<KylinOrderListVo> vo = new ArrayList<>();
List<KylinOrderListVo> redisVo = new ArrayList();
KylinOrderListVo voItem = new KylinOrderListVo();
KylinOrderTicketVo data;
if (dataSingle == null) {
data = dataUtils.getOrderTicketVo(orderId);
} else {
data = dataSingle;
}
BeanUtils.copyProperties(data, voItem);
List<KylinOrderListVo> redisData = dataUtils.getOrderList(userId);
if (type == 1) {
redisVo.add(voItem);
if (redisData.size() > 0) {
if (redisData.get(0).getOrderTicketsId().equals(orderId)) {
redisData.remove(0);
}
}
}
redisVo.addAll(redisData);
switch (type) {
case 1:
for (int i = 0; i < redisVo.size(); i++) {
if (i == 40) {
break;
}
if (i == 0) {
vo.add(voItem);
} else {
vo.add(redisVo.get(i));
}
}
if (redisVo.size() == 0) {
vo.add(voItem);
}
dataUtils.setOrderList(userId, vo);
return true;
case 2:
for (int i = 0; i < redisVo.size(); i++) {
if (i == 40) {
break;
}
if (redisVo.get(i).getOrderTicketsId().equals(orderId)) {
vo.add(voItem);
} else {
vo.add(redisVo.get(i));
}
}
dataUtils.setOrderList(userId, vo);
return true;
default:
return false;
}
}
}
...@@ -5,9 +5,13 @@ import com.liquidnet.service.adam.constant.AdamRedisConst; ...@@ -5,9 +5,13 @@ import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.AdamAddressesVo; import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo; import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo; import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderListVo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List; import java.util.List;
@Component @Component
...@@ -34,7 +38,6 @@ public class OrderUtils { ...@@ -34,7 +38,6 @@ public class OrderUtils {
int isTrueName int isTrueName
) { ) {
Integer[] integers; Integer[] integers;
System.out.println("TYPE = " + type);
if (101 == type) { if (101 == type) {
integers = festivalOrderLimit(userId, idCard, performanceId, ticketId, performanceBuyCount, ticketBuyCount, isTrueName); integers = festivalOrderLimit(userId, idCard, performanceId, ticketId, performanceBuyCount, ticketBuyCount, isTrueName);
} else { } else {
...@@ -118,4 +121,67 @@ public class OrderUtils { ...@@ -118,4 +121,67 @@ public class OrderUtils {
List<AdamEntersVo> vos = (List<AdamEntersVo>) redisUtil.get(rk); List<AdamEntersVo> vos = (List<AdamEntersVo>) redisUtil.get(rk);
return vos.stream().filter(r -> r.getEntersId().equals(entersId)).findAny().orElse(null); return vos.stream().filter(r -> r.getEntersId().equals(entersId)).findAny().orElse(null);
} }
/**
* @param userId 用户id
* @param type 1新增 2修改
* @param orderId 订单id [需要新增或者修改的订单id]
*/
public Boolean resetOrderListVo(String userId, Integer type, String orderId, KylinOrderTicketVo dataSingle) {
List<KylinOrderListVo> vo = new ArrayList<>();
List<KylinOrderListVo> redisVo = new ArrayList();
KylinOrderListVo voItem = new KylinOrderListVo();
KylinOrderTicketVo data;
if (dataSingle == null) {
data = dataUtils.getOrderTicketVo(orderId);
} else {
data = dataSingle;
}
BeanUtils.copyProperties(data, voItem);
List<KylinOrderListVo> redisData = dataUtils.getOrderList(userId);
if (type == 1) {
redisVo.add(voItem);
if (redisData.size() > 0) {
if (redisData.get(0).getOrderTicketsId().equals(orderId)) {
redisData.remove(0);
}
}
}
redisVo.addAll(redisData);
switch (type) {
case 1:
for (int i = 0; i < redisVo.size(); i++) {
if (i == 40) {
break;
}
if (i == 0) {
vo.add(voItem);
} else {
vo.add(redisVo.get(i));
}
}
if (redisVo.size() == 0) {
vo.add(voItem);
}
dataUtils.setOrderList(userId, vo);
return true;
case 2:
for (int i = 0; i < redisVo.size(); i++) {
if (i == 40) {
break;
}
if (redisVo.get(i).getOrderTicketsId().equals(orderId)) {
vo.add(voItem);
} else {
vo.add(redisVo.get(i));
}
}
dataUtils.setOrderList(userId, vo);
return true;
default:
return false;
}
}
} }
...@@ -36,8 +36,6 @@ public class OtherUtils { ...@@ -36,8 +36,6 @@ public class OtherUtils {
sign = sign.toUpperCase(); sign = sign.toUpperCase();
httpData.add("sign", sign); httpData.add("sign", sign);
System.out.println("data = = = "+httpData.toString());
String returnData = HttpUtil.post(serviceUrl + "sendSmsMessageJ", httpData); String returnData = HttpUtil.post(serviceUrl + "sendSmsMessageJ", httpData);
JsonNode postResultNew = JsonUtils.fromJson(returnData, JsonNode.class); JsonNode postResultNew = JsonUtils.fromJson(returnData, JsonNode.class);
if (!postResultNew.get("message").toString().equals("OK")) { if (!postResultNew.get("message").toString().equals("OK")) {
......
...@@ -12,9 +12,6 @@ public class TaobaoTicketUtils { ...@@ -12,9 +12,6 @@ public class TaobaoTicketUtils {
private String SECRET = "900025efc616fd2446344bb8fa21d039"; private String SECRET = "900025efc616fd2446344bb8fa21d039";
private String SUPPLIER_SECRET= "444d0752439f921a75eaf5951a8bc03c"; private String SUPPLIER_SECRET= "444d0752439f921a75eaf5951a8bc03c";
private Long SYSTEM_ID= 15669L; private Long SYSTEM_ID= 15669L;
// private String url = "http://gw.api.tbsandbox.com/router/rest";
// private String appkey = "4272";
// private String secret = "0ebbcccfee18d7ad1aebc5b135ffa906";
private TaobaoClient client = null; private TaobaoClient client = null;
public TaobaoClient initTaobaoClient() { public TaobaoClient initTaobaoClient() {
......
...@@ -34,7 +34,6 @@ public class OrderUtils { ...@@ -34,7 +34,6 @@ public class OrderUtils {
int isTrueName int isTrueName
) { ) {
Integer[] integers; Integer[] integers;
System.out.println("TYPE = " + type);
if (101 == type) { if (101 == type) {
integers = festivalOrderLimit(userId, idCard, performanceId, ticketId, performanceBuyCount, ticketBuyCount, isTrueName); integers = festivalOrderLimit(userId, idCard, performanceId, ticketId, performanceBuyCount, ticketBuyCount, isTrueName);
} else { } else {
......
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