Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
A
Afrishop refactored project
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Whispa
Afrishop refactored project
Commits
43eb791c
提交
43eb791c
authored
9月 21, 2020
作者:
Whispa
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
commit
上级
bca37b2b
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
60 行增加
和
30 行删除
+60
-30
CartController.java
...a/com/example/afrishop_v3/controllers/CartController.java
+11
-1
CouponController.java
...com/example/afrishop_v3/controllers/CouponController.java
+9
-16
DpoPayController.java
...com/example/afrishop_v3/controllers/DpoPayController.java
+10
-2
FlutterWaveController.java
...xample/afrishop_v3/controllers/FlutterWaveController.java
+9
-2
OrderController.java
.../com/example/afrishop_v3/controllers/OrderController.java
+21
-9
没有找到文件。
src/main/java/com/example/afrishop_v3/controllers/CartController.java
浏览文件 @
43eb791c
...
@@ -6,6 +6,7 @@ import com.example.afrishop_v3.enums.ResultCodeEnum;
...
@@ -6,6 +6,7 @@ import com.example.afrishop_v3.enums.ResultCodeEnum;
import
com.example.afrishop_v3.models.TbCfCartRecordR
;
import
com.example.afrishop_v3.models.TbCfCartRecordR
;
import
com.example.afrishop_v3.models.TbCfExpressTemplate
;
import
com.example.afrishop_v3.models.TbCfExpressTemplate
;
import
com.example.afrishop_v3.models.TbCfStationItem
;
import
com.example.afrishop_v3.models.TbCfStationItem
;
import
com.example.afrishop_v3.models.TbCfUserInfo
;
import
com.example.afrishop_v3.repository.TbCfCartRecordRRepository
;
import
com.example.afrishop_v3.repository.TbCfCartRecordRRepository
;
import
com.example.afrishop_v3.repository.TbCfExpressTemplateRepository
;
import
com.example.afrishop_v3.repository.TbCfExpressTemplateRepository
;
import
com.example.afrishop_v3.repository.TbCfStationItemRepository
;
import
com.example.afrishop_v3.repository.TbCfStationItemRepository
;
...
@@ -53,7 +54,9 @@ public class CartController extends Controller {
...
@@ -53,7 +54,9 @@ public class CartController extends Controller {
@PostMapping
@PostMapping
public
Result
addToCart
(
@RequestBody
TbCfCartRecordR
itemDetail
)
{
public
Result
addToCart
(
@RequestBody
TbCfCartRecordR
itemDetail
)
{
String
userId
=
this
.
user
.
userId
();
TbCfUserInfo
user
=
this
.
user
.
user
();
String
userId
=
user
.
getUserId
();
if
(
itemDetail
==
null
)
{
if
(
itemDetail
==
null
)
{
return
new
Result
(
ResultCodeEnum
.
SERVICE_ERROR
.
getCode
(),
"Request body is empty"
);
return
new
Result
(
ResultCodeEnum
.
SERVICE_ERROR
.
getCode
(),
"Request body is empty"
);
...
@@ -107,6 +110,13 @@ public class CartController extends Controller {
...
@@ -107,6 +110,13 @@ public class CartController extends Controller {
insertRecord
(
itemDetail
,
userId
);
insertRecord
(
itemDetail
,
userId
);
}
}
if
(
user
.
hasFcm
()
){
int
i
=
repository
.
countByUserId
(
userId
);
sendNotification
(
user
.
getFcm
(),
"Cart updates"
,
"Item added to cart, "
+
i
+
" item(s) are pending, continue with order"
);
}
return
new
Result
();
return
new
Result
();
}
}
...
...
src/main/java/com/example/afrishop_v3/controllers/CouponController.java
浏览文件 @
43eb791c
package
com
.
example
.
afrishop_v3
.
controllers
;
package
com
.
example
.
afrishop_v3
.
controllers
;
import
com.example.afrishop_v3.base.Result
;
import
com.example.afrishop_v3.base.Result
;
import
com.example.afrishop_v3.enums.ResultCodeEnum
;
import
com.example.afrishop_v3.models.TbCfToicoupon
;
import
com.example.afrishop_v3.models.TbCfToicoupon
;
import
com.example.afrishop_v3.repository.TbCfCouponRepository
;
import
com.example.afrishop_v3.repository.TbCfCouponRepository
;
import
com.example.afrishop_v3.repository.TbCfToicouponRepository
;
import
com.example.afrishop_v3.repository.TbCfToicouponRepository
;
...
@@ -27,23 +26,17 @@ public class CouponController {
...
@@ -27,23 +26,17 @@ public class CouponController {
@GetMapping
@GetMapping
public
Result
getUserCoupons
(){
public
Result
getUserCoupons
(){
try
{
String
userId
=
user
.
userId
();
List
<
TbCfToicoupon
>
availableCoupons
=
repository
.
queryUserAvailableCoupon
(
userId
);
List
<
TbCfToicoupon
>
expiredCoupons
=
repository
.
queryUserExpiredCoupon
(
userId
);
List
<
TbCfToicoupon
>
usedCoupons
=
repository
.
queryUserUsedCoupon
(
userId
);
String
userId
=
user
.
userId
();
LinkedHashMap
<
String
,
Object
>
hashMap
=
new
LinkedHashMap
<>();
List
<
TbCfToicoupon
>
availableCoupons
=
repository
.
queryUserAvailableCoupon
(
userId
);
List
<
TbCfToicoupon
>
expiredCoupons
=
repository
.
queryUserExpiredCoupon
(
userId
);
List
<
TbCfToicoupon
>
usedCoupons
=
repository
.
queryUserUsedCoupon
(
userId
);
LinkedHashMap
<
String
,
Object
>
hashMap
=
new
LinkedHashMap
<>();
hashMap
.
put
(
"validCouponList"
,
availableCoupons
);
hashMap
.
put
(
"usedCouponList"
,
usedCoupons
);
hashMap
.
put
(
"expiredCouponList"
,
expiredCoupons
);
hashMap
.
put
(
"validCouponList"
,
availableCoupons
);
return
new
Result
<>(
hashMap
);
hashMap
.
put
(
"usedCouponList"
,
usedCoupons
);
hashMap
.
put
(
"expiredCouponList"
,
expiredCoupons
);
return
new
Result
<>(
hashMap
);
}
catch
(
Exception
e
){
System
.
out
.
println
(
e
.
getMessage
());
return
new
Result
(
ResultCodeEnum
.
VALIDATE_ERROR
.
getCode
(),
e
.
getMessage
());
}
}
}
}
}
src/main/java/com/example/afrishop_v3/controllers/DpoPayController.java
浏览文件 @
43eb791c
...
@@ -8,8 +8,10 @@ import com.example.afrishop_v3.enums.OrderStatusEnum;
...
@@ -8,8 +8,10 @@ import com.example.afrishop_v3.enums.OrderStatusEnum;
import
com.example.afrishop_v3.enums.ResultCodeEnum
;
import
com.example.afrishop_v3.enums.ResultCodeEnum
;
import
com.example.afrishop_v3.models.TbCfFinance
;
import
com.example.afrishop_v3.models.TbCfFinance
;
import
com.example.afrishop_v3.models.TbCfOrder
;
import
com.example.afrishop_v3.models.TbCfOrder
;
import
com.example.afrishop_v3.models.TbCfUserInfo
;
import
com.example.afrishop_v3.repository.TbCfFinanceRepository
;
import
com.example.afrishop_v3.repository.TbCfFinanceRepository
;
import
com.example.afrishop_v3.repository.TbCfOrderRepository
;
import
com.example.afrishop_v3.repository.TbCfOrderRepository
;
import
com.example.afrishop_v3.security.services.AuthenticationUser
;
import
com.example.afrishop_v3.util.DataUtils
;
import
com.example.afrishop_v3.util.DataUtils
;
import
com.example.afrishop_v3.util.HttpsUtil
;
import
com.example.afrishop_v3.util.HttpsUtil
;
import
com.example.afrishop_v3.util.IdUtil
;
import
com.example.afrishop_v3.util.IdUtil
;
...
@@ -30,15 +32,17 @@ import java.util.Optional;
...
@@ -30,15 +32,17 @@ import java.util.Optional;
@RestController
@RestController
@RequestMapping
(
"/dpo"
)
@RequestMapping
(
"/dpo"
)
public
class
DpoPayController
{
public
class
DpoPayController
extends
Controller
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
DpoPayController
.
class
);
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
DpoPayController
.
class
);
private
final
TbCfOrderRepository
repository
;
private
final
TbCfOrderRepository
repository
;
private
final
TbCfFinanceRepository
financeRepository
;
private
final
TbCfFinanceRepository
financeRepository
;
private
final
AuthenticationUser
user
;
public
DpoPayController
(
TbCfOrderRepository
repository
,
TbCfFinanceRepository
financeRepository
)
{
public
DpoPayController
(
TbCfOrderRepository
repository
,
TbCfFinanceRepository
financeRepository
,
AuthenticationUser
user
)
{
this
.
repository
=
repository
;
this
.
repository
=
repository
;
this
.
financeRepository
=
financeRepository
;
this
.
financeRepository
=
financeRepository
;
this
.
user
=
user
;
}
}
...
@@ -103,6 +107,10 @@ public class DpoPayController {
...
@@ -103,6 +107,10 @@ public class DpoPayController {
String
resCode
=
api3G
.
getString
(
"Result"
);
String
resCode
=
api3G
.
getString
(
"Result"
);
//校验交易状态码
//校验交易状态码
if
(
DpoConfig
.
SUCCESS_CODE
.
equals
(
resCode
))
{
if
(
DpoConfig
.
SUCCESS_CODE
.
equals
(
resCode
))
{
TbCfUserInfo
user
=
this
.
user
.
user
();
if
(
user
.
hasFcm
()
){
sendNotification
(
user
.
getFcm
(),
"Order alert !!"
,
"Order of $"
+
order
.
getRealityPay
()
+
" has been successfully paid !!"
);
}
//获取缓存中的订单
//获取缓存中的订单
// TbCfOrderVo tbCfOrderVo = (TbCfOrderVo) orderRedisCache.get(KeyConstant.ORDER_DET + orderId);
// TbCfOrderVo tbCfOrderVo = (TbCfOrderVo) orderRedisCache.get(KeyConstant.ORDER_DET + orderId);
// //如果缓存中没有订单,则从数据库中查找
// //如果缓存中没有订单,则从数据库中查找
...
...
src/main/java/com/example/afrishop_v3/controllers/FlutterWaveController.java
浏览文件 @
43eb791c
...
@@ -13,6 +13,7 @@ import com.example.afrishop_v3.models.*;
...
@@ -13,6 +13,7 @@ import com.example.afrishop_v3.models.*;
import
com.example.afrishop_v3.repository.TbCfFinanceRepository
;
import
com.example.afrishop_v3.repository.TbCfFinanceRepository
;
import
com.example.afrishop_v3.repository.TbCfOrderRepository
;
import
com.example.afrishop_v3.repository.TbCfOrderRepository
;
import
com.example.afrishop_v3.repository.UserRepository
;
import
com.example.afrishop_v3.repository.UserRepository
;
import
com.example.afrishop_v3.security.services.AuthenticationUser
;
import
com.example.afrishop_v3.util.HttpClientUtil
;
import
com.example.afrishop_v3.util.HttpClientUtil
;
import
com.example.afrishop_v3.util.IdUtil
;
import
com.example.afrishop_v3.util.IdUtil
;
import
org.json.JSONObject
;
import
org.json.JSONObject
;
...
@@ -27,12 +28,13 @@ import java.util.*;
...
@@ -27,12 +28,13 @@ import java.util.*;
@RestController
@RestController
@RequestMapping
(
"/flutterwave"
)
@RequestMapping
(
"/flutterwave"
)
public
class
FlutterWaveController
{
public
class
FlutterWaveController
extends
Controller
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
FlutterWaveController
.
class
);
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
FlutterWaveController
.
class
);
private
final
TbCfOrderRepository
repository
;
private
final
TbCfOrderRepository
repository
;
private
final
TbCfFinanceRepository
financeRepository
;
private
final
TbCfFinanceRepository
financeRepository
;
private
final
UserRepository
userRepository
;
private
final
UserRepository
userRepository
;
private
final
DomainProperties
domainProperties
;
private
final
DomainProperties
domainProperties
;
private
final
AuthenticationUser
user
;
//退款API
//退款API
...
@@ -41,11 +43,12 @@ public class FlutterWaveController {
...
@@ -41,11 +43,12 @@ public class FlutterWaveController {
// //校验API
// //校验API
private
String
VERIFY_PAY_URL
=
"https://api.ravepay.co/flwv3-pug/getpaidx/api/v2/verify"
;
private
String
VERIFY_PAY_URL
=
"https://api.ravepay.co/flwv3-pug/getpaidx/api/v2/verify"
;
public
FlutterWaveController
(
TbCfOrderRepository
repository
,
TbCfFinanceRepository
financeRepository
,
UserRepository
userRepository
,
DomainProperties
domainProperties
)
{
public
FlutterWaveController
(
TbCfOrderRepository
repository
,
TbCfFinanceRepository
financeRepository
,
UserRepository
userRepository
,
DomainProperties
domainProperties
,
AuthenticationUser
user
)
{
this
.
repository
=
repository
;
this
.
repository
=
repository
;
this
.
financeRepository
=
financeRepository
;
this
.
financeRepository
=
financeRepository
;
this
.
userRepository
=
userRepository
;
this
.
userRepository
=
userRepository
;
this
.
domainProperties
=
domainProperties
;
this
.
domainProperties
=
domainProperties
;
this
.
user
=
user
;
}
}
@PostMapping
(
"/pay"
)
@PostMapping
(
"/pay"
)
...
@@ -129,6 +132,10 @@ public class FlutterWaveController {
...
@@ -129,6 +132,10 @@ public class FlutterWaveController {
String
paymentid
=
results
.
getString
(
"paymentid"
);
String
paymentid
=
results
.
getString
(
"paymentid"
);
String
authurl
=
results
.
getString
(
"authurl"
);
String
authurl
=
results
.
getString
(
"authurl"
);
if
(
"success"
.
equalsIgnoreCase
(
statusFlag
)
&&
"successful"
.
equalsIgnoreCase
(
status
))
{
if
(
"success"
.
equalsIgnoreCase
(
statusFlag
)
&&
"successful"
.
equalsIgnoreCase
(
status
))
{
TbCfUserInfo
user
=
this
.
user
.
user
();
if
(
user
.
hasFcm
()
){
sendNotification
(
user
.
getFcm
(),
"Order alert !!"
,
"Order of $"
+
tbCfOrderVo
.
getRealityPay
()
+
" has been successfully paid !!"
);
}
logger
.
info
(
"订单号"
+
orderId
+
"[flutterwave支付]校验成功时间:"
+
new
Date
());
logger
.
info
(
"订单号"
+
orderId
+
"[flutterwave支付]校验成功时间:"
+
new
Date
());
//支付成功
//支付成功
changeOrderState
(
paymentid
,
tbCfOrderVo
);
changeOrderState
(
paymentid
,
tbCfOrderVo
);
...
...
src/main/java/com/example/afrishop_v3/controllers/OrderController.java
浏览文件 @
43eb791c
...
@@ -15,6 +15,7 @@ import org.springframework.data.domain.Sort;
...
@@ -15,6 +15,7 @@ import org.springframework.data.domain.Sort;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.math.BigDecimal
;
import
java.net.URISyntaxException
;
import
java.net.URISyntaxException
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.Date
;
...
@@ -29,7 +30,7 @@ import static org.springframework.data.domain.Sort.Order.desc;
...
@@ -29,7 +30,7 @@ import static org.springframework.data.domain.Sort.Order.desc;
@RestController
@RestController
@RequestMapping
(
"/order"
)
@RequestMapping
(
"/order"
)
public
class
OrderController
{
public
class
OrderController
extends
Controller
{
private
final
TbCfOrderRepository
repository
;
private
final
TbCfOrderRepository
repository
;
private
final
TbCfCartRecordRRepository
cartRepository
;
private
final
TbCfCartRecordRRepository
cartRepository
;
private
final
TbCfCouponRepository
couponRepository
;
private
final
TbCfCouponRepository
couponRepository
;
...
@@ -46,7 +47,7 @@ public class OrderController {
...
@@ -46,7 +47,7 @@ public class OrderController {
this
.
user
=
user
;
this
.
user
=
user
;
}
}
private
TbCfCartRecordR
getCart
(
TbCfStationItem
item
,
String
itemSku
,
Integer
itemNum
)
{
private
TbCfCartRecordR
getCart
(
TbCfStationItem
item
,
String
itemSku
,
Integer
itemNum
,
Double
price
)
{
TbCfCartRecordR
record
=
new
TbCfCartRecordR
();
TbCfCartRecordR
record
=
new
TbCfCartRecordR
();
...
@@ -56,7 +57,7 @@ public class OrderController {
...
@@ -56,7 +57,7 @@ public class OrderController {
record
.
setItemSku
(
itemSku
);
record
.
setItemSku
(
itemSku
);
record
.
setTemplate
(
item
.
getExpress
());
record
.
setTemplate
(
item
.
getExpress
());
record
.
setItemTitle
(
item
.
getItemName
());
record
.
setItemTitle
(
item
.
getItemName
());
record
.
setItemPrice
(
item
.
getOneOfPrices
(
));
record
.
setItemPrice
(
BigDecimal
.
valueOf
(
price
));
record
.
setItemImg
(
item
.
getItemImg
());
record
.
setItemImg
(
item
.
getItemImg
());
return
record
;
return
record
;
...
@@ -64,10 +65,14 @@ public class OrderController {
...
@@ -64,10 +65,14 @@ public class OrderController {
@GetMapping
(
"/payNow"
)
@GetMapping
(
"/payNow"
)
public
Result
<
TbCfOrder
>
payNow
(
@RequestParam
(
"itemId"
)
String
itemId
,
@RequestParam
(
"itemNum"
)
Integer
itemNum
,
@RequestParam
(
value
=
"itemSku"
,
defaultValue
=
""
)
String
itemSku
,
@RequestParam
(
value
=
"toitableId"
,
required
=
false
)
String
toitableId
)
{
public
Result
<
TbCfOrder
>
payNow
(
@RequestParam
(
"itemId"
)
String
itemId
,
@RequestParam
(
"itemNum"
)
Integer
itemNum
,
@RequestParam
(
value
=
"itemSku"
,
defaultValue
=
""
)
String
itemSku
,
@RequestParam
(
value
=
"itemPrice"
)
Double
itemPrice
,
@RequestParam
(
value
=
"toitableId"
,
required
=
false
)
String
toitableId
)
{
TbCfOrder
order
=
new
TbCfOrder
();
TbCfOrder
order
=
new
TbCfOrder
();
if
(
StringUtils
.
isBlank
(
itemId
)
||
itemNum
==
null
||
itemNum
<=
0
)
if
(
StringUtils
.
isBlank
(
itemId
)
||
itemNum
==
null
||
itemNum
<=
0
||
itemPrice
==
null
||
itemPrice
<=
0
)
return
new
Result
<>(
ResultCodeEnum
.
SERVICE_ERROR
.
getCode
(),
"Missing information !"
);
return
new
Result
<>(
ResultCodeEnum
.
SERVICE_ERROR
.
getCode
(),
"Missing information !"
);
Optional
<
TbCfStationItem
>
byId
=
itemRepository
.
findById
(
itemId
);
Optional
<
TbCfStationItem
>
byId
=
itemRepository
.
findById
(
itemId
);
...
@@ -79,7 +84,7 @@ public class OrderController {
...
@@ -79,7 +84,7 @@ public class OrderController {
List
<
TbCfCartRecordR
>
list
=
new
ArrayList
<>();
List
<
TbCfCartRecordR
>
list
=
new
ArrayList
<>();
list
.
add
(
getCart
(
item
,
itemSku
,
itemNum
));
list
.
add
(
getCart
(
item
,
itemSku
,
itemNum
,
itemPrice
));
order
.
setCouponId
(
toitableId
);
order
.
setCouponId
(
toitableId
);
if
(
toitableId
!=
null
&&
!
toitableId
.
isEmpty
())
{
if
(
toitableId
!=
null
&&
!
toitableId
.
isEmpty
())
{
...
@@ -126,8 +131,10 @@ public class OrderController {
...
@@ -126,8 +131,10 @@ public class OrderController {
@RequestParam
(
value
=
"itemId"
,
required
=
false
)
String
itemId
,
@RequestParam
(
value
=
"itemId"
,
required
=
false
)
String
itemId
,
@RequestParam
(
value
=
"itemNum"
,
required
=
false
)
Integer
itemNum
,
@RequestParam
(
value
=
"itemNum"
,
required
=
false
)
Integer
itemNum
,
@RequestParam
(
value
=
"itemSku"
,
required
=
false
)
String
itemSku
,
@RequestParam
(
value
=
"itemSku"
,
required
=
false
)
String
itemSku
,
@RequestParam
(
value
=
"itemPrice"
,
required
=
false
)
Double
itemPrice
,
@RequestParam
(
value
=
"web"
,
required
=
false
)
String
web
)
throws
IOException
,
URISyntaxException
,
ExecutionException
,
InterruptedException
,
TimeoutException
{
@RequestParam
(
value
=
"web"
,
required
=
false
)
String
web
)
throws
IOException
,
URISyntaxException
,
ExecutionException
,
InterruptedException
,
TimeoutException
{
String
userId
=
user
.
userId
();
TbCfUserInfo
user
=
this
.
user
.
user
();
String
userId
=
user
.
getUserId
();
int
v_code
=
ResultCodeEnum
.
VALIDATE_ERROR
.
getCode
();
int
v_code
=
ResultCodeEnum
.
VALIDATE_ERROR
.
getCode
();
...
@@ -136,7 +143,7 @@ public class OrderController {
...
@@ -136,7 +143,7 @@ public class OrderController {
boolean
noCartBody
=
tbCfOrder
.
getIds
()
==
null
||
tbCfOrder
.
getIds
().
length
<=
0
;
boolean
noCartBody
=
tbCfOrder
.
getIds
()
==
null
||
tbCfOrder
.
getIds
().
length
<=
0
;
boolean
noPayNow
=
itemId
==
null
||
itemId
.
isEmpty
()
||
itemNum
==
null
||
itemNum
<=
0
;
boolean
noPayNow
=
itemId
==
null
||
itemId
.
isEmpty
()
||
itemNum
==
null
||
itemNum
<=
0
||
itemPrice
==
null
||
itemPrice
<=
0
;
if
(
noCartBody
&&
noPayNow
)
if
(
noCartBody
&&
noPayNow
)
return
new
Result
<>(
v_code
,
"Empty body"
);
return
new
Result
<>(
v_code
,
"Empty body"
);
...
@@ -150,7 +157,7 @@ public class OrderController {
...
@@ -150,7 +157,7 @@ public class OrderController {
TbCfStationItem
stationItem
=
byId
.
get
();
TbCfStationItem
stationItem
=
byId
.
get
();
allByUserId
.
add
(
getCart
(
stationItem
,
itemSku
,
itemNum
));
allByUserId
.
add
(
getCart
(
stationItem
,
itemSku
,
itemNum
,
itemPrice
));
}
else
{
}
else
{
allByUserId
=
cartRepository
.
findAllByCartRecordIdIn
(
tbCfOrder
.
getIds
());
allByUserId
=
cartRepository
.
findAllByCartRecordIdIn
(
tbCfOrder
.
getIds
());
...
@@ -201,6 +208,11 @@ public class OrderController {
...
@@ -201,6 +208,11 @@ public class OrderController {
// implementation of coupon use
// implementation of coupon use
if
(
user
.
hasFcm
()
){
sendNotification
(
user
.
getFcm
(),
"Order alert !!"
,
"Order of $"
+
order
.
getRealityPay
()+
" has been created , proceed with payment"
);
}
return
new
Result
<>(
save
);
return
new
Result
<>(
save
);
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论