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

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

票务 增加 入场人逻辑

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