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

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

订单 锁 添加

parent beaf5ec6
...@@ -101,13 +101,9 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -101,13 +101,9 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
@Autowired @Autowired
private RabbitTemplate rabbitTemplate; private RabbitTemplate rabbitTemplate;
@Autowired @Autowired
private FeignAdamBaseClient feignAdamBaseClient;
@Autowired
private TaobaoTicketUtils taobaoTicketUtils; private TaobaoTicketUtils taobaoTicketUtils;
@Autowired @Autowired
private KylinOrderTicketsMapper orderTicketsMapper; private KylinOrderTicketsMapper orderTicketsMapper;
@Autowired
private KylinOrderTicketEntitiesMapper entitiesMapper;
ArrayList<Integer> canBuyStatus = new ArrayList() {{ ArrayList<Integer> canBuyStatus = new ArrayList() {{
add(6); add(6);
...@@ -123,9 +119,9 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -123,9 +119,9 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
boolean isDownGeneral = false; boolean isDownGeneral = false;
String uid = CurrentUtil.getCurrentUid(); String uid = CurrentUtil.getCurrentUid();
String lock = "userId:" + uid; String lock = "userId:" + uid;
// if (!redisLockUtil.tryLock(lock, 2, 2)) { if (!redisLockUtil.tryLock(lock, 1, 5)) {
// return ResponseDto.failure("请求频繁");//参数错误 return ResponseDto.failure("请求频繁");//参数错误
// } }
try { try {
currentTime = System.currentTimeMillis(); currentTime = System.currentTimeMillis();
KylinPerformanceVo performanceData = dataUtils.getPerformanceVo(payOrderParam.getPerformanceId()); KylinPerformanceVo performanceData = dataUtils.getPerformanceVo(payOrderParam.getPerformanceId());
...@@ -149,20 +145,20 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -149,20 +145,20 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
} }
if (performanceData == null || ticketTimesData == null || ticketData == null) { if (performanceData == null || ticketTimesData == null || ticketData == null) {
//redisLockUtil.unlock(lock); redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20004"));//参数错误 return ResponseDto.failure(ErrorMapping.get("20004"));//参数错误
} }
if (!ticketData.getTimeId().equals(payOrderParam.getTimeId()) || !ticketTimesData.getPerformanceId().equals(payOrderParam.getPerformanceId())) { if (!ticketData.getTimeId().equals(payOrderParam.getTimeId()) || !ticketTimesData.getPerformanceId().equals(payOrderParam.getPerformanceId())) {
//redisLockUtil.unlock(lock); redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20004"));//参数错误 return ResponseDto.failure(ErrorMapping.get("20004"));//参数错误
} }
if (payOrderParam.getNumber() % ticketData.getCounts() != 0) { if (payOrderParam.getNumber() % ticketData.getCounts() != 0) {
//redisLockUtil.unlock(lock); redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20007"));//数量错误 return ResponseDto.failure(ErrorMapping.get("20007"));//数量错误
} }
//判断代理 //判断代理
if (!checkAgent(payOrderParam.getAgentId(), ticketData)) { if (!checkAgent(payOrderParam.getAgentId(), ticketData)) {
//redisLockUtil.unlock(lock); redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20008"));//无权购买 return ResponseDto.failure(ErrorMapping.get("20008"));//无权购买
} }
...@@ -173,15 +169,14 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -173,15 +169,14 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
String timeEnd = ticketData.getTimeEnd(); // 购票停售时间 String timeEnd = ticketData.getTimeEnd(); // 购票停售时间
String timeExpressEnd = ticketData.getTimeEndExpress(); // 快递停售时间 String timeExpressEnd = ticketData.getTimeEndExpress(); // 快递停售时间
currentTime = System.currentTimeMillis(); currentTime = System.currentTimeMillis();
boolean isMember = feignAdamBaseClient.isMember(uid).getData();//获取是否是会员 boolean isMember = orderUtils.isMember(uid);//feignAdamBaseClient.isMember(uid).getData();//获取是否是会员
currentTime = System.currentTimeMillis() - currentTime; currentTime = System.currentTimeMillis() - currentTime;
log.debug("fegin 会员 -> time:" + (currentTime) + "毫秒"); log.debug("fegin 会员 -> time:" + (currentTime) + "毫秒");
// boolean isMember = true;
int memberType; //会员状态 不需要判断会员 1判断会员逻辑 2会员专属 int memberType; //会员状态 不需要判断会员 1判断会员逻辑 2会员专属
if (ticketData.getIsExclusive() == 1) { if (ticketData.getIsExclusive() == 1) {
memberType = 2; memberType = 2;
if (!isMember) { if (!isMember) {
//redisLockUtil.unlock(lock); redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20009"));//没有会员权限 return ResponseDto.failure(ErrorMapping.get("20009"));//没有会员权限
} }
} else { } else {
...@@ -189,7 +184,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -189,7 +184,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
// 会员购买逻辑 // 会员购买逻辑
memberType = 1; memberType = 1;
if (!isMember) { if (!isMember) {
//redisLockUtil.unlock(lock); redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20009"));//没有会员权限 return ResponseDto.failure(ErrorMapping.get("20009"));//没有会员权限
} }
} else { } else {
...@@ -216,38 +211,38 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -216,38 +211,38 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
//通用判断时间 //通用判断时间
if (isMember) { if (isMember) {
if (DateUtil.compareStrDay(DateUtil.getNowTime(), memberTimeStart) == -1) { if (DateUtil.compareStrDay(DateUtil.getNowTime(), memberTimeStart) == -1) {
//redisLockUtil.unlock(lock); redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20011"));//未开始 return ResponseDto.failure(ErrorMapping.get("20011"));//未开始
} }
} else { } else {
if (DateUtil.compareStrDay(DateUtil.getNowTime(), timeStart) == -1) { if (DateUtil.compareStrDay(DateUtil.getNowTime(), timeStart) == -1) {
//redisLockUtil.unlock(lock); redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20011"));//未开始 return ResponseDto.failure(ErrorMapping.get("20011"));//未开始
} }
} }
if (DateUtil.compareStrDay(DateUtil.getNowTime(), timeEnd) == 1) { if (DateUtil.compareStrDay(DateUtil.getNowTime(), timeEnd) == 1) {
//redisLockUtil.unlock(lock); redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20012"));//已结束 return ResponseDto.failure(ErrorMapping.get("20012"));//已结束
} }
//快递票判断 //快递票判断
if (payOrderParam.getIsExpress() != null) { if (payOrderParam.getIsExpress() != null) {
if (payOrderParam.getIsExpress() == 1 && DateUtil.compareStrDay(DateUtil.getNowTime(), timeExpressEnd) == 1) { if (payOrderParam.getIsExpress() == 1 && DateUtil.compareStrDay(DateUtil.getNowTime(), timeExpressEnd) == 1) {
//redisLockUtil.unlock(lock); redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20013"));//快递票不卖 return ResponseDto.failure(ErrorMapping.get("20013"));//快递票不卖
} }
if (payOrderParam.getIsExpress() == 1 && payOrderParam.getAddressId().isEmpty()) { if (payOrderParam.getIsExpress() == 1 && payOrderParam.getAddressId().isEmpty()) {
//redisLockUtil.unlock(lock); redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20014"));//快递票未填写收货地址 return ResponseDto.failure(ErrorMapping.get("20014"));//快递票未填写收货地址
} }
} }
//实名判断 //实名判断
if (isTrueName == 1 && payOrderParam.getEnterIdList().size() <= 0) { if (isTrueName == 1 && payOrderParam.getEnterIdList().size() <= 0) {
//redisLockUtil.unlock(lock); redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20015"));//需要实名 未实名 return ResponseDto.failure(ErrorMapping.get("20015"));//需要实名 未实名
} }
if (isTrueName == 1 && payOrderParam.getEnterIdList().size() != payOrderParam.getNumber()) { if (isTrueName == 1 && payOrderParam.getEnterIdList().size() != payOrderParam.getNumber()) {
//redisLockUtil.unlock(lock); redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20015"));//入场人数量错误 return ResponseDto.failure(ErrorMapping.get("20015"));//入场人数量错误
} }
...@@ -270,7 +265,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -270,7 +265,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
dataUtils.changeSurplusGeneral(payOrderParam.getTicketId(), payOrderParam.getNumber()); dataUtils.changeSurplusGeneral(payOrderParam.getTicketId(), payOrderParam.getNumber());
currentTime = System.currentTimeMillis() - currentTime; currentTime = System.currentTimeMillis() - currentTime;
log.debug("redis 修改库存 售罄 -> time:" + (currentTime) + "毫秒"); log.debug("redis 修改库存 售罄 -> time:" + (currentTime) + "毫秒");
//redisLockUtil.unlock(lock); redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20016"));//没抢到 return ResponseDto.failure(ErrorMapping.get("20016"));//没抢到
} else { } else {
isDownGeneral = true; isDownGeneral = true;
...@@ -280,12 +275,12 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -280,12 +275,12 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
if (isTrueName == 1) { if (isTrueName == 1) {
currentTime = System.currentTimeMillis(); currentTime = System.currentTimeMillis();
for (String enterId : payOrderParam.getEnterIdList()) { for (String enterId : payOrderParam.getEnterIdList()) {
AdamEntersVo adamEnters = feignAdamBaseClient.queryEnters(enterId, uid).getData(); AdamEntersVo adamEnters = orderUtils.getEnters(uid,enterId);//feignAdamBaseClient.queryEnters(enterId, uid).getData();
entersVoList.add(adamEnters); entersVoList.add(adamEnters);
if (isStudent == 1) { if (isStudent == 1) {
int age = IDCard.getAgeByIdCard(adamEnters.getIdCard()); int age = IDCard.getAgeByIdCard(adamEnters.getIdCard());
if (age > 25) { if (age > 25) {
//redisLockUtil.unlock(lock); redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20017"));//年龄超了 return ResponseDto.failure(ErrorMapping.get("20017"));//年龄超了
} }
} }
...@@ -307,7 +302,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -307,7 +302,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
String res1 = orderUtils.judgeOrderLimit(performanceData.getType(), uid, entersVoList.get(i).getIdCard(), payOrderParam.getPerformanceId(), payOrderParam.getTicketId(), performanceLimit, performanceMemberLimit, ticketLimit, ticketMemberLimit, 1, 1, memberType, isTrueName); String res1 = orderUtils.judgeOrderLimit(performanceData.getType(), uid, entersVoList.get(i).getIdCard(), payOrderParam.getPerformanceId(), payOrderParam.getTicketId(), performanceLimit, performanceMemberLimit, ticketLimit, ticketMemberLimit, 1, 1, memberType, isTrueName);
log.debug("redis 判断库存 -> time:" + (currentTime) + "毫秒"); log.debug("redis 判断库存 -> time:" + (currentTime) + "毫秒");
if (!res1.equals("")) { if (!res1.equals("")) {
//redisLockUtil.unlock(lock); redisLockUtil.unlock(lock);
return ResponseDto.failure(res1);//乱七八糟异常 return ResponseDto.failure(res1);//乱七八糟异常
} }
} }
...@@ -319,14 +314,14 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -319,14 +314,14 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
String res1 = orderUtils.judgeOrderLimit(performanceData.getType(), uid, "", payOrderParam.getPerformanceId(), payOrderParam.getTicketId(), performanceLimit, performanceMemberLimit, ticketLimit, ticketMemberLimit, payOrderParam.getNumber(), payOrderParam.getNumber(), memberType, isTrueName); String res1 = orderUtils.judgeOrderLimit(performanceData.getType(), uid, "", payOrderParam.getPerformanceId(), payOrderParam.getTicketId(), performanceLimit, performanceMemberLimit, ticketLimit, ticketMemberLimit, payOrderParam.getNumber(), payOrderParam.getNumber(), memberType, isTrueName);
currentTime = System.currentTimeMillis() - currentTime; currentTime = System.currentTimeMillis() - currentTime;
if (!res1.equals("")) { if (!res1.equals("")) {
//redisLockUtil.unlock(lock); redisLockUtil.unlock(lock);
return ResponseDto.failure(res1);//乱七八糟异常 return ResponseDto.failure(res1);//乱七八糟异常
} }
currentTime = System.currentTimeMillis() - currentTime; currentTime = System.currentTimeMillis() - currentTime;
} }
//redisLockUtil.unlock(lock); redisLockUtil.unlock(lock);
return order(payOrderParam, uid, isMember, isTrueName, performanceData, ticketData, entersVoList, isStudent, ticketTimesData, currentTime); return order(payOrderParam, uid, isMember, isTrueName, performanceData, ticketData, entersVoList, isStudent, ticketTimesData, currentTime);
} }
} catch (Exception e) { } catch (Exception e) {
...@@ -338,7 +333,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -338,7 +333,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
} }
e.printStackTrace(); e.printStackTrace();
log.error("Kylin Order Pay Error = " + e.getMessage()); log.error("Kylin Order Pay Error = " + e.getMessage());
//redisLockUtil.unlock(lock); redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20018"));//乱七八糟异常 return ResponseDto.failure(ErrorMapping.get("20018"));//乱七八糟异常
} }
} }
...@@ -357,8 +352,6 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -357,8 +352,6 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
Map token = CurrentUtil.getTokenClaims(); Map token = CurrentUtil.getTokenClaims();
orderTickets.setUserName(StringUtils.defaultString(((String) token.get("nickname")), "")); orderTickets.setUserName(StringUtils.defaultString(((String) token.get("nickname")), ""));
orderTickets.setUserMobile(StringUtils.defaultString(((String) token.get("mobile")), "")); orderTickets.setUserMobile(StringUtils.defaultString(((String) token.get("mobile")), ""));
// orderTickets.setUserName("");
// orderTickets.setUserMobile("");
orderTickets.setPerformanceTitle(performanceData.getTitle()); orderTickets.setPerformanceTitle(performanceData.getTitle());
orderTickets.setOrderCode(IDGenerator.ticketOrderCode(orderTicketId)); orderTickets.setOrderCode(IDGenerator.ticketOrderCode(orderTicketId));
orderTickets.setPayCode(""); orderTickets.setPayCode("");
...@@ -389,7 +382,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -389,7 +382,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
orderTickets.setTimePay(null); orderTickets.setTimePay(null);
if (payOrderParam.getIsExpress() == 1) { if (payOrderParam.getIsExpress() == 1) {
currentTime = System.currentTimeMillis(); currentTime = System.currentTimeMillis();
AdamAddressesVo addressesVo = feignAdamBaseClient.queryAddresses(payOrderParam.getAddressId(), uid).getData(); AdamAddressesVo addressesVo = orderUtils.getAddress(uid,payOrderParam.getAddressId());//feignAdamBaseClient.queryAddresses(payOrderParam.getAddressId(), uid).getData();
orderTickets.setExpressContacts(addressesVo.getName()); orderTickets.setExpressContacts(addressesVo.getName());
orderTickets.setExpressAddress(addressesVo.getAddress()); orderTickets.setExpressAddress(addressesVo.getAddress());
orderTickets.setExpressPhone(addressesVo.getPhone()); orderTickets.setExpressPhone(addressesVo.getPhone());
...@@ -564,43 +557,43 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -564,43 +557,43 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
httpData.add("return_url", payOrderParam.getReturnUrl() + orderTicketId); httpData.add("return_url", payOrderParam.getReturnUrl() + orderTicketId);
} }
// currentTime = System.currentTimeMillis(); currentTime = System.currentTimeMillis();
// String returnData = HttpUtil.post(payUrl + payOrderParam.getDeviceFrom() + "/" + payOrderParam.getPayType(), httpData); String returnData = HttpUtil.post(payUrl + payOrderParam.getDeviceFrom() + "/" + payOrderParam.getPayType(), httpData);
// currentTime = System.currentTimeMillis() - currentTime; currentTime = System.currentTimeMillis() - currentTime;
// log.debug("调用 PHP 支付 -> time:" + (currentTime) + "毫秒"); log.debug("调用 PHP 支付 -> time:" + (currentTime) + "毫秒");
// PayResultVo payResultVo = JsonUtils.fromJson(returnData, PayResultVo.class); PayResultVo payResultVo = JsonUtils.fromJson(returnData, PayResultVo.class);
PayResultVo payResultVo = null; // PayResultVo payResultVo = null;
try { // try {
payResultVo = JsonUtils.fromJson("{\n" + // payResultVo = JsonUtils.fromJson("{\n" +
" \"code\": \"20210618130049218267704668657P\",\n" + // " \"code\": \"20210618130049218267704668657P\",\n" +
" \"order_code\": \"T7774750254320448484\",\n" + // " \"order_code\": \"T7774750254320448484\",\n" +
" \"status\": null,\n" + // " \"status\": null,\n" +
" \"order_id\": \"77747502543208448\",\n" + // " \"order_id\": \"77747502543208448\",\n" +
" \"showUrl\": \"http://devm.zhengzai.tv/#/ticket/purchase/detail?id=5936241&amp;type=purchase&amp;performance_id=5936241&amp;ticket_id=10981&amp;amount=1&amp;products_array=&amp;amount_array=&amp;express=077747502543208448\",\n" + // " \"showUrl\": \"http://devm.zhengzai.tv/#/ticket/purchase/detail?id=5936241&amp;type=purchase&amp;performance_id=5936241&amp;ticket_id=10981&amp;amount=1&amp;products_array=&amp;amount_array=&amp;express=077747502543208448\",\n" +
" \"returnUrl\": \"http://devm.zhengzai.tv/#/order/status?order_type=ticket&amp;order_id=77747502543208448\",\n" + // " \"returnUrl\": \"http://devm.zhengzai.tv/#/order/status?order_type=ticket&amp;order_id=77747502543208448\",\n" +
" \"price\": 0.01,\n" + // " \"price\": 0.01,\n" +
" \"pay_data\": {\n" + // " \"pay_data\": {\n" +
" \"packages\": null,\n" + // " \"packages\": null,\n" +
" \"partnerid\": null,\n" + // " \"partnerid\": null,\n" +
" \"prepayid\": null,\n" + // " \"prepayid\": null,\n" +
" \"sign\": null,\n" + // " \"sign\": null,\n" +
" \"mweb_url\": null,\n" + // " \"mweb_url\": null,\n" +
" \"paySign\": null,\n" + // " \"paySign\": null,\n" +
" \"signType\": null,\n" + // " \"signType\": null,\n" +
" \"redirect_url\": \"https://openapi.alipay.com/gateway.do?alipay_sdk=lokielse%2Fomnipay-alipay&app_id=2019082866535131&biz_content=%7B%22product_code%22%3A%22QUICK_WAP_PAY%22%2C%22total_amount%22%3A%220.01%22%2C%22subject%22%3A%2206%5Cu670830%5Cu65e5%5Cu5355%5Cu65e5%5Cu7968%5Cu80e1%5Cu5927%5Cu7f8e%5Cu5e76%5Cu53d1%5Cu4e0b%5Cu5355%22%2C%22body%22%3A%22%5Cu80e1%5Cu5927%5Cu7f8e%5Cu5e76%5Cu53d1%5Cu4e0b%5Cu5355%5Cu5355%5Cu65e5%5Cu796806%5Cu670830%5Cu65e5%22%2C%22out_trade_no%22%3A%2220210618130049218267704668657P%22%2C%22time_expire%22%3A%222021-06-18+13%3A06%22%2C%22quit_url%22%3A%22http%3A%5C%2F%5C%2Fdevm.zhengzai.tv%5C%2F%23%5C%2Fticket%5C%2Fpurchase%5C%2Fdetail%3Fid%3D5936241%26amp%3Btype%3Dpurchase%26amp%3Bperformance_id%3D5936241%26amp%3Bticket_id%3D10981%26amp%3Bamount%3D1%26amp%3Bproducts_array%3D%26amp%3Bamount_array%3D%26amp%3Bexpress%3D077747502543208448%22%7D&charset=utf-8&format=JSON&method=alipay.trade.wap.pay&notify_url=http%3A%2F%2Ftestpay.zhengzai.tv%2Fnotify%2Fwap%2Falipay%2F1&return_url=http%3A%2F%2Fdevm.zhengzai.tv%2F%23%2Forder%2Fstatus%3Forder_type%3Dticket%26amp%3Border_id%3D77747502543208448&sign_type=RSA2&timestamp=2021-06-18+13%3A00%3A49&version=1.0&sign=UaHmNdI1cXjjSkR4gwrnELSWXqb1Icg1uCOe0vEo5yHCqWOy4JZCZbjCR1xOHQKowSMBAr6U2XLtMAaNXr6mX%2B%2F5IiaChsD4IPoODNT7F4GckVcqP3GkdLZTro%2FGmBau6VoYw1uVpyutQTJsjEU1fQ%2F5KDAKLvg0XG%2F1D%2BXb%2Bv6LdLDvehCEPzy4W%2BCT0qPANU4ysgZkt9hP1ljH61%2FBWiDnfz%2BOdust4KBoJYQzNWO3XSwvc17OxdGHn8EBmYRJz6sr1nt0i2h4BGQtjrOHRB3dToVkxrlsHtbrOmiCdRFH6utSVA8UjeKtlEB%2FH%2BkQfVxPkpOicTjkokhDNK6svg%3D%3D\",\n" + // " \"redirect_url\": \"https://openapi.alipay.com/gateway.do?alipay_sdk=lokielse%2Fomnipay-alipay&app_id=2019082866535131&biz_content=%7B%22product_code%22%3A%22QUICK_WAP_PAY%22%2C%22total_amount%22%3A%220.01%22%2C%22subject%22%3A%2206%5Cu670830%5Cu65e5%5Cu5355%5Cu65e5%5Cu7968%5Cu80e1%5Cu5927%5Cu7f8e%5Cu5e76%5Cu53d1%5Cu4e0b%5Cu5355%22%2C%22body%22%3A%22%5Cu80e1%5Cu5927%5Cu7f8e%5Cu5e76%5Cu53d1%5Cu4e0b%5Cu5355%5Cu5355%5Cu65e5%5Cu796806%5Cu670830%5Cu65e5%22%2C%22out_trade_no%22%3A%2220210618130049218267704668657P%22%2C%22time_expire%22%3A%222021-06-18+13%3A06%22%2C%22quit_url%22%3A%22http%3A%5C%2F%5C%2Fdevm.zhengzai.tv%5C%2F%23%5C%2Fticket%5C%2Fpurchase%5C%2Fdetail%3Fid%3D5936241%26amp%3Btype%3Dpurchase%26amp%3Bperformance_id%3D5936241%26amp%3Bticket_id%3D10981%26amp%3Bamount%3D1%26amp%3Bproducts_array%3D%26amp%3Bamount_array%3D%26amp%3Bexpress%3D077747502543208448%22%7D&charset=utf-8&format=JSON&method=alipay.trade.wap.pay&notify_url=http%3A%2F%2Ftestpay.zhengzai.tv%2Fnotify%2Fwap%2Falipay%2F1&return_url=http%3A%2F%2Fdevm.zhengzai.tv%2F%23%2Forder%2Fstatus%3Forder_type%3Dticket%26amp%3Border_id%3D77747502543208448&sign_type=RSA2&timestamp=2021-06-18+13%3A00%3A49&version=1.0&sign=UaHmNdI1cXjjSkR4gwrnELSWXqb1Icg1uCOe0vEo5yHCqWOy4JZCZbjCR1xOHQKowSMBAr6U2XLtMAaNXr6mX%2B%2F5IiaChsD4IPoODNT7F4GckVcqP3GkdLZTro%2FGmBau6VoYw1uVpyutQTJsjEU1fQ%2F5KDAKLvg0XG%2F1D%2BXb%2Bv6LdLDvehCEPzy4W%2BCT0qPANU4ysgZkt9hP1ljH61%2FBWiDnfz%2BOdust4KBoJYQzNWO3XSwvc17OxdGHn8EBmYRJz6sr1nt0i2h4BGQtjrOHRB3dToVkxrlsHtbrOmiCdRFH6utSVA8UjeKtlEB%2FH%2BkQfVxPkpOicTjkokhDNK6svg%3D%3D\",\n" +
" \"order_str\": null,\n" + // " \"order_str\": null,\n" +
" \"appId\": null,\n" + // " \"appId\": null,\n" +
" \"appid\": null,\n" + // " \"appid\": null,\n" +
" \"nonceStr\": null,\n" + // " \"nonceStr\": null,\n" +
" \"noncestr\": null,\n" + // " \"noncestr\": null,\n" +
" \"timeStamp\": null,\n" + // " \"timeStamp\": null,\n" +
" \"timestamp\": null,\n" + // " \"timestamp\": null,\n" +
" \"package\": null\n" + // " \"package\": null\n" +
" }\n" + // " }\n" +
" }", PayResultVo.class); // " }", PayResultVo.class);
} catch (Exception e) { // } catch (Exception e) {
payResultVo = new PayResultVo(); // payResultVo = new PayResultVo();
} // }
payResultVo.setOrder_id(orderTicketId); payResultVo.setOrder_id(orderTicketId);
payResultVo.setPrice(orderTickets.getPriceActual()); payResultVo.setPrice(orderTickets.getPriceActual());
orderTickets.setPayCode(payResultVo.getCode()); orderTickets.setPayCode(payResultVo.getCode());
......
package com.liquidnet.service.kylin.utils; package com.liquidnet.service.kylin.utils;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
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 io.swagger.models.auth.In; import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -8,12 +14,15 @@ import org.springframework.data.mongodb.core.query.Query; ...@@ -8,12 +14,15 @@ import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
@Component @Component
public class OrderUtils { public class OrderUtils {
@Autowired @Autowired
private DataUtils dataUtils; private DataUtils dataUtils;
@Autowired
private RedisUtil redisUtil;
public String judgeOrderLimit( public String judgeOrderLimit(
int type, int type,
...@@ -32,11 +41,11 @@ public class OrderUtils { ...@@ -32,11 +41,11 @@ public class OrderUtils {
) { ) {
Integer[] integers; Integer[] integers;
if (103 == type) { if (103 == type) {
integers=roadShowOrderLimit(userId,idCard,performanceId,ticketId,performanceBuyCount,ticketBuyCount,isTrueName); integers = roadShowOrderLimit(userId, idCard, performanceId, ticketId, performanceBuyCount, ticketBuyCount, isTrueName);
} else { } else {
integers=festivalOrderLimit(userId,idCard,performanceId,ticketId,performanceBuyCount,ticketBuyCount,isTrueName); integers = festivalOrderLimit(userId, idCard, performanceId, ticketId, performanceBuyCount, ticketBuyCount, isTrueName);
} }
return judgeMemberType(performanceLimitCount,performanceMemberLimitCount,ticketLimitCount,ticketMemberLimitCount,memberType,integers[0],integers[1]); return judgeMemberType(performanceLimitCount, performanceMemberLimitCount, ticketLimitCount, ticketMemberLimitCount, memberType, integers[0], integers[1]);
} }
public Integer[] roadShowOrderLimit( public Integer[] roadShowOrderLimit(
...@@ -55,7 +64,7 @@ public class OrderUtils { ...@@ -55,7 +64,7 @@ public class OrderUtils {
performanceBuyCount += dataUtils.getUserPBuyCount(userId, performanceId); performanceBuyCount += dataUtils.getUserPBuyCount(userId, performanceId);
ticketBuyCount += dataUtils.getUserTBuyCount(userId, ticketId); ticketBuyCount += dataUtils.getUserTBuyCount(userId, ticketId);
} }
return new Integer[]{performanceBuyCount,ticketBuyCount}; return new Integer[]{performanceBuyCount, ticketBuyCount};
} }
public Integer[] festivalOrderLimit( public Integer[] festivalOrderLimit(
...@@ -75,7 +84,7 @@ public class OrderUtils { ...@@ -75,7 +84,7 @@ public class OrderUtils {
ticketBuyCount += dataUtils.getUserTBuyCount(userId, ticketId); ticketBuyCount += dataUtils.getUserTBuyCount(userId, ticketId);
} }
return new Integer[]{performanceBuyCount,ticketBuyCount}; return new Integer[]{performanceBuyCount, ticketBuyCount};
} }
public String judgeMemberType(int performanceLimitCount, int performanceMemberLimitCount, int ticketLimitCount, int ticketMemberLimitCount, int memberType, int performanceBuyCount, int ticketBuyCount) { public String judgeMemberType(int performanceLimitCount, int performanceMemberLimitCount, int ticketLimitCount, int ticketMemberLimitCount, int memberType, int performanceBuyCount, int ticketBuyCount) {
...@@ -97,4 +106,21 @@ public class OrderUtils { ...@@ -97,4 +106,21 @@ public class OrderUtils {
return ""; return "";
} }
public boolean isMember(String uid) {
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) {
String rk = AdamRedisConst.INFO_ENTERS.concat(uid);
List<AdamEntersVo> vos = (List<AdamEntersVo>) redisUtil.get(rk);
return vos.stream().filter(r -> r.getEntersId().equals(entersId)).findAny().orElse(null);
}
} }
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