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

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

订单 锁 添加

parent beaf5ec6
......@@ -101,13 +101,9 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
@Autowired
private RabbitTemplate rabbitTemplate;
@Autowired
private FeignAdamBaseClient feignAdamBaseClient;
@Autowired
private TaobaoTicketUtils taobaoTicketUtils;
@Autowired
private KylinOrderTicketsMapper orderTicketsMapper;
@Autowired
private KylinOrderTicketEntitiesMapper entitiesMapper;
ArrayList<Integer> canBuyStatus = new ArrayList() {{
add(6);
......@@ -123,9 +119,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, 1, 5)) {
return ResponseDto.failure("请求频繁");//参数错误
}
try {
currentTime = System.currentTimeMillis();
KylinPerformanceVo performanceData = dataUtils.getPerformanceVo(payOrderParam.getPerformanceId());
......@@ -149,20 +145,20 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
}
if (performanceData == null || ticketTimesData == null || ticketData == null) {
//redisLockUtil.unlock(lock);
redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20004"));//参数错误
}
if (!ticketData.getTimeId().equals(payOrderParam.getTimeId()) || !ticketTimesData.getPerformanceId().equals(payOrderParam.getPerformanceId())) {
//redisLockUtil.unlock(lock);
redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20004"));//参数错误
}
if (payOrderParam.getNumber() % ticketData.getCounts() != 0) {
//redisLockUtil.unlock(lock);
redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20007"));//数量错误
}
//判断代理
if (!checkAgent(payOrderParam.getAgentId(), ticketData)) {
//redisLockUtil.unlock(lock);
redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20008"));//无权购买
}
......@@ -173,15 +169,14 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
String timeEnd = ticketData.getTimeEnd(); // 购票停售时间
String timeExpressEnd = ticketData.getTimeEndExpress(); // 快递停售时间
currentTime = System.currentTimeMillis();
boolean isMember = feignAdamBaseClient.isMember(uid).getData();//获取是否是会员
boolean isMember = orderUtils.isMember(uid);//feignAdamBaseClient.isMember(uid).getData();//获取是否是会员
currentTime = System.currentTimeMillis() - currentTime;
log.debug("fegin 会员 -> time:" + (currentTime) + "毫秒");
// boolean isMember = true;
int memberType; //会员状态 不需要判断会员 1判断会员逻辑 2会员专属
if (ticketData.getIsExclusive() == 1) {
memberType = 2;
if (!isMember) {
//redisLockUtil.unlock(lock);
redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20009"));//没有会员权限
}
} else {
......@@ -189,7 +184,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
// 会员购买逻辑
memberType = 1;
if (!isMember) {
//redisLockUtil.unlock(lock);
redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20009"));//没有会员权限
}
} else {
......@@ -216,38 +211,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(ErrorMapping.get("20011"));//未开始
}
} else {
if (DateUtil.compareStrDay(DateUtil.getNowTime(), timeStart) == -1) {
//redisLockUtil.unlock(lock);
redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20011"));//未开始
}
}
if (DateUtil.compareStrDay(DateUtil.getNowTime(), timeEnd) == 1) {
//redisLockUtil.unlock(lock);
redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20012"));//已结束
}
//快递票判断
if (payOrderParam.getIsExpress() != null) {
if (payOrderParam.getIsExpress() == 1 && DateUtil.compareStrDay(DateUtil.getNowTime(), timeExpressEnd) == 1) {
//redisLockUtil.unlock(lock);
redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20013"));//快递票不卖
}
if (payOrderParam.getIsExpress() == 1 && payOrderParam.getAddressId().isEmpty()) {
//redisLockUtil.unlock(lock);
redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20014"));//快递票未填写收货地址
}
}
//实名判断
if (isTrueName == 1 && payOrderParam.getEnterIdList().size() <= 0) {
//redisLockUtil.unlock(lock);
redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20015"));//需要实名 未实名
}
if (isTrueName == 1 && payOrderParam.getEnterIdList().size() != payOrderParam.getNumber()) {
//redisLockUtil.unlock(lock);
redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20015"));//入场人数量错误
}
......@@ -270,7 +265,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
dataUtils.changeSurplusGeneral(payOrderParam.getTicketId(), payOrderParam.getNumber());
currentTime = System.currentTimeMillis() - currentTime;
log.debug("redis 修改库存 售罄 -> time:" + (currentTime) + "毫秒");
//redisLockUtil.unlock(lock);
redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20016"));//没抢到
} else {
isDownGeneral = true;
......@@ -280,12 +275,12 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
if (isTrueName == 1) {
currentTime = System.currentTimeMillis();
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);
if (isStudent == 1) {
int age = IDCard.getAgeByIdCard(adamEnters.getIdCard());
if (age > 25) {
//redisLockUtil.unlock(lock);
redisLockUtil.unlock(lock);
return ResponseDto.failure(ErrorMapping.get("20017"));//年龄超了
}
}
......@@ -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);
log.debug("redis 判断库存 -> time:" + (currentTime) + "毫秒");
if (!res1.equals("")) {
//redisLockUtil.unlock(lock);
redisLockUtil.unlock(lock);
return ResponseDto.failure(res1);//乱七八糟异常
}
}
......@@ -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);
currentTime = System.currentTimeMillis() - currentTime;
if (!res1.equals("")) {
//redisLockUtil.unlock(lock);
redisLockUtil.unlock(lock);
return ResponseDto.failure(res1);//乱七八糟异常
}
currentTime = System.currentTimeMillis() - currentTime;
}
//redisLockUtil.unlock(lock);
redisLockUtil.unlock(lock);
return order(payOrderParam, uid, isMember, isTrueName, performanceData, ticketData, entersVoList, isStudent, ticketTimesData, currentTime);
}
} catch (Exception e) {
......@@ -338,7 +333,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(ErrorMapping.get("20018"));//乱七八糟异常
}
}
......@@ -357,8 +352,6 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
Map token = CurrentUtil.getTokenClaims();
orderTickets.setUserName(StringUtils.defaultString(((String) token.get("nickname")), ""));
orderTickets.setUserMobile(StringUtils.defaultString(((String) token.get("mobile")), ""));
// orderTickets.setUserName("");
// orderTickets.setUserMobile("");
orderTickets.setPerformanceTitle(performanceData.getTitle());
orderTickets.setOrderCode(IDGenerator.ticketOrderCode(orderTicketId));
orderTickets.setPayCode("");
......@@ -389,7 +382,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
orderTickets.setTimePay(null);
if (payOrderParam.getIsExpress() == 1) {
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.setExpressAddress(addressesVo.getAddress());
orderTickets.setExpressPhone(addressesVo.getPhone());
......@@ -564,43 +557,43 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
httpData.add("return_url", payOrderParam.getReturnUrl() + orderTicketId);
}
// currentTime = System.currentTimeMillis();
// String returnData = HttpUtil.post(payUrl + payOrderParam.getDeviceFrom() + "/" + payOrderParam.getPayType(), httpData);
// currentTime = System.currentTimeMillis() - currentTime;
// log.debug("调用 PHP 支付 -> time:" + (currentTime) + "毫秒");
// PayResultVo payResultVo = JsonUtils.fromJson(returnData, PayResultVo.class);
PayResultVo payResultVo = null;
try {
payResultVo = JsonUtils.fromJson("{\n" +
" \"code\": \"20210618130049218267704668657P\",\n" +
" \"order_code\": \"T7774750254320448484\",\n" +
" \"status\": null,\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" +
" \"returnUrl\": \"http://devm.zhengzai.tv/#/order/status?order_type=ticket&amp;order_id=77747502543208448\",\n" +
" \"price\": 0.01,\n" +
" \"pay_data\": {\n" +
" \"packages\": null,\n" +
" \"partnerid\": null,\n" +
" \"prepayid\": null,\n" +
" \"sign\": null,\n" +
" \"mweb_url\": null,\n" +
" \"paySign\": 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" +
" \"order_str\": null,\n" +
" \"appId\": null,\n" +
" \"appid\": null,\n" +
" \"nonceStr\": null,\n" +
" \"noncestr\": null,\n" +
" \"timeStamp\": null,\n" +
" \"timestamp\": null,\n" +
" \"package\": null\n" +
" }\n" +
" }", PayResultVo.class);
} catch (Exception e) {
payResultVo = new PayResultVo();
}
currentTime = System.currentTimeMillis();
String returnData = HttpUtil.post(payUrl + payOrderParam.getDeviceFrom() + "/" + payOrderParam.getPayType(), httpData);
currentTime = System.currentTimeMillis() - currentTime;
log.debug("调用 PHP 支付 -> time:" + (currentTime) + "毫秒");
PayResultVo payResultVo = JsonUtils.fromJson(returnData, PayResultVo.class);
// PayResultVo payResultVo = null;
// try {
// payResultVo = JsonUtils.fromJson("{\n" +
// " \"code\": \"20210618130049218267704668657P\",\n" +
// " \"order_code\": \"T7774750254320448484\",\n" +
// " \"status\": null,\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" +
// " \"returnUrl\": \"http://devm.zhengzai.tv/#/order/status?order_type=ticket&amp;order_id=77747502543208448\",\n" +
// " \"price\": 0.01,\n" +
// " \"pay_data\": {\n" +
// " \"packages\": null,\n" +
// " \"partnerid\": null,\n" +
// " \"prepayid\": null,\n" +
// " \"sign\": null,\n" +
// " \"mweb_url\": null,\n" +
// " \"paySign\": 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" +
// " \"order_str\": null,\n" +
// " \"appId\": null,\n" +
// " \"appid\": null,\n" +
// " \"nonceStr\": null,\n" +
// " \"noncestr\": null,\n" +
// " \"timeStamp\": null,\n" +
// " \"timestamp\": null,\n" +
// " \"package\": null\n" +
// " }\n" +
// " }", PayResultVo.class);
// } catch (Exception e) {
// payResultVo = new PayResultVo();
// }
payResultVo.setOrder_id(orderTicketId);
payResultVo.setPrice(orderTickets.getPriceActual());
orderTickets.setPayCode(payResultVo.getCode());
......
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 io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -8,12 +14,15 @@ import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
@Component
public class OrderUtils {
@Autowired
private DataUtils dataUtils;
@Autowired
private RedisUtil redisUtil;
public String judgeOrderLimit(
int type,
......@@ -32,11 +41,11 @@ public class OrderUtils {
) {
Integer[] integers;
if (103 == type) {
integers=roadShowOrderLimit(userId,idCard,performanceId,ticketId,performanceBuyCount,ticketBuyCount,isTrueName);
integers = roadShowOrderLimit(userId, idCard, performanceId, ticketId, performanceBuyCount, ticketBuyCount, isTrueName);
} 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(
......@@ -55,7 +64,7 @@ public class OrderUtils {
performanceBuyCount += dataUtils.getUserPBuyCount(userId, performanceId);
ticketBuyCount += dataUtils.getUserTBuyCount(userId, ticketId);
}
return new Integer[]{performanceBuyCount,ticketBuyCount};
return new Integer[]{performanceBuyCount, ticketBuyCount};
}
public Integer[] festivalOrderLimit(
......@@ -75,7 +84,7 @@ public class OrderUtils {
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) {
......@@ -97,4 +106,21 @@ public class OrderUtils {
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