Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
SiEn
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
hewei
SiEn
Commits
c35bfbdd
Commit
c35bfbdd
authored
Mar 11, 2021
by
giaogiao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
vip开通
parent
435053c1
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
83 additions
and
20 deletions
+83
-20
common/src/main/java/com/sien/common/controller/VipRecordController.java
+3
-3
common/src/main/java/com/sien/common/param/VipOpenParam.java
+47
-0
common/src/main/java/com/sien/common/service/VipRecordService.java
+4
-3
common/src/main/java/com/sien/common/service/impl/DonationRecordServiceImpl.java
+7
-2
common/src/main/java/com/sien/common/service/impl/VipRecordServiceImpl.java
+16
-12
config/src/main/resources/config/application-dev.yml
+2
-0
config/src/main/resources/config/application-prod.yml
+2
-0
config/src/main/resources/config/application-test.yml
+2
-0
No files found.
common/src/main/java/com/sien/common/controller/VipRecordController.java
View file @
c35bfbdd
package
com
.
sien
.
common
.
controller
;
import
com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult
;
import
com.sien.common.param.Vip
Record
OpenParam
;
import
com.sien.common.param.VipOpenParam
;
import
com.sien.common.service.VipRecordService
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
io.geekidea.springbootplus.framework.common.controller.BaseController
;
...
...
@@ -40,9 +40,9 @@ public class VipRecordController extends BaseController {
@PostMapping
(
"/open"
)
@OperationLog
(
name
=
"开通Vip"
,
type
=
OperationLogType
.
ADD
)
@ApiOperation
(
value
=
"开通Vip"
)
public
ApiResult
<
WxPayMpOrderResult
>
openVip
(
@Validated
(
Add
.
class
)
@RequestBody
Vip
RecordOpenParam
vipRecord
OpenParam
)
throws
Exception
{
public
ApiResult
<
WxPayMpOrderResult
>
openVip
(
@Validated
(
Add
.
class
)
@RequestBody
Vip
OpenParam
vip
OpenParam
)
throws
Exception
{
return
vipRecordService
.
openVip
(
vip
Record
OpenParam
);
return
vipRecordService
.
openVip
(
vipOpenParam
);
}
// /**
...
...
common/src/main/java/com/sien/common/param/VipOpenParam.java
0 → 100644
View file @
c35bfbdd
package
com
.
sien
.
common
.
param
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* <pre>
* 开通会员参数对象
* </pre>
*
* @author hewei
* @date 2021-02-25
*/
@Data
@Accessors
(
chain
=
true
)
@ApiModel
(
value
=
"VipOpenParam"
)
public
class
VipOpenParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
// @ApiModelProperty("开通会员金额")
// private BigDecimal money;
@NotNull
(
message
=
"开通多久不能为空"
)
@ApiModelProperty
(
"开通多少年"
)
private
Integer
years
;
@NotBlank
(
message
=
"会员等级id不能为空"
)
@ApiModelProperty
(
"会员等级id,传入由会员列表接口返回的id"
)
private
Long
vipLevelId
;
@NotBlank
(
message
=
"不能为空"
)
@ApiModelProperty
(
"是否代替他人开通"
)
private
Boolean
isReplace
;
@ApiModelProperty
(
"捐款接收用户手机号,当isAgent=1为必填"
)
private
String
userPhone
;
@ApiModelProperty
(
"手机区号,当isAgent=1为必填"
)
private
String
phoneArea
;
}
common/src/main/java/com/sien/common/service/VipRecordService.java
View file @
c35bfbdd
...
...
@@ -2,7 +2,7 @@ package com.sien.common.service;
import
com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult
;
import
com.sien.common.entity.VipRecord
;
import
com.sien.common.param.Vip
Record
OpenParam
;
import
com.sien.common.param.VipOpenParam
;
import
com.sien.common.param.VipRecordPageParam
;
import
com.sien.common.vo.VipRecordQueryVo
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
...
...
@@ -35,11 +35,12 @@ public interface VipRecordService extends BaseService<VipRecord> {
/**
* 开通vip
* @param vipRecordOpenParam
*
* @param vipOpenParam
* @return
* @throws Exception
*/
ApiResult
<
WxPayMpOrderResult
>
openVip
(
Vip
RecordOpenParam
vipRecordOpenParam
)
throws
Exception
;
ApiResult
<
WxPayMpOrderResult
>
openVip
(
Vip
OpenParam
vipOpenParam
)
throws
Exception
;
/**
* 修改
...
...
common/src/main/java/com/sien/common/service/impl/DonationRecordServiceImpl.java
View file @
c35bfbdd
...
...
@@ -32,6 +32,7 @@ import io.geekidea.springbootplus.framework.shiro.jwt.JwtToken;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.shiro.SecurityUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
...
...
@@ -52,7 +53,7 @@ public class DonationRecordServiceImpl extends BaseServiceImpl<DonationRecordMap
private
static
final
String
BODY
=
"厦门市四恩慈善会捐款"
;
private
static
final
String
NOTIFY_URL
=
"
https://c7a30ed052d8.ngrok.io
/api/pay/notify/donationOrder"
;
private
static
final
String
NOTIFY_URL
=
"/api/pay/notify/donationOrder"
;
@Autowired
private
DonationRecordMapper
donationRecordMapper
;
...
...
@@ -63,6 +64,10 @@ public class DonationRecordServiceImpl extends BaseServiceImpl<DonationRecordMap
@Resource
HttpServletRequest
httpServletRequest
;
@Value
(
"${spring-boot-plus.domain}"
)
private
String
domain
;
@Autowired
private
AppUserService
appUserService
;
...
...
@@ -196,7 +201,7 @@ public class DonationRecordServiceImpl extends BaseServiceImpl<DonationRecordMap
wxPayUnifiedOrderRequest
.
setSpbillCreateIp
(
spbillCreateIp
);
// 接收微信支付异步通知回调地址,通知url必须为直接可访问的url,不能携带参数。
wxPayUnifiedOrderRequest
.
setNotifyUrl
(
DonationRecordServiceImpl
.
NOTIFY_URL
);
wxPayUnifiedOrderRequest
.
setNotifyUrl
(
domain
+
DonationRecordServiceImpl
.
NOTIFY_URL
);
wxPayUnifiedOrderRequest
.
setOpenid
(
openid
);
String
jsapi
=
"JSAPI"
;
...
...
common/src/main/java/com/sien/common/service/impl/VipRecordServiceImpl.java
View file @
c35bfbdd
...
...
@@ -14,7 +14,7 @@ import com.github.binarywang.wxpay.service.WxPayService;
import
com.sien.common.entity.AppUser
;
import
com.sien.common.entity.VipRecord
;
import
com.sien.common.mapper.VipRecordMapper
;
import
com.sien.common.param.Vip
Record
OpenParam
;
import
com.sien.common.param.VipOpenParam
;
import
com.sien.common.param.VipRecordPageParam
;
import
com.sien.common.service.AppUserService
;
import
com.sien.common.service.VipPriceService
;
...
...
@@ -31,6 +31,7 @@ import io.geekidea.springbootplus.framework.shiro.jwt.JwtToken;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.shiro.SecurityUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
...
...
@@ -51,9 +52,9 @@ import java.util.Date;
public
class
VipRecordServiceImpl
extends
BaseServiceImpl
<
VipRecordMapper
,
VipRecord
>
implements
VipRecordService
{
private
static
final
String
BODY
=
"厦门市四恩慈善会
会员开通
"
;
private
static
final
String
BODY
=
"厦门市四恩慈善会
开通会员
"
;
private
static
final
String
NOTIFY_URL
=
"
https://c7a30ed052d8.ngrok.io
/api/pay/notify/vipOrder"
;
private
static
final
String
NOTIFY_URL
=
"/api/pay/notify/vipOrder"
;
@Autowired
private
VipRecordMapper
vipRecordMapper
;
...
...
@@ -69,6 +70,9 @@ public class VipRecordServiceImpl extends BaseServiceImpl<VipRecordMapper, VipRe
@Autowired
private
VipPriceService
vipPriceService
;
@Value
(
"${spring-boot-plus.domain}"
)
private
String
domain
;
@Override
public
String
vipOrderNotifyResult
(
String
xmlData
)
{
...
...
@@ -120,7 +124,7 @@ public class VipRecordServiceImpl extends BaseServiceImpl<VipRecordMapper, VipRe
wxPayUnifiedOrderRequest
.
setSpbillCreateIp
(
spbillCreateIp
);
// 接收微信支付异步通知回调地址,通知url必须为直接可访问的url,不能携带参数。
wxPayUnifiedOrderRequest
.
setNotifyUrl
(
VipRecordServiceImpl
.
NOTIFY_URL
);
wxPayUnifiedOrderRequest
.
setNotifyUrl
(
domain
+
VipRecordServiceImpl
.
NOTIFY_URL
);
wxPayUnifiedOrderRequest
.
setOpenid
(
openid
);
String
jsapi
=
"JSAPI"
;
...
...
@@ -137,22 +141,22 @@ public class VipRecordServiceImpl extends BaseServiceImpl<VipRecordMapper, VipRe
@Override
public
ApiResult
<
WxPayMpOrderResult
>
openVip
(
Vip
RecordOpenParam
vipRecord
OpenParam
)
throws
Exception
{
public
ApiResult
<
WxPayMpOrderResult
>
openVip
(
Vip
OpenParam
vip
OpenParam
)
throws
Exception
{
JwtToken
jwtToken
=
(
JwtToken
)
SecurityUtils
.
getSubject
().
getPrincipal
();
AppUserQueryVo
appUserById
=
appUserService
.
getAppUserById
(
jwtToken
.
getUserId
());
// 获取vip价格表
VipPriceQueryVo
vipPriceById
=
vipPriceService
.
getVipPriceById
(
vip
Record
OpenParam
.
getVipLevelId
());
VipPriceQueryVo
vipPriceById
=
vipPriceService
.
getVipPriceById
(
vipOpenParam
.
getVipLevelId
());
if
(
vipPriceById
==
null
)
{
return
ApiResult
.
fail
(
ApiCode
.
FAIL
,
null
);
}
// 应付金额
BigDecimal
money
=
vipPriceById
.
getPrice
().
multiply
(
new
BigDecimal
(
vip
Record
OpenParam
.
getYears
()));
BigDecimal
money
=
vipPriceById
.
getPrice
().
multiply
(
new
BigDecimal
(
vipOpenParam
.
getYears
()));
// 设置到期时间
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
add
(
Calendar
.
YEAR
,
vip
Record
OpenParam
.
getYears
());
calendar
.
add
(
Calendar
.
YEAR
,
vipOpenParam
.
getYears
());
Date
expiredAt
=
calendar
.
getTime
();
// 商家订单号
...
...
@@ -161,14 +165,14 @@ public class VipRecordServiceImpl extends BaseServiceImpl<VipRecordMapper, VipRe
VipRecord
vipRecord
=
new
VipRecord
();
vipRecord
.
setMoney
(
money
);
vipRecord
.
setExpiredAt
(
expiredAt
);
vipRecord
.
setYears
(
vip
Record
OpenParam
.
getYears
());
vipRecord
.
setYears
(
vipOpenParam
.
getYears
());
vipRecord
.
setPayStatus
(
0
);
// // 判断是否为替他人
if
(
vip
Record
OpenParam
.
getIsReplace
())
{
if
(
vipOpenParam
.
getIsReplace
())
{
AppUser
user
=
appUserService
.
getOne
(
new
QueryWrapper
<
AppUser
>().
lambda
()
.
eq
(
AppUser:
:
getPhone
,
vip
Record
OpenParam
.
getUserPhone
())
.
eq
(
AppUser:
:
getPhoneArea
,
vip
Record
OpenParam
.
getPhoneArea
()));
.
eq
(
AppUser:
:
getPhone
,
vipOpenParam
.
getUserPhone
())
.
eq
(
AppUser:
:
getPhoneArea
,
vipOpenParam
.
getPhoneArea
()));
//判断接收方是否存在
if
(
user
==
null
)
{
return
ApiResult
.
fail
(
ApiCode
.
FAIL
,
new
WxPayMpOrderResult
());
...
...
config/src/main/resources/config/application-dev.yml
View file @
c35bfbdd
...
...
@@ -12,6 +12,8 @@ spring-boot-plus:
request-log-format
:
false
response-log-format
:
false
domain
:
https://c7a30ed052d8.ngrok.io
wx
:
# token: sDsdaSDADad
# # 测试号的appid,测试号管理界面有
...
...
config/src/main/resources/config/application-prod.yml
View file @
c35bfbdd
...
...
@@ -13,6 +13,8 @@ spring-boot-plus:
log-print-type
:
NONE
request-log-format
:
false
response-log-format
:
false
domain
:
https://sienapi.da300.com
spring
:
datasource
:
...
...
config/src/main/resources/config/application-test.yml
View file @
c35bfbdd
...
...
@@ -12,6 +12,8 @@ spring-boot-plus:
log-print-type
:
LINE
request-log-format
:
false
response-log-format
:
false
domain
:
https://sienapi.da300.com
spring
:
datasource
:
...
...
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