Commit d4aaa4a4 by ping.wu

积分商城

parent 29070a7b
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
*/ */
package cn.freemud.entities.dto; package cn.freemud.entities.dto;
import cn.freemud.entities.dto.GetMenuResponseDto.DataBean.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean;
import cn.freemud.entities.dto.product.ProductInfo; import cn.freemud.entities.dto.product.ProductInfo;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
......
package cn.freemud.entities.dto.product.pointsmall;
import lombok.Data;
@Data
public class EntityProductType {
// @ApiModelProperty(value = "商品编号")
private String productId;
// @ApiModelProperty(value = "商品描述")
// private String detailText;
// @ApiModelProperty(value = "商品图片")
protected String picture;
// @ApiModelProperty(value = "商品说明图片")
// private List<String> detailImageList;
// @ApiModelProperty(value = "轮播图")
// private List<String> carouselList;
}
package cn.freemud.entities.dto.product.pointsmall;
import lombok.Data;
import java.util.List;
@Data
public class IntegralProductType {
// @ApiModelProperty(value = "商品编号")
private String productId;
// @ApiModelProperty(value = "商品名称")
private String productName;
// @ApiModelProperty(value = "商品类型(1优惠券,2实物)")
private Integer productType;
// @ApiModelProperty(value = "图片列表")
private List<String> pictureList;
// @ApiModelProperty(value = "优惠券编号")
private String couponCode;
// @ApiModelProperty(value = "兑换方式(1积分,2现金,3积分+现金)")
private Integer exchangeType;
// @ApiModelProperty(value = "积分价格")
private Integer integralPrice;
// @ApiModelProperty(value = "现金价格(分)")
private Integer cashPrice;
// @ApiModelProperty(value = "分类编号")
private String categoryId;
// @ApiModelProperty(value = "分类名称")
private String categoryName;
// @ApiModelProperty(value = "首页推荐(0不推荐,1推荐)")
private Integer isRecommend;
// @ApiModelProperty(value = "开始可售时间")
private String startTime;
// @ApiModelProperty(value = "结束可售时间")
private String endTime;
// @ApiModelProperty(value = "库存限制(1:限制库存, 2不限制库存)")
private Integer stockLimit;
// @ApiModelProperty(value = "用户限购类型(1不限制,2限制每人N件,3限制每人每天N件)")
private Integer limitType;
// @ApiModelProperty(value = "限购数量")
private Integer limitNumber;
// @ApiModelProperty(value = "用户等级限制(1不限制,2限制会员等级,3付费会员,4非付费会员)")
private Integer levelType;
// @ApiModelProperty(value = "会员等级列表")
private List<String> levelList;
// @ApiModelProperty(value = "商品排序值")
private Integer sequence;
// @ApiModelProperty(value = "分类排序值")
private Integer categorySequence;
// @ApiModelProperty(value = "商品状态(1下架,2上架,3售罄,4不在可售时间内,5超过每人总限购数量,6超过每人每天限购数量,7用户等级不足,8用户身份不足)")
private Integer status;
// @ApiModelProperty(value = "实物商品信息")
private EntityProductType entityProductInfo;
// @ApiModelProperty(value = "剩余库存数量")
private Integer stockNumber;
// @ApiModelProperty(value = "已兑换数量")
private Integer exchangeNumber;
}
package cn.freemud.entities.dto.product.pointsmall;
import lombok.Data;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: PointMallListProductInfoRequest
* @Package com.freemud.product.contract
* @Description:
* @author yue.liu
* @date: 2021/8/9 14:28
* @Copyright: 2017 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class PointMallListProductInfoRequest {
// @ApiModelProperty(value = "商户编号", required = true)
private String partnerId;
private String memberId;
// @ApiModelProperty(value = "商品编号列表")
private List<String> productIdList;
// @ApiModelProperty(value = "会员等级编号列表")
private List<String> levelIdList;
// @ApiModelProperty(value = "会员类型(1付费会员,2非付费会员)")
private Integer memberType;
// @ApiModelProperty(value = "是否校验可售时间(true校验,false不校验)")
private boolean isValidateTime;
// @ApiModelProperty(value = "是否校验库存(true校验,false不校验)")
private boolean isValidateStock;
// @ApiModelProperty(value = "是否校验用户限制(true校验,false不校验)")
private boolean isValidateMember;
}
package cn.freemud.entities.dto.product.pointsmall;
import lombok.Data;
@Data
public class PointMallListProductInfoResponse<T> {
private T result;
private Integer statusCode;
private String message;
}
package cn.freemud.entities.dto.product.pointsmall;
import lombok.Data;
@Data
public class ProductStockRequest {
//兑换数量
public Integer exchangeNumber;
//非码商品编号
public String productId;
//库存数量
public Integer stockNumber;
}
package cn.freemud.entities.dto.product.pointsmall;
import lombok.Data;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: UpdateStocksRequest
* @Package com.freemud.product.contract
* @Description:
* @author yue.liu
* @date: 2021/8/9 14:28
* @Copyright: 2017 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class UpdatePointsMallStocksRequest {
// @ApiModelProperty(value = "1增加库存或兑换数量,2减少库存,3修改库存,兑换数量只支持新增", required = true)
public String changeType;
// @ApiModelProperty(value = "交易号, maxLength = 36", required = true)
public String transNo;
// @ApiModelProperty("备注, maxLength = 50")
public String remark;
// @ApiModelProperty("交易时间 格式类型 yyyy-MM-dd HH:mm:ss")
public String transTime;
// @ApiModelProperty(value = "商品库存信息,建议数量不要超过500", required = true)
public List<ProductStockRequest> productStocks;
// @ApiModelProperty(value = "会员编号", required = true)
public String memberId;
}
package cn.freemud.entities.dto.user;
import lombok.Data;
@Data
public class UserScoreRequest {
private Integer reduceAmount;
private String scoreOrderNo;
private Integer UseScore;
private Integer changeType;
private Integer operationType;
private String memberId;
private String partnerId;
private String storeId;
}
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
package cn.freemud.entities.vo; package cn.freemud.entities.vo;
import cn.freemud.entities.dto.UserDeliveryInfoDto; import cn.freemud.entities.dto.UserDeliveryInfoDto;
import cn.freemud.entities.vo.order.CreateOrderProductVo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderPayItemCreateReq; import com.freemud.application.sdk.api.ordercenter.request.create.OrderPayItemCreateReq;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
...@@ -269,6 +270,11 @@ public class CreateOrderVo { ...@@ -269,6 +270,11 @@ public class CreateOrderVo {
@Valid @Valid
@ApiModelProperty(value = "电子风味卡") @ApiModelProperty(value = "电子风味卡")
private UnionPayCard unionPayCard; private UnionPayCard unionPayCard;
/**
* 下单商品,积分商城使用
*/
private List<CreateOrderProductVo> products;
/** /**
* 电子风味卡 * 电子风味卡
*/ */
......
package cn.freemud.entities.vo.order;
import lombok.Data;
@Data
public class CreateOrderProductVo {
private String spuId;
private String skuId;
}
...@@ -24,7 +24,9 @@ public enum OrderChannelType { ...@@ -24,7 +24,9 @@ public enum OrderChannelType {
BEAUTIFUL("beautiful", "美业"), BEAUTIFUL("beautiful", "美业"),
APP("app", "APP"); APP("app", "APP"),
POINTSMALL("pointsmall", "积分商城");
private String code; private String code;
......
package cn.freemud.service;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.CreateOrderVo;
public interface PointsMallOrderService {
/**
* 创建订单
*/
BaseResponse createOrder(CreateOrderVo createOrderVo);
}
...@@ -97,6 +97,8 @@ public class OrderAdapterServiceImpl implements OrderAdapterService { ...@@ -97,6 +97,8 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
@Autowired @Autowired
private MallOrderService mallOrderService; private MallOrderService mallOrderService;
@Autowired @Autowired
private PointsMallOrderService pointsMallOrderService;
@Autowired
private AppOrderService appOrderService; private AppOrderService appOrderService;
@Autowired @Autowired
private RedisCache redisCache; private RedisCache redisCache;
...@@ -157,6 +159,13 @@ public class OrderAdapterServiceImpl implements OrderAdapterService { ...@@ -157,6 +159,13 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
} }
/** /**
* 积分商城
*/
if (OrderChannelType.POINTSMALL.getCode().equals(createOrderVo.getChannelType())) {
return pointsMallOrderService.createOrder(createOrderVo);
}
/**
* 商城订单 * 商城订单
*/ */
if (OrderChannelType.SAASMALL.getCode().equals(createOrderVo.getChannelType())) { if (OrderChannelType.SAASMALL.getCode().equals(createOrderVo.getChannelType())) {
......
package cn.freemud.service.impl;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.util.DateUtil;
import cn.freemud.entities.Active;
import cn.freemud.entities.dto.BatchQueryActivityInfoRequestDto;
import cn.freemud.entities.dto.BatchQueryActivityInfoResponseDto;
import cn.freemud.entities.dto.product.pointsmall.*;
import cn.freemud.entities.dto.user.UserScoreRequest;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.enums.ResponseResult;
import cn.freemud.service.CouponService;
import cn.freemud.service.PointsMallOrderService;
import cn.freemud.service.thirdparty.CustomerPropertyClient;
import cn.freemud.service.thirdparty.PointMallProductClient;
import cn.freemud.utils.ResponseUtil;
import com.alibaba.fastjson.JSONObject;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.application.sdk.api.ordercenter.enums.OrderType;
import com.freemud.application.sdk.api.ordercenter.request.OrderAffirmReq;
import com.freemud.application.sdk.api.ordercenter.request.PaySuccessReq;
import com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderRequest;
import com.freemud.application.sdk.api.ordercenter.request.create.DeliveryContactInfoCreateReq;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderItemCreateReq;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService;
import com.freemud.sdk.api.assortment.order.request.order.OrderProductAddInfoDto;
import com.freemud.sdk.api.assortment.order.request.order.ProductBindingCouponType;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.*;
public class PointsMallOrderServiceImpl implements PointsMallOrderService {
@Autowired
private AssortmentCustomerInfoManager customerInfoManager;
@Autowired
private PointMallProductClient pointMallProductClient;
@Autowired
private OrderSdkService orderSdkService;
@Autowired
private CouponService couponService;
@Autowired
private CustomerPropertyClient customerPropertyClient;
@Override
public BaseResponse createOrder(CreateOrderVo createOrderVo) {
String sessionId = createOrderVo.getSessionId();
//查询会员信息
AssortmentCustomerInfoVo userLoginInfoDto = customerInfoManager.getCustomerInfoByObject(sessionId);
if (userLoginInfoDto == null || StringUtils.isEmpty(userLoginInfoDto.getMemberId())) {
return ResponseUtil.error(ResponseResult.NOT_LOGIN);
}
String partnerId = userLoginInfoDto.getPartnerId();
String memberId = userLoginInfoDto.getMemberId();
String skuId = "";
if(CollectionUtils.isNotEmpty(createOrderVo.getProducts())){
createOrderVo.getProducts().get(0).getSkuId();
}
//查询商品信息并且校验用户是否能购买 /product/listProductInfo 查询积分商品详情,可根据入参校验商品
PointMallListProductInfoRequest productInfoRequest = new PointMallListProductInfoRequest();
productInfoRequest.setPartnerId(partnerId);
productInfoRequest.setMemberId(memberId);
productInfoRequest.setValidateMember(true);
productInfoRequest.setValidateStock(true);
productInfoRequest.setValidateTime(true);
PointMallListProductInfoResponse<IntegralProductType> productInfosDto = pointMallProductClient.listProductInfo(productInfoRequest);
if(!Objects.equals(100,productInfosDto.getStatusCode())){
return ResponseUtil.error(productInfosDto.getStatusCode().toString(),productInfosDto.getMessage());
}
String activityCode = productInfosDto.getResult().getCouponCode();
Integer points = productInfosDto.getResult().getIntegralPrice();
boolean isCoupon = productInfosDto.getResult().getProductType() == 1;
Active active = null;
if(isCoupon){
//券商品查询券活动信息校验券有效 
BatchQueryActivityInfoRequestDto queryActivityInfoRequestDto = new BatchQueryActivityInfoRequestDto();
queryActivityInfoRequestDto.setActiveCode(Arrays.asList(activityCode));
queryActivityInfoRequestDto.setPartnerId(Integer.valueOf(partnerId));
BatchQueryActivityInfoResponseDto batchQueryActivityInfoResponseDto = couponService.batchQueryActivityInfo(queryActivityInfoRequestDto);
if(!Objects.equals("100",batchQueryActivityInfoResponseDto.getStatusCode())){
return ResponseUtil.error(batchQueryActivityInfoResponseDto.getStatusCode(),"优惠券异常");
}
active = batchQueryActivityInfoResponseDto.getActivities().get(0);
}
//查询积分信息
//创建订单 order/v2/create
OrderItemCreateReq orderItemCreateReq = convent2OrderItemCreateReq(productInfosDto.getResult(), partnerId, skuId, active);
CreateOrderRequest createOrderRequest = convent2NEWCreateOrderRequest(OrderClientType.I_MEMBER.getIndex(),userLoginInfoDto,
orderItemCreateReq,"","","",4,orderItemCreateReq.getProductPrice());
com.freemud.application.sdk.api.ordercenter.response.BaseResponse<OrderInfoReqs> createOrderResponse = orderSdkService.createOrder(createOrderRequest, "");
if(!Objects.equals("100",createOrderResponse.getCode())){
return ResponseUtil.error(createOrderResponse.getCode(),"创建订单异常");
}
String orderCode= createOrderResponse.getResult().getOrderCode();
//扣减积分商品商品库存  /stock/update
UpdatePointsMallStocksRequest updatePointsMallStocksRequest = new UpdatePointsMallStocksRequest();
updatePointsMallStocksRequest.setMemberId(memberId);
updatePointsMallStocksRequest.setChangeType("2");
updatePointsMallStocksRequest.setRemark("积分兑换");
updatePointsMallStocksRequest.setTransTime(DateUtil.convert2String(new Date(),DateUtil.FORMAT_YYYY_MM_DD_HHMMSS));
updatePointsMallStocksRequest.setTransNo(orderCode);
ProductStockRequest productStockRequest = new ProductStockRequest();
productStockRequest.setProductId(skuId);
productStockRequest.setExchangeNumber(1);
productStockRequest.setStockNumber(1);
updatePointsMallStocksRequest.setProductStocks(Arrays.asList(productStockRequest));
PointMallListProductInfoResponse pointMallListProductInfoResponse = pointMallProductClient.updateStock(updatePointsMallStocksRequest);
if(!Objects.equals(100,pointMallListProductInfoResponse.getStatusCode())){
return ResponseUtil.error(createOrderResponse.getCode(),"扣减库存失败");
}
//扣减积分 (失败:失败冲正活动库存)
UserScoreRequest userScoreRequest = new UserScoreRequest();
boolean isReduce = true;
userScoreRequest.setMemberId(memberId);
userScoreRequest.setPartnerId(partnerId);
userScoreRequest.setReduceAmount(points * -1);
userScoreRequest.setScoreOrderNo(orderCode);
userScoreRequest.setChangeType(isReduce ? 2 : 1);
userScoreRequest.setOperationType(isReduce ? 14 : 2);
userScoreRequest.setStoreId("");
BaseResponse baseResponse = customerPropertyClient.useScore(userScoreRequest);
if(!Objects.equals("100",baseResponse.getCode())){
return ResponseUtil.error(createOrderResponse.getCode(),"扣减积分失败");
}
//订单完成 (失败:失败冲正活动库存)
String nickName = userLoginInfoDto.getNickName();
if(isCoupon){
OrderAffirmReq request = new OrderAffirmReq();
request.setOrderCode(orderCode);
request.setPayState(2);
request.setOperator(nickName);
com.freemud.application.sdk.api.ordercenter.response.BaseResponse updateOrderStateResp = orderSdkService.orderAffirm(request, LogThreadLocal.getTrackingNo());
if(!Objects.equals("100",createOrderResponse.getCode())){
return ResponseUtil.error(createOrderResponse.getCode(),"创建订单异常");
}
//发券
}else {
PaySuccessReq request = new PaySuccessReq();
request.setOrderCode(orderCode);
request.setOperator(nickName);
orderSdkService.paySuccess(request,LogThreadLocal.getTrackingNo());
if(!Objects.equals("100",createOrderResponse.getCode())){
return ResponseUtil.error(createOrderResponse.getCode(),"创建订单异常");
}
}
return ResponseUtil.success();
}
private void fail(boolean useScoreFail,boolean orderFail){
}
private ProductBindingCouponType convent2ProductBindingCouponType(Active active){
ProductBindingCouponType productBindingCouponType2 = new ProductBindingCouponType();
productBindingCouponType2.setActivityCode(active.getActiveCode());
productBindingCouponType2.setNum(1);
productBindingCouponType2.setActivityName(active.getActiveName());
return productBindingCouponType2;
}
private OrderItemCreateReq convent2OrderItemCreateReq(IntegralProductType productBean,String partnerId,String skuId,
Active active){
boolean isCoupon = productBean.getProductType() == 1;
Long price = 0L;
if(isCoupon){
price = productBean.getIntegralPrice().longValue();
}else {
price = productBean.getCashPrice().longValue();
}
OrderItemCreateReq orderItemCreateReq = new OrderItemCreateReq();
orderItemCreateReq.setPartnerId(partnerId);
orderItemCreateReq.setSalePrice(price);
orderItemCreateReq.setProductPrice(price);
orderItemCreateReq.setSettlementPrice(price);
orderItemCreateReq.setProductId(skuId);
orderItemCreateReq.setProductSpec(skuId);
orderItemCreateReq.setProductName(productBean.getProductName());
orderItemCreateReq.setProductSpecName(productBean.getProductName());
if(CollectionUtils.isNotEmpty(productBean.getPictureList())){
orderItemCreateReq.setProductPicUrl(productBean.getPictureList().get(0));
}
orderItemCreateReq.setProductSeq(1);
if(productBean.getEntityProductInfo() != null){
orderItemCreateReq.setProductCode(productBean.getEntityProductInfo().getProductId());
orderItemCreateReq.setThirdProductId(productBean.getEntityProductInfo().getProductId());
orderItemCreateReq.setProductPicUrl(productBean.getEntityProductInfo().getPicture());
}
if(isCoupon){
//添加商品绑定的券
OrderProductAddInfoDto orderProductAddInfoDto = new OrderProductAddInfoDto();
List<ProductBindingCouponType> productBindingCoupons = new ArrayList<>();
productBindingCoupons.add(convent2ProductBindingCouponType(active));
orderProductAddInfoDto.setProductBindingCoupons(productBindingCoupons);
orderItemCreateReq.setExtInfo(JSONObject.toJSONString(orderProductAddInfoDto));
}
orderItemCreateReq.setProductQuantity(1);
return orderItemCreateReq;
}
private CreateOrderRequest convent2NEWCreateOrderRequest(Integer orderClient,AssortmentCustomerInfoVo userLoginInfoDto,
OrderItemCreateReq orderItemList,
String shopId,
String cardCode,
String channel,
Integer bizType,
Long price){
CreateOrderRequest request = new CreateOrderRequest();
String partnerId = userLoginInfoDto.getPartnerId();
request.setOrderClient(orderClient);
request.setPartnerId(partnerId);
request.setStoreId(shopId);
request.setStoreName("虚拟门店");
request.setThirdStoreId("");
//买券虚拟订单 不管APP卖券还是平台,依旧保留传入6
request.setBizType(bizType);
//1:线上支付 2:线下支付
request.setPayType(1);
request.setUserId(userLoginInfoDto.getMemberId());
request.setUserName(userLoginInfoDto.getNickName());
request.setOrderState(1);
request.setPayState(1);
if(StringUtils.isNotBlank(cardCode)){
request.setPayChannel("10102");
request.setPayChannelName("储值卡支付");
}
//订单原始金额,单位分
//用户在界面上看到的支付金额
request.setSettlementAmount(price);
//实际支付现金金额,扣除支付自生优惠,单位分`
request.setActualPayAmount(price);
request.setOriginalAmount(price);
request.setOrderType(OrderType.GENERAL_DINE_IN.getIndex());
//商品信息赋值
request.setOrderItemList(Arrays.asList(orderItemList));
//收货人信息转换
List<DeliveryContactInfoCreateReq> deliveryContactInfoList = new ArrayList<>();
DeliveryContactInfoCreateReq deliveryContactInfoCreateReq = new DeliveryContactInfoCreateReq();
//地址类型 1:订单地址 2:售后单地址 3:配送员信息
deliveryContactInfoCreateReq.setRelateObjectType(1);
//联系方式类型 1:取件 2:收件
deliveryContactInfoCreateReq.setInfoType(1);
deliveryContactInfoCreateReq.setContactsName(userLoginInfoDto.getNickName());
deliveryContactInfoCreateReq.setMobile(userLoginInfoDto.getMobile());
deliveryContactInfoCreateReq.setLatitude(null);
deliveryContactInfoCreateReq.setLongitude(null);
deliveryContactInfoCreateReq.setAddressDetail(null);
deliveryContactInfoCreateReq.setProvince(null);
deliveryContactInfoCreateReq.setCity(null);
deliveryContactInfoCreateReq.setRegion(null);
deliveryContactInfoList.add(deliveryContactInfoCreateReq);
request.setDeliveryContactInfoList(deliveryContactInfoList);
request.setOperator(userLoginInfoDto.getNickName());
request.setAppId(userLoginInfoDto.getWxAppId());
request.setPayChannel(channel);
return request;
}
}
package cn.freemud.service.thirdparty;
import cn.freemud.annotations.LogIgnoreFeign;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.dto.user.UserScoreRequest;
import org.springframework.cloud.openfeign.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-property-service", url = "${saas.customerpropertyclient.feign.url}")
@RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface CustomerPropertyClient {
//
@LogIgnoreFeign(logMessage="useScore")
@PostMapping(value = "user/useScore")
BaseResponse useScore(@RequestBody UserScoreRequest userScoreRequest);
}
package cn.freemud.service.thirdparty;
import cn.freemud.annotations.LogIgnoreFeign;
import cn.freemud.constant.ResponseCodeKeyConstant;
import cn.freemud.entities.dto.product.pointsmall.IntegralProductType;
import cn.freemud.entities.dto.product.pointsmall.PointMallListProductInfoRequest;
import cn.freemud.entities.dto.product.pointsmall.PointMallListProductInfoResponse;
import cn.freemud.entities.dto.product.pointsmall.UpdatePointsMallStocksRequest;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@FeignClient(value = "PRODUCTSERVICE",url="http://172.16.19.240:9996/swagger-ui.html#/")//${saas.pointMallProductClient.feign.url}
@RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface PointMallProductClient {
/**
* 获取商品的详细信息
*/
@LogIgnoreFeign(logMessage="listProductInfos",statusCodeFieldName=ResponseCodeKeyConstant.STATUS_CODE)
@PostMapping("/biz/product/listProductInfo")
PointMallListProductInfoResponse<IntegralProductType> listProductInfo(@RequestBody PointMallListProductInfoRequest productInfoRequest);
@LogIgnoreFeign(logMessage="listProductInfos",statusCodeFieldName=ResponseCodeKeyConstant.STATUS_CODE)
@PostMapping("/biz/stock/update")
PointMallListProductInfoResponse updateStock(@RequestBody UpdatePointsMallStocksRequest updatePointsMallStocksRequest);
}
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