Commit d3ed036c by xiaoer.li@freemud.com

Merge remote-tracking branch 'remotes/origin/feature/1.9.29_修复发券时指定门店引起的结算页展示非适用门店券问题'

parents cd81c43b a863af59
package cn.freemud.entities.dto.coupon;
import cn.freemud.entities.vo.coupon.CouponStateVo;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: cn.freemud.entities.dto CouponAvailableRespDto
* @Description: TDO 描述....
* @author: family
* @date: 2020/6/30
* @Copyright: www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
@NoArgsConstructor
public class CouponAvailableRespDto {
private List<CouponStateVo> couponStateList;
private String result;
}
package cn.freemud.entities.vo.coupon;
import lombok.Data;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: cn.freemud.entities.vo CouponAvailableReqVo
* @Description: TDO 描述....
* @author: family
* @date: 2020/6/30
* @Copyright: www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class CouponAvailableReqVo {
//渠道id
private String providerId;
//商户号
private String merchantId;
//门店id(校验门店限制)
private String storeId;
//组织机构id列表(校验渠道限制)
private List<String> channelIdList;
//组织机构code列表(校验渠道限制)
private List<String> channelCodeList;
//券码列表
private List<String> couponCodes;
//金额
private Integer totalAmount;
//购物车商品列表
private List<Product> productList;
}
package cn.freemud.entities.vo.coupon;
import lombok.Data;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: cn.freemud.entities.vo.coupon CouponStateVo
* @Description: TDO 描述....
* @author: family
* @date: 2020/6/30
* @Copyright: www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class CouponStateVo {
/**
* 券号
*/
private String couponCode;
private Integer type;
/**
* 状态
* 0 可用 1 不可用 2 限制可用
*/
private Integer state;
/**
* 不可用原因
*/
private String message;
/**
* 最小金额 分
*/
private Integer minAmount;
/**
* 数量
*/
private Integer amount;
/**
* 活动折扣价格 分
*/
private Integer priceDiscount;
/**
* 原价 分
*/
private Integer originalPrice;
/**
* 折扣百分比
*/
private Integer discount;
/**
* 限制类型
* 0 白名单 1 黑名单
*/
private String limitType;
/**
* 可用商品
*/
private List<Product> productList;
}
package cn.freemud.entities.vo.coupon;
import lombok.Data;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: cn.freemud.entities.vo.coupon Product
* @Description: TDO 描述....
* @author: family
* @date: 2020/6/30
* @Copyright: www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class Product {
/**
* 商品id
*/
private String productId;
/**
* 商品单价
*/
private Integer amount;
/**
* quantity
*/
private Integer quantity;
/**
* categoryCode
*/
private String categoryCode;
}
...@@ -22,11 +22,15 @@ import cn.freemud.base.util.DateUtil; ...@@ -22,11 +22,15 @@ import cn.freemud.base.util.DateUtil;
import cn.freemud.constant.ResponseCodeConstant; import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.dto.*; import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.activity.ActivityQueryResponseDto; import cn.freemud.entities.dto.activity.ActivityQueryResponseDto;
import cn.freemud.entities.dto.coupon.CouponAvailableRespDto;
import cn.freemud.entities.dto.openplatform.AddWeixinCardCodeRequestDto; import cn.freemud.entities.dto.openplatform.AddWeixinCardCodeRequestDto;
import cn.freemud.entities.dto.openplatform.AddWeixinCardCodeResponseDto; import cn.freemud.entities.dto.openplatform.AddWeixinCardCodeResponseDto;
import cn.freemud.entities.dto.openplatform.AddWeixinCardJudgeRequestDto; import cn.freemud.entities.dto.openplatform.AddWeixinCardJudgeRequestDto;
import cn.freemud.entities.dto.openplatform.AddWeixinCardJudgeResponseDto; import cn.freemud.entities.dto.openplatform.AddWeixinCardJudgeResponseDto;
import cn.freemud.entities.vo.*; import cn.freemud.entities.vo.*;
import cn.freemud.entities.vo.coupon.CouponAvailableReqVo;
import cn.freemud.entities.vo.coupon.CouponStateVo;
import cn.freemud.entities.vo.coupon.Product;
import cn.freemud.enums.*; import cn.freemud.enums.*;
import cn.freemud.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
import cn.freemud.redis.RedisCache; import cn.freemud.redis.RedisCache;
...@@ -44,12 +48,11 @@ import com.freemud.card.sdk.service.GetCouponService; ...@@ -44,12 +48,11 @@ import com.freemud.card.sdk.service.GetCouponService;
import com.freemud.card.sdk.service.MemberProductService; import com.freemud.card.sdk.service.MemberProductService;
import com.freemud.card.sdk.vo.comm.GetCodeRespVo; import com.freemud.card.sdk.vo.comm.GetCodeRespVo;
import com.freemud.card.sdk.vo.comm.GetCouponVo; import com.freemud.card.sdk.vo.comm.GetCouponVo;
import com.freemud.card.sdk.vo.coupon.CouponStateVo; //import com.freemud.card.sdk.vo.coupon.CouponStateVo;
//import com.freemud.card.sdk.vo.coupon.Product;
//import com.freemud.card.sdk.vo.coupon.request.CouponAvailableReqVo;
import com.freemud.card.sdk.vo.coupon.CreateCouponVo; import com.freemud.card.sdk.vo.coupon.CreateCouponVo;
import com.freemud.card.sdk.vo.coupon.Product;
import com.freemud.card.sdk.vo.coupon.request.CouponAvailableReqVo;
import com.freemud.card.sdk.vo.coupon.request.MemberAddCouponVo; import com.freemud.card.sdk.vo.coupon.request.MemberAddCouponVo;
import com.freemud.card.sdk.vo.coupon.response.CouponAvailableRespVo;
import com.freemud.card.sdk.vo.coupon.response.MemberBaseRespVo; import com.freemud.card.sdk.vo.coupon.response.MemberBaseRespVo;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
...@@ -109,6 +112,8 @@ public class CouponServiceImpl implements CouponService { ...@@ -109,6 +112,8 @@ public class CouponServiceImpl implements CouponService {
private CommonService commonService; private CommonService commonService;
@Value("${coupon.partner.id}") @Value("${coupon.partner.id}")
private String couponPartnerId; private String couponPartnerId;
@Autowired
private CouponAdapterClient couponAdaptClient;
/** /**
* 获取优惠券列表 * 获取优惠券列表
...@@ -405,7 +410,8 @@ public class CouponServiceImpl implements CouponService { ...@@ -405,7 +410,8 @@ public class CouponServiceImpl implements CouponService {
int count = couponCodes.size() / maxNum; int count = couponCodes.size() / maxNum;
// 计算可用不可用券 // 计算可用不可用券
CouponAvailableReqVo couponAvailableReqVo = new CouponAvailableReqVo(); CouponAvailableReqVo couponAvailableReqVo = new CouponAvailableReqVo();
couponAvailableReqVo.setPartnerId(partnerId); couponAvailableReqVo.setProviderId(partnerId);
couponAvailableReqVo.setMerchantId(partnerId);
couponAvailableReqVo.setStoreId(storeId); couponAvailableReqVo.setStoreId(storeId);
List<Product> productList = Lists.newArrayList(); List<Product> productList = Lists.newArrayList();
// 优惠券优先级最高,根据商品原价做计算 // 优惠券优先级最高,根据商品原价做计算
...@@ -425,7 +431,9 @@ public class CouponServiceImpl implements CouponService { ...@@ -425,7 +431,9 @@ public class CouponServiceImpl implements CouponService {
} }
// 书写逻辑 // 书写逻辑
couponAvailableReqVo.setCouponCodes(calCouponCodes); couponAvailableReqVo.setCouponCodes(calCouponCodes);
CouponAvailableRespVo couponsAvailable = couponAvailableService.getCouponsAvailable(couponAvailableReqVo, appSecret); //CouponAvailableRespVo couponsAvailable = couponAvailableService.getCouponsAvailable(couponAvailableReqVo, appSecret);
CouponAvailableRespDto couponsAvailable = couponAdaptClient.getCouponsAvailable(couponAvailableReqVo);
;
LogUtil.info("availableCoupon_couponAvailableService.getCouponsAvailable", JSON.toJSONString(couponAvailableReqVo), JSON.toJSONString(couponsAvailable)); LogUtil.info("availableCoupon_couponAvailableService.getCouponsAvailable", JSON.toJSONString(couponAvailableReqVo), JSON.toJSONString(couponsAvailable));
if (Objects.equals(String.valueOf(couponsAvailable.getResult()), ResponseResult.SUCCESS.getCode()) if (Objects.equals(String.valueOf(couponsAvailable.getResult()), ResponseResult.SUCCESS.getCode())
&& CollectionUtils.isNotEmpty(couponsAvailable.getCouponStateList())) { && CollectionUtils.isNotEmpty(couponsAvailable.getCouponStateList())) {
...@@ -801,7 +809,8 @@ public class CouponServiceImpl implements CouponService { ...@@ -801,7 +809,8 @@ public class CouponServiceImpl implements CouponService {
int count = codes.size() / maxNum; int count = codes.size() / maxNum;
// 计算可用不可用券 // 计算可用不可用券
CouponAvailableReqVo couponAvailableReqVo = new CouponAvailableReqVo(); CouponAvailableReqVo couponAvailableReqVo = new CouponAvailableReqVo();
couponAvailableReqVo.setPartnerId(partnerId); couponAvailableReqVo.setMerchantId(partnerId);
couponAvailableReqVo.setProviderId(partnerId);
couponAvailableReqVo.setStoreId(storeId); couponAvailableReqVo.setStoreId(storeId);
List<Product> productList = Lists.newArrayList(); List<Product> productList = Lists.newArrayList();
// 优惠券优先级最高,根据商品原价做计算 // 优惠券优先级最高,根据商品原价做计算
...@@ -822,7 +831,8 @@ public class CouponServiceImpl implements CouponService { ...@@ -822,7 +831,8 @@ public class CouponServiceImpl implements CouponService {
// 书写逻辑 // 书写逻辑
couponAvailableReqVo.setCouponCodes(calCouponCodes); couponAvailableReqVo.setCouponCodes(calCouponCodes);
log.info("availableCoupon couponAvailableService.getCouponsAvailable num:{};start:{}", j, JSON.toJSONString(couponAvailableReqVo)); log.info("availableCoupon couponAvailableService.getCouponsAvailable num:{};start:{}", j, JSON.toJSONString(couponAvailableReqVo));
CouponAvailableRespVo couponsAvailable = couponAvailableService.getCouponsAvailable(couponAvailableReqVo, appSecret); //CouponAvailableRespVo couponsAvailable = couponAvailableService.getCouponsAvailable(couponAvailableReqVo, appSecret);
CouponAvailableRespDto couponsAvailable = couponAdaptClient.getCouponsAvailable(couponAvailableReqVo);
log.info("availableCoupon couponAvailableService.getCouponsAvailable num:{};end:{}", j, JSON.toJSONString(couponsAvailable)); log.info("availableCoupon couponAvailableService.getCouponsAvailable num:{};end:{}", j, JSON.toJSONString(couponsAvailable));
if (Objects.equals(String.valueOf(couponsAvailable.getResult()), ResponseResult.SUCCESS.getCode()) if (Objects.equals(String.valueOf(couponsAvailable.getResult()), ResponseResult.SUCCESS.getCode())
&& CollectionUtils.isNotEmpty(couponsAvailable.getCouponStateList())) { && CollectionUtils.isNotEmpty(couponsAvailable.getCouponStateList())) {
......
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: OrderClient
* @Package cn.freemud.service.thirdparty
* @Description:
* @author: liming.guo
* @date: 2018/8/10 16:06
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package cn.freemud.service.thirdparty;
import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.coupon.CouponAvailableRespDto;
import cn.freemud.entities.vo.coupon.CouponAvailableReqVo;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
// 测试http://115.159.65.101:8002 线上http://10.51.0.37:8002
//@FeignClient(name = "COUPON",url="${saas.couponclient.feign.url}")
@FeignClient(name = "COUPON-ADAPTER", url = "${saas.couponadapterclient.feign.url}")
@RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface CouponAdapterClient {
/**
* 获取可用券信息
*
* @param couponAvailableReqVo
* @return
*/
@PostMapping("/getCouponsAvailable")
CouponAvailableRespDto getCouponsAvailable(CouponAvailableReqVo couponAvailableReqVo);
}
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