Commit a2f31a02 by zhiheng.zhang

Merge remote-tracking branch 'origin/qa' into qa

parents 360197b8 998b2f92
......@@ -88,12 +88,9 @@
| 2.2.18-SNAPSHOT| 抖音支付新增抖音单号和openId | 张志恒 | 2020-12-4 |
| 2.1.7-RELEASE | 农工商撤单 | 张志恒 | 2020-12-07 |
| 2.2.20-SNAPSHOT| 抖音支付 | 张志恒 | 2020-12-11ß |
| 2.1.8-RELEASE | 拼单 | 缪晖 | 2020-12-10 |
| 2.1.9-RELEASE | 去掉0元核销优惠券 | 李小二 | 2020-12-14 |
| 2.1.10-RELEASE | coco | 刘鹏飞 | 2020-12-17 |
| 2.1.11-RELEASE | 农工商添加设备号 | 梁崇福 | 2020-12-17 |
| 2.1.12-RELEASE | coco定制优惠券核销 | 刘鹏飞 | 2020-12-24 |
| 2.1.19-SNAPSHOT | 增加配送类型字段 | 王航航 | 2020-12-22 |
......@@ -135,6 +135,10 @@ public class QueryOrdersResponseDto {
*/
private Integer orderType;
/**
* 销售类型或营销活动类型 1普通订单 2秒杀订单 3推广活动 4拼单订单
*/
private Byte marketingType;
/**
* 取餐码
*/
private String otherCode;
......
package cn.freemud.entities.vo;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
@Data
public class PlatformPaySuccessRequest {
@NotEmpty(message = "orderCode 不能为空")
private String orderCode;
@NotEmpty(message = "商户号 不能为空")
private String partnerId;
}
......@@ -147,8 +147,4 @@ public interface Orderservice {
BaseResponse timeOutOrderRefund(TimeOutOrderVo timeOutOrderVo);
BaseResponse platformPaysuccess(PlatformPaySuccessRequest requestVo);
}
......@@ -522,6 +522,17 @@ public class OrderServiceImpl implements Orderservice {
takeCode = payAccessResponse.getData().getTakeCode();
daySeq = payAccessResponse.getData().getDaySeq();
if (null != orderBean.getMarketingType() && OrderMarketType.COLLAGE.getIndex() == orderBean.getMarketingType()) {
// 更新拼单购物车状态
CollageOrderDto collageOrderDto = new CollageOrderDto();
collageOrderDto.setSessionId(StringUtils.isBlank(sessionId) ? oid : sessionId);
collageOrderDto.setPartnerId(partnerId);
collageOrderDto.setShopId(storeId);
collageOrderDto.setCreateCollageUserId(userId);
collageOrderDto.setOrderCode(oid);
collageOrderDto.setStatus(1);
shoppingCartClient.updateCollageOrder(collageOrderDto);
} else {
//TODO 清空购物车
NewShoppingCartClearDto newShoppingCartClearDto = new NewShoppingCartClearDto();
newShoppingCartClearDto.setPartnerId(partnerId);
......@@ -531,16 +542,7 @@ public class OrderServiceImpl implements Orderservice {
newShoppingCartClearDto.setSessionId(sessionId);
newShoppingCartClearDto.setOperationType(1);
shoppingCartClient.clearShoppingCart(newShoppingCartClearDto);
// 清空拼单购物车
CollageOrderDto collageOrderDto = new CollageOrderDto();
collageOrderDto.setSessionId(StringUtils.isBlank(sessionId) ? oid : sessionId);
collageOrderDto.setPartnerId(partnerId);
collageOrderDto.setShopId(storeId);
collageOrderDto.setCreateCollageUserId(userId);
collageOrderDto.setOrderCode(oid);
collageOrderDto.setStatus(1);
shoppingCartClient.updateCollageOrder(collageOrderDto);
}
if (StringUtils.isNotBlank(daySeq) && orderExtInfoDto != null && !OrderType.TAKE_OUT.getCode().equals(orderBean.getType())) {
String storeAddress = StringUtils.isNotBlank(orderBean.getAddress()) ? orderBean.getAddress() : "";
......@@ -1280,24 +1282,6 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.success();
}
@Override
public BaseResponse platformPaysuccess(PlatformPaySuccessRequest requestVo) {
BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest();
baseQueryOrderRequest.setOrderId(requestVo.getOrderCode());
baseQueryOrderRequest.setTrackingNo(LogThreadLocal.getTrackingNo());
QueryOrderByIdResponse queryOrderByIdResponse = orderCenterSdkService.queryOrderById(baseQueryOrderRequest);
if (!RESPONSE_SUCCESS_CODE.equals(queryOrderByIdResponse.getErrcode()) || queryOrderByIdResponse.getData() == null) {
return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR);
}
// 扣减储值卡
// 扣减券
// 扣减积分
return ResponseUtil.success();
}
private String getRedpacketsPicture(String activityId) {
if (StringUtils.isNotBlank(activityId)) {
......
......@@ -26,7 +26,6 @@ import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter;
import com.freemud.sdk.api.assortment.order.enums.OrderSourceType;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import javafx.util.Pair;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
......
......@@ -22,7 +22,6 @@ import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import com.freemud.sdk.api.assortment.order.enums.OrderSourceType;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import javafx.util.Pair;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
......
......@@ -179,7 +179,8 @@ public enum ResponseResult {
/**
* coco验证券错误
*/
COCO_COUPON_VALIDATOR_FAIL("49000", "优惠券验证错误")
COCO_COUPON_VALIDATOR_FAIL("49000", "优惠券验证错误"),
NEW_PURCHASE("49001", "超过限购数量了")
;
......
......@@ -938,17 +938,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
public BaseResponse<GetMemberInfoResponseVo> getMemberInfo(GetMemberInfoRequestDto request) {
GetMemberInfoResponseVo responseData = new GetMemberInfoResponseVo();
/*
GetMemberByMobileRequest getMemberByMobileRequest = new GetMemberByMobileRequest();
getMemberByMobileRequest.setIsHaveChannels("1");
getMemberByMobileRequest.setMobile(request.getMobile());
getMemberByMobileRequest.setPartnerId(request.getPartnerId());
*/
String partnerId = request.getPartnerId();
// com.freemud.application.sdk.api.base.BaseResponse<GetMemberByMobileResponse> memberByMobile = memberCenterService.getMemberByMobile(getMemberByMobileRequest, LogThreadLocal.getTrackingNo());
// String memberId = memberByMobile.getData().getMemberId();
String memberId = request.getUserId();
responseData.setUserId(memberId);
List<GetMemberInfoRequestDto.OrderItemRequest> orderItemList = request.getOrderItemList();
......@@ -959,20 +950,26 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
getMemberCouponListRequestDto.setPageNum(1);
getMemberCouponListRequestDto.setPageSize(Integer.MAX_VALUE);
GetMemberCouponListResponseDto.Result result = getMemberCouponList(getMemberCouponListRequestDto);
List<GetMemberInfoResponseVo.Coupon> coupons = new ArrayList<>();
if (result != null && CollectionUtils.isNotEmpty(result.getMemberCoupons())){
List<GetMemberCouponListResponseDto.Result.MemberCoupon> memberCoupons = result.getMemberCoupons();
Date nowDate = new Date();
memberCoupons = memberCoupons.stream().filter(item -> filterExpireCoupon(nowDate, item.getEndTime())).collect(Collectors.toList());//过滤掉过期的券
List<GetMemberInfoResponseVo.Coupon> coupons = memberCoupons.stream().map(each -> convert2MemberCoupon(each)).collect(toList());
coupons = memberCoupons.stream().map(each -> convert2MemberCoupon(each)).collect(toList());
}
responseData.setCoupons(coupons);
// 积分
GetMemberInfoResponseVo.Score score = new GetMemberInfoResponseVo.Score();
StatisticalScoreRequest statisticalScoreRequest = new StatisticalScoreRequest();
statisticalScoreRequest.setMemberId(memberId);
statisticalScoreRequest.setPartnerId(partnerId);
com.freemud.application.sdk.api.base.BaseResponse<StatisticalScoreResponse> statisticalScoreResponseBaseResponse = memberPropertyService.statisticalScore(statisticalScoreRequest, LogThreadLocal.getTrackingNo());
if (statisticalScoreResponseBaseResponse != null && statisticalScoreResponseBaseResponse.getData() != null){
StatisticalScoreResponse statisticalScoreResponse = statisticalScoreResponseBaseResponse.getData();
score.setCurrentScore(statisticalScoreResponse.getCurrentScore());
} else {
score.setCurrentScore(0);
}
responseData.setScore(score);
} else {
......@@ -980,9 +977,11 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
List<CartGoods> cartGoodsList = orderItemList.stream().map(each -> convert2ShopCartGoods(each)).collect(toList());
ActivityClassifyCouponBean activityClassifyCouponBean = couponService.availableCoupon(cartGoodsList, partnerId
, memberId, request.getStoreId(), "", false, request.getOrderType(), 0,"");
, memberId, request.getStoreId(), "", false, request.getOrderType(), 0, "");
if (activityClassifyCouponBean != null && CollectionUtils.isNotEmpty(activityClassifyCouponBean.getUsableCoupons())){
List<GetMemberInfoResponseVo.Coupon> coupons = activityClassifyCouponBean.getUsableCoupons().stream().map(each -> convert2MemberCoupon(each)).collect(toList());
responseData.setCoupons(coupons);
}
// 积分
GetUserScoreUseDetailRequest scoreRequest = new GetUserScoreUseDetailRequest();
......@@ -990,24 +989,26 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
scoreRequest.setPaidAmount(request.getActualPayAmount());
scoreRequest.setPartnerId(partnerId);
GetUserScoreUserDetailResponse userScoreUseDetail = customScoreClient.getUserScoreUseDetail(scoreRequest);
GetUserScoreUserDetailResponse.UserScoreDetailVo result = userScoreUseDetail.getResult();
GetMemberInfoResponseVo.Score score = new GetMemberInfoResponseVo.Score();
if (userScoreUseDetail != null && userScoreUseDetail.getResult() != null){
GetUserScoreUserDetailResponse.UserScoreDetailVo result = userScoreUseDetail.getResult();
score.setCurrentScore(result.getCurrentScore());
score.setReduceAmount(result.getReduceAmount());
score.setReduceScore(result.getUseScore());
} else {
score.setCurrentScore(0);
score.setReduceAmount(0);
score.setReduceScore(0);
}
responseData.setScore(score);
}
// 储值卡
StatisticalPropertyRequest getMemberCardRequest = new StatisticalPropertyRequest();
getMemberCardRequest.setPartnerId(partnerId);
getMemberCardRequest.setMemberId(memberId);
com.freemud.application.sdk.api.base.BaseResponse<List<GetSvcInfoByMemberIdResponse>> svcInfoByMemberId = memberPropertyService.getSvcInfoByMemberId(getMemberCardRequest, LogThreadLocal.getTrackingNo());
if (svcInfoByMemberId != null && CollectionUtils.isNotEmpty(svcInfoByMemberId.getData())){
List<GetSvcInfoByMemberIdResponse> memberCardResponses = svcInfoByMemberId.getData();
if(CollectionUtils.isNotEmpty(memberCardResponses)) {
// 查询储值卡的余额
List<String> cardCodes = memberCardResponses.stream().map(GetSvcInfoByMemberIdResponse::getCardCode).collect(Collectors.toList());
SVCCardAmountRequest svcCardAmountRequest = new SVCCardAmountRequest();
......@@ -1017,8 +1018,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
List<SVCCardAmountResponse.CardSimpleInfo> cardSimpleInfos = svcCardAmountResponseBaseResponse.getData().getData().getCardSimpleInfos();
List<GetMemberInfoResponseVo.Card> cards = cardSimpleInfos.stream().map(each -> convert2MemberSvcCard(each)).collect(toList());
responseData.setCards(cards);
}
}
return ResponseUtil.success(responseData);
}
......@@ -1075,7 +1076,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
private CartGoods convert2ShopCartGoods(GetMemberInfoRequestDto.OrderItemRequest each){
CartGoods card = new CartGoods();
int saleValue = (each.getProductPrice() * each.getProductQuantity() - each.getProductSharePrice()) / each.getProductQuantity();
int sharePrice = each.getProductSharePrice() == null ? 0 : each.getProductSharePrice();
int saleValue = (each.getProductPrice() * each.getProductQuantity() - sharePrice) / each.getProductQuantity();
card.setAmount(Long.valueOf(saleValue));
card.setOriginalPrice(each.getProductPrice() == null ? 0L : Long.valueOf(each.getProductPrice()));
card.setQty(each.getProductQuantity());
......@@ -1234,6 +1236,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount discountDTO = result.getDiscounts().stream().filter(d -> 221 == d.getType()).findFirst().get();
convert2SendPoint(result, discountDTO);
}
this.checkPurchase(result);
result.setValidCouponMap(validCouponMap);
result.setDeliveryAmount(distributionFee);
result.setDistributionFee(result.getDistributionFee());
......@@ -1252,7 +1255,21 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
}
throw new ServiceException(ResponseResult.OPERATE_TOO_OFTEN);
}
private void checkPurchase(ActivityCalculationDiscountResponseDto.CalculationDiscountResult result) {
if (CollectionUtils.isEmpty(result.getGoods())) {
return;
}
Integer type = 16;
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods good : result.getGoods()) {
if (CollectionUtils.isNotEmpty(good.getDiscounts())) {
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount discount : good.getDiscounts()) {
if (type.equals(discount.getType()) && good.getGoodsQuantity()>=discount.getActualGoodsNumber()) {
throw new ServiceException(ResponseResult.NEW_PURCHASE);
}
}
}
}
}
private void convert2SendPoint(ActivityCalculationDiscountResponseDto.CalculationDiscountResult result, ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount discountDTO) {
SendPoint sendPointNew = new SendPoint();
......
......@@ -193,6 +193,7 @@ public class CalculationSharingDiscountService {
CalculationSharingDiscountResponseDto.CalculationDiscountResult.Discount discountDTO = result.getDiscounts().stream().filter(d -> 221 == d.getType()).findFirst().get();
convert2SendPoint(result, discountDTO);
}
this.checkPurchase(result);
result.setValidCouponMap(validCouponMap);
result.setDeliveryAmount(deliveryAmount);
result.setDistributionFee(result.getDistributionFee());
......@@ -209,6 +210,21 @@ public class CalculationSharingDiscountService {
return null;
}
private void checkPurchase(CalculationSharingDiscountResponseDto.CalculationDiscountResult result) {
if (CollectionUtils.isEmpty(result.getGoods())) {
return;
}
Integer type = 16;
for (CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods good : result.getGoods()) {
if (CollectionUtils.isNotEmpty(good.getDiscounts())) {
for (CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount discount : good.getDiscounts()) {
if (type.equals(discount.getType()) && good.getGoodsQuantity()>=discount.getActualGoodsNumber()) {
throw new ServiceException(ResponseResult.NEW_PURCHASE);
}
}
}
}
}
private void convert2SendPoint(CalculationSharingDiscountResponseDto.CalculationDiscountResult result, CalculationSharingDiscountResponseDto.CalculationDiscountResult.Discount discountDTO) {
SendPoint sendPointNew = new SendPoint();
......
......@@ -475,6 +475,7 @@ public class CouponDiscountCalculation {
private Long createProductRequest(List<CartGoods> cartGoods, List<CouponProductVo> productList) {
Long totalAmount = 0L;
try {
for (CartGoods cartGood : cartGoods) {
// 剔除商品券得商品
if (StringUtils.isEmpty(cartGood.getSkuId()) && StringUtils.isEmpty(cartGood.getSpuId())) {
......@@ -502,6 +503,9 @@ public class CouponDiscountCalculation {
productList.add(product);
totalAmount = totalAmount +product.getAmount() * cartGood.getQty();
}
} catch (NumberFormatException e) {
throw new ServiceException(ResponseResult.SYSTEM_ERROR);
}
return totalAmount;
}
......
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