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

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

Merge branch 'hjc_road_coupon' into dev_bd_rm_consumer_od

# Conflicts:
#	liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/service/IKylinPerformancesService.java
#	liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/utils/DataUtils.java
#	liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/utils/ObjectUtil.java
parents fbad7776 da9de73d
......@@ -96,4 +96,10 @@ public class KylinRedisConst {
public static final String ACTIVE_TICKET_AR_TICKET = "kylin:active:ar:ticket:";//互动券
public static final String ACTIVE_TICKET_AR_USER = "kylin:active:ar:user:";//互动券 绑定的用户
/**
* 巡演券
* eg:{kylin:c_rs:${couponId}, List<巡演ID>}
*/
public static final String COUPON_ROADSHOWS = "kylin:c_rs:";
}
package com.liquidnet.service.kylin.dto.param;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@ApiModel
@Data
public class KylinCandyParam implements Serializable, Cloneable {
@ApiModelProperty(value = "券id集合")
private List<String> couponList;
@ApiModelProperty(value = "巡演id")
private String roadShowId;
private static final KylinCandyParam obj = new KylinCandyParam();
public static KylinCandyParam getNew() {
try {
return (KylinCandyParam) obj.clone();
} catch (CloneNotSupportedException e) {
return new KylinCandyParam();
}
}
}
package com.liquidnet.service.kylin.dto.vo.mongo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@ApiModel
@Data
public class KylinCandyVo implements Serializable, Cloneable {
@ApiModelProperty(value = "券id")
private String couponId;
@ApiModelProperty(value = "巡演id")
private String roadShowId;
private static final KylinCandyVo obj = new KylinCandyVo();
public static KylinCandyVo getNew() {
try {
return (KylinCandyVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new KylinCandyVo();
}
}
}
package com.liquidnet.service.kylin.service;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinCandyVo;
import java.util.List;
/**
* <p>
......@@ -25,4 +28,5 @@ public interface IKylinPerformancesService {
ResponseDto<Integer> isSubscribe(String performancesId);
ResponseDto<List<KylinCandyVo>> kylinCandy(List<String> data, String roadShowId);
}
......@@ -4,6 +4,8 @@ package com.liquidnet.service.kylin.controller;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.param.KylinCandyParam;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinCandyVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.kylin.dto.vo.returns.PayDetailVo;
import com.liquidnet.service.kylin.service.IKylinLackRegistersService;
......@@ -264,4 +266,10 @@ public class KylinPerformancesController {
return iKylinPerformancesService.getPerformanceIdByInfo(useScope, busiId);
}
@PostMapping("kylinCandy")
@ApiOperation("根据券id集合获取数据")
public ResponseDto<List<KylinCandyVo>> kylinCandy(@RequestBody KylinCandyParam param) {
return iKylinPerformancesService.kylinCandy(param.getCouponList(), param.getRoadShowId());
}
}
......@@ -13,6 +13,7 @@ import com.liquidnet.service.kylin.constant.KylinPerformanceStatusEnum;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
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.mongo.KylinCandyVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketExpressModuleVo;
import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketPartnerVo;
......@@ -787,4 +788,20 @@ public class KylinPerformancesServiceImpl implements IKylinPerformancesService {
Integer subscribe = dataUtils.getSubscribe(uid, performancesId);
return ResponseDto.success(subscribe);
}
@Override
public ResponseDto<List<KylinCandyVo>> kylinCandy(List<String> data, String roadShowId) {
List<KylinCandyVo> voList = ObjectUtil.kylinCandyVos();
for (String couponId : data) {
List<String> roadShowIds = dataUtils.getCouponRoad(couponId);
if (roadShowIds.size() == 0 || roadShowIds.contains(roadShowId)) {
KylinCandyVo vo = KylinCandyVo.getNew();
vo.setCouponId(couponId);
vo.setRoadShowId(roadShowIds.contains(roadShowId) ? roadShowId : "");
voList.add(vo);
}
}
return ResponseDto.success(voList);
}
}
......@@ -1300,13 +1300,11 @@ public class DataUtils {
String rdk = KylinRedisConst.REDIS_WQ_ORDER_FIX.concat(orderId);
redisUtil.del(rdk, orderId);
}
// 万青补偿vo覆盖
public void setWqOrderVo(WqTempVo vo) {
String rdk = KylinRedisConst.REDIS_WQ_ORDER_EXPRESS.concat(vo.getOrderId());
redisUtil.set(rdk, vo);
}
// 万青补偿vo获取
public WqTempVo getWqOrderVo(String orderId) {
String rdk = KylinRedisConst.REDIS_WQ_ORDER_EXPRESS.concat(orderId);
......@@ -1340,7 +1338,18 @@ public class DataUtils {
//设置用户状态。
public void setUser(String userId, String value) {
redisUtil.set(KylinRedisConst.ACTIVE_TICKET_AR_USER + userId, value);
}
//根据 券id 获取 可用巡演id数组
public List<String> getCouponRoad(String couponId) {
String rdk = KylinRedisConst.COUPON_ROADSHOWS.concat(couponId);
Object obj = redisUtil.get(rdk);
if (obj == null) {
return CollectionUtil.arrayListString();
} else {
return (List<String>) obj;
}
}
/**
......
......@@ -7,6 +7,7 @@ import com.liquidnet.service.kylin.dto.vo.KylinApiCameraDevicesVo;
import com.liquidnet.service.kylin.dto.vo.admin.OrderRefundPoundage;
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.mongo.KylinCandyVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.kylin.dto.vo.returns.*;
import com.liquidnet.service.kylin.entity.KylinBanners;
......@@ -33,6 +34,7 @@ public class ObjectUtil {
private static final ArrayList<OrderRefundPoundage> orderRefundPoundageArrayList = new ArrayList<>();
private static final ArrayList<KylinOrderCoupons> kylinOrderCouponsArrayList = new ArrayList<>();
private static final ArrayList<KylinApiCameraDevicesVo> kylinApiCameraDevicesVoArrayList = new ArrayList<>();
private static final ArrayList<KylinCandyVo> kylinCandyVos = new ArrayList<>();
/*正在热卖*/
private static final ArrayList<GoblinListCollectVo> goblinListCollectVo = new ArrayList<>();
......@@ -41,6 +43,9 @@ public class ObjectUtil {
private static final ArrayList<GoblinMixDetailsVo> goblinMixDetailsVoArrayList = new ArrayList<>();
private static final ArrayList<GoblinGoodsSkuInfoVo> goblinGoodsSkuInfoVoArrayList = new ArrayList<>();
public static ArrayList<KylinCandyVo> kylinCandyVos() {
return (ArrayList<KylinCandyVo>) kylinCandyVos.clone();
}
public static ArrayList<KylinStationPerformanceVo> getKylinStationPerformanceVoArrayList() {
return (ArrayList<KylinStationPerformanceVo>) kylinStationPerformanceVoArrayList.clone();
......
......@@ -253,6 +253,10 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
return ResponseDto.failure("优先券不可用");
}
Integer typeVoucher = (Integer) advanceMap.get("type");
// String couponId = (String) advanceMap.get("couponId");
// if (typeVoucher.equals(-1) || orderUtils.judgeRoadShowCanUse(couponId, performanceData.getRoadShowId())) {
// return ResponseDto.failure("优先券不可用");
// }
if (typeVoucher.equals(-1)) {
return ResponseDto.failure("优先券不可用");
}
......
package com.liquidnet.service.order.utils;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IPUtil;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
......@@ -326,4 +327,15 @@ public class DataUtils {
return (String) obj;
}
}
//根据 券id 获取 可用巡演id数组
public List<String> getCouponRoad(String couponId) {
String rdk = KylinRedisConst.COUPON_ROADSHOWS.concat(couponId);
Object obj = redisUtil.get(rdk);
if (obj == null) {
return CollectionUtil.arrayListString();
} else {
return (List<String>) obj;
}
}
}
......@@ -15,6 +15,7 @@ import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dao.KylinFreightChargeDao;
import com.liquidnet.service.kylin.dto.vo.KylinAgentVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinCandyVo;
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;
......@@ -238,6 +239,7 @@ public class OrderUtils {
});
CandyUseResultVo candyUseResultVo = innerReturnVo.getData();
Integer type = candyUseResultVo.getCouType();
String couponId = candyUseResultVo.getCouponId();
BigDecimal value = candyUseResultVo.getValue();
BigDecimal voucher = BigDecimal.ZERO;
switch (type) {
......@@ -260,6 +262,7 @@ public class OrderUtils {
voucher = BigDecimal.ZERO;
break;
}
hashMap.put("couponId", couponId);
hashMap.put("type", type);
hashMap.put("voucher", voucher.setScale(2, BigDecimal.ROUND_HALF_UP));
return hashMap;
......@@ -272,6 +275,15 @@ public class OrderUtils {
}
}
//判断是不是适用于巡演
public boolean judgeRoadShowCanUse(String couponId, String roadShowId) {
List<String> roadShowIds = dataUtils.getCouponRoad(couponId);
if (roadShowIds.size() == 0 || roadShowIds.contains(roadShowId)) {
return true;
}
return false;
}
public void backAdvanceCoupon(String advanceCode, String uid) {
if (advanceCode != null) {
backCoupon(advanceCode, uid);
......
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