Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
O
online-edu-backend
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
online-edu
online-edu-backend
Commits
adb18f33
Commit
adb18f33
authored
Jun 18, 2021
by
liuyang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
完成定时检查订单
parent
59ae5ada
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
58 additions
and
24 deletions
+58
-24
AlipayNotifyController.java
.../com/qkdata/alipay/controller/AlipayNotifyController.java
+3
-6
AlipayService.java
src/main/java/com/qkdata/alipay/service/AlipayService.java
+12
-6
ProductOrderStatusEnum.java
...ain/java/com/qkdata/biz/enums/ProductOrderStatusEnum.java
+10
-1
ProductOrderPO.java
...java/com/qkdata/biz/management/entity/ProductOrderPO.java
+5
-0
ProductOrderService.java
...om/qkdata/biz/management/service/ProductOrderService.java
+0
-0
TimeTaskService.java
...va/com/qkdata/biz/management/service/TimeTaskService.java
+14
-2
WxPayNotifyController.java
...a/com/qkdata/wx/pay/controller/WxPayNotifyController.java
+0
-3
application-dev.yml
src/main/resources/application-dev.yml
+9
-4
V1.0.14__update.sql
src/main/resources/db/migration/V1.0.14__update.sql
+3
-0
course_consume_recordMapper.xml
...ources/mappers/management/course_consume_recordMapper.xml
+2
-2
No files found.
src/main/java/com/qkdata/alipay/controller/AlipayNotifyController.java
View file @
adb18f33
...
@@ -48,12 +48,10 @@ public class AlipayNotifyController {
...
@@ -48,12 +48,10 @@ public class AlipayNotifyController {
boolean
verify_result
=
AlipaySignature
.
rsaCheckV1
(
params
,
alipayProperties
.
getAlipayPublicKey
(),
"UTF-8"
,
"RSA2"
);
boolean
verify_result
=
AlipaySignature
.
rsaCheckV1
(
params
,
alipayProperties
.
getAlipayPublicKey
(),
"UTF-8"
,
"RSA2"
);
if
(
verify_result
){
if
(
verify_result
){
//验证成功
//验证成功
if
(
trade_status
.
equals
(
"TRADE_SUCCESS"
)){
if
(
trade_status
.
equals
(
"TRADE_SUCCESS"
)
||
trade_status
.
equals
(
"TRADE_FINISHED"
)
){
orderService
.
orderComplete
(
out_trade_no
);
orderService
.
orderComplete
(
out_trade_no
);
}
else
if
(
trade_status
.
equals
(
"TRADE_FINISHED"
)){
}
else
if
(
trade_status
.
equals
(
"TRADE_CLOSED"
)){
orderService
.
updateStatus
(
out_trade_no
,
ProductOrderStatusEnum
.
PAY_CLOSE
);
}
else
if
(
trade_status
.
equals
(
"WAIT_BUYER_PAY"
)){
orderService
.
updateStatus
(
out_trade_no
,
ProductOrderStatusEnum
.
WAIT_PAY
);
}
}
}
else
{
}
else
{
//验证失败
//验证失败
...
@@ -61,7 +59,6 @@ public class AlipayNotifyController {
...
@@ -61,7 +59,6 @@ public class AlipayNotifyController {
}
}
}
catch
(
AlipayApiException
e
)
{
}
catch
(
AlipayApiException
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
e
.
getMessage
(),
e
);
orderService
.
updateStatus
(
out_trade_no
,
ProductOrderStatusEnum
.
PAY_FAILD
);
return
"fail"
;
return
"fail"
;
}
}
return
"success"
;
return
"success"
;
...
...
src/main/java/com/qkdata/alipay/service/AlipayService.java
View file @
adb18f33
...
@@ -2,10 +2,13 @@ package com.qkdata.alipay.service;
...
@@ -2,10 +2,13 @@ package com.qkdata.alipay.service;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alipay.api.*
;
import
com.alipay.api.*
;
import
com.alipay.api.domain.AlipayTradeCloseModel
;
import
com.alipay.api.domain.AlipayTradeQueryModel
;
import
com.alipay.api.domain.AlipayTradeQueryModel
;
import
com.alipay.api.domain.AlipayTradeWapPayModel
;
import
com.alipay.api.domain.AlipayTradeWapPayModel
;
import
com.alipay.api.request.AlipayTradeCloseRequest
;
import
com.alipay.api.request.AlipayTradeQueryRequest
;
import
com.alipay.api.request.AlipayTradeQueryRequest
;
import
com.alipay.api.request.AlipayTradeWapPayRequest
;
import
com.alipay.api.request.AlipayTradeWapPayRequest
;
import
com.alipay.api.response.AlipayTradeCloseResponse
;
import
com.alipay.api.response.AlipayTradeQueryResponse
;
import
com.alipay.api.response.AlipayTradeQueryResponse
;
import
com.alipay.api.response.AlipayTradeWapPayResponse
;
import
com.alipay.api.response.AlipayTradeWapPayResponse
;
import
com.qkdata.alipay.config.AlipayProperties
;
import
com.qkdata.alipay.config.AlipayProperties
;
...
@@ -58,12 +61,15 @@ public class AlipayService {
...
@@ -58,12 +61,15 @@ public class AlipayService {
model
.
setOutTradeNo
(
orderNo
);
model
.
setOutTradeNo
(
orderNo
);
request
.
setBizModel
(
model
);
request
.
setBizModel
(
model
);
AlipayTradeQueryResponse
response
=
alipayClient
.
execute
(
request
);
AlipayTradeQueryResponse
response
=
alipayClient
.
execute
(
request
);
String
result
=
""
;
return
response
.
getTradeStatus
();
if
(
response
.
isSuccess
()){
result
=
response
.
getTradeStatus
();
}
else
{
log
.
info
(
"Alipay trade query faild:"
+
JSONObject
.
toJSONString
(
response
));
}
}
return
result
;
public
AlipayTradeCloseResponse
closeOrder
(
String
orderNo
)
throws
AlipayApiException
{
AlipayTradeCloseRequest
request
=
new
AlipayTradeCloseRequest
();
AlipayTradeCloseModel
model
=
new
AlipayTradeCloseModel
();
model
.
setOutTradeNo
(
orderNo
);
request
.
setBizModel
(
model
);
AlipayTradeCloseResponse
response
=
alipayClient
.
execute
(
request
);
return
response
;
}
}
}
}
src/main/java/com/qkdata/biz/enums/ProductOrderStatusEnum.java
View file @
adb18f33
...
@@ -4,7 +4,16 @@ package com.qkdata.biz.enums;
...
@@ -4,7 +4,16 @@ package com.qkdata.biz.enums;
* 订单状态
* 订单状态
*/
*/
public
enum
ProductOrderStatusEnum
{
public
enum
ProductOrderStatusEnum
{
/**
* 待支付
*/
WAIT_PAY
,
WAIT_PAY
,
/**
* 已支付
*/
PAY_COMPLETE
,
PAY_COMPLETE
,
PAY_FAILD
;
/**
* 支付关闭
*/
PAY_CLOSE
;
}
}
src/main/java/com/qkdata/biz/management/entity/ProductOrderPO.java
View file @
adb18f33
...
@@ -3,6 +3,7 @@ package com.qkdata.biz.management.entity;
...
@@ -3,6 +3,7 @@ package com.qkdata.biz.management.entity;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.qkdata.biz.enums.PayMethodEnum
;
import
com.qkdata.biz.enums.PayMethodEnum
;
import
com.qkdata.biz.enums.PaySourceEnum
;
import
com.qkdata.biz.enums.ProductOrderStatusEnum
;
import
com.qkdata.biz.enums.ProductOrderStatusEnum
;
import
com.qkdata.biz.enums.ProductTypeEnum
;
import
com.qkdata.biz.enums.ProductTypeEnum
;
import
com.qkdata.common.base.entity.BasePO
;
import
com.qkdata.common.base.entity.BasePO
;
...
@@ -82,6 +83,10 @@ public class ProductOrderPO extends BasePO {
...
@@ -82,6 +83,10 @@ public class ProductOrderPO extends BasePO {
* 订单状态
* 订单状态
*/
*/
private
ProductOrderStatusEnum
status
;
private
ProductOrderStatusEnum
status
;
/**
* 支付来源
*/
private
PaySourceEnum
source
;
}
}
src/main/java/com/qkdata/biz/management/service/ProductOrderService.java
View file @
adb18f33
This diff is collapsed.
Click to expand it.
src/main/java/com/qkdata/biz/management/service/TimeTaskService.java
View file @
adb18f33
...
@@ -25,12 +25,14 @@ public class TimeTaskService {
...
@@ -25,12 +25,14 @@ public class TimeTaskService {
private
RedisTemplate
redisTemplate
;
private
RedisTemplate
redisTemplate
;
@Autowired
@Autowired
private
CourseConsumeRecordService
recordService
;
private
CourseConsumeRecordService
recordService
;
@Autowired
private
ProductOrderService
productOrderService
;
/**
/**
* 每
30
分钟执行一次
* 每
5
分钟执行一次
*/
*/
@Scheduled
(
cron
=
"0
*
/5 * * * ?"
)
@Scheduled
(
cron
=
"0
0
/5 * * * ?"
)
public
void
saveConsumeRecord
(){
public
void
saveConsumeRecord
(){
log
.
debug
(
"TimeTaskService saveConsumeRecord excute start================="
);
log
.
debug
(
"TimeTaskService saveConsumeRecord excute start================="
);
Set
<
String
>
keys
=
redisTemplate
.
opsForHash
().
keys
(
BizConstants
.
CACHE_KE_CONSUME_RECORD
);
Set
<
String
>
keys
=
redisTemplate
.
opsForHash
().
keys
(
BizConstants
.
CACHE_KE_CONSUME_RECORD
);
...
@@ -45,4 +47,14 @@ public class TimeTaskService {
...
@@ -45,4 +47,14 @@ public class TimeTaskService {
}
}
log
.
debug
(
"TimeTaskService saveConsumeRecord excute end================="
);
log
.
debug
(
"TimeTaskService saveConsumeRecord excute end================="
);
}
}
/**
* 每隔1分名检查未支付订单状态
*/
@Scheduled
(
cron
=
"0 0/1 * * * ?"
)
public
void
checkProductOrder
(){
log
.
debug
(
"TimeTaskService checkProductOrder excute start================="
);
productOrderService
.
checkProductOrder
();
log
.
debug
(
"TimeTaskService checkProductOrder excute end================="
);
}
}
}
src/main/java/com/qkdata/wx/pay/controller/WxPayNotifyController.java
View file @
adb18f33
...
@@ -43,9 +43,6 @@ public class WxPayNotifyController {
...
@@ -43,9 +43,6 @@ public class WxPayNotifyController {
}
catch
(
WxPayException
e
){
}
catch
(
WxPayException
e
){
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
e
.
getMessage
(),
e
);
if
(
null
!=
outTradeNo
){
orderService
.
updateStatus
(
outTradeNo
,
ProductOrderStatusEnum
.
PAY_FAILD
);
}
}
}
return
WxPayNotifyResponse
.
success
(
"OK"
);
return
WxPayNotifyResponse
.
success
(
"OK"
);
}
}
...
...
src/main/resources/application-dev.yml
View file @
adb18f33
...
@@ -24,9 +24,14 @@ sms:
...
@@ -24,9 +24,14 @@ sms:
api
:
api
:
v3
:
http://localhost:9004/sms/api/v3
v3
:
http://localhost:9004/sms/api/v3
## 支付宝沙箱环境
## 支付宝沙箱环境
#alipay:
# appId: 2021000117670831
# url: https://openapi.alipaydev.com/gateway.do
# appPrivateKey: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCJOkoU54PfkfL6LktJzYRvWGQjXptV0Y2w3h35Zf4yjfIKjAXLumiNE00XCWcsR2HWbx23SpcHLlk9peUd1+OKGkk1D4Ts99r/5OimRmVjnF+/pRPtooCMEa1ub6NO2IPTnyz/jxn4gXsGlKRVIMP7Sa9xVodZib4IXWemf7+jysQuG1R5kN9ClkQi+WIv4MExueUJiu2tyhDnuvk/vIDGP3tTbY1myedqx/StZIu2zQRul/KIDKkNUmXVds0F9QbnwK7AdcQwyCyy86XQzytq0GNPqL83YZGEvmH0mJ4nfkWKpyHzOLmkhvkKzOD3rRi8HtV7YUMTWN3v3vHrRE/pAgMBAAECggEAJK/puFcA4ZeSXyJbTHreaio2c2JKoxHoEJ4BY3jKEdfzGrC+p+3JH9ZGKN+BrsvSs1J3nlYZtHjGsP2WGHlsQrKuWboxbm0BJqKbNEDjwFLBImpOvpxQQ6JCPKEqBt1JuRz4Gca3ScHME0FQAdZFrvvPJLzeaKiznmbiXBgRMweRW704Nk2HfM3Uo7x2PS3BiCDdaQ0CXnj63EWHCteyLf4TlgV7qlk0OG9uh9RWm5xRC5/ucscc8oa8BdC/fLdAh7T2XIHFtVhEe+KPYvobJ3lFZlRb/jhKlu79wWXC08zoQrunCesvsB/RrLDTHk0FV29h1qv3BneOLFVDiwj6BQKBgQC9dXcDmRx7kZcA/dDz13RljWo0kmuYQt1h1dI1a7GgqcIdI5jdwOf3vVN7Ctge6YLaG+ptiaXU+SAMN1HQnqzN5DlKn2Q7hN66I+KQjfOYggnDEscOIPEaY/avAsSVZObZu+bK/XDIbypDDl4dELvVQy8ckd4CCCKC8QduqObu8wKBgQC5bKQzIrvtmaEhqbjvP83CZyiGG/GB3zzogJUKA6nm0oKiURHldoA5UozYyvbu3sBBuw81NQYuMMBVBZgO3XIFc7hHVqyn93dHgzOxUFYk2bhliVg9siFg6n3YQWvxIDkP6NGVhCXPLL+0H33rcBCjgQyxJyUa35rAzovFWu7UswKBgQClvrvNxAcs+2N1lJdWm6jSpvLA50+Ftwlh6+OopHyTJ7AQOfIkHf1RuKntvMDx2iuFkGJ4TbFsLj4hMcw7jHV08jJE3Eid4VHQ2k/9UpJHW4wawrSt4ZfMFKPc27kLUWi8FyyDbVFbqBT68PjYyKjqm4n9nobwlBlNIHv2DYFqjQKBgDWUH+oqujTQtI+elDKFtDXdSwddYa6OS/I+3VH0dw6ce2Tdmhc845YstUgbdbjWIqWboKxWMv/71Ed9A1AgSscqhfAPKnqqdgvy7Gfq98lUJAUq55WEOELh3xUy6jbVgceIFa9nbOltW8N3ahIy4ovsSTeTQRR/0h6uUBLp0KMjAoGAHJBJOAnS8csXYIIMArXcxCUgnC90sMQ9DySaTxmtfTVAy7Gs1TnBLRpwWOg55u1KebVTgx5T6vU+KupNi5KAbuK/1so27XXCo7DAY83leJTn9UC4iyOSOhTyNBwvd8uDyT2XrxbesSTBLe1dT3QtXJwT4iBttKky9lsAQDHB13o=
# alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhBcqLFQhDttWG9Ffqzf8SNjYP/IzBHxUh9XxHVbUXFtDyCY4L0mZKfOCKKq9q7gC0D3wWEmP+OS4b/5oB7n0DgWExTb2lcStzwzISEyoRagGH38EWH77PgN97tsJw6p06nVTWr+0W60tb1FZeFmCNbqzEpuF22srRztKzfHfoyn8KyL5LcZ15JBPC8uuRT0fSh2txYrjvVuToh8tdMcLEL/LGj1h/E8ol7qSUfHkyQNyeWgP2YrzzmW9QvLuRYUS2ZjhMbbBbGpkq9Bf35kwNG3gvcb0y0cYXV9zR/OLgz0aRF7scDIICUYG9/9o0ezGaH4veaKCUC+8Zx9CqUUdZwIDAQAB
## 支付宝正式环境
alipay
:
alipay
:
appId
:
202100
0117670831
appId
:
202100
2147662648
url
:
https://openapi.alipay
dev
.com/gateway.do
url
:
https://openapi.alipay.com/gateway.do
appPrivateKey
:
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCJOkoU54PfkfL6LktJzYRvWGQjXptV0Y2w3h35Zf4yjfIKjAXLumiNE00XCWcsR2HWbx23SpcHLlk9peUd1+OKGkk1D4Ts99r/5OimRmVjnF+/pRPtooCMEa1ub6NO2IPTnyz/jxn4gXsGlKRVIMP7Sa9xVodZib4IXWemf7+jysQuG1R5kN9ClkQi+WIv4MExueUJiu2tyhDnuvk/vIDGP3tTbY1myedqx/StZIu2zQRul/KIDKkNUmXVds0F9QbnwK7AdcQwyCyy86XQzytq0GNPqL83YZGEvmH0mJ4nfkWKpyHzOLmkhvkKzOD3rRi8HtV7YUMTWN3v3vHrRE/pAgMBAAECggEAJK/puFcA4ZeSXyJbTHreaio2c2JKoxHoEJ4BY3jKEdfzGrC+p+3JH9ZGKN+BrsvSs1J3nlYZtHjGsP2WGHlsQrKuWboxbm0BJqKbNEDjwFLBImpOvpxQQ6JCPKEqBt1JuRz4Gca3ScHME0FQAdZFrvvPJLzeaKiznmbiXBgRMweRW704Nk2HfM3Uo7x2PS3BiCDdaQ0CXnj63EWHCteyLf4TlgV7qlk0OG9uh9RWm5xRC5/ucscc8oa8BdC/fLdAh7T2XIHFtVhEe+KPYvobJ3lFZlRb/jhKlu79wWXC08zoQrunCesvsB/RrLDTHk0FV29h1qv3BneOLFVDiwj6BQKBgQC9dXcDmRx7kZcA/dDz13RljWo0kmuYQt1h1dI1a7GgqcIdI5jdwOf3vVN7Ctge6YLaG+ptiaXU+SAMN1HQnqzN5DlKn2Q7hN66I+KQjfOYggnDEscOIPEaY/avAsSVZObZu+bK/XDIbypDDl4dELvVQy8ckd4CCCKC8QduqObu8wKBgQC5bKQzIrvtmaEhqbjvP83CZyiGG/GB3zzogJUKA6nm0oKiURHldoA5UozYyvbu3sBBuw81NQYuMMBVBZgO3XIFc7hHVqyn93dHgzOxUFYk2bhliVg9siFg6n3YQWvxIDkP6NGVhCXPLL+0H33rcBCjgQyxJyUa35rAzovFWu7UswKBgQClvrvNxAcs+2N1lJdWm6jSpvLA50+Ftwlh6+OopHyTJ7AQOfIkHf1RuKntvMDx2iuFkGJ4TbFsLj4hMcw7jHV08jJE3Eid4VHQ2k/9UpJHW4wawrSt4ZfMFKPc27kLUWi8FyyDbVFbqBT68PjYyKjqm4n9nobwlBlNIHv2DYFqjQKBgDWUH+oqujTQtI+elDKFtDXdSwddYa6OS/I+3VH0dw6ce2Tdmhc845YstUgbdbjWIqWboKxWMv/71Ed9A1AgSscqhfAPKnqqdgvy7Gfq98lUJAUq55WEOELh3xUy6jbVgceIFa9nbOltW8N3ahIy4ovsSTeTQRR/0h6uUBLp0KMjAoGAHJBJOAnS8csXYIIMArXcxCUgnC90sMQ9DySaTxmtfTVAy7Gs1TnBLRpwWOg55u1KebVTgx5T6vU+KupNi5KAbuK/1so27XXCo7DAY83leJTn9UC4iyOSOhTyNBwvd8uDyT2XrxbesSTBLe1dT3QtXJwT4iBttKky9lsAQDHB13o=
appPrivateKey
:
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCJOkoU54PfkfL6LktJzYRvWGQjXptV0Y2w3h35Zf4yjfIKjAXLumiNE00XCWcsR2HWbx23SpcHLlk9peUd1+OKGkk1D4Ts99r/5OimRmVjnF+/pRPtooCMEa1ub6NO2IPTnyz/jxn4gXsGlKRVIMP7Sa9xVodZib4IXWemf7+jysQuG1R5kN9ClkQi+WIv4MExueUJiu2tyhDnuvk/vIDGP3tTbY1myedqx/StZIu2zQRul/KIDKkNUmXVds0F9QbnwK7AdcQwyCyy86XQzytq0GNPqL83YZGEvmH0mJ4nfkWKpyHzOLmkhvkKzOD3rRi8HtV7YUMTWN3v3vHrRE/pAgMBAAECggEAJK/puFcA4ZeSXyJbTHreaio2c2JKoxHoEJ4BY3jKEdfzGrC+p+3JH9ZGKN+BrsvSs1J3nlYZtHjGsP2WGHlsQrKuWboxbm0BJqKbNEDjwFLBImpOvpxQQ6JCPKEqBt1JuRz4Gca3ScHME0FQAdZFrvvPJLzeaKiznmbiXBgRMweRW704Nk2HfM3Uo7x2PS3BiCDdaQ0CXnj63EWHCteyLf4TlgV7qlk0OG9uh9RWm5xRC5/ucscc8oa8BdC/fLdAh7T2XIHFtVhEe+KPYvobJ3lFZlRb/jhKlu79wWXC08zoQrunCesvsB/RrLDTHk0FV29h1qv3BneOLFVDiwj6BQKBgQC9dXcDmRx7kZcA/dDz13RljWo0kmuYQt1h1dI1a7GgqcIdI5jdwOf3vVN7Ctge6YLaG+ptiaXU+SAMN1HQnqzN5DlKn2Q7hN66I+KQjfOYggnDEscOIPEaY/avAsSVZObZu+bK/XDIbypDDl4dELvVQy8ckd4CCCKC8QduqObu8wKBgQC5bKQzIrvtmaEhqbjvP83CZyiGG/GB3zzogJUKA6nm0oKiURHldoA5UozYyvbu3sBBuw81NQYuMMBVBZgO3XIFc7hHVqyn93dHgzOxUFYk2bhliVg9siFg6n3YQWvxIDkP6NGVhCXPLL+0H33rcBCjgQyxJyUa35rAzovFWu7UswKBgQClvrvNxAcs+2N1lJdWm6jSpvLA50+Ftwlh6+OopHyTJ7AQOfIkHf1RuKntvMDx2iuFkGJ4TbFsLj4hMcw7jHV08jJE3Eid4VHQ2k/9UpJHW4wawrSt4ZfMFKPc27kLUWi8FyyDbVFbqBT68PjYyKjqm4n9nobwlBlNIHv2DYFqjQKBgDWUH+oqujTQtI+elDKFtDXdSwddYa6OS/I+3VH0dw6ce2Tdmhc845YstUgbdbjWIqWboKxWMv/71Ed9A1AgSscqhfAPKnqqdgvy7Gfq98lUJAUq55WEOELh3xUy6jbVgceIFa9nbOltW8N3ahIy4ovsSTeTQRR/0h6uUBLp0KMjAoGAHJBJOAnS8csXYIIMArXcxCUgnC90sMQ9DySaTxmtfTVAy7Gs1TnBLRpwWOg55u1KebVTgx5T6vU+KupNi5KAbuK/1so27XXCo7DAY83leJTn9UC4iyOSOhTyNBwvd8uDyT2XrxbesSTBLe1dT3QtXJwT4iBttKky9lsAQDHB13o=
alipayPublicKey
:
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhBcqLFQhDttWG9Ffqzf8SNjYP/IzBHxUh9XxHVbUXFtDyCY4L0mZKfOCKKq9q7gC0D3wWEmP+OS4b/5oB7n0DgWExTb2lcStzwzISEyoRagGH38EWH77PgN97tsJw6p06nVTWr+0W60tb1FZeFmCNbqzEpuF22srRztKzfHfoyn8KyL5LcZ15JBPC8uuRT0fSh2txYrjvVuToh8tdMcLEL/LGj1h/E8ol7qSUfHkyQNyeWgP2YrzzmW9QvLuRYUS2ZjhMbbBbGpkq9Bf35kwNG3gvcb0y0cYXV9zR/OLgz0aRF7scDIICUYG9/9o0ezGaH4veaKCUC+8Zx9CqUUdZwIDAQAB
alipayPublicKey
:
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAigumfaT5OI9WRVkZKC6lU95MaxCwNvcyRo+oQlItuhQLJexyIcLk87i4WWEmkkZOu8SLsPazkn18QeMnMwy98Pm1iGZCBmwFnj3UNq0qm5lfmpao945QKskArKVr/kkRMBNNm6INGpsppZAvBaBsiiSw4jrrgTE9AP3SvPQ2rykiZaU5Kcn7nMUueZt2aYIbJrpQ70mcl18sZILDPL0vNQJ1pIFMJN6B/BxSJDfi5Bbh2fiwOu+qVivBfYbCJuHpx2RWGA7jknGsnXHUHfAekAlFhtwGpa+fvpQPoB1jRPmvi8VQGJA+zU6lunxcRxpTEVGr1ryeeTUFIixQY9XNuQIDAQAB
src/main/resources/db/migration/V1.0.14__update.sql
0 → 100644
View file @
adb18f33
ALTER
TABLE
`product_order`
ADD
COLUMN
`source`
varchar
(
20
)
NULL
COMMENT
'支付来源'
AFTER
`pay_method`
;
\ No newline at end of file
src/main/resources/mappers/management/course_consume_recordMapper.xml
View file @
adb18f33
...
@@ -42,7 +42,7 @@
...
@@ -42,7 +42,7 @@
(
(
SELECT *
SELECT *
from course_consume_record
from course_consume_record
WHERE user_id = #{userId}
WHERE user_id = #{
p.
userId}
and is_del = 0
and is_del = 0
ORDER BY update_time desc,course_id ASC LIMIT 100000
ORDER BY update_time desc,course_id ASC LIMIT 100000
) t
) t
...
@@ -52,6 +52,6 @@
...
@@ -52,6 +52,6 @@
INNER JOIN course c on r.course_id = c.id
INNER JOIN course c on r.course_id = c.id
INNER JOIN course_chapter chapter on chapter.id = r.chapter_id
INNER JOIN course_chapter chapter on chapter.id = r.chapter_id
INNER JOIN resource res ON res.id = chapter.resource_id
INNER JOIN resource res ON res.id = chapter.resource_id
ORDER BY r.update_time DESC
;
ORDER BY r.update_time DESC
</select>
</select>
</mapper>
</mapper>
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