Commit ac5ff196 by huiyang.chen

Merge branch '2020/10/06-随单购买月享卡-huiyang' into qa

# Conflicts:
#	assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/enums/OldOrderAccountType.java
#	order-application-service/src/main/java/cn/freemud/service/mccafe/impl/CouponClientServiceImpl.java
#	shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ShoppingCartGoodsResponseVo.java
#	shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/ShoppingCartMCoffeeServiceImpl.java
#	shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/CouponDiscountCalculation.java
parents 0f4ed4c6 47d159af
...@@ -480,7 +480,8 @@ public class OrderSdkAdapter { ...@@ -480,7 +480,8 @@ public class OrderSdkAdapter {
//老订单服务 1=配送费;3=包装费 //老订单服务 1=配送费;3=包装费
if (QueryOrderAccountType.DELIVERY_AMOUNT.equals(accountRequest.getAccountType()) if (QueryOrderAccountType.DELIVERY_AMOUNT.equals(accountRequest.getAccountType())
|| QueryOrderAccountType.PACK_AMOUNT.equals(accountRequest.getAccountType()) || QueryOrderAccountType.PACK_AMOUNT.equals(accountRequest.getAccountType())
|| QueryOrderAccountType.CARD_ORIGINAL_AMOUNT.equals(accountRequest.getAccountType())) { || QueryOrderAccountType.CARD_ORIGINAL_AMOUNT.equals(accountRequest.getAccountType())
|| QueryOrderAccountType.MCCAFE_MONTH_CARD.equals(accountRequest.getAccountType())) {
OrderCostCreateReq orderCostCreateReq = new OrderCostCreateReq(); OrderCostCreateReq orderCostCreateReq = new OrderCostCreateReq();
orderCostCreateReq.setCostName(accountRequest.getName()); orderCostCreateReq.setCostName(accountRequest.getName());
//新订单服务 1=包装费,2=运费,3=餐盒单价,4=餐盒数量 //新订单服务 1=包装费,2=运费,3=餐盒单价,4=餐盒数量
...@@ -520,7 +521,7 @@ public class OrderSdkAdapter { ...@@ -520,7 +521,7 @@ public class OrderSdkAdapter {
* @return * @return
*/ */
private Integer getCostType(QueryOrderAccountType queryOrderAccountType) { private Integer getCostType(QueryOrderAccountType queryOrderAccountType) {
// 订单费用类型 1=包装费,2=运费,3=餐盒单价,4=餐盒数量,5=会员卡费用 // 订单费用类型 1=包装费,2=运费,3=餐盒单价,4=餐盒数量,5=会员卡费用,10=麦咖啡月卡
Integer type = 0; Integer type = 0;
String code = queryOrderAccountType.getCode(); String code = queryOrderAccountType.getCode();
...@@ -534,6 +535,9 @@ public class OrderSdkAdapter { ...@@ -534,6 +535,9 @@ public class OrderSdkAdapter {
case "CARD_ORIGINAL_AMOUNT": case "CARD_ORIGINAL_AMOUNT":
type = 5; type = 5;
break; break;
case "MCCAFE_MONTH_CARD":
type = 10;
break;
default: default:
break; break;
} }
...@@ -829,9 +833,13 @@ public class OrderSdkAdapter { ...@@ -829,9 +833,13 @@ public class OrderSdkAdapter {
} }
if (orderCostResp.getCostType() == 5) { if (orderCostResp.getCostType() == 5) {
accountBean.setType(OldOrderAccountType.CARD_ORIGINAL_AMOUNT.getCode()); accountBean.setType(OldOrderAccountType.CARD_ORIGINAL_AMOUNT.getCode());
}if (orderCostResp.getCostType() == 7) { }
if (orderCostResp.getCostType() == 7) {
accountBean.setType(OldOrderAccountType.DRIVER_FEE.getCode()); accountBean.setType(OldOrderAccountType.DRIVER_FEE.getCode());
} }
if (orderCostResp.getCostType() == 10) {
accountBean.setType(OldOrderAccountType.WITH_ORDER_BUY_COUPON_FEE.getCode());
}
accountBean.setAddInfo(""); accountBean.setAddInfo("");
accountList.add(accountBean); accountList.add(accountBean);
} }
......
...@@ -16,6 +16,7 @@ import java.util.Objects; ...@@ -16,6 +16,7 @@ import java.util.Objects;
public enum OldOrderAccountType { public enum OldOrderAccountType {
OTHER(0, "其他", "OTHER"),
DELIVERY_AMOUNT(1, "配送费", "DELIVERY_AMOUNT"), DELIVERY_AMOUNT(1, "配送费", "DELIVERY_AMOUNT"),
BUY_DISCOUNT(2, "满减优惠", "BUY_DISCOUNT"), BUY_DISCOUNT(2, "满减优惠", "BUY_DISCOUNT"),
PACK_AMOUNT(3, "包装费", "PACK_AMOUNT"), PACK_AMOUNT(3, "包装费", "PACK_AMOUNT"),
...@@ -24,6 +25,7 @@ public enum OldOrderAccountType { ...@@ -24,6 +25,7 @@ public enum OldOrderAccountType {
DISCOUNT_COUPON(7, "折扣券", "DISCOUNT_COUPON"), DISCOUNT_COUPON(7, "折扣券", "DISCOUNT_COUPON"),
DRIVER_FEE(7, "骑手小费", "DRIVER_FEE"), DRIVER_FEE(7, "骑手小费", "DRIVER_FEE"),
FREIGHT_COUPON(99, "运费券", "FREIGHT_COUPON"), FREIGHT_COUPON(99, "运费券", "FREIGHT_COUPON"),
WITH_ORDER_BUY_COUPON_FEE(10, "随单买月卡", "WITH_ORDER_BUY_COUPON_FEE"),
DISCOUNT_AMOUNT(21, "限时折扣", "DISCOUNT_AMOUNT"), DISCOUNT_AMOUNT(21, "限时折扣", "DISCOUNT_AMOUNT"),
PREMIUM_EXCHANGE(22, "加价购", "PREMIUM_EXCHANGE"), PREMIUM_EXCHANGE(22, "加价购", "PREMIUM_EXCHANGE"),
SECOND_DISCOUNT(23, "第二件N折", "SECOND_DISCOUNT"), SECOND_DISCOUNT(23, "第二件N折", "SECOND_DISCOUNT"),
......
...@@ -39,7 +39,9 @@ public enum QueryOrderAccountType { ...@@ -39,7 +39,9 @@ public enum QueryOrderAccountType {
ONLINE_PAY("ONLINE_PAY", "线上支付"), ONLINE_PAY("ONLINE_PAY", "线上支付"),
FULL_DISTRIBUTION_FEE("FULL_DISTRIBUTION_FEE", "满减配送费"), FULL_DISTRIBUTION_FEE("FULL_DISTRIBUTION_FEE", "满减配送费"),
OFFLINE_PAY("OFFLINE_PAY", "线下支付"), OFFLINE_PAY("OFFLINE_PAY", "线下支付"),
MEMBER_PRICE_DISCOUNT("MEMBER_PRICE_DISCOUNT","会员价优惠"); MEMBER_PRICE_DISCOUNT("MEMBER_PRICE_DISCOUNT","会员价优惠"),
MCCAFE_MONTH_CARD("MCCAFE_MONTH_CARD","麦咖啡月卡"),
;
private String code; private String code;
private String desc; private String desc;
......
...@@ -255,6 +255,16 @@ public class OrderAdapter { ...@@ -255,6 +255,16 @@ public class OrderAdapter {
.build(); .build();
orderAccountDtos.add(createOrderAccountDto); orderAccountDtos.add(createOrderAccountDto);
} }
if(null != shoppingCartGoodsDto.getPayCardFee() && 0l != shoppingCartGoodsDto.getPayCardFee()) {
CreateOrderAccountRequest createOrderAccountDto = CreateOrderAccountRequest.builder()
.accountId("")
.name("啡常月享卡")
.price(shoppingCartGoodsDto.getPayCardFee())
.accountType(QueryOrderAccountType.MCCAFE_MONTH_CARD)
.sequence(orderAccountIndex++)
.build();
orderAccountDtos.add(createOrderAccountDto);
}
createOrderDto.setAccounts(CollectionUtils.isNotEmpty(orderAccountDtos) ? orderAccountDtos : Collections.emptyList()); createOrderDto.setAccounts(CollectionUtils.isNotEmpty(orderAccountDtos) ? orderAccountDtos : Collections.emptyList());
//设置库存扣减 //设置库存扣减
...@@ -1170,6 +1180,18 @@ public class OrderAdapter { ...@@ -1170,6 +1180,18 @@ public class OrderAdapter {
//商品信息转换 //商品信息转换
convent2ProductVos(ordersBean.getProductList(), responseVo); convent2ProductVos(ordersBean.getProductList(), responseVo);
responseVo.setOrderAccounts(convent2OrderAccountVo(ordersBean.getApportionDetails())); responseVo.setOrderAccounts(convent2OrderAccountVo(ordersBean.getApportionDetails()));
if(CollectionUtils.isNotEmpty(ordersBean.getOrderCostDetailList())) {
ordersBean.getOrderCostDetailList().forEach(o -> {
if(o.getCostType() == 10 && o.getBillType() == 1) {
ProductVo productVo = new ProductVo();
productVo.setName(o.getCostName());
productVo.setSpuName(o.getCostName());
productVo.setFinalPrice(o.getCostAmount().longValue());
productVo.setOriginalPrice(o.getActualCostAmount().longValue());
responseVo.getProducts().add(productVo);
}
});
}
Long promotionAmount = 0L; Long promotionAmount = 0L;
Long deliveryAmount = 0L; Long deliveryAmount = 0L;
Long packageAmount = 0L; Long packageAmount = 0L;
...@@ -1942,10 +1964,14 @@ public class OrderAdapter { ...@@ -1942,10 +1964,14 @@ public class OrderAdapter {
discountTotalAmount = discountTotalAmount + productDiscount.getDiscountAmount()*productDiscount.getDiscountQty(); discountTotalAmount = discountTotalAmount + productDiscount.getDiscountAmount()*productDiscount.getDiscountQty();
if (OrderAccountType.PRODUCT_COUPON.getCode().equals(productDiscount.getDiscountType())) { if (OrderAccountType.PRODUCT_COUPON.getCode().equals(productDiscount.getDiscountType())) {
hasProductCoupon = true; hasProductCoupon = true;
productVo.setName(productDiscount.getDiscountDesc()); if("啡常月享卡".equals(productDiscount.getDiscountDesc())) {
productVo.setSpuName(productDiscount.getDiscountDesc()); productVo.setCouponName(productDiscount.getDiscountDesc());
productVo.setExtras(""); } else {
productVo.setSpecification(""); productVo.setName(productDiscount.getDiscountDesc());
productVo.setSpuName(productDiscount.getDiscountDesc());
productVo.setExtras("");
productVo.setSpecification("");
}
} }
if (OrderAccountType.BUYM_SENDN.getCode().equals(productDiscount.getDiscountType())) { if (OrderAccountType.BUYM_SENDN.getCode().equals(productDiscount.getDiscountType())) {
activityType = ActivityTypeEnum.TYPE_61.getCode(); activityType = ActivityTypeEnum.TYPE_61.getCode();
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
*/ */
package cn.freemud.entities.dto; package cn.freemud.entities.dto;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderCostResp;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.commons.lang.builder.ToStringBuilder;
...@@ -196,6 +197,8 @@ public class QueryOrdersResponseDto { ...@@ -196,6 +197,8 @@ public class QueryOrdersResponseDto {
private AddDeliveryInfo addInfo; private AddDeliveryInfo addInfo;
private List<OrderCostResp> orderCostDetailList;
/** /**
* 订单操作状态(从订单操作历史表中获取) * 订单操作状态(从订单操作历史表中获取)
*/ */
......
...@@ -95,6 +95,11 @@ public class ShoppingCartGoodsDto { ...@@ -95,6 +95,11 @@ public class ShoppingCartGoodsDto {
*/ */
private String discountDeliveryActivityCode; private String discountDeliveryActivityCode;
/**
* 麦咖啡-咖啡月卡价格
*/
private Long payCardFee;
@Data @Data
public static class CartGoodsDetailDto { public static class CartGoodsDetailDto {
/** /**
......
package cn.freemud.entities.dto.user;
import lombok.Data;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: SendCouponForqujiaRequestDto
* @Package cn.freemud.entities.dto.user
* @Description:
* @author: ping1.wu
* @date: 2020/10/10 17:35
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class QujiaForbiddenCardCodeRequestDto {
private String memberId;
private String partnerId;
private String thirdPartMemberId;
private List<SendCouponForqujiaDtoResponseDto.Card> cardInfo;
}
package cn.freemud.entities.dto.user;
import lombok.Data;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: SendCouponForqujiaDtoResponseDto
* @Package cn.freemud.entities.dto.user
* @Description:
* @author: ping1.wu
* @date: 2020/10/12 11:20
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class SendCouponForqujiaDtoResponseDto {
private String code;
private String message;
private Integer ver;
private Result data;
@Data
public final static class Result {
private List<Card> card_list;
}
@Data
public final static class Card {
private String card_code;
private String card_id;
private String card_type;
private String card_type_code;
private String outer_str;
private String received_id;
private String received_time;
private String user_id;
}
}
package cn.freemud.entities.dto.user;
import lombok.Data;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: SendCouponForqujiaRequestDto
* @Package cn.freemud.entities.dto.user
* @Description:
* @author: ping1.wu
* @date: 2020/10/10 17:35
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class SendCouponForqujiaRequestDto {
private String receivedId;
private String thirdPartyMemberId;
private List<String> cardIds;
}
...@@ -228,6 +228,14 @@ public class CreateOrderVo { ...@@ -228,6 +228,14 @@ public class CreateOrderVo {
private String invoiceTitle; private String invoiceTitle;
/** /**
* 随单购是否购买月享卡
* 1:不购买,2:月卡续费,3:新购月卡
*/
private String buyMonthlyCard;
private String monthlyCardCode;
/**
* 是否使用电子风味卡,如果不为空则为使用 * 是否使用电子风味卡,如果不为空则为使用
*/ */
@Valid @Valid
......
...@@ -133,6 +133,11 @@ public class ProductVo { ...@@ -133,6 +133,11 @@ public class ProductVo {
private String unit; private String unit;
/** /**
* 优惠券名称
*/
private String couponName;
/**
* 1.5.5版本添加 * 1.5.5版本添加
* 商品参与活动类型(61:买一赠一) * 商品参与活动类型(61:买一赠一)
*/ */
......
...@@ -99,6 +99,14 @@ public class ShoppingCartInfoRequestVo { ...@@ -99,6 +99,14 @@ public class ShoppingCartInfoRequestVo {
private String receiveId; private String receiveId;
/**
* 随单购是否购买月享卡
* 1:不购买,2:月卡续费,3:新购月卡
*/
private String buyMonthlyCard;
private String monthlyCardCode;
@Data @Data
public final static class SendGoods { public final static class SendGoods {
/** /**
......
...@@ -479,6 +479,8 @@ public class CheckMCCafeOrder { ...@@ -479,6 +479,8 @@ public class CheckMCCafeOrder {
.useCustomerScore(createOrderVo.getUseCustomerScore()) .useCustomerScore(createOrderVo.getUseCustomerScore())
.buyMemberCard(null) .buyMemberCard(null)
.menuType(createOrderVo.getMenuType()) .menuType(createOrderVo.getMenuType())
.buyMonthlyCard(createOrderVo.getBuyMonthlyCard())
.monthlyCardCode(createOrderVo.getMonthlyCardCode())
.build(); .build();
List<MCCafeCouponVo> couponCodeList = new ArrayList<>(); List<MCCafeCouponVo> couponCodeList = new ArrayList<>();
if("remove".equals(createOrderVo.getCouponCode())) { if("remove".equals(createOrderVo.getCouponCode())) {
......
...@@ -313,10 +313,10 @@ public class CouponClientServiceImpl implements CouponClientService { ...@@ -313,10 +313,10 @@ public class CouponClientServiceImpl implements CouponClientService {
return null; return null;
} }
List<QueryOrdersResponseDto.DataBean.OrderBean.AccountBean> accountList = orderBean.getAccountList().stream().filter( List<QueryOrdersResponseDto.DataBean.OrderBean.AccountBean> accountList = orderBean.getAccountList().stream().filter(
account -> (orderAdapter.getQueryOrderAccountType(OldOrderAccountType.getByCode(account.getType())).equals(QueryOrderAccountType.COUPON) account -> (OldOrderAccountType.PRODUCT_COUPON.equals(OldOrderAccountType.getByCode(account.getType()))
|| orderAdapter.getQueryOrderAccountType(OldOrderAccountType.getByCode(account.getType())).equals(QueryOrderAccountType.PRODUCT_COUPON) || OldOrderAccountType.COUPON.equals(OldOrderAccountType.getByCode(account.getType()))
|| orderAdapter.getQueryOrderAccountType(OldOrderAccountType.getByCode(account.getType())).equals(QueryOrderAccountType.DISCOUNT_COUPON)) || OldOrderAccountType.DISCOUNT_COUPON.equals(OldOrderAccountType.getByCode(account.getType()))
).collect(Collectors.toList()); ).collect(Collectors.toList());
if (CollectionUtils.isEmpty(accountList)) { if (CollectionUtils.isEmpty(accountList)) {
return null; return null;
} }
......
package cn.freemud.service.thirdparty;
import cn.freemud.entities.dto.BuryingPointBigDto;
import cn.freemud.entities.dto.BuryingPointResDto;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @program: micro_progeram_service
* @description: 大数据
* @author: xinqi.wang
* @create: 2019-02-22 11:12
**/
@FeignClient(name = "BIGDATACLIENT", url = "${saas.bigdataclient.feign.url}")
@RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface BigDataFeiginClient {
@PostMapping("/collector/v2/buryPoint")
public BuryingPointResDto syncLoginData(BuryingPointBigDto buryingPointBigDto);
}
\ No newline at end of file
...@@ -15,6 +15,9 @@ package cn.freemud.service.thirdparty; ...@@ -15,6 +15,9 @@ package cn.freemud.service.thirdparty;
import cn.freemud.entities.dto.GetMemberCouponListRequestDto; import cn.freemud.entities.dto.GetMemberCouponListRequestDto;
import cn.freemud.entities.dto.GetMemberCouponListResponseDto; import cn.freemud.entities.dto.GetMemberCouponListResponseDto;
import cn.freemud.entities.dto.user.QujiaForbiddenCardCodeRequestDto;
import cn.freemud.entities.dto.user.SendCouponForqujiaDtoResponseDto;
import cn.freemud.entities.dto.user.SendCouponForqujiaRequestDto;
import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
...@@ -28,4 +31,10 @@ public interface CustomerExtendClient { ...@@ -28,4 +31,10 @@ public interface CustomerExtendClient {
*/ */
@PostMapping(value = "/customerextendservice/coupon/getCoupons") @PostMapping(value = "/customerextendservice/coupon/getCoupons")
GetMemberCouponListResponseDto getMemberCouponListRequestDto(@RequestBody GetMemberCouponListRequestDto getMemberCouponListRequestDto); GetMemberCouponListResponseDto getMemberCouponListRequestDto(@RequestBody GetMemberCouponListRequestDto getMemberCouponListRequestDto);
@PostMapping(value = "/customerextendservice/qujia/receiveCard")
SendCouponForqujiaDtoResponseDto sendCouponForqujia(@RequestBody SendCouponForqujiaRequestDto request);
@PostMapping(value = "/customerextendservice/qujia/forbiddenCardCode")
SendCouponForqujiaDtoResponseDto forbiddenCardCode(@RequestBody QujiaForbiddenCardCodeRequestDto request);
} }
package cn.freemud.service.thirdparty;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @author liming.guo
* @date 2018/5/11
* @description 会员服务
*/
@FeignClient(name = "member-product-application", url = "${saas.memberproductclient.feign.url:}")
@RequestMapping(value = "/member", produces = {"application/json;charset=UTF-8"})
public interface MemberProductClient {
// /**
// * 根据聚道注册会员New
// */
// @PostMapping(value = "/product/user/registerbychannel")
// MemberRegisterResponseDto registerByChannel(@RequestBody MemberRegisterRequestDto memberRegisterRequestDto);
// /**
// * 根据渠道信息查询会员信息New
// */
// @PostMapping(value = "/product/user/getmemberinfobychannel")
// GetMemberInfoByChannelResponseDto getMemberInfoByChannel(@RequestBody GetMemberInfoByChannelRequestDto getMemberInfoByChannelRequestDto);
// /**
// * 修改unionidNew
// */
// @PostMapping(value = "/product/user/updateuserunionId")
// JSONObject updateUserUnionId(@RequestBody UpdateMemUnionIdRequestDto updateMemUnionIdRequestDto);
// /**
// * 根据会员id获取会员信息New
// */
// @PostMapping(value = "/product/user/getmemberinfobyid")
// GetMemberInfoByIdResponseDto getMemberInfoById(@RequestBody GetMemberInfoByIdRequestDto getMemberInfoByIdRequestDto);
//
// /**
// * 会员资料修改New
// */
// @PostMapping(value = "/product/user/perfectinfobyid")
// JSONObject editMemberInfo(@RequestBody EditMemberInfoRequestDto editMemberInfoRequestDto);
//
//
// /**
// * 获取用户收货地址列表
// */
// @PostMapping(value = "/product/user/receivelist")
// GetReceiveAddressListResponseDto getReceiveAddressList(@RequestBody GetReceiveAddressListDto getReceiveListDto);
//
// /**
// * 新增收货地址
// */
// @PostMapping(value = "/product/user/receiveadd")
// AddReceiveAddressResponseDto addReceiveAddress(@RequestBody AddReceiveAddressDto addReceiveDto);
//
// /**
// * 修改收货地址
// */
// @PostMapping(value = "/product/user/receiveupdate")
// UpdateReceiveAddressResponseDto updateReceiveAddress(@RequestBody UpdateReceiveAddressDto updateReceiveAddressDto);
//
// /**
// * 删除收货地址
// */
// @PostMapping(value = "/product/user/receivedelete")
// DeleteReceiveAddressResponseDto deleteReceiveAddress(@RequestBody DeleteReceiveAddressDto deleteReceiveAddressDto);
//
// /**
// * 查询收货距离
// */
// @PostMapping(value = "/product/user/receivequerydistance")
// QueryReceiveDistanceResponseDto queryReceiveAddressDistance(@RequestBody QueryReceiveDistanceDto dto);
//
// /**
// * 查询收货地址详情
// */
// @PostMapping(value = "/product/user/receivequerybyid")
// QueryReceiveAddressResponseDto queryReceiveAddressById(@RequestBody QueryReceiveAddressDto queryReceiveAddressDto);
// /**
// * 会员优惠券列表
// */
// @PostMapping(value = "/product/coupon/getmembercouponlist")
// GetMemberCouponListResponseDto getMemberCouponListRequestDto(@RequestBody GetMemberCouponListRequestDto getMemberCouponListRequestDto);
}
package cn.freemud.service.thirdparty;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.AddUserOrderEvaluationNewRequestVo;
import cn.freemud.entities.vo.AddUserOrderEvaluationRequestVo;
import cn.freemud.entities.vo.GetEvaluationDetailByOrderIdRequestVo;
import cn.freemud.entities.vo.GetEvaluationStatusNewRequestVo;
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;
@FeignClient(name = "MICRO-SUPPORT-SERVICE",url = "${saas.microsupportclient.feign.url}")
@RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface MicroSupportClient {
@PostMapping("/evaluation/addEvaluationDetail")
BaseResponse addEvaluationDetail(@RequestBody AddUserOrderEvaluationRequestVo request);
@PostMapping("/evaluation/addEvaluationDetailNew")
BaseResponse addEvaluationDetailNew(@RequestBody AddUserOrderEvaluationNewRequestVo request);
@PostMapping("/evaluation/getEvaluteDetailByOrderId")
BaseResponse getEvaluteDetailByOrderId(@RequestBody GetEvaluationDetailByOrderIdRequestVo request);
@PostMapping("/evaluation/getEvaluationStatus")
BaseResponse getEvaluationStatus(@RequestBody GetEvaluationDetailByOrderIdRequestVo request);
@PostMapping("/evaluation/getEvaluationStatusNew")
BaseResponse getEvaluationStatusNew(@RequestBody GetEvaluationStatusNewRequestVo request);
}
/** ///**
* All rights Reserved, Designed By www.freemud.cn // * All rights Reserved, Designed By www.freemud.cn
* // *
* @Title: PaymentClient // * @Title: PaymentClient
* @Package cn.freemud.service.thirdparty // * @Package cn.freemud.service.thirdparty
* @Description: 支付服务 // * @Description: 支付服务
* @author: liming.guo // * @author: liming.guo
* @date: 2018/5/12519:24 // * @date: 2018/5/12519:24
* @version V1.0 // * @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved. // * @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目 // * 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/ // */
//
package cn.freemud.service.thirdparty; //package cn.freemud.service.thirdparty;
//
import cn.freemud.entities.dto.*; //import cn.freemud.entities.dto.*;
import org.springframework.cloud.netflix.feign.FeignClient; //import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping; //import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; //import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; //import org.springframework.web.bind.annotation.RequestMapping;
//
//
@FeignClient(name = "payment-service",url="${saas.paymentclient.feign.url}") //@FeignClient(name = "payment-service",url="${saas.paymentclient.feign.url}")
@RequestMapping(produces = {"application/json;charset=UTF-8"}) //@RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface PaymentClient { //public interface PaymentClient {
//
/** // /**
* 统一下单 // * 统一下单
*/ // */
@PostMapping("/api?token=1234") // @PostMapping("/api?token=1234")
OrderPayResponseDto orderPay(@RequestBody OrderPayDto orderPayDto); // OrderPayResponseDto orderPay(@RequestBody OrderPayDto orderPayDto);
//
/** // /**
* 支付退款 // * 支付退款
*/ // */
@PostMapping("/api?token=2345") // @PostMapping("/api?token=2345")
String orderRefund(@RequestBody OrderRefundDto orderRefundDto); // String orderRefund(@RequestBody OrderRefundDto orderRefundDto);
//
/** // /**
* 支付查询 // * 支付查询
*/ // */
@PostMapping("/api?token=4567") // @PostMapping("/api?token=4567")
QueryOrderPayInfoResponseDto queryOrderPayInfo(@RequestBody QueryOrderPayInfoDto queryOrderPayInfoDto); // QueryOrderPayInfoResponseDto queryOrderPayInfo(@RequestBody QueryOrderPayInfoDto queryOrderPayInfoDto);
//
//
} //}
/** ///**
* All rights Reserved, Designed By www.freemud.cn // * All rights Reserved, Designed By www.freemud.cn
* // *
* @Title: WeChatClient // * @Title: WeChatClient
* @Package cn.freemud.service.thirdparty // * @Package cn.freemud.service.thirdparty
* @Description: // * @Description:
* @author: liming.guo // * @author: liming.guo
* @date: 2018/5/29 16:10 // * @date: 2018/5/29 16:10
* @version V1.0 // * @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved. // * @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目 // * 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/ // */
package cn.freemud.service.thirdparty; //package cn.freemud.service.thirdparty;
//
import cn.freemud.entities.dto.GetWxQrcodeDto; //import cn.freemud.entities.dto.GetWxQrcodeDto;
import cn.freemud.entities.dto.WeChatGetAccessTokenResponseDto; //import cn.freemud.entities.dto.WeChatGetAccessTokenResponseDto;
import cn.freemud.entities.dto.WechatSendMessageDto; //import cn.freemud.entities.dto.WechatSendMessageDto;
import org.springframework.cloud.netflix.feign.FeignClient; //import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.http.MediaType; //import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*; //import org.springframework.web.bind.annotation.*;
//
@FeignClient(name = "WECHAT-SERVICE", url = "${saas.wechatclient.feign.url}") //@FeignClient(name = "WECHAT-SERVICE", url = "${saas.wechatclient.feign.url}")
public interface WeChatClient { //public interface WeChatClient {
//
/** // /**
* 小程序登录 获取用户openId 和 sercetKey // * 小程序登录 获取用户openId 和 sercetKey
* // *
* @param appid 小程序appId // * @param appid 小程序appId
* @param secret 小程序appSecret // * @param secret 小程序appSecret
* @param jsCode code // * @param jsCode code
* @param grantType authorization_code // * @param grantType authorization_code
* @return // * @return
*/ // */
@GetMapping(value = "/sns/jscode2session",produces = MediaType.APPLICATION_FORM_URLENCODED_VALUE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) // @GetMapping(value = "/sns/jscode2session",produces = MediaType.APPLICATION_FORM_URLENCODED_VALUE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
String getSession(@RequestParam("appid") String appid, @RequestParam("secret") String secret, // String getSession(@RequestParam("appid") String appid, @RequestParam("secret") String secret,
@RequestParam("js_code") String jsCode, @RequestParam("grant_type") String grantType); // @RequestParam("js_code") String jsCode, @RequestParam("grant_type") String grantType);
//
//
/** // /**
* 小程序登录 获取用户openId 和 sercetKey 小程序授权模式 // * 小程序登录 获取用户openId 和 sercetKey 小程序授权模式
*/ // */
@GetMapping(value = "/sns/component/jscode2session", produces = MediaType.APPLICATION_FORM_URLENCODED_VALUE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) // @GetMapping(value = "/sns/component/jscode2session", produces = MediaType.APPLICATION_FORM_URLENCODED_VALUE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
String getCode2session(@RequestParam("appid") String appid, @RequestParam("js_code") String code, // String getCode2session(@RequestParam("appid") String appid, @RequestParam("js_code") String code,
@RequestParam("grant_type") String authorizationCode, @RequestParam("component_appid") String componentAppid, // @RequestParam("grant_type") String authorizationCode, @RequestParam("component_appid") String componentAppid,
@RequestParam("component_access_token") String componentAccessToken); // @RequestParam("component_access_token") String componentAccessToken);
//
//
/** // /**
* 获取小程序access_token // * 获取小程序access_token
*/ // */
@GetMapping(value = "/cgi-bin/token", produces = MediaType.APPLICATION_FORM_URLENCODED_VALUE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) // @GetMapping(value = "/cgi-bin/token", produces = MediaType.APPLICATION_FORM_URLENCODED_VALUE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
WeChatGetAccessTokenResponseDto getAccessToken(@RequestParam("grant_type") String grantType, @RequestParam("appid") String appid, // WeChatGetAccessTokenResponseDto getAccessToken(@RequestParam("grant_type") String grantType, @RequestParam("appid") String appid,
@RequestParam("secret") String secret); // @RequestParam("secret") String secret);
//
//
/** // /**
* 获取小程序码 // * 获取小程序码
*/ // */
@PostMapping(value = "wxa/getwxacodeunlimit?access_token=12_-kLukRhVUNHrX2JFwSTHK7ZjAkSAKRQuReFhmoZKGywkUbBNTWoR8IDHbfN0jA1ot_i2xlhkV89tKUqM8hDBsAMPlg6d6p0YnqufZY5B-pFzG_JH7rbb43Lcc3gnNAvHQLrD-rpRg3LGi5VDYERgAFADJW", // @PostMapping(value = "wxa/getwxacodeunlimit?access_token=12_-kLukRhVUNHrX2JFwSTHK7ZjAkSAKRQuReFhmoZKGywkUbBNTWoR8IDHbfN0jA1ot_i2xlhkV89tKUqM8hDBsAMPlg6d6p0YnqufZY5B-pFzG_JH7rbb43Lcc3gnNAvHQLrD-rpRg3LGi5VDYERgAFADJW",
produces = MediaType.APPLICATION_FORM_URLENCODED_VALUE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) // produces = MediaType.APPLICATION_FORM_URLENCODED_VALUE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
String getWxacodeunlimit(@RequestBody GetWxQrcodeDto getWxQrcodeDto); // String getWxacodeunlimit(@RequestBody GetWxQrcodeDto getWxQrcodeDto);
//
@PostMapping(value = "/cgi-bin/message/wxopen/template/send?access_token={accessToken}", produces = MediaType.APPLICATION_FORM_URLENCODED_VALUE, // @PostMapping(value = "/cgi-bin/message/wxopen/template/send?access_token={accessToken}", produces = MediaType.APPLICATION_FORM_URLENCODED_VALUE,
consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) // consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
String sendMessageNotice(@PathVariable("accessToken") String accessToken, @RequestBody WechatSendMessageDto wechatSendMessageDto); // String sendMessageNotice(@PathVariable("accessToken") String accessToken, @RequestBody WechatSendMessageDto wechatSendMessageDto);
//
//
//
//
//
//
} //}
package cn.freemud.service.thirdparty; //package cn.freemud.service.thirdparty;
//
import cn.freemud.entities.dto.wechat.GetAuthorizerRequestDto; //import cn.freemud.entities.dto.wechat.GetAuthorizerRequestDto;
import cn.freemud.entities.dto.wechat.GetTokenResponseDto; //import cn.freemud.entities.dto.wechat.GetTokenResponseDto;
import org.springframework.cloud.netflix.feign.FeignClient; //import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping; //import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; //import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; //import org.springframework.web.bind.annotation.RequestMapping;
//
@FeignClient(name = "WECHAT-APPLICATION-SERVICE",url = "${saas.wechatserviceclient.feign.url}") //@FeignClient(name = "WECHAT-APPLICATION-SERVICE",url = "${saas.wechatserviceclient.feign.url}")
@RequestMapping(produces = {"application/json;charset=UTF-8"}) //@RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface WechatApplicationServiceClient { //public interface WechatApplicationServiceClient {
//
@PostMapping(value = "/token/application/delivery/getTokenForDelivery") // @PostMapping(value = "/token/application/delivery/getTokenForDelivery")
GetTokenResponseDto getToken(@RequestBody GetAuthorizerRequestDto request); // GetTokenResponseDto getToken(@RequestBody GetAuthorizerRequestDto request);
} //}
//
package cn.freemud.service.thirdparty; //package cn.freemud.service.thirdparty;
//
import org.springframework.cloud.netflix.feign.FeignClient; //import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.http.MediaType; //import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping; //import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; //import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader; //import org.springframework.web.bind.annotation.RequestHeader;
//
/** ///**
* All rights Reserved, Designed By www.freemud.cn // * All rights Reserved, Designed By www.freemud.cn
* // *
* @version V1.6.0 // * @version V1.6.0
* @Title: WechatMchClient // * @Title: WechatMchClient
* @Package cn.freemud.service.thirdparty // * @Package cn.freemud.service.thirdparty
* @Description: 简单描述下这个类是做什么用的 // * @Description: 简单描述下这个类是做什么用的
* @author: hang.chai // * @author: hang.chai
* @date: 2019/3/12 14:57 // * @date: 2019/3/12 14:57
* @Copyright: 2019 www.freemud.cn Inc. All rights reserved. // * @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目 // * 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/ // */
@FeignClient(name = "WECHATMCH-SERVICE", url = "${saas.wechatmchclient.feign.url}") //@FeignClient(name = "WECHATMCH-SERVICE", url = "${saas.wechatmchclient.feign.url}")
public interface WechatMchClient { //public interface WechatMchClient {
//
/** // /**
* 点餐订单信息同步到微信 // * 点餐订单信息同步到微信
*/ // */
@PostMapping(value = "v3/catering/orders/sync-status", produces = MediaType.APPLICATION_JSON_VALUE ,consumes = MediaType.APPLICATION_JSON_VALUE ) // @PostMapping(value = "v3/catering/orders/sync-status", produces = MediaType.APPLICATION_JSON_VALUE ,consumes = MediaType.APPLICATION_JSON_VALUE )
String syncStatus(@RequestHeader("Authorization") String authorizatio, @RequestBody String syncStatusDto); // String syncStatus(@RequestHeader("Authorization") String authorizatio, @RequestBody String syncStatusDto);
} //}
...@@ -25,7 +25,7 @@ import cn.freemud.entities.vo.OrderRefundVo; ...@@ -25,7 +25,7 @@ import cn.freemud.entities.vo.OrderRefundVo;
import cn.freemud.enums.ActivityTypeEnum; import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.enums.ApportionType; import cn.freemud.enums.ApportionType;
import cn.freemud.service.impl.OrderServiceImpl; import cn.freemud.service.impl.OrderServiceImpl;
import cn.freemud.service.thirdparty.PaymentClient; //import cn.freemud.service.thirdparty.PaymentClient;
import cn.freemud.utils.ValidationCode; import cn.freemud.utils.ValidationCode;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
...@@ -55,8 +55,8 @@ import java.util.List; ...@@ -55,8 +55,8 @@ import java.util.List;
@EnableAutoConfiguration @EnableAutoConfiguration
public class OrderServiceTest { public class OrderServiceTest {
@Autowired // @Autowired
private PaymentClient paymentClient; // private PaymentClient paymentClient;
@Autowired @Autowired
private OrderServiceImpl orderService; private OrderServiceImpl orderService;
@Autowired @Autowired
...@@ -137,28 +137,28 @@ public class OrderServiceTest { ...@@ -137,28 +137,28 @@ public class OrderServiceTest {
// orderService.sendPaySuccessMessage(orderBean); // orderService.sendPaySuccessMessage(orderBean);
} }
@Test // @Test
public void orderRefund() { // public void orderRefund() {
OrderRefundDto orderRefundDto = new OrderRefundDto(); // OrderRefundDto orderRefundDto = new OrderRefundDto();
orderRefundDto.setVer(2); // orderRefundDto.setVer(2);
orderRefundDto.setReqtype(62); // orderRefundDto.setReqtype(62);
orderRefundDto.setUnifyid("66077052-0288-4113-b520-7aeee3ab86cb"); // orderRefundDto.setUnifyid("66077052-0288-4113-b520-7aeee3ab86cb");
orderRefundDto.setRefund_id(System.currentTimeMillis() + Long.valueOf(ValidationCode.getRandomNumber(5))); // orderRefundDto.setRefund_id(System.currentTimeMillis() + Long.valueOf(ValidationCode.getRandomNumber(5)));
orderRefundDto.setStore_id("fm99999"); // orderRefundDto.setStore_id("fm99999");
orderRefundDto.setStation_id("1"); // orderRefundDto.setStation_id("1");
orderRefundDto.setOperator_id("1"); // orderRefundDto.setOperator_id("1");
orderRefundDto.setTrans_id("111103004053082672"); // orderRefundDto.setTrans_id("111103004053082672");
orderRefundDto.setOpenid("ob0iP4nIyQrS9Ye-vgKOlsc2QGm8"); // orderRefundDto.setOpenid("ob0iP4nIyQrS9Ye-vgKOlsc2QGm8");
List<OrderRefundDto.TransactionBean> transactionBeans = Lists.newArrayList(); // List<OrderRefundDto.TransactionBean> transactionBeans = Lists.newArrayList();
OrderRefundDto.TransactionBean transactionBean = new OrderRefundDto.TransactionBean(); // OrderRefundDto.TransactionBean transactionBean = new OrderRefundDto.TransactionBean();
transactionBean.setFmid("ZHL1407O1555433903"); // transactionBean.setFmid("ZHL1407O1555433903");
transactionBean.setRefund_count(1L); // transactionBean.setRefund_count(1L);
transactionBeans.add(transactionBean); // transactionBeans.add(transactionBean);
orderRefundDto.setTransactions(transactionBeans); // orderRefundDto.setTransactions(transactionBeans);
String json = paymentClient.orderRefund(orderRefundDto); // String json = paymentClient.orderRefund(orderRefundDto);
System.out.println("json===" + json); // System.out.println("json===" + json);
//
} // }
// @Test // @Test
// public void getAccessToken() { // public void getAccessToken() {
......
/** ///**
* All rights Reserved, Designed By www.freemud.cn // * All rights Reserved, Designed By www.freemud.cn
* // *
* @Title: WeChatServiceTest // * @Title: WeChatServiceTest
* @Package cn.freemud.service // * @Package cn.freemud.service
* @Description: // * @Description:
* @author: liming.guo // * @author: liming.guo
* @date: 2018/6/6 16:35 // * @date: 2018/6/6 16:35
* @version V1.0 // * @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved. // * @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目 // * 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/ // */
package cn.freemud.service; //package cn.freemud.service;
//
import cn.freemud.entities.dto.GetWxQrcodeDto; //import cn.freemud.entities.dto.GetWxQrcodeDto;
import cn.freemud.entities.dto.WeChatGetAccessTokenResponseDto; //import cn.freemud.entities.dto.WeChatGetAccessTokenResponseDto;
import cn.freemud.entities.dto.WechatSendMessageDto; //import cn.freemud.entities.dto.WechatSendMessageDto;
import cn.freemud.service.thirdparty.WeChatClient; //import cn.freemud.service.thirdparty.WeChatClient;
import org.junit.Test; //import org.junit.Test;
import org.junit.runner.RunWith; //import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; //import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest; //import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; //import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients; //import org.springframework.cloud.netflix.feign.EnableFeignClients;
import org.springframework.test.context.junit4.SpringRunner; //import org.springframework.test.context.junit4.SpringRunner;
//
import java.util.HashMap; //import java.util.HashMap;
import java.util.Map; //import java.util.Map;
//
@RunWith(SpringRunner.class) //@RunWith(SpringRunner.class)
@SpringBootTest //@SpringBootTest
@EnableDiscoveryClient //@EnableDiscoveryClient
@EnableFeignClients //@EnableFeignClients
@EnableAutoConfiguration //@EnableAutoConfiguration
public class WeChatServiceTest { //public class WeChatServiceTest {
//
@Autowired // @Autowired
private WeChatClient weChatClient; // private WeChatClient weChatClient;
//
@Test // @Test
public void getAccessToken() { // public void getAccessToken() {
String appid = "wx2eba2ce69704a6c7"; // String appid = "wx2eba2ce69704a6c7";
String secret = "df050cb30e30b51b8133e06d44d72b9a"; // String secret = "df050cb30e30b51b8133e06d44d72b9a";
String grantType = "client_credential"; // String grantType = "client_credential";
WeChatGetAccessTokenResponseDto responseDto = weChatClient.getAccessToken(grantType, appid, secret); // WeChatGetAccessTokenResponseDto responseDto = weChatClient.getAccessToken(grantType, appid, secret);
System.out.println("token==" + responseDto); // System.out.println("token==" + responseDto);
} // }
//
@Test // @Test
public void getWxQrcode() { // public void getWxQrcode() {
//
GetWxQrcodeDto getWxQrcodeDto = new GetWxQrcodeDto(); // GetWxQrcodeDto getWxQrcodeDto = new GetWxQrcodeDto();
getWxQrcodeDto.setScene("1036"); // getWxQrcodeDto.setScene("1036");
getWxQrcodeDto.setPage(""); // getWxQrcodeDto.setPage("");
getWxQrcodeDto.setWidth(430); // getWxQrcodeDto.setWidth(430);
String str = weChatClient.getWxacodeunlimit(getWxQrcodeDto); // String str = weChatClient.getWxacodeunlimit(getWxQrcodeDto);
System.out.println("wxqrcode==" + str); // System.out.println("wxqrcode==" + str);
//
} // }
//
@Test // @Test
public void sendMessageNotice() { // public void sendMessageNotice() {
String accessToken = "17_0NEPvs2YJRxR3bpjOhon2FHEcpn9ue8SBzpyHRFSpyTvjUyvuJIJsKL0i0at-pY7Dou3JWuO6-K6O8aC2cJBS6fjjronQ32p5EYYRfPxHc5z9qAn1q-gDPQl04N7_t0lPnj8HYbIjmwAbWKEPFKdADDCSX"; // String accessToken = "17_0NEPvs2YJRxR3bpjOhon2FHEcpn9ue8SBzpyHRFSpyTvjUyvuJIJsKL0i0at-pY7Dou3JWuO6-K6O8aC2cJBS6fjjronQ32p5EYYRfPxHc5z9qAn1q-gDPQl04N7_t0lPnj8HYbIjmwAbWKEPFKdADDCSX";
String touser = "oORZK5LUxVZyFgqCuzTEHstJOGaI";//ovf0Y40GNyl2qg5QwiZLsB11LeIM oORZK5LUxVZyFgqCuzTEHstJOGaI // String touser = "oORZK5LUxVZyFgqCuzTEHstJOGaI";//ovf0Y40GNyl2qg5QwiZLsB11LeIM oORZK5LUxVZyFgqCuzTEHstJOGaI
String templateId = "20kl3uQeiYO7PvrL-z7O6qswiPDSR2sndPT5prC_KiQ"; // String templateId = "20kl3uQeiYO7PvrL-z7O6qswiPDSR2sndPT5prC_KiQ";
String page = "pages/orderDetails?oid=133149780875544839&pageFrom=msg"; // String page = "pages/orderDetails?oid=133149780875544839&pageFrom=msg";
String formId = "wx10182702359930512694f8b01502942951";//ee10bbef7f845522920f36c65bb645ec // String formId = "wx10182702359930512694f8b01502942951";//ee10bbef7f845522920f36c65bb645ec
String color = "#FF0000"; // String color = "#FF0000";
String emphasisKeyword = "keyword1.DATA"; // String emphasisKeyword = "keyword1.DATA";
WechatSendMessageDto.content content = new WechatSendMessageDto.content(); // WechatSendMessageDto.content content = new WechatSendMessageDto.content();
Map map1 = new HashMap(); // Map map1 = new HashMap();
WechatSendMessageDto.content.keyword keyword1 = new WechatSendMessageDto.content.keyword(); // WechatSendMessageDto.content.keyword keyword1 = new WechatSendMessageDto.content.keyword();
WechatSendMessageDto.content.keyword keyword2 = new WechatSendMessageDto.content.keyword(); // WechatSendMessageDto.content.keyword keyword2 = new WechatSendMessageDto.content.keyword();
WechatSendMessageDto.content.keyword keyword3 = new WechatSendMessageDto.content.keyword(); // WechatSendMessageDto.content.keyword keyword3 = new WechatSendMessageDto.content.keyword();
keyword1.setValue("114"); // keyword1.setValue("114");
keyword1.setColor("#173177"); // keyword1.setColor("#173177");
content.setKeyword1(keyword1); // content.setKeyword1(keyword1);
keyword2.setValue("肥猫"); // keyword2.setValue("肥猫");
keyword2.setColor("#173177"); // keyword2.setColor("#173177");
content.setKeyword2(keyword2); // content.setKeyword2(keyword2);
keyword3.setValue("非码网络科技有限公司"); // keyword3.setValue("非码网络科技有限公司");
keyword3.setColor("#173177"); // keyword3.setColor("#173177");
content.setKeyword3(keyword3); // content.setKeyword3(keyword3);
WechatSendMessageDto wechatSendMessageDto = new WechatSendMessageDto(); // WechatSendMessageDto wechatSendMessageDto = new WechatSendMessageDto();
wechatSendMessageDto.setTemplate_id(templateId); // wechatSendMessageDto.setTemplate_id(templateId);
wechatSendMessageDto.setForm_id(formId); // wechatSendMessageDto.setForm_id(formId);
wechatSendMessageDto.setTouser(touser); // wechatSendMessageDto.setTouser(touser);
wechatSendMessageDto.setData(content); // wechatSendMessageDto.setData(content);
wechatSendMessageDto.setPage(page); // wechatSendMessageDto.setPage(page);
wechatSendMessageDto.setEmphasis_keyword(emphasisKeyword); // wechatSendMessageDto.setEmphasis_keyword(emphasisKeyword);
String str = weChatClient.sendMessageNotice(accessToken, wechatSendMessageDto); // String str = weChatClient.sendMessageNotice(accessToken, wechatSendMessageDto);
System.out.println("getTemplateMessage==" + str); // System.out.println("getTemplateMessage==" + str);
//
} // }
} //}
package cn.freemud.management.entities.dto.request.customer;
import lombok.Data;
import java.util.List;
@Data
public class ForbiddenCardCodeRequest {
private String memberId;
private String partnerId;
private List<CardInfo> cardInfo;
@Data
public static class CardInfo {
private String card_code;
private String card_id;
}
}
...@@ -2,6 +2,7 @@ package cn.freemud.management.service.impl; ...@@ -2,6 +2,7 @@ package cn.freemud.management.service.impl;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.util.DateUtil; import cn.freemud.base.util.DateUtil;
import cn.freemud.management.entities.dto.request.customer.ForbiddenCardCodeRequest;
import cn.freemud.management.entities.dto.request.delivery.DeliveryOrderAssemblyackRequest; import cn.freemud.management.entities.dto.request.delivery.DeliveryOrderAssemblyackRequest;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest; import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.management.entities.dto.response.order.OrderManagerResponse; import cn.freemud.management.entities.dto.response.order.OrderManagerResponse;
...@@ -10,18 +11,24 @@ import cn.freemud.management.enums.OrderStatus; ...@@ -10,18 +11,24 @@ import cn.freemud.management.enums.OrderStatus;
import cn.freemud.management.enums.ResponseResult; import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.service.OrderManagerService; import cn.freemud.management.service.OrderManagerService;
import cn.freemud.management.service.handle.*; import cn.freemud.management.service.handle.*;
import cn.freemud.management.thirdparty.CustomerMcCafeClient;
import cn.freemud.management.thirdparty.DeliveryMCCafeClient; import cn.freemud.management.thirdparty.DeliveryMCCafeClient;
import cn.freemud.management.util.ResponseUtil; import cn.freemud.management.util.ResponseUtil;
import com.freemud.application.sdk.api.deliverycenter.response.DeliveryResponseDto; import com.freemud.application.sdk.api.deliverycenter.response.DeliveryResponseDto;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderCostResp;
import com.freemud.sdk.api.assortment.message.enums.OrderType; import com.freemud.sdk.api.assortment.message.enums.OrderType;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse; import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Objects; import java.util.Objects;
/** /**
...@@ -50,6 +57,13 @@ public class McCafeMangerServiceImpl implements OrderManagerService { ...@@ -50,6 +57,13 @@ public class McCafeMangerServiceImpl implements OrderManagerService {
private StockHandle stockHandle; private StockHandle stockHandle;
@Resource @Resource
private DeliveryMCCafeClient deliveryMCCafeClient; private DeliveryMCCafeClient deliveryMCCafeClient;
@Resource
private CustomerMcCafeClient customerMcCafeClient;
@Value("${mcCafe.partnerId}")
private String macCafePartnerId;
@Value("${mcCafe.withOrderBuy.cardId}")
private String macCafeCardId;
@Override @Override
public BaseResponse<OrderManagerResponse> orderConfirm(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) { public BaseResponse<OrderManagerResponse> orderConfirm(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
...@@ -110,6 +124,26 @@ public class McCafeMangerServiceImpl implements OrderManagerService { ...@@ -110,6 +124,26 @@ public class McCafeMangerServiceImpl implements OrderManagerService {
}else { }else {
//支付退款 //支付退款
PayRefundResponse refundResponse = paymentHandle.refund(orderManagerRequest, orderBean); PayRefundResponse refundResponse = paymentHandle.refund(orderManagerRequest, orderBean);
//随单购月卡进行卡作废
if (CollectionUtils.isNotEmpty(orderBean.getOrderCostDetailList())){
OrderCostResp orderCostResp = orderBean.getOrderCostDetailList().stream().filter(t -> 10 == t.getCostType()).findFirst().orElse(null);
if (orderCostResp != null){
String note = orderCostResp.getNote();
if (StringUtils.isNotEmpty(note)) {
// 调用会员作废券接口
ForbiddenCardCodeRequest cardCodeRequest = new ForbiddenCardCodeRequest();
cardCodeRequest.setMemberId(orderBean.getUserId());
cardCodeRequest.setPartnerId(macCafePartnerId);
List<ForbiddenCardCodeRequest.CardInfo> list = new ArrayList<>();
ForbiddenCardCodeRequest.CardInfo cardInfo = new ForbiddenCardCodeRequest.CardInfo();
cardInfo.setCard_code(note);
cardInfo.setCard_id(macCafeCardId);
list.add(cardInfo);
cardCodeRequest.setCardInfo(list);
customerMcCafeClient.forbiddenCardCodeForQujia(cardCodeRequest);
}
}
}
//订单拒单 //订单拒单
saasOrderHandle.orderReject(orderManagerRequest, refundResponse, orderBean); saasOrderHandle.orderReject(orderManagerRequest, refundResponse, orderBean);
//冲正库存 //冲正库存
......
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: CustomerExtendClient
* @Package cn.freemud.service.thirdparty
* @Description:
* @author: song.cai
* @date: 2019/2/20 16:42
* @version V1.0
* @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package cn.freemud.management.thirdparty;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.management.entities.dto.request.customer.ForbiddenCardCodeRequest;
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;
@FeignClient(name = "customer-extend-service", url = "${saas.customerextendclient.feign.url}")
@RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface CustomerMcCafeClient {
@PostMapping(value = "/customerextendservice/qujia/forbiddenCardCode")
BaseResponse forbiddenCardCodeForQujia(@RequestBody ForbiddenCardCodeRequest request);
}
...@@ -225,5 +225,9 @@ public class InterfaceAddressConstant { ...@@ -225,5 +225,9 @@ public class InterfaceAddressConstant {
public static final String PARKING_V2_REVOKE = "/parking/v2/revoke"; public static final String PARKING_V2_REVOKE = "/parking/v2/revoke";
/**
* 修改费用表购买的优惠券和优惠表使用的优惠券
*/
public static final String UPDATE_COST_COUPONCODE = "/order/v2/mcCafe/updateCostCouponCode";
} }
package com.freemud.application.sdk.api.ordercenter.request;
import lombok.Data;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: UpdateCouponCodeReq
* @Package com.freemud.application.sdk.api.ordercenter.request
* @Description:
* @author: ping1.wu
* @date: 2020/10/8 16:50
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class UpdateCouponCodeReq {
private String orderCode;
//发券券号
private String couponCode;
//配置券号
private String oldCouponCode;
}
...@@ -876,4 +876,17 @@ public class OrderSdkService { ...@@ -876,4 +876,17 @@ public class OrderSdkService {
return responseHandle(responseDTO); return responseHandle(responseDTO);
} }
/**
* 修改费用表购买的优惠券和优惠表使用的优惠券
* @param request
* @param trackingNo
* @return
*/
public BaseResponse updateCostCouponCode(UpdateCouponCodeReq request, String trackingNo) {
OrderBaseResp responseDTO = RequestThirdPartyUtils.httpJsonReqComplexNew(restTemplate, UPDATE_COST_COUPONCODE,
createBaseRequest(request, trackingNo), new ParameterizedTypeReference<OrderBaseResp>() {
});
return responseHandle(responseDTO);
}
} }
...@@ -65,6 +65,10 @@ public class ActivityCalculationDiscountRequestDto { ...@@ -65,6 +65,10 @@ public class ActivityCalculationDiscountRequestDto {
private Long distributionFee; private Long distributionFee;
/** /**
* 购买月卡费用(分)
*/
private Long payCardFee;
/**
* 是否是会员 * 是否是会员
*/ */
private Boolean isMember; private Boolean isMember;
......
...@@ -99,6 +99,10 @@ public class ActivityCalculationDiscountResponseDto { ...@@ -99,6 +99,10 @@ public class ActivityCalculationDiscountResponseDto {
* 优惠后 配送费 * 优惠后 配送费
*/ */
private Long distributionFee; private Long distributionFee;
/**
* 麦咖啡,月卡金额
*/
private Long payCardFee;
@Data @Data
......
...@@ -122,6 +122,10 @@ public class ShoppingCartGoodsDto { ...@@ -122,6 +122,10 @@ public class ShoppingCartGoodsDto {
*/ */
private String discountDeliveryActivityCode; private String discountDeliveryActivityCode;
/**
* 麦咖啡-咖啡月卡价格
*/
private Long payCardFee;
@Data @Data
public static class CartGoodsDetailDto { public static class CartGoodsDetailDto {
......
...@@ -135,4 +135,10 @@ public class ShoppingCartGoodsResponseVo extends ShoppingCartGoodsBaseResponseV ...@@ -135,4 +135,10 @@ public class ShoppingCartGoodsResponseVo extends ShoppingCartGoodsBaseResponseV
*/ */
private String freightCouponCode; private String freightCouponCode;
private Integer version; private Integer version;
/**
* 麦咖啡-咖啡月卡价格
*/
private Long payCardFee;
} }
...@@ -87,6 +87,16 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo { ...@@ -87,6 +87,16 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo {
*/ */
private String menuType ; private String menuType ;
/**
* 随单购是否购买月享卡
* 1:不购买,2:月卡续费,3:新购月卡
*/
private String buyMonthlyCard;
/**
* 月享卡卡号
*/
private String monthlyCardCode;
@Data @Data
public final static class SendGoods { public final static class SendGoods {
/** /**
......
...@@ -84,12 +84,13 @@ public class CalculationServiceImpl { ...@@ -84,12 +84,13 @@ public class CalculationServiceImpl {
public ActivityCalculationDiscountResponseDto.CalculationDiscountResult updateShoppingCartGoodsDiscount(String partnerId, String storeId, String userId, String appId, Integer orderType, public ActivityCalculationDiscountResponseDto.CalculationDiscountResult updateShoppingCartGoodsDiscount(String partnerId, String storeId, String userId, String appId, Integer orderType,
boolean isMember, String menuType, String receiveId,String couponCode, boolean isMember, String menuType, String receiveId,String couponCode,
List<CartGoods> cartGoodsList, List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons, List<CartGoods> cartGoodsList, List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons,
List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo) { List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo,
Long payCardFee) {
Long deliveryAmount = calculateDeliveryAmount(receiveId, partnerId, storeId, menuType); Long deliveryAmount = calculateDeliveryAmount(receiveId, partnerId, storeId, menuType);
ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscount = getCalculationDiscount(partnerId, storeId, userId, appId, orderType, isMember, ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscount = getCalculationDiscount(partnerId, storeId, userId, appId, orderType, isMember,
menuType, deliveryAmount, cartGoodsList, coupons, sendGoodsList); menuType, deliveryAmount, cartGoodsList, coupons, sendGoodsList,payCardFee);
updateDiscount(calculationDiscount, cartGoodsList, shoppingCartGoodsResponseVo,deliveryAmount); updateDiscount(calculationDiscount, cartGoodsList, shoppingCartGoodsResponseVo,deliveryAmount);
//满减 //满减
ActivityQueryDto activityQueryDto = fullPromotionCalculation.getActivityQueryDto(partnerId, storeId, userId, appId, orderType); ActivityQueryDto activityQueryDto = fullPromotionCalculation.getActivityQueryDto(partnerId, storeId, userId, appId, orderType);
...@@ -111,7 +112,7 @@ public class CalculationServiceImpl { ...@@ -111,7 +112,7 @@ public class CalculationServiceImpl {
public ActivityCalculationDiscountResponseDto.CalculationDiscountResult getCalculationDiscount( public ActivityCalculationDiscountResponseDto.CalculationDiscountResult getCalculationDiscount(
String partnerId, String storeId, String userId, String appId, Integer orderType, boolean isMember, String menuType, Long deliveryAmount, String partnerId, String storeId, String userId, String appId, Integer orderType, boolean isMember, String menuType, Long deliveryAmount,
List<CartGoods> cartGoodsList, List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons, List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList) { List<CartGoods> cartGoodsList, List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons, List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList, Long payCardFee) {
List<ActivityCalculationDiscountRequestDto.CalculationDiscountGoods> calculationDiscountGoodsList = new ArrayList<>(); List<ActivityCalculationDiscountRequestDto.CalculationDiscountGoods> calculationDiscountGoodsList = new ArrayList<>();
for (CartGoods cartGoods : cartGoodsList) { for (CartGoods cartGoods : cartGoodsList) {
...@@ -141,6 +142,7 @@ public class CalculationServiceImpl { ...@@ -141,6 +142,7 @@ public class CalculationServiceImpl {
discountRequest.setOrgIds(commonService.getOrgIds(partnerId, storeId)); discountRequest.setOrgIds(commonService.getOrgIds(partnerId, storeId));
discountRequest.setDistributionFee(deliveryAmount); discountRequest.setDistributionFee(deliveryAmount);
discountRequest.setIsMember(isMember); discountRequest.setIsMember(isMember);
discountRequest.setPayCardFee(payCardFee);
ActivityCalculationDiscountResponseDto activityCalculationDiscountResponseDto; ActivityCalculationDiscountResponseDto activityCalculationDiscountResponseDto;
try { try {
activityCalculationDiscountResponseDto = activityClient.calculationDiscountSharing(discountRequest); activityCalculationDiscountResponseDto = activityClient.calculationDiscountSharing(discountRequest);
...@@ -166,6 +168,8 @@ public class CalculationServiceImpl { ...@@ -166,6 +168,8 @@ public class CalculationServiceImpl {
shoppingCartGoodsDto.setOriginalTotalAmount(shoppingCartGoodsResponseVo.getOriginalTotalAmount()); shoppingCartGoodsDto.setOriginalTotalAmount(shoppingCartGoodsResponseVo.getOriginalTotalAmount());
shoppingCartGoodsDto.setTotalAmount(shoppingCartGoodsResponseVo.getTotalAmount()); shoppingCartGoodsDto.setTotalAmount(shoppingCartGoodsResponseVo.getTotalAmount());
shoppingCartGoodsDto.setTotalDiscountAmount(shoppingCartGoodsResponseVo.getTotalDiscountAmount()); shoppingCartGoodsDto.setTotalDiscountAmount(shoppingCartGoodsResponseVo.getTotalDiscountAmount());
//随单购 月卡价格
shoppingCartGoodsDto.setPayCardFee(shoppingCartGoodsResponseVo.getPayCardFee());
shoppingCartGoodsDto.setDeliveryAmount(shoppingCartGoodsResponseVo.getDeliveryAmount()); shoppingCartGoodsDto.setDeliveryAmount(shoppingCartGoodsResponseVo.getDeliveryAmount());
shoppingCartGoodsDto.setDiscountDeliveryAmount(shoppingCartGoodsResponseVo.getDiscountDeliveryAmount()); shoppingCartGoodsDto.setDiscountDeliveryAmount(shoppingCartGoodsResponseVo.getDiscountDeliveryAmount());
...@@ -455,6 +459,7 @@ public class CalculationServiceImpl { ...@@ -455,6 +459,7 @@ public class CalculationServiceImpl {
shoppingCartGoodsResponseVo.setOriginalTotalAmount(calculationDiscount == null ? totalOriginalAmount : calculationDiscount.getOriginalTotalAmount()); shoppingCartGoodsResponseVo.setOriginalTotalAmount(calculationDiscount == null ? totalOriginalAmount : calculationDiscount.getOriginalTotalAmount());
shoppingCartGoodsResponseVo.setTotalAmount(calculationDiscount == null ? totalAmount : calculationDiscount.getTotalAmount()); shoppingCartGoodsResponseVo.setTotalAmount(calculationDiscount == null ? totalAmount : calculationDiscount.getTotalAmount());
shoppingCartGoodsResponseVo.setPayCardFee(calculationDiscount == null ? 0L : (calculationDiscount.getPayCardFee()== null ? 0l : calculationDiscount.getPayCardFee()));
shoppingCartGoodsResponseVo.setOriginalTotalAmount(shoppingCartGoodsResponseVo.getOriginalTotalAmount() + totalPackgeAmount); shoppingCartGoodsResponseVo.setOriginalTotalAmount(shoppingCartGoodsResponseVo.getOriginalTotalAmount() + totalPackgeAmount);
shoppingCartGoodsResponseVo.setTotalAmount(shoppingCartGoodsResponseVo.getTotalAmount() + totalPackgeAmount); shoppingCartGoodsResponseVo.setTotalAmount(shoppingCartGoodsResponseVo.getTotalAmount() + totalPackgeAmount);
shoppingCartGoodsResponseVo.setNewPackAmount(totalPackgeAmount); shoppingCartGoodsResponseVo.setNewPackAmount(totalPackgeAmount);
......
...@@ -67,7 +67,8 @@ public class CouponDiscountCalculation { ...@@ -67,7 +67,8 @@ public class CouponDiscountCalculation {
// private CardBinClient cardBinClient; // private CardBinClient cardBinClient;
@Value("${coupon.app.id}") @Value("${coupon.app.id}")
private String appid; private String appid;
@Value("${mccafe.universal.coupon.code}")
private String mccafeUniversalCouponCode;
private static final String mcafe = "mccafe"; private static final String mcafe = "mccafe";
...@@ -88,12 +89,26 @@ public class CouponDiscountCalculation { ...@@ -88,12 +89,26 @@ public class CouponDiscountCalculation {
return; return;
} }
//订单级别券优惠
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount> discounts = calculationDiscountResult.getDiscounts();
if (CollectionUtils.isEmpty(discounts)) {
return;
}
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount> couponDiscounts = discounts.stream().filter(discount -> (ActivityTypeEnum.TYPE_3.getCode().equals(discount.getType())
|| (ActivityTypeEnum.TYPE_31.getCode().equals(discount.getType())) || (ActivityTypeEnum.TYPE_32.getCode().equals(discount.getType())))).collect(Collectors.toList());
if (CollectionUtils.isEmpty(couponDiscounts)) {
return;
}
Map<String, ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> goodsMap = goodsList.parallelStream() Map<String, ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> goodsMap = goodsList.parallelStream()
.collect(Collectors.toMap(ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods::getCartGoodsUid, Function.identity(), (k1, k2) -> k1)); .collect(Collectors.toMap(ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods::getCartGoodsUid, Function.identity(), (k1, k2) -> k1));
// 匹配随单购悦享卡
ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount discountMon = couponDiscounts.stream().filter(t -> (ActivityTypeEnum.TYPE_32.getCode().equals(t.getType())
&& mccafeUniversalCouponCode.equals(t.getActivityCode()))).findFirst().orElse(null);
for (CartGoods cartGoods : cartGoodsList) { for (CartGoods cartGoods : cartGoodsList) {
//商品券商品 //商品券商品
if (StringUtils.isNotBlank(cartGoods.getCouponCode())) { if (StringUtils.isNotBlank(cartGoods.getCouponCode()) || discountMon != null) {
// String couponCode = cartGoods.getCouponCode(); // String couponCode = cartGoods.getCouponCode();
// // 计算优惠信息时,已将券校验过,放在map中 // // 计算优惠信息时,已将券校验过,放在map中
// Map<String, CheckSpqInfoResponseDto> validCouponMap = calculationDiscountResult.getValidCouponMap(); // Map<String, CheckSpqInfoResponseDto> validCouponMap = calculationDiscountResult.getValidCouponMap();
...@@ -122,9 +137,6 @@ public class CouponDiscountCalculation { ...@@ -122,9 +137,6 @@ public class CouponDiscountCalculation {
// 当couponCode不为空时,需计算优惠价格 // 当couponCode不为空时,需计算优惠价格
long couponDiscount = 0; long couponDiscount = 0;
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount> discounts = calculationDiscountResult.getDiscounts();
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount> couponDiscounts = discounts.stream().filter(discount -> (ActivityTypeEnum.TYPE_3.getCode().equals(discount.getType())
|| (ActivityTypeEnum.TYPE_31.getCode().equals(discount.getType())) || (ActivityTypeEnum.TYPE_32.getCode().equals(discount.getType())))).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(couponDiscounts)) { if (CollectionUtils.isNotEmpty(couponDiscounts)) {
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount couponResults : couponDiscounts) { for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount couponResults : couponDiscounts) {
couponDiscount = couponDiscount + (couponResults.getDiscount() == null ? 0 : couponResults.getDiscount()); couponDiscount = couponDiscount + (couponResults.getDiscount() == null ? 0 : couponResults.getDiscount());
...@@ -150,6 +162,9 @@ public class CouponDiscountCalculation { ...@@ -150,6 +162,9 @@ public class CouponDiscountCalculation {
} }
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount> discounts = couponDiscounts.stream().filter(discount -> (ActivityTypeEnum.TYPE_3.getCode().equals(discount.getType()) List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount> discounts = couponDiscounts.stream().filter(discount -> (ActivityTypeEnum.TYPE_3.getCode().equals(discount.getType())
|| (ActivityTypeEnum.TYPE_31.getCode().equals(discount.getType())) || (ActivityTypeEnum.TYPE_32.getCode().equals(discount.getType())))).collect(Collectors.toList()); || (ActivityTypeEnum.TYPE_31.getCode().equals(discount.getType())) || (ActivityTypeEnum.TYPE_32.getCode().equals(discount.getType())))).collect(Collectors.toList());
if (CollectionUtils.isEmpty(discounts)) {
return;
}
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> goodsList = calculationDiscountResult.getGoods(); List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> goodsList = calculationDiscountResult.getGoods();
if (CollectionUtils.isEmpty(goodsList)) { if (CollectionUtils.isEmpty(goodsList)) {
...@@ -159,9 +174,11 @@ public class CouponDiscountCalculation { ...@@ -159,9 +174,11 @@ public class CouponDiscountCalculation {
Map<String, ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> goodsMap = goodsList.parallelStream() Map<String, ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> goodsMap = goodsList.parallelStream()
.collect(Collectors.toMap(ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods::getCartGoodsUid, Function.identity(), (k1, k2) -> k1)); .collect(Collectors.toMap(ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods::getCartGoodsUid, Function.identity(), (k1, k2) -> k1));
// 匹配随单购悦享卡
ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount discount = discounts.stream().filter(t -> (ActivityTypeEnum.TYPE_32.getCode().equals(t.getType()) && mccafeUniversalCouponCode.equals(t.getActivityCode()))).findFirst().orElse(null);
for (ShoppingCartGoodsDto.CartGoodsDetailDto cartGoods : shoppingCartGoodsDto.getProducts()) { for (ShoppingCartGoodsDto.CartGoodsDetailDto cartGoods : shoppingCartGoodsDto.getProducts()) {
//商品券商品 //商品券商品
if (StringUtils.isNotEmpty(cartGoods.getCouponCode())) { if (StringUtils.isNotEmpty(cartGoods.getCouponCode()) || discount != null) {
List<ActivityDiscountsDto> productActivityDiscountsDtos = new ArrayList<>(); List<ActivityDiscountsDto> productActivityDiscountsDtos = new ArrayList<>();
if (CollectionUtils.isNotEmpty(discounts)) { if (CollectionUtils.isNotEmpty(discounts)) {
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount couponDiscount : discounts) { for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount couponDiscount : discounts) {
......
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