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

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

票务 增加 入场人逻辑

parent 976e6318
......@@ -16,7 +16,7 @@ public class AddressVo {
@ApiModelProperty(value = "收货人姓名")
private String name;
@ApiModelProperty(value = "代理id")
private String Province;
private String province;
@ApiModelProperty(value = "省份行政编码")
private String county;
@ApiModelProperty(value = "城市")
......
......@@ -44,6 +44,8 @@ public class KylinRedisConst {
public static final String ORDER_COUPON = "kylin:order:coupon:id:";
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";
......
......@@ -27,6 +27,11 @@
<artifactId>liquidnet-service-adam-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-api-feign-adam</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<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 {
.concat(performancesId);
redisUtil.set(redisKey, 1);
}
public Integer getSubscribe(String uid, String performancesId) {
String redisKey = KylinRedisConst.REDIS_KEY_KYLIN_PERFORM_SUBSCRIBE
.concat(uid)
......@@ -888,4 +889,17 @@ public class DataUtils {
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 {
preParam.setOrderIdList("");
try {
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;
if (userVo == null) {
if (noZhengzaiOrder(uid)) {
throw new Exception("库存不足");
AddressVo addressesVo = null;
if (noZhengzaiOrder(uid)) {
addressesVo = param.getAddressesVo();
if (orderUtils.getMember(uid) != null) {
isMember = true;
} else {
isMember = false;
addressesVo = null;
}
} else {
switch (userVo.getMembership()) {
case 10:
case 11:
isMember = true;
break;
default:
isMember = false;
break;
}
isMember = false;
}
for (GoblinOrderStoreParam storeParam : goblinOrderStoreParamList) {//商铺维度循环
String orderId = IDGenerator.nextSnowId();
......@@ -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.order_insert"));
sqls.add(SqlMapping.get("goblin.order.create.attr_insert"));
List<String> goblinOrderSkuIdList = CollectionUtil.linkedListString();
LinkedList<Object[]> sqlDataSku = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> sqlDataOrder = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> sqlDataAttr = CollectionUtil.linkedListObjectArr();
......@@ -529,6 +507,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
long time3 = System.currentTimeMillis();
for (GoblinOrderSqlParam item : sqlParams) {
long time2 = System.currentTimeMillis();
List<String> goblinOrderSkuIdList = CollectionUtil.linkedListString();
for (GoblinOrderSku orderSku : item.getOrderSkuList()) {
sqlDataSku.add(new Object[]{
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
String timeEnd = ticketData.getTimeEnd(); // 购票停售时间
String timeExpressEnd = ticketData.getTimeEndExpress(); // 快递停售时间
//获取用户相关
AdamRscPolymer01Vo userVo = orderUtils.adamAddressEnterMember(uid, null, null);
// 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"));//没抢到
} else {
boolean isMember;
Integer result = orderUtils.getMember(uid);
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);
if (entersVos.size() != payOrderParam.getEnterIdList().size()) {
return ResponseDto.failure(ErrorMapping.get("20016"));//没抢到
......@@ -183,21 +195,21 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
payOrderParam.setAdCode(addressesVo.getCountyId());
log.error("[快递地址异常]");
}
switch (userVo.getMembership()) {
case 10:
isMember = true;
isOldMember = true;
break;
case 11:
isMember = true;
isOldMember = false;
break;
default:
isMember = false;
isOldMember = false;
break;
}
}
// switch (userVo.getMembership()) {
// case 10:
// isMember = true;
// isOldMember = true;
// break;
// case 11:
// isMember = true;
// isOldMember = false;
// break;
// default:
// isMember = false;
// isOldMember = false;
// break;
// }
// }
int memberType; //会员状态 不需要判断会员 1判断会员逻辑 2会员专属
if (ticketData.getIsExclusive() == 1) {
......
......@@ -273,7 +273,7 @@ public class DataUtils {
public void setEnterVo(AdamEntersVo vo) {
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) {
......@@ -285,4 +285,16 @@ public class DataUtils {
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 {
return false;
}
}
public Integer getMember(String uid) {
return redisUtils.getMember(uid);
}
}
......@@ -13,6 +13,7 @@ import com.liquidnet.service.goblin.dto.vo.*;
import com.liquidnet.service.goblin.entity.GoblinFrontBanner;
import com.liquidnet.service.goblin.entity.GoblinFrontHotWord;
import com.liquidnet.service.goblin.entity.GoblinFrontNavigation;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
......@@ -400,4 +401,16 @@ public class GoblinRedisUtils {
public boolean setUserCouponVos(String uid, List<GoblinUserCouponVo> 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 {
}
}
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<String> unExists = ObjectUtil.cloneLinkedListStr();
for (String enterId:enterIdList) {
for (String enterId : enterIdList) {
AdamEntersVo entersVo = dataUtils.getEnterVo(enterId);
if(entersVo==null){
if (entersVo == null) {
unExists.add(enterId);
}else{
list.add(entersVo);
} else {
if (entersVo.getUid().equals(uid)) {
list.add(entersVo);
}
}
}
try {
......@@ -199,7 +205,7 @@ public class OrderUtils {
dataUtils.setEnterVo(vo);
list.add(vo);
}
}catch (Exception e){
} catch (Exception e) {
e.printStackTrace();
}
return list;
......
......@@ -102,7 +102,7 @@ public class DMCheckGoblinOrderTimeImpl extends ServiceImpl<GoblinStoreOrderMapp
orderVo.getStatus(), now, now, "超时关闭", orderVo.getOrderId(), now, now
});
//执行sql
queueUtils.sendMsgByGoblinRedis(MQConst.KylinQueue.SQL_ORDER_CLOSE.getKey(),
queueUtils.sendMsgByGoblinRedis(MQConst.GoblinQueue.GOBLIN_ORDER_CLOSE.getKey(),
SqlMapping.gets(sqls, sqlDataOrder, sqlDataSku));
} else if (orderVo.getStatus() == GoblinStatusConst.Status.ORDER_STATUS_5.getValue() || orderVo.getStatus() == GoblinStatusConst.Status.ORDER_STATUS_2.getValue()) {
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