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

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

票务 增加 入场人逻辑

parent 1d7e0f04
......@@ -43,6 +43,7 @@ public class KylinRedisConst {
public static final String ORDER_IMPORT_FAIL = "kylin:order:import:fail:";
public static final String ORDER_COUPON = "kylin:order:coupon:id:";
public static final String ADAM_ENTER_VO = "kylin:enter:";
// 收货地址
public static final String ORDER_REFUND_ADDRESS = "kylin:order:refund:address";
......
......@@ -46,6 +46,11 @@
<artifactId>liquidnet-common-sms</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-api-feign-adam</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- other -->
<dependency>
......
package com.liquidnet.service.order.service.impl;
import com.alibaba.fastjson.JSON;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.sms.constant.SmsEnum;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.dto.vo.AdamRscPolymer01Vo;
import com.liquidnet.service.base.*;
......@@ -169,31 +167,18 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
String timeEnd = ticketData.getTimeEnd(); // 购票停售时间
String timeExpressEnd = ticketData.getTimeEndExpress(); // 快递停售时间
//获取用户相关
String enterIds;
String addressId;
if (payOrderParam.getEnterIdList() == null || payOrderParam.getEnterIdList().size() == 0) {
enterIds = "";
} else {
enterIds = StringUtils.join(payOrderParam.getEnterIdList(), ",");
}
if (payOrderParam.getAddressId() == null) {
addressId = "";
} else {
addressId = payOrderParam.getAddressId();
}
AdamRscPolymer01Vo userVo = orderUtils.adamAddressEnterMember(uid, enterIds, addressId);
AdamRscPolymer01Vo userVo = orderUtils.adamAddressEnterMember(uid, null, null);
List<AdamEntersVo> entersVos;
AddressVo addressesVo = payOrderParam.getAddressesVo();
boolean isMember;
boolean isOldMember;
if (userVo == null) {
return ResponseDto.failure(ErrorMapping.get("20016"));//没抢到
// isMember = false;
// isOldMember = false;
// addressesVo = null;
// entersVos = new ArrayList();
} else {
entersVos = userVo.getEntersVos();
entersVos = orderUtils.getEnterList(payOrderParam.getEnterIdList(), uid);
if (entersVos.size() != payOrderParam.getEnterIdList().size()) {
return ResponseDto.failure(ErrorMapping.get("20016"));//没抢到
}
if (payOrderParam.getIsExpress() == 1) {
payOrderParam.setAdCode(addressesVo.getCountyId());
log.error("[快递地址异常]");
......@@ -289,17 +274,17 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
orderUtils.backAdvanceCoupon(payOrderParam.getAdvanceCode(), uid);
return ResponseDto.failure(ErrorMapping.get("20013"));//快递票不卖
}
if (payOrderParam.getIsExpress() == 1 && addressId.isEmpty()) {
if (payOrderParam.getIsExpress() == 1 && payOrderParam.getAddressesVo()==null) {
orderUtils.backAdvanceCoupon(payOrderParam.getAdvanceCode(), uid);
return ResponseDto.failure(ErrorMapping.get("20014"));//快递票未填写收货地址
}
}
//实名判断
if (isTrueName == 1 && enterIds.isEmpty()) {
if (isTrueName == 1 && entersVoList.size() == 0) {
orderUtils.backAdvanceCoupon(payOrderParam.getAdvanceCode(), uid);
return ResponseDto.failure(ErrorMapping.get("20015"));//需要实名 未实名
}
if (isTrueName == 1 && enterIds.split(",").length != payOrderParam.getNumber()) {
if (isTrueName == 1 && entersVoList.size() != payOrderParam.getNumber()) {
orderUtils.backAdvanceCoupon(payOrderParam.getAdvanceCode(), uid);
return ResponseDto.failure(ErrorMapping.get("20015"));//入场人数量错误
}
......
......@@ -3,6 +3,7 @@ package com.liquidnet.service.order.utils;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IPUtil;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
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;
......@@ -259,15 +260,29 @@ public class DataUtils {
// List<KylinIpAreaVo> data = mongoTemplate.find(Query.query(Criteria.where("ipBeginLong").lte(IPUtil.ipToLong(ipAddress))
// .and("ipEndLong").gte(IPUtil.ipToLong(ipAddress))), KylinIpAreaVo.class, KylinIpAreaVo.class.getSimpleName());
// if(data==null || data.size()==0){
KylinIpAreaVo data0 = KylinIpAreaVo.getNew();
data0.setArea("未知");
data0.setCity("未知");
data0.setCounty("未知");
data0.setProvince("未知");
return data0;
KylinIpAreaVo data0 = KylinIpAreaVo.getNew();
data0.setArea("未知");
data0.setCity("未知");
data0.setCounty("未知");
data0.setProvince("未知");
return data0;
// }else{
// return data.get(0);
// }
}
public void setEnterVo(AdamEntersVo vo) {
String redisKey = KylinRedisConst.ADAM_ENTER_VO.concat(vo.getEntersId());
Object obj = redisUtil.set(redisKey,vo,60*60*24*90);
}
public AdamEntersVo getEnterVo(String enterId) {
String redisKey = KylinRedisConst.ADAM_ENTER_VO.concat(enterId);
Object obj = redisUtil.get(redisKey);
if (obj == null) {
return null;
} else {
return (AdamEntersVo) obj;
}
}
}
......@@ -10,6 +10,7 @@ import com.liquidnet.service.adam.dto.vo.*;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.candy.param.BackCouponParam;
import com.liquidnet.service.candy.vo.CandyUseResultVo;
import com.liquidnet.service.feign.adam.api.FeignAdamBaseClient;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.returns.InnerReturnVo;
import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderListVo;
......@@ -39,6 +40,8 @@ public class OrderUtils {
private String stoneUrl;
@Value("${liquidnet.service.kylin.url}")
private String kylinUrl;
@Autowired
FeignAdamBaseClient adamBaseClient;
public String judgeOrderLimit(
int type,
......@@ -178,44 +181,28 @@ public class OrderUtils {
}
}
public AdamUserMemberVo isMember(String uid) {
MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString();
header.add("Accept", "application/json;charset=UTF-8");
String resultData = HttpUtil.get(adamUrl + "/adam/member/check/depth/new?uid=" + uid, null, header);
ResponseDto<AdamUserMemberVo> vo = JsonUtils.fromJson(resultData, new TypeReference<ResponseDto<AdamUserMemberVo>>() {
});
if (null != vo.getData() && vo.getData().isActive()) {
return vo.getData();
} else {
return null;
}
}
public AdamAddressesVo getAddress(String uid, String addressesId) {
MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString();
header.add("Accept", "application/json;charset=UTF-8");
String resultData = HttpUtil.get(adamUrl + "/adam/addr/query/depth?uid=" + uid + "&addrId=" + addressesId, null, header);
ResponseDto<AdamAddressesVo> vos = JsonUtils.fromJson(resultData, new TypeReference<ResponseDto<AdamAddressesVo>>() {
});
if (null != vos.getData()) {
return vos.getData();
} else {
return null;
public List<AdamEntersVo> getEnterList(List<String> enterIdList,String uid){
List<AdamEntersVo> list = ObjectUtil.cloneArrayListObject();
List<String> unExists = ObjectUtil.cloneLinkedListStr();
for (String enterId:enterIdList) {
AdamEntersVo entersVo = dataUtils.getEnterVo(enterId);
if(entersVo==null){
unExists.add(enterId);
}else{
list.add(entersVo);
}
}
}
public AdamEntersVo getEnters(String uid, String entersId) {
MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString();
header.add("Accept", "application/json;charset=UTF-8");
String resultData = HttpUtil.get(adamUrl + "/adam/enters/query/depth?uid=" + uid + "&entersId=" + entersId, null, header);
ResponseDto<AdamEntersVo> vos = JsonUtils.fromJson(resultData, new TypeReference<ResponseDto<AdamEntersVo>>() {
});
if (null != vos.getData()) {
return vos.getData();
} else {
return null;
try {
ResponseDto<List<AdamEntersVo>> res = adamBaseClient.querysEnters(unExists, uid);
List<AdamEntersVo> entersVoList = res.getData();
for (AdamEntersVo vo : entersVoList) {
dataUtils.setEnterVo(vo);
list.add(vo);
}
}catch (Exception e){
e.printStackTrace();
}
return list;
}
/**
......
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