Commit 6681f016 by huiyang.chen

积分抵扣

parent a9fb1c79
...@@ -25,6 +25,7 @@ import cn.freemud.entities.dto.promotion.ShoppingCartGoodsResponse; ...@@ -25,6 +25,7 @@ import cn.freemud.entities.dto.promotion.ShoppingCartGoodsResponse;
import cn.freemud.entities.dto.shoppingCart.ActivityDiscountsDto; import cn.freemud.entities.dto.shoppingCart.ActivityDiscountsDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto; import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.*; import cn.freemud.entities.vo.*;
import cn.freemud.entities.vo.encircle.CreateReserveOrderVo;
import cn.freemud.entities.vo.encircle.PreviewOrderInfoVo; import cn.freemud.entities.vo.encircle.PreviewOrderInfoVo;
import cn.freemud.enums.ActivityTypeEnum; import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.enums.*; import cn.freemud.enums.*;
...@@ -2436,7 +2437,7 @@ public class OrderAdapter { ...@@ -2436,7 +2437,7 @@ public class OrderAdapter {
* @return * @return
*/ */
public AssortmentSdkUpdateOrderProductInfoRequest conventShoppingPromotionInfo(ShoppingCartGoodsResponse shoppingCartGoodsResponse, QueryOrderByIdResponse queryOrderByIdResponse, public AssortmentSdkUpdateOrderProductInfoRequest conventShoppingPromotionInfo(ShoppingCartGoodsResponse shoppingCartGoodsResponse, QueryOrderByIdResponse queryOrderByIdResponse,
AssortmentCustomerInfoVo assortmentCustomerInfoVo, boolean isUpdateAccounts) { AssortmentCustomerInfoVo assortmentCustomerInfoVo, boolean isUpdateAccounts,CreateReserveOrderVo createReserveOrderVo) {
AssortmentSdkUpdateOrderProductInfoRequest sdkUpdateOrderProductInfoRequest = new AssortmentSdkUpdateOrderProductInfoRequest(); AssortmentSdkUpdateOrderProductInfoRequest sdkUpdateOrderProductInfoRequest = new AssortmentSdkUpdateOrderProductInfoRequest();
sdkUpdateOrderProductInfoRequest.setStoreId(queryOrderByIdResponse.getData().getShopId()); sdkUpdateOrderProductInfoRequest.setStoreId(queryOrderByIdResponse.getData().getShopId());
sdkUpdateOrderProductInfoRequest.setPartnerId(queryOrderByIdResponse.getData().getCompanyId()); sdkUpdateOrderProductInfoRequest.setPartnerId(queryOrderByIdResponse.getData().getCompanyId());
...@@ -2500,20 +2501,20 @@ public class OrderAdapter { ...@@ -2500,20 +2501,20 @@ public class OrderAdapter {
.build(); .build();
sdkUpdateOrderProductInfoRequest.getAccounts().add(createOrderAccountDto); sdkUpdateOrderProductInfoRequest.getAccounts().add(createOrderAccountDto);
} }
//
//
// Long scoreReduceAmount = shoppingCartGoodsResponse.getScoreReduceAmount() != null ? shoppingCartGoodsResponse.getScoreReduceAmount() : 0; Long scoreReduceAmount = shoppingCartGoodsResponse.getScoreReduceAmount() != null ? shoppingCartGoodsResponse.getScoreReduceAmount() : 0;
// if (scoreReduceAmount > 0 && CustomerScoreConstant.SUBSTRACT.getValue().equals(createOrderVo.getUseCustomerScore())) { if (scoreReduceAmount > 0 && CustomerScoreConstant.SUBSTRACT.getValue().equals(createReserveOrderVo.getUseCustomerScore())) {
// Integer reduceScore = shoppingCartGoodsResponse.getReduceScore() != null ? shoppingCartGoodsResponse.getReduceScore().intValue() : 0; Integer reduceScore = shoppingCartGoodsResponse.getReduceScore() != null ? shoppingCartGoodsResponse.getReduceScore().intValue() : 0;
// CreateOrderAccountRequest createOrderAccountDto = CreateOrderAccountRequest.builder() CreateOrderAccountRequest createOrderAccountDto = CreateOrderAccountRequest.builder()
// .accountId("") .accountId("")
// .name("积分扣减") .name("积分扣减")
// .price(0 - scoreReduceAmount) .price(0 - scoreReduceAmount)
// .accountType(getQueryOrderAccountType(OldOrderAccountType.getByCode(OrderAccountType.CUSTOMER_SUB.getCode()))) .accountType(getQueryOrderAccountType(OldOrderAccountType.getByCode(OrderAccountType.CUSTOMER_SUB.getCode())))
// .sequence(orderAccountIndex++) .sequence(orderAccountIndex++)
// .build(); .build();
// sdkUpdateOrderProductInfoRequest.getAccounts().add(createOrderAccountDto); sdkUpdateOrderProductInfoRequest.getAccounts().add(createOrderAccountDto);
// } }
// Long cardOriginalAmount = shoppingCartGoodsDto.getCardOriginalAmount() != null ? shoppingCartGoodsDto.getCardOriginalAmount() : 0L; // Long cardOriginalAmount = shoppingCartGoodsDto.getCardOriginalAmount() != null ? shoppingCartGoodsDto.getCardOriginalAmount() : 0L;
// if (cardOriginalAmount > 0) { // if (cardOriginalAmount > 0) {
// CreateOrderAccountRequest createOrderAccountDto = CreateOrderAccountRequest.builder() // CreateOrderAccountRequest createOrderAccountDto = CreateOrderAccountRequest.builder()
...@@ -2614,7 +2615,7 @@ public class OrderAdapter { ...@@ -2614,7 +2615,7 @@ public class OrderAdapter {
* @param orderBean * @param orderBean
* @return * @return
*/ */
public OrderBeanRequest conventOrderBeanRequest(QueryOrdersResponse.DataBean.OrderBean orderBean, AssortmentCustomerInfoVo assortmentCustomerInfoVo) { public OrderBeanRequest conventOrderBeanRequest(QueryOrdersResponse.DataBean.OrderBean orderBean, AssortmentCustomerInfoVo assortmentCustomerInfoVo, CreateReserveOrderVo createReserveOrderVo) {
OrderBeanRequest orderBeanRequest = new OrderBeanRequest(); OrderBeanRequest orderBeanRequest = new OrderBeanRequest();
orderBeanRequest.setCompanyId(orderBean.getCompanyId()); orderBeanRequest.setCompanyId(orderBean.getCompanyId());
orderBeanRequest.setShopId(orderBean.getShopId()); orderBeanRequest.setShopId(orderBean.getShopId());
...@@ -2622,6 +2623,8 @@ public class OrderAdapter { ...@@ -2622,6 +2623,8 @@ public class OrderAdapter {
orderBeanRequest.setUserId(assortmentCustomerInfoVo.getMemberId()); orderBeanRequest.setUserId(assortmentCustomerInfoVo.getMemberId());
orderBeanRequest.setAppId(assortmentCustomerInfoVo.getWxAppId()); orderBeanRequest.setAppId(assortmentCustomerInfoVo.getWxAppId());
orderBeanRequest.setOrderType(orderBean.getOrderType()); orderBeanRequest.setOrderType(orderBean.getOrderType());
orderBeanRequest.setPartnerId(assortmentCustomerInfoVo.getPartnerId());
orderBeanRequest.setUseCustomerScore(createReserveOrderVo.getUseCustomerScore());
List<OrderBeanRequest.ProductBean> list = new ArrayList<>(); List<OrderBeanRequest.ProductBean> list = new ArrayList<>();
orderBean.getProductList().forEach(var -> { orderBean.getProductList().forEach(var -> {
......
...@@ -141,6 +141,7 @@ public class OrderController { ...@@ -141,6 +141,7 @@ public class OrderController {
createReserveOrderVo.setSessionId(queryOrderVo.getSessionId()); createReserveOrderVo.setSessionId(queryOrderVo.getSessionId());
createReserveOrderVo.setActivityCode(queryOrderVo.getActivityCode()); createReserveOrderVo.setActivityCode(queryOrderVo.getActivityCode());
createReserveOrderVo.setCouponCode(queryOrderVo.getCouponCode()); createReserveOrderVo.setCouponCode(queryOrderVo.getCouponCode());
createReserveOrderVo.setUseCustomerScore(queryOrderVo.getUseCustomerScore());
return encircleOrderService.queryOrderInfo(createReserveOrderVo); return encircleOrderService.queryOrderInfo(createReserveOrderVo);
} }
......
/**
* Copyright (C), 2015-2019, 非码网络科技有限公司
* FileName: useScoreVo
* Author: bing.liu
* Date: 2019-05-09 14:54
* Description:
*/
package cn.freemud.entities.dto;
import lombok.Data;
/**
* @author bing.liu
* @create 2019-05-09
* @versions 1.0.0
*/
@Data
public class GetUserScoreUserDetailDto {
private String code;
private String message;
private String ver;
private UserScoreDetailVo result;
@Data
public class UserScoreDetailVo {
private Integer currentScore;
private Integer useScore;
private Integer reduceAmount;
private Boolean scoreReduceState;
private Integer reducePriceLimit;
private Integer getReduceScoreLimit;
/**
* 积分抵扣状态 1积分可用 2积分不足 3 积分抵扣开关禁用 4、订单金额不满足开启积分抵现要求
*/
private Integer scoreState;
/**
* 积分抵扣比例
* 例如10积分抵扣5元为 10:5
*/
private String scoreReduceRate;
/**
* 是否可优惠同享{0所有订单均可抵扣,1仅限原价订单才可抵扣(享受了促销活动、或使用了优惠券,不能进行积分抵扣)
*/
private Integer overlayOffers;
}
}
\ No newline at end of file
...@@ -66,6 +66,16 @@ public class OrderBeanRequest { ...@@ -66,6 +66,16 @@ public class OrderBeanRequest {
*/ */
private String userName; private String userName;
private String userType; private String userType;
/**
* 是否使用用户积分
* 1=不显示积分
* 2=显示积分但不扣减
* 3=显示积分且扣减
*/
private Integer useCustomerScore;
private String partnerId;
private List<ProductBean> productList; private List<ProductBean> productList;
......
package cn.freemud.entities.dto.promotion; package cn.freemud.entities.dto.promotion;
import cn.freemud.entities.dto.shoppingCart.ActivityDiscountsDto; import cn.freemud.entities.dto.shoppingCart.ActivityDiscountsDto;
import cn.freemud.entities.vo.ActivityClassifyCouponBean; import cn.freemud.entities.vo.*;
import cn.freemud.entities.vo.ActivityDiscountsVo;
import cn.freemud.entities.vo.ActivityTip;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
...@@ -87,6 +86,16 @@ public class ShoppingCartGoodsResponse { ...@@ -87,6 +86,16 @@ public class ShoppingCartGoodsResponse {
*/ */
private ActivityTip activityTip; private ActivityTip activityTip;
/**
* 活动信息
*/
private ShoppingCartCustomerScoreVo customerScoreVo;
/**
* 加价购商品
*/
private List<SendGoods> sendGoods;
@Data @Data
public static class CartGoodsDetailDto { public static class CartGoodsDetailDto {
/** /**
...@@ -143,4 +152,20 @@ public class ShoppingCartGoodsResponse { ...@@ -143,4 +152,20 @@ public class ShoppingCartGoodsResponse {
} }
@Data
public final static class SendGoods {
/**
* 商品Id
*/
@NotNull
private String goodsId;
private Long originalPrice;
/**
* 商品数量
*/
@NotNull
private Integer qty;
}
} }
/**
* Copyright (C), 2015-2019, 非码网络科技有限公司
* FileName: getUserScoreUseDetailVo
* Author: bing.liu
* Date: 2019-05-09 09:08
* Description:
*/
package cn.freemud.entities.vo;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @author bing.liu
* @create 2019-05-09
* @versions 1.0.0
*/
@Data
public class GetUserScoreUseDetailVo {
private String sessionId;
@NotNull(message = "实付金额不能为空")
private Integer PaidAmount;
private String MemberId;
private String PartnerId;
}
\ No newline at end of file
...@@ -68,4 +68,12 @@ public class QueryOrderVo { ...@@ -68,4 +68,12 @@ public class QueryOrderVo {
*/ */
private String activityCode; private String activityCode;
/**
* 是否使用用户积分
* 1=不显示积分
* 2=显示积分但不扣减
* 3=显示积分且扣减
*/
private Integer useCustomerScore;
} }
package cn.freemud.entities.vo;
import lombok.Data;
/**
* All rights Reserved, Designed By www.freemud.com
*
* @version V1.0
* @Title:
* @Package: cn.freemud.entities.vo
* @Descripttion:
* @author: shuhu.hou
* @date: 2019/5/11
* @Copyright: 2017 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目.
*/
@Data
public class ShoppingCartCustomerScoreVo {
private Integer currentScore;
private Integer reducePriceLimit;
private Integer scoreReduceState;
private Integer reduceAmount;
private Integer useScore;
private String customerScorePrompt;
/**
* 是否可优惠同享{0所有订单均可抵扣,1仅限原价订单才可抵扣(享受了促销活动、或使用了优惠券,不能进行积分抵扣)
*/
private Integer overlayOffers;
}
...@@ -35,5 +35,11 @@ public class CreateReserveOrderVo extends EncircleReserveBaseVo{ ...@@ -35,5 +35,11 @@ public class CreateReserveOrderVo extends EncircleReserveBaseVo{
* 优惠券对应的活动号 * 优惠券对应的活动号
*/ */
private String activityCode; private String activityCode;
/**
* 是否使用用户积分
* 1=不显示积分
* 2=显示积分但不扣减
* 3=显示积分且扣减
*/
private Integer useCustomerScore;
} }
...@@ -112,5 +112,9 @@ public class PreviewOrderInfoVo { ...@@ -112,5 +112,9 @@ public class PreviewOrderInfoVo {
* 活动信息 * 活动信息
*/ */
private ActivityTip activityTip; private ActivityTip activityTip;
/**
* 用户积分抵扣信息
*/
private ShoppingCartCustomerScoreVo customerScoreVo;
} }
...@@ -62,6 +62,8 @@ public class ActivityCalculationDiscountService { ...@@ -62,6 +62,8 @@ public class ActivityCalculationDiscountService {
private TimeSalePromotionService timeSalePromotionService; private TimeSalePromotionService timeSalePromotionService;
@Autowired @Autowired
private CommonService commonService; private CommonService commonService;
@Autowired
private CustomerScoreService customerScoreService;
public ShoppingCartGoodsResponse updateDiscountApportion(OrderBeanRequest request, CouponPromotionDto couponPromotionDto) { public ShoppingCartGoodsResponse updateDiscountApportion(OrderBeanRequest request, CouponPromotionDto couponPromotionDto) {
...@@ -94,6 +96,8 @@ public class ActivityCalculationDiscountService { ...@@ -94,6 +96,8 @@ public class ActivityCalculationDiscountService {
fullPromotionService.updateDiscountApportion(shoppingCartGoodsResponse, request, calculationDiscountResultDto, couponPromotionDto, activityQueryDto); fullPromotionService.updateDiscountApportion(shoppingCartGoodsResponse, request, calculationDiscountResultDto, couponPromotionDto, activityQueryDto);
// 限时特价 // 限时特价
timeSalePromotionService.updateDiscountApportion(shoppingCartGoodsResponse, request, calculationDiscountResultDto, couponPromotionDto, activityQueryDto); timeSalePromotionService.updateDiscountApportion(shoppingCartGoodsResponse, request, calculationDiscountResultDto, couponPromotionDto, activityQueryDto);
// 积分抵扣
customerScoreService.updateDiscountApportion(shoppingCartGoodsResponse, request, calculationDiscountResultDto, couponPromotionDto, activityQueryDto);
return shoppingCartGoodsResponse; return shoppingCartGoodsResponse;
} }
...@@ -180,6 +184,7 @@ public class ActivityCalculationDiscountService { ...@@ -180,6 +184,7 @@ public class ActivityCalculationDiscountService {
previewOrderInfoVo.setCouponDiscount(shoppingCartGoodsResponse.getCouponDiscount()); previewOrderInfoVo.setCouponDiscount(shoppingCartGoodsResponse.getCouponDiscount());
previewOrderInfoVo.setToastMsg(shoppingCartGoodsResponse.getToastMsg()); previewOrderInfoVo.setToastMsg(shoppingCartGoodsResponse.getToastMsg());
previewOrderInfoVo.setActivityTip(shoppingCartGoodsResponse.getActivityTip()); previewOrderInfoVo.setActivityTip(shoppingCartGoodsResponse.getActivityTip());
previewOrderInfoVo.setCustomerScoreVo(shoppingCartGoodsResponse.getCustomerScoreVo());
//循环促销计算商品信息,保存订单金额信息 //循环促销计算商品信息,保存订单金额信息
if(CollectionUtils.isNotEmpty(previewOrderInfoVo.getProducts())){ if(CollectionUtils.isNotEmpty(previewOrderInfoVo.getProducts())){
for (ProductVo productVo : previewOrderInfoVo.getProducts()) { for (ProductVo productVo : previewOrderInfoVo.getProducts()) {
......
package cn.freemud.service.impl;
import cn.freemud.constant.CustomerScoreConstant;
import cn.freemud.entities.dto.GetUserScoreUserDetailDto;
import cn.freemud.entities.dto.activity.ActivityQueryDto;
import cn.freemud.entities.dto.promotion.*;
import cn.freemud.entities.vo.GetUserScoreUseDetailVo;
import cn.freemud.entities.vo.ShoppingCartCustomerScoreVo;
import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.service.IPromotionService;
import cn.freemud.service.thirdparty.CustomScoreClient;
import cn.freemud.utils.LogUtil;
import com.freemud.application.sdk.api.constant.FMStatusCode;
import com.freemud.application.sdk.api.log.ErrorLog;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
/**
* All rights Reserved, Designed By www.freemud.com
*
* @version V1.0
* @Title:
* @Package: cn.freemud.service.impl
* @Descripttion:
* @author: shuhu.hou
* @date: 2019/5/11
* @Copyright: 2017 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目.
*/
@Service
public class CustomerScoreService implements IPromotionService {
@Autowired
private CustomScoreClient customScoreClient;
@Override
public void updateDiscountApportion(ShoppingCartGoodsResponse shoppingCartGoodsResponse, OrderBeanRequest request, CalculationDiscountResultDto calculationDiscountResult, CouponPromotionDto couponPromotionDto, ActivityQueryDto activityQueryDto) {
if (request == null || request.getUseCustomerScore() == null || request.getUseCustomerScore() == null || request.getUseCustomerScore().equals(CustomerScoreConstant.NO_DISPLAY.getValue())) {
return;
}
GetUserScoreUseDetailVo getUserScoreUseDetailVo = new GetUserScoreUseDetailVo();
getUserScoreUseDetailVo.setMemberId(request.getUserId());
getUserScoreUseDetailVo.setPaidAmount(getValue(shoppingCartGoodsResponse.getTotalAmount()));
getUserScoreUseDetailVo.setPartnerId(request.getPartnerId());
GetUserScoreUserDetailDto userScoreUseDetail = null;
try {
// 加入try catch是为了custom服务挂掉,购物车服务可以也可以正常
userScoreUseDetail = customScoreClient.getUserScoreUseDetail(getUserScoreUseDetailVo);
} catch (Exception ex) {
ErrorLog.printErrorLog("getUserScoreUseDetailError", "/user/scoreUseDetail", request, ex);
}
if (userScoreUseDetail != null && userScoreUseDetail.getCode().equals(FMStatusCode.SUCCESS.getCode()) && userScoreUseDetail.getResult() != null) {
Integer discountAmount = 0;
if (CustomerScoreConstant.SUBSTRACT.getValue().equals(request.getUseCustomerScore())) {
//设置 购物车总金额=购物车总价-积分扣减金额
discountAmount = getValue(userScoreUseDetail.getResult().getReduceAmount());
}
//设置 积分抵扣VO
ShoppingCartCustomerScoreVo customerScoreVo = new ShoppingCartCustomerScoreVo();
customerScoreVo.setCurrentScore(getValue(userScoreUseDetail.getResult().getCurrentScore()));
customerScoreVo.setReduceAmount(getValue(userScoreUseDetail.getResult().getReduceAmount()));
customerScoreVo.setReducePriceLimit(getValue(userScoreUseDetail.getResult().getReducePriceLimit()));
customerScoreVo.setOverlayOffers(userScoreUseDetail.getResult().getOverlayOffers());
customerScoreVo.setScoreReduceState(getValue(userScoreUseDetail.getResult().getScoreState()));
// 是否可优惠同享{0所有订单均可抵扣,1仅限原价订单才可抵扣(享受了促销活动、或使用了优惠券,不能进行积分抵扣
if (getValue(userScoreUseDetail.getResult().getOverlayOffers()) == 0) {
customerScoreVo.setScoreReduceState(getValue(userScoreUseDetail.getResult().getScoreState()));
} else {
if (StringUtils.isNotBlank(couponPromotionDto.getCouponCode()) || (calculationDiscountResult != null && calculationDiscountResult.getTotalDiscountAmount().intValue() > 0)
|| (calculationDiscountResult != null && !CollectionUtils.isEmpty(calculationDiscountResult.getDiscounts()))) {
//是否有换购
int type81 = 0;
for (CalculationGoodsActivityDto discount : calculationDiscountResult.getDiscounts()) {
if (ActivityTypeEnum.TYPE_81.getCode().equals(discount.getType())) {
type81 = 1;
break;
}
}
//集点
long discountCount = calculationDiscountResult.getDiscounts().stream().filter(discount -> !ActivityTypeEnum.TYPE_211.getCode().equals(discount.getType())).count();
/*
int discountCount = calculationDiscountResult.getDiscounts().size();
int type211 = 0;
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount discount : calculationDiscountResult.getDiscounts()) {
if (ActivityTypeEnum.TYPE_221.getCode().equals(discount.getType())) {
type211 += 1;
break;
}
}
discountCount = discountCount - type211;
*/
//积分抵扣开关禁用 有换购活动 且选中了换购商品
// - 有换购且选中了换购商品
// - 有换购且没有选中换购商品 且除集点以外还有其他促销
if ((type81 == 0 && discountCount >= 1)
|| (type81 == 1 && !CollectionUtils.isEmpty(shoppingCartGoodsResponse.getSendGoods()))
|| (type81 == 1 && discountCount > 1)) {
customerScoreVo.setScoreReduceState(5);
userScoreUseDetail.getResult().setScoreState(5);
discountAmount = 0;
customerScoreVo.setReduceAmount(0);
}
}
}
customerScoreVo.setUseScore(getValue(userScoreUseDetail.getResult().getUseScore()));
String msg = "";
// 积分抵扣状态 1积分可用 2积分不足 3 积分抵扣开关禁用 4、订单金额不满足开启积分抵现要求
switch (userScoreUseDetail.getResult().getScoreState()) {
case 1:
msg = String.format("共%s积分,可用%s积分抵¥%s", getValue(userScoreUseDetail.getResult().getCurrentScore()), getValue(userScoreUseDetail.getResult().getUseScore()), ((double) userScoreUseDetail.getResult().getReduceAmount()) / 100);
break;
case 2:
String[] split = userScoreUseDetail.getResult().getScoreReduceRate().split(":");
msg = String.format("共%s积分,每%s积分可抵¥%s", getValue(userScoreUseDetail.getResult().getCurrentScore()), split[0], split[1]);
break;
case 5:
msg = "已享受优惠,无法再参与积分抵扣";
break;
case 4:
msg = String.format("共%s积分,订单满¥%s可开启积分抵现", getValue(userScoreUseDetail.getResult().getCurrentScore()), ((double) userScoreUseDetail.getResult().getReducePriceLimit()) / 100);
break;
default:
break;
}
customerScoreVo.setCustomerScorePrompt(msg);
shoppingCartGoodsResponse.setCustomerScoreVo(customerScoreVo);
shoppingCartGoodsResponse.setScoreReduceAmount(customerScoreVo.getReduceAmount().longValue());
shoppingCartGoodsResponse.setReduceScore(customerScoreVo.getUseScore().longValue());
shoppingCartGoodsResponse.setTotalDiscountAmount(shoppingCartGoodsResponse.getTotalDiscountAmount() + discountAmount);
shoppingCartGoodsResponse.setTotalAmount(shoppingCartGoodsResponse.getTotalAmount() - discountAmount);
}
return;
}
private Integer getValue(Object object) {
Integer result = 0;
try {
if (object != null) {
if (object instanceof Integer) {
result = (Integer) object;
} else if (object instanceof String) {
result = Integer.parseInt((String) object);
} else if (object instanceof Double) {
result = (int) ((double) object);
} else if (object instanceof Float) {
result = (int) ((float) object);
} else if (object instanceof BigDecimal) {
result = ((BigDecimal) object).intValue();
} else if (object instanceof Long) {
result = ((Long) object).intValue();
}
}
} catch (Exception ex) {
LogUtil.error("getScoreValueFail", "", "", ex);
}
return result;
}
}
...@@ -380,7 +380,7 @@ public class EncircleOrderServiceImpl implements EncircleOrderService { ...@@ -380,7 +380,7 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
Integer payIsArouseStatus = 1; Integer payIsArouseStatus = 1;
if (!prePayLock) { if (!prePayLock) {
payIsArouseStatus = 0; payIsArouseStatus = 0;
OrderBeanRequest orderBeanRequest = orderAdapter.conventOrderBeanRequest(queryOrderByIdResponse.getData(), assortmentCustomerInfoVo); OrderBeanRequest orderBeanRequest = orderAdapter.conventOrderBeanRequest(queryOrderByIdResponse.getData(), assortmentCustomerInfoVo,createReserveOrderVo);
CouponPromotionDto couponPromotionDto = couponAdapter.getCouponPromotionDto(orderBeanRequest, createReserveOrderVo.getCouponCode(), createReserveOrderVo.getActivityCode(), CouponFlag.YES.getCode()); CouponPromotionDto couponPromotionDto = couponAdapter.getCouponPromotionDto(orderBeanRequest, createReserveOrderVo.getCouponCode(), createReserveOrderVo.getActivityCode(), CouponFlag.YES.getCode());
ShoppingCartGoodsResponse shoppingCartGoodsResponse = calculationDiscountService.updateDiscountApportion(orderBeanRequest, couponPromotionDto); ShoppingCartGoodsResponse shoppingCartGoodsResponse = calculationDiscountService.updateDiscountApportion(orderBeanRequest, couponPromotionDto);
calculationDiscountService.updatePreviewOrderInfoVo(previewOrderInfoVo, shoppingCartGoodsResponse); calculationDiscountService.updatePreviewOrderInfoVo(previewOrderInfoVo, shoppingCartGoodsResponse);
...@@ -443,12 +443,12 @@ public class EncircleOrderServiceImpl implements EncircleOrderService { ...@@ -443,12 +443,12 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
boolean prePayLock = mealCacheManager.getOrderCreatePreParmentLock(assortmentCustomerInfoVo.getPartnerId(),assortmentCustomerInfoVo.getStoreId(),assortmentCustomerInfoVo.getTableNumber()); boolean prePayLock = mealCacheManager.getOrderCreatePreParmentLock(assortmentCustomerInfoVo.getPartnerId(),assortmentCustomerInfoVo.getStoreId(),assortmentCustomerInfoVo.getTableNumber());
ShoppingCartGoodsResponse shoppingCartGoodsResponse = null; ShoppingCartGoodsResponse shoppingCartGoodsResponse = null;
if (!prePayLock) { if (!prePayLock) {
OrderBeanRequest orderBeanRequest = orderAdapter.conventOrderBeanRequest(queryOrderByIdResponse.getData(), assortmentCustomerInfoVo); OrderBeanRequest orderBeanRequest = orderAdapter.conventOrderBeanRequest(queryOrderByIdResponse.getData(), assortmentCustomerInfoVo,createReserveOrderVo);
CouponPromotionDto couponPromotionDto = couponAdapter.getCouponPromotionDto(orderBeanRequest, createReserveOrderVo.getCouponCode(), createReserveOrderVo.getActivityCode(), CouponFlag.YES.getCode()); CouponPromotionDto couponPromotionDto = couponAdapter.getCouponPromotionDto(orderBeanRequest, createReserveOrderVo.getCouponCode(), createReserveOrderVo.getActivityCode(), CouponFlag.YES.getCode());
shoppingCartGoodsResponse = calculationDiscountService.updateDiscountApportion(orderBeanRequest, couponPromotionDto); shoppingCartGoodsResponse = calculationDiscountService.updateDiscountApportion(orderBeanRequest, couponPromotionDto);
} }
boolean isUpdateAccounts = CollectionUtils.isEmpty(queryOrderByIdResponse.getData().getAccountList()); boolean isUpdateAccounts = CollectionUtils.isEmpty(queryOrderByIdResponse.getData().getAccountList());
AssortmentSdkUpdateOrderProductInfoRequest request = orderAdapter.conventShoppingPromotionInfo(shoppingCartGoodsResponse, queryOrderByIdResponse, assortmentCustomerInfoVo, isUpdateAccounts); AssortmentSdkUpdateOrderProductInfoRequest request = orderAdapter.conventShoppingPromotionInfo(shoppingCartGoodsResponse, queryOrderByIdResponse, assortmentCustomerInfoVo, isUpdateAccounts,createReserveOrderVo);
//修改订单信息 //修改订单信息
OrderDetailResponse baseOrderResponse = orderCenterSdkService.updateOrderItem(request); OrderDetailResponse baseOrderResponse = orderCenterSdkService.updateOrderItem(request);
if(baseOrderResponse == null || ObjectUtils.notEqual(baseOrderResponse.getErrcode(),RESPONSE_SUCCESS_CODE)){ if(baseOrderResponse == null || ObjectUtils.notEqual(baseOrderResponse.getErrcode(),RESPONSE_SUCCESS_CODE)){
......
...@@ -85,6 +85,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService { ...@@ -85,6 +85,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
createReserveOrderVo.setSessionId(createOrderVo.getSessionId()); createReserveOrderVo.setSessionId(createOrderVo.getSessionId());
createReserveOrderVo.setOrderUpdateVer(createOrderVo.getOrderUpdateVer()); createReserveOrderVo.setOrderUpdateVer(createOrderVo.getOrderUpdateVer());
createReserveOrderVo.setCouponCode(createOrderVo.getCouponCode()); createReserveOrderVo.setCouponCode(createOrderVo.getCouponCode());
createReserveOrderVo.setUseCustomerScore(createOrderVo.getUseCustomerScore());
if(createOrderVo.getOperation() == null) throw new ServiceException(ResponseResult.ORDER_CREATE_OPERATION_ERROR); if(createOrderVo.getOperation() == null) throw new ServiceException(ResponseResult.ORDER_CREATE_OPERATION_ERROR);
switch (createOrderVo.getOperation()){ switch (createOrderVo.getOperation()){
case 2:// 开台 case 2:// 开台
......
package cn.freemud.service.thirdparty;
import cn.freemud.entities.dto.GetUserScoreUserDetailDto;
import cn.freemud.entities.vo.GetUserScoreUseDetailVo;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* All rights Reserved, Designed By www.freemud.com
*
* @version V1.0
* @Title:
* @Package: cn.freemud.service.thirdparty
* @Descripttion:
* @author: shuhu.hou
* @date: 2019/5/11
* @Copyright: 2017 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目.
*/
@FeignClient(name = "customer-application-service", url = "${saas.customScoreClient.feign.url}")
@RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface CustomScoreClient {
/**
* 用户可用积分
*/
@PostMapping(value = "/user/scoreUseDetail")
GetUserScoreUserDetailDto getUserScoreUseDetail(@RequestBody GetUserScoreUseDetailVo getUserScoreUseDetailVo);
}
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