Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
order-group
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
order-group-application
order-group
Commits
5eeeb4c7
Commit
5eeeb4c7
authored
Jul 27, 2022
by
周晓航
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'ka-bugfix-新增接口用于补偿发券工作' into qa
parents
6fa916c6
8396c400
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
0 additions
and
480 deletions
+0
-480
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
+0
-200
order-application-service/src/main/java/cn/freemud/entities/vo/tempsendcoupon/CreateCouponReq.java
+0
-148
order-application-service/src/main/java/cn/freemud/entities/vo/tempsendcoupon/CreateCouponResp.java
+0
-54
order-application-service/src/main/java/cn/freemud/entities/vo/tempsendcoupon/SendCouponSourceOriginEnum.java
+0
-53
order-application-service/src/main/java/cn/freemud/entities/vo/tempsendcoupon/TempReSendCouponReq.java
+0
-16
order-application-service/src/main/java/cn/freemud/service/thirdparty/CouponOnlineClient.java
+0
-9
No files found.
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
View file @
5eeeb4c7
...
...
@@ -14,7 +14,6 @@ package cn.freemud.controller;
import
cn.freemud.annotations.IsConvertEN
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.log.ErrorLog
;
import
cn.freemud.entities.dto.order.CreateCashierOrderDto
;
import
cn.freemud.entities.dto.order.InvoiceCreateResponseVo
;
import
cn.freemud.entities.dto.order.OrderInvoiceConfigVo
;
...
...
@@ -22,10 +21,6 @@ import cn.freemud.entities.vo.*;
import
cn.freemud.entities.vo.encircle.CreateReserveOrderVo
;
import
cn.freemud.entities.vo.encircle.EncircleReserveBaseVo
;
import
cn.freemud.entities.vo.order.*
;
import
cn.freemud.entities.vo.tempsendcoupon.CreateCouponReq
;
import
cn.freemud.entities.vo.tempsendcoupon.CreateCouponResp
;
import
cn.freemud.entities.vo.tempsendcoupon.SendCouponSourceOriginEnum
;
import
cn.freemud.entities.vo.tempsendcoupon.TempReSendCouponReq
;
import
cn.freemud.handler.CouponOrderAutoRefundHandler
;
import
cn.freemud.handler.OrderReportJobHandler
;
import
cn.freemud.service.EncircleOrderService
;
...
...
@@ -33,27 +28,12 @@ import cn.freemud.service.Orderservice;
import
cn.freemud.service.PointsMallOrderService
;
import
cn.freemud.service.impl.MallOrderServiceImpl
;
import
cn.freemud.service.impl.OrderAdapterServiceImpl
;
import
cn.freemud.service.thirdparty.CouponOnlineClient
;
import
cn.freemud.utils.AppLogUtil
;
import
cn.freemud.utils.ResponseUtil
;
import
cn.freemud.xxljob.OrderCountJobHandler
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.application.sdk.api.log.ApiAnnotation
;
import
com.freemud.application.sdk.api.log.LogParams
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.ordercenter.entities.extinfo.OrderProductExtInfo
;
import
com.freemud.application.sdk.api.ordercenter.entities.extinfo.ProductBindingCouponType
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderSettlementReq
;
import
com.freemud.application.sdk.api.ordercenter.request.create.OrderSettlementCreateReq
;
import
com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderItemResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.QueryByCodeResponse
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.BindingResult
;
...
...
@@ -61,7 +41,6 @@ import org.springframework.validation.annotation.Validated;
import
org.springframework.web.bind.annotation.*
;
import
java.util.*
;
import
java.util.stream.Collectors
;
@RequestMapping
(
"/order"
)
...
...
@@ -86,185 +65,6 @@ public class OrderController {
@Autowired
private
PointsMallOrderService
pointsMallOrderService
;
// =========================== 2022年7月27日12:14:11 临时代码 需要删除
@Autowired
private
OrderSdkService
orderSdkService
;
@Autowired
private
CouponOnlineClient
onlineCouponClient
;
/**
* 临时补偿发券操作
* // 1查询订单
* // 2订单状态判断
* // 跳过第一张券 进行补偿
* // 3需要sql删除额外废弃数据
* // 4基础服务数据修复
* // 处理成功的记录返回响应 获取要删除的 settlement id集合
*/
@ApiAnnotation
(
logMessage
=
"/order/temp/reSendCoupon"
)
@PostMapping
(
"/temp/reSendCoupon"
)
public
BaseResponse
reSendCoupon
(
@Validated
@LogParams
@RequestBody
TempReSendCouponReq
req
)
{
if
(
CollectionUtils
.
isEmpty
(
req
.
getOrderCodes
()))
{
return
ResponseUtil
.
error
(
"订单号为空"
);
}
Map
<
String
,
Object
>
resultMap
=
new
LinkedHashMap
<>();
String
remark
=
"bugfix:遗漏补发"
;
for
(
String
orderCode
:
req
.
getOrderCodes
())
{
Map
<
String
,
Object
>
msgMap
=
new
HashMap
<>();
QueryByCodeResponse
orderInfoResp
=
orderSdkService
.
getOrderInfo
(
null
,
orderCode
,
null
,
0
,
LogThreadLocal
.
getTrackingNo
());
OrderInfoReqs
orderInfo
=
orderInfoResp
.
getResult
();
msgMap
.
put
(
"remark"
,
"订单初始处理开始"
);
if
(
Objects
.
isNull
(
orderInfo
))
{
msgMap
.
put
(
"remark"
,
"订单号不存在"
);
continue
;
}
if
(
orderInfo
.
getOrderState
().
compareTo
(
6
)
!=
0
)
{
msgMap
.
put
(
"remark"
,
"订单状态不为 6 已完成"
);
continue
;
}
List
<
OrderItemResp
>
virtualProduct
=
orderInfo
.
getOrderItemList
();
if
(
CollectionUtils
.
isNotEmpty
(
virtualProduct
))
{
String
trackingNo
=
LogThreadLocal
.
getTrackingNo
();
String
storeId
=
orderInfo
.
getStoreId
();
List
<
OrderSettlementCreateReq
>
orderSettlementDetailList
=
new
ArrayList
<>();
int
masterSeq
=
1
;
List
<
CreateCouponResp
>
msgList
=
new
ArrayList
<>();
for
(
OrderItemResp
orderItemResp
:
virtualProduct
)
{
String
extInfo
=
orderItemResp
.
getExtInfo
();
if
(
StringUtils
.
isNotBlank
(
extInfo
))
{
OrderProductExtInfo
orderProductAddInfoDto
=
JSONObject
.
parseObject
(
extInfo
,
OrderProductExtInfo
.
class
);
List
<
ProductBindingCouponType
>
productBindingCoupons
=
orderProductAddInfoDto
.
getProductBindingCoupons
();
if
(
Objects
.
isNull
(
productBindingCoupons
)
||
productBindingCoupons
.
isEmpty
())
{
continue
;
}
List
<
String
>
activityCodes
=
productBindingCoupons
.
stream
().
map
(
ProductBindingCouponType:
:
getActivityCode
).
collect
(
Collectors
.
toList
());
if
(
org
.
apache
.
commons
.
collections4
.
CollectionUtils
.
isEmpty
(
activityCodes
))
{
continue
;
}
//计算虚拟商品所有总价=单价*数量相累加
Integer
totalPrice
=
productBindingCoupons
.
stream
().
filter
(
x
->
!
Objects
.
equals
(
x
.
getNum
(),
null
)
&&
!
Objects
.
equals
(
x
.
getPrice
(),
null
))
.
mapToInt
(
x
->
x
.
getNum
()
*
x
.
getPrice
()).
sum
();
// 1已经发券过了, 去重
int
seq
=
2
;
// todo 从第二张开始发
for
(
int
i
=
1
;
i
<
productBindingCoupons
.
size
();
i
++)
{
ProductBindingCouponType
productCoupon
=
productBindingCoupons
.
get
(
i
);
CreateCouponReq
createCouponReq
=
new
CreateCouponReq
();
createCouponReq
.
setTemplateCode
(
productCoupon
.
getActivityCode
());
//券模板编号
createCouponReq
.
setPartnerId
(
Integer
.
valueOf
(
orderInfo
.
getPartnerId
()));
//商户编号
createCouponReq
.
setMemberId
(
orderInfo
.
getUserId
());
//会员编号
// 发券订单号不能一致, 券码要求....
int
length
=
orderCode
.
length
();
String
uuId
=
masterSeq
+
""
+
seq
+
orderCode
.
substring
(
length
-
6
,
length
-
5
);
createCouponReq
.
setOrderId
(
orderCode
.
concat
(
uuId
));
createCouponReq
.
setCouponName
(
productCoupon
.
getActivityName
());
createCouponReq
.
setNum
(
productCoupon
.
getNum
());
//发码数量
//商城发券商品数量可买多件
if
(
orderItemResp
.
getProductQuantity
()
!=
null
)
{
createCouponReq
.
setNum
(
productCoupon
.
getNum
()
*
orderItemResp
.
getProductQuantity
());
}
createCouponReq
.
setShowEncode
(
true
);
createCouponReq
.
setTemplateCode
(
productCoupon
.
getActivityCode
());
//券模板编号
createCouponReq
.
setSendReason
(
remark
+
","
+
orderInfo
.
getStoreName
()
+
","
+
storeId
);
//发码原因
createCouponReq
.
setStoreId
(
orderInfo
.
getStoreId
());
//限制门店id
if
(
orderInfo
.
getBizType
()
==
4
)
{
createCouponReq
.
setSourceOrigin
(
SendCouponSourceOriginEnum
.
SCORE_EXCHANGE
.
getType
());
//发码来源类型,如果提供的类型不满足请和会员卡券组联系添加
}
if
(
orderInfo
.
getBizType
()
==
6
||
orderInfo
.
getBizType
()
==
1
)
{
createCouponReq
.
setSourceOrigin
(
SendCouponSourceOriginEnum
.
PURCHASE
.
getType
());
//发码来源类型,如果提供的类型不满足请和会员卡券组联系添加
}
if
(
orderInfo
.
getBizType
()
==
6
&&
orderInfo
.
getMarketingType
().
compareTo
(
9
)
==
0
)
{
createCouponReq
.
setSourceOrigin
(
SendCouponSourceOriginEnum
.
WEXIN_SHIPINHAO
.
getType
());
//发码来源类型,如果提供的类型不满足请和会员卡券组联系添加
}
//只有卖券订单才能分账,目前卖券订单都是虚拟商品,虚拟商品都是券包
if
(
orderInfo
.
getBizType
()
==
6
&&
productCoupon
.
getIsSplitAccount
()
!=
null
&&
productCoupon
.
getIsSplitAccount
()
==
1
)
{
Integer
sale
=
orderItemResp
.
getSettlementPrice
().
intValue
();
//售价
CreateCouponReq
.
CouponPackageInfo
couponPackageInfo
=
new
CreateCouponReq
.
CouponPackageInfo
();
couponPackageInfo
.
setIsCouponPackage
(
true
);
CreateCouponReq
.
Settings
settings
=
new
CreateCouponReq
.
Settings
();
//isSplitAccount 0-不分账,1-分账
settings
.
setAccountDivide
(
true
);
//折扣 = 售价/总价
double
discount
=
(
double
)
sale
/
totalPrice
;
//分账金额等于券单价 * 折扣
settings
.
setUnitPrice
((
int
)
(
productCoupon
.
getPrice
()
*
discount
));
couponPackageInfo
.
setSettings
(
settings
);
createCouponReq
.
setCouponPackageInfo
(
couponPackageInfo
);
}
if
(
orderInfo
.
getBizType
()
==
6
&&
orderInfo
.
getMarketingType
().
compareTo
(
9
)
==
0
)
{
//marketingType = 9 微信视频号卖券
createCouponReq
.
setSourceOrigin
(
SendCouponSourceOriginEnum
.
WEXIN_SHIPINHAO
.
getType
());
//发码来源类型,如果提供的类型不满足请和会员卡券组联系添加
}
createCouponReq
.
setSourceOriginId
(
orderCode
);
//发码来源类型id,指定了发码来源类型时该字段必填,最大64字符
createCouponReq
.
setVer
(
2
);
//sendMemberCoupon 这个接口,ver字段传1的或者没传的,现在都传 2,不然不幂等
CreateCouponResp
resp
=
null
;
try
{
resp
=
onlineCouponClient
.
createCoupon
(
createCouponReq
);
msgList
.
add
(
resp
);
}
catch
(
Exception
e
)
{
ErrorLog
.
errorConvertJson
(
this
.
getClass
(),
"onlineCouponClient.sendMemberCoupon Exception,request:"
+
JSON
.
toJSONString
(
createCouponReq
),
e
);
CreateCouponResp
errorResp
=
new
CreateCouponResp
();
errorResp
.
setMsg
(
e
.
getMessage
());
msgList
.
add
(
errorResp
);
continue
;
}
if
(
null
==
resp
||
CollectionUtils
.
isEmpty
(
resp
.
getCodes
()))
{
//tapd 【线上bug】卖券,连续发多张券时,不要中途return掉
continue
;
}
for
(
CreateCouponResp
.
Coupon
coupon
:
resp
.
getCodes
())
{
OrderSettlementCreateReq
settlementCreateReq
=
new
OrderSettlementCreateReq
();
settlementCreateReq
.
setExternalObjectId
(
coupon
.
getCode
());
settlementCreateReq
.
setIgnoreInDiscountAmount
(
false
);
settlementCreateReq
.
setSettlementType
(
216
);
// fisherman 发券关联对应商品信息
settlementCreateReq
.
setProductId
(
orderItemResp
.
getProductId
());
settlementCreateReq
.
setProductSeq
(
orderItemResp
.
getProductSeq
());
orderSettlementDetailList
.
add
(
settlementCreateReq
);
}
seq
++;
}
masterSeq
++;
}
}
msgMap
.
put
(
"msg"
,
msgList
);
if
(
orderSettlementDetailList
.
isEmpty
())
{
msgMap
.
put
(
"remark"
,
"发券失败"
);
continue
;
}
//保存券号到订单优惠表
OrderSettlementReq
request
=
new
OrderSettlementReq
();
request
.
setOrderClient
(
orderInfo
.
getOrderClient
());
request
.
setOrderCode
(
orderInfo
.
getOrderCode
());
request
.
setPartnerId
(
orderInfo
.
getPartnerId
());
request
.
setOrderSettlementDetailList
(
orderSettlementDetailList
);
OrderBaseResp
baseResponse
=
orderSdkService
.
createSettlement
(
request
,
trackingNo
);
if
(!
baseResponse
.
getCode
().
equals
(
"100"
))
{
msgMap
.
put
(
"remark"
,
"存基础settlement失败"
);
continue
;
}
msgMap
.
put
(
"remark"
,
"===补发成功==="
);
}
else
{
msgMap
.
put
(
"remark"
,
"购买商品数据不存在"
);
}
// final msg
resultMap
.
put
(
orderCode
,
msgMap
);
}
return
ResponseUtil
.
success
(
resultMap
);
}
// =========================== 2022年7月27日12:14:11 临时代码 需要删除
/**
* 废弃,不在使用
...
...
order-application-service/src/main/java/cn/freemud/entities/vo/tempsendcoupon/CreateCouponReq.java
deleted
100644 → 0
View file @
6fa916c6
package
cn
.
freemud
.
entities
.
vo
.
tempsendcoupon
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.Max
;
import
javax.validation.constraints.Min
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
/**
* @author Clover.z
* @Date 2021/9/24
* @Desc
*/
@Data
public
class
CreateCouponReq
{
/**
* 活动编号
*/
@NotBlank
(
message
=
"券模板编号不能为空"
)
private
String
templateCode
;
/**
* 商户号
*/
@NotBlank
(
message
=
"商户编号不能为空"
)
private
Integer
partnerId
;
/**
* 渠道号(可以不传,不传就默认是开个店发码,核销后会回调会员移除卡包。如果不是开个店就要传)
*/
private
Integer
providerId
;
/**
* 会员Id
*/
private
String
memberId
;
/**
* 发券订单号
*/
@NotBlank
(
message
=
"请求流水号不能为空"
)
@Length
(
max
=
30
,
message
=
"流水号长度最大不能超过30个字符"
)
private
String
orderId
;
/**
* 券名称
*/
private
String
couponName
;
/**
* 券开始时间
*/
private
String
validStart
;
/**
* 券结束时间
*/
private
String
validEnd
;
/**
* 发券数量
*/
@NotNull
(
message
=
"发码数量必须大于0且不大于100"
)
@Min
(
value
=
1
)
@Max
(
value
=
100
)
private
Integer
num
;
/**
* 门店id
* 发券指定门店场景下使用
*/
@Length
(
max
=
50
)
private
String
storeId
;
/**
* 发券原因
*/
@Length
(
max
=
2000
)
private
String
sendReason
;
/**
* {@link com.freemud.task.order.consumer.enums.SendCouponSourceOriginEnum 发码来源类型}
*/
private
Integer
sourceOrigin
;
/**
* 发码来源类型id
*/
@Length
(
max
=
64
)
private
String
sourceOriginId
;
/**
* 促销活动编号
*/
@Length
(
max
=
32
)
private
String
promotionActivityCode
;
/**
* 三方交易流水号
*/
@Length
(
max
=
32
)
private
String
thirdTrackId
;
/**
* 是否需要显示密文code
* <p>
* 默认不显示
*/
private
Boolean
showEncode
=
false
;
/**
* 签名
* 签名sign传 "adapterV4Skip" + 渠道号providerId
* 现券码已支持不传了
*/
private
String
sign
;
/**
* 接口版本号
*/
private
Integer
ver
;
/*****************券包分账新增入参***********************/
//券包信息,不传默认不是券包
private
CouponPackageInfo
couponPackageInfo
;
@Data
public
static
class
CouponPackageInfo
{
//是否券包
private
Boolean
isCouponPackage
=
false
;
//券包配置,isCouponPackage为true时必填
private
Settings
settings
;
}
@Data
public
static
class
Settings
{
//是否分账
private
Boolean
accountDivide
;
//单价,单位:分
private
Integer
unitPrice
;
}
/*****************券包分账新增入参***********************/
}
order-application-service/src/main/java/cn/freemud/entities/vo/tempsendcoupon/CreateCouponResp.java
deleted
100644 → 0
View file @
6fa916c6
package
cn
.
freemud
.
entities
.
vo
.
tempsendcoupon
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author Clover.z
* @Date 2021/9/24
* @Desc
*/
@Data
public
class
CreateCouponResp
{
/**
* 100-成功
*/
private
Integer
statusCode
;
private
String
msg
;
private
String
ver
;
/**
* true是正常发的码,false是幂等返回的之前发的码,根据入参的orderId,相同的orderId 24小时内重复调用会返回相同的结果
*/
private
Boolean
fresh
;
/**
* 码的有效期-开始
*/
private
String
effectStart
;
/**
* 码的有效期-结束
*/
private
String
effectEnd
;
/**
* 发码返回的券信息
*/
private
List
<
Coupon
>
codes
;
@Data
public
static
class
Coupon
{
/**
* 券号
*/
private
String
code
;
/**
* 优惠券号密文
*/
private
String
encode
;
}
}
order-application-service/src/main/java/cn/freemud/entities/vo/tempsendcoupon/SendCouponSourceOriginEnum.java
deleted
100644 → 0
View file @
6fa916c6
package
cn
.
freemud
.
entities
.
vo
.
tempsendcoupon
;
/**
* 具体枚举值 找 张文凯确认 券码基础服务
*/
public
enum
SendCouponSourceOriginEnum
{
UNKNOWN
(
0
,
"未知"
),
PROMOTION
(
1
,
"促销活动发券"
),
MANUAL
(
2
,
"手动送券"
),
EXPORT
(
3
,
"批量导码"
),
PURCHASE
(
4
,
"买券"
),
SCORE_EXCHANGE
(
5
,
"积分兑换券"
),
MEMBER_BIRTHDAY_GIFT
(
6
,
"会员生日礼送券"
),
RECHARGE_VIP
(
7
,
"开通/续费 付费会员送券"
),
RECHARGE_STORED_VALUE_CARD
(
8
,
"储值卡充值送券"
),
MEMBER_LEVEL_UPGRADE
(
9
,
"会员等级升级"
),
MEMBER_POINT
(
1
,
"集点兑换券"
),
IMPORT_SCORE_EXPERIENC_CASE_UPGRADE
(
9
,
"积分经验值导入触发等级升级送券"
),
CREATE_ORDER_SEND_EXPERIENC_CASE_UPGRADE
(
9
,
"积分经验值导入触发等级升级送券"
),
SIGN_IN
(
10
,
"签到送券"
),
WEXIN_SHIPINHAO
(
11
,
"微信视频号卖券"
)
;
private
Integer
type
;
private
String
name
;
/**
* @param type 类型
* @param name 类型名称
*/
SendCouponSourceOriginEnum
(
Integer
type
,
String
name
)
{
this
.
type
=
type
;
this
.
name
=
name
;
}
public
Integer
getType
()
{
return
type
;
}
public
void
setType
(
Integer
type
)
{
this
.
type
=
type
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
}
\ No newline at end of file
order-application-service/src/main/java/cn/freemud/entities/vo/tempsendcoupon/TempReSendCouponReq.java
deleted
100644 → 0
View file @
6fa916c6
package
cn
.
freemud
.
entities
.
vo
.
tempsendcoupon
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2022/7/27 11:20
* @description :
*/
@Data
public
class
TempReSendCouponReq
{
List
<
String
>
orderCodes
;
}
order-application-service/src/main/java/cn/freemud/service/thirdparty/CouponOnlineClient.java
View file @
5eeeb4c7
...
...
@@ -7,8 +7,6 @@ import cn.freemud.constant.ResponseCodeKeyConstant;
import
cn.freemud.entities.dto.BatchQueryActivityInfoRequestDto
;
import
cn.freemud.entities.dto.GetCouponDetailResponseDto
;
import
cn.freemud.entities.dto.coupon.*
;
import
cn.freemud.entities.vo.tempsendcoupon.CreateCouponReq
;
import
cn.freemud.entities.vo.tempsendcoupon.CreateCouponResp
;
import
cn.freemud.interceptor.FormSupportConfig
;
import
com.freemud.application.sdk.api.ordercenter.annotation.LogIgnoreFeign
;
import
org.springframework.cloud.openfeign.FeignClient
;
...
...
@@ -79,11 +77,4 @@ public interface CouponOnlineClient {
@PostMapping
(
value
=
"/coupon/standard/checkandcancel"
,
produces
=
MediaType
.
APPLICATION_JSON_UTF8_VALUE
)
CouponResponseDTO
<
CheckAndCancelResponseDTO
>
checkandcancel
(
@RequestBody
CheckAndCancelRequest
request
);
/**
* 根据券档案发码 返回券号
* @param request
* @return
*/
@PostMapping
(
"/coupon/standard/create"
)
CreateCouponResp
createCoupon
(
CreateCouponReq
request
);
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment