Commit c6cd445c by 胡敬轩

结算页可用券列表改造

parent 1c4d9c94
...@@ -16,21 +16,18 @@ import cn.freemud.aop.LogIgnore; ...@@ -16,21 +16,18 @@ import cn.freemud.aop.LogIgnore;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.constant.ResponseCodeConstant; import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.demo.controller.ShoppingCartDemoController; import cn.freemud.demo.controller.ShoppingCartDemoController;
import cn.freemud.demo.entities.dto.goods.add.AddGoodsRequestDTO;
import cn.freemud.entities.dto.GetMemberInfoRequestDto; import cn.freemud.entities.dto.GetMemberInfoRequestDto;
import cn.freemud.entities.vo.*; import cn.freemud.entities.vo.*;
import cn.freemud.entities.vo.coupon.CouponAvailableRequestVo;
import cn.freemud.enums.OrderChannelType; import cn.freemud.enums.OrderChannelType;
import cn.freemud.enums.ResponseResult; import cn.freemud.enums.ResponseResult;
import cn.freemud.service.OpenStoreIappWxappConfigService; import cn.freemud.service.OpenStoreIappWxappConfigService;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.ShoppingCartNewService; import cn.freemud.service.ShoppingCartNewService;
import cn.freemud.service.impl.ShoppingCartMallServiceImpl; import cn.freemud.service.impl.ShoppingCartMallServiceImpl;
import cn.freemud.service.impl.ShoppingCartMealServiceImpl; import cn.freemud.service.impl.ShoppingCartMealServiceImpl;
import cn.freemud.service.impl.ShoppingCartNewServiceImpl; import cn.freemud.service.impl.ShoppingCartNewServiceImpl;
import cn.freemud.service.impl.ShoppingCartToolsServiceImpl; import cn.freemud.service.impl.ShoppingCartToolsServiceImpl;
import cn.freemud.utils.BeanUtil;
import cn.freemud.utils.ResponseUtil; import cn.freemud.utils.ResponseUtil;
import com.alibaba.fastjson.JSON;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo; import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.api.assortment.datamanager.enums.IappIdType; import com.freemud.api.assortment.datamanager.enums.IappIdType;
import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager; import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager;
...@@ -38,10 +35,9 @@ import com.freemud.application.sdk.api.base.SDKCommonBaseContextWare; ...@@ -38,10 +35,9 @@ import com.freemud.application.sdk.api.base.SDKCommonBaseContextWare;
import com.freemud.application.sdk.api.log.ApiAnnotation; import com.freemud.application.sdk.api.log.ApiAnnotation;
import com.freemud.application.sdk.api.log.LogParams; import com.freemud.application.sdk.api.log.LogParams;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import ma.glasnost.orika.MapperFacade; import ma.glasnost.orika.MapperFacade;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
...@@ -248,4 +244,12 @@ public class ShoppingCartController { ...@@ -248,4 +244,12 @@ public class ShoppingCartController {
public BaseResponse premiumExchange(@LogParams @RequestBody PremiumExchangeRequestVo request) { public BaseResponse premiumExchange(@LogParams @RequestBody PremiumExchangeRequestVo request) {
return SDKCommonBaseContextWare.getBean(ShoppingCartNewServiceImpl.class).premiumExchange(request); return SDKCommonBaseContextWare.getBean(ShoppingCartNewServiceImpl.class).premiumExchange(request);
} }
/**
* 券码查询购物车商品信息(平台结算页可用券列表用)
*/
@PostMapping(value = "/getCartInfoByUser")
@LogIgnore(excludeStatusCodes = {ResponseCodeConstant.RESPONSE_SUCCESS_STR},logMessage = "/getCartInfoByUser")
public BaseResponse getCartInfoByUser(@LogParams @RequestBody CouponAvailableRequestVo request) {
return SDKCommonBaseContextWare.getBean(ShoppingCartNewServiceImpl.class).getCartInfoByUser(request);
}
} }
package cn.freemud.entities.vo.coupon;
import lombok.Data;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: cn.freemud.entities.vo.coupon Product
* @Description: TDO 描述....
* @author: family
* @date: 2020/6/30
* @Copyright: www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class CartProduct {
/**
* 商品id
*/
private String productId;
/**
* 总原价金额(包括主商品+可选搭配+加料商品)
*/
private Long originalTotalAmount;
/**
* 总实付金额(包括主商品+可选搭配+加料商品)
*/
private Long realAmount;
//总优惠金额(不包括赠品优惠金额和套餐优惠金额)
private Long discountAmount;
/**
* 主商品数量
*/
private Integer quantity;
//使用的商品券号
private String couponCode;
}
package cn.freemud.entities.vo.coupon;
import cn.freemud.entities.vo.CartGoods;
import lombok.Data;
import java.util.List;
/**
* All rights Reserved, Designed By sunary.site
*
* @version v1.0
* @Title: IntelliJ IDEA
* @Package cn.freemud.service.impl.mcoffee.entity
* @Description: 请简单描述下这个类是做什么用的
* @author: yu.sun
* @date: 2020-10-26 13:59:32
* @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
*/
@Data
public class CouponAvailableCartInfo {
//渠道id
private String providerId;
//商户号
private String merchantId;
//门店id(校验门店限制)
private String storeId;
//组织机构id列表(校验渠道限制)
private List<String> channelIdList;
//组织机构code列表(校验渠道限制)
private List<String> channelCodeList;
//已使用券列表
private List<String> couponCodes;
/**
* 总原价金额(包括主商品+可选搭配+加料商品)
*/
private Long originalTotalAmount;
/**
* 总实付金额(包括主商品+可选搭配+加料商品)
*/
private Long realAmount;
//总优惠金额(不包括赠品优惠金额和套餐优惠金额)
private Long discountAmount;
//购物车商品列表
private List<CartProduct> productList;
}
package cn.freemud.entities.vo.coupon;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: QueryCartInfoRequestVo
* @Package cn.freemud.entities.vo
* @Description: 简单描述下这个类是做什么用的
* @author: yu.sun
* @date: 2020/9/11 10:35
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class CouponAvailableRequestVo {
@NotNull(message = "门店id不可为空")
private String storeId;
@ApiModelProperty(value = "sessionId",required = true)
@NotNull(message = "用户sessionId不可为空")
private String sessionId;
@ApiModelProperty(value = "menuType",notes = "业务类型: 0 : 自提 1:外卖 2:微商城",required = true)
@NotNull(message ="业务类型不可为空")
private String menuType ;
@ApiModelProperty(value = "订单类型")
@NotNull(message = "订单类型不可为空")
private Integer orderType;
@ApiModelProperty(value = "收货地址id",notes = "svc卡支付外卖订单必传")
private String receiveId;
}
\ No newline at end of file
...@@ -34,6 +34,7 @@ public enum ActivityTypeEnum { ...@@ -34,6 +34,7 @@ public enum ActivityTypeEnum {
TYPE_3(3, "代金券"), TYPE_3(3, "代金券"),
TYPE_31(31, "折扣券"), TYPE_31(31, "折扣券"),
TYPE_32(32, "商品券"), TYPE_32(32, "商品券"),
TYPE_33(33, "换购券"),
TYPE_37(37, "月享卡种子券"), TYPE_37(37, "月享卡种子券"),
TYPE_5(5, "整单满金额折"), TYPE_5(5, "整单满金额折"),
TYPE_51(51, "每满金额折"), TYPE_51(51, "每满金额折"),
...@@ -57,6 +58,7 @@ public enum ActivityTypeEnum { ...@@ -57,6 +58,7 @@ public enum ActivityTypeEnum {
TYPE_200(200, "X元Y件"), TYPE_200(200, "X元Y件"),
TYPE_PACKAGE(900, "包装费"), TYPE_PACKAGE(900, "包装费"),
TYPE_DELIVERY(901, "配送费"), TYPE_DELIVERY(901, "配送费"),
TYPE_310(310, "套餐活动优惠"),
TYPE_320(320, "会员价商品优惠"), TYPE_320(320, "会员价商品优惠"),
TYPE_221(221, "集点"); TYPE_221(221, "集点");
......
...@@ -36,6 +36,8 @@ import cn.freemud.entities.dto.user.GetSessionUserInfoDto; ...@@ -36,6 +36,8 @@ import cn.freemud.entities.dto.user.GetSessionUserInfoDto;
import cn.freemud.entities.dto.user.GetUserScoreUseDetailRequest; import cn.freemud.entities.dto.user.GetUserScoreUseDetailRequest;
import cn.freemud.entities.dto.user.GetUserScoreUserDetailResponse; import cn.freemud.entities.dto.user.GetUserScoreUserDetailResponse;
import cn.freemud.entities.vo.*; import cn.freemud.entities.vo.*;
import cn.freemud.entities.vo.coupon.CouponAvailableCartInfo;
import cn.freemud.entities.vo.coupon.CouponAvailableRequestVo;
import cn.freemud.enums.*; import cn.freemud.enums.*;
import cn.freemud.interceptor.BizServiceException; import cn.freemud.interceptor.BizServiceException;
import cn.freemud.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
...@@ -55,7 +57,6 @@ import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPa ...@@ -55,7 +57,6 @@ import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPa
import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformPartnerStoreDeliveryConfigManager; import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformPartnerStoreDeliveryConfigManager;
import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager; import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager;
import com.freemud.application.sdk.api.base.SDKCommonBaseContextWare; import com.freemud.application.sdk.api.base.SDKCommonBaseContextWare;
import com.freemud.application.sdk.api.constant.FMStatusCode;
import com.freemud.application.sdk.api.log.ApiLog; import com.freemud.application.sdk.api.log.ApiLog;
import com.freemud.application.sdk.api.log.ErrorLog; import com.freemud.application.sdk.api.log.ErrorLog;
import com.freemud.application.sdk.api.log.LogThreadLocal; import com.freemud.application.sdk.api.log.LogThreadLocal;
...@@ -81,11 +82,9 @@ import com.freemud.sdk.api.assortment.shoppingcart.service.ShoppingCartBaseServi ...@@ -81,11 +82,9 @@ import com.freemud.sdk.api.assortment.shoppingcart.service.ShoppingCartBaseServi
import com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl; import com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import javafx.util.Pair; import javafx.util.Pair;
import javafx.util.Pair;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import ma.glasnost.orika.MapperFacade; import ma.glasnost.orika.MapperFacade;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -2863,4 +2862,47 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -2863,4 +2862,47 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
} }
} }
} }
/**
* 券码查询购物车商品信息(平台用)
* @param requestVo
* @return
*/
public BaseResponse<CouponAvailableCartInfo> getCartInfoByUser(CouponAvailableRequestVo requestVo){
// 获取用户信息
CustomerInfoVo assortmentCustomerInfoVo = getCustomerInfoVo(requestVo.getSessionId());
String userId = assortmentCustomerInfoVo.getMemberId();
String partnerId = assortmentCustomerInfoVo.getPartnerId();
String appId = assortmentCustomerInfoVo.getAppId();
String storeId = requestVo.getStoreId();
String menuType = requestVo.getMenuType();
Integer orderType = requestVo.getOrderType();
CouponAvailableCartInfo couponAvailableCartInfo;
List<String> orgCodes = commonService.getOrgCodes(partnerId, storeId);
// 获取购物车商品
List<CartGoods> cartGoodsList = assortmentSdkService.getShoppingCartForCoupon(partnerId, requestVo.getStoreId(), userId, "", shoppingCartBaseService);
if (grayPush(partnerId,storeId,"2")) {
CalculationSharingDiscountResponseDto.CalculationDiscountResult discountResult = sharingDiscountService.getCalculationSharingDiscountResult(menuType
, partnerId
, storeId
, userId
, appId
, orderType
, assortmentCustomerInfoVo.isMemberPaid()
, cartGoodsList
, new ArrayList<>() //券
, null //加价购商品
, 0L
, null);
couponAvailableCartInfo = activityAdapter.convert2CouponAvailableCartInfoSharing(partnerId,storeId,discountResult,orgCodes);
}else {
// 获取优惠信息
ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult = getCalculationDiscountResult(menuType,partnerId,storeId,userId,appId,assortmentCustomerInfoVo.getWxAppId(),orderType,assortmentCustomerInfoVo.isMemberPaid(),cartGoodsList,new ArrayList<>(),null,null,0L);
couponAvailableCartInfo = activityAdapter.convert2CouponAvailableCartInfo(partnerId,storeId,calculationDiscountResult,orgCodes);
}
return ResponseUtil.success(couponAvailableCartInfo);
}
} }
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