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
ec0f209c
Commit
ec0f209c
authored
Jun 03, 2021
by
liuyang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加用户授权课程表、企业VIP或课程余额表、企业成员领用或分配记录表
parent
1fa4a43b
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
323 additions
and
49 deletions
+323
-49
ProductTypeEnum.java
src/main/java/com/qkdata/biz/enums/ProductTypeEnum.java
+14
-1
VipReceiveEnum.java
src/main/java/com/qkdata/biz/enums/VipReceiveEnum.java
+9
-0
OrgSurplusPO.java
...n/java/com/qkdata/biz/management/entity/OrgSurplusPO.java
+44
-0
OrgUserReceiveRecordPO.java
.../qkdata/biz/management/entity/OrgUserReceiveRecordPO.java
+15
-11
OrganizationPO.java
...java/com/qkdata/biz/management/entity/OrganizationPO.java
+9
-0
UserCourseAuthPO.java
...va/com/qkdata/biz/management/entity/UserCourseAuthPO.java
+50
-0
OrgSurplusMapper.java
...va/com/qkdata/biz/management/mapper/OrgSurplusMapper.java
+4
-4
OrgUserReceiveRecordMapper.java
...ata/biz/management/mapper/OrgUserReceiveRecordMapper.java
+18
-0
UserCourseAuthMapper.java
...om/qkdata/biz/management/mapper/UserCourseAuthMapper.java
+18
-0
OrgSurplusService.java
.../com/qkdata/biz/management/service/OrgSurplusService.java
+6
-5
OrgUserReceiveRecordService.java
...a/biz/management/service/OrgUserReceiveRecordService.java
+20
-0
ProductOrderService.java
...om/qkdata/biz/management/service/ProductOrderService.java
+22
-0
UserCourseAuthService.java
.../qkdata/biz/management/service/UserCourseAuthService.java
+20
-0
UserCenterService.java
...in/java/com/qkdata/biz/web/service/UserCenterService.java
+16
-24
WxPayNotifyController.java
...a/com/qkdata/wx/pay/controller/WxPayNotifyController.java
+7
-3
V1.0.7__update.sql
src/main/resources/db/migration/V1.0.7__update.sql
+39
-0
org_surplusMapper.xml
src/main/resources/mappers/management/org_surplusMapper.xml
+1
-1
org_user_receive_recordMapper.xml
...rces/mappers/management/org_user_receive_recordMapper.xml
+5
-0
user_course_authMapper.xml
...n/resources/mappers/management/user_course_authMapper.xml
+5
-0
user_favoritesMapper.xml
...ain/resources/mappers/management/user_favoritesMapper.xml
+1
-0
No files found.
src/main/java/com/qkdata/biz/enums/ProductTypeEnum.java
View file @
ec0f209c
...
@@ -4,7 +4,20 @@ package com.qkdata.biz.enums;
...
@@ -4,7 +4,20 @@ package com.qkdata.biz.enums;
* 订单类型
* 订单类型
*/
*/
public
enum
ProductTypeEnum
{
public
enum
ProductTypeEnum
{
/**
* 个人购买VIP
*/
USER_VIP
,
USER_VIP
,
/**
* 企业购买VIP
*/
ENTERPRISE_VIP
,
ENTERPRISE_VIP
,
COURSE_BUY
;
/**
* 个人购买课程
*/
COURSE_BUY
,
/**
* 企业购买课程
*/
ENTERPRISE_COURSE_BUY
;
}
}
src/main/java/com/qkdata/biz/enums/VipReceiveEnum.java
0 → 100644
View file @
ec0f209c
package
com
.
qkdata
.
biz
.
enums
;
/**
* 企业VIP领用开放、关闭
*/
public
enum
VipReceiveEnum
{
OPEN
,
CLOSE
;
}
src/main/java/com/qkdata/biz/management/entity/OrgSurplusPO.java
0 → 100644
View file @
ec0f209c
package
com
.
qkdata
.
biz
.
management
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.qkdata.common.base.entity.BasePO
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* <p>
* 企业VIP或课程余额表
* </p>
*
* @author liuyang
* @since 2021-06-03
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"org_surplus"
)
public
class
OrgSurplusPO
extends
BasePO
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 企业ID
*/
private
Long
orgId
;
/**
* 课程ID
*/
private
Long
courseId
;
/**
* 产品类型
*/
private
String
productType
;
/**
* 剩余数量
*/
private
Integer
count
;
}
src/main/java/com/qkdata/biz/management/entity/
UserGetVip
RecordPO.java
→
src/main/java/com/qkdata/biz/management/entity/
OrgUserReceive
RecordPO.java
View file @
ec0f209c
package
com
.
qkdata
.
biz
.
management
.
entity
;
package
com
.
qkdata
.
biz
.
management
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.qkdata.biz.enums.UserPayRecordTypeEnum
;
import
com.qkdata.common.base.entity.BasePO
;
import
com.qkdata.common.base.entity.BasePO
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
/**
/**
* <p>
* <p>
* 企业
会员领取记录
* 企业
成员领用或分配记录表
* </p>
* </p>
*
*
* @author liuyang
* @author liuyang
* @since 2021-0
5-28
* @since 2021-0
6-03
*/
*/
@Data
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"
user_get_vip
_record"
)
@TableName
(
"
org_user_receive
_record"
)
public
class
UserGetVip
RecordPO
extends
BasePO
{
public
class
OrgUserReceive
RecordPO
extends
BasePO
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
/**
* 企业ID
*/
private
Long
orgId
;
/**
/**
* 用户ID
* 用户ID
*/
*/
private
Long
userId
;
private
Long
userId
;
/**
/**
*
领取类型(月卡、付费点播课程)
*
产品类型
*/
*/
private
UserPayRecordTypeEnum
t
ype
;
private
String
productT
ype
;
/**
/**
*
课程ID
*
领用或分配的数量
*/
*/
private
Long
courseId
;
private
Integer
count
;
/**
/**
*
企业
ID
*
课程
ID
*/
*/
private
Long
org
Id
;
private
Long
course
Id
;
}
}
src/main/java/com/qkdata/biz/management/entity/OrganizationPO.java
View file @
ec0f209c
...
@@ -3,6 +3,7 @@ package com.qkdata.biz.management.entity;
...
@@ -3,6 +3,7 @@ package com.qkdata.biz.management.entity;
import
com.baomidou.mybatisplus.annotation.TableLogic
;
import
com.baomidou.mybatisplus.annotation.TableLogic
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.qkdata.biz.enums.OrgTypeEnum
;
import
com.qkdata.biz.enums.OrgTypeEnum
;
import
com.qkdata.biz.enums.VipReceiveEnum
;
import
com.qkdata.common.base.entity.BasePO
;
import
com.qkdata.common.base.entity.BasePO
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
...
@@ -72,6 +73,14 @@ public class OrganizationPO extends BasePO {
...
@@ -72,6 +73,14 @@ public class OrganizationPO extends BasePO {
*/
*/
@TableLogic
@TableLogic
private
Boolean
isDel
;
private
Boolean
isDel
;
/**
* 企业会员领用开放关闭标识
*/
private
VipReceiveEnum
vipReceive
;
/**
* 企业点播库开放关闭标识
*/
private
VipReceiveEnum
courseReceive
;
}
}
src/main/java/com/qkdata/biz/management/entity/UserCourseAuthPO.java
0 → 100644
View file @
ec0f209c
package
com
.
qkdata
.
biz
.
management
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.qkdata.common.base.entity.BasePO
;
import
java.time.LocalDateTime
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* <p>
* 用户课程授权表
* </p>
*
* @author liuyang
* @since 2021-06-03
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"user_course_auth"
)
public
class
UserCourseAuthPO
extends
BasePO
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 用户ID
*/
private
Long
userId
;
/**
* 课程ID
*/
private
Long
courseId
;
/**
* 开始时间
*/
private
LocalDateTime
startTime
;
/**
* 结束时间
*/
private
LocalDateTime
endTime
;
/**
* 购买或领用
*/
private
String
type
;
}
src/main/java/com/qkdata/biz/management/mapper/
UserGetVipRecord
Mapper.java
→
src/main/java/com/qkdata/biz/management/mapper/
OrgSurplus
Mapper.java
View file @
ec0f209c
package
com
.
qkdata
.
biz
.
management
.
mapper
;
package
com
.
qkdata
.
biz
.
management
.
mapper
;
import
com.qkdata.biz.management.entity.
UserGetVipRecord
PO
;
import
com.qkdata.biz.management.entity.
OrgSurplus
PO
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Mapper
;
/**
/**
* <p>
* <p>
* 企业
会员领取记录
Mapper 接口
* 企业
VIP或课程余额表
Mapper 接口
* </p>
* </p>
*
*
* @author liuyang
* @author liuyang
* @since 2021-0
5-28
* @since 2021-0
6-03
*/
*/
@Mapper
@Mapper
public
interface
UserGetVipRecordMapper
extends
BaseMapper
<
UserGetVipRecord
PO
>
{
public
interface
OrgSurplusMapper
extends
BaseMapper
<
OrgSurplus
PO
>
{
}
}
src/main/java/com/qkdata/biz/management/mapper/OrgUserReceiveRecordMapper.java
0 → 100644
View file @
ec0f209c
package
com
.
qkdata
.
biz
.
management
.
mapper
;
import
com.qkdata.biz.management.entity.OrgUserReceiveRecordPO
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* <p>
* 企业成员领用或分配记录表 Mapper 接口
* </p>
*
* @author liuyang
* @since 2021-06-03
*/
@Mapper
public
interface
OrgUserReceiveRecordMapper
extends
BaseMapper
<
OrgUserReceiveRecordPO
>
{
}
src/main/java/com/qkdata/biz/management/mapper/UserCourseAuthMapper.java
0 → 100644
View file @
ec0f209c
package
com
.
qkdata
.
biz
.
management
.
mapper
;
import
com.qkdata.biz.management.entity.UserCourseAuthPO
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* <p>
* 用户课程授权表 Mapper 接口
* </p>
*
* @author liuyang
* @since 2021-06-03
*/
@Mapper
public
interface
UserCourseAuthMapper
extends
BaseMapper
<
UserCourseAuthPO
>
{
}
src/main/java/com/qkdata/biz/management/service/
UserGetVipRecord
Service.java
→
src/main/java/com/qkdata/biz/management/service/
OrgSurplus
Service.java
View file @
ec0f209c
package
com
.
qkdata
.
biz
.
management
.
service
;
package
com
.
qkdata
.
biz
.
management
.
service
;
import
com.qkdata.biz.management.entity.
UserGetVipRecord
PO
;
import
com.qkdata.biz.management.entity.
OrgSurplus
PO
;
import
com.qkdata.biz.management.mapper.
UserGetVipRecord
Mapper
;
import
com.qkdata.biz.management.mapper.
OrgSurplus
Mapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
/**
/**
* <p>
* <p>
*
$!{table.comment}
服务类
*
企业VIP或课程余额
服务类
* </p>
* </p>
*
*
* @author liuyang
* @author liuyang
* @since 2021-0
5-28
* @since 2021-0
6-03
*/
*/
@Service
@Service
public
class
UserGetVipRecordService
extends
ServiceImpl
<
UserGetVipRecordMapper
,
UserGetVipRecord
PO
>
{
public
class
OrgSurplusService
extends
ServiceImpl
<
OrgSurplusMapper
,
OrgSurplus
PO
>
{
}
}
\ No newline at end of file
src/main/java/com/qkdata/biz/management/service/OrgUserReceiveRecordService.java
0 → 100644
View file @
ec0f209c
package
com
.
qkdata
.
biz
.
management
.
service
;
import
com.qkdata.biz.management.entity.OrgUserReceiveRecordPO
;
import
com.qkdata.biz.management.mapper.OrgUserReceiveRecordMapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.springframework.stereotype.Service
;
/**
* <p>
* 企业成员领用或分配记录 服务类
* </p>
*
* @author liuyang
* @since 2021-06-03
*/
@Service
public
class
OrgUserReceiveRecordService
extends
ServiceImpl
<
OrgUserReceiveRecordMapper
,
OrgUserReceiveRecordPO
>
{
}
\ No newline at end of file
src/main/java/com/qkdata/biz/management/service/ProductOrderService.java
View file @
ec0f209c
...
@@ -42,6 +42,7 @@ import org.springframework.stereotype.Service;
...
@@ -42,6 +42,7 @@ import org.springframework.stereotype.Service;
import
javax.sql.DataSource
;
import
javax.sql.DataSource
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
java.util.List
;
/**
/**
...
@@ -225,4 +226,24 @@ public class ProductOrderService extends ServiceImpl<ProductOrderMapper, Product
...
@@ -225,4 +226,24 @@ public class ProductOrderService extends ServiceImpl<ProductOrderMapper, Product
}
}
return
PageResult
.<
ProductOrderModel
>
builder
().
code
(
CodeEnum
.
SUCCESS
.
getCode
()).
count
(
page
.
getTotal
()).
data
(
list
).
build
();
return
PageResult
.<
ProductOrderModel
>
builder
().
code
(
CodeEnum
.
SUCCESS
.
getCode
()).
count
(
page
.
getTotal
()).
data
(
list
).
build
();
}
}
public
void
orderComplete
(
String
orderNo
)
{
updateStatus
(
orderNo
,
ProductOrderStatusEnum
.
PAY_COMPLETE
);
ProductOrderPO
orderPO
=
getByOrderNo
(
orderNo
);
if
(
orderPO
.
getProductType
()
==
ProductTypeEnum
.
USER_VIP
){
//TODO 更新用户VIP时间,用户从普通用户变为会员
LocalDateTime
payCompleteTime
=
orderPO
.
getUpdateTime
();
//支付完成时间
int
count
=
orderPO
.
getProductCount
();
//购买的几个月VIP
Long
userId
=
orderPO
.
getUserId
();
}
else
if
(
orderPO
.
getProductType
()
==
ProductTypeEnum
.
ENTERPRISE_VIP
){
//TODO 添加企业VIP购买记录
}
else
if
(
orderPO
.
getProductType
()
==
ProductTypeEnum
.
COURSE_BUY
){
//TODO 添加课程购买记录
}
else
if
(
orderPO
.
getProductType
()
==
ProductTypeEnum
.
ENTERPRISE_COURSE_BUY
){
//TODO 添加企业课程购买记录
}
}
}
}
\ No newline at end of file
src/main/java/com/qkdata/biz/management/service/UserCourseAuthService.java
0 → 100644
View file @
ec0f209c
package
com
.
qkdata
.
biz
.
management
.
service
;
import
com.qkdata.biz.management.entity.UserCourseAuthPO
;
import
com.qkdata.biz.management.mapper.UserCourseAuthMapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.springframework.stereotype.Service
;
/**
* <p>
* 用户课程授权 服务类
* </p>
*
* @author liuyang
* @since 2021-06-03
*/
@Service
public
class
UserCourseAuthService
extends
ServiceImpl
<
UserCourseAuthMapper
,
UserCourseAuthPO
>
{
}
\ No newline at end of file
src/main/java/com/qkdata/biz/web/service/UserCenterService.java
View file @
ec0f209c
package
com
.
qkdata
.
biz
.
web
.
service
;
package
com
.
qkdata
.
biz
.
web
.
service
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.qkdata.biz.enums.CourseAllowEnum
;
import
com.qkdata.biz.enums.CourseAllowEnum
;
import
com.qkdata.biz.enums.CourseChargeModelEnum
;
import
com.qkdata.biz.enums.CourseChargeModelEnum
;
import
com.qkdata.biz.enums.CourseStatusEnum
;
import
com.qkdata.biz.enums.CourseStatusEnum
;
import
com.qkdata.biz.enums.UserPayRecordTypeEnum
;
import
com.qkdata.biz.management.entity.CoursePO
;
import
com.qkdata.biz.management.entity.CoursePO
;
import
com.qkdata.biz.management.entity.UserFavoritesPO
;
import
com.qkdata.biz.management.entity.UserFavoritesPO
;
import
com.qkdata.biz.management.entity.UserGetVipRecordPO
;
import
com.qkdata.biz.management.mapper.UserFavoritesMapper
;
import
com.qkdata.biz.management.service.CourseService
;
import
com.qkdata.biz.management.service.CourseService
;
import
com.qkdata.biz.management.service.UserFavoritesService
;
import
com.qkdata.biz.management.service.UserFavoritesService
;
import
com.qkdata.biz.management.service.UserGetVipRecordService
;
import
com.qkdata.biz.management.vo.QueryFavoriteCourseModel
;
import
com.qkdata.biz.management.vo.QueryFavoriteCourseModel
;
import
com.qkdata.biz.sys.service.SysUserService
;
import
com.qkdata.biz.sys.service.SysUserService
;
import
com.qkdata.biz.web.vo.FullUserInfo
;
import
com.qkdata.biz.web.vo.FullUserInfo
;
import
com.qkdata.biz.web.vo.SearchCourseResultModel
;
import
com.qkdata.biz.web.vo.SearchCourseResultModel
;
import
com.qkdata.common.base.entity.BasePO
;
import
com.qkdata.common.base.exception.BusinessException
;
import
com.qkdata.common.base.exception.BusinessException
;
import
com.qkdata.common.base.model.PageResult
;
import
com.qkdata.common.base.model.PageResult
;
import
com.qkdata.common.util.UserContext
;
import
com.qkdata.common.util.UserContext
;
...
@@ -35,8 +29,6 @@ public class UserCenterService {
...
@@ -35,8 +29,6 @@ public class UserCenterService {
@Autowired
@Autowired
private
CourseService
courseService
;
private
CourseService
courseService
;
@Autowired
@Autowired
private
UserGetVipRecordService
userGetVipRecordService
;
@Autowired
private
UserFavoritesService
userFavoritesService
;
private
UserFavoritesService
userFavoritesService
;
/**
/**
...
@@ -83,22 +75,22 @@ public class UserCenterService {
...
@@ -83,22 +75,22 @@ public class UserCenterService {
throw
new
BusinessException
(
"您的会员已过期,请续费后再观看"
);
throw
new
BusinessException
(
"您的会员已过期,请续费后再观看"
);
}
}
}
else
if
(
course
.
getChargeModel
()
==
CourseChargeModelEnum
.
PAY
){
}
else
if
(
course
.
getChargeModel
()
==
CourseChargeModelEnum
.
PAY
){
UserGetVipRecordPO
userGetVipRecordPO
=
userGetVipRecordService
.
getOne
(
Wrappers
.<
UserGetVipRecordPO
>
lambdaQuery
()
//
UserGetVipRecordPO userGetVipRecordPO = userGetVipRecordService.getOne(Wrappers.<UserGetVipRecordPO>lambdaQuery()
.
eq
(
UserGetVipRecordPO:
:
getUserId
,
userId
)
//
.eq(UserGetVipRecordPO::getUserId,userId)
.
eq
(
UserGetVipRecordPO:
:
getCourseId
,
courseId
)
//
.eq(UserGetVipRecordPO::getCourseId,courseId)
.
eq
(
UserGetVipRecordPO:
:
getType
,
UserPayRecordTypeEnum
.
SINGLE_COURSE
)
//
.eq(UserGetVipRecordPO::getType,UserPayRecordTypeEnum.SINGLE_COURSE)
.
orderByDesc
(
BasePO:
:
getCreateTime
)
//
.orderByDesc(BasePO::getCreateTime)
.
last
(
"limit 1"
));
//
.last("limit 1"));
if
(
userGetVipRecordPO
==
null
){
//
if (userGetVipRecordPO == null){
throw
new
BusinessException
(
"当前课程为付费课程,请购买后再观看"
);
//
throw new BusinessException("当前课程为付费课程,请购买后再观看");
}
//
}
Integer
validPeriod
=
course
.
getValidPeriod
();
//
Integer validPeriod = course.getValidPeriod();
LocalDateTime
startTime
=
userGetVipRecordPO
.
getCreateTime
();
//
LocalDateTime startTime = userGetVipRecordPO.getCreateTime();
LocalDateTime
endTime
=
startTime
.
plusHours
(
validPeriod
);
//
LocalDateTime endTime = startTime.plusHours(validPeriod);
LocalDateTime
now
=
LocalDateTime
.
now
();
//
LocalDateTime now = LocalDateTime.now();
if
(!(
now
.
isAfter
(
startTime
)
&&
now
.
isBefore
(
endTime
))){
//
if (!(now.isAfter(startTime) && now.isBefore(endTime))){
throw
new
BusinessException
(
"您购买的该课程已过期,请重新购买"
);
//
throw new BusinessException("您购买的该课程已过期,请重新购买");
}
//
}
}
}
...
...
src/main/java/com/qkdata/wx/pay/controller/WxPayNotifyController.java
View file @
ec0f209c
...
@@ -9,6 +9,7 @@ import com.github.binarywang.wxpay.service.WxPayService;
...
@@ -9,6 +9,7 @@ import com.github.binarywang.wxpay.service.WxPayService;
import
com.qkdata.biz.enums.ProductOrderStatusEnum
;
import
com.qkdata.biz.enums.ProductOrderStatusEnum
;
import
com.qkdata.biz.management.service.ProductOrderService
;
import
com.qkdata.biz.management.service.ProductOrderService
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
jdk.nashorn.internal.objects.NativeJava
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
...
@@ -31,17 +32,20 @@ public class WxPayNotifyController {
...
@@ -31,17 +32,20 @@ public class WxPayNotifyController {
@ApiOperation
(
value
=
"支付回调通知处理"
)
@ApiOperation
(
value
=
"支付回调通知处理"
)
@PostMapping
(
"/notify/order"
)
@PostMapping
(
"/notify/order"
)
public
String
parseOrderNotifyResult
(
@RequestBody
String
xmlData
)
throws
WxPayException
{
public
String
parseOrderNotifyResult
(
@RequestBody
String
xmlData
)
throws
WxPayException
{
String
outTradeNo
=
null
;
try
{
try
{
final
WxPayOrderNotifyResult
notifyResult
=
this
.
wxPayService
.
parseOrderNotifyResult
(
xmlData
);
final
WxPayOrderNotifyResult
notifyResult
=
this
.
wxPayService
.
parseOrderNotifyResult
(
xmlData
);
log
.
info
(
notifyResult
.
toString
());
log
.
info
(
notifyResult
.
toString
());
notifyResult
.
checkResult
(
wxPayService
,
notifyResult
.
getSignType
(),
true
);
notifyResult
.
checkResult
(
wxPayService
,
notifyResult
.
getSignType
(),
true
);
String
outTradeNo
=
notifyResult
.
getOutTradeNo
();
outTradeNo
=
notifyResult
.
getOutTradeNo
();
orderService
.
updateStatus
(
outTradeNo
,
ProductOrderStatusEnum
.
PAY_COMPLETE
);
orderService
.
orderComplete
(
outTradeNo
);
}
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/db/migration/V1.0.7__update.sql
0 → 100644
View file @
ec0f209c
DROP
TABLE
IF
EXISTS
org_buy_course_record
;
DROP
TABLE
IF
EXISTS
org_buy_vip_record
;
DROP
TABLE
IF
EXISTS
user_get_vip_record
;
ALTER
TABLE
`organization`
ADD
COLUMN
`vip_receive`
varchar
(
10
)
NULL
COMMENT
'企业会员领取开放、关闭标识'
AFTER
`is_del`
,
ADD
COLUMN
`course_receive`
varchar
(
10
)
NULL
COMMENT
'企业会员点播库领取开放、关闭标识'
AFTER
`vip_receive`
;
CREATE
TABLE
`user_course_auth`
(
`id`
bigint
(
20
)
NOT
NULL
AUTO_INCREMENT
,
`user_id`
bigint
(
20
)
NULL
COMMENT
'用户ID'
,
`course_id`
bigint
(
20
)
NULL
COMMENT
'课程ID'
,
`start_time`
datetime
(
0
)
NULL
COMMENT
'开始时间'
,
`end_time`
datetime
(
0
)
NULL
COMMENT
'结束时间'
,
`type`
varchar
(
10
)
NULL
COMMENT
'购买或领用'
,
PRIMARY
KEY
(
`id`
)
)
COMMENT
=
'用户课程授权表'
;
CREATE
TABLE
`org_surplus`
(
`id`
bigint
(
20
)
NOT
NULL
AUTO_INCREMENT
,
`org_id`
bigint
(
20
)
NULL
COMMENT
'企业ID'
,
`course_id`
bigint
(
20
)
NULL
COMMENT
'课程ID'
,
`product_type`
varchar
(
20
)
NULL
COMMENT
'产品类型'
,
`count`
int
(
11
)
NULL
COMMENT
'剩余数量'
,
PRIMARY
KEY
(
`id`
)
)
COMMENT
=
'企业VIP或课程余额表'
;
CREATE
TABLE
`org_user_receive_record`
(
`id`
bigint
(
20
)
NOT
NULL
AUTO_INCREMENT
,
`org_id`
bigint
(
20
)
NULL
COMMENT
'企业ID'
,
`user_id`
bigint
(
20
)
NULL
COMMENT
'用户ID'
,
`product_type`
varchar
(
20
)
NULL
COMMENT
'产品类型'
,
`count`
int
(
11
)
NULL
COMMENT
'领用或分配的数量'
,
`course_id`
bigint
(
11
)
NULL
COMMENT
'课程ID'
,
`create_time`
datetime
(
0
)
NULL
,
`update_time`
datetime
(
0
)
NULL
,
PRIMARY
KEY
(
`id`
)
)
COMMENT
=
'企业成员领用或分配记录表'
;
\ No newline at end of file
src/main/resources/mappers/management/
user_get_vip_record
Mapper.xml
→
src/main/resources/mappers/management/
org_surplus
Mapper.xml
View file @
ec0f209c
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.qkdata.biz.management.mapper.
UserGetVipRecord
Mapper"
>
<mapper
namespace=
"com.qkdata.biz.management.mapper.
OrgSurplus
Mapper"
>
</mapper>
</mapper>
src/main/resources/mappers/management/org_user_receive_recordMapper.xml
0 → 100644
View file @
ec0f209c
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.qkdata.biz.management.mapper.OrgUserReceiveRecordMapper"
>
</mapper>
src/main/resources/mappers/management/user_course_authMapper.xml
0 → 100644
View file @
ec0f209c
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.qkdata.biz.management.mapper.UserCourseAuthMapper"
>
</mapper>
src/main/resources/mappers/management/user_favoritesMapper.xml
View file @
ec0f209c
...
@@ -13,6 +13,7 @@
...
@@ -13,6 +13,7 @@
inner join user_favorites f on c.id = f.course_id
inner join user_favorites f on c.id = f.course_id
WHERE
WHERE
c.is_del = 0
c.is_del = 0
and c.allow='ALL'
and c.status = 'UP'
and c.status = 'UP'
</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