Commit 050b0795 by 徐康

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

# Conflicts:
#	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
parents cf5a4592 f335b1ef
......@@ -480,7 +480,8 @@ public class OrderSdkAdapter {
//老订单服务 1=配送费;3=包装费
if (QueryOrderAccountType.DELIVERY_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.setCostName(accountRequest.getName());
//新订单服务 1=包装费,2=运费,3=餐盒单价,4=餐盒数量
......@@ -520,7 +521,7 @@ public class OrderSdkAdapter {
* @return
*/
private Integer getCostType(QueryOrderAccountType queryOrderAccountType) {
// 订单费用类型 1=包装费,2=运费,3=餐盒单价,4=餐盒数量,5=会员卡费用
// 订单费用类型 1=包装费,2=运费,3=餐盒单价,4=餐盒数量,5=会员卡费用,10=麦咖啡月卡
Integer type = 0;
String code = queryOrderAccountType.getCode();
......@@ -534,6 +535,9 @@ public class OrderSdkAdapter {
case "CARD_ORIGINAL_AMOUNT":
type = 5;
break;
case "MCCAFE_MONTH_CARD":
type = 10;
break;
default:
break;
}
......
......@@ -38,7 +38,9 @@ public enum QueryOrderAccountType {
ONLINE_PAY("ONLINE_PAY", "线上支付"),
FULL_DISTRIBUTION_FEE("FULL_DISTRIBUTION_FEE", "满减配送费"),
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 desc;
......
......@@ -261,6 +261,16 @@ public class OrderAdapter {
.build();
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());
//设置库存扣减
......@@ -1185,6 +1195,18 @@ public class OrderAdapter {
//商品信息转换
convent2ProductVos(ordersBean.getProductList(), responseVo);
responseVo.setOrderAccounts(convent2OrderAccountVo(ordersBean.getApportionDetails()));
if(CollectionUtils.isNotEmpty(ordersBean.getOrderCostDetailList())) {
ordersBean.getOrderCostDetailList().forEach(o -> {
if(o.getCostType() == 10) {
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 deliveryAmount = 0L;
Long packageAmount = 0L;
......@@ -1957,10 +1979,14 @@ public class OrderAdapter {
discountTotalAmount = discountTotalAmount + productDiscount.getDiscountAmount()*productDiscount.getDiscountQty();
if (OrderAccountType.PRODUCT_COUPON.getCode().equals(productDiscount.getDiscountType())) {
hasProductCoupon = true;
productVo.setName(productDiscount.getDiscountDesc());
productVo.setSpuName(productDiscount.getDiscountDesc());
productVo.setExtras("");
productVo.setSpecification("");
if("啡常月享卡".equals(productDiscount.getDiscountDesc())) {
productVo.setCouponName(productDiscount.getDiscountDesc());
} else {
productVo.setName(productDiscount.getDiscountDesc());
productVo.setSpuName(productDiscount.getDiscountDesc());
productVo.setExtras("");
productVo.setSpecification("");
}
}
if (OrderAccountType.BUYM_SENDN.getCode().equals(productDiscount.getDiscountType())) {
activityType = ActivityTypeEnum.TYPE_61.getCode();
......
......@@ -95,6 +95,11 @@ public class ShoppingCartGoodsDto {
*/
private String discountDeliveryActivityCode;
/**
* 麦咖啡-咖啡月卡价格
*/
private Long payCardFee;
@Data
public static class CartGoodsDetailDto {
/**
......
......@@ -133,6 +133,11 @@ public class ProductVo {
private String unit;
/**
* 优惠券名称
*/
private String couponName;
/**
* 1.5.5版本添加
* 商品参与活动类型(61:买一赠一)
*/
......
......@@ -216,8 +216,6 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
@Autowired
private AssortmentOpenPlatformWxappAuthorizerManager wxappAuthorizerManager;
@Autowired
private PaymentNewClient paymentNewClient;
@Autowired
private CacheOpenPlatformPartnerWxappConfigManager cacheOpenPlatformPartnerWxappConfigManager;
@Autowired
private OrderAdapterService orderAdapterService;
......
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
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
*
* @Title: PaymentClient
* @Package cn.freemud.service.thirdparty
* @Description: 支付服务
* @author: liming.guo
* @date: 2018/5/12519:24
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package cn.freemud.service.thirdparty;
import cn.freemud.entities.dto.*;
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 = "payment-service",url="${saas.paymentclient.feign.url}")
@RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface PaymentClient {
/**
* 统一下单
*/
@PostMapping("/api?token=1234")
OrderPayResponseDto orderPay(@RequestBody OrderPayDto orderPayDto);
/**
* 支付退款
*/
@PostMapping("/api?token=2345")
String orderRefund(@RequestBody OrderRefundDto orderRefundDto);
/**
* 支付查询
*/
@PostMapping("/api?token=4567")
QueryOrderPayInfoResponseDto queryOrderPayInfo(@RequestBody QueryOrderPayInfoDto queryOrderPayInfoDto);
}
///**
// * All rights Reserved, Designed By www.freemud.cn
// *
// * @Title: PaymentClient
// * @Package cn.freemud.service.thirdparty
// * @Description: 支付服务
// * @author: liming.guo
// * @date: 2018/5/12519:24
// * @version V1.0
// * @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
// * 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
// */
//
//package cn.freemud.service.thirdparty;
//
//import cn.freemud.entities.dto.*;
//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 = "payment-service",url="${saas.paymentclient.feign.url}")
//@RequestMapping(produces = {"application/json;charset=UTF-8"})
//public interface PaymentClient {
//
// /**
// * 统一下单
// */
// @PostMapping("/api?token=1234")
// OrderPayResponseDto orderPay(@RequestBody OrderPayDto orderPayDto);
//
// /**
// * 支付退款
// */
// @PostMapping("/api?token=2345")
// String orderRefund(@RequestBody OrderRefundDto orderRefundDto);
//
// /**
// * 支付查询
// */
// @PostMapping("/api?token=4567")
// QueryOrderPayInfoResponseDto queryOrderPayInfo(@RequestBody QueryOrderPayInfoDto queryOrderPayInfoDto);
//
//
//}
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: WeChatClient
* @Package cn.freemud.service.thirdparty
* @Description:
* @author: liming.guo
* @date: 2018/5/29 16:10
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package cn.freemud.service.thirdparty;
import cn.freemud.entities.dto.GetWxQrcodeDto;
import cn.freemud.entities.dto.WeChatGetAccessTokenResponseDto;
import cn.freemud.entities.dto.WechatSendMessageDto;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
@FeignClient(name = "WECHAT-SERVICE", url = "${saas.wechatclient.feign.url}")
public interface WeChatClient {
/**
* 小程序登录 获取用户openId 和 sercetKey
*
* @param appid 小程序appId
* @param secret 小程序appSecret
* @param jsCode code
* @param grantType authorization_code
* @return
*/
@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,
@RequestParam("js_code") String jsCode, @RequestParam("grant_type") String grantType);
/**
* 小程序登录 获取用户openId 和 sercetKey 小程序授权模式
*/
@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,
@RequestParam("grant_type") String authorizationCode, @RequestParam("component_appid") String componentAppid,
@RequestParam("component_access_token") String componentAccessToken);
/**
* 获取小程序access_token
*/
@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,
@RequestParam("secret") String secret);
/**
* 获取小程序码
*/
@PostMapping(value = "wxa/getwxacodeunlimit?access_token=12_-kLukRhVUNHrX2JFwSTHK7ZjAkSAKRQuReFhmoZKGywkUbBNTWoR8IDHbfN0jA1ot_i2xlhkV89tKUqM8hDBsAMPlg6d6p0YnqufZY5B-pFzG_JH7rbb43Lcc3gnNAvHQLrD-rpRg3LGi5VDYERgAFADJW",
produces = MediaType.APPLICATION_FORM_URLENCODED_VALUE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
String getWxacodeunlimit(@RequestBody GetWxQrcodeDto getWxQrcodeDto);
@PostMapping(value = "/cgi-bin/message/wxopen/template/send?access_token={accessToken}", produces = MediaType.APPLICATION_FORM_URLENCODED_VALUE,
consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
String sendMessageNotice(@PathVariable("accessToken") String accessToken, @RequestBody WechatSendMessageDto wechatSendMessageDto);
}
///**
// * All rights Reserved, Designed By www.freemud.cn
// *
// * @Title: WeChatClient
// * @Package cn.freemud.service.thirdparty
// * @Description:
// * @author: liming.guo
// * @date: 2018/5/29 16:10
// * @version V1.0
// * @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
// * 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
// */
//package cn.freemud.service.thirdparty;
//
//import cn.freemud.entities.dto.GetWxQrcodeDto;
//import cn.freemud.entities.dto.WeChatGetAccessTokenResponseDto;
//import cn.freemud.entities.dto.WechatSendMessageDto;
//import org.springframework.cloud.netflix.feign.FeignClient;
//import org.springframework.http.MediaType;
//import org.springframework.web.bind.annotation.*;
//
//@FeignClient(name = "WECHAT-SERVICE", url = "${saas.wechatclient.feign.url}")
//public interface WeChatClient {
//
// /**
// * 小程序登录 获取用户openId 和 sercetKey
// *
// * @param appid 小程序appId
// * @param secret 小程序appSecret
// * @param jsCode code
// * @param grantType authorization_code
// * @return
// */
// @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,
// @RequestParam("js_code") String jsCode, @RequestParam("grant_type") String grantType);
//
//
// /**
// * 小程序登录 获取用户openId 和 sercetKey 小程序授权模式
// */
// @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,
// @RequestParam("grant_type") String authorizationCode, @RequestParam("component_appid") String componentAppid,
// @RequestParam("component_access_token") String componentAccessToken);
//
//
// /**
// * 获取小程序access_token
// */
// @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,
// @RequestParam("secret") String secret);
//
//
// /**
// * 获取小程序码
// */
// @PostMapping(value = "wxa/getwxacodeunlimit?access_token=12_-kLukRhVUNHrX2JFwSTHK7ZjAkSAKRQuReFhmoZKGywkUbBNTWoR8IDHbfN0jA1ot_i2xlhkV89tKUqM8hDBsAMPlg6d6p0YnqufZY5B-pFzG_JH7rbb43Lcc3gnNAvHQLrD-rpRg3LGi5VDYERgAFADJW",
// produces = MediaType.APPLICATION_FORM_URLENCODED_VALUE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
// String getWxacodeunlimit(@RequestBody GetWxQrcodeDto getWxQrcodeDto);
//
// @PostMapping(value = "/cgi-bin/message/wxopen/template/send?access_token={accessToken}", produces = MediaType.APPLICATION_FORM_URLENCODED_VALUE,
// consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
// String sendMessageNotice(@PathVariable("accessToken") String accessToken, @RequestBody WechatSendMessageDto wechatSendMessageDto);
//
//
//
//
//
//
//}
package cn.freemud.service.thirdparty;
import cn.freemud.entities.dto.wechat.GetAuthorizerRequestDto;
import cn.freemud.entities.dto.wechat.GetTokenResponseDto;
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 = "WECHAT-APPLICATION-SERVICE",url = "${saas.wechatserviceclient.feign.url}")
@RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface WechatApplicationServiceClient {
@PostMapping(value = "/token/application/delivery/getTokenForDelivery")
GetTokenResponseDto getToken(@RequestBody GetAuthorizerRequestDto request);
}
//package cn.freemud.service.thirdparty;
//
//import cn.freemud.entities.dto.wechat.GetAuthorizerRequestDto;
//import cn.freemud.entities.dto.wechat.GetTokenResponseDto;
//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 = "WECHAT-APPLICATION-SERVICE",url = "${saas.wechatserviceclient.feign.url}")
//@RequestMapping(produces = {"application/json;charset=UTF-8"})
//public interface WechatApplicationServiceClient {
//
// @PostMapping(value = "/token/application/delivery/getTokenForDelivery")
// GetTokenResponseDto getToken(@RequestBody GetAuthorizerRequestDto request);
//}
//
package cn.freemud.service.thirdparty;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.6.0
* @Title: WechatMchClient
* @Package cn.freemud.service.thirdparty
* @Description: 简单描述下这个类是做什么用的
* @author: hang.chai
* @date: 2019/3/12 14:57
* @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@FeignClient(name = "WECHATMCH-SERVICE", url = "${saas.wechatmchclient.feign.url}")
public interface WechatMchClient {
/**
* 点餐订单信息同步到微信
*/
@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);
}
//package cn.freemud.service.thirdparty;
//
//import org.springframework.cloud.netflix.feign.FeignClient;
//import org.springframework.http.MediaType;
//import org.springframework.web.bind.annotation.PostMapping;
//import org.springframework.web.bind.annotation.RequestBody;
//import org.springframework.web.bind.annotation.RequestHeader;
//
///**
// * All rights Reserved, Designed By www.freemud.cn
// *
// * @version V1.6.0
// * @Title: WechatMchClient
// * @Package cn.freemud.service.thirdparty
// * @Description: 简单描述下这个类是做什么用的
// * @author: hang.chai
// * @date: 2019/3/12 14:57
// * @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
// * 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
// */
//@FeignClient(name = "WECHATMCH-SERVICE", url = "${saas.wechatmchclient.feign.url}")
//public interface WechatMchClient {
//
// /**
// * 点餐订单信息同步到微信
// */
// @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);
//}
......@@ -25,7 +25,7 @@ import cn.freemud.entities.vo.OrderRefundVo;
import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.enums.ApportionType;
import cn.freemud.service.impl.OrderServiceImpl;
import cn.freemud.service.thirdparty.PaymentClient;
//import cn.freemud.service.thirdparty.PaymentClient;
import cn.freemud.utils.ValidationCode;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
......@@ -55,8 +55,8 @@ import java.util.List;
@EnableAutoConfiguration
public class OrderServiceTest {
@Autowired
private PaymentClient paymentClient;
// @Autowired
// private PaymentClient paymentClient;
@Autowired
private OrderServiceImpl orderService;
@Autowired
......@@ -137,28 +137,28 @@ public class OrderServiceTest {
// orderService.sendPaySuccessMessage(orderBean);
}
@Test
public void orderRefund() {
OrderRefundDto orderRefundDto = new OrderRefundDto();
orderRefundDto.setVer(2);
orderRefundDto.setReqtype(62);
orderRefundDto.setUnifyid("66077052-0288-4113-b520-7aeee3ab86cb");
orderRefundDto.setRefund_id(System.currentTimeMillis() + Long.valueOf(ValidationCode.getRandomNumber(5)));
orderRefundDto.setStore_id("fm99999");
orderRefundDto.setStation_id("1");
orderRefundDto.setOperator_id("1");
orderRefundDto.setTrans_id("111103004053082672");
orderRefundDto.setOpenid("ob0iP4nIyQrS9Ye-vgKOlsc2QGm8");
List<OrderRefundDto.TransactionBean> transactionBeans = Lists.newArrayList();
OrderRefundDto.TransactionBean transactionBean = new OrderRefundDto.TransactionBean();
transactionBean.setFmid("ZHL1407O1555433903");
transactionBean.setRefund_count(1L);
transactionBeans.add(transactionBean);
orderRefundDto.setTransactions(transactionBeans);
String json = paymentClient.orderRefund(orderRefundDto);
System.out.println("json===" + json);
}
// @Test
// public void orderRefund() {
// OrderRefundDto orderRefundDto = new OrderRefundDto();
// orderRefundDto.setVer(2);
// orderRefundDto.setReqtype(62);
// orderRefundDto.setUnifyid("66077052-0288-4113-b520-7aeee3ab86cb");
// orderRefundDto.setRefund_id(System.currentTimeMillis() + Long.valueOf(ValidationCode.getRandomNumber(5)));
// orderRefundDto.setStore_id("fm99999");
// orderRefundDto.setStation_id("1");
// orderRefundDto.setOperator_id("1");
// orderRefundDto.setTrans_id("111103004053082672");
// orderRefundDto.setOpenid("ob0iP4nIyQrS9Ye-vgKOlsc2QGm8");
// List<OrderRefundDto.TransactionBean> transactionBeans = Lists.newArrayList();
// OrderRefundDto.TransactionBean transactionBean = new OrderRefundDto.TransactionBean();
// transactionBean.setFmid("ZHL1407O1555433903");
// transactionBean.setRefund_count(1L);
// transactionBeans.add(transactionBean);
// orderRefundDto.setTransactions(transactionBeans);
// String json = paymentClient.orderRefund(orderRefundDto);
// System.out.println("json===" + json);
//
// }
// @Test
// public void getAccessToken() {
......
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: WeChatServiceTest
* @Package cn.freemud.service
* @Description:
* @author: liming.guo
* @date: 2018/6/6 16:35
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package cn.freemud.service;
import cn.freemud.entities.dto.GetWxQrcodeDto;
import cn.freemud.entities.dto.WeChatGetAccessTokenResponseDto;
import cn.freemud.entities.dto.WechatSendMessageDto;
import cn.freemud.service.thirdparty.WeChatClient;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.HashMap;
import java.util.Map;
@RunWith(SpringRunner.class)
@SpringBootTest
@EnableDiscoveryClient
@EnableFeignClients
@EnableAutoConfiguration
public class WeChatServiceTest {
@Autowired
private WeChatClient weChatClient;
@Test
public void getAccessToken() {
String appid = "wx2eba2ce69704a6c7";
String secret = "df050cb30e30b51b8133e06d44d72b9a";
String grantType = "client_credential";
WeChatGetAccessTokenResponseDto responseDto = weChatClient.getAccessToken(grantType, appid, secret);
System.out.println("token==" + responseDto);
}
@Test
public void getWxQrcode() {
GetWxQrcodeDto getWxQrcodeDto = new GetWxQrcodeDto();
getWxQrcodeDto.setScene("1036");
getWxQrcodeDto.setPage("");
getWxQrcodeDto.setWidth(430);
String str = weChatClient.getWxacodeunlimit(getWxQrcodeDto);
System.out.println("wxqrcode==" + str);
}
@Test
public void sendMessageNotice() {
String accessToken = "17_0NEPvs2YJRxR3bpjOhon2FHEcpn9ue8SBzpyHRFSpyTvjUyvuJIJsKL0i0at-pY7Dou3JWuO6-K6O8aC2cJBS6fjjronQ32p5EYYRfPxHc5z9qAn1q-gDPQl04N7_t0lPnj8HYbIjmwAbWKEPFKdADDCSX";
String touser = "oORZK5LUxVZyFgqCuzTEHstJOGaI";//ovf0Y40GNyl2qg5QwiZLsB11LeIM oORZK5LUxVZyFgqCuzTEHstJOGaI
String templateId = "20kl3uQeiYO7PvrL-z7O6qswiPDSR2sndPT5prC_KiQ";
String page = "pages/orderDetails?oid=133149780875544839&pageFrom=msg";
String formId = "wx10182702359930512694f8b01502942951";//ee10bbef7f845522920f36c65bb645ec
String color = "#FF0000";
String emphasisKeyword = "keyword1.DATA";
WechatSendMessageDto.content content = new WechatSendMessageDto.content();
Map map1 = new HashMap();
WechatSendMessageDto.content.keyword keyword1 = new WechatSendMessageDto.content.keyword();
WechatSendMessageDto.content.keyword keyword2 = new WechatSendMessageDto.content.keyword();
WechatSendMessageDto.content.keyword keyword3 = new WechatSendMessageDto.content.keyword();
keyword1.setValue("114");
keyword1.setColor("#173177");
content.setKeyword1(keyword1);
keyword2.setValue("肥猫");
keyword2.setColor("#173177");
content.setKeyword2(keyword2);
keyword3.setValue("非码网络科技有限公司");
keyword3.setColor("#173177");
content.setKeyword3(keyword3);
WechatSendMessageDto wechatSendMessageDto = new WechatSendMessageDto();
wechatSendMessageDto.setTemplate_id(templateId);
wechatSendMessageDto.setForm_id(formId);
wechatSendMessageDto.setTouser(touser);
wechatSendMessageDto.setData(content);
wechatSendMessageDto.setPage(page);
wechatSendMessageDto.setEmphasis_keyword(emphasisKeyword);
String str = weChatClient.sendMessageNotice(accessToken, wechatSendMessageDto);
System.out.println("getTemplateMessage==" + str);
}
}
///**
// * All rights Reserved, Designed By www.freemud.cn
// *
// * @Title: WeChatServiceTest
// * @Package cn.freemud.service
// * @Description:
// * @author: liming.guo
// * @date: 2018/6/6 16:35
// * @version V1.0
// * @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
// * 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
// */
//package cn.freemud.service;
//
//import cn.freemud.entities.dto.GetWxQrcodeDto;
//import cn.freemud.entities.dto.WeChatGetAccessTokenResponseDto;
//import cn.freemud.entities.dto.WechatSendMessageDto;
//import cn.freemud.service.thirdparty.WeChatClient;
//import org.junit.Test;
//import org.junit.runner.RunWith;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
//import org.springframework.boot.test.context.SpringBootTest;
//import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
//import org.springframework.cloud.netflix.feign.EnableFeignClients;
//import org.springframework.test.context.junit4.SpringRunner;
//
//import java.util.HashMap;
//import java.util.Map;
//
//@RunWith(SpringRunner.class)
//@SpringBootTest
//@EnableDiscoveryClient
//@EnableFeignClients
//@EnableAutoConfiguration
//public class WeChatServiceTest {
//
// @Autowired
// private WeChatClient weChatClient;
//
// @Test
// public void getAccessToken() {
// String appid = "wx2eba2ce69704a6c7";
// String secret = "df050cb30e30b51b8133e06d44d72b9a";
// String grantType = "client_credential";
// WeChatGetAccessTokenResponseDto responseDto = weChatClient.getAccessToken(grantType, appid, secret);
// System.out.println("token==" + responseDto);
// }
//
// @Test
// public void getWxQrcode() {
//
// GetWxQrcodeDto getWxQrcodeDto = new GetWxQrcodeDto();
// getWxQrcodeDto.setScene("1036");
// getWxQrcodeDto.setPage("");
// getWxQrcodeDto.setWidth(430);
// String str = weChatClient.getWxacodeunlimit(getWxQrcodeDto);
// System.out.println("wxqrcode==" + str);
//
// }
//
// @Test
// public void sendMessageNotice() {
// String accessToken = "17_0NEPvs2YJRxR3bpjOhon2FHEcpn9ue8SBzpyHRFSpyTvjUyvuJIJsKL0i0at-pY7Dou3JWuO6-K6O8aC2cJBS6fjjronQ32p5EYYRfPxHc5z9qAn1q-gDPQl04N7_t0lPnj8HYbIjmwAbWKEPFKdADDCSX";
// String touser = "oORZK5LUxVZyFgqCuzTEHstJOGaI";//ovf0Y40GNyl2qg5QwiZLsB11LeIM oORZK5LUxVZyFgqCuzTEHstJOGaI
// String templateId = "20kl3uQeiYO7PvrL-z7O6qswiPDSR2sndPT5prC_KiQ";
// String page = "pages/orderDetails?oid=133149780875544839&pageFrom=msg";
// String formId = "wx10182702359930512694f8b01502942951";//ee10bbef7f845522920f36c65bb645ec
// String color = "#FF0000";
// String emphasisKeyword = "keyword1.DATA";
// WechatSendMessageDto.content content = new WechatSendMessageDto.content();
// Map map1 = new HashMap();
// WechatSendMessageDto.content.keyword keyword1 = new WechatSendMessageDto.content.keyword();
// WechatSendMessageDto.content.keyword keyword2 = new WechatSendMessageDto.content.keyword();
// WechatSendMessageDto.content.keyword keyword3 = new WechatSendMessageDto.content.keyword();
// keyword1.setValue("114");
// keyword1.setColor("#173177");
// content.setKeyword1(keyword1);
// keyword2.setValue("肥猫");
// keyword2.setColor("#173177");
// content.setKeyword2(keyword2);
// keyword3.setValue("非码网络科技有限公司");
// keyword3.setColor("#173177");
// content.setKeyword3(keyword3);
// WechatSendMessageDto wechatSendMessageDto = new WechatSendMessageDto();
// wechatSendMessageDto.setTemplate_id(templateId);
// wechatSendMessageDto.setForm_id(formId);
// wechatSendMessageDto.setTouser(touser);
// wechatSendMessageDto.setData(content);
// wechatSendMessageDto.setPage(page);
// wechatSendMessageDto.setEmphasis_keyword(emphasisKeyword);
// String str = weChatClient.sendMessageNotice(accessToken, wechatSendMessageDto);
// System.out.println("getTemplateMessage==" + str);
//
// }
//}
......@@ -13,8 +13,10 @@ import cn.freemud.management.service.handle.*;
import cn.freemud.management.thirdparty.DeliveryMCCafeClient;
import cn.freemud.management.util.ResponseUtil;
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.order.response.order.QueryOrdersResponse;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
......@@ -110,6 +112,15 @@ public class McCafeMangerServiceImpl implements OrderManagerService {
}else {
//支付退款
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();
// todo 调用券码作废券接口
}
}
//订单拒单
saasOrderHandle.orderReject(orderManagerRequest, refundResponse, orderBean);
//冲正库存
......
......@@ -225,5 +225,9 @@ public class InterfaceAddressConstant {
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;
}
......@@ -887,4 +887,17 @@ public class OrderSdkService {
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 {
private Long distributionFee;
/**
* 购买月卡费用(分)
*/
private Long payCardFee;
/**
* 是否是会员
*/
private Boolean isMember;
......
......@@ -99,6 +99,10 @@ public class ActivityCalculationDiscountResponseDto {
* 优惠后 配送费
*/
private Long distributionFee;
/**
* 麦咖啡,月卡金额
*/
private Long payCardFee;
@Data
......
......@@ -122,6 +122,10 @@ public class ShoppingCartGoodsDto {
*/
private String discountDeliveryActivityCode;
/**
* 麦咖啡-咖啡月卡价格
*/
private Long payCardFee;
@Data
public static class CartGoodsDetailDto {
......
......@@ -140,4 +140,10 @@ public class ShoppingCartGoodsResponseVo extends ShoppingCartGoodsBaseResponseV
* 运费券
*/
private String freightCouponCode;
/**
* 麦咖啡-咖啡月卡价格
*/
private Long payCardFee;
}
......@@ -87,6 +87,16 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo {
*/
private String menuType ;
/**
* 随单购是否购买月享卡
* 1:不购买,2:月卡续费,3:新购月卡
*/
private String buyMonthlyCard;
/**
* 月享卡卡号
*/
private String monthlyCardCode;
@Data
public final static class SendGoods {
/**
......
......@@ -84,12 +84,13 @@ public class CalculationServiceImpl {
public ActivityCalculationDiscountResponseDto.CalculationDiscountResult updateShoppingCartGoodsDiscount(String partnerId, String storeId, String userId, String appId, Integer orderType,
boolean isMember, String menuType, String receiveId,String couponCode,
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);
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);
//满减
ActivityQueryDto activityQueryDto = fullPromotionCalculation.getActivityQueryDto(partnerId, storeId, userId, appId, orderType);
......@@ -111,7 +112,7 @@ public class CalculationServiceImpl {
public ActivityCalculationDiscountResponseDto.CalculationDiscountResult getCalculationDiscount(
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<>();
for (CartGoods cartGoods : cartGoodsList) {
......@@ -141,6 +142,7 @@ public class CalculationServiceImpl {
discountRequest.setOrgIds(commonService.getOrgIds(partnerId, storeId));
discountRequest.setDistributionFee(deliveryAmount);
discountRequest.setIsMember(isMember);
discountRequest.setPayCardFee(payCardFee);
ActivityCalculationDiscountResponseDto activityCalculationDiscountResponseDto;
try {
activityCalculationDiscountResponseDto = activityClient.calculationDiscountSharing(discountRequest);
......@@ -166,6 +168,8 @@ public class CalculationServiceImpl {
shoppingCartGoodsDto.setOriginalTotalAmount(shoppingCartGoodsResponseVo.getOriginalTotalAmount());
shoppingCartGoodsDto.setTotalAmount(shoppingCartGoodsResponseVo.getTotalAmount());
shoppingCartGoodsDto.setTotalDiscountAmount(shoppingCartGoodsResponseVo.getTotalDiscountAmount());
//随单购 月卡价格
shoppingCartGoodsDto.setPayCardFee(shoppingCartGoodsResponseVo.getPayCardFee());
shoppingCartGoodsDto.setDeliveryAmount(shoppingCartGoodsResponseVo.getDeliveryAmount());
shoppingCartGoodsDto.setDiscountDeliveryAmount(shoppingCartGoodsResponseVo.getDiscountDeliveryAmount());
......@@ -453,6 +457,7 @@ public class CalculationServiceImpl {
shoppingCartGoodsResponseVo.setOriginalTotalAmount(calculationDiscount == null ? totalOriginalAmount : calculationDiscount.getOriginalTotalAmount());
shoppingCartGoodsResponseVo.setTotalAmount(calculationDiscount == null ? totalAmount : calculationDiscount.getTotalAmount());
shoppingCartGoodsResponseVo.setPayCardFee(calculationDiscount == null ? 0L : calculationDiscount.getPayCardFee() );
shoppingCartGoodsResponseVo.setOriginalTotalAmount(shoppingCartGoodsResponseVo.getOriginalTotalAmount() + totalPackgeAmount);
shoppingCartGoodsResponseVo.setTotalAmount(shoppingCartGoodsResponseVo.getTotalAmount() + totalPackgeAmount);
shoppingCartGoodsResponseVo.setNewPackAmount(totalPackgeAmount);
......
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