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

Commit 6a55c3f8 authored by 胡佳晨's avatar 胡佳晨

票务 增加 入场人逻辑

parent 976e6318
...@@ -16,7 +16,7 @@ public class AddressVo { ...@@ -16,7 +16,7 @@ public class AddressVo {
@ApiModelProperty(value = "收货人姓名") @ApiModelProperty(value = "收货人姓名")
private String name; private String name;
@ApiModelProperty(value = "代理id") @ApiModelProperty(value = "代理id")
private String Province; private String province;
@ApiModelProperty(value = "省份行政编码") @ApiModelProperty(value = "省份行政编码")
private String county; private String county;
@ApiModelProperty(value = "城市") @ApiModelProperty(value = "城市")
......
...@@ -44,6 +44,8 @@ public class KylinRedisConst { ...@@ -44,6 +44,8 @@ public class KylinRedisConst {
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 ADAM_ENTER_VO = "kylin:enter:";
public static final String ADAM_IS_MEMBER = "kylin:member:uid:";
// 收货地址 // 收货地址
public static final String ORDER_REFUND_ADDRESS = "kylin:order:refund:address"; public static final String ORDER_REFUND_ADDRESS = "kylin:order:refund:address";
......
...@@ -27,6 +27,11 @@ ...@@ -27,6 +27,11 @@
<artifactId>liquidnet-service-adam-api</artifactId> <artifactId>liquidnet-service-adam-api</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>
</dependencies> </dependencies>
<build> <build>
......
package com.liquidnet.service.kylin.controller;
import ch.qos.logback.core.util.Duration;
import com.liquidnet.service.adam.dto.vo.AdamMemberVo;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.feign.adam.api.FeignAdamBaseClient;
import com.liquidnet.service.kylin.entity.KylinBanners;
import com.liquidnet.service.kylin.utils.DataUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
@Api(tags = "内部接口")
@RestController
@RequestMapping("inner")
@Slf4j
public class InnerController {
@Autowired
DataUtils dataUtils;
@Autowired
FeignAdamBaseClient adamBaseClient;
@GetMapping("save/member")
@ApiOperation("获取会员相关数据")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "uid", value = "会员id"),
})
public void saveMember(@RequestParam("uid") String uid) {
try {
ResponseDto<AdamUserMemberVo> memberVo = adamBaseClient.queryMember(uid);
AdamUserMemberVo userMemberVo = memberVo.getData();
if (userMemberVo.getState() == 1) {
long second = ChronoUnit.SECONDS.between(LocalDateTime.now(), userMemberVo.getExpiryAt());
if (userMemberVo.isOldMember()) {
dataUtils.saveMember(uid, 2, second);
} else {
dataUtils.saveMember(uid, 1, second);
}
} else {
dataUtils.delMember(uid);
}
} catch (Exception e) {
log.error("会员信息error", e);
}
}
}
...@@ -876,6 +876,7 @@ public class DataUtils { ...@@ -876,6 +876,7 @@ public class DataUtils {
.concat(performancesId); .concat(performancesId);
redisUtil.set(redisKey, 1); redisUtil.set(redisKey, 1);
} }
public Integer getSubscribe(String uid, String performancesId) { public Integer getSubscribe(String uid, String performancesId) {
String redisKey = KylinRedisConst.REDIS_KEY_KYLIN_PERFORM_SUBSCRIBE String redisKey = KylinRedisConst.REDIS_KEY_KYLIN_PERFORM_SUBSCRIBE
.concat(uid) .concat(uid)
...@@ -888,4 +889,17 @@ public class DataUtils { ...@@ -888,4 +889,17 @@ public class DataUtils {
return (Integer) obj; return (Integer) obj;
} }
} }
//保存会员信息
public void saveMember(String uid, Integer value, long time) {
String redisKey = KylinRedisConst.ADAM_IS_MEMBER
.concat(uid);
redisUtil.set(redisKey, value, time);
}
public void delMember(String uid) {
String redisKey = KylinRedisConst.ADAM_IS_MEMBER
.concat(uid);
redisUtil.del(redisKey);
}
} }
...@@ -87,38 +87,17 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -87,38 +87,17 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
preParam.setOrderIdList(""); preParam.setOrderIdList("");
try { try {
List<GoblinOrderStoreParam> goblinOrderStoreParamList = param.getGoblinOrderStoreParamList();//分订单 List<GoblinOrderStoreParam> goblinOrderStoreParamList = param.getGoblinOrderStoreParamList();//分订单
//获取用户相关
String addressId;
if (param.getAddressIds() == null || param.getAddressIds().size() == 0) {
addressId = "";
} else {
addressId = StringUtils.join(param.getAddressIds(), ",");
}
AdamRscPolymer01Vo userVo = null;
if (noZhengzaiOrder(uid)) {
long time1 = System.currentTimeMillis();
userVo = orderUtils.adamAddressEnterMember(uid, null, addressId);
log.info("adam接口调用:" + (System.currentTimeMillis() - time1) + "秒");
}
AddressVo addressesVo = param.getAddressesVo();
boolean isMember; boolean isMember;
if (userVo == null) { AddressVo addressesVo = null;
if (noZhengzaiOrder(uid)) { if (noZhengzaiOrder(uid)) {
throw new Exception("库存不足"); addressesVo = param.getAddressesVo();
if (orderUtils.getMember(uid) != null) {
isMember = true;
} else { } else {
isMember = false; isMember = false;
addressesVo = null;
} }
} else { } else {
switch (userVo.getMembership()) { isMember = false;
case 10:
case 11:
isMember = true;
break;
default:
isMember = false;
break;
}
} }
for (GoblinOrderStoreParam storeParam : goblinOrderStoreParamList) {//商铺维度循环 for (GoblinOrderStoreParam storeParam : goblinOrderStoreParamList) {//商铺维度循环
String orderId = IDGenerator.nextSnowId(); String orderId = IDGenerator.nextSnowId();
...@@ -520,7 +499,6 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -520,7 +499,6 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
sqls.add(SqlMapping.get("goblin.order.create.sku_insert")); sqls.add(SqlMapping.get("goblin.order.create.sku_insert"));
sqls.add(SqlMapping.get("goblin.order.create.order_insert")); sqls.add(SqlMapping.get("goblin.order.create.order_insert"));
sqls.add(SqlMapping.get("goblin.order.create.attr_insert")); sqls.add(SqlMapping.get("goblin.order.create.attr_insert"));
List<String> goblinOrderSkuIdList = CollectionUtil.linkedListString();
LinkedList<Object[]> sqlDataSku = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> sqlDataSku = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> sqlDataOrder = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> sqlDataOrder = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> sqlDataAttr = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> sqlDataAttr = CollectionUtil.linkedListObjectArr();
...@@ -529,6 +507,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -529,6 +507,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
long time3 = System.currentTimeMillis(); long time3 = System.currentTimeMillis();
for (GoblinOrderSqlParam item : sqlParams) { for (GoblinOrderSqlParam item : sqlParams) {
long time2 = System.currentTimeMillis(); long time2 = System.currentTimeMillis();
List<String> goblinOrderSkuIdList = CollectionUtil.linkedListString();
for (GoblinOrderSku orderSku : item.getOrderSkuList()) { for (GoblinOrderSku orderSku : item.getOrderSkuList()) {
sqlDataSku.add(new Object[]{ sqlDataSku.add(new Object[]{
orderSku.getOrderSkuId(), orderSku.getOrderId(), orderSku.getSpuId(), orderSku.getSpuName(), orderSku.getSpuPic(), orderSku.getSkuId(), orderSku.getNum(), orderSku.getSkuPrice(), orderSku.getSkuPriceActual(), orderSku.getSkuName(), orderSku.getOrderSkuId(), orderSku.getOrderId(), orderSku.getSpuId(), orderSku.getSpuName(), orderSku.getSpuPic(), orderSku.getSkuId(), orderSku.getNum(), orderSku.getSkuPrice(), orderSku.getSkuPriceActual(), orderSku.getSkuName(),
......
...@@ -167,14 +167,26 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -167,14 +167,26 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
String timeEnd = ticketData.getTimeEnd(); // 购票停售时间 String timeEnd = ticketData.getTimeEnd(); // 购票停售时间
String timeExpressEnd = ticketData.getTimeEndExpress(); // 快递停售时间 String timeExpressEnd = ticketData.getTimeEndExpress(); // 快递停售时间
//获取用户相关 //获取用户相关
AdamRscPolymer01Vo userVo = orderUtils.adamAddressEnterMember(uid, null, null); // AdamRscPolymer01Vo userVo = orderUtils.adamAddressEnterMember(uid, null, null);
List<AdamEntersVo> entersVos; List<AdamEntersVo> entersVos;
AddressVo addressesVo = payOrderParam.getAddressesVo(); AddressVo addressesVo = payOrderParam.getAddressesVo();
boolean isMember;
boolean isOldMember; boolean isOldMember;
if (userVo == null) { boolean isMember;
return ResponseDto.failure(ErrorMapping.get("20016"));//没抢到 Integer result = orderUtils.getMember(uid);
} else { if(result.equals(1)){
isMember = true;
isOldMember = false;
}else if(result.equals(2)){
isMember = true;
isOldMember = true;
}else{
isMember = false;
isOldMember = false;
}
// if (userVo == null) {
// return ResponseDto.failure(ErrorMapping.get("20016"));//没抢到
// } else {
entersVos = orderUtils.getEnterList(payOrderParam.getEnterIdList(), uid); entersVos = orderUtils.getEnterList(payOrderParam.getEnterIdList(), uid);
if (entersVos.size() != payOrderParam.getEnterIdList().size()) { if (entersVos.size() != payOrderParam.getEnterIdList().size()) {
return ResponseDto.failure(ErrorMapping.get("20016"));//没抢到 return ResponseDto.failure(ErrorMapping.get("20016"));//没抢到
...@@ -183,21 +195,21 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -183,21 +195,21 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
payOrderParam.setAdCode(addressesVo.getCountyId()); payOrderParam.setAdCode(addressesVo.getCountyId());
log.error("[快递地址异常]"); log.error("[快递地址异常]");
} }
switch (userVo.getMembership()) { // switch (userVo.getMembership()) {
case 10: // case 10:
isMember = true; // isMember = true;
isOldMember = true; // isOldMember = true;
break; // break;
case 11: // case 11:
isMember = true; // isMember = true;
isOldMember = false; // isOldMember = false;
break; // break;
default: // default:
isMember = false; // isMember = false;
isOldMember = false; // isOldMember = false;
break; // break;
} // }
} // }
int memberType; //会员状态 不需要判断会员 1判断会员逻辑 2会员专属 int memberType; //会员状态 不需要判断会员 1判断会员逻辑 2会员专属
if (ticketData.getIsExclusive() == 1) { if (ticketData.getIsExclusive() == 1) {
......
...@@ -273,7 +273,7 @@ public class DataUtils { ...@@ -273,7 +273,7 @@ public class DataUtils {
public void setEnterVo(AdamEntersVo vo) { public void setEnterVo(AdamEntersVo vo) {
String redisKey = KylinRedisConst.ADAM_ENTER_VO.concat(vo.getEntersId()); String redisKey = KylinRedisConst.ADAM_ENTER_VO.concat(vo.getEntersId());
Object obj = redisUtil.set(redisKey,vo,60*60*24*90); Object obj = redisUtil.set(redisKey, vo, 60 * 60 * 24 * 90);
} }
public AdamEntersVo getEnterVo(String enterId) { public AdamEntersVo getEnterVo(String enterId) {
...@@ -285,4 +285,16 @@ public class DataUtils { ...@@ -285,4 +285,16 @@ public class DataUtils {
return (AdamEntersVo) obj; return (AdamEntersVo) obj;
} }
} }
// 1普通会员 2老会员
public Integer getMember(String uid) {
String redisKey = KylinRedisConst.ADAM_IS_MEMBER
.concat(uid);
Object obj = redisUtil.get(redisKey);
if(obj==null){
return null;
}else{
return (Integer) obj;
}
}
} }
...@@ -305,4 +305,8 @@ public class GoblinOrderUtils { ...@@ -305,4 +305,8 @@ public class GoblinOrderUtils {
return false; return false;
} }
} }
public Integer getMember(String uid) {
return redisUtils.getMember(uid);
}
} }
...@@ -13,6 +13,7 @@ import com.liquidnet.service.goblin.dto.vo.*; ...@@ -13,6 +13,7 @@ import com.liquidnet.service.goblin.dto.vo.*;
import com.liquidnet.service.goblin.entity.GoblinFrontBanner; import com.liquidnet.service.goblin.entity.GoblinFrontBanner;
import com.liquidnet.service.goblin.entity.GoblinFrontHotWord; import com.liquidnet.service.goblin.entity.GoblinFrontHotWord;
import com.liquidnet.service.goblin.entity.GoblinFrontNavigation; import com.liquidnet.service.goblin.entity.GoblinFrontNavigation;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
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 org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
...@@ -400,4 +401,16 @@ public class GoblinRedisUtils { ...@@ -400,4 +401,16 @@ public class GoblinRedisUtils {
public boolean setUserCouponVos(String uid, List<GoblinUserCouponVo> vos) { public boolean setUserCouponVos(String uid, List<GoblinUserCouponVo> vos) {
return redisUtil.set(GoblinRedisConst.USER_COUPON.concat(uid), JsonUtils.toJson(vos)); return redisUtil.set(GoblinRedisConst.USER_COUPON.concat(uid), JsonUtils.toJson(vos));
} }
// 1普通会员 2老会员
public Integer getMember(String uid) {
String redisKey = KylinRedisConst.ADAM_IS_MEMBER
.concat(uid);
Object obj = redisUtil.get(redisKey);
if(obj==null){
return null;
}else{
return (Integer) obj;
}
}
} }
...@@ -181,15 +181,21 @@ public class OrderUtils { ...@@ -181,15 +181,21 @@ public class OrderUtils {
} }
} }
public List<AdamEntersVo> getEnterList(List<String> enterIdList,String uid){ public Integer getMember(String uid) {
return dataUtils.getMember(uid);
}
public List<AdamEntersVo> getEnterList(List<String> enterIdList, String uid) {
List<AdamEntersVo> list = ObjectUtil.cloneArrayListObject(); List<AdamEntersVo> list = ObjectUtil.cloneArrayListObject();
List<String> unExists = ObjectUtil.cloneLinkedListStr(); List<String> unExists = ObjectUtil.cloneLinkedListStr();
for (String enterId:enterIdList) { for (String enterId : enterIdList) {
AdamEntersVo entersVo = dataUtils.getEnterVo(enterId); AdamEntersVo entersVo = dataUtils.getEnterVo(enterId);
if(entersVo==null){ if (entersVo == null) {
unExists.add(enterId); unExists.add(enterId);
}else{ } else {
list.add(entersVo); if (entersVo.getUid().equals(uid)) {
list.add(entersVo);
}
} }
} }
try { try {
...@@ -199,7 +205,7 @@ public class OrderUtils { ...@@ -199,7 +205,7 @@ public class OrderUtils {
dataUtils.setEnterVo(vo); dataUtils.setEnterVo(vo);
list.add(vo); list.add(vo);
} }
}catch (Exception e){ } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
return list; return list;
......
...@@ -102,7 +102,7 @@ public class DMCheckGoblinOrderTimeImpl extends ServiceImpl<GoblinStoreOrderMapp ...@@ -102,7 +102,7 @@ public class DMCheckGoblinOrderTimeImpl extends ServiceImpl<GoblinStoreOrderMapp
orderVo.getStatus(), now, now, "超时关闭", orderVo.getOrderId(), now, now orderVo.getStatus(), now, now, "超时关闭", orderVo.getOrderId(), now, now
}); });
//执行sql //执行sql
queueUtils.sendMsgByGoblinRedis(MQConst.KylinQueue.SQL_ORDER_CLOSE.getKey(), queueUtils.sendMsgByGoblinRedis(MQConst.GoblinQueue.GOBLIN_ORDER_CLOSE.getKey(),
SqlMapping.gets(sqls, sqlDataOrder, sqlDataSku)); SqlMapping.gets(sqls, sqlDataOrder, sqlDataSku));
} else if (orderVo.getStatus() == GoblinStatusConst.Status.ORDER_STATUS_5.getValue() || orderVo.getStatus() == GoblinStatusConst.Status.ORDER_STATUS_2.getValue()) { } else if (orderVo.getStatus() == GoblinStatusConst.Status.ORDER_STATUS_5.getValue() || orderVo.getStatus() == GoblinStatusConst.Status.ORDER_STATUS_2.getValue()) {
goblinRedisUtils.removeGoblinOrder(i + "", orderVo.getOrderId()); goblinRedisUtils.removeGoblinOrder(i + "", orderVo.getOrderId());
......
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