Commit bf2c3c4f by 周晓航

提交

Signed-off-by: 周晓航 <xiaohang.zhou@freemud.com>
parent 75cb697b
package cn.freemud.entities.dto.coupon;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/12/3 下午4:14
* @description :
*/
@Data
public class CheckAndCancelRequest {
@ApiModelProperty(value = "商户号", required = true)
private Integer partnerId;
@ApiModelProperty(value = "会员id", required = true)
private String memberId;
@ApiModelProperty(value = "券号列表", required = true)
private List<String> couponCodeList;
}
package cn.freemud.entities.dto.coupon;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/12/3 下午4:15
* @description :
*/
@Data
public class CheckAndCancelResponseDTO {
@ApiModelProperty(value = "作废结果,1:已全部作废,2:部分作废失败,3:不可作废", required = true)
private Integer resultCode;
@ApiModelProperty(value = "作废结果说明,如resultCode为3时,代表不可作废的原因(如:xx券已核销)", required = true)
private String memo;
@ApiModelProperty(value = "每个券对应的处理结果", required = true)
private List<CouponCancelMsg> resultList;
}
package cn.freemud.entities.dto.coupon;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/12/3 下午4:17
* @description :
*/
@Data
public class CouponCancelMsg {
@ApiModelProperty(value = "券号", required = true)
private String code;
@ApiModelProperty(value = "券名称", required = true)
private String name;
@ApiModelProperty(value = "作废结果,0:未处理,1:已作废,2:不可作废,3:作废失败,4:券不存在", required = true)
private Integer result;
@ApiModelProperty(value = "作废结果result对应的说明文字", required = true)
private String memo;
}
......@@ -47,6 +47,7 @@ import cn.freemud.interceptor.ServiceException;
import cn.freemud.management.entities.dto.request.BatchOrderRefundV2Request;
import cn.freemud.management.entities.dto.response.activity.GroupWorkRefundResponse;
import cn.freemud.management.entities.dto.response.pay.PayBatchRefundResponse;
import cn.freemud.management.enums.SettlementTypeEnum;
import cn.freemud.management.service.handle.ActivityHandle;
import cn.freemud.manager.OrderManager;
import cn.freemud.manager.OrderTackCodeManager;
......@@ -3353,9 +3354,12 @@ public class OrderServiceImpl implements Orderservice {
}
// fisherman 调用会员获取券的有效性,是否有转赠状态
// fisherman 未完成调用券码 核销券
// fisherman 券作废
checkResult = this.couponOnLineHandle(orderBean);
if (!Objects.equals(checkResult.getCode(), ResponseResult.SUCCESS.getCode())) {
return checkResult;
}
// fisherman 核销券失败的逻辑处理
// 走正常退款订单逻辑 这里是否可以丢MQ 异步操作
......@@ -3374,6 +3378,29 @@ public class OrderServiceImpl implements Orderservice {
}
/**
* 调用券码作废操作
* @param orderBean
* @return
*/
private BaseResponse couponOnLineHandle(OrderBeanV1 orderBean) {
if (orderBean.getBizType().compareTo(BizTypeEnum.SALE_COUPON.getBizType()) != 0) {
return ResponseUtil.error(ResponseResult.OPERATE_NOT_SUPPORT);
}
List<OrderSettlementResp> orderSettlementDetailList = orderBean.getOrderSettlementDetailList();
if (CollectionUtils.isEmpty(orderSettlementDetailList)) {
return ResponseUtil.error(ResponseResult.OPERATE_NOT_SUPPORT.getCode(), "没有优惠券信息");
}
// 获取优惠券
List<String> couponCodeList = orderSettlementDetailList.stream()
.filter(s -> s.getSettlementType().compareTo(SettlementTypeEnum.SEND_COUPON.getSettlementType()) == 0)
.map(OrderSettlementResp::getExternalObjectId).collect(Collectors.toList());
// fisherman 核销券失败的逻辑处理
return ResponseUtil.success();
}
/**
* 订单退款操作
* 1.调用支付 进行退款
* 2.调用基础服务, 进行订单状态变更
......
......@@ -50,4 +50,15 @@ public interface CouponOnlineClient {
statusCodeFieldName=ResponseCodeKeyConstant.STATUS_CODE)
@PostMapping(value = "/fastBatchQueryTemplateInfo")
CouponResponseDTO<List<FastTemplateInfoResponseVO>> fastBatchQueryTemplateInfo(@RequestBody FastBatchQueryTemplateInfoRequest request);
/**
* 调用券码,作废券
* @param request
* @return
*/
@LogIgnoreFeign(logMessage="checkandcancel",messageFieldName= ResponseCodeKeyConstant.MSG,
statusCodeFieldName=ResponseCodeKeyConstant.STATUS_CODE)
@PostMapping(value = "coupon/standard/checkandcancel")
CouponResponseDTO<CheckAndCancelResponseDTO> checkandcancel(@RequestBody CheckAndCancelRequest request);
}
......@@ -7,6 +7,7 @@ public enum SettlementTypeEnum {
CASH_COUPON(10, "代金券"),
DISCOUNT_COUPON(208, "折扣券"),
PRODUCT_COUPON(118, "商品券"),
SEND_COUPON(216, "购买券包发的优惠券"),
;
private int settlementType;
......
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