Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wecloud_im_server
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
wecloud_im_server
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